OSDN Git Service

* config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-12-07  David Edelsohn  <edelsohn@gnu.org>
2
3         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
4         Revert 2004-12-01 change.
5
6 2004-12-06  Ziemowit Laski  <zlaski@apple.com>
7
8         * c-tree.h (struct lang_type): Add 'objc_protocols' field.
9
10 2004-12-06  DJ Delorie  <dj@redhat.com>
11
12         * reload.c (find_valid_class): Fix logic to test inner mode as well.
13         (push_reload): Pass inner mode.
14
15 2004-12-06  Eric Christopher  <echristo@redhat.com>
16
17         * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document.
18
19 2004-12-06  Aldy Hernandez  <aldyh@redhat.com>
20
21         * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1.
22
23 2004-12-06  Zdenek Dvorak  <dvorakz@suse.cz>
24             Kazu Hirata  <kazu@cs.umass.edu>
25
26         PR tree-optimization/18601
27         * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed.
28         (tree_forwarder_block_p): Do not consider blocks that are its own
29         successors forwarders.
30         (cleanup_forwarder_blocks, remove_forwarder_block): New functions.
31         (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of
32         thread_jumps.
33         * tree-flow.h (bb_ann_d): Remove forwardable.
34
35 2004-12-06  Kazu Hirata  <kazu@cs.umass.edu>
36
37         * expr.c (expand_expr_real_1): Remove an "if" whose condition
38         is always false.
39
40 2004-12-06  Roger Sayle  <roger@eyesopen.com>
41
42         * c-gimplify.c (gimplify_c_loop): Improve initial implementations
43         for loops whose conditions are known at compile-time.
44         * gimplify.c (append_to_statement_list_1): Remove side_effects
45         parameter, this function should never be called if its false.
46         (append_to_statement_list): Only call append_to_statement_list_1
47         if t is non-NULL tree with side-effects.
48         (append_to_statement_list_force):  Likewise, if t is not NULL.
49
50 2004-12-06  J"orn Rennecke <joern.rennecke@st.com>
51
52         * bt-load.c (btr_def_s): New member own_end;
53         (add_btr_to_live_range): Add second parameter.  Changed caller.
54         (clear_btr_from_live_range): Clear btrs_live_at_end bit
55         for the register its definition basic block if own_end is set.
56         (augment_live_range): Also take btrs_live_at_end into account.
57         (combine_btr_defs): Don't bother with
58         other_def->other_btr_uses_after_use if it pertains to a different
59         register.
60         (move_btr_def): Set def->other_btr_uses_before_def after
61         calling combine_btr_defs."
62
63         * bt-load.c (augment_live_range): New argument full_range.
64         Changed all callers.
65
66         * bt-load.c (move_tr_def): Set other_tr_uses_before_def
67         taking new btr assignment into account.
68
69 2004-12-05  Daniel Berlin <dberlin@dberlin.org>
70
71         * tree-ssa-alias.c (create_global_var): Use void_type_node,
72         not size_type_node.
73
74 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
75
76         * expr.c (expand_expr_real_1): Abort on COND_EXPR of
77         VOID_TYPE.
78
79 2004-12-05  Richard Henderson  <rth@redhat.com>
80
81         PR target/18841
82         * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
83         (builtin_setjmp_receiver_er_sl_1): Use it.
84         (builtin_setjmp_receiver_er_1): Likewise.
85         (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
86         (builtin_setjmp_receiver): Don't split for explicit relocs until
87         after reload.
88         (exception_receiver): Likewise.
89
90 2004-12-05  Andrew Pinski  <pinskia@physics.uc.edu>
91
92         * mklibgcc.in (vis_hide): Add the prototype for the test.
93
94 2004-12-05  Roger Sayle  <roger@eyesopen.com>
95
96         * c-typeck.c (c_finish_loop): Improve initial implementations
97         for loops whose conditions are known at compile-time.
98
99 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
100
101         * builtins.c: Fix comment typos.
102
103 2004-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
104
105         PR middle-end/18730
106         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
107         the first/last insn is a sequence, return the first/last insn of the
108         sequence.
109
110         PR bootstrap/18804
111         * mklibgcc.in (vis_hide): Use implementation instead of declaration
112         for test function.
113
114 2004-12-04  Richard Henderson  <rth@redhat.com>
115
116         * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
117         use ofs in BWX two byte special case.
118         (alpha_expand_unaligned_store): Likewise.
119
120 2004-12-04  Kazu Hirata  <kazu@cs.umass.edu>
121
122         * gcse.c (gcse_main): Add a comment.
123
124 2004-12-04  Andrew  Pinski  <pinskia@physics.uc.edu>
125
126         PR middle-end/17909
127         * builtins.c (fold_builtin_next_arg): Export and return true
128         when there is a warning or an error.
129         (expand_builtin_va_start): When fold_builtin_next_arg returns true,
130         return const0_rtx.
131         (expand_builtin): Likewise.
132         * gimplify.c (gimplify_call_expr): Error out if there is not
133         enough arguments to va_start. Call fold_builtin_next_arg also
134         on the second argument.
135         * tree.h (fold_builtin_next_arg): Prototype.
136
137 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
138
139         * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.
140         Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK,
141         SHLIB_INSTALL, and SHLIBUNWIND_INSTALL.
142         * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of
143         shlib_dir and shlib_so_name.
144         * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise.
145         * config/t-libunwind-elf (SHLIB_NAME): Likewise.
146         * config/t-slibgcc-darwin (SHLIB_NAME): Likewise.
147         * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise.
148         * config/t-slibgcc-sld (SHLIB_NAME): Likewise.
149         (SHLIB_LINK): Don't use shlib_dir when creating symlink.
150
151 2004-12-03  Roger Sayle  <roger@eyesopen.com>
152
153         * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
154
155 2004-12-03  Richard Henderson  <rth@redhat.com>
156
157         * alias.c (component_uses_parent_alias_set): Rename from
158         can_address_p.  Return bool.  Reverse the sense of the result.
159         Reinstate the check for alias set zero.
160         (get_alias_set): Update to match.
161         * alias.h (component_uses_parent_alias_set): Likewise.
162         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
163         * expr.c (expand_assignment): Likewise.
164         * expr.h: Remove commented out prototypes that were moved to alias.h.
165
166 2004-12-03  Richard Henderson  <rth@redhat.com>
167
168         * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New.
169         (TARGET_CANNOT_FORCE_CONST_MEM): New.
170
171 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
172
173         PR middle end/18718
174         * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are
175         in pairs.
176         * sched-ebb.c (schedule_ebb): Likewise.
177
178 2004-12-03  Andreas Schwab  <schwab@suse.de>
179
180         * Makefile.in (HOSTHOOKS_DEF_H): Define.
181         (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H).
182         (host-default.o): Likewise.
183
184 2004-12-03  Eric Christopher  <echristo@redhat.com>
185
186         * config/stormy16/stormy16.md (pushqi, popqi, pushhi,
187         pophi): Add number of arguments to name so that the
188         pattern is recognized as a named pattern.
189
190 2004-12-03  Janis Johnson  <janis187@us.ibm.com>
191
192         * doc/extend.texi (AltiVec Builtins): Fix info about signedness.
193
194 2004-12-03  Andreas Tobler  <a.tobler@schweiz.ch>
195
196         * config/rs6000/rs6000.c (rs6000_override_options): Protect
197         darwin_one_byte_bool with #if.
198
199 2004-12-03  Paolo Bonzini  <bonzini@gnu.org>
200
201         * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN.
202
203 2004-12-03  H.J. Lu  <hongjiu.lu@intel.com>
204
205         * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.
206
207 2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
208
209         * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
210         Set libstdcxx_incdir directly.
211         * configure: Regenerate.
212
213 2004-12-03  Kazu Hirata  <kazu@cs.umass.edu>
214
215         * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
216         "if" whose condition is always true.
217
218         * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
219         INSN_P.
220
221 2004-12-02  Stan Shebs  <shebs@apple.com>
222
223         * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
224         Darwin default to one-byte bools.
225
226 2004-12-02  Richard Henderson  <rth@redhat.com>
227
228         PR 18774
229         * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
230
231 2004-12-03  Ben Elliston  <bje@au.ibm.com>
232
233         * doc/cfg.texi (Edges): Update. Document the edge_iterator data
234         type and its methods.
235
236 2004-12-02  Richard Henderson  <rth@redhat.com>
237
238         * expr.c (write_complex_part): Use simplify_gen_subreg when the
239         submode is at least as large as a word.
240         (read_complex_part): Likewise.
241
242 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
243
244         PR bootstrap/18532
245         * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
246         multilib at a time. Don't build the default set. Don't add
247         EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
248         filter for shared libunwind and libgcc.
249
250 2004-12-02  Roger Sayle  <roger@eyesopen.com>
251
252         PR target/18759
253         * config/i386/i386.c (override_options): If -fomit-frame-pointer has
254         already been specified, ignore the -momit-leaf-frame-pointer option.
255
256 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
257
258         * varasm.c (make_decl_rtl): Add the missing `;'.
259
260 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
261
262         * tree.c (is_attribute_p): Split out to ..
263         (is_attribute_with_length_p): Here.  Use IDENTIFIER_LENGTH instead
264         of strlen and compare the string lengths before calling strcmp.
265         (lookup_attribute): Call is_attribute_with_length_p instead of
266         is_attribute_p.
267
268 2004-12-02  Devang Patel  <dpatel@apple.com>
269
270         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
271         * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
272         * config/i386/darwin.h (CC1_SPEC): Same.
273
274 2004-12-02  Richard Henderson  <rth@redhat.com>
275
276         * optabs.c (lowpart_subreg_maybe_copy): New.
277         (expand_unop, expand_abs_nojump): Use it.
278
279 2004-12-02  J"orn Rennecke <joern.rennecke@st.com>
280
281         * sh.md (extv, extzv): Add pattern predicate.
282
283 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
284
285         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
286         is not null.
287
288         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
289         is not null.
290
291         * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
292
293 2004-12-02  Jeff Law  <law@redhat.com>
294
295         * tree-eh.c: Revert yesterday's change.
296
297 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
298
299         * varasm.c (decode_reg_name): Revert change to check for zero
300         length strings.
301         (make_decl_rtl): Make sure that we call decode_reg_name only
302         when needed.
303
304 2004-12-02  Dorit Naishlos  <dorit@il.ibm.com>
305
306         PR tree-opt/18716
307         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
308         then and else labels.
309
310 2004-12-02  Andreas Schwab  <schwab@suse.de>
311
312         * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
313         (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
314         (STAGE2_FLAGS_TO_PASS): Likewise.
315
316         * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
317
318 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
319
320         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.  Remove
321         now-redundant AC_SUBSTs.
322         * aclocal.m4: Include ../config/gcc-version.m4.
323         * configure: Regenerate.
324
325 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
326
327         * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
328         #ifdef RELOCATABLE_NEEDS_FIXUP.
329
330 2004-12-01  Roger Sayle  <roger@eyesopen.com>
331
332         PR target/9908
333         * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
334         Intel assembler syntax by using %A1 instead of %*%1.
335
336 2004-12-01  Richard Henderson  <rth@redhat.com>
337
338         * expr.c (expand_assignment): Handle CONCAT both as a final
339         destination and as a middle point.
340
341 2004-12-01  Jeff Law  <law@redhat.com>
342
343         * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
344         (honor_protect_cleanup_actions): Only create save_eptr and
345         save_filt if they do not already exist.
346         (lower_eh_constructs): Wipe all knowledge of save_eptr and
347         save_filt before returning.
348
349 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
350
351         * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
352
353 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
354
355         PR target/16952
356         * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
357         #ifdef RELOCATABLE_NEEDS_FIXUP with if.
358         * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
359         of target_flags_explicit.
360         * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
361         case.  Define as 0 for non-biarch.
362
363 2004-12-01  Zack Weinberg  <zack@codesourcery.com>
364
365         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
366         Change temporary file tag from a prefix to an infix.
367
368 2004-12-02  Andreas Schwab  <schwab@suse.de>
369
370         * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
371
372 2004-12-01  Andrew Pinski  <pinskia@physics.uc.edu>
373
374         PR tree-opt/18763
375         PR tree-opt/18746
376         * tree-ssa-alias.c (init_alias_info): Get statement operands for all
377         the statements if aliases_computed_p is true.
378
379 2004-12-01  Mark Mitchell  <mark@codesourcery.com>
380
381         * Makefile.in (WERROR): New variable.
382         (STRICT2_WARN): Use it.
383         (STAGE2_FLAGS_TO_PASS): Likewise.
384         * config/i386/x-mingw32 (WERROR): Add -Wno-format.
385
386 2004-12-01  Richard Henderson  <rth@redhat.com>
387
388         * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
389         offsetting.
390
391 2004-12-01  Diego Novillo  <dnovillo@redhat.com>
392
393         PR tree-optimization/18291
394         * tree-ssa-copy.c (merge_alias_info): Fix merging of
395         flow-sensitive alias information.  If the new pointer has no
396         name tag, copy it from the original pointer.  Otherwise, make
397         sure that the pointed-to sets have a common intersection.
398
399 2004-12-01  Richard Henderson  <rth@redhat.com>
400
401         PR rtl-opt/15289
402         * emit-rtl.c (gen_complex_constant_part): Remove.
403         (gen_realpart, gen_imagpart): Remove.
404         * rtl.h (gen_realpart, gen_imagpart): Remove.
405         * expmed.c (extract_bit_field): Remove CONCAT hack catering to
406         gen_realpart/gen_imagpart.
407         * expr.c (write_complex_part, read_complex_part): New.
408         (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
409         emit_move_complex_push, emit_move_complex, emit_move_ccmode,
410         emit_move_multi_word): Split out from ...
411         (emit_move_insn_1): ... here.
412         (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
413         <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
414         * function.c (assign_parm_setup_reg): Hard-code transformations
415         instead of using gen_realpart/gen_imagpart.
416
417         * expr.c (optimize_bitfield_assignment_op): Split out from ...
418         (expand_assignment): ... here.  Use handled_component_p to gate
419         get_inner_reference code.  Simplify MEM handling.  Special case
420         CONCAT destinations.
421
422         * expmed.c (store_bit_field): Use simplify_gen_subreg instead
423         of gen_rtx_SUBREG directly.
424
425 2004-12-01  David Edelsohn  <edelsohn@gnu.org>
426             Nathan Sidwell  <nathan@codesourcery.com>
427
428         PR target/17107
429         * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
430         (sgt): Same.
431         (sle): Same.
432         (slt): Same.
433
434 2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
435
436         PR middle-end/18667
437         * params.c (set_param_value): Add range check.
438         * params.def: Add min and max values. Reformat long strings.
439         * params.h (struct param_info): Add min and max fields.
440         (enum compiler_param): Adjust DEFPARAM.
441         * toplev.c (lang_independent_params): Likewise.
442
443 2004-12-01  Alan Modra  <amodra@bigpond.net.au>
444
445         PR target/12817
446         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
447
448 2004-12-01  Joseph S. Myers  <joseph@codesourcery.com>
449
450         * doc/standards.texi: Update for C99 TC2.
451
452 2004-11-30  Jeff Law  <law@redhat.com>
453
454         * sbitmap.c (sbitmap_any_common_bits): New function.
455         * sbitmap.h (sbitmap_any_common_bits): Prototype.
456         * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
457         No longer allocate/free "psp", "pss" sbitmaps.
458         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
459         the "res" sbitmap.
460         (group_aliases): Similarly.
461
462 2004-11-30  Nathan Sidwell  <nathan@codesourcery.com>
463
464         * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
465         uninitialized variable.
466
467 2004-11-30  Eric Christopher  <echristo@redhat.com>
468
469         * fold-const.c (fold_widened_comparison): Make sure that we're
470         passing an INTEGER_TYPE to int_fits_type_p.
471         (fold): Clean up comment.
472
473 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
474
475         * mklibgcc.in: Correct calculation of libgcc_s_soname and
476         libunwind_soname.  Use $out, not $outS, in commands for
477         no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
478         library build rules, make $libunwind_so and $libgcc_s_so
479         depend on them in the normal fashion, and filter those objects
480         out of @shlib_objs@.
481
482 2004-11-30  Janis Johnson  <janis187@us.ibm.com>
483
484         * config/rs6000/altivec.h (vec_step_help): Support const vector types.
485
486 2004-11-30  Andrew Pinski  <pinskia@physics.uc.edu>
487
488         PR tree-opt/18298
489         * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
490         pass right after fold builtins.
491
492 2004-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
493
494         * config/s390/s390-modes.def: Added cc modes documentation.
495         * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
496         s390_expand_addcc): Added cc mode comments.
497         * config/s390/s390.md: Removed old cc mode documentation.
498
499 2004-11-30  Mark Dettinger  <dettinge@de.ibm.com>
500
501         * config/s390/s390.c (struct processor_costs): New data type.
502         (s390_cost, z900_cost, z990_cost): New global variables.
503         (override_options): Initialize s390_cost.
504         (s390_rtx_costs): Reimplement.
505
506 2004-11-29  Daniel Berlin  <dberlin@dberlin.org>
507
508         Fix PR tree-optimization/18673
509
510         * tree-ssa-pre.c: Remove splay-tree.h include.
511         (bitmap_value_replace_in_set): Fix to add if it does not exist.
512         (find_or_generate_expression): Remove now-wrong condition.
513         (create_expression_by_pieces): Fix condition and comment reason
514         for it.
515         (insert_aux): Fix condition and comment reasons for it.
516         Factor insertion code from here.
517         (insert_into_preds_of_block): To here.  Fix conditions in factored
518         function and comment reasons for them.
519
520 2004-11-30  Ira Rosen  <irar@il.ibm.com>
521
522         PR tree-opt/18607
523         * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
524         variable for data_reference when looking for memtag.
525
526 2004-11-30  Jakub Jelinek  <jakub@redhat.com>
527
528         * c-opts.c (check_deps_environment_vars): If spec != NULL, set
529         deps_seen.
530
531 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
532
533         * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
534         tree_low_cst instead of TREE_INT_CST_LOW.
535
536 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
537
538         PR target/18173
539         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
540         decls that are assembled before vectorization takes place.
541         (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
542
543 2004-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
544
545         * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
546         if local_alloc modified jumps.
547
548 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
549
550         * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
551         on TLS symbols.
552         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
553         check.
554
555 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
556
557         * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
558         * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
559
560         * mklibgcc.in: Drastic restructure for comprehensibility.
561         Remove the old hidden-directive hack.
562         Eliminate support for .txt files in LIB2ADD etc (never used).
563         Eliminate support for assembly source files in LIB2ADDEH* and
564         LIBUNWIND (also never used).
565         Build up dependency lists for libraries incrementally.
566         If we have SHLIB_LINK, compile each file twice, once for the
567         static and once for the shared library; also probe for
568         -fvisibility=hidden in the generated libgcc.mk.  If found,
569         pass that and -DHIDE_EXPORTS to the compilation of every C
570         source file going into the static library.  If found, generate
571         hidden-directive lists for every assembly source file going
572         into the static library, but incorporate them with -include
573         instead of ld -r.
574         Write comments into generated libgcc.mk to facilitate debugging.
575         * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
576         * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
577
578         * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
579         -Zdynamiclib case.
580
581 2004-11-29  Richard Henderson  <rth@redhat.com>
582
583         * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
584         (handled_component_p): Likewise.
585         * alias.c (can_address_p): Reformat and simplify.  Handle
586         REAL/IMAGPART_EXPR.  Do not disable addressability based on
587         alias set zero.
588         * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
589         check for REAL/IMAGPART_EXPR.
590         * gimplify.c (gimplify_compound_lval): Likewise.
591         * tree-cfg.c (verify_expr): Likewise.
592         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
593         * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
594         (convert_local_reference): Likewise.
595         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
596
597 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
598
599         * expr.c (emit_group_load_1): Don't die on const_int orig_src.
600
601 2004-11-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
602
603         PR pch/14940
604         * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
605         * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
606         and host_xmake_file using new host configuration files.
607
608 2004-11-29  Roger Sayle  <roger@eyesopen.com>
609
610         * reg-stack.c (change_stack): Improve algorithm used to pop regs
611         off the stack to maximize ffreep usage and reduce fxch count.
612
613 2004-11-30  James A. Morrison  <phython@gcc.gnu.org>
614
615         PR middle-end/18596
616         * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
617         on errors.
618
619 2004-11-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
620
621         * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
622         REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
623
624 2004-11-30  Ben Elliston  <bje@au.ibm.com>
625
626         * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
627
628 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
629
630         PR c/18479
631         * c-common.c (handle_visibility_attribute): When the type decl
632         is really a identifier node, warn about being ignored and return.
633
634 2004-11-29  Richard Henderson  <rth@redhat.com>
635
636         * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
637
638 2004-11-29  Steven Bosscher  <stevenb@suse.de>
639
640         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
641         Remove CASE_DROPS_THROUGH checks, it is never defined.
642         * cfglyout.c (fixup_reorder_chain): Likewise.
643         * cfgrtl.c (rtl_verify_flow_info): Likewise.
644         * stmt.c (expand_case): Likewise.
645         * cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
646         it is now always 0.
647         * system.h (CASE_DROPS_THROUGH): Poison.
648         * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
649         * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
650
651         * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
652
653 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
654
655         PR middle-end/18725
656         * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
657         shared always.
658
659 2004-11-29  Diego Novillo  <dnovillo@redhat.com>
660
661         PR tree-optimization/18712
662         * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
663         WORK_STACK by reference.
664         Call VEC_safe_push instead of VEC_quick_push.
665         Update all users.
666
667 2004-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
668
669         PR c/7544
670         * Makefile.in (c-lang.o): Update dependencies.
671         * c-lang.c: Include "c-pragma.h".
672         (finish_file): Call maybe_apply_pending_pragma_weaks.
673         * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
674         * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
675
676 2004-11-29  Richard Henderson  <rth@redhat.com>
677
678         PR target/17224
679         * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
680         outside the referenced object.
681
682 2004-11-29  Kazu Hirata  <kazu@cs.umass.edu>
683
684         * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
685         EDGE_PRED instead of PHI_ARG_EDGE.
686         * tree-ssa-live.c: Likewise.
687         * tree-ssa-loop-manip.c: Likewise.
688         * tree-ssa.c: Likewise.
689
690         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
691         simplifying edge manipulation.
692
693         * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
694         EDGE_COUNT.
695
696         * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
697         only when needed.
698
699         * cfg.c (flow_obstack): Remove.
700         (flow_firstobj): Likewise.
701         (init_flow): Remove all uses of flow_obstack.
702
703 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
704
705         * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
706         to named_section.
707
708 2004-11-29  Nathan Sidwell  <nathan@codesourcery.com>
709
710         * opts.c (decode_options): Do not set max-inline-insns-rtl.
711         (common_handle_option): Likewise.
712         * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
713         * params.h (MAX_INLINE_INSNS_RTL): Remove.
714         * doc/invoke.texi (max-inline-insns-rtl): Remove.
715
716 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
717
718         PR target/9571
719         * varasm.c (default_elf_select_section_1): Pass decl to named_section.
720
721 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
722
723         PR middle-end/18164
724         * gimplify.c (gimplify_asm_expr): If the length of an output operand
725         is zero, do not process it, just let it go through.
726
727 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
728             Diego Novillo  <dnovillo@redhat.com>
729
730         PR/18662, also backported from tree-cleanup-branch.
731         * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
732         always call maybe_clean_eh_stmt and modify_stmt.
733
734 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
735
736         PR/18664
737         * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
738         Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
739         * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
740         add an inverse VIEW_CONVERT_EXPR to const_val.
741
742         PR/18657
743         * tree-nested.c (check_for_nested_with_variably_modified): New.
744         (create_nesting_tree): Call it.
745
746         * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
747         special code for assigning to non-pointer.
748         (is_escape_site): If RHS is a conversion between pointer and integer
749         types,  this is an escape site.
750
751         * gcse.c (insert_store): Error if try to insert store on abnormal edge.
752         (store_motion): Don't move store if any edge we'd want to move it
753         to is abnormal.
754
755         * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
756         non-zero lower bound.
757
758         * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
759
760 2004-11-28  Matt Kraai  <kraai@alumni.cmu.edu>
761
762         PR diagnostic/17594
763         * opts.c (find_opt): Require that the input match a switch exactly
764         or that the switch take a joined option to be interpreted as a
765         match for another language.
766
767 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
768
769         * timevar.def (TV_TREE_REDPHI): New timevar.
770         * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
771
772 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
773
774         PR preprocessor/17651
775         * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
776         flag_no_line_commands.
777         * c-ppoutput.c (pp_file_change): Remove now-redundant check of
778         flag_no_output.
779
780 2004-11-28  Theodore A. Roth  <troth@openavr.org>
781
782         * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
783         warning if the function name does not begin with "__vector" and the
784         function has either the 'signal' or 'interrupt' attribute.
785
786 2004-11-28  Theodore A. Roth  <troth@openavr.org>
787
788         * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
789         atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
790         atmega325, atmega3250, atmega645 and atmega6450.
791         * config/avr/avr.h (LINK_SPEC): Ditto.
792         (LIB_SPEC): Ditto.
793         (LIBGCC_SPEC): Ditto.
794         (CRT_BINUTILS_SPECS): Ditto.
795         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
796
797 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
798
799         PR preprocessor/17610
800         * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
801
802 2004-11-28  Jeff Law  <law@redhat.com>
803
804         * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
805         (pass_maybe_create_global_var): New.
806         * tree-pass.h (pass_maybe_create_global_var): Declare.
807         * tree-optimize.c (init_tree_optimization_passes): Link in
808         pass_maybe_create_global_var.
809
810 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
811
812         * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
813
814 2004-11-28  Ulrich Weigand  <uweigand@de.ibm.com>
815
816         PR rtl-optimization/18420
817         * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
818
819 2004-11-28  Steven Bosscher  <stevenb@suse.de>
820             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
821
822         * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
823         * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
824         that the case is in range, to make sure the casesi insn is always
825         in range and never falls through.
826         (casesi1): Add comment to explain why casesi never falls through.
827         Remove the unnamed special case casesi pattern.
828
829 2004-11-28  Hans-Peter Nilsson  <hp@bitrange.com>
830
831         PR target/18331
832         * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
833         "*movdicc_real".  Only match reversible comparisons.
834         ("*movdicc_real_nonreversible"): New pattern, split from
835         "*movdicc_real".  Match only nonreversible comparisons.  Exclude
836         reversed alternatives.
837         ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
838         Similar.
839
840 2004-11-27  Richard Henderson  <rth@redhat.com>
841
842         * config/ia64/ia64.md: Move all define_predicate's ...
843         * config/ia64/predicates.md: ... here.  New file.
844
845 2004-11-27  Per Bothner  <per@bothner.com>
846
847         PR bootstrap/18142
848         Re-applied following, with two modifications: add a URL for the
849         fixed cctools; only exit if $build = $target.
850
851         2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
852         * configure.ac (powerpc-*-darwin*): Require assembler to support
853         .machine directive.
854         * configure: Regenerate.
855
856 2004-11-28  David Edelsohn  <edelsohn@gnu.org>
857
858         PR target/16800
859         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
860         EQ, GTU, and LTU costs.  Add costs for GT, LT, and UNORDERED.
861         Distinguish between SImode and DImode CONST_INT.
862
863 2004-11-28  Andreas Fischer <a_fisch@gmx.de>
864             Alan Modra  <amodra@bigpond.net.au>
865
866         PR target/16343
867         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
868         functions, strings and thread-local vars.
869
870 2004-11-28  Alan Modra  <amodra@bigpond.net.au>
871
872         * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
873         * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
874         * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
875         to allow non-darwin ABIs to optimize away code.
876         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
877
878 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
879
880         * tree.c (operand_equal_for_phi_arg_p): New.
881         * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
882         * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
883         Replace operand_equal_p with operand_for_phi_arg_p
884         appropriately.
885
886         * bb-reorder.c (find_traces_1_round): Speed up by using
887         EDGE_COUNT instead of FOR_EACH_EDGE.
888
889         * fold-const.c, config/i386/linux64.h: Fix comment typos.
890
891 2004-11-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
892
893         PR pch/14940
894         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
895
896 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
897
898         * config/i386/linux.h: Fix a comment typo.
899         * doc/extend.texi: Fix a typo.
900
901 2004-11-27  Jeff Law  <law@redhat.com>
902
903         * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
904         are merged.
905
906 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
907
908         * config/i386/linux64.h (REG_NAME): Define.
909
910 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
911
912         * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
913         unsigned and type signed, build ABS_EXPR with signed_type (ctype)
914         and only afterwards convert to ctype.
915
916 2004-11-27  Richard Sandiford  <rsandifo@redhat.com>
917
918         * config/mips/mips-protos.h (function_arg_boundary): Declare.
919         * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
920         (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
921         (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
922         * config/mips/mips.c (function_arg_boundary): New function.
923         Impose a maximum alignment of STACK_BOUNDARY.
924
925 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
926
927         PR rtl-optimization/17825
928         * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
929         or not.
930
931 2004-11-27  Alan Modra  <amodra@bigpond.net.au>
932
933         PR target/12769
934         * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
935         from rs6000_default_long_calls for libcalls.
936
937 2004-11-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
938
939         * expmed.c (extract_bit_field): When extracting from non-integer mode,
940         force a SUBREG into a register because we may be taking a further
941         SUBREG of it.
942
943 2004-11-27  Di-an Jan  <dianj@freeshell.org>
944
945         * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
946
947 2004-11-26  Robert Millan  <robertmh@gnu.org>
948
949         Changes for k*bsd-gnu support.
950         * config/i386/linux.h: Define REG_NAME to allow overriding of
951         register names in sc structure.
952         * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
953         of sc->reg.
954         * config.gcc: Detect x86_64-k*bsd-gnu systems.
955
956 2004-11-26  Jeff Law  <law@redhat.com>
957
958         * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
959         retrieve annotations or pointer info before it's necessary.
960         Reorder tests for early continue of the loop.  Manually CSE
961         SSA_NAME_VAR.
962
963 2004-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
964
965         * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
966         * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
967         (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
968         * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
969         to a fixed reg if the source is the Return Address register.
970         Implement new Rule 15.
971         * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
972         * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
973         sparc_dwarf_handle_frame_unspec.
974         (gen_save_register_window): New function.
975         (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
976         (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
977         (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
978         Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
979         (sparc_asm_function_prologue): Do not emit call frame debugging info.
980         (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
981         (sparc_expand_epilogue): Likewise.
982         (sparc_dwarf_handle_frame_unspec): New function.
983         * config/sparc/sparc.md (save_register_window): Remove.
984         (save_register_windowdi): Rewrite modelled on the callframe debug info.
985         (save_register_windowsi): Likewise.
986
987 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
988
989         * config/frv/frv-protos.h: Guard ifcvt functions declarations with
990         BB_HEAD, not BLOCK_HEAD.
991
992 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
993
994         * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
995         scratch insns that set a register live at the join point.
996
997 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
998
999         * cse.c, tree-ssa-operands.c: Fix comment typos.
1000
1001         * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
1002
1003 2004-11-26  James A. Morrison  <phython@gcc.gnu.org>
1004
1005         PR target/18510
1006         * doc/extend.texi (SPARC VIS Built-in Functions): New section.
1007
1008 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
1009
1010         * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
1011         check that tests if all edges go to the same destination.
1012
1013         * bitmap.c (bitmap_find_bit): Speed up by traversing from
1014         head->first if that seems profitable.
1015
1016 2004-11-25  Jeff Law  <law@redhat.com>
1017
1018         * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
1019         * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
1020         (pass_loop_done): Use TV_TREE_LOOP_FINI.
1021
1022 2004-11-26  Alan Modra  <amodra@bigpond.net.au>
1023
1024         PR rtl-optimization/16356
1025         * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
1026         separate output register and one less jump.  Enable for powerpc64.
1027         (floatdisf2): Adjust for above.
1028
1029 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
1030
1031         * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
1032         (GCC_DRIVER_HOST_INITIALIZATION): Define.
1033
1034 2004-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
1035
1036         PR middle-end/17957
1037         * tree-complex.c (vector_inner_type): New variable moved from
1038         build_word_mode_vector_type.
1039         (vector_last_type): Likewise.
1040         (vector_last_nunits): Likewise.
1041         (build_word_mode_vector_type): Use the new variables.
1042         * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
1043         (GTFILES): Add tree-complex.c.
1044         (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
1045
1046 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
1047
1048         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
1049         __XTENSA_WINDOWED_ABI__.
1050
1051 2004-11-25  Richard Henderson  <rth@redhat.com>
1052
1053         * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument.  Save
1054         args_size adjustments for calls even with cfa as stack pointer.
1055         Search calls for stack adjustments after the insn is issued.
1056         (dwarf2out_frame_debug): Add after_p argument; pass it on.
1057         * dwarf2out.h (dwarf2out_frame_debug): Update to match.
1058         * final.c (final_start_function, final_scan_insn): Likewise.
1059
1060 2004-11-25  Richard Henderson  <rth@redhat.com>
1061
1062         PR c++/6764
1063         * reload1.c (set_initial_eh_label_offset): New.
1064         (set_initial_label_offsets): Use it.
1065
1066 2004-11-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1067
1068         * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
1069         before calling life_analysis and release them after.
1070
1071 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
1072
1073         * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
1074         duplicate code.
1075
1076 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
1077
1078         * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
1079         BITMAP_OBSTACK_ALLOC.
1080         (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
1081
1082 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
1083
1084         parts of PR rtl-opt/18463, rtl-opt/17647
1085         * cse.c (canon_for_address): New function.
1086         (find_best_addr): Call canon_for_address before getting the
1087         address's cost when checking if we should take that address.
1088
1089 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
1090
1091         * tree-phinodes.c (add_phi_arg): Take "tree" instead of
1092         "tree *" as the first argument.
1093         * tree-flow.h: Update the prototype of add_phi_arg.
1094         * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
1095         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
1096         tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
1097         tree-vectorizer.c: Update all call sites of add_phi_arg.
1098
1099 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1100
1101         * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
1102         * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
1103         (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
1104         (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
1105
1106 2004-11-25  Andrew MacLeod  <amacleod@redhat.com>
1107
1108         PR tree-optimization/18587
1109         * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
1110         call clobbered caches as invalid.
1111         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New.  Flag
1112         indicating whether the call clobbered operand cache is valid.
1113         (ssa_ro_call_cache_valid): New.  Flag indicating whether the
1114         pure/const call operand cache is valid.
1115         (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New.  Cached
1116         list of operands for cached call virtual operands.
1117         (clobbered_aliased_loads, clobbered_aliased_stores,
1118         ro_call_aliased_load): New.  flags caching whether alias bits are
1119         to be set in call stmt's.
1120         (fini_ssa_operands): Remove call operand caches if present.
1121         (get_expr_operands, get_asm_expr_operands,
1122         get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
1123         (get_call_expr_operands): Add call clobbered variables first.
1124         (add_stmt_operand): Take stmt annotation rather than stmt as a param.
1125         (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
1126         if it is valid, otherise fill the cache.
1127         * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
1128         * tree-flow.h (struct var_ann_d): Add in_vuse_list and
1129         in_v_may_def_list bits.
1130         * tree-ssa-operands.c (cleanup_v_may_defs): New.  Clear the
1131         in_list bits for the v_may_def elements and empty the operand
1132         build array
1133         (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
1134         VUSES by checking the in_v_may_def_list bit.
1135         (append_v_may_def, append_vuse): Use the in_list bit rather than
1136         scanning the array for duplicates.
1137
1138 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
1139
1140         * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
1141         displacements are not short.
1142
1143 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
1144
1145         * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
1146         to load addresses.
1147
1148 2004-11-25  Mark Mitchell  <mark@codesourcery.com>
1149
1150         PR c++/18001
1151         * c-common.h (lvalue_use): Move here from c-ctypeck.c.
1152         (lvalue_or_else): Declare.
1153         * c-common.c (lvalue_or_else): Move here from c-typeck.c.
1154         * c-typeck.c (lvalue_use): Remove.
1155         (lvalue_or_else): Remove.
1156
1157         PR c++/18556
1158         * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
1159         unemitted variables with static storage duration.
1160
1161 2004-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
1162
1163         * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
1164         message with \n.
1165
1166 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1167
1168         * config/rs6000/altivec.md (VIshort): New mode macro.
1169         (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
1170         with ...
1171         (altivec_vaddu<VI_char>s): ... this.
1172         (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
1173         with ...
1174         (altivec_vadds<VI_char>s): ... this.
1175         (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
1176         with ...
1177         (altivec_vsubu<VI_char>s): ... this.
1178         (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
1179         with ...
1180         (altivec_vsubs<VI_char>s): ... this.
1181         (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
1182         with ...
1183         (altivec_vavgu<VI_char>): ... this.
1184         (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
1185         with ...
1186         (altivec_vavgs<VI_char>): ... this.
1187         (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
1188         (altivec_vmsumu<VI_char>m): ... this.
1189         (altivec_vmsummbm, altivec_vmsummhm): Replace
1190         with ...
1191         (altivec_vmsumm<VI_char>m): ... this.
1192         (altivec_vandc): Remove.
1193         (*andc<mode>3): Renamed to ...
1194         (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
1195         (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
1196         with ...
1197         (altivec_vrl<VI_char>): ... this.
1198         (altivec_vslb, altivec_vslh, altivec_vslw): Replace
1199         with ...
1200         (altivec_vsl<VI_char>): ... this.
1201         (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
1202         with ...
1203         (altivec_vsr<VI_char>): ... this.
1204         (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
1205         with ...
1206         (altivec_vsra<VI_char>): ... this.
1207         (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
1208         (altivec_vsum4s<VI_char>s): ... this.
1209         (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
1210         with ...
1211         (altivec_vperm_<mode>): ... this.
1212         (altivec_vsel_4sf): Rename to ...
1213         (altivec_vsel_v4sf): ... here.
1214         (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
1215         with ...
1216         (altivec_vsel_<mode>): ... this.
1217         (altivec_vsldoi_4si, altivec_vsldoi_8hi,
1218         altivec_vsldoi_16qi): Rename to ...
1219         (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
1220         altivec_vsldoi_v16qi): ... here.
1221         (altivec_vsldoi_4sf): Rename to ...
1222         (altivec_vsldoi_v4sf): ... here.
1223         (altivec_predicate_v4si, altivec_predicate_v8hi,
1224         altivec_predicate_v16qi): Replace with ...
1225         (altivec_predicate_<mode>): ... this.
1226         (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
1227         with ...
1228         (altivec_lve<VI_char>x): ... this.
1229         (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
1230         with ...
1231         (altivec_stve<VI_char>x): ... this.
1232         (absv16qi2, absv8hi2, absv4si2): Replace
1233         with ...
1234         (abs<mode>2): ... this.
1235         (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
1236         with ...
1237         (altivec_abss_<mode>): ... this.
1238         (vec_realign_load_v16qi, vec_realign_load_v8hi,
1239         vec_realign_load_v4si): Replace with ...
1240         (vec_realign_load_<mode>): ... this.
1241         * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
1242         insn names.
1243         (rs6000_expand_ternop_builtin): Likewise.
1244
1245 2004-11-25  Andrew Haley  <aph@redhat.com>
1246
1247         * gcc.c (process_command): Don't supply -v to linker.
1248
1249 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1250
1251         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
1252         instead of `%s' in diagnostic.
1253
1254 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1255
1256         * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
1257         (FREE_REG_SET): Adjust.
1258         * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
1259         * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
1260         (BITMAP_ALLOC): ... here.
1261         (BITMAP_OBSTACK_FREE): Rename to ...
1262         (BITMAP_FREE): Don't check for NULL bitmap here.
1263         * tree-ssa-pre.c (value_insert_into_set_bitmap,
1264         bitmap_set_new): Use new names.
1265
1266         * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
1267         * df.c (df_free): Likewise.
1268         * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
1269         * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
1270
1271         * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
1272         (ALLOC_REG_SET): ... here.
1273         (FREE_REG_SET): Adjust.
1274         (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
1275         * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
1276         * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
1277         * cfgrtl.c (rtl_split_block, rtl_split_edge,
1278         safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
1279         * flow.c (update_life_info, calculate_global_regs_live,
1280         allocate_bb_life_data, init_propagate_block_info): Adjust.
1281         * global.c (build_insn_chain): Adjust.
1282         * ifcvt.c (dead_or_predicable): Adjust.
1283         * loop-iv.c (simplify_using_initial_values): Adjust.
1284         * recog.c (peephole2_optimize): Adjust.
1285         * sched-deps.c (init_deps_global): Adjust.
1286
1287 2004-11-25  Ralf Corsepius <ralf.corsepius@rtems.org>
1288
1289         * config.gcc (avr-*-rtems*): Fix typo.
1290
1291 2004-11-25  J"orn Rennecke <joern.rennecke@st.com>
1292
1293         * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
1294
1295 2004-11-24  Jeff Law  <law@redhat.com>
1296
1297         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
1298         the number of queries to random elements in the ai->written_vars
1299         bitmap.
1300
1301 2004-11-24  Roger Sayle  <roger@eyesopen.com>
1302
1303         * config/i386/i386.c (override_options): Disable x87 fancy math
1304         intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
1305
1306 2004-11-24  Roger Sayle  <roger@eyesopen.com>
1307
1308         * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
1309         system header conflict on AIX 5.2.
1310         * configure: Regenerate.
1311
1312 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1313
1314         * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
1315         instead of calling phi_arg_from_edge.
1316
1317         * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
1318         with e->dest_idx.
1319
1320 2004-11-24  Ben Elliston  <bje@au.ibm.com>
1321
1322         * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
1323         * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
1324         * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
1325         Likewise.
1326
1327 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1328
1329         * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
1330
1331         * tree-inline.c (copy_body_r): Explicitly copy a constant if the
1332         type will be remapped.
1333
1334 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1335
1336         * c-opts.c (c_common_post_options): Don't clear
1337         flag_inline_functions.
1338         * dojump.c (clear_pending_stack_adjust): Remove check on
1339         flag_inline_functions, it's always true.
1340         * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
1341         that can never trigger.
1342         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
1343         flag_inline_trees, now that flag_inline_functions is never
1344         cleared.
1345         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
1346         flag_inline_functions at optimization levels greater than
1347         or equal to 3.  This is already done by default.
1348
1349 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1350
1351         * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
1352         instead to find the PHI argument.  Do not take I as an
1353         argument.
1354         (eliminate_phi): Adjust the call to eliminate_build.  Do not
1355         take I as an argument.
1356         (rewrite_trees): Adjust the call to eliminate_phi.
1357
1358 2004-11-24  Richard Sandiford  <rsandifo@redhat.com>
1359
1360         * optabs.h (force_expand_binop): Declare.
1361         * optabs.c (force_expand_binop): Export.
1362         * stmt.c (shift_return_value): Delete.
1363         (expand_return): Don't call it.
1364         * expr.h (shift_return_value): Declare.
1365         * calls.c (shift_returned_value): Delete in favor of...
1366         (shift_return_value): ...this new function.  Leave the caller to check
1367         for non-BLKmode values passed in the msb of a register.  Take said mode
1368         and a shift direction as argument.  Operate on the hard function value,
1369         not a pseudo.
1370         (expand_call): Adjust accordingly.
1371         * function.c (expand_function_start): If a non-BLKmode return value
1372         is padded at the last significant end of the return register, use the
1373         return value's natural mode for the DECL_RESULT, not the mode of the
1374         padded register.
1375         (expand_function_end): Shift the same sort of return values left by
1376         the appropriate amount.
1377
1378 2004-11-24  Matt Austern  <austern@apple.com>
1379
1380         * recog.c (recog_memoized_1): Remove.
1381         * recog.h (recog_memoized_1): Remove declaration.
1382         (recog_memoized): Change from macro to inline function.
1383
1384 2004-11-24  Devang Patel  <dpatel@apple.com>
1385
1386         PR/18555
1387         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
1388         * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
1389
1390 2004-11-24  Devang Patel  <dpatel@apple.com>
1391
1392         * gcc.c (process_command): Supply -v to linker.
1393
1394 2004-11-24  David Edelsohn  <edelsohn@gnu.org>
1395             Paolo Bonzini  <bonzini@gnu.org>
1396
1397         * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
1398         vector modes without ALTIVEC_ABI.  Use GCC vector instead of
1399         synthetic vector.
1400         (rs6000_pass_by_reference): Split conditional into pieces.  Use
1401         GCC vector instead of synthetic vector.
1402
1403 2004-11-24  Aldy Hernandez  <aldyh@redhat.com>
1404
1405         * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
1406         thread-local variable is invariant.
1407
1408 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1409
1410         * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
1411         Handle TYPE_REF_CAN_ALIAS_ALL.
1412         (print_declaration): Print array dimensions like dump_generic_node.
1413
1414         * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and
1415         ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them.
1416
1417 2004-11-24  Nathan Sidwell  <nathan@codesourcery.com>
1418
1419         * bitmap.c (INLINE): Do not define.
1420         (bitmap_elem_to_freelist, bitmap_element_free,
1421         bitmap_element_allocate, bitmap_clear, bitmap_element_zerop,
1422         bitmap_element_link, bitmap_find_bit): Use inline keyword/macro.
1423
1424 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1425
1426         * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to
1427         find the index of a PHI argument.  Use e->dest_idx instead.
1428         Replace hint with index.
1429
1430         * tree-ssa-dom.c (cprop_into_successor_phis): Replace index
1431         with indx.
1432
1433 2004-11-24  Diego Novillo  <dnovillo@redhat.com>
1434
1435         * tree-ssa-alias.c (merge_pointed_to_info): Fix comment
1436         regarding PT_MALLOC.
1437
1438 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
1439
1440         * config/i386/i386.c (optimization_options): Use
1441         SUBTARGET_OPTIMIZATION_OPTIONS.
1442         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define.
1443         (TARGET_SUBTARGET_DEFAULT): Don't include
1444         MASK_OMIT_LEAF_FRAME_POINTER.
1445
1446 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
1447
1448         * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE):
1449         Define to false.
1450
1451 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
1452
1453         * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES):
1454         Use amd64 instead of 64.
1455
1456 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
1457             Joseph Myers  <joseph@codesourcery.com>
1458
1459         * crtstuff.c (IN_LIBGCC2): Define it.
1460         (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
1461         instead of HAVE_LD_RO_RW_SECTION_MIXING.
1462         * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
1463         * dwarf2out.c (named_section_eh_frame_section): Check
1464         EH_TABLES_CAN_BE_READ_ONLY.
1465         * except.c (default_exception_section): Likewise.
1466         * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
1467         * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.
1468
1469 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1470
1471         * tree-ssa-pre.c (phi_translate): Use find_edge to find the
1472         index of a PHI argument.
1473
1474         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use
1475         find_edge to find the index of a PHI argument.
1476
1477 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1478
1479         * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
1480         and LABELED_BLOCK_EXPR.
1481         * gimplify.c (gimplify_labeled_block_expr): Remove.
1482         (gimplify_exit_block_expr): Remove.
1483         (gimplify_expr): Don't call them.
1484         * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
1485         and LABELED_BLOCK_EXPR.
1486         (estimate_num_insns_1): Likewise.
1487         (walk_tree): Likewise.
1488         * tree-pretty-print.c (dump_generic_node): Don't handle
1489         EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
1490         * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
1491         (LABELED_BLOCK_EXPR): Likewise.
1492         * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
1493         (LABELED_BLOCK_BODY): Likewise.
1494         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
1495         (EXIT_BLOCK_RETURN): Removed.
1496
1497 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1498
1499         * cfgrtl.c (rtl_delete_block): Fix comment.
1500         * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG
1501         or BLOCK_END insn notes.
1502         * jump.c (squeeze_notes): Likewise.
1503         * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and
1504         EH_REGION_END notes, we never have them to begin with.
1505         * sched-deps.c (sched_analyze_insn): When updating loop notes,
1506         verify that we have indeed only recorded loop notes.
1507         (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes.
1508         Only record loop notes.
1509
1510         * cfgexpand.c (tree_expand_cfg): Fix comment.
1511
1512         * passes.c (rest_of_compilation): Don't do a second call to
1513         convert_from_eh_region_ranges from here, it's already called
1514         from cfgexpand.c.
1515         * except.c (resolve_fixup_regions): Remove.
1516         (remove_fixup_regions): Remove.
1517         (convert_from_eh_region_ranges_1): Remove.
1518         (convert_from_eh_region_ranges): Remove the case where EH is
1519         not already lowered at the tree level.  We always lower there.
1520
1521 2004-11-24  Paolo Bonzini  <bonzini@gnu.org>
1522
1523         PR c++/16882
1524         * tree.c (make_vector_type): Move qualifiers to the vector type,
1525         use the inner type's main variant and build a main variant for
1526         the vector type if necessary.
1527         (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS.
1528
1529 2004-11-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
1530
1531         * target.h (late_rtl_prologue_epilogue): Remove.
1532         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
1533         * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
1534         * passes.c (rest_of_handle_prologue_epilogue): Remove and move
1535         remaining bits to...
1536         (rest_of_handle_flow2): ...here.
1537         (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
1538         * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
1539
1540 2004-11-23  Mark Mitchell  <mark@codesourcery.com>
1541
1542         * hwint.h (HOST_LONG_LONG_FORMAT): New macro.  Use it throughout.
1543         * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define.
1544         * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document.
1545
1546 2004-11-24  Daniel Jacobowitz  <dan@codesourcery.com>
1547
1548         * config/i386/i386.c (override_options): Move
1549         SUBTARGET_OVERRIDE_OPTIONS before defaulting
1550         flag_omit_frame_pointer.
1551
1552 2004-11-23  Richard Henderson  <rth@redhat.com>
1553
1554         * rtl.h (validate_subreg): Declare.
1555         * emit-rtl.c (validate_subreg): New.
1556         (gen_rtx_SUBREG): Use it.
1557         * simplify-rtx.c (simplify_subreg): Likewise.
1558         (simplify_gen_subreg): Likewise.  Remove duplicate asserts.
1559         * expr.c (emit_move_insn_1): Tidy complex move code.  Use memory
1560         fallback whenever gen_realpart/gen_imagpart would not be able to
1561         create SUBREGs.
1562
1563 2004-11-23  Richard Henderson  <rth@redhat.com>
1564
1565         * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of
1566         hard-coding avoiding calls to gen_rtx_SUBREG.  Split complex return
1567         modes to CONCAT.
1568
1569 2004-11-23  Diego Novillo  <dnovillo@redhat.com>
1570
1571         PR tree-optimization/18618
1572         * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare.
1573         (insert_phi_nodes_for): Change third argument to VEC(basic_block).
1574         * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap).
1575         Update all users.
1576         (stmts_to_rescan): Likewise.
1577         (const_and_copies_stack): Likewise.
1578         (nonzero_vars_stack): Likewise.
1579         (vrp_variables_stack): Likewise.
1580
1581 2004-11-23  Richard Henderson  <rth@redhat.com>
1582
1583         * cse.c (record_jump_cond_subreg): New.
1584         (record_jump_cond): Use it instead of gen_lowpart.
1585
1586 2004-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
1587             Joseph Myers  <joseph@codesourcery.com>
1588
1589         * config/sol2-c.c (solaris_register_pragmas): Use
1590         c_register_pragma_with_expansion.
1591         * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define.
1592         * c-pragma.c (c_register_pragma): Update call to
1593         cpp_register_pragma.
1594         (c_register_pragma_with_expansion): New function.
1595         (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION.
1596         * c-pragma.h (c_register_pragma_with_expansion): New prototype.
1597         * doc/extend.texi (Solaris Pragmas): Mention macro expansion for
1598         #pragma align.
1599         * doc/tm.texi (c_register_pragma_with_expansion,
1600         HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document.
1601
1602 2004-11-23  Richard Henderson  <rth@redhat.com>
1603
1604         * combine.c (gen_lowpart_for_combine): Factor out mode of x as well
1605         as mode sizes into local temporaries.  Unify failure path.
1606
1607 2004-11-23  Richard Henderson  <rth@redhat.com>
1608
1609         * emit-rtl.c, rtl.h (subreg_hard_regno): Remove.
1610         * caller-save.c (mark_set_regs): Use subreg_regno instead.
1611         * final.c (alter_subreg): Likewise.
1612         * local-alloc.c (reg_is_born): Likewise.
1613
1614 2004-11-23  Richard Henderson  <rth@redhat.com>
1615
1616         * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly
1617         instead of using a SUBREG temporary.
1618
1619 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
1620
1621         * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering
1622         two checks.
1623
1624 2004-11-23  Zack Weinberg  <zack@codesourcery.com>
1625
1626         * function.h (struct function): Remove calls_longjmp.
1627         (current_function_calls_longjmp): Delete.
1628         * tree.h (ECF_LONGJMP): Delete.
1629         (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN)
1630         (ECF_LIBCALL_BLOCK): Everybody slide down one.
1631         (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments.
1632         * builtins.c (expand_builtin_longjmp): Don't set
1633         current_function_calls_longjmp.
1634         * calls.c (special_function_p): Mark longjmp and siglongjmp
1635         with ECF_NORETURN, not ECF_LONGJMP.
1636         (emit_call_1, expand_call, emit_library_call_value_1):
1637         Don't check for ECF_LONGJMP.
1638         * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt)
1639         (need_fake_edge_p): Likewise.
1640
1641         * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP.
1642         * system.h: Poison NON_SAVING_SETJMP.
1643         * function.c (use_register_for_decl)
1644         * gcse.c (compute_hash_table_work, compute_store_table)
1645         * postreload-gcse.c (record_opr_changes)
1646         * reload.c (find_equiv_reg)
1647         * reload1.c (reload)
1648         * config/i386/i386.c (ix86_can_use_return_insn_p):
1649         Remove code conditional on NON_SAVING_SETJMP.
1650         * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP.
1651
1652         * config/i386/sysv3.h: Delete file.
1653         * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete.
1654
1655 2004-11-23  Dorit Naishlos  <dorit@il.ibm.com>
1656
1657         * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
1658         the vectorization factor is greater than the iteration count.
1659         (vect_gen_niters_for_prolog_loop): No need to calculate min if the
1660         iteration count is known.
1661
1662         (vect_build_symbol_bound): Removed. Its functionality moved to
1663         vect_generate_tmps_on_preheader.
1664         (vect_generate_tmps_on_preheader): Moved content of
1665         vect_build_symbol_bound here instead of calling it.  Changed some
1666         variables names.
1667
1668         (vect_build_loop_niters): We don't expect a new_bb to be generated -
1669         use gcc_assert.
1670         (vect_gen_niters_for_prolog_loop): Likewise.
1671         (vect_gen_niters_for_prolog_loo): Likewise.
1672
1673         (slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
1674         (slpeel_add_loop_guard): Likewise.
1675         (slpeel_tree_peel_loop_to_edge): Likewise.
1676         (vect_do_peeling_for_alignment): Likewise.
1677
1678         (vect_get_first_index): Missing space.
1679
1680 2004-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
1681
1682         * config/s390/s390.md ("*iordi3"): Mark commutative.
1683         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
1684
1685 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
1686
1687         * tree-phinode.c (resize_phi_node): Abort when LEN is strictly
1688         greater than PHI_ARG_CAPACITY.
1689         (reserve_phi_args_for_new_edge): Initialize the new PHI
1690         argument to NULL_TREE.  Increment PHI_NUM_ARGS.
1691         (add_phi_arg): Add a PHI argument to the slot given by
1692         E->dest_idx.
1693         (remove_phi_arg_num): Do not write to PHI_ARG_EDGE.
1694         * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx.
1695         * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI
1696         argument by looking at PHI_ARG_DEF.
1697         (verify_phi_args): Check for a missing PHI argument.  Remove
1698         the check for duplicate PHI arguments.
1699         * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
1700         (phi_arg_d): Remove e.
1701
1702         * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
1703         by restricting to the case with two outgoing edges.
1704
1705 2004-11-23  Andreas Krebbel  <krebbel1@de.ibm.com>
1706
1707         * config/s390/s390.c (s390_backchain_string): Removed.
1708         (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info)
1709         (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg):
1710         Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and
1711         TARGET_KERNEL_BACKCHAIN to reflect the new options.
1712         * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros.
1713         (TARGET_KERNEL_BACKCHAIN): Removed.
1714         (TARGET_BACKCHAIN): Former triple state option change to a target flag.
1715         (TARGET_PACKED_STACK): New macro.
1716         (TARGET_SWITCHES): New switches added.
1717         (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain"
1718         removed.
1719         (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK.
1720         * config/s390/s390.md ("allocate_stack", "restore_stack_block")
1721         ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect
1722         the change in target switch semantics.
1723         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed.
1724         (TARGET_DEFAULT): MASK_BACKCHAIN added.
1725         * doc/invoke.texi: Added documentation for the new/changed options.
1726
1727 2004-11-23  Uros Bizjak  <uros@kss-loka.si>
1728
1729         PR rtl-optimization/18614
1730         * simplify-rtx.c (simplify_binary_operation): Do not
1731         simplify inner elements of constant arguments of
1732         VEC_CONCAT insn.
1733
1734 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1735
1736         * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use
1737         0 instead of NULL.
1738
1739 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
1740
1741         * tree-phinode.c (make_phi_node): Use a new variable,
1742         capacity, to receive the return value of ideal_phi_node_len.
1743
1744 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1745
1746         * gthr-solaris.h (__gthread_recursive_mutex_t): New type.
1747         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
1748         __gthread_recursive_mutex_init_function.
1749         (__gthread_key_create): Properly cast -1.
1750         (__gthread_recursive_mutex_init_function): New function.
1751         (__gthread_recursive_mutex_lock): Rewrite.
1752         (__gthread_recursive_mutex_trylock): Likewise.
1753         (__gthread_recursive_mutex_unlock): Likewise.
1754
1755 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
1756
1757         * config/c4x/t-rtems: New.
1758         * config.gcc: Reflect having added c4x/t-rtems.
1759
1760 2004-11-23  Dorit Naishlos <dorit@il.ibm.com>
1761
1762         PR tree-opt/18403
1763         PR tree-opt/18505
1764         * tree-vectorizer.c (vect_create_data_ref_ptr): Use
1765         lang_hooks.types.type_for_size instead of integer_type_node for the
1766         type of ptr_update.
1767
1768 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
1769
1770         * config.gcc (h8300-*-rtems*): Use h8300/t-rtems.
1771
1772 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
1773
1774         * config/arm/t-rtems: New.
1775         * config.gcc: Reflect having added arm/t-rtems.
1776
1777 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
1778
1779         * tree-cfg.c (tree_execute_on_growing_pred): New.
1780         (tree_cfg_hooks): Add tree_execute_on_growing_pred.
1781         * tree-flow.h: Add a prototype for
1782         reserve_phi_args_for_new_edge.
1783         * tree-phinodes.c (reserve_phi_args_for_new_edge): New.
1784         (add_phi_arg): Don't resize a PHI array.
1785
1786 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
1787
1788         * config.gcc: Add avr-*-rtems*.
1789         * config/avr/t-rtems: New.
1790         * config/avr/rtems.h: New.
1791
1792 2004-11-22  Daniel Berlin  <dberlin@dberlin.org>
1793
1794         * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's
1795         always the same as op1.  Use bitmap_ior_into and bitmap_and_into.
1796         Add comment to function.
1797
1798 2004-11-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1799
1800         PR pch/14940
1801         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__.
1802
1803         PR rtl-optimization/14838
1804         * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
1805         note.
1806         (get_last_nonnote_insn): Don't assume last insn is a note.
1807
1808 2004-11-22  Roger Sayle  <roger@eyesopen.com>
1809
1810         * fold-const.c (nondestructive_fold_binary_to_constant): Rename
1811         to fold_binary_to_constant.
1812         (nondestructive_fold_unary_to_constant): Likewise, rename to
1813         fold_unary_to_constant.
1814         (fold_relational_hi_lo): Update call to fold_binary_to_constant.
1815         * tree.h (nondestructive_fold_binary_to_constant): Update prototype.
1816         (nondestructive_fold_unary_to_constant): Likewise.
1817         * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant
1818         and fold_binary_to_constant.
1819         * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
1820         (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY
1821         and EXEC_UNARY with calls to fold_*nary_to_constant.
1822         * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
1823         (idx_find_step): Replace uses of EXEC_BINARY with calls to
1824         fold_binary_to_constant.
1825
1826 2004-11-22  Nick Clifton  <nickc@redhat.com>
1827
1828         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
1829         initialisation of 'e'.
1830
1831 2004-11-22  Roger Sayle  <roger@eyesopen.com>
1832
1833         * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro.
1834         * config/i386/i386.c (override_options):  Set MASK_NO_FANCY_MATH_387
1835         automatically for targets without TARGET_80387.
1836         * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2,
1837         sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2,
1838         *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3,
1839         fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2,
1840         *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2,
1841         *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3,
1842         *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2,
1843         atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2,
1844         atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2,
1845         acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2,
1846         log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2,
1847         fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2,
1848         logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2,
1849         expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2,
1850         exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2,
1851         rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2,
1852         floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2,
1853         frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2,
1854         frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2):
1855         Simplify conditionals using TARGET_USE_FANCY_MATH_387.
1856
1857 2004-11-22  Dale Johannesen  <dalej@apple.com>
1858
1859         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Conditionalize
1860         properly and comment.
1861
1862 2004-11-22  James A. Morrison  <phython@gcc.gnu.org
1863
1864         * config/sparc/sparc.c: Include insn-codes.h and langhooks.h.
1865         (sparc_init_builtins): New function.
1866         (sparc_init_vis_builtins): Create builtin functions for VIS
1867         instructions.
1868         (sparc_expand_builtin): Expand builtin functions for VIS instructions.
1869         (TARGET_INIT_BUILTINS): Define to sparc_init_builtins.
1870         (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin.
1871         (def_builtin): New macro for creating builtin functions.
1872         (P): New mode macro for pointer types.
1873         (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND,
1874         UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL,
1875         UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants.
1876         (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis,
1877         fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
1878         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis,
1879         faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns.
1880
1881 2004-11-22  Devang Patel  <dpatel@apple.com>
1882
1883         * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks.
1884
1885 2004-11-22  Devang Patel  <dpatel@apple.com>
1886
1887         * tree-if-conv.c (if_convertable_phi_p): Rename to ...
1888         (if_convertible_phi_p): ... new name.
1889         (if_convertable_modify_expr_p): Rename to ...
1890         (if_convertible_modify_expr_p): ... new name.
1891         (if_convertable_stmt_p): Rename to ...
1892         (if_convertible_stmt_p): ... new name.
1893         (if_convertable_bb_p): Rename to ...
1894         (if_convertible_bb_p): ... new name.
1895         (if_convertable_loop_p): Rename to ...
1896         (if_convertible_loop_p): ... new name.
1897
1898 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1899
1900         PR target/18444
1901         * configure.ac (threading): Accept 'posix95'.
1902         * configure: Regenerate.
1903         * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6,
1904         include sol26.h and default to posix95 threads if have_pthread_h.
1905         (sparc-*-solaris2*): Likewise.
1906         * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined.
1907         * gthr-posix95.h: New file.
1908         * config/sol26.h: New file.
1909         * doc/install.texi (--enable-threads): Document 'posix95'.
1910
1911 2004-11-23  Ben Elliston  <bje@au.ibm.com>
1912
1913         * pointer-set.h (pointer_set_contains): Remove.
1914         * pointer-set.c (pointer_set_contains): Likewise.
1915
1916 2004-11-22  Dale Johannesen  <dalej@apple.com>
1917
1918         * calls.c (expand_call): Do not call preserve_temp_slots.
1919
1920 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
1921
1922         * tree-flow.h: Remove the prototype for remove_phi_arg.
1923         Add a prototype for remove_phi_args.
1924         * tree-phinodes.c (remove_phi_arg): Remove.
1925         (remove_phi_args): New.
1926         * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead
1927         of remove_phi_arg.
1928
1929         * cfg.c (unchecked_make_edge): Call execute_on_growing_pred
1930         after making an edge.
1931         (remove_edge): Call execute_on_shrinking_pred before removing
1932         an edge.
1933         (redirect_edge_succ): Call execute_on_growing_pred and
1934         execute_on_shrinking_pred.
1935         * cfghooks.c (execute_on_growing_pred): New.
1936         (execute_on_shrinking_pred): Likewise.
1937         * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and
1938         execute_on_shrinking_pred.
1939         Add prototypes for execute_on_growing_pred and
1940         execute_on_shrinking_pred.
1941         * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to
1942         execute_on_growing_pred and execute_on_shrinking_pred.
1943         (cfg_layout_rtl_cfg_hook): Likewise.
1944         * tree-cfg.c (tree_cfg_hooks): Likewise.
1945
1946         * tree-cfg.c (tree_execute_on_shrinking_pred): New.
1947         (tree_cfg_hooks): Use it.
1948         * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
1949         (ssa_redirect_edge): Don't call remove_phi_arg_num.
1950
1951         * tree-phinodes.c (remove_phi_arg_num): Make it static.
1952         * tree-flow.h: Remove the corresponding prototype.
1953
1954         * tree-ssa.c (ssa_remove_edge): Remove.
1955         * tree-flow.h: Remove the corresponding prototype.
1956         * tree-cfg.c: Replace ssa_remove_edge with remove_edge.
1957         * basic-block.h: Likewise.
1958         * tree-if-conv.c: Likewise.
1959         * tree-ssa-threadupdate.c: Likewise.
1960
1961 2004-11-23  Ben Elliston  <bje@au.ibm.com>
1962
1963         * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of
1964         @table to list the BSI methods.  Use individual @findex directives
1965         instead of one with a comma-separated list of index entries.
1966
1967 2004-11-22  Zdenek Dvorak  <dvorakz@suse.cz>
1968
1969         PR tree-optimization/18529
1970         * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function.
1971         (simple_operand_p): Use STRIP_NOPS.  Consider SSA names simple.
1972         (fold): Call fold_to_nonsharp_ineq_using_bound.
1973         * tree-ssa-loop-niter.c (simplify_replace_tree): New function.
1974         (number_of_iterations_cond): Fold the expressions before futher
1975         processing.
1976         (tree_simplify_using_condition): Handle case when cond or expr is
1977         an EQ_EXPR specially.
1978
1979 2004-11-22 Daniel Berlin  <dberlin@dberlin.org>
1980
1981         * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be
1982         SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes.
1983
1984 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
1985             Fariborz Jahanian  <fjahanian@apple.com>
1986
1987         * config/rs6000/rs6000.c (rs6000_return_in_memory): Test
1988         TARGET_ALTIVEC_ABI.
1989         (function_arg_boundary): Align 8 to 16 byte vectors like SPE.
1990         Align 16 byte and larger vectors like Altivec.
1991         (function_arg_advance): Pass any 16 byte vector like Altivec vector.
1992         (function_arg): Same.
1993         (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI.
1994
1995 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
1996
1997         PR tree-opt/18572
1998         * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying
1999         it.
2000
2001 2004-11-22  Richard Henderson  <rth@redhat.com>
2002
2003         * function.c (assign_parm_setup_block): Revert 11-13 change to
2004         forcably re-mode a (possibly BLKmode) hard register.
2005
2006 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2007
2008         * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN.
2009
2010 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
2011
2012         * config/rs6000/power4.md: Remove delay between dispatch and issue
2013         associated with dispatch group slots 3 and 4.
2014         * config/rs6000/power5.md: Same.
2015
2016 2004-11-21  Jeff Law  <law@redhat.com>
2017
2018         * cfg.c (cached_make_edge): Use find_edge rather than an inlined
2019         variant.
2020         * cfgbuild.c (make_edges): Likewise.
2021         * cfghooks.c (can_duplicate_block_p): Likewise.
2022         * cfgloop.c (loop_latch_edge): Likewise.
2023         * cfgloopmanip.c (force_single_succ_latches): Likewise.
2024         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2025         * predict.c (predict_loops, propagate_freq): Likewise.
2026         * tracer.c (tail_duplicate): Likewise.
2027         * tree-cfg.c (disband_implicit_edges): Likewise.
2028         (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise.
2029
2030 2004-11-22  Nick Clifton  <nickc@redhat.com>
2031
2032         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
2033         initialisation of 'e'.
2034
2035 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
2036
2037         PR rtl-optimization/18599
2038         * regrename.c (copyprop_hardreg_forward): Speed up by putting
2039         BB_VISITED flags on basic blocks as we process them.
2040
2041 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
2042
2043         PR target/18531
2044         * config/rs6000/altivec.md (VI_char): New mode attribute.
2045         (addv16qi3, addv8hi3, addv4ai3): Replace with ...
2046         (add<mode>3): ... this.
2047         (subv16qi3, subv8hi3, subv4ai3): Replace with ...
2048         (sub<mode>3): ... this.
2049         (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ...
2050         (smax<mode>3): ... this.
2051         (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ...
2052         (smin<mode>3): ... this.
2053         (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ...
2054         (umax<mode>3): ... this.
2055         (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ...
2056         (umin<mode>3): ... this.
2057         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
2058         (and<mode>3): ... this.
2059         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
2060         (ior<mode>3): ... this.
2061         (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ...
2062         (xor<mode>3): ... this.
2063         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
2064         (and<mode>3): ... this.
2065         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
2066         (ior<mode>3): ... this.
2067         (altivec_vnor): Replace with ...
2068         (altivec_nor<mode>): ... this.
2069         (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ...
2070         (one_cmpl<mode>2): ... this.
2071         (altivec_vandc): New expander.
2072         (*andc<mode>3): New insn.
2073         * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names.
2074
2075 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
2076
2077         PR tree-opt/18536
2078         * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when
2079         creating iv instead of integer_type.
2080         (vect_build_loop_niters): Remove redundant code.
2081         (vect_transform_loop_bound): Removed (duplicates functionality of
2082         make_loop_iterate_ntimes.
2083         (vect_gen_niters_for_prolog_loop): Add documentation. Call
2084         lang_hooks.types.type_for_size to create a type of the required size.
2085         Use that type instead of integer_type. Remove redundant code.
2086         (vect_update_niters_after_peeling): Use type of niters instead of
2087         integer_type.
2088         (vect_transform_loop): Unify handling of known and unknown loop bound
2089         cases. Call make_loop_iterate_ntimes instead of
2090         vect_transform_loop_bound.
2091
2092 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2093
2094         PR target/18217
2095         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to
2096         (LIB2ADDEH): Here.
2097
2098 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
2099
2100         PR tree-opt/18544
2101         * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
2102
2103 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2104
2105         * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
2106         m32r*linux.
2107         * config/m32r/t-linux (SHLIB_MAPFILES): Override to use
2108         m32r/libgcc-glibc.ver.
2109         * config/m32r/libgcc-glibc.ver: Add New file.
2110
2111 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
2112
2113         * bitmap.h (struct bitmap_obstack): New obstack type.
2114         (struct bitmap_head_def): Replace using_obstack with obstack
2115         pointer.
2116         (bitmap_default_obstack): New.
2117         (bitmap_initialize): Make inline, does not do allocation.
2118         (bitmap_release_memory): Remove.
2119         (bitmap_obstack_initialize, bitmap_obstack_release): Declare.
2120         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
2121         bitmap_obstack_free, bitmap_malloc_free): Declare.
2122         (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
2123         (BITMAP_FREE): Replace with ...
2124         (BITMAP_OBSTACK_FREE): ... this.
2125         (BITMAP_XFREE): Adjust.
2126         (BITMAP_INIT_ONCE): Remove.
2127         * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
2128         (bitmap_default_obstack): New.
2129         (bitmap_elem_to_freelist): Adjust.
2130         (bitmap_element_allocate): Adjust. Break initialization into ...
2131         (bitmap_obstack_initialize): ... here.
2132         (bitmap_release_memory): Replace with ...
2133         (bitmap_obstack_release): ... this.
2134         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
2135         bitmap_obstack_free, bitmap_malloc_free): New.
2136         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
2137         bitmap_initialize.
2138         (bitmap_initialize): Move to bitmap.h.
2139         * gengtype.c (open_base_files): Add obstack.h to ifiles.
2140         * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
2141         * basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
2142         (INITIALIZE_REG_SET): Remove.
2143         (FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
2144         (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
2145         (flow_obstack): Do not declare.
2146         (reg_obstack): Declare.
2147         * regs.h: Include obstack.h.
2148         * tree-optimize.c (tree_rest_of_compilation): Initialize and
2149         release bitmap obstack here.
2150         * bb-reorder.c: #include regs, not basic-block.
2151         (fix_crossing_conditional_branches): Allocate regsets from
2152         reg_obstack.
2153         * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
2154         obstack.h.
2155         * caller-save.c: Include regs.h earlier.
2156         * cfg.c: Do not include basic-block.h or obstack.h.
2157         (reg_obstack): Define.
2158         * cfganal.c: Include obstack.h
2159         * cfgcleanyp.c: Do not include basic-block.h. Include regs.h
2160         earlier.
2161         * cfglayout.c: Do not include obstack.h.
2162         (flow_obstack): Remove declaration.
2163         (cfg_layout_duplicate_bb): Use reg_obstack.
2164         * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
2165         * cfgrtl.c (rtl_split_block): Use reg_obstack.
2166         (force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
2167         (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
2168         (cfg_layout_split_edge): Use reg_obstack.
2169         * cse.c: Include regs.h earlier.
2170         * ddg.c: Do not include basic-block.h.
2171         * dominance.c: Inlude obstack.h.
2172         * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
2173         (calculate_global_regs_live): Likewise.
2174         (allocate_bb_life_data): Use reg_obstack.
2175         (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
2176         * global.c: Do not include basic-block.h.
2177         (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
2178         * graph.c: Include obstack.h.
2179         * haifa-sched.c: Do not include basic-block.h.
2180         * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
2181         * local-alloc.c: Do not include basic-block.h.
2182         * loop-init.c, loop-invariant.c: Include obstack.h.
2183         * loop-iv.c: Likewise.
2184         (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
2185         adjust.
2186         * loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
2187         * modulo-sched.c: Do not include basic-block.h.
2188         * passes.c (rest_of_handle_final): Do not call
2189         regset_release_memory.
2190         * ra-debug.c: Include regs.h earlier. Do not include
2191         basic-block.h.
2192         * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
2193         * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
2194         (allocate_reg_info): Do not call MAX_REGNO_REG_SET.
2195         (regset_release_memory): Remove.
2196         * resource.c: Do not include basic-block.h.
2197         * rtlanal.c: Do not include basic-block.h.
2198         * sbitmap.c: Include obstack.h.
2199         * sched-deps.c: Do not include basic-block.h.
2200         (reg_pending_sets_head, reg_pending_clobbers_head,
2201         reg_pending_uses_head): Remove.
2202         (init_deps_global): Use OBSTACK_ALLOC_REG_SET.
2203         * sched-ebb.c: Do not include basic-block.h.
2204         * sched-rgn.c: Likewise.
2205         * tree-if-conv.c (get_loop_body_in_if_conv_order): Use
2206         BITMAP_XFREE.
2207         * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
2208         * tree-sra.c (decide_instantiations): Adjust bitmap
2209         initialization.
2210         * tree-ssa-dce.c: Include obstack.h.
2211         * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
2212         (value_insert_into_set_bitmap): Remove useless bitmap_clear.
2213         (bitmap_set_new): Likewise.
2214         (init_pre): Initialize bitmap obstack.
2215         (fini_pre): Release bitmap obstack.
2216         * tree-ssanames.c (ssa_names_to_rewrite): Make static.
2217         (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
2218         (mark_for_rewrite, unmark_for_rewrite): Likewise.
2219         (marked_ssa_names): Likewise.
2220         (init_ssanames): Use BITMAP_XMALLOC.
2221         (fini_ssanames): Use BITMAP_XFREE.
2222         * web.c: Include obstack.h
2223
2224 2004-11-22  Nick Clifton  <nickc@redhat.com>
2225
2226         * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge
2227         predecessor in the first for-loop.
2228
2229 2004-11-21  Stan Shebs  <shebs@apple.com>
2230
2231         * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add
2232         UNION_TYPE case.
2233         (function_arg): Move darwin test up, sniff mode first for
2234         efficiency, test for union type.
2235
2236 2004-11-21  Dale Johannesen  <dalej@apple.com>
2237
2238         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Define.
2239
2240 2004-11-21  Jeff Law  <law@redhat.com>
2241
2242         * tree-ssa.c (verify_use): Fix comment.
2243         (verify_phi_args): Check that the number of incoming edges matches
2244         the number of PHI arguments.  Check that each PHI argument is
2245         either an SSA_NAME or an invariant.  Coalesce tests for PHIs for
2246         dead or duplicated edges.  Clear e->aux earlier and avoid separate
2247         loop to clear e->aux and test for missed edges.
2248         (verify_ssa): Remove first walk over statements.  Move checking
2249         of PHI args into verify_phi_args.  Move checking of statements
2250         with aliased stores and V_MAY_DEFS into the remaining loop over
2251         the statements.  Register defs by walking through the formal
2252         SSA_NAME table.
2253
2254 2004-11-21  Roger Sayle  <roger@eyesopen.com>
2255
2256         PR middle-end/18520
2257         * dojump.c (compare_from_rtx): Clarify mode argument in function
2258         description.  Correct order of mode/cmp_mode arguments in call to
2259         simplify_relational_operation.  Check "tem" for COMPARISON_P.
2260
2261 2004-11-21  Paolo Bonzini  <bonzini@gnu.org>
2262             David Edelsohn  <edelsohn@gnu.org>
2263
2264         PR target/17836
2265         * config/rs6000/rs6000.c (rs6000_return_in_memory): Return
2266         synthetic vectors in memory.
2267         (function_arg_boundary): Align large synthetic vectors.
2268         (rs6000_pass_by_reference): Pass synthetic vectors in memory.
2269
2270 2004-11-21  Jeff Law  <law@redhat.com>
2271
2272         * cfg.c (update_bb_profile_for_threading): Do not rescale the
2273         successor probabilities if they are not going to change.  Pull
2274         division out of loop if we do need to rescale successor probabilities.
2275
2276         * tree-ssa-threadupdate.c (redirection_data_hash): Use the
2277         index of the destination block for the hash value rather than
2278         hashing a pointer.
2279
2280 2004-11-20  Joseph S. Myers  <joseph@codesourcery.com>
2281
2282         * c-typeck.c (build_array_ref): Don't check for index == 0.  Make
2283         checks for neither argument being an array or pointer (swapping
2284         the arguments if necessary), the array argument being a pointer to
2285         or array of functions and for -Wchar-subscripts warnings upfront.
2286
2287 2004-11-20  Jeff Law  <law@redhat.com>
2288
2289         * regrename.c (copyprop_hardreg_forward): Only search for a
2290         previously processed block if the current block only has one
2291         predecessor.
2292
2293 2004-11-20  Kazu Hirata  <kazu@cs.umass.edu>
2294
2295         * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment
2296         typos.
2297         * config/arm/arm.c: Follow spelling conventions.
2298
2299 2004-11-20  Richard Earnshaw  <rearnsha@arm.com>
2300
2301         * arm.c (arm_override_options): Use arm_ld_sched rather than testing
2302         a bit in tune_flags.
2303         (const_double_needs_minipool): Likewise.  Split most of the code out
2304         into ...
2305         (arm_const_double_inline_cost): ... new function here.
2306         * arm-protos.h (arm_const_double_inline_cost): Add prototype.
2307         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double-
2308         word constants of length 2, 3 and 4 insns respectively.
2309         (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint.
2310         * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc]
2311         constraints.  Set insn lenghts accordingly.
2312
2313 2004-11-19  Jeff Law  <law@redhat.com>
2314
2315         * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with
2316         a hash table.  Extensive modifications throughout to support
2317         that change.
2318         (struct el): New.
2319         (struct local_info): New.
2320         (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE
2321         fields.
2322         (redirection_data): Now a hashtable.
2323         (redirection_data_hash, redirection_data_eq): New.
2324         (lookup_redirection_data, create_duplicates): New.
2325         (create_edge_and_update_destionation_phis): New.
2326         (fixup_template_block, redirect_edges): New.
2327         (thread_block): Use hash table traversals instead of loops over
2328         varray entries or incoming edge vectors.
2329
2330 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2331
2332         * basic-block.h (edge_def): Add dest_idx.
2333         * cfg.c (unchecked_make_edge): Initialize dest_idx.
2334         (remove_edge): Simplify the disconnection of an edge from its
2335         destination.
2336         (redirect_edge_succ): Likewise.
2337         * cfghooks.c (verify_flow_info): Check the consistency of
2338         dest_idx for each edge.
2339
2340 2004-11-19  Aldy Hernandez  <aldyh@redhat.com>
2341
2342         * simplify-rtx.c (simplify_ternary_operation): Use
2343         gen_int_mode.
2344
2345 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2346
2347         * tree-cfg.c (reinstall_phi_args): New.
2348         (tree_split_edge): Use it after redirecting an edge.  Don't
2349         modify PHI_ARG_EDGE.
2350
2351 2004-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
2352
2353         * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
2354         if checking is enabled.
2355
2356 2004-11-19  Joseph S. Myers  <joseph@codesourcery.com>
2357
2358         * c-decl.c (push_scope): Remove "\n" from end of diagnostic for
2359         too many nested scopes.
2360
2361 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2362
2363         PR tree-opt/18181
2364         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme
2365         changed to suppoer uses-after-loop and to void creating flow paths
2366         that shouldn't exist.
2367         (slpeel_update_phi_nodes_for_guard): Takes additional two arguments.
2368         Modified to fit the new peeling scheme. Avoid quadratic behavior.
2369         (slpeel_add_loop_guard): Takes additional argument.
2370         (slpeel_verify_cfg_after_peeling): New function.
2371         (vect_update_ivs_after_vectorizer): Takes additional argument. Updated
2372         documentation. Use 'exit-bb' instead of creating 'new-bb'.
2373         (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit
2374         the new peeling scheme.
2375         (copy_phi_nodes): Function removed. Its functionality moved to
2376         update_phis_for_duplicate_loop.
2377         (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes
2378         moved here. Added documentation. Modified to fit the new peeling scheme.
2379         (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not
2380         needed - done in slpeel_tree_peel_loop_to_edge.
2381         (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted.
2382         (vect_do_peeling_for_loop_bound): Add documentation. Call
2383         slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer
2384         with additional argument.
2385         (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling.
2386
2387         (vect_finish_stmt_generation): Avoid 80 column oveflow.
2388
2389 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2390
2391         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two
2392         arguments removed.
2393         (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes
2394         without last two arguments. Update single_exit of loops.
2395         (vect_update_niters_after_peeling): Removed. Its functionality was
2396         moved to vect_do_peeling_for_alignment.
2397         (vect_do_peeling_for_loop_bound): New name for function previously
2398         called vect_transform_for_unknown_loop_bound.
2399         (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes
2400         instead of code that duplicates the same functionality.
2401         (vect_do_peeling_for_alignment): Functionality of
2402         vect_update_niters_after_peeling moved here.
2403         (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound -
2404         previously named vect_transform_for_unknown_loop_bound - for both known
2405         and unknown loop bound cases.
2406
2407 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2408
2409         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function
2410         previously called verify_loop_for_duplication. All conditions compacted
2411         into one compound condition. Removed debug dumps.
2412         (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the
2413         functionality moved to vect_can_advance_ivs_p, and some to
2414         vect_analyze_loop_form.
2415         (vect_can_advance_ivs_p): New function. Contains functionality that was
2416         taken out of vect_analyze_loop_with_symbolic_num_of_iters.
2417         (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p.
2418         (vect_analyze_operations): Call vect_can_advance_ivs_p and
2419         slpeel_can_duplicate_loop_p.
2420         (vect_get_loop_niters): Added documentation.
2421         (vect_analyze_loop_form): Check the loop entry always - not only in case
2422         of unknown loop bound. Create preheader and exit bb if necessary. Apply
2423         a check that used to take place in
2424         vect_analyze_loop_with_symbolic_num_of_iters.
2425         (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING.
2426         Remove redundant call to rewrite_into_loop_closed_ssa.
2427         (vect_compute_data_refs_alignment): Removed obsolete comment.
2428
2429 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
2430
2431         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for
2432         function previously called tree_duplicate_loop_to_edge.
2433         (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function
2434         previously called tree_duplicate_loop_to_edge_cfg.
2435         (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to
2436         function name.
2437         (slpeel_update_phi_nodes_for_guard): Likewise.
2438         (slpeel_make_loop_iterate_ntimes): Likewise.
2439         (slpeel_add_loop_guard): Likewise.
2440         (allocate_new_names, free_new_names): Function declaration moved to top
2441         of file.
2442         (rename_use_op, rename_def_op): Likewise.
2443         (rename_variables_in_bb, rename_variables_in_loop): Likewise.
2444         (vect_generate_tmps_on_preheader): Function declaration moved.
2445         (vect_transform_for_unknown_loop_bound): Added missing function
2446         declaration.
2447
2448 2004-11-19  Andrew Pinski  <pinskia@physics.uc.edu>
2449
2450         PR tree-opt/18507
2451         * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree).
2452         Define a VEC(tree_on_heap) for head.
2453         (register_new_def): Change second argument to be a VEC(tree_on_heap).
2454         * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap).
2455         (tree_ssa_dominator_optimize): Initialize block_defs_stack with
2456         the VEC(tree_on_heap) function.  Also free it before returning.
2457         (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2458         for block_defs_stack.
2459         (restore_currdefs_to_original_value): Use VEC_length instead of
2460         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
2461         (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2462         for block_defs_stack.
2463         * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap).
2464         (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
2465         for block_defs_stack.
2466         (ssa_register_new_def): Likewise.
2467         (ssa_rewrite_initialize_block): Likewise.
2468         (rewrite_finalize_block): Use VEC_length instead of
2469         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
2470         (ssa_rewrite_finalize_block): Likewise.
2471         (register_new_def): Change second argument to be a VEC(tree_on_heap).
2472         Use VEC_safe_push instead of VARRAY_PUSH_TREE.
2473         (rewrite_blocks): Initialize block_defs_stack with
2474         the VEC(tree_on_heap) function.  Also free it before returning.
2475         (rewrite_ssa_into_ssa): Likewise.
2476
2477 2004-11-19  Fariborz Jahanian <fjahanian@apple.com>
2478
2479         * config/darwin.c (machopic_data_defined_p): return 1 for
2480         MACHOPIC_DEFINED_FUNCTION.
2481
2482 2004-11-19  Jeff Law  <law@redhat.com>
2483
2484         * tree-ssa.c (verify_ssa): Remove redundant checking of PHI
2485         arguments.
2486
2487 2004-11-19  Paul Brook  <paul@codesourcery.com>
2488
2489         PR target/17735
2490         * varasm.c (default_assemble_integer): Allow pointer-sized values.
2491         Expand comment.
2492
2493 2004-11-19  Nick Clifton  <nickc@redhat.com>
2494
2495         * config/stormy16/stormy16.c (combine_bnp): Add code to handle
2496         zero_extension and lshiftrt insns.
2497         Replace uses of XEXP(...) with either SET_DEST() or SET_SRC()
2498         where appropriate.
2499         * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns
2500         to handle bp and bn insn patterns with a zero_extend rtx
2501         inside them.
2502
2503 2004-11-19  Ian Lance Taylor  <ian@wasabisystems.com>
2504
2505         * config/arm/arm.md (generic_sched): Make const.
2506
2507 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2508
2509         * emit-rtl.c (classify_insn): Make it static.
2510         * rtl.h: Remove the corresponding prototype.
2511
2512         * integrate.c (has_func_hard_reg_initial_val,
2513         get_func_hard_reg_initial_val): Make them static.
2514         * integrate.h: Remove the corresponding prototypes.
2515
2516 2004-11-19  Ben Elliston  <bje@au.ibm.com>
2517
2518         * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0.
2519         (dw2_asm_output_delta_sleb128): Likewise.
2520         * dwarf2asm.c (dw2_asm_output_pcrel): Likewise.
2521         (dw2_asm_output_delta_sleb128): Likewise.
2522
2523 2004-11-19  Adam Nemet  <anemet@lnxw.com>
2524
2525         * tree-ssa-alias.c: Fix comment.
2526
2527 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
2528
2529         * tree-outof-ssa.c: Fix a comment typo.
2530
2531 2004-11-19  Ben Elliston  <bje@au.ibm.com>
2532
2533         * predict.h (predict_insn): Remove extern declaration.
2534         * predict.c (predict_insn): Make static.
2535
2536 2004-11-19  Alan Modra  <amodra@bigpond.net.au>
2537
2538         * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs.
2539
2540 2004-11-18  Nicolas Pitre <nico@cam.org>
2541
2542         * config/arm/arm.c (const_double_needs_minipool): New function to
2543         determine if a CONST_DOUBLE should be pushed to the minipool.
2544         (note_invalid_constants): Use it.
2545
2546 2004-11-18  Paul Brook  <paul@codesourcery.com>
2547
2548         * config/arm/arm.c (target_float_switch): New variable..
2549         (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and
2550         target_float_switch.
2551         * config/arm/arm.h (target_float_switch): Declare.
2552         (ARM_FLAG_SOFT_FLOAT): Remove.
2553         (TARGET_SWITCHES): Remove hard-float and soft-float.
2554         (TARGET_OPTIONS): Add hard-float and soft-float.
2555         (TARGET_DEFAULT_FLOAT_ABI): Define.
2556         * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define
2557         (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT.
2558         * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT.
2559         * config/arm/netbsd-elf.h: Ditto.
2560         * config/arm/netbsd.h: Ditto.
2561         * config/arm/pe.h: Ditto.
2562         * config/arm/unknown-elf.h: Ditto.
2563         * config/arm/wince-pe.h: Ditto.
2564         * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define.
2565         * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define.
2566         * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define.
2567
2568 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
2569
2570         * config/rs6000/altivec.md (VI, VF, V): New mode macros.
2571         (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi,
2572         altivec_lvx_4sf): Rename and replace with ...
2573         (altivec_lvx_<mode>): ... mode macro version.
2574         (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi,
2575         altivec_stvx_4sf): Rename and replace with ...
2576         (altivec_stvx_<mode>): ... mode macro version.
2577         (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ...
2578         (mov<mode>): ... mode macro version.
2579         (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1,
2580         *movv4sf_internal1): Replace with ...
2581         (*mov<mode>_internal): ... mode macro version.
2582         (get_vrsave_internal, *set_vrsave_internal, *save_world,
2583         *restore_world): Unquote output statements.
2584         * config/rs6000/rs6000.c (altivec_expand_ld_builtin,
2585         altivec_expand_st_builtin): Adjust insn names.
2586
2587 2004-11-18  Aldy Hernandez  <aldyh@redhat.com>
2588
2589         * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert
2590         previous change.
2591         (rs6000_override_options): Likewise.
2592         (spe_build_register_parallel): Handle complex doubles on e500v2.
2593         (rs6000_spe_function_arg): Likewise.
2594         (function_arg): Likewise.
2595         (rs6000_function_value): Likewise.
2596         (rs6000_libcall_value): Likewise.
2597
2598 2004-11-18  Andrew Pinski  <pinskia@physics.uc.edu>
2599
2600         * ifcvt.c (find_if_block): Move the check for the number of edges
2601         above the loops checking for complex edges.
2602         Remove the counting of edges as we use EDGE_COUNT now.
2603
2604 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
2605
2606         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
2607         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3
2608
2609 2004-11-18  Andreas Schwab  <schwab@suse.de>
2610
2611         * config/i386/i386.md (define_peephole2): Revert last change.
2612
2613 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
2614
2615         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
2616         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.
2617
2618 2004-11-18  Diego Novillo  <dnovillo@redhat.com>
2619
2620         * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead
2621         of FOR_EACH_BB.
2622
2623 2004-11-18  Jon Grimm <jgrimm2@us.ibm.com>
2624
2625         * Makefile.in (macro_list): Depend on s-macro_list.
2626         (s-macro_list): New target.
2627
2628 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
2629
2630         PR target/17107
2631         * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
2632         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
2633         (fold_range_test): Adjust.
2634         (fold_truthop): Use it.
2635         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
2636         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
2637
2638 2004-11-18  Uros Bizjak  <uros@kss-loka.si>
2639
2640         * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to
2641         insn split constraint.
2642         (define_peephole2): Remove unneeded "&& 1" from peephole2
2643         constraints.
2644
2645 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2646
2647         * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item
2648         element for bsi_prev; use @findex instead.
2649
2650 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2651
2652         * opts.h (add_input_filename): Remove extern declaration.
2653         * opts.c (add_input_filename): Make static.
2654
2655 2004-11-17  Mark Mitchell  <mark@codesourcery.com>
2656
2657         * config/i386/i386.c (i386_solaris_elf_named_section): Mark with
2658         ATTRIBUTE_UNUSED.
2659
2660 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
2661
2662         * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN.
2663         * system.h: Poison it.
2664         * doc/tm.texi: Delete its documentation.
2665
2666 2004-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
2667             Mark Mitchell  <mark@codesourcery.com>
2668
2669         * config/i386/sol2-10.h, config/i386/t-sol2-10: New files.
2670         * config/i386/i386.c (i386_solaris_elf_named_section): New
2671         function.
2672         * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10.
2673         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle
2674         64-bit.
2675         (ASM_QUAD): Don't undefine for biarch targets.
2676         * config/i386/t-sol2: Introduce multilib support.
2677
2678 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2679
2680         * cgraphunit.c: Replace "it's" with "its" and fix a typo.
2681
2682 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2683
2684         * cgraph.h: Replace "it's" with "its" throughout.
2685
2686 2004-11-18  Ben Elliston  <bje@au.ibm.com>
2687
2688         * doc/rtl.texi (Flags): Grammar fix.
2689
2690 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
2691
2692         * expmed.c (alg_code): Add alg_unknown.
2693         (alg_hash_entry): New.
2694         (NUM_ALG_HASH_ENTRIES): Likewise.
2695         (alg_hash): Likewise.
2696         (synth_mult): Cache the result into alg_hash.
2697
2698 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
2699
2700         * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with
2701         config/rs6000/libgcc-ppc64.ver.
2702
2703 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
2704
2705         * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when
2706         checking if an unconditional return is followed by a barrier.
2707
2708         * jump.c (condjump_p): Remove unreachable code.
2709
2710         * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h,
2711         tree-chrec.h, tree-flow.h, tree-scalar-evolution.h,
2712         tree-ssa-live.h, tree.h: Remove unused prototypes.
2713
2714 2004-11-17  Jeff Law  <law@redhat.com>
2715
2716         * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader.
2717         (edge_to_cases_elt): Renamed from edge_to_case_leader.
2718         (edge_to_cases_hash): Renamed from edge_to_case_leader_hash.
2719         (edge_to_cases_eq): Renamed from edge_to_case_leader_eq.
2720         (edge_to_cases_cleanup, recording_case_labels_p): New functions.
2721         (get_cases_for_edge): New function.
2722         (start_recording_case_labels, end_recording_case_labels): Similarly.
2723         (record_switch_edge): Don't muck with the CASE_LABEL.  Instead
2724         chain equivalent CASE_LABEL_EXPRs together.
2725         (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill.
2726         (make_switch_expr_edges): Do not record edge/cases here.
2727         (cleanup_tree_cfg): Record cases around the call to thread_jumps.
2728         (split_critical_edges): Record cases around the edge splitting code.
2729         (cleanup_dead_labels): Use CASE_LABEL again.
2730         (tree_redirect_edge_and_branch): If we have a mapping from edge
2731         to cases, use it to handle redirections.  Else do it the slow way.
2732         * tree.h (CASE_LEADER_OR_LABEL): Kill.
2733         (CASE_LABEL): Revert to just looking at the tree's second operand.
2734         * tree.c (get_case_label): Kill.
2735
2736 2004-11-17  Diego Novillo  <dnovillo@redhat.com>
2737
2738         PR tree-optimization/18307
2739         * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and
2740         'orig' are the same node.
2741         (collect_points_to_info_r): Do not call merge_pointed_to_info
2742         when the PHI argument is identical to the LHS.
2743
2744 2004-11-17  Steven Bosscher  <stevenb@suse.de>
2745
2746         * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying
2747         to insert the exit or entry block.
2748         (ssa_prop_init): Use add_control_edge to seed the algorithm.
2749
2750 2004-11-16  Zack Weinberg  <zack@codesourcery.com>
2751
2752         * mkmap-flat.awk, mkmap-symver.awk: If the last version
2753         assigned to a symbol was '%exclude', do not emit it anywhere.
2754         If leading_underscore is true, prefix all symbols from the
2755         version scripts with a leading underscore before comparing
2756         them with nm output or emitting them.  Remove support for dot
2757         symbols.
2758         * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk.
2759         (SHLIB_MAPFILES): Use libgcc-std.ver.
2760         (SHLIB_MKMAP_OPTS): Enable leading-underscore mode.
2761         (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP).
2762         * config/sh/t-linux: Use the normal libgcc-std.ver, plus
2763         libgcc-excl.ver and libgcc-glibc.ver.
2764
2765         * config/sh/libgcc-excl.ver: New file.
2766         * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete.
2767
2768 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
2769
2770         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap
2771         the test when the edge has the opposite meaning, not when
2772         the first argument is invariant.
2773
2774 2004-11-16  Aldy Hernandez  <aldyh@redhat.com>
2775
2776         * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2
2777         doubles.
2778         (rs6000_complex_function_value): Handle e500 v2 variant.
2779
2780 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
2781
2782         Fix PR tree-optimization/18519
2783
2784         * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg.
2785         * tree-pass.h: Add TODO_cleanup_cfg.
2786         * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg.
2787         (ccp_finalize): Remove call to cleanup_cfg.
2788         * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func.
2789         (pass_cd_dce): Ditto.
2790         (perform_tree_ssa_dce): Remove call to cleanup_cfg,
2791         dump_function_to_file.
2792         * tree-ssa-loop-ch.c (copy_loop_headers): Remove call
2793         to cleanup_cfg.
2794         (pass_ch): Add TODO_cleanup_cfg.
2795         * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to
2796         cleanup_cfg.
2797         (pass_loop_done): Add TODO_cleanup_cfg.
2798         * tree-ssa-phiopt.c (pass_phiopt): Ditto.
2799         (tree_ssa_phiopt): Remove call to cleanup_cfg.
2800
2801 2004-11-16  Devang Patel  <dpatel@apple.com>
2802
2803         * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use.
2804
2805 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
2806
2807         * expmed.c, ra-colorize.c: Fix comment typos.
2808
2809         * doc/tm.texi: Fix typos.
2810
2811 2004-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
2812             Mark Mitchell  <mark@codesourcery.com>
2813
2814         PR target/6123
2815         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and
2816         __pic__ if PIC.
2817
2818 2004-11-16  Ulrich Weigand  <uweigand@de.ibm.com>
2819
2820         * regmove.c (regmove_optimize): Use lowpart_subreg instead of
2821         gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG.
2822
2823 2004-11-16  Devang Patel  <dpatel@apple.com>
2824
2825         * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check.
2826
2827 2004-11-16  Eric Christopher  <echristo@redhat.com>
2828
2829         * config/mips/mips.c: Use rtl _P predicates.
2830         * config/mips/mips.h: Ditto.
2831         * config/mips/mips.md: Ditto.
2832
2833 2004-11-16  Fariborz Jahanian <fjahanian@apple.com>
2834
2835         * config/rs6000/altivec.md (altivec_vandc): Canonicalize
2836         the pattern.
2837
2838 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2839
2840         * config/s390/s390.c (s390_cc_modes_compatible): New function.
2841         (TARGET_CC_MODES_COMPATIBLE): Target macro defined.
2842
2843 2004-11-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2844
2845         PR target/18447
2846         * config/sh/sh.c (prepare_move_operands): Emit blockage insns
2847         before and after the insns for getting GOT address in non-PIC
2848         TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling
2849         is enabled.
2850
2851 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2852
2853         * gcc/cse.c (struct change_cc_mode_args): New structure.
2854         (cse_change_cc_mode_insn): New function.
2855         (cse_change_cc_mode): Use validate_change to perfom changes.
2856         (cse_change_cc_mode_insns, cse_condition_code_reg):
2857         Call cse_change_cc_mode_insn.
2858
2859 2004-11-16  Steven Bosscher  <stevenb@suse.de>
2860
2861         * stack.h: Remove.
2862
2863 2004-11-16  Steven Bosscher  <stevenb@suse.de>
2864
2865         * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8.
2866
2867 2004-11-15  Dale Johannesen  <dalej@apple.com>
2868
2869         * tree-flow.h (add_referenced_temp_var):  Remove name from prototype.
2870
2871 2004-11-15  Dale Johannesen  <dalej@apple.com>
2872
2873         * profile.c (compute_branch_probabilities):  Prevent
2874         crash with EH in RTL-based profiling.
2875
2876 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
2877
2878         * tree-cfg.c (verify_expr): Replace TREE_OPERAND with
2879         COND_EXPR_COND.
2880         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
2881         * tree-ssa-dom.c (thread_across_edge): Likewise.
2882         * tree-vectorizer.c (vect_transform_loop_bound): Replace
2883         TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or
2884         COND_EXPR_ELSE.
2885
2886         * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument.
2887         (tree_flow_call_edges_add): Update the call to
2888         bsi_commit_edge_inserts.
2889         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
2890         * profile.c (branch_prob): Likewise.
2891         * tree-mudflap.c (mf_decl_cache_locals): Likewise.
2892         * tree-sra.c (scalarize_function): Likewise.
2893         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
2894         * tree-ssa-pre.c (fini_pre): Likewise.
2895         * tree-flow.h: Update the prototype for
2896         bsi_commit_edge_inserts.
2897
2898 2004-11-15  Eric Christopher  <echristo@redhat.com>
2899
2900         * sched-deps.c (set_sched_group_p): Delete.
2901         (delete_all_dependencies): New function.
2902         (fixup_sched_groups): Use. New function.
2903         (sched_analyze_insn): Use.
2904
2905 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
2906
2907         * c-common.c (binary_op_error): Don't allow LROTATE_EXPR,
2908         RROTATE_EXPR or unknown code.
2909         * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR,
2910         LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR,
2911         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR
2912         or unknown code.
2913
2914 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
2915
2916         PR c/18498
2917         * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width
2918         after processing the declarator.
2919
2920 2004-11-15  Aldy Hernandez  <aldyh@redhat.com>
2921
2922         * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with
2923         vec_duplicate.
2924         (altivec_vspltb): Same.
2925         (altivec_vspltw): Same.
2926         (altivec_vspltisb): Same.
2927         (altivec_vspltish): Same.
2928         (altivec_vspltisw): Same.
2929         (altivec_vspltisw_v4sf): Same.
2930         (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW,
2931         UNSPEC_VSPLTISH.
2932         Move "End of vector xor's" comment to the right place.
2933
2934 2004-11-15  Steve Ellcey  <sje@cup.hp.com>
2935
2936         * config/ia64/ia64.md (*movtf_internal):  Use destination_operand
2937         instead of nonimmediate_operand.
2938
2939 2004-11-15  Mark Mitchell <mark@codesourcery.com>
2940
2941         * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand.
2942         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise.
2943         * config/sol2.c (solaris_output_init_fini): Update calls to
2944         ASM_OUTPUT_CALL.  Include "rtl.h".
2945
2946 2004-11-15  Mark Mitchell <mark@codesourcery.com>
2947
2948         * config/sol2-c.c (cmn_err_char_table): Add "p".
2949
2950 2004-11-15  Mark Mitchell <mark@codesourcery.com>
2951
2952         * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove.
2953         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here.
2954
2955 2004-11-15  Mark Mitchell <mark@codesourcery.com>
2956
2957         * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely
2958         within the multilib directory.
2959
2960 2004-11-15  Nick Clifton  <nickc@redhat.com>
2961
2962         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add
2963         builtin assert of cpu=xstormy16.
2964
2965 2004-11-15  Nathan Sidwell  <nathan@codesourcery.com>
2966
2967         * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized
2968         variable.
2969
2970 2004-11-14  Richard Henderson  <rth@redhat.com>
2971
2972         PR 18480
2973         * calls.c (struct arg_data): Add parallel_value.
2974         (precompute_register_parameters): Set it.
2975         (load_register_parameters): Use it.
2976         (store_one_arg): Also set it here.
2977
2978 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
2979
2980         PR tree-optimization/18431
2981         * fold-const.c (associate_trees): Do not produce x + 0.
2982         (fold_widened_comparison, fold_sign_changed_comparison): New functions.
2983         (fold): Use them.
2984         * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type):
2985         Moved ...
2986         * tree.c (upper_bound_in_type, lower_bound_in_type): Here.
2987         * tree.h (upper_bound_in_type, lower_bound_in_type): Declare.
2988
2989 2004-11-14  Eric Botcazou <ebotcazou@libertysurf.fr>
2990
2991         * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example.
2992
2993 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
2994
2995         * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c,
2996         value-prof.c: Fix comment typos.
2997
2998 2004-11-14  Stan Shebs  <shebs@apple.com>
2999
3000         Basic ABI changes for passing structs by value in 64-bit Darwin.
3001         * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag.
3002         (rs6000_override_options): Set it for 64-bit Darwin.
3003         (rs6000_parse_abi_options): Add testing options to change it.
3004         (rs6000_return_in_memory): Test whether the type is one
3005         that can be passed in registers.
3006         (darwin64_function_arg_advance): New.
3007         (function_arg_advance): Call it, plus add recursion depth
3008         argument and test when counting off arguments.
3009         (rs6000_darwin64_function_arg): New.
3010         (function_arg): Call it.
3011         (setup_incoming_varargs): Add argument to function_arg_advance.
3012         (rs6000_darwin64_function_value): New.
3013         (rs6000_function_value): Call it.
3014         * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg.
3015         * config/rs6000/rs6000-protos.h: Update decl of
3016         function_arg_advance.
3017
3018 2004-11-14  Andrew Pinski  <pinskia@physics.uc.edu>
3019
3020         PR c/17279
3021         * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we
3022         support TImode before adding __int128_t and __uint128_t types.
3023
3024 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
3025
3026         PR tree-opt/18400
3027         * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations.
3028         (vect_transform_loop_bound): Set loop->nb_iterations.
3029
3030 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
3031             Andrew Pinski  <pinskia@physics.uc.edu>
3032
3033         PR tree-opt/18425
3034         * tree-vectorize.c (vect_build_loop_niters): Do not insert
3035         NULL into the instruction stream. Initialize new_bb to NULL.
3036         (vect_update_ivs_after_vectorizer): Likewise.
3037         (vect_gen_niters_for_prolog_loop): Likewise.
3038
3039 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
3040
3041         PR tree-optimization/18431
3042         * tree-flow.h (stmt_references_memory_p): Declare.
3043         * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p.
3044         * tree-ssa.c (stmt_references_memory_p): New function.
3045
3046 2004-11-14  Andreas Schwab  <schwab@suse.de>
3047
3048         * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on
3049         $(EXPR_H).
3050
3051 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
3052
3053         * c-common.c (walk_stmt_tree): Remove.
3054         * c-common.h: Remove the corresponding prototype.
3055
3056         * emit-rtl.c (push_to_full_sequence): Remove.
3057         * rtl.h: Remove the corresponding prototype.
3058
3059         * cselib.c, expr.c: Fix comment typos.
3060
3061 2004-11-13  Richard Henderson  <rth@redhat.com>
3062
3063         * calls.c (precompute_register_parameters): Force all PARALLELs
3064         into pseudo registers.
3065         (load_register_parameters): Copy PARALLELs into hard registers.
3066         * function.c (assign_parm_setup_block): Copy PARALLELS into
3067         pseudo registers.  Do emit_group_store in conversion_insns.
3068         * expr.c (emit_group_load_1): Rename from emit_group_load, take
3069         tmps as an argument.  Move final copy loop ...
3070         (emit_group_load): ... here.  New function.
3071         (emit_group_load_into_temps, emit_group_move_into_temps): New.
3072         * expr.h: Declare them.
3073
3074 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
3075
3076         * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c,
3077         tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN
3078         with PHI_CHAIN where appropriate.
3079
3080 2004-11-13  Dale Johannesen  <dalej@apple.com>
3081
3082         * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype.
3083         (tree_block_label): Ditto.
3084         (flush_pending_stmts): Ditto.
3085         (insert_edge_copies): Ditto.
3086         (expr_invariant_in_loop_p): Ditto.
3087         (TDF_USE_OPS): Parenthesize definition.
3088         (TDF_USE_VOPS): Ditto.
3089
3090 2004-11-13  David Edelsohn  <edelsohn@gnu.org>
3091
3092         * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5.
3093         * config/rs6000/aix52.h (ASM_CPU_SPEC): Same.
3094         (atoll): Declare.
3095         * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define.
3096
3097 2004-11-14  Joseph Myers  <joseph@codesourcery.com>
3098
3099         * config/i386/i386.c (override_options): Move loop to set default
3100         tuning to correct place.
3101
3102 2004-11-13  Zak Kipling  <zak@transversal.com>
3103
3104         PR target/18300
3105         * config/i386/i386.c (classify_argument): Fix infinite loop when
3106         passing object with 3 or more base classes by value.
3107
3108 2004-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3109
3110         * doc/md.texi (constraints) <% modifier>: Mention that it is
3111         useless when the two alternatives are strictly identical.
3112
3113 2004-11-13  Richard Henderson  <rth@redhat.com>
3114
3115         * expmed.c (extract_split_bit_field): Temporarily disable call to
3116         extract_force_align_mem_bit_field.
3117
3118 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3119
3120         * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment
3121         formatting.
3122
3123         * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c,
3124         lambda-code.c, postreload.c, predict.c, tree-sra.c,
3125         tree-ssa-loop-manip.c, tree.c: Fix comment typos.
3126
3127 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
3128
3129         * doc/install.texi (automake): Correctly document that everything now
3130         will use automake 1.9.3.
3131
3132 2004-11-13  Hans-Peter Nilsson  <hp@bitrange.com>
3133
3134         PR target/18347
3135         * config/mmix/mmix.c (mmix_function_outgoing_value): Handle
3136         TImode.  Sorry for other non-complex larger-than-64-bit modes.
3137         * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define.
3138
3139 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
3140
3141         * doc/install.texi (automake): Document that everything now uses 1.9.
3142
3143 2004-11-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3144
3145         * cse.c (cse_insn): Stores in a libcall sequence can invalidate
3146         previous loads.
3147
3148 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3149
3150         * tree.h: Fix comment typos.
3151
3152 2004-11-13  Steven Bosscher  <stevenb@suse.de>
3153
3154         * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and
3155         HARD_REGISTER_NUM_P.
3156
3157         * cselib.c (new_cselib_val): Make comment correct and more detailed.
3158         * flow.c (mark_set_1): Likewise.
3159
3160         * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
3161         duplicate_eh_regions): Remove.
3162         * except.h (duplicate_eh_regions): Remove prototype.
3163         * integrate.c (get_label_from_map, copy_rtx_and_substitute,
3164         global_const_equiv_varray): Remove.
3165         * integrate.h (get_label_from_map, copy_rtx_and_substitute,
3166         global_const_equiv_varray, set_label_in_map): Remove prototypes,
3167         extern declaration, and #define.
3168         (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove.
3169         (struct inline_remap): Remove.
3170         * varray.c (struct element): Remove entry for const_equiv_data.
3171         * varray.h (struct const_equiv_data): Remove.
3172         (enum varray_data_enum) <VARRAY_DATA_CONST_EQUIV>: Remove.
3173         (union varray_data_tag) <const_equiv>: Remove.
3174         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV,
3175         VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove.
3176
3177         * regstack.c (record_label_references): Remove unused function.
3178
3179         * rtl.def (VALUE): Update comment.
3180         (LABEL_REF): Remove unused operand 2.
3181         * rtl.h (struct rtx_def): Update for removed accessor macros.
3182         (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN,
3183         REG_LOOP_TEST_P): Remove.
3184         (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments.
3185         * web.c (entry_register): Don't copy REG_LOOP_TEST_P.
3186         * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove.
3187
3188 2004-11-13  James A. Morrison  <phython@gcc.gnu.org>
3189             Eric Botcazou  <ebotcazou@libertysurf.fr>
3190
3191         PR target/18230
3192         * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector
3193         patterns.
3194         * config/sparc/sparc.md (V64I): New macro for 64-bit modes.
3195         (V32I): New macro for 32-bit modes.
3196         (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64,
3197         iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64,
3198         xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter,
3199         xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32,
3200         one_cmpldi_sp64): Use V64I instead of DI.
3201         (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si,
3202         xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI.
3203         (addv2si3, addv4hi3, addv2hi3): Remove % modifier.
3204         (nandv64i_vis, nandv32i_vis): New patterns.
3205
3206 2004-11-12  Mike Stump  <mrs@apple.com>
3207
3208         * Makefile.in: Add html support.
3209         * java/Make-lang.in: Likewise.
3210         * fortran/Make-lang.in: Likewise.
3211         * treelang/Make-lang.in: Likewise.
3212         * doc/install.texi: Likewise.
3213         * doc/makefile.texi: Likewise.
3214         * doc/sourcebuild.texi: Likewise.
3215
3216 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3217
3218         * tree-ssa-loop-manip.c: Fix a comment typo.
3219
3220 2004-11-12  Mike Stump  <mrs@apple.com>
3221
3222         * doc/cppinternals.texi (Index): Fix html generation with makeinfo by
3223         renaming this node to Concept Index.
3224         * doc/gccint.texi (Index): Likewise.  Also minor formatting tweaks
3225         to more closely match gcc.texi.
3226
3227 2004-11-12  Jeff Law  <law@redhat.com>
3228
3229         * tree-cfg.c (hashtab.h): Include.
3230         (struct edge_to_case_leader_elt): New structure.
3231         (edge_to_case_leader): New.
3232         (edge_to_case_leader_hash): New hashtable hasing function.
3233         (edge_to_case_leader_eq): New hashtable equality function.
3234         (record_switch_edge): New function.
3235         (get_case_leader_for_edge, get_case_leader_for_edge): New functions.
3236         (make_switch_expr_edges): Build the edge-to-case-leader
3237         hash table.  Tear down the hash table when we're done.
3238         (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of
3239         CASE_LABEL.
3240         (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes.
3241         (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update
3242         to use new concept of case leaders to reduce overhead of
3243         redirecting outgoing edges from switch statements.
3244         * tree.c (get_case_label): New function.
3245         * tree.h (CASE_LABEL): Define in terms of get_case_label.
3246         (CASE_LEADER_OR_LABEL): Define.
3247
3248 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
3249
3250         * varasm.c (output_addressed_constants): For CONST_DECLs,
3251         output the initializer if present.
3252
3253 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
3254
3255         * config/rs6000/darwin.h: Fix confusing typo in comment.
3256
3257 2004-11-12  Devang Patel  <dpatel@apple.com>
3258
3259         * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.
3260
3261 2004-11-12  Devang Patel  <dpatel@apple.com>
3262
3263         * tree-if-conv.c (clean_predicate_lists): Use loop header
3264         and latch directly.
3265
3266 2004-11-12  Richard Henderson  <rth@redhat.com>
3267
3268         PR 17778
3269         * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New.
3270         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3271         (TARGET_96_ROUND_53_LONG_DOUBLE): New.
3272         * config/i386/i386-modes.def (XF): Use it.
3273
3274 2004-11-11  Geoffrey Keating  <geoffk@apple.com>
3275
3276         * Makefile.in (macro_list): Use move-if-change to avoid spurious
3277         rebuilds.
3278
3279 2004-11-12  Mark Mitchell  <mark@codesourcery.com>
3280
3281         PR c++/18416
3282         * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL
3283         when deciding whether to pass a variable to
3284         cgraph_varpool_finalize_decl or assemble_variable.
3285         * toplev.c (check_global_declarations): Do not clear DECL_RTL.
3286
3287 2004-11-12  Kazu Hirata  <kazu@cs.umass.edu>
3288
3289         * tree-vectorizer.c: Fix a comment typo.
3290
3291 2004-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
3292
3293         * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref.
3294
3295 2004-11-12  Diego Novillo  <dnovillo@redhat.com>
3296
3297         * tree-scalar-evolution.c (analyzable_condition): Remove
3298         superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs.
3299
3300 2004-11-12  Ralf Corsepius  <ralf.corsepius@rtems.org>
3301
3302         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3303         Remove m505/roe multilib variant.
3304
3305 2004-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3306
3307         * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
3308         to load from the stack.
3309
3310 2004-11-12  Richard Henderson  <rth@redhat.com>
3311
3312         * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI.
3313         (exact_log2): Rename from exact_log2_wide, use CTZ_HWI.
3314         * toplev.h (FL2T__): Remove.
3315         (CLZ_HWI): Rename from FL2T_CLZ__.
3316         (CTZ_HWI): New.
3317         (floor_log2): Simplify.
3318         (exact_log2): New.
3319
3320 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
3321
3322         * tree-data-ref.c (analyze_subscript_affine_affine): Correctly
3323         compute the first overlapping iterations.
3324
3325 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
3326
3327         PR middle-end/18005
3328         * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure
3329         that arguments of EXACT_DIV_EXPR are INTEGER_CST.
3330
3331 2004-11-12  Steven Bosscher  <stevenb@suse.de>
3332
3333         PR tree-optimization/18419
3334         * tree-ssa.c (walk_use_def_chains_1): Make the visited map a
3335         pointer set instead of a bitmap.
3336         (walk_use_def_chains): Create, pass and clean up that pointer_set.
3337
3338         * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited
3339         field an sbitmap.
3340         (init_alias_info): Allocate and zero it here.
3341         (delete_alias_info): Delete it here.
3342         (collect_points_to_info_for): Use it.
3343
3344 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3345
3346         * alias.c (record_alias_subset, addr_side_effect_eval):
3347         Make them static.
3348         * alias.h: Remove the prototype for record_alias_subset.
3349         * expr.h: Remove the commented-out prototype for
3350         record_alias_subset.
3351         * rtl.h: Remove the prototype for addr_side_effect_eval.
3352
3353         * cfglayout.c (choose_inner_scope): Make it static.
3354         * rtl.h: Remove the corresponding prototype.
3355
3356         * cfgloopmanip.c (update_single_exits_after_duplication,
3357         unloop): Make them static.
3358         * cfgloop.h: Remove the corresponding prototypes.
3359
3360         * c-typeck.c (c_size_in_bytes, record_maybe_used_decl):
3361         Make them static.
3362         * c-tree.h: Remove the corresponding prototypes.
3363
3364         * explow.c (round_push): Make it static.
3365         * expr.h: Remove the corresponding prototype.
3366
3367         * varasm.c (get_named_section_flags, decl_tls_model): Make
3368         them static.
3369         * output.h: Remove the prototype for get_named_section_flags.
3370         * tree.h: Remove the prototype for decl_tls_model.
3371
3372 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3373
3374         * function.c (expand_function_end): Remove an "if" statement
3375         that always triggers.
3376         * stmt.c (expand_null_return_1): Likewise.
3377
3378 2004-11-11  James E. Wilson  <wilson@specifixinc.com>
3379
3380         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode.
3381         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED,
3382         CLASS_MAX_NREGS): Likewise.
3383
3384 2004-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
3385
3386         PR tree-optimization/17742
3387         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
3388         MINUS_EXPR correctly.
3389
3390 2004-11-11  Sebastian Pop  <pop@cri.ensmp.fr>
3391
3392         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3393         Give up as soon as the evolution is known not computable.
3394
3395 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3396
3397         PR target/16457
3398         * config/rs6000/rs6000.c (mask64_2_operand): Stub to call
3399         mask64_1or2_operand.
3400         (mask64_1or2_operand): Broken out of mask64_2_operand, add flag
3401         to spot rlwinm opportunities.
3402         (and64_2_operand): Use mask_1or2_operand.
3403         * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible.
3404
3405 2004-11-11  Dorit Naishlos  <dorit@il.ibm.com>
3406
3407         * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis.
3408         (vect_update_ivs_after_vectorizer): Update function documentation.
3409         Avoid quadratic behavior and direct write to PHI_ARG_DEF.
3410
3411 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
3412
3413         * config/arm/arm.c: Fix a comment typo.
3414
3415 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3416
3417         * bitmap.h (nBITMAP_WORD_BITS): Remove.
3418         (BITMAP_WORD_BITS): Force unsigned by use of 1u.
3419         (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove
3420         unnecessary casts.
3421         (bitmap_first_set_bit): Return unsigned, use ctzl.
3422         (bitmap_last_set_bit): Remove.
3423         * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator
3424         unsigned.
3425         (bitmap_first_set_bit): Return unsigned, require non-empty bitmap,
3426         remove special case code for two word elements.
3427         (bitmap_last_set_bit): Remove.
3428         * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of
3429         bitmap_first_set_bit with bitmap_empty_p.
3430         * tree-outof-ssa.c (analyze_edges_for_bb): Likewise.
3431         * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than
3432         bitmap_last_bit_set.
3433
3434 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
3435
3436         PR target/16796
3437         * config/rs6000/rs6000.md: Add DF & SF reg move peepholes.
3438
3439         PR target/16458
3440         * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an
3441         unsigned equality compare when we know the operands are unsigned.
3442
3443 2004-11-10  Peter S. Mazinger  <ps.m@gmx.net>
3444
3445         * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define
3446         __PIC__ and __pic__ only if TARGET_ABICALLS.
3447         (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__.
3448         (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass
3449         -KPIC only if not -mno-abicalls.
3450
3451         * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h
3452         * config/sparc/linux.h, config/sparc/linux64.h
3453         (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic.
3454
3455         * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__.
3456         * config/pa/pa/linux.h (CPP_SPEC): Likewise.
3457         * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise.
3458         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise.
3459
3460 2004-11-11  Paul Brook  <paul@codesourcery.com>
3461
3462         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC
3463         register if current_function_uses_pic_offset_table is set.
3464
3465 2004-11-10  David Edelsohn  <edelsohn@gnu.org>
3466
3467         * config/rs6000/rs6000.md (define_attr "type"): Add two and three.
3468         Change multi-instruction sequences to new attribute.
3469         * config/rs6000/{40x.md,440.md,603.md,6xx.md,
3470         7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md,
3471         rios1.md,rios2.md,rs64.md}: Add descriptions for two and three.
3472
3473 2004-11-10  Daniel Berlin  <dberlin@dberlin.org>
3474
3475         * tree-data-ref.c (build_classic_dist_vector): If either loop
3476         is outside of the nest we asked about, the dependence can't
3477         matter.
3478         (build_classic_dir_vector): Ditto.
3479
3480 2004-11-10  Zdenek Dvorak  <dvorakz@suse.cz>
3481
3482         * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
3483         right order.
3484         (force_var_cost): Determine cost of addition and multiplication more
3485         precisely.
3486         (get_computation_cost_at): Add cost for computing address elements to
3487         the final cost.
3488
3489         * fold-const.c (fold): Attempt to use ptr_difference_const whenever
3490         one of the arguments of MINUS_EXPR is an address.
3491         (split_address_to_core_and_offset): New function.
3492         (ptr_difference_const): Handle case when one of the operands is a
3493         pointer.
3494         * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
3495         (ptr_difference_cost): Pass addresses instead of objects to
3496         ptr_difference_const.
3497
3498 2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>
3499
3500         * tree.c (tree_check_failed): Emit general error if the list of
3501         node types is empty.
3502
3503 2004-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3504
3505         * config/sparc/sparc.c (function_arg_union_value): New 'slotno'
3506         argument.  When the union is passed in the 6th slot, build a
3507         PARALLEL with only one element.
3508         (function_arg): Adjust call to function_arg_union_value.
3509         (function_value): Likewise.
3510
3511 2004-11-10  Fariborz Jahanian <fjahanian@apple.com>
3512
3513         PR tree-optimization/17892
3514         * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for
3515         MINUS_EXPR operator.
3516
3517 2004-11-10  James A. Morrison  <phython@gcc.gnu.org>
3518
3519         PR target/18230
3520         config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute.
3521         (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns.
3522
3523 2004-11-10  Steven Bosscher  <stevenb@suse.de>
3524
3525         * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New.
3526         (struct basic_block_def): Remove local_set and cond_local_set
3527         fields.  Update comment for global_live_at_start.
3528         * flow.c (calculate_global_regs_live): Allocate local_sets and
3529         cond_local_sets here as arrays of bitmaps previously stored in
3530         bb->local_set and bb->cond_local_set.  Use xmalloc instead of
3531         obstack allocated bitmaps.
3532
3533 2004-11-09  H.J. Lu  <hongjiu.lu@intel.com>
3534
3535         PR target/18380
3536         * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it
3537         hidden.
3538
3539         * unwind-dw2.c (_Unwind_FindTableEntry): Removed.
3540
3541 2004-11-09  Jeff Law  <law@redhat.com>
3542
3543         * cfganal.c (flow_dfs_compute_reverse_execute): Accept new
3544         argument holding last unvisited block.  Start search for
3545         unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK.
3546         (connect_infinite_loops_to_exit): Supply last unvisited block
3547         to flow_dfs_compute_reverse_execute.
3548
3549 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
3550
3551         * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500
3552         doubles.
3553         (floatunssidf2): Same.
3554         (floatsidf2): Same.
3555         ("extendsfdf2"): New expander.
3556         (*extendsfdf2_fpr): Rename.
3557         (*truncdfsf2_fpr): Same.
3558         (*negdf2_fpr): Same.
3559         (*absdf2_fpr): Same.
3560         (*nabsdf2_fpr): Same.
3561         (*adddf3_fpr): Same.
3562         (*subdf3_fpr): Same.
3563         (*muldf3_fpr): Same.
3564         (*divdf3_fpr): Same.
3565
3566         * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment.
3567         ("spe_fix_truncdfsi2"): Same.
3568         (spe_floatunssidf2): Same.
3569         (spe_floatsidf2): Same.
3570
3571 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3572
3573         PR c/18322
3574         * c-common.c (fname_decl): Don't use line number of decl in
3575         diagnostic.
3576
3577 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
3578
3579         * config/s390/s390-protos.h (s390_pool_operand): Remove.
3580         * config/s390/s390.c (s390_pool_operand): Likewise.
3581         (s390_extra_constraint_str): Handle 'B' constraints.
3582         * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints.
3583         * config/s390/s390.md: Document 'B' constraints.
3584         ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of
3585         s390_pool_operand to prevent insns with two literal pool
3586         references.  Make pattern commutative.
3587         ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use
3588         'B' constraint instead of s390_pool_operand.
3589
3590 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3591
3592         * tree-cfg.c (create_bb): Remove unnecessary memset.
3593
3594 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3595
3596         * tree-ssa-threadupdate.c (copy_phis_to_block): Remove.
3597         (thread_block): Call flush_pending_stmt instead of
3598         copy_phis_to_block.
3599
3600 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3601
3602         * loop-iv.c (iv_number_of_iterations): Make it static.
3603         * cfgloop.h: Remove the corresponding prototype.
3604
3605 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3606
3607         * function.c (combine_temp_slots, assign_parms,
3608         expand_pending_sizes): Make them static.
3609         * tree.h: Remove the corresponding prototypes.
3610
3611 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3612
3613         * emit-rtl.c (copy_most_rtx): Remove.
3614         * rtl.h: Remove the corresponding prototype.
3615
3616 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3617
3618         * cfgloop.c (flow_loops_update): Remove.
3619         * cfgloop.h: Remove the corresponding prototype.
3620
3621 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3622
3623         * conflict.c (mark_reg, conflict_graph_compute): Remove.
3624         * basic-block.h: Remove the prototype for
3625         conflict_graph_compute.
3626
3627 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3628
3629         * tree-if-conv.c (add_to_dst_predicate_list): Change the
3630         second argument to basic_block.
3631         (tree_if_convert_cond_expr): Update call sites.
3632
3633 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3634
3635         * fold-const.c (pedantic_non_lvalue): Make it static.
3636         * tree.h: Remove the corresponding prototype.
3637
3638 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3639
3640         * optabs.c (prepare_operand): Make it static.
3641         * optabs.h: Remove the corresponding prototype.
3642
3643 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3644
3645         * reload1.c (reloads_conflict, gen_reload): Make them static.
3646         * reload.h: Remove the corresponding prototypes.
3647
3648 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3649
3650         * reload.c (refers_to_mem_for_reload_p,
3651         refers_to_regno_for_reload_p): Make them static.
3652         * reload.h: Remove the corresponding prototypes.
3653
3654 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
3655             Eric Botcazou  <ebotcazou@libertysurf.fr>
3656
3657         PR target/18230
3658         * doc/md.texi (SPARC constraints): Document 'Y' constraint.
3659         * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
3660         * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
3661         (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
3662         (fp_zero_operand): Accept MODE_VECTOR_INT modes.
3663         (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
3664         (sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
3665         (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
3666         MODE_VECTOR_INT modes.
3667         (sparc_extra_constraint_check): Add new constraint 'Y'.
3668         * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
3669         * config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
3670         (V64): New mode macro for 64-bit modes.
3671         (movsf): Use V32 for mode instead of SF.
3672         (movsf_insn_vis): Use V32 for mode instead of SF.  Add 'Y' constraint
3673         alongside 'G' constraint.
3674         (movdf): Use V64 for mode instead of DF.
3675         (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
3676         of DF.  Add 'Y' constraint alongside 'G' constraint.
3677         (multi-isn and misaligned mems DFmode splitters): Use V64 for mode
3678         instead of DF.
3679
3680 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
3681
3682         * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for
3683         integer NEG and ABS.
3684         * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute.
3685         ("*negdi2_31"): Reimplement using a splitter.
3686         ("*negdi2_cc", "*negdi2_cconly"): New insns.
3687         ("*negdi2_sign", "*negdi2_sign_cc"): Likewise.
3688         ("*negsi2_cc", "*negsi2_cconly"): Likewise.
3689         ("*negdf2_cc", "*negdf2_cconly"): Likewise.
3690         ("*negsf2_cc", "*negsf2_cconly"): Likewise.
3691         ("*absdi2_cc", "*absdi2_cconly"): New insns.
3692         ("*absdi2_sign", "*absdi2_sign_cc"): Likewise.
3693         ("*abssi2_cc", "*abssi2_cconly"): Likewise.
3694         ("*absdf2_cc", "*absdf2_cconly"): Likewise.
3695         ("*abssf2_cc", "*abssf2_cconly"): Likewise.
3696         ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns.
3697         ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise.
3698         ("*negabssi2_cc", "*negabssi2_cconly"): Likewise.
3699         ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise.
3700         ("*negabssf2_cc", "*negabssf2_cconly"): Likewise.
3701
3702 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
3703
3704         * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
3705         when eliminating an UNSPEC_CMPINT.
3706         (s390_secondary_input_reload_class): Fix test for CC register reload.
3707         (s390_secondary_output_reload_class): Likewise.
3708         (s390_expand_cmpmem): Swap operands.  Use gen_cmpint.
3709         * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
3710         ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
3711         insn patterns with splitters.
3712
3713 2004-11-09  David Edelsohn  <edelsohn@gnu.org>
3714
3715         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU.
3716         * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns.
3717
3718 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3719
3720         * tree-phinodes.c (phi_reverse): New.
3721         * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
3722         Use it.
3723         * tree-flow.h: Add a prototype for phi_reverse.
3724
3725 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
3726
3727         * tree-ssa-loop-ivopts.c: Fix a comment typo.
3728
3729 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
3730
3731         PR pch/14940
3732         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__
3733         definitions.
3734
3735 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3736
3737         * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"
3738         instead of "arg" in diagnostics.
3739
3740 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
3741
3742         * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
3743         c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
3744         gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
3745         tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
3746         config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
3747         config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
3748         config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
3749         config/iq2000/iq2000.c, config/m32r/m32r.c,
3750         config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
3751         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
3752         config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
3753         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
3754         config/sh/symbian.c, config/stormy16/stormy16.c,
3755         config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
3756         and %> as appropriate.  Use %' as apostrophe in diagnostics where
3757         applicable.  Use %< and %> in place of '' quotes where applicable.
3758         Use %qs in place of %<%s%>.  Consistently quote __builtin function
3759         names.
3760
3761 2004-11-09  Hans-Peter Nilsson  <hp@bitrange.com>
3762
3763         * gdbinit.in (pbb, pbm): New macros.
3764
3765 2004-11-08 Jeff Law  <law@redhat.com>
3766
3767         * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than
3768         implementing it inline.
3769
3770         * cfganal.c (find_edge): Search pred->succs or succ->preds,
3771         whichever is shorter.
3772
3773 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3774
3775         * passes.c (rest_of_handle_jump): Remove dead code.
3776
3777 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3778
3779         * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to
3780         the last used element in the worklist.
3781
3782 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3783
3784         * tree-inline.c (remap_save_expr): Make it static.
3785         * tree-inline.h: Remove the corresponding prototype.
3786
3787 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3788
3789         * tree-ssa-loop-niter.c (upper_bound_in_type,
3790         lower_bound_in_type): Make them static.
3791         * tree.h: Remove the corresponding prototypes.
3792
3793 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3794
3795         * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them
3796         static.
3797         * tree-ssa-live.h: Remove the corresponding prototypes.
3798
3799 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3800
3801         * tree-if-conv.c (tree_if_conversion): Make it static.
3802         * tree-flow.h: Remove the corresponding prototype.
3803
3804 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3805
3806         * tree-ssa-operands.c (build_ssa_operands): Make it static.
3807         * tree-flow.h: Remove the corresponding prototype.
3808
3809 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
3810
3811         PR tree-opt/18299
3812         * tree-inline.c (copy_body_r): Change "t = t" to empty
3813         statement instead of "t".
3814
3815 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3816
3817         * modulo-sched.c (create_partial_schedule,
3818         free_partial_schedule, reset_partial_schedule,
3819         ps_add_node_check_conflicts, rotate_partial_schedule): Make
3820         them static.
3821
3822 2004-11-08  Richard Henderson  <rth@redhat.com>
3823
3824         * expmed.c (extract_force_align_mem_bit_field): Correct handling at
3825         the end of a page.
3826
3827 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3828
3829         * sched-deps.c (add_insn_mem_dependence): Make it static.
3830         * sched-int.h: Remove the corresponding prototypes.
3831
3832 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3833
3834         * flow.c (allocate_bb_life_data): Make it static.
3835         * basic-block.h: Remove the corresponding prototype.
3836
3837 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3838
3839         * calls.c (split_complex_values, split_complex_types): Make
3840         them static.
3841         * expr.h: Remove the corresponding prototypes.
3842
3843 2004-11-08  Richard Earnshaw  <rearnsha@arm.com>
3844
3845         * arm.c (arm_handle_notshared_attribute): Wrap declaration and use
3846         with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES.
3847
3848 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3849
3850         * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
3851         statements that always trigger.
3852
3853 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
3854
3855         * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
3856         tree-scalar-evolution.c, tree-ssa-loop-im.c,
3857         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
3858         tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
3859         appropriate.
3860
3861 2004-11-08  Ben Elliston  <bje@au.ibm.com>
3862
3863         * cgraph.h (cgraph_calls_p): Remove.
3864         * cgraph.c (cgraph_calls_p): Likewise.
3865
3866         * varray.h (varray_copy): Remove.
3867         * varray.c (varray_copy): Likewise.
3868
3869 2004-11-07  Andrew Pinski  <pinskia@physics.uc.edu>
3870
3871         PR target/18269
3872         * config/darwin.c (machopic_indirect_data_reference):
3873         Call gen_macho_high and gen_macho_low instead of
3874         checking the mode and calling gen_macho_high_di directly.
3875         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
3876         * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
3877         to darwin.md.
3878         (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
3879         load_macho_picbase, macho_low, macho_high): Removed.
3880         (builtin_setjmp_receiver): Call gen_macho_high and
3881         gen_macho_low instead of checking the mode and calling
3882         gen_macho_high_di directly.
3883         * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
3884         (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
3885         Moved from rs6000.md.
3886         (macho_high): New expander.
3887         (macho_high_si): Renamed version of macho_high from rs6000.md.
3888         (macho_low): New expander.
3889         (macho_low_si): Renamed version of macho_low from rs6000.md.
3890         (load_macho_picbase): New expander.
3891         (load_macho_picbase_si): Renamed version of load_macho_picbase
3892         from rs6000.md.
3893         (macho_correct_pic): New expander.
3894         (macho_correct_pic_si): Renamed version of macho_correct_pic
3895         from rs6000.md.
3896
3897 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
3898
3899         * c-decl.c (finish_struct): Use complete sentences for diagnostic
3900         for structures or unions with no members or named members.
3901
3902 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
3903
3904         * c-typeck.c (build_unary_op): Replace unreachable diagnostic for
3905         taking address of bit-field by assertion.
3906
3907 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
3908
3909         * config/s390/s390.md (attribute "op_type"): Default to "NN".
3910         (attribute "atype"): Default to "agen".
3911         (attribute "length"): Default to 6.
3912         (define_asm_attibutes): Remove.
3913         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
3914         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf",
3915         "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"):
3916         Do not set type attribute to "cs" where already default.
3917         ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm",
3918         "*negdi2_31"):
3919         Do not set type attribute to "other" where already default.
3920         ("movti", "*movdi_64", "*movdi_31", "*movdf_31",
3921         "*strlendi", "*strlensi",
3922         "*movmem_long_64", "*movmem_long_31",
3923         "*clrmem_long_64", "*clrmem_long_31",
3924         "*cmpmem_long_64", "*cmpmem_long_31",
3925         "*cmpint_si", "*cmpint_di",
3926         "addti3", "*adddi3_31z", "*adddi3_31",
3927         "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31",
3928         "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg",
3929         "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm",
3930         "*pool_entry", "pool_align", "pool_section_start",
3931         "pool_section_end", "main_pool", "reload_base_31", "pool"):
3932         Do not set op_type attribute to "NN" where already default.
3933         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
3934         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
3935         "fix_truncdfsi2_ibm", "floatsidf2_ibm"):
3936         Do not set atype attribute to "agen" where already default.
3937         ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type.
3938
3939 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
3940
3941         * config/mips/t-iris6 (tp-bit.c): Fix target filename.
3942
3943 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
3944
3945         PR target/16830
3946         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the
3947         R3000 and R4000 macros on IRIX.
3948
3949 2004-11-06  Andreas Schwab  <schwab@suse.de>
3950
3951         PR target/16286
3952         * config/rs6000/altivec.h: Replace bool by __bool and pixel by
3953         __pixel.
3954
3955 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3956
3957         * tree-ssa-copyrename.c (rename_ssa_copies): Make it static.
3958
3959 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
3960
3961         * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
3962         matches no insns already matched by other reservations.
3963         * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
3964         matches no insns already matched by other reservations.
3965         ("x_ss"): Remove, replace by ...
3966         ("x_cs"): ... this new reservation.  Check type instead of op_type.
3967         Update bypasses to use x_cs instead of x_ss.
3968         ("x_nn"): Remove, replace by ...
3969         ("x_other"): ... this new reservation.  Check type instead of op_type.
3970         Add x_other and x_branch to bypasses.
3971         ("x_vs"): New reservation.
3972         * config/s390/s390.md (attribute "type"): Default according to op_type.
3973         ("*execute"): Set type to "cs".
3974
3975 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
3976
3977         * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR
3978         if we are in GIMPLE.
3979
3980 2004-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
3981
3982         PR rtl-optimization/17933
3983         * rtlanal.c (dead_or_set_regno_p): Break out common code to...
3984         (covers_regno_p): New function.  Handle SETs of PARALLEL,
3985         and defer the rest to...
3986         (covers_regno_no_parallel_p): New function.
3987
3988 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3989
3990         * config/sparc/sparc.c (function_arg_record_value_1): Skip
3991         fields with zero length.
3992         (function_arg_record_value_2): Likewise.
3993         (function_arg_record_value_3): Use smallest_mode_for_size
3994         instead of mode_for_size.
3995         (function_arg_union_value): Return naked register for unions
3996         with zero length.
3997
3998 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3999
4000         * config/sparc/sparc.c (scan_record_type): Handle vector types.
4001         (function_arg_slotno): Handle vector types specially.
4002         (function_arg_record_value_1): Split fields with vector type and
4003         BLKmode into their subparts.
4004         (function_arg_record_value_2): Likewise.  Be prepared to handle
4005         more than 2 registers per field.
4006         (function_arg_union_value): Increment regno inside the loop.
4007         (function_arg_vector_value): New function.
4008         (function_arg): Use it to split fields with vector type and
4009         BLKmode into their subparts and build a PARALLEL.  Treat
4010         other vector types like floats.
4011         (function_value): Likewise.
4012         (sparc_pass_by_reference): Handle vector types.
4013         (sparc_return_in_memory): Likewise.
4014
4015 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4016
4017         * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"
4018         statement that never triggers.
4019
4020 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
4021
4022         * config/s390/2064.md ("z_o2", "z_o3"): Remove.
4023         * config/s390/2084.md ("x_o2", "x_o3"): Remove.
4024         ("x_fdivd"): Use also for fsqrtd type.
4025         ("x_fdivs"): Use also for fsqrts type.
4026         * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types.
4027         ("fix_truncdfsi2_ieee"): Set type to "ftoi".
4028         ("fix_truncdfsi2_ibm"): Set type to "other".
4029         ("floatdidf2", "floatdisf2"): Do not clobber CC.
4030         ("floatsidf2", "floatsidf2_ieee"): Likewise.
4031         ("floatsisf2", "floatsisf2_ieee"): Likewise.
4032         ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand".
4033         ("truncdfsf2_ibm"): Only allow "nonimmediate_operand".  Use LER
4034         instead of LRER.
4035         ("extendsfdf2_ibm"): Do not set atype.  Set type to "floads".
4036         ("sqrtdf2"): Set type to "fsqrtd".
4037         ("sqrtsf2"): Set type to "fsqrts".
4038
4039 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4040
4041         * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a
4042         pointer to the last PHI node in the new PHI chain.
4043
4044 2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
4045
4046         * config/sh/sh.c (prepare_move_operands): Emit a use of r12
4047         for non-PIC TLS_MODEL_INITIAL_EXEC case.
4048
4049 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4050
4051         * expmed.c: Fix a comment typo.
4052
4053 2004-11-06  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4054
4055         PR target/18106
4056         * config/i386/cygming.h
4057         [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
4058
4059 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4060
4061         * config/sh/sh4a.md: Fix copyright.
4062
4063 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4064
4065         * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC
4066         with GCC.
4067
4068 2004-11-05  David Edelsohn  <edelsohn@gnu.org>
4069
4070         * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf
4071         when carry not used.  Suggested by Torbjorn Granlund.
4072
4073         * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg
4074         operand[1] unnecessarily.  Suggested by Eric Christopher.
4075         (rs6000_adjust_cost): Increase latency of store to wider load.
4076         (rs6000_rtx_costs): mulli only allows 16-bit constants.
4077
4078 2004-11-05  Stan Shebs  <shebs@apple.com>
4079
4080         * config/rs6000/rs6000.c (machopic_output_stub): Output
4081         ldu instead of lwzu for 64-bit stubs.
4082
4083 2004-11-05  Richard Henderson  <rth@redhat.com>
4084
4085         * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case
4086         size 2 with BWX.
4087         (alpha_expand_unaligned_store): Likewise.
4088
4089 2004-11-05  Richard Henderson  <rth@redhat.com>
4090
4091         * expmed.c (extract_force_align_mem_bit_field): New.
4092         (extract_split_bit_field): Call it.
4093
4094 2004-11-05  Richard Henderson  <rth@redhat.com>
4095
4096         * ia64.md (UNSPEC_SHRP): New.
4097         (dshift_count_operand): New.
4098         (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
4099         * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
4100
4101 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4102
4103         * c-typeck.c (output_init_element): Return early if value is
4104         error_mark_node.
4105
4106 2004-11-05  James E Wilson  <wilson@specifixinc.com>
4107
4108         * invoke.texi (-fno-guess-branch-probability): Rewrite.
4109
4110         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
4111         1 to UNSPEC_GR_SPILL.
4112
4113 2004-11-05  Andreas Krebbel  <krebbel1@de.ibm.com>
4114
4115         * config/s390/s390.c (s390_fixed_condition_code_regs): New function.
4116         (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined.
4117
4118 2004-11-05  Nathan Sidwell  <nathan@codesourcery.com>
4119
4120         * bitmap.h (enum bitmap_bits): Remove.
4121         (bitmap_operation): Remove.
4122         (bitmap_and, bitmap_and_into, bitmap_and_compl,
4123         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
4124         bitmap_xor_into): Prototype.
4125         * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New.
4126         (bitmap_operation): Remove.
4127         (bitmap_and, bitmap_and_into, bitmap_and_compl,
4128         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
4129         bitmap_xor_into): New.
4130         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust.
4131
4132         PR tree-optimization/18307
4133         * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST
4134         and ORIG being the same node.
4135
4136 2004-11-04  Geoffrey Keating  <geoffk@apple.com>
4137
4138         * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
4139         (install-mkheaders): Install the version built for the
4140         host, not for the build machine.
4141         * configure.ac: Always run fixincludes.
4142         (all_outputs): Remove mkheaders.
4143         * configure: Regenerate.
4144         * fixinc.in: Move to fixincludes/.
4145         * mkfixinc.sh: Likewise.
4146         * mkheaders.in: Likewise.
4147         * README-fixinc: Likewise.
4148
4149 2004-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
4150
4151         PR target/18263
4152         * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the
4153         equivalent on the A4.
4154
4155 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4156
4157         * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi,
4158         doc/cppopts.texi, doc/extend.texi, doc/fragments.texi,
4159         doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi,
4160         doc/implement-c.texi, doc/install.texi, doc/invoke.texi,
4161         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
4162         doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi,
4163         doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi,
4164         doc/trouble.texi: Correct end-of-sentence markup and markup of
4165         "etc.", "e.g." and "i.e.".  Use @code in various places where
4166         appropriate.
4167
4168 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4169
4170         * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi,
4171         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi,
4172         doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing
4173         whitespace.
4174
4175 2004-11-04  Mark Mitchell  <mark@codesourcery.com>
4176
4177         * config/arm/arm.c (arm_handle_notshared_attribute): New function.
4178         * doc/extend.texi: Document "notshared" attribute.
4179
4180 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4181
4182         * tree-phinodes.c (make_phi_node): Make it static.
4183         * tree.h: Remove the prototypes for make_phi_node.
4184
4185 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4186
4187         * stmt.c (expand_asm, expand_asm_operands): Make them static.
4188         * tree.h: Remove the prototypes for expand_asm and
4189         expand_asm_operands.
4190
4191 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4192
4193         * passes.c (rest_of_compilation): Make it static.
4194         * toplev.h: Remove the prototype for rest_of_compilation.
4195
4196 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4197
4198         * jump.c (cleanup_barriers): Use delete_insn instead of
4199         delete_barrier.
4200         (delete_barrier): Remove.
4201         * rtl.h: Remove the corresponding prototype.
4202
4203 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4204
4205         * expr.c (mostly_zero_p): Make it static.
4206         * tree.h: Remove the prototype for mostly_zeros_p.
4207
4208 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4209
4210         * cfgrtl.c (force_nonfallthru_and_redirect): Make it static.
4211
4212 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4213
4214         * builtins.c (expand_builtin_return_addr,
4215         expand_builtin_longjmp, expand_builtin_trap): Make them static.
4216         * expr.h: Remove the prototypes for expand_builtin_longjmp and
4217         expand_builtin_trap.
4218         * tree.h: Remove the prototype for expand_builtin_return_addr.
4219
4220 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4221
4222         * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
4223         * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
4224         with VAL being NULL.
4225
4226 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4227
4228         * cfghooks.c (delete_basic_block): Remove code to truncate
4229         edge vectors.
4230
4231 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
4232
4233         * flow.c (init_propagate_block_info): Change the type of i to
4234         unsigned.
4235
4236 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
4237
4238         PR tree-optimization/18184
4239         * c-typeck.c (comptypes): Do not treat pointers of different
4240         modes or alias-all flags as equivalent.
4241         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise.
4242
4243 2004-11-04  Joseph S. Myers  <joseph@codesourcery.com>
4244
4245         * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't
4246         reference specific C parser files in examples.
4247
4248 2004-11-04  Richard Sandiford  <rsandifo@redhat.com>
4249
4250         PR target/15342
4251         * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
4252         as OP_INOUT if the instruction is predicated.
4253
4254 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4255
4256         * bitmap.h: Fix a comment typo.  Follow spelling conventions.
4257         * tree-vectorizer.c: Fix a comment typo.
4258
4259 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4260
4261         * sdbout.c (SDB_GENERATE_FAKE): Remove.
4262         (gen_fake_label): Don't use SDB_GENERATE_FAKE.
4263         * system.h: Poison SDB_GENERATE_FAKE.
4264         * doc/tm.texi (SDB_GENERATE_FAKE): Remove.
4265
4266 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
4267
4268         * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL.
4269
4270 2004-11-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4271
4272         PR other/18277
4273         * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert
4274         2004-10-29 patch
4275
4276 2004-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4277
4278         * predict.c (propagate_freq): Make bitno unsigned. Move
4279         npredecessors update out of loop.
4280
4281         * bitmap.h (bitmap_iterator): Remove word_bit and bit
4282         fields. Rename others.
4283         (bmp_iter_common_next_1, bmp_iter_single_next_1,
4284         bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next,
4285         bmp_iter_and_not_next_1, bmp_iter_and_not_init,
4286         bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init,
4287         bmp_iter_and_next): Remove.
4288         (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init,
4289         bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl):
4290         New.
4291         (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP,
4292         EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust.
4293
4294         * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove.
4295         * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior,
4296         bitmap_and_into, bitmap_ior_into as appropriate.
4297         * except.c (remove_eh_handler): Likewise.
4298         * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise.
4299         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
4300         * tree-ssa-alias.c (merge_pointed_to_info): Likewise.
4301         * tree-ssa-live.h (live_merge_and_clear): Likewise.
4302         * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for):
4303         Likewise.
4304
4305         * bitmap.c (bitmap_print): Make bitno unsigned.
4306         * bt-load.c (clear_btr_from_live_range,
4307         btr_def_live_range): Likewise.
4308         * caller-save.c (save_call_clobbered_regs): Likewise.
4309         * cfganal.c (compute_dominance_frontiers_1): Likewise.
4310         * cfgcleanup.c (thread_jump): Likewise.
4311         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
4312         * conflict.c (conflict_graph_compute): Likewise.
4313         * ddg.c (add_deps_for_use): Likewise.
4314         * df.c (df_refs_update): Likewise.
4315         * except.c (remove_eh_handler): Likewise.
4316         * flow.c (verify_local_live_at_start, update_life_info,
4317         initialize_uninitialized_subregs, propagate_one_insn,
4318         free_propagate_block_info, propagate_block, find_use_as_address,
4319         reg_set_to_hard_reg_set): Likewise.
4320         * gcse.c (clear_modify_mem_tables): Likewise.
4321         * global.c (global_conflicts, build_insn_chain): Likewise.
4322         * ifcvt.c (dead_or_predicable): Likewise.
4323         * local-alloc.c (update_equiv_regs): Likewise.
4324         * loop.c (load_mems): Likewise.
4325         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs):
4326         Likewise.
4327         * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill):
4328         Likewise.
4329         * reload1.c (order_regs_for_reload, finish_spills): Likewise.
4330         * sched-deps.c (sched_analyze_insn, free_deps): Likewise.
4331         * sched-rgn.c (propagate_deps
4332         * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise.
4333         * tree-dfa.c (dump_dfa_stats
4334         tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
4335         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags):
4336         Likewise.
4337         * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars,
4338         free_temp_expr_table, find_replaceable_exprs): Likewise.
4339         * tree-sra.c (scan_function, scalarize_parms): Likewise.
4340         * tree-ssa-alias.c (init_alias_info,
4341         compute_points_to_and_addr_escape,
4342         compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise.
4343         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise.
4344         * tree-ssa-live.c (new_tree_live_info, live_worklist,
4345         calculate_live_on_entry, calculate_live_on_exit, compare_pairs,
4346         sort_coalesce_list, build_tree_conflict_graph, dump_live_info
4347         tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
4348         tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
4349         add_call_read_ops): Likewise.
4350         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise.
4351         * tree-ssa-live.h (num_var_partitions): Return unsigned.
4352
4353 2004-11-03  Dorit Naishlos  <dorit@il.ibm.com>
4354
4355         PR tree-optimization/18009
4356         * tree-vectorizer.h (enum dr_alignment_support): New type.
4357         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
4358         (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
4359         single data_reference (instead of a varray of references).
4360         * tree-vectorizer.c (new_loop_vec_info): Likewise.
4361         (vect_gen_niters_for_prolog_loop): Likewise.
4362         (vect_update_inits_of_drs): Likewise.
4363
4364         (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
4365         vect_enhance_data_refs_alignment.
4366         (vect_do_peeling_for_alignment): Likewise.
4367         (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
4368         this functionality used to be in vect_analyze_data_refs_alignment.
4369         Also update DR_MISALIGNMENT due to peeling; this functionality used to
4370         be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
4371         (vect_analyze_data_refs_alignment): Decision on whether and by how much
4372         to peel moved to vect_enhance_data_refs_alignment. Call
4373         vect_supportable_dr_alignment.
4374
4375         (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
4376         (vect_compute_data_refs_alignment): Return bool. Consider return value
4377         of vect_compute_data_ref_alignment and return true/false accordingly.
4378         (vect_enhance_data_refs_alignment): Consider return value of
4379         vect_compute_data_refs_alignment and return true/false accordingly.
4380
4381         (vect_supportable_dr_alignment): New function.
4382         (vectorizable_store): Call vect_supportable_dr_alignment.
4383         (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
4384         support checks moved from here to vect_supportable_dr_alignment.
4385
4386         (vect_transform_loop): Avoid 80 columns overflow.
4387
4388 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4389
4390         * timevar.c (timevar_enable): Change from
4391         static.
4392         (timevar_push): Rename to ...
4393         (timevar_push_1): this and remove the
4394         enabled check.
4395         (timevar_pop): Rename to ...
4396         (timevar_pop_1): this and remove the
4397         enabled check.
4398         * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops.
4399         (timevar_pop): New macro.
4400         (timevar_push): New macro.
4401         (timevar_enable): Declare.
4402
4403 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4404
4405         * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared
4406         libgcc for shared libraries.
4407
4408 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4409
4410         * config/s390/s390-protos.h (s390_split_access_reg): Add prototype.
4411         * config/s390/s390.c (s390_split_access_reg): New function.
4412         (regclass_map): Add access registers.
4413         (get_thread_pointer): Use access register instead of UNSPEC_TP.
4414         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38.
4415         (ACCESS_REGNO_P, ACCESS_REG_P): New macros.
4416         (TP_REGNUM): New define.
4417         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
4418         REG_ALLOC_ORDER): Add access registers.
4419         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
4420         CANNOT_CHANGE_MODE_CLASS): Support access registers.
4421         (enum reg_class): Add ACCESS_REGS.
4422         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
4423         (REG_CLASS_FROM_LETTER): Add 't' constraint.
4424         (REGISTER_NAMES): Add access registers.
4425         * config/s390/s390.md (UNSPEC_TP): Remove.
4426         ("*movdi_64"): Add access register alternatives.  Provide splitters
4427         to split DImode access register <-> GPR moves into SImode moves.
4428         ("*movsi_zarch", "*movsi_esa"): Add access register alternatives.
4429         ("movstrictsi"): Likewise.
4430         ("get_tp_64", "get_tp_31"): Reimplement using access registers.
4431         ("set_tp_64", "set_tp_31"): Likewise.
4432         ("*set_tp"): New insn.
4433
4434 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4435
4436         * tree-phinodes.c (resize_phi_node): Copy only a portion of
4437         the PHI node currently in use.
4438
4439 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
4440
4441         PR tree-opt/18231
4442         * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
4443         also.
4444
4445 2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
4446
4447         PR tree-optimization/18270
4448         * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
4449         abnormal edges, commit all pending stmts on incoming edges.
4450
4451 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
4452
4453         * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
4454         cause extra costs.  Generate canonical RTL.
4455
4456 2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
4457
4458         * lambda-code.c (lambda_compute_auxillary_space): Update comments.
4459         (lambda_compute_target_space). Ditto.
4460         * lambda.h (lambda_trans_matrix): Ditto.
4461         (lambda_linear_expression): Ditto.
4462         (lambda_body_vector): Ditto.
4463         (lambda_loopnest): Ditto.
4464         * tree-loop-linear.c (gather_interchange_stats): Combine tests,
4465         update comments, and remove pointless addition of 0.
4466         (linear_transform_loops): Update comments.
4467
4468 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
4469
4470         * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of
4471         CEIL_MOD_EXPR.
4472
4473 2004-11-03 Jeff Law  <law@redhat.com>
4474
4475         * predict.c (struct block_info_def): Kill "tovisit" field.
4476         (propagate_freq): Accept new "tovisit" parameter.  Change
4477         read/write access methods for "tovisit" to check the "tovisit"
4478         bitmap instead of a bit in block_info_def.
4479         (estimate_loops_at_level): Allocate "tovisit" bitmap.  Pass
4480         it to propagate_freq.
4481
4482         * stmt.c (expand_case): Speed up code to detect duplicate case
4483         label targets and count unique case label targets.
4484
4485 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4486
4487         * cppdefault.c, cppdefault.h, timevar.h: Update copyright.
4488
4489 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4490
4491         * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting.
4492
4493 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
4494
4495         * tree-cfg.c (find_taken_edge): Abort if we are given a
4496         statement that is neither COND_EXPR nor SWITCH_EXPR.
4497
4498 2004-11-02  Zdenek Dvorak  <dvorakz@suse.cz>
4499
4500         * fold-const.c (fold): Reassociate also (x - mult) + mult and
4501         (mult - x) + mult.  Cast operands of expression after applying
4502         distributive law to the correct types.  Apply distributive law
4503         to a * c - b * c for all non-float types.
4504
4505 2004-11-02  Geoffrey Keating  <geoffk@apple.com>
4506
4507         * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just
4508         because we don't want to run them now; instead, set them to
4509         stmp-install-fixproto or stmp-install-fixinc.
4510         * Makefile.in (stmp-install-fixproto): New.
4511         (stmp-install-fixinc): New.
4512         * configure: Regenerate.
4513
4514 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
4515
4516         * flow.c (init_propagate_block_info): Use bitmap_empty_p on result
4517         of bitmap_xor.
4518
4519 2004-11-02  Ziemowit Laski  <zlaski@apple.com>
4520
4521         * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
4522         (c_types_compatible_p): Move function definition...
4523         * c-objc-common.c (c_types_compatible_p): ...here.
4524         * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
4525         c-lang.c.
4526
4527 2004-11-02  Steven Bosscher  <stevenb@suse.de>
4528
4529         * cfgloop.h (struct loop): Update comment.
4530         * cse.c (cse_main): Remove obsolete comment.
4531
4532         * expr.h (gen_cond_trap): Move prototype under functions provided
4533         by optabs.c.
4534         (canonicalize_condition, get_condition): Move to...
4535         * rtl.h (canonicalize_condition, get_condition): ...here.
4536         (branch_target_load_optimize): Add comment that this function is
4537         in bt-load.c.
4538         * loop.c (canonicalize_condition, get_condition): Move to...
4539         * rtlanal.c (canonicalize_condition, get_condition): ...here.
4540         * sched-deps.c (get_condition): Rename to sched_get_condition.
4541         (add_dependence): Update this caller.
4542
4543 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
4544
4545         PR tree-opt/16808
4546         * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure
4547         that the vops get marked for renaming.
4548
4549 2004-11-02  Andreas Krebbel  <krebbel1@de.ibm.com>
4550
4551         * config/s390/s390.md ("movcc"): Set type attribute.
4552
4553 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
4554
4555         * tree-phinodes.c (add_phi_arg): Add an assertion that the
4556         edge already exists.
4557
4558 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
4559
4560         * tree-phinodes.c (remove_phi_arg_num): Do not zero the
4561         element that's being removed.
4562
4563 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
4564
4565         * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI
4566         arguments using PENDING_STMT.
4567         (thread_block): Call copy_phis_to_block after redirecting an
4568         edge.
4569
4570 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
4571
4572         * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
4573         bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
4574         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
4575         (bitmap_ior_and_compl_into): Produce bool.
4576         (bitmap_union_of_diff): Rename to ...
4577         (bitmap_ior_and_compl): ... here. Produce bool.
4578         * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
4579         bitmap_operation directly.
4580         (bitmap_union_of_diff): Rename to ...
4581         (bitmap_ior_and_compl): ... here. Return bool, use
4582         bitmap_operation directly.
4583         * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
4584         (df_ru_transfer_function, df_lr_transfer_function): Likewise.
4585         * global.c (modify_bb_reg_pav): Likewise.
4586
4587         * bitmap.h (bitmap_equal_p): Return bool.
4588         (bitmap_intersect_p, bitmap_intersect_compl_p): Declare.
4589         * bitmap.c (bitmap_equal_p): Return bool. Compare directly.
4590         (bitmap_intersect_p, bitmap_intersect_compl_p): New.
4591         * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and
4592         bitmap_intersect_compl_p.
4593         * ifcvt (dead_or_predicable): Likewise.
4594
4595 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
4596
4597         PR rtl-optimization/17104
4598         * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small
4599         loads in zero_extend.
4600
4601 2004-11-02  Danny Smith  <dannysmith@users.sourceforge.net>
4602
4603         PR debug/18242
4604         * toplev.c (debug_type_names): Remove "dwarf-1".
4605
4606 2004-11-02  Ben Elliston  <bje@au.ibm.com>
4607
4608         * timevar.h (timevar_get): Remove.
4609         * timevar.c (timevar_get): Remove unused function.
4610
4611 2004-11-02  Joseph S. Myers  <joseph@codesourcery.com>
4612
4613         * doc/include/texinfo.tex: Update from Texinfo CVS.
4614
4615 2004-11-02  Ben Elliston  <bje@au.ibm.com>
4616
4617         * cppdefault.h (cpp_SYSROOT): Remove.
4618         * cppdefault.c (cpp_SYSROOT): Likewise.
4619
4620 2004-11-01  Andrew MacLeod  <amacleod@redhat.com>
4621
4622         PR tree-optimization/16447
4623         * tree-cfg.c (bsi_commit_one_edge_insert): Rename from
4624         bsi_commit_edge_inserts_1, and make funtion external.  Return new block.
4625         (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert.
4626         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing.
4627         * tree-flow.h (bsi_commit_one_edge_insert): Extern decl.
4628         * tree-outof-ssa.c (rewrite_trees): Don't commit edges here.
4629         (same_stmt_list_p): New.  Return TRUE if edge is to be forwarded.
4630         (identical_copies_p): New.  Return true is two copies are the same.
4631         (identical_stmt_lists_p): New.  Return true if stmt lists are the same.
4632         (analyze_edges_for_bb): New.  Determine how best to insert edge stmts
4633         for a basic block.
4634         (perform_edge_inserts): New.  Determine what to do with all stmts that
4635         have been inserted on edges.
4636         (remove_ssa_form):  Analyze and commit edges from here.
4637
4638 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
4639
4640         PR bootstrap/18232
4641         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
4642         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
4643         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
4644         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
4645
4646 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
4647
4648         PR c/18239
4649         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
4650         parameter declarations.
4651
4652 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
4653
4654         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
4655         (s390_secondary_input_reload_class)
4656         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
4657         register.
4658         (s390_expand_cmpmem): Enable cmpmem implementation.
4659         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
4660         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
4661         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
4662         * config/s390/s390.md ("movcc"): New insn pattern.
4663         * doc/md.texi: Document 'c' constraint for s390.
4664
4665 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
4666
4667         PR c++/18064
4668         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
4669         extension.
4670
4671 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
4672
4673         Fix PR tree-optimization/17672
4674         Fix PR tree-optimization/18168
4675
4676         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
4677         assert test.
4678         (gcc_tree_to_linear_expression): Add extra to existing constant.
4679         (depth_of_nest): Factor out function used in various places.
4680         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
4681         functional changes.
4682         (find_induction_var_from_exit_cond): Stop guessing, and just
4683         get the right answer :).
4684         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
4685         Print out message about result of attempt to create perfect nest.
4686         (lbv_to_gcc_expression): Add type argument, use it to do math
4687         and induction variable creation.
4688         (lle_to_gcc_expression): Ditto.
4689         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
4690         oldiv. Pass type argument to lle_to_gcc_expression and
4691         lbv_to_gcc_expression.
4692         Reset number of iterations after transformation.
4693         (perfect_nestify): Remove useless pre-allocation, and cleanup
4694         a small amount.
4695
4696         * tree-data-ref.c (build_classic_dist_vector): Return false for
4697         dependences completely outside of the loop nest we asked about.
4698         (build_classic_dir_vector): Ditto.
4699         (compute_data_dependences_for_loop): Only add dependence relations
4700         inside the loop we asked about.
4701
4702         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
4703         Compute immediate uses.
4704
4705         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
4706
4707 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
4708
4709         * tree-cfg.c (thread_jumps): Fix a comment typo.
4710
4711 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
4712
4713         * tree-cfg.c (thread_jumps): Fix a comment typo.
4714
4715 2004-10-31  Nicolas Pitre <nico@cam.org>
4716
4717         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
4718         values smaller than 2^32.
4719
4720 2004-10-31 Jeff Law  <law@redhat.com>
4721
4722         * cfgloop.h (struct loop): Remove unused "nodes" field.
4723         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
4724         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
4725         instead of calling flow_bb_inside_loop_p for every basic block
4726         in the function.
4727         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
4728
4729 2004-10-31  Graham Stott <graham.stott@btinternet.com>
4730
4731         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
4732         INT_5_BITS instead of VAL_5_BITS_P.
4733
4734 2004-10-31  Roger Sayle  <roger@eyesopen.com>
4735
4736         PR middle-end/14521
4737         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
4738         for consistent quoting in diagnostic messages.
4739         (expand_call_inline): Likewise.
4740         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4741         * tree-ssa.c (warn_uninitialized_var): Likewise.
4742         (warn_uninitialized_phi): Likewise.
4743
4744 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
4745
4746         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
4747         mode check.
4748
4749 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
4750
4751         * c-common.c: Fix a comment typo.
4752
4753 2004-10-31  Jason Merrill  <jason@redhat.com>
4754
4755         PR middle-end/17526
4756         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
4757         aggregate types that are not BLKmode.
4758
4759 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
4760
4761         * c-common.h (objc_lookup_ivar): Add second parameter to
4762         prototype.
4763         * c-typeck.c (build_external_ref): After looking up symbol,
4764         pass it to objc_lookup_ivar() to decide whether it or the
4765         ivar should be used, rather than deciding the issue locally.
4766         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
4767         which is simply returned in the non-ObjC case.
4768
4769 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
4770
4771         * sdbout.c (sdbout_symbol): Do not output type .def statements
4772         for builtin types.
4773
4774 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4775
4776         * c-common.c (catenate_strings): New.
4777         (c_parse_error): Use it.  Don't over-escape.
4778
4779 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
4780
4781         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
4782         modify the for loop expressions for it.  Remove unnecessary casts.
4783         (sh_expand_prologue): Declare reg as unsigned.
4784         (sh_gimplify_va_arg_expr): Initinalize lab_over.
4785         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
4786
4787 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
4788
4789         * doc/invoke.texi (Darwin Options): Improve description of
4790         how the subtype is chosen.
4791
4792 2004-10-30  Roger Sayle  <roger@eyesopen.com>
4793
4794         PR middle-end/18096
4795         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
4796         the stack adjustment, "size", is valid for Pmode.  If the stack
4797         frame is too large, generate a trap insn and issue a warning.
4798
4799 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
4800
4801         * tree-ssa-dom.c: Fix comment typos.
4802
4803 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
4804
4805         * config/sh/sh.c (prepare_move_operands): Use operands[0]
4806         for the output rtl if no_new_pseudos is set.  Remove redundant
4807         line.
4808
4809 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
4810
4811         PR c/16666
4812         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
4813         determining whether to copy parameter types from a previous
4814         prototype declaration.
4815
4816 2004-10-29  Roger Sayle  <roger@eyesopen.com>
4817
4818         PR rtl-optimization/17581
4819         * cselib.c (cselib_process_insn): The last instruction of a libcall
4820         block, with the REG_RETVAL note, should be considered in the libcall.
4821         * gcse.c (do_local_cprop): Allow constants to be propagated outside
4822         of libcall blocks.
4823         (adjust_libcall_notes): Use simplify_replace_rtx instead of
4824         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
4825
4826 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
4827
4828         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
4829
4830 2004-10-29 Jeff Law  <law@redhat.com>
4831
4832         * tree-ssa-dom.c (struct edge_info): New structure holding
4833         edge equivalences and edge redirection information.
4834         (get_eq_expr_value, record_dominating_conditions): Kill.
4835         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
4836         Call record_edge_info.
4837         (allocate_edge_info, free_edge_info): New.
4838         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
4839         rather than cprop_into_phis.  Free all edge infos before threading
4840         jumps.
4841         (thread_across_edge): Allocate new edge info structures as needed
4842         and store the redirection target into the edge info structure
4843         instead of the edge's AUX field.
4844         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
4845         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
4846         Revamp code which finds and records equivalences associated with
4847         edges to use saved data in the edge_info structure.
4848         (record_equivalencs_from_phis): Similarly.
4849         (dom_opt_finalize_block): Revamp code which finds and records
4850         equivalences associated with edges to use saved data in the
4851         edge_info structure.
4852         (build_and_record_new_cond): New function.
4853         (record_conditions): Use build_and_record_new_cond to record
4854         dominating conditions.
4855         (record_edge_info): New function.
4856         (record_range): Tighten test for conditions which create
4857         useful range records.
4858
4859 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
4860
4861         * config/i386/darwin.h (ASM_SPEC): Simplify.
4862         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
4863         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
4864         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
4865         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
4866         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
4867         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
4868         (ASM_SPEC): Handle -force_cpusubtype_ALL.
4869         * doc/invoke.texi (Darwin Options): Improve documentation for
4870         Darwin linker (and libtool) switches.
4871
4872         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
4873
4874 2004-10-29  Stan Shebs  <shebs@apple.com>
4875
4876         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
4877
4878 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
4879
4880         * tree-phinodes.c (allocate_phi_node): New.
4881         (make_phi_node, resize_phi_node): Use it.
4882
4883 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
4884
4885         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
4886         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
4887
4888 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
4889
4890         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
4891         the whole PHI node.
4892         * tree.h (tree_phi_node): Tell the garbage collector to chase
4893         num_args arguments.
4894
4895 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
4896
4897         * opts.c (decode_options): Lower the crossjump threshold for -Os.
4898
4899 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
4900
4901         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
4902
4903 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
4904
4905         * bitmap.h (bitmap_empty_p): New.
4906         (bitmap_and, bitmap_and_into, bitmap_and_compl,
4907         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
4908         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
4909         operation macros.
4910         (bitmap_ior_and_compl): Rename to ...
4911         (bitmap_ior_and_compl_into): ... here.
4912         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
4913         (bitmap_ior_and_compl): Rename to ...
4914         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
4915         flag.
4916         (bitmap_union_of_diff): Use renamed bitmap functions.
4917         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
4918         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
4919         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
4920         * df.c (df_bb_rd_local_compute)
4921         * flow.c (calculate_global_regs_live,
4922         init_propagate_block_info): Likewise.
4923         * ifcvt.c (find_if_case_1, find_if_case_2,
4924         dead_or_predicable): Likewise.
4925         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
4926         reset_conflicts, conflicts_between_webs): Likewise.
4927         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
4928         detect_web_parts_to_rebuild): Likewise.
4929         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
4930         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
4931         * tree-sra.c (decide_instantiations): Likewise.
4932         * tree-ssa-alias.c (create_name_tags,
4933         merge_pointed_to_info): Likewise.
4934         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
4935         * tree-ssa-loop-im.c (move_computations): Likewise.
4936         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
4937         * tree-ssa-pre.c (fini_pre): Likewise.
4938         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
4939         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
4940         * tree-vectorizer.c (vectorize_loops): Likewise.
4941
4942 2004-10-29  Nick Clifton  <nickc@redhat.com>
4943
4944         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
4945         adding the PIC register to the fixed_regs array, also add it
4946         to the call_used_regs array.
4947
4948 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
4949
4950         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
4951         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
4952
4953 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
4954
4955         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
4956         (rewrite_blocks): Modify argument, and use it to decide which
4957         function to call.
4958         (rewrite_def_def_chains): Call rewrite_blocks with true here.
4959         (rewrite_into_ssa): and call it with false here.
4960
4961 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
4962
4963         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
4964         triggers into gcc_assert.
4965
4966 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
4967
4968         PR tree-optimization/16728
4969         * tree-flow.h (get_ptr_info): Declare.
4970         * tree-ssa-alias.c (get_ptr_info): Make extern.
4971         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
4972         alias information.
4973
4974 2004-10-28  Stan Shebs  <shebs@apple.com>
4975
4976         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
4977         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
4978         case.
4979
4980 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
4981
4982         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
4983         prevent their later unnecessary registration.
4984         (mf_build_check_statement_for): Remove "addr" argument, and
4985         related "__mf_value" generated code.  Update callers.
4986         (mf_decl_eligible_p): New function, factored from mx_register_decls.
4987         (mx_register_decls): Call it.
4988         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
4989         to restore support for complex nested expressions.
4990         (mudflap_enqueue_decl): Simplify.  Move registration call emission
4991         out ...
4992         (mudflap_finish_file): ... to here.
4993         (mudflap_enqueue_constant): Remove dump code.
4994
4995 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
4996
4997         PR 18199
4998         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
4999         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
5000         (dbxout_finish_complex_stabs): Update to match.
5001         (dbxout_symbol_location): Call emit_pending_bincls_if_required
5002         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
5003         dbxout_begin_complex_stabs_noforcetext.
5004         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
5005         N_GSYM, using new SYM parameter.  Correct logic for special
5006         cases for N_FUN.
5007
5008         * varasm.c (function_section): If DECL is NULL_TREE, don't try
5009         to do anything else.  Do not call get_insns if cfun or
5010         cfun->emit are NULL.
5011
5012 2004-10-28  Adam Nemet  <anemet@lnxw.com>
5013
5014         PR middle-end/18160
5015         * c-typeck.c (c_mark_addressable): Issue error if address of a
5016         register variable is taken.  Use "%qD" to print DECL_NAME.
5017
5018 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
5019
5020         * opts.c (decode_options): Don't run PRE at -Os.
5021
5022 2004-10-28  Richard Henderson  <rth@redhat.com>
5023
5024         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
5025         zero in the conditional.
5026         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
5027
5028 2004-10-28  Richard Henderson  <rth@redhat.com>
5029
5030         * cse.c (memory_extend_rtx): Remove.
5031         (cse_main): Don't set it.
5032         (cse_insn): Use a local buffer instead.
5033
5034 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5035
5036         * profile.c (branch_prob): Call to init_edge_profiler added.
5037         * rtl-profile.c (rtl_init_edge_profiler): New function.
5038         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
5039         call to safe_insert_insn_on_edge.
5040         (rtl_profile_hooks): rtl_init_edge_profiler added.
5041         * tree-profile.c (tree_init_edge_profiler): New function.
5042         (tree_profile_hooks): tree_init_edge_profiler added.
5043         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
5044
5045 2004-10-28  Nick Clifton  <nickc@redhat.com>
5046
5047         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
5048         emit_jump_insn() to generate the return instruction.
5049
5050 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5051
5052         * tree-phinodes.c: Remove trailing whitespace.
5053
5054 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5055
5056         * tree-ssa-loop-ivopts.c: Fix a comment typo.
5057         * doc/invoke.texi: Fix a typo.
5058
5059 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5060
5061         * Makefile.in (OBJS-common): Remove duplicates.
5062
5063 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5064
5065         * lambda-code.c (nestify_update_pending_stmts): Remove.
5066         (perfect_nestify): Use flush_pending_stmts instead of
5067         nestify_update_pending_stmts.
5068         * tree-cfg.c (tree_make_forwarder_block): Use
5069         flush_pending_stmts.
5070         * tree-flow.h: Add a prototype for flush_pending_stmts.
5071         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
5072         Use flush_pending_stmts.
5073         (lv_update_pending_stmts): Remove.
5074         (tree_ssa_loop_version): Use flush_pending_stmts instead of
5075         lv_update_pending_stmts.
5076         * tree-ssa.c (flush_pending_stmts): New.
5077
5078 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
5079
5080         PR target/15286
5081         * final.c (alter_subreg): Compute correct offset to use with
5082         paradoxical SUBREGs of memory operands.
5083         * recog.c (general_operand): Allow paradoxical SUBREGs of
5084         memory operands after reload.
5085         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
5086         has failed when passed a hard register.
5087
5088 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
5089
5090         * function.c (assign_parm_setup_block): Handle parallels correctly.
5091
5092 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5093
5094         * final.c (shorten_branches): Initialize flags structure.
5095
5096 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5097
5098         * tree.c (int_cst_node, int_cst_hash_table): New variables.
5099         (init_ttree): Initialize them.
5100         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
5101         (build_int_cst_wide): Use hash table for oversized integers.
5102
5103 2004-10-28  Nick Clifton  <nickc@redhat.com>
5104
5105         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
5106         begin_label.
5107
5108 2004-10-27  Richard Henderson  <rth@redhat.com>
5109
5110         PR middle-end/18163
5111         * expr.c (emit_group_load): Don't go force temporary for memory
5112         or concat source.
5113         (emit_group_store): Similarly.
5114
5115 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
5116
5117         PR other/18186
5118         * common.opt (--param): Fix spelling of parameter.
5119
5120 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
5121
5122         PR tree-opt/17529
5123         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
5124         Don't fold statement.
5125         <case ASM_EXPR>: Fold the statement.
5126
5127 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5128
5129         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
5130         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
5131
5132 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5133
5134         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
5135         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
5136         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
5137         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
5138
5139 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5140
5141         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
5142         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
5143         punctuation outside quotes.
5144
5145 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
5146             James E Wilson  <wilson@specifixinc.com>
5147
5148         PR target/13158
5149         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
5150         sibcall alloc instruction.
5151         (process_set): Handle sibcall alloc instruction.
5152
5153 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
5154
5155         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
5156         SUBTARGET_ATTRIBUTE_TABLE.
5157         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
5158         (SUBTARGET_ATTRIBUTE_TABLE): Define.
5159         * config/darwin.c (darwin_handle_weak_import_attribute): New.
5160         (HAVE_DEAD_STRIP): Delete.
5161         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
5162         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
5163         Prototype.
5164
5165         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
5166
5167         * config/darwin.h (GTHREAD_USE_WEAK): Define.
5168
5169 2004-10-28  Ben Elliston  <bje@au.ibm.com>
5170
5171         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
5172         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
5173         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
5174         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
5175         * tree-sra.c: Include "params.h".
5176         (decide_block_copy): Use new parameters.
5177         * doc/invoke.texi (Optimize Options): Document new SRA pass
5178         parameters sra-max-structure-size and sra-field-structure-ratio.
5179
5180 2004-10-27  Nicolas Pitre <nico@cam.org>
5181
5182         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
5183
5184 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
5185
5186         PR tree-optimization/18048
5187         * fold-const.c (try_move_mult_to_index): New function.
5188         (fold): Use try_move_mult_to_index.
5189         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
5190         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
5191         an all-ones unsigned constant without extra bits.
5192         * tree.c (build_low_bits_mask): New function.
5193         * tree.h (build_low_bits_mask): Declare.
5194
5195 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
5196
5197         PR target/17956
5198         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
5199         final condition.
5200         (minsf3): Same.
5201         (maxdf3): Same.
5202         (mindf3): Same.
5203
5204 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5205
5206         * tree-cfg.c (thread_jumps): Speed up by reordering the two
5207         conditions for entering basic blocks into worklist.
5208
5209 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5210
5211         * tree-cfg.c (thread_jumps): Speed up by pretending to have
5212         ENTRY_BLOCK_PTR in worklist.
5213
5214 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5215
5216         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
5217         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
5218
5219 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
5220
5221         Fix PR tree-optimization/17133
5222
5223         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
5224         def kill operand.
5225
5226         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
5227         (get_v_must_def_result_ptr): Modify for new structure of
5228         v_must_defs array.
5229         (get_v_must_def_kill_ptr): New.
5230         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
5231         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
5232         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
5233         (op_iter_init): Initialize new mustu members.
5234         (op_iter_next_mustdef): New function.
5235         (op_iter_init_mustdef): Ditto.
5236
5237         * tree-flow.h (rewrite_def_def_chains): New function.
5238
5239         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
5240         (ssa_mark_def_sites): Ditto.
5241         (rewrite_stmt): Ditto.
5242         (ssa_rewrite_stmt): Ditto.
5243         (rewrite_blocks): Factor out from rewrite_into_ssa.
5244         (mark_def_block_sites): Ditto.
5245         (rewrite_def_def_chains): New function, just rewrites def-def
5246         chains without phi node insertion.
5247
5248         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
5249
5250         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
5251
5252         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
5253         they include the rhs now.
5254
5255         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
5256         V_MUST_DEF_RESULT.
5257
5258         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
5259         Update callers.
5260         (mark_really_necessary_kill_operand_phis): New function.
5261         (perform_tree_ssa_dce): Call it.
5262         (pass_dce): Add TODO_fix_def_def_chains.
5263         (pass_cd_dce): Ditto.
5264
5265         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
5266         well.
5267         (rewrite_mem_refs): Ditto.
5268
5269         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
5270         as well.
5271
5272         * tree-ssa-operands.c (allocate_v_may_def_optype):
5273         v_may_def_operand_type_t became v_def_use_operand_type_t.
5274         (allocate_v_must_def_optype) Ditto.
5275         (finalize_ssa_v_must_defs): Update for new operand type, as well
5276         as setting the use portion as well.
5277         (copy_virtual_operands): Copy the kill operand as well.
5278         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
5279         V_MUST_DEF_RESULT.
5280
5281         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
5282         v_def_use_operand_type.
5283         (v_must_def_optype_d): Use v_def_use_operand_type.
5284         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
5285         (V_MUST_DEF_KILL_*): New macros.
5286         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
5287         members.
5288         Rename existing must_i and num_v_must members to mustd_i and
5289         num_v_mustd.
5290         (SSA_OP_VMUSTDEFKILL): New flag.
5291         (SSA_OP_VIRTUAL_KILLS): New flag.
5292         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
5293         (SSA_OP_ALL_KILLS): New flag.
5294         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
5295
5296         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
5297
5298         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
5299         became V_MUST_DEF_RESULT.
5300         (rename_variables_in_bb): Rename kill pointer as well.
5301
5302         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
5303         immediate uses.
5304
5305 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
5306
5307         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
5308         the block that needs it.
5309
5310 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5311
5312         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
5313         ATTRIBUTE_UNUSED.
5314
5315 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5316
5317         * c-lex.c (cb_def_pragma): Clean up code for making location
5318         palatable to diagnostic.c.
5319
5320 2004-10-27  Steven Bosscher  <stevenb@suse.de>
5321
5322         PR tree-optimization/17757
5323         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
5324         without any PHI arguments left.  Make sure the argument that
5325         we're supposed to remove exists at all.
5326
5327 2004-10-27  Paul Brook  <paul@codesourcery.com>
5328
5329         * configure.ac: Don't test for [build] __cxa_atexit when building a
5330         cross compiler.
5331         * configure: Regenerate.
5332
5333 2004-10-27  Paul Brook  <paul@codeosurcery.com>
5334
5335         * configure.ac: Use build_exeext not host_exeext when lookin for
5336         target tools.
5337         * configure: Regenerate.
5338
5339 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5340
5341         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
5342
5343 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5344             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
5345
5346         PR middle-end/14684
5347         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
5348         to match -fprofile-use.
5349
5350 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5351
5352         * config/rs6000/rs6000.c: Fix a comment typo.
5353
5354 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5355
5356         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
5357         counter.
5358
5359 2004-10-27  Andreas Schwab  <schwab@suse.de>
5360
5361         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
5362         unused.
5363         (default_stabs_asm_out_constructor): Likewise.
5364
5365 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
5366
5367         * builtins.c (fold_builtin_unordered_cmp): Always bring both
5368         operands to the same type.
5369
5370 2004-10-26  James E Wilson  <wilson@specifixinc.com>
5371
5372         PR target/18010
5373         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
5374
5375 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
5376
5377         * dbxout.c: Include obstack.h.
5378         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
5379         default definition.
5380         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
5381         Default-define here.
5382         (DBX_CONTIN_LENGTH): Move definition with others.
5383         (DBX_FINISH_STABS): New target macro.
5384         (current_sym_code, current_sym_value, current_sym_addr)
5385         (current_sym_nchars, CHARS, dbxout_continue)
5386         (print_int_cst_octal, print_octal, print_wide_int)
5387         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
5388         (stabstr_ob, stabstr_last_contin_point): New variables.
5389         (NUMBER_FMT_LOOP): New improper macro.
5390         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
5391         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
5392         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
5393         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
5394         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
5395         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
5396         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
5397         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
5398         New functions and/or proper function-like macros.
5399         (CONTIN): Use stabstr_continue, unconditionally.
5400         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
5401         (dbxout_init): Initialize stabstr_ob.  Check
5402         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
5403         if it was used.  Use the new interfaces.
5404         (dbxout_source_file): Remove file argument; always write to
5405         asm_out_file.  Use the new interfaces.
5406         (dbxout_type_method_1): Remove second argument which is always
5407         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
5408         (dbxout_type_methods): Remove write-only variables.  Use the
5409         new interfaces.
5410         (dbxout_parms): Refactor to remove code duplicated in each of
5411         several successive if-else-if blocks.  Use the new interfaces.
5412         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
5413         (dbxout_source_line, dbxout_finish, dbxout_type_index)
5414         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
5415         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
5416         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
5417         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
5418         Use the new interfaces.
5419         * Makefile.in (dbxout.o): Update dependencies.
5420
5421         * defaults.h: Don't define ASM_STABD_OP.
5422         * output.h: Prototype new dbxout_* interfaces.
5423         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
5424         * varasm.c: Don't define ASM_STABS_OP.
5425         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
5426         Use the new dbxout.c interfaces.  Call sorry if neither
5427         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
5428
5429         * xcoffout.h: Don't define ASM_STABS_OP.
5430         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
5431         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
5432         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
5433         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
5434         do { ... } while (0) idiom.
5435
5436         * config/alpha/alpha.c (num_source_filenames): Export.
5437         * config/alpha/alpha.h (num_source_filenames): Declare.
5438         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5439         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
5440         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5441         Always use .debugsym.  Update commentary.
5442         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
5443         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
5444         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
5445         Use new interfaces.
5446         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
5447         (macho_branch_islands): Use new interfaces.
5448
5449         * doc/tm.texi: Update.
5450
5451 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5452
5453         * expr.c (emit_group_store): Do not treat floats as BLKmode.
5454         (emit_group_load): Same.
5455
5456 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
5457
5458         * c-parse.in (datadef): Use pedwarn rather than error and warning
5459         for diagnostic in case of no declaration specifiers.
5460
5461 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
5462
5463         PR bootstrap/15747
5464         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
5465         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
5466         can be used to work around this.
5467
5468 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5469
5470         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
5471         doubles.
5472
5473 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5474
5475         * stmt.c (expand_case): Update a comment.
5476
5477 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5478
5479         * stmt.c (expand_case): Put an assertion that index_expr is
5480         never INTEGER_CST.  Don't special case for constant
5481         index_expr.
5482
5483 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
5484
5485         PR 18162
5486         * c-parse.in (designator): Finish with a semi-colon.
5487
5488 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
5489
5490         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
5491         into rotlsi3.
5492
5493 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
5494
5495         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
5496         a default case only.
5497
5498 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5499
5500         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
5501         e500 doubles.
5502         (spe_build_register_parallel): New.
5503         (rs6000_spe_function_arg): Handle e500 doubles.
5504         (function_arg): Same.
5505         (spe_func_has_64bit_regs_p): Same.
5506         (rs6000_function_value): Same.
5507         (rs6000_libcall_value): Same.
5508         (legitimate_lo_sum_address_p): Return false for e500 doubles.
5509
5510         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
5511         doubles.
5512         (DATA_ALIGNMENT): Same.
5513         (CANNOT_CHANGE_MODE_CLASS): Same.
5514
5515 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
5516
5517         * expr.c (emit_group_load): Handle floats.
5518         (emit_group_store): Same.
5519
5520 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
5521
5522         * c-lex.c (get_nonpadding_token): Remove.
5523         (c_lex_with_flags): Push timevar and eat padding here.  Improve
5524         stray token diagnostic.
5525         (lex_string): Replace logic with switch statement, eat padding
5526         token here.
5527
5528 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
5529
5530         PR 18149
5531         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
5532
5533 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
5534
5535         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
5536         to 'non-weak'.
5537         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
5538         (ASM_MAKE_LABEL_LINKONCE): Delete.
5539         (ASM_WEAKEN_DECL): New.
5540         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
5541         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5542         (TEXT_SECTION_ASM_OP): Add a tab.
5543         (DATA_SECTION_ASM_OP): Likewise.
5544         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
5545         data_section on every section change.
5546         (EXTRA_SECTIONS): Add a bunch of new extra sections.
5547         (EXTRA_SECTION_FUNCTIONS): Likewise.
5548         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
5549         (JCR_SECTION_NAME): Define.
5550         (TARGET_SECTION_TYPE_FLAGS): Don't define.
5551         * config/darwin.c (darwin_encode_section_info): A symbol is defined
5552         in this file if it is not weak.
5553         (textcoal_section): Delete.
5554         (datacoal_section): Delete.
5555         (darwin_make_decl_one_only): Delete.
5556         (machopic_select_section): Handle functions.
5557         (darwin_asm_named_section): Add a tab.
5558         (darwin_section_type_flags): Delete.
5559         (darwin_unique_section): Delete contents.
5560         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
5561         DECL_WEAK is set.
5562         * config/darwin-protos.h (darwin_section_type_flags): Delete.
5563         (darwin_make_decl_one_only): Delete.
5564         (text_coal_section): New.
5565         (text_unlikely_section): New.
5566         (text_unlikely_coal_section): New.
5567         (const_coal_section): New.
5568         (data_coal_section): New.
5569         (const_data_coal_section): New.
5570         * varasm.c (function_section): Honour
5571         USE_SELECT_SECTION_FOR_FUNCTIONS.
5572         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
5573         TARGET_USES_WEAK_UNWIND_INFO is in effect.
5574         * dbxout.c (dbxout_source_file): Don't change sections while
5575         a function is being output.
5576
5577 2004-10-25  David Ayers  <d.ayers@inode.at>
5578
5579         * c-common.h: Remove RID_ID.
5580         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
5581         (typespec_reserved_attr): Add rule for TYPENAME
5582         non_empty_protocolrefs.
5583         (yylexname): Remove special handling of RID_ID.
5584
5585 2004-10-25  James E Wilson  <wilson@specifixinc.com>
5586
5587         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
5588
5589 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
5590
5591         PR c/16667
5592         * c-parse.in (array_designator): New.
5593         (designator): Use it.
5594         (initelt): Only permit array_designator without '=', not ".foo".
5595
5596 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
5597         * gcc/Makefile.in: removed ggc for cgraphunit.
5598         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
5599         * gcc/cgraph.h: removed static var analysis data structures and calls.
5600         * gcc/cgraphunit.c:
5601         cgraph_mark_local_and_external_functions:changed name to
5602                 cgraph_mark_local_functions
5603         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
5604         cgraph_reset_static_var_maps,get_global_static_vars_info,
5605         get_global_statics_not_read,get_global_statics_not_written,searchc,
5606         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
5607         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
5608         scan_for_static_refs,cgraph_characterize_statics_local,
5609         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
5610         removed.
5611         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
5612         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
5613         analysis
5614         * gcc/tree-flow.h static_vars_info: removed
5615         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
5616         removed calls to static vars analysis.
5617         get_call_expr_operands: removed callee variable.
5618
5619 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
5620
5621         * cfg.c (unchecked_make_edge, redirect_edge_succ,
5622         redirect_edge_pred): Use VEC_safe_push instead of
5623         VEC_safe_insert.
5624         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
5625
5626 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
5627
5628         * cfgloopmanip.c (loopify): Take two more arguments true_edge
5629         and false_edge.
5630         * cfgloop.h: Adjust the corresponding prototype.
5631         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
5632         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
5633
5634 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
5635
5636         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
5637         DECL_INCOMING_RTL is NULL.
5638
5639 2004-10-25  Steven Bosscher  <stevenb@suse.de>
5640
5641         * timevar.def (TV_FIND_REFERENCED_VARS): New.
5642         * tree-dfa.c (pass_referenced_var): Use it.
5643
5644 2004-10-25  Roger Sayle  <roger@eyesopen.com>
5645             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5646
5647         * cse.c: Change encoding of quantity numbers to avoid undefined
5648         pointer arithmetic on qty_table.
5649         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
5650         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
5651         (new_basic_block): Assign "real" quantity numbers from zero.
5652         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
5653         REG_QTY to its unique negative value.
5654         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
5655         (cse_main): Don't include max_reg when determining max_qty.
5656         (cse_basic_block): Avoid subtracting a large offset from qty_table,
5657         which causes undefined C99 behaviour.  Only allocate needed memory.
5658
5659 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
5660
5661         * stmt.c (expand_case): Remove an obsolete comment.
5662
5663 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
5664
5665         PR middle-end/17407
5666         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
5667         layout_type as it is already done by build_array_type.
5668         * tree.c (build_array_type): Layout the type even
5669
5670 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
5671
5672         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
5673
5674 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
5675
5676         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
5677         with wider-than-32-bit HOST_WIDE_INTs.
5678
5679 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
5680
5681         * config/mips/mips.c(mips_output_filename): Remove unused
5682         array ltext_label_name
5683
5684 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
5685
5686         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
5687
5688 2004-10-25  Ben Elliston  <bje@au.ibm.com>
5689
5690         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
5691
5692 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
5693
5694         * predict.c (predict_loops): Call scev_finalize instead of
5695         scev_reset.
5696
5697 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
5698
5699         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
5700         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
5701         config/sh/ushmedia.h, config/sparc/elf.h,
5702         config/sparc/sp64-elf.h: Update copyright.
5703
5704 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
5705
5706         * stmt.c (expand_case): Handle the default label outside of
5707         the for loop.  Remove code to handle a missing default label.
5708
5709 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
5710
5711         * dbxout.c (dbxout_function_decl): Don't use
5712         DBX_OUTPUT_FUNCTION_END.
5713         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
5714         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
5715
5716 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
5717
5718         PR middle-end/17967
5719         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
5720
5721 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
5722
5723         * tree-ssa-dom.c (record_equality): Use loop depth to determine
5724         which way to record the equality as well.
5725         (loop_depth_of_name): New function.
5726
5727 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5728
5729         PR middle-end/17793
5730         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
5731         through the operand if it is a useless type conversion.
5732
5733 2004-10-23  Ben Elliston  <bje@au.ibm.com>
5734
5735         * cfg.c (remove_edge): Use VEC_unordered_remove.
5736         (redirect_edge_succ): Likewise.
5737         (redirect_edge_pred): Likewise.
5738         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
5739
5740 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5741
5742         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
5743         beyond its end.
5744
5745 2004-10-22  Eric Christopher  <echristo@redhat.com>
5746
5747         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
5748         saves.
5749
5750 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
5751
5752         * config/rs6000/spe.md (spe_extendsfdf2): New.
5753         (movdf_e500_double): New.
5754         (spe_truncdfsf2): New.
5755         (spe_absdf2): New.
5756         (spe_nabsdf2): New.
5757         (spe_negdf2): New.
5758         (sub_adddf3): New.
5759         (spe_subdf3): New.
5760         (spe_muldf3): New.
5761         (spe_floatsidf2): New.
5762         (spe_floatunssidf2): New.
5763         (fix_truncdfsi2): New.
5764         (spe_fixuns_truncdfsi2): New.
5765
5766         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
5767         (fpr_truncdfsf2): New.
5768         (negdf2): Change to expander.
5769         (fpr_negdf2): New.
5770         (fpr_nabsdf2): Name pattern.
5771         (adddf3): Change to expander.
5772         (fpr_adddf3): Nem.
5773         (subdf3): Change to expander.
5774         (fpr_subdf3): New.
5775         (muldf3): Change to expander.
5776         (fpr_muldf3): New.
5777         (divdf3): Change to expander.
5778         (fpr_divdf3): New.
5779         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
5780         (cmpdf): Allow for TARGET_E500_DOUBLE.
5781
5782 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5783
5784         * c-semantics.c (re_push_stmt_list): Remove.
5785         * c-common.h: Remove the corresponding prototype.
5786
5787 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5788
5789         * stmt.c (asm_op_is_mem_input): Remove.
5790         * tree.h: Remove the corresponding prototype.
5791
5792 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5793
5794         * tree-gimple.c (is_gimple_constructor_elt): Remove.
5795         * tree-gimple.h: Remove the corresponding prototype.
5796
5797 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5798
5799         * varasm.c (get_pool_mode_for_function, get_pool_offset):
5800         Remove.
5801         * rtl.h: Remove the corresponding prototypes.
5802
5803 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5804
5805         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
5806         edge information when we commit ourselves to threading a
5807         particular jump.
5808
5809 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5810
5811         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
5812         into worklist instead of their indexes.
5813
5814 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5815
5816         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
5817         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
5818         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
5819         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
5820         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
5821         tree-scalar-evolution.c, tree-ssa-dom.c,
5822         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
5823         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
5824         tree-vectorizer.c, vec.h: Fix comment formatting.
5825
5826 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5827
5828         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
5829         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
5830
5831 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
5832
5833         * config/ptx4.h, config/mcore/mcore-pe.h,
5834         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
5835
5836 2004-10-22  Peter Barada <peter@the-baradas.com>
5837
5838         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
5839         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
5840         renaming of non-live registers in interrupt functions.
5841         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
5842
5843 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
5844
5845         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
5846         Use integer for loop counter.
5847         (num_ending_zeros): New function.
5848         (number_of_iterations_cond): Use num_ending_zeros.
5849
5850 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
5851
5852         * config.gcc: Add support for --enable-e500_double.
5853
5854         * config/rs6000/e500-double.h: New file.
5855
5856         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
5857         TARGET_E500_DOUBLE.
5858
5859         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
5860         TARGET_E500_DOUBLE.
5861
5862         * config/rs6000/linuxspe.h: Same.
5863
5864         * doc/invoke.texi (Option Summary): Document new options for
5865         mfloat-gprs.
5866         (RS/6000 and PowerPC Options): Same.
5867
5868         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
5869         function.
5870         (rs6000_override_options): Use it.  Use
5871         SUB3TARGET_OVERRIDE_OPTIONS.
5872         Add 8548 to processor_target_table.
5873         (rs6000_legitimate_address): Handle e500 doubles.
5874         (rs6000_legitimize_address): Same.
5875         (rs6000_legitimize_reload_address): Same.
5876         (rs6000_hard_regno_nregs): Same.
5877         (spe_func_has_64bit_regs_p): Same.
5878         (emit_frame_save): Same.
5879         (gen_frame_mem_offset): Same.
5880         (rs6000_dwarf_register_span): Same.
5881         (rs6000_generate_compare): Same.
5882         (easy_fp_constant): Same.
5883         (legitimate_offset_address_p): Same.
5884
5885         * config/rs6000/spe.md: (cmdfeq_gpr): New.
5886         (tstdfeq_gpr): New.
5887         (cmpdfgt_gpr): New.
5888         (tstdfgt_gpr): New.
5889         (tstdfgt_gpr): New.
5890         (cmpdflt_gpr): New.
5891         (tstdflt_gpr): New.
5892         Add new constants.
5893
5894 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5895
5896         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
5897
5898 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
5899
5900         * dbxout.c: Remove unnecessary #undefs.
5901         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
5902         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
5903         definition into use sites.
5904         (cwd): Make local to dbxout_init.
5905         (dbxout_init): Restructure cwd-using logic for clarity.  Use
5906         IS_DIR_SEPARATOR.
5907         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
5908         STABS_GCC_MARKER folded in here.
5909         * system.h: Poison now-unused macros.
5910         * doc/tm.texi: Remove documentation of now-unused macros.
5911
5912 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
5913
5914         PR c/17538
5915         * c-opts.c (push_command_line_include): Use the current file
5916         name instead of the main one.
5917
5918 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
5919
5920         PR objc/17923
5921         * tree.c (staticp): A CONST_DECL has static storage if either
5922         TREE_STATIC or DECL_EXTERNAL is set.
5923         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
5924         have null names.
5925
5926 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
5927
5928         * expr.c (store_expr): Remove dont_store_target.
5929
5930 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
5931
5932         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
5933
5934 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
5935
5936         * tree-cfg.c (thread_jumps): Move a part of it to ...
5937         (thread_jumps_from_bb): ... here.
5938
5939 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
5940
5941         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
5942         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
5943
5944 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
5945
5946         * expr.c (store_expr): Clean up by renaming want_value to
5947         call_param_p.
5948
5949 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
5950
5951         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
5952         fixup pc here.
5953
5954 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
5955
5956         PR 18004.
5957         * expmed.c (store_bit_field): Pass original 'value' before
5958         recursing.
5959
5960 2004-10-21  Nicolas Pitre <nico@cam.org>
5961
5962         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
5963         * config/arm/ieee754-df.S: Ditto.
5964
5965 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
5966
5967         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
5968         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
5969         Default to 0.
5970         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
5971         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
5972         an internal label and an N_SLINE .stabn whose value is the
5973         difference between that label and the function entry label.
5974         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
5975         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
5976         label and an N_SO stab with an empty string referring to it.
5977         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
5978         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
5979         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
5980         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
5981         macro is never defined.
5982         * sdbout.c (sdbout_source_line_counter): Delete.
5983         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
5984         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
5985         only two arguments.
5986         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
5987
5988         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
5989         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
5990         definitions (identical to default).
5991         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
5992         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
5993         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
5994         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
5995         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
5996         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
5997         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
5998         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
5999         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
6000         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
6001         (sym_lineno): Delete.
6002         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
6003         now-unused variable.
6004         (alpha_output_lineno): Delete.
6005         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
6006         * config/mips/mips.c (mips_output_filename): Don't use
6007         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
6008         (mips_output_lineno): Delete.
6009         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
6010         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
6011         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
6012         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
6013         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
6014         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
6015         * config/mmix/mmix.h: Likewise.
6016         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
6017         * config/mmix/mmix-protos.h: Don't prototype it.
6018         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
6019         no need to #undef ASM_OUTPUT_SOURCE_LINE.
6020         * config/arm/aout.h: Remove RISCiX-specific definition of
6021         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
6022         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
6023         ASM_OUTPUT_SOURCE_LINE.
6024         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
6025         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
6026         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
6027
6028         * doc/tm.texi: Update.
6029
6030 2004-10-20  Richard Henderson  <rth@redhat.com>
6031
6032         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
6033
6034 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
6035
6036         * configure.ac: Revert my previous patch.
6037         * configure: Regenerate.
6038
6039 2004-10-20  Ben Elliston  <bje@au.ibm.com>
6040
6041         * config/rs6000/rs6000.c
6042         (rs6000_va_start): Use build_va_arg_indirect_ref.
6043         (rs6000_gimplify_va_arg): Likewise.
6044
6045 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
6046
6047         PR java/15575
6048         * configure.ac: Declare AM_LANGINFO_CODESET.
6049         * aclocal.m4: Define AM_LANGINFO_CODESET.
6050         * configure, config.in: Rebuilt.
6051
6052 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6053
6054         * expr.c (store_expr): Remove code that is run when
6055         want_value & 1 is nonzero.
6056
6057 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
6058
6059         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
6060         from function pointer to void *.
6061
6062 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6063
6064         PR target/18032
6065         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
6066         the frame pointer adjustment when exception handling is enabled.
6067
6068 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6069
6070         * stor-layout.c: Fix a comment typo.
6071
6072 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6073
6074         * expr.c (store_field): Remove two arguments value_mode and
6075         unsignedp.
6076         (expand_assignment, store_constructor_field,
6077         expand_expr_real_1): Adjust calls to store_field.
6078
6079 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
6080
6081         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
6082
6083         PR target/17317
6084         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
6085         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
6086         base and index register for loads.
6087
6088         * config/arc/t-arc: Fix multilib handling.
6089
6090 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
6091
6092         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
6093         don't inspect BLOCK_FOR_INSN for barriers.
6094         * emit-rtl.c (emit_barrier_before): Revert last change.
6095         (emit_barrier_after, emit_barrier): Ditto.
6096
6097         * doc/extend.texi (Extended Asm): Warn and provide example
6098         solution for using a call-clobbered asm register.
6099         (Local Reg Vars): Similar.  Cross-reference example.
6100
6101 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
6102
6103         * tree-cfg.c (group_case_labels): Look at the second to last
6104         case statement for combing with the default case.
6105
6106 2004-10-19  Richard Hendeson  <rth@redhat.com>
6107
6108         PR 17962
6109         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
6110
6111 2004-10-19  Richard Hendeson  <rth@redhat.com>
6112
6113         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
6114         succeeds, only expand the result.
6115
6116 2004-10-19  Richard Hendeson  <rth@redhat.com>
6117
6118         PR middle-end/17885
6119         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
6120         of INDIRECT_REF.
6121
6122 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6123
6124         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
6125         loop with goto.
6126
6127 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6128
6129         * expr.c (expand_assignment): Remove the last argument.
6130         Change the return type to void.
6131         * expr.h: Update the prototype of expand_assignment.
6132         * function.c (assign_parm_setup_reg): Update a call to
6133         expand_assignment.
6134         * stmt.c (expand_asm_expr): Likewise.
6135
6136 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6137
6138         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
6139         unnecessary assignments to temp.  Return const0_rtx.
6140
6141 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
6142
6143         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
6144
6145 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
6146
6147         * configure.ac (powerpc-*-darwin*): Require assembler to support
6148         .machine directive.
6149         * configure: Regenerate.
6150
6151 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6152
6153         * reload1.c (ior_hard_reg_set): Remove.
6154         (finish_spills): Use IOR_HARD_REG_SET instead of
6155         ior_hard_reg_set.
6156
6157 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6158
6159         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
6160         the currently visited word to right.
6161
6162 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6163
6164         PR middle-end/18045
6165         * expmed.c (expand_smod_pow2): Handle modes whose size
6166         is greater than that of HOST_WIDE_INT.
6167
6168 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
6169
6170         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
6171
6172 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6173             Roger Sayle  <roger@eyesopen.com>
6174
6175         PR middle-end/17813
6176         * dojump.c (discard_pending_stack_adjust): New function.
6177         (clear_pending_stack_adjust): Call it.
6178         * expr.h (discard_pending_stack_adjust): Declare it.
6179         * explow.c (emit_stack_save): Emit pending stack adjustments
6180         before saving the stack pointer.
6181         (emit_stack_restore): Discard pending stack adjustments before
6182         restoring the stack pointer.
6183
6184 2004-10-18  Richard Henderson  <rth@redhat.com>
6185
6186         * c-common.c (handle_mode_attribute): Allow scalar->vector
6187         type changes yet.
6188
6189 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6190
6191         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
6192         value to expand_assignment.
6193
6194 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6195
6196         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
6197         thread_jumps.
6198         (thread_jumps): Iterate until no new forwarder block arises.
6199
6200 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6201
6202         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
6203         (thread_jumps): Use forwardable as cache of
6204         tree_forwarder_block_p throughout the function.
6205
6206 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6207
6208         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
6209
6210 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
6211
6212         PR middle-end/15014
6213         PR middle-end/16973
6214         * tree-cfg.c (remove_bb): If we have a label expression in the
6215         basic block and the label we have taken the address, move the
6216         label expression to the basic block which is previous in the
6217         linked list.
6218         (tree_verify_flow_info): Fix printing out the label name of the
6219         problematic label expression.
6220
6221 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
6222
6223         PR rtl-optimization/18002
6224         * simplify-rtx.c (mode_signbit_p): Externalize function...
6225         * rtl.h (mode_signbit_p): ... to here.
6226         * combine.c (simplify_shift_const): Recognize PLUS signbit as
6227         canonical form of XOR signbit and move to outer op.
6228
6229 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
6230
6231         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
6232         Update all callers.
6233         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
6234         Don't call fold_stmt more than once, use bsi_replace.
6235
6236 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
6237
6238         PR tree-optimization/17656
6239         * tree-ssa.c (replace_immediate_uses): When replacing a
6240         constant, if the call to fold_stmt produced a different
6241         statement, get an appropriate statement pointer by scanning
6242         STMT's basic block.
6243
6244 2004-10-18  Richard Henderson  <rth@redhat.com>
6245
6246         * pointer-set.c (hash1): Don't use libm functions in fallback case.
6247
6248 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
6249
6250         PR bootstrap/17684
6251         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
6252         (stage1-start): Remove and copy libunwind.a and
6253         libunwind*$(SHLIB_EXT) instead of libunwind*.
6254         (stage2-start): Likewise.
6255         (stage3-start): Likewise.
6256         (stage4-start): Likewise.
6257         (stageprofile-start): Likewise.
6258         (stagefeedback-start): Likewise.
6259
6260         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
6261         the shared library to be created and don't remove the existing
6262         shared library.
6263         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
6264         * config/i386/t-nwld (SHLIB_LINK): Likewise.
6265         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
6266         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
6267         * config/sh/t-linux (SHLIB_LINK): Likewise.
6268         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
6269         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
6270         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
6271         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
6272
6273         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
6274         files.
6275
6276 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6277
6278         * basic-block.h (reg_set_iterator): New.
6279         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
6280         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
6281         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
6282         * caller-save.c (save_call_clobbered_regs): Adjust to the new
6283         style.
6284         * cfgcleanup.c (thread_jump): Likewise.
6285         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
6286         * conflict.c (conflict_graph_compute): Likewise.
6287         * flow.c (verify_local_live_at_start, update_life_info,
6288         initialize_uninitialized_subregs, propagate_one_insn,
6289         init_propagate_block_info, free_propagate_block_info,
6290         propagate_block, dump_regset): Likewise.
6291         * global.c (global_conflicts): Likewise.
6292         * graph.c (start_bb): Likewise.
6293         * local-alloc.c (update_equiv_regs): Likewise.
6294         * loop.c (load_mems): Likewise.
6295         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
6296         find_reg, finish_spills): Likewise.
6297         * resource.c (mark_target_live_regs): Likewise.
6298         * sched-deps.c (sched_analyze_insn): Likewise.
6299         * sched-rgn.c (sched-rgn.c): Likewise.
6300         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
6301
6302 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
6303
6304         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
6305         operand 1 instead of 2
6306
6307 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6308
6309         * loop-unroll.c: Fix comment typos.
6310
6311 2004-10-18  Revital Eres  <eres@il.ibm.com>
6312
6313         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
6314         * loop-unroll.c: Include varray.h.
6315         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
6316         opt_info and expand it to support variable expansion.
6317         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
6318         expand it to support variable expansion.
6319         (pt_info_start_duplication): Rename si_info_start_duplication.
6320         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
6321         to the variable expansion optimization.
6322         (free_opt_info): Rename free_si_info.
6323         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
6324         expand_var_during_unrolling, insert_var_expansion_initialization,
6325         combine_var_copies_in_loop_exit, release_var_copies,
6326         get_expansion): New functions.
6327         (peel_loop_completely, unroll_loop_constant_iterations,
6328         unroll_loop_runtime_iterations, peel_loop_simple,
6329         unroll_loop_stupid): Change uses of struct si_info
6330         to struct opt_info
6331         and add uses of fvariable-expansion-in-unroller flag.
6332         * params.def: Add parameter to restrict the number of expansions.
6333         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
6334         the number of expansions.
6335         * common.opt: (fvariable-expansion-in-unroller): New flag.
6336         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
6337
6338 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
6339
6340         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
6341         __GXX_MERGED_TYPEINFO_NAMES to 0.
6342
6343 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
6344
6345         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
6346         handle barriers in a bb by checking that it points to a NULL bb.
6347         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
6348         (emit_barrier_after, emit_barrier): Ditto.
6349
6350 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
6351
6352         * doc/extend.texi (Attribute Syntax): Clarify details of
6353         attributes on parameters.
6354
6355 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
6356
6357         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
6358         loop.
6359
6360 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6361
6362         Revert:
6363         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6364
6365         * c-typeck.c (default_function_array_conversion): Always create
6366         &a[0] for array types.
6367         (build_unary_op): Do not fold &a[x] into a + x.
6368
6369 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6370
6371         PR middle-end/17925
6372         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
6373         block if there is a goto with a locus.
6374
6375 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
6376
6377         * config/elfos.h, config/gofast.h, config/interix.h,
6378         config/netbsd.h, config/svr3.h, config/vxworks.h,
6379         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
6380         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
6381         config/alpha/netbsd.h, config/arm/arm-modes.def,
6382         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
6383         config/cris/aout.h, config/frv/frv-modes.def,
6384         config/i386/beos-elf.h, config/i386/gas.h,
6385         config/i386/i386-coff.h, config/i386/i386-modes.def,
6386         config/i386/linux.h, config/i386/linux64.h,
6387         config/i386/mingw32.h, config/i386/netbsd-elf.h,
6388         config/i386/netbsd64.h, config/i386/sco5.h,
6389         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
6390         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
6391         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
6392         config/mips/mips-modes.def, config/mips/sdb.h,
6393         config/mips/vr.h, config/mips/vxworks.h,
6394         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
6395         config/pa/pa32-linux.h, config/rs6000/40x.md,
6396         config/rs6000/7450.md, config/rs6000/8540.md,
6397         config/rs6000/linuxspe.h, config/rs6000/power4.md,
6398         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
6399         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
6400         config/s390/s390-modes.def, config/sh/elf.h,
6401         config/sh/sh-modes.def, config/sh/sh64.h,
6402         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
6403         config/stormy16/stormy16.md, config/v850/v850-protos.h,
6404         config/vax/vax.md: Update copyright.
6405
6406 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
6407
6408         * expr.c (expand_expr_real_1): Remove an obsolete comment.
6409
6410 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
6411
6412         * c-typeck.c (default_function_array_conversion): Always create
6413         &a[0] for array types.
6414         (build_unary_op): Do not fold &a[x] into a + x.
6415
6416 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
6417
6418         * pointer-set.c (hash1): Use integer part of 2^64 / phi
6419         instead 2^32 / phi if long is 64-bit.
6420
6421 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
6422
6423         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
6424         RID_PTRVALUE.
6425         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
6426         declarations.
6427         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
6428         __ptrextent__, __ptrvalue and __ptrvalue__.
6429         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
6430         entries.
6431
6432 2004-10-16  Dale Johannesen  <dalej@apple.com>
6433
6434         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
6435
6436 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6437
6438         PR tree-optimization/17766
6439         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
6440         (dom_info_available_p): Declare.
6441         * cfghooks.c (split_block, make_forwarder_block): Use
6442         dom_info_available_p.
6443         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
6444         free_dominance_info, verify_dominators): Ditto.
6445         (dom_info_available_p): New function.
6446         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
6447         (thread_jumps): Use dom_info_available_p.
6448         * tree-complex.c (expand_complex_div_wide): Ditto.
6449         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
6450
6451 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6452
6453         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
6454         (find_best_candidate): Take also important candidates into account.
6455         (find_optimal_iv_set): Initialize important_candidates bitmap.
6456
6457 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6458
6459         PR tree-optimization/17560
6460         * predict.c (tree_estimate_probability): Mark irreducible
6461         loops.
6462
6463 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
6464
6465         PR rtl-optimization/17723
6466         * cfgcleanup.c (merge_memattrs): Handle case when
6467         MEM_SIZE == NULL_RTX.
6468
6469 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
6470
6471         * toplev.c (dump_file_name): Change type to be const.
6472
6473 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
6474
6475         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
6476         non_lvalue to stop something being a null pointer constant.
6477
6478 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
6479
6480         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
6481         available for TARGET_FPRS.
6482         (FUNCTION_VALUE_REGNO_P): Same.
6483
6484 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
6485
6486         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6487         -maltivec in same style as other ISA options.
6488
6489 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
6490
6491         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
6492         definition.
6493
6494 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
6495
6496         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
6497         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
6498         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
6499         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
6500         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
6501         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
6502         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
6503         predict.def, predict.h, protoize.c, reload.h, resource.h,
6504         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
6505         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
6506         unwind-sjlj.c, value-prof.h: Update copyright.
6507
6508 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
6509
6510         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
6511
6512 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
6513
6514         * tree-optimize.c (execute_one_pass): Stop timer right after
6515         executing the pass.
6516
6517 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6518
6519         Revert:
6520         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6521         PR middle-end/17967
6522         Revert:
6523                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
6524                 (remove_useless_stmts_1):  Fold trees we know how to fold.
6525
6526 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
6527
6528         * configure.ac: Add .machine power4 directive when testing for
6529         mfcr field.
6530         * configure: Regenerate.
6531
6532 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
6533
6534         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
6535
6536 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6537
6538         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
6539         always.
6540
6541 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
6542
6543         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
6544         for 'f' if !TARGET_FPRS.
6545
6546 2004-10-14  Richard Henderson  <rth@redhat.com>
6547
6548         PR debug/14492
6549         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
6550
6551 2004-10-14  Richard Henderson  <rth@redhat.com>
6552
6553         PR c/17023
6554         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
6555         as error_mark_node.
6556         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
6557         instaed of current_function_decl non-null.
6558
6559 2004-10-14  Matt Austern  <austern@apple.com>
6560
6561         * pointer-set.c: New file, special-purpose hash table.
6562         * pointer-set.h: New file.
6563         * tree.h (struct pointer_set_t): Declare as opaque type.
6564         (tree_walk): Last argument is pointer_set_t* now.
6565         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
6566         (walk_type_fields):
6567         (walk_tree): Convert from htab_t to pointer_set_t for keeping
6568         track of which nodes have already been visited.
6569         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
6570         * cgraphunit.c (cgraph_create_edges): Likewise.
6571         (cgraph_characterize_statics_local): Likewise.
6572         * tree-dfa.c (collect_dfa_stats): Likewise.
6573         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
6574         pointer_set_t* now.
6575         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
6576         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
6577         of walk_subtrees is pointer_set_t* now.
6578         * Makefile.in (OBJS-common): add pointer-set.o
6579         (tree-inline.o): Depends on pointer-set.h
6580         (tree-dfa.o): Likewise
6581         (cgraphunit.o): Likewise
6582
6583 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
6584
6585         * config/rs6000/darwin.h (ASM_SPEC): Delete.
6586         (TARGET_ASM_FILE_START): Define.
6587         * config/darwin.h (ASM_SPEC): Define.
6588         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
6589         -mlong-double-128, it's the default.  Update comment about reason
6590         for force_cpusubtype_ALL.
6591         * config/rs6000/darwin-vecsave.asm: Supply .machine.
6592         * config/rs6000/darwin-world.asm: Likewise.
6593         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
6594         (symbolic_operand): Delete #if 0ed code.
6595
6596 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6597
6598         * stmt.c (add_case_node): Make sure that we have integer
6599         constant before calling tree_int_cst_compare.
6600
6601 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
6602
6603         PR middle-end/17967
6604         Revert:
6605                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
6606                 (remove_useless_stmts_1):  Fold trees we know how to fold.
6607
6608 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
6609
6610         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
6611         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
6612         -m64.
6613
6614 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
6615
6616         * reload.c (find_reloads): When reloading a PLUS with constant
6617         operand, make sure the constant is pushed to the constant pool
6618         if required.
6619         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
6620         reload bug workaround.
6621         (s390_expand_plus_operand): Likewise.
6622
6623 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
6624
6625         * opts.c (common_handle_option): Do not enable
6626         flag_speculative_prefetching for -fprofile-generate/use.
6627
6628 2004-10-14  Devang Patel  <dpatel@apple.com>
6629
6630         PR 17635
6631         * tree-if-conv.c (process_phi_nodes): Process latch block.
6632         (combine_blocks): Process latch block and update loop structure.
6633
6634 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
6635
6636         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
6637         (vect_update_ivs_after_vectorizer):
6638         (vect_transform_for_unknown_loop_bound):
6639         (tree_duplicate_loop_to_edge):
6640         (allocate_new_names):
6641         (rename_use_op):
6642         (rename_def_op):
6643         (rename_variables_in_bb):
6644         (free_new_names):
6645         (rename_variables_in_loop):
6646         (copy_phi_nodes):
6647         (update_phis_for_duplicate_loop):
6648         (update_phi_nodes_for_guard):
6649         (make_loop_iterate_ntimes):
6650         (tree_duplicate_loop_to_edge_cfg):
6651         (add_loop_guard):
6652         (vect_analyze_loop_with_symbolic_num_of_iters):
6653         (verify_loop_for_duplication):
6654         (vect_gen_niters_for_prolog_loop):
6655         (vect_update_niters_after_peeling):
6656         (vect_update_inits_of_dr):
6657         (vect_update_inits_of_drs):
6658         (vect_build_loop_niters):
6659         (vect_do_peeling_for_alignment): New functions.
6660         (vect_transform_loop): Add unknown and known but indivisible loop
6661         bound support; add peeling for unalignment support.
6662         (vect_analyze_loop_form): Support symbolic number of iterations.
6663         (vect_transform_loop_bound): New input parameter.
6664         (vect_get_loop_niters): Change input parameter type.
6665         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
6666         (vectorizable_store): Allow unaligned access.
6667         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
6668         (vect_analyze_data_refs_alignment): Allowed one unaligned
6669         store.
6670         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
6671         to use tree.
6672         (LOOP_VINFO_INT_NITERS): New macro.
6673         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
6674         (do_peeling_for_alignment):
6675         (unaligned_drs): New members of _loop_vec_info.
6676         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
6677
6678 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
6679
6680         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
6681         (struct tree_string): Remove "const" qualifier for "str".
6682
6683 2004-10-14  Ira Rosen  <irar@il.ibm.com>
6684
6685         * tree-vectorizer.c (vect_analyze_data_refs): Call
6686         vect_get_base_and_bit_offset to get memory tag for array ref.
6687         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
6688
6689 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
6690
6691         * configure.ac: Use $LN_S for creating symlinks (not $LN).
6692         * configure: Regenerate.
6693
6694 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6695
6696         * doc/install.texi (*-*-solaris2*): Update with info about kernel
6697         patches to solve spurious testsuite failures.
6698
6699 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
6700
6701         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
6702         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
6703         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
6704         gcc_assert under ENABLE_CHECKING.
6705         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
6706         get_vectype_for_scalar_type).
6707
6708         (vect_get_vec_def_for_operand): Remove redundant variables.
6709         (vect_transform_loop): Likewise.
6710
6711 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
6712
6713         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
6714         global for -mcaller-super-interworking.
6715         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
6716         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
6717         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
6718         not need a frame pointer.
6719         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
6720         the soft frame pointer offset.
6721         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
6722         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
6723         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
6724         the stack.  Use frame_pointer_needed to choose between them.
6725         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
6726         (interwork_with_frame): New macro.
6727         (interwork): Add _interwork_{r7,r11}_call_via_rN().
6728
6729 2004-10-14  Ben Elliston  <bje@au.ibm.com>
6730
6731         PR other/17900
6732         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
6733         up the filename looking for a previous directory separator.
6734
6735 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6736
6737         * c-tree.h (enum c_typespec_kind, struct c_typespec,
6738         parser_xref_tag): New.
6739         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
6740         typedef_p.
6741         (declspecs_add_type): Adjust prototypes.
6742         * c-parse.in (%union): Add tstype.
6743         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
6744         typespec_reserved_attr, typespec_nonreserved_nonattr,
6745         structsp_attr, structsp_nonattr): Change to tstype.  Update
6746         actions.
6747         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
6748         (declspecs_add_type): Update to take struct c_typespec argument.
6749         Set tag_defined_p and typedef_p as appropriate.
6750         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
6751         Update to return struct c_typespec.
6752         (shadow_tag_warned): Don't let empty declarations with qualifiers
6753         or storage class specifiers redeclare a tag if a previous
6754         declaration is visible.
6755
6756 2004-10-13  Richard Henderson  <rth@redhat.com>
6757
6758         PR debug/15860
6759         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
6760         for DECL_INCOMING_RTL.
6761
6762 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
6763
6764         PR target/17984
6765         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
6766         trunc_int_for_mode for constants used in shortened mode.
6767
6768 2004-10-13  Richard Henderson  <rth@redhat.com>
6769
6770         PR c/17384
6771         * c-common.c (handle_mode_attribute): Disallow mode changes that
6772         alter the CODE of the top-level type.
6773
6774         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
6775         integer from internal limits macros.
6776         * config/i386/mm3dnow.h (__v2sf): Fix base type.
6777
6778 2004-10-13  Richard Henderson  <rth@redhat.com>
6779
6780         PR debug/13841
6781         * function.c (instantiate_decl): Recurse for CONCAT.
6782
6783 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
6784
6785         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
6786         andi./andis.
6787         (anddi3): Same.
6788         (extzvdi_internal1): Add attribute "compare".
6789         (extzvdi_internal2): Same.
6790
6791 2004-10-12  Tom Tromey  <tromey@redhat.com>
6792
6793         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
6794
6795 2004-10-13  Dale Johannesen  <dalej@apple.com>
6796
6797         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
6798
6799 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
6800
6801         * toplev.c (compile_file): Call mudflap_finish_file from here ...
6802         * c-decl.c (c_write_global_declarations): ... instead of here ...
6803         * cp/decl.c (cp_finish_file): ... and here.
6804         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
6805
6806 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
6807
6808         * tree-ssa-dom.c (record_range): Free the element if we are not
6809         going to use it.
6810
6811 2004-10-13  Tom Tromey  <tromey@redhat.com>
6812
6813         PR java/15578:
6814         * gcc.c (option_map): Added --extdirs and --encoding.
6815
6816 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
6817
6818         PR target/14454
6819         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
6820         sparc_can_output_mi_thunk.
6821         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
6822         handling of vcall offset.
6823         (sparc_can_output_mi_thunk): New predicate.
6824         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
6825         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
6826         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
6827
6828         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
6829
6830         * config/sparc/sparc.md (movdi): Remove redundant test.
6831
6832 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
6833
6834         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
6835         TDF_IPA from -fdump-tree-*-all.
6836
6837 2004-10-13  Paul Brook  <paul@codesourcery.com>
6838
6839         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
6840         * config/arm/arm.c (thumb_find_work_register): Update comments.
6841         (arm_load_pic_register): Add argument for scratch register.
6842         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
6843         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
6844
6845 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
6846
6847         * tree-data-ref.c: Fix comment typos.
6848
6849 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
6850             Zdenek Dvorak  <dvorakz@suse.cz>
6851
6852         PR tree-optimization/17724
6853         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
6854
6855 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
6856
6857         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
6858         (altivec_builtin_mask_for_store): Likewise.
6859         (altivec_init_builtins): Use lang_hooks.builtin_function to
6860         create the decls for builtin_altivec_mask_for_load/store.
6861
6862 2004-10-13  Nick Clifton  <nickc@redhat.com>
6863
6864         * config/c4x/c4x.c: Remove inclusion of loop.h.
6865
6866 2004-10-12  Ben Elliston  <bje@au.ibm.com>
6867
6868         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
6869         (ei_container): New; renamed.
6870         (ei_start, ei_last): New macros.
6871         (ei_start_1, ei_last_1): Renamed from ei_start.
6872         (ei_last_1, ei_end_p): Use ei_container() where applicable.
6873         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
6874         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
6875
6876 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
6877
6878         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
6879         * cfgloop.c (initialize_loops_parallel_p): New.
6880         (flow_loops_find): Initialize the parallel_p field to true for all
6881         the loops.
6882         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
6883         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
6884         the size of the data accessed in the loop.
6885         (struct nb_iter_bound): Moved...
6886         * cfgloop.h (struct nb_iter_bound): ... here.
6887         (estimated_nb_iterations, parallel_p): New fields in struct loop.
6888         (record_estimate): Declare extern here.
6889         * tree-chrec.c: Fix comments.
6890         (nb_vars_in_chrec): New function.
6891         * tree-chrec.h (nb_vars_in_chrec): Declared here.
6892         * tree-data-ref.c: Don't include lambda.h, that is already included
6893         in tree-data-ref.h.
6894         (tree_fold_divides_p): Don't check for integer_onep.
6895         (tree_fold_bezout): Removed.
6896         (gcd): New static duplicated function.
6897         (int_divides_p, dump_subscript): New.
6898         (dump_data_dependence_relation): Use dump_subscript.
6899         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
6900         estimate_niter_from_size_of_data): New.
6901         (analyze_array_indexes, analyze_array): Call
6902         estimate_niter_from_size_of_data during the detection of array
6903         references.  Pass in a pointer to the statement that contains the
6904         array reference.
6905         (all_chrecs_equal_p): New.
6906         (compute_distance_vector): Renamed compute_subscript_distance.
6907         Deal with multivariate conflict functions.
6908         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
6909         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
6910         (non_affine_dependence_relation): New.
6911         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
6912         analyze_siv_subscript, analyze_miv_subscript,
6913         analyze_overlapping_iterations, subscript_dependence_tester):
6914         Initialize and return last_conflicts function.
6915         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
6916         compute_overlap_steps_for_affine_1_2): New.
6917         (analyze_siv_subscript_affine_cst): Removed.
6918         (analyze_subscript_affine_affine): Disprove dependences based on the
6919         iteration domains.  Solve the univariate dependence case as before,
6920         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
6921         Implement the multivariate case of 2 versus 1 variables.
6922         (build_classic_dist_vector, build_classic_dir_vector): Implement some
6923         unhandled cases.
6924         (find_data_references_in_loop): Compute and initialize
6925         loop->estimated_nb_iterations and loop->parallel_p.
6926         (analyze_all_data_dependences): Modify the debug dump order.
6927         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
6928         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
6929         (SUB_LAST_CONFLICT, subscript->last_conflict,
6930         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
6931         DDR_AFFINE_P, DDR_SIZE_VECT): New.
6932         (find_data_references_in_loop, initialize_data_dependence_relation,
6933         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
6934
6935 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
6936
6937         * configure: Regenerate.
6938
6939 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
6940
6941         PR 17892
6942         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
6943         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
6944         and constant folding of floating point MULT_EXPR/PLUS_EXPR
6945         expressions.
6946
6947 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
6948
6949         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
6950         (s390_gimplify_va_arg): Likewise.
6951
6952 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
6953
6954         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
6955         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
6956         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
6957         * regclass.c (record_address_regs): Remove ifdef.  Use
6958         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
6959         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
6960         definition.
6961         (scan_rtx_address, replace_oldest_value_addr): Use
6962         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
6963         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
6964         unnecessary definitions.
6965         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
6966         and MODE_BASE_REG_REG_CLASS.
6967         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
6968         (MODE_BASE_REG_REG_CLASS): Define.
6969         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
6970         (REG_MODE_OK_FOR_REG_BASE_P): Define.
6971         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
6972         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
6973
6974 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
6975
6976         * tree-ssa-alias.c (verify_name_tags): New function.
6977         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
6978         (verify_alias_info): Call verify_name_tags.
6979
6980 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
6981
6982         PR rtl-optimization/17931
6983         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
6984         ZERO_EXTRACT in it.
6985
6986 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
6987
6988         * arm.c (arm_print_operand): Use output_operand_lossage where possible
6989         rather than aborting.
6990
6991 2004-10-12  Paul Brook  <paul@coudesourcery.com>
6992
6993         * config.gcc: Add armv6{k,z,zk}
6994         * config/arm/arm-cores.def: Add arm1176 and mpcore.
6995         * config/arm/tune.md: Regenerate.
6996         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
6997         Define.
6998         (all_architectures): Add armv6k, armv6z, armv6zk.
6999         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
7000         * doc/invoke.texi: Document new arch and cpu values.
7001
7002 2004-10-12  Paul Brook  <paul@coodesourcery.com>
7003
7004         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
7005         meabi=4.
7006
7007 2004-10-12  Paul Brook  <paul@codesourcery.com>
7008
7009         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
7010         Handle negative constants.
7011
7012 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
7013
7014         PR c/17301
7015         * c-typeck.c (convert_arguments): Return error_mark_node if there
7016         are too few arguments.
7017         (build_function_call): Handle error_mark_node return from
7018         convert_arguments.
7019
7020 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
7021
7022         * configure.ac (symbolic_link): Replace with $LN_S.
7023         (Assembler/Linker): Hard link from gas and binutils trees.
7024         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
7025         * configure: Regenerate.
7026
7027 2004-10-12  Paul Brook  <paul@codesourcery.com>
7028
7029         * configure.ac: Don't look for host assembler when building a canadian
7030         cross.
7031         * configure: Regenerate.
7032
7033 2004-10-11  Roger Sayle  <roger@eyesopen.com>
7034
7035         PR other/17361
7036         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
7037         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
7038         line options for "-lang-asm" and if found allow any of the C-family
7039         front-end options.
7040         (c_common_handle_option): Remove last use of permit_fortran_options.
7041
7042 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7043
7044         * config/s390/s390.c (print_operand): Support 'S' format flag.
7045         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
7046         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
7047         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
7048         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
7049         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
7050         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
7051         ("*movstricthi"): Likewise.
7052         ("*load_multiple_di", "*load_multiple_si"): Likewise.
7053         ("*store_multiple_di", "*store_multiple_si"): Likewise.
7054         ("*sethiqisi", "*sethihisi"): Likewise.
7055         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
7056         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
7057         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
7058         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
7059         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
7060
7061         ("*tmhi_full"): Fix incorrect op_type attribute.
7062
7063         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
7064         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
7065         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
7066         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
7067
7068 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
7069
7070         PR middle-end/16266
7071         * function.c (temp_slots_at_level): Fix typo which creates too
7072         many temp stack slots levels.
7073
7074 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7075
7076         * config/s390/s390.c (s390_trampoline_template): Generate shorter
7077         trampoline code.
7078         (s390_trampoline_instantiate): Adapt.
7079         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
7080
7081 2004-10-11  Roger Sayle  <roger@eyesopen.com>
7082
7083         PR middle-end/17657
7084         * stmt.c (add_case_node): Add additional type argument.  Declare
7085         as static to match prototype.  Convert the upper and lower bounds
7086         to the specified index type.  Optimize away case ranges/values
7087         that are outside the index type's bounds.  Truncate case ranges
7088         that span the index type's bounds.
7089         (expand_case): Avoid unnessary computation and memory allocation
7090         when index type is error_mark_node.  Pass index_type as required
7091         by change to add_case_node API.  No need to convert case range
7092         bounds to index_type, this is now done by add_case_node.
7093
7094 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7095
7096         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
7097         * config/s390/s390.c (s390_offset_p): New function.
7098         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
7099         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
7100         transform Q->Q alternatives to *clc pattern.
7101         ("*clc"): Move.
7102         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
7103         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
7104         to transform Q->Q alternatives to *mvc pattern.
7105         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
7106         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
7107         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
7108         transform Q->Q alternatives to *nc pattern.
7109         ("*nc"): New insn.  New peephole to merge adjacent NCs.
7110         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
7111         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
7112         transform Q->Q alternatives to *oc pattern.
7113         ("*oc"): New insn.  New peephole to merge adjacent OCs.
7114         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
7115         transform Q->Q alternatives to *xc pattern.
7116         ("*xc"): New insn.  New peephole to merge adjacent XCs.
7117         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
7118
7119 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
7120
7121         * gimplify.c (gimple_push_condition): Make sure that we don't
7122         have any saved condition cleanup if we were at the top level.
7123
7124 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
7125
7126         * config/frv/frv.md (*adddi3_internal): Change name to...
7127         (adddi3): ...replacing the exisiting define_expand.  Combine
7128         alternatives.  Fix the range of the constant constraints ('J' instead
7129         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
7130         to extract the lower and upper halves of the DImode operands.
7131         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
7132         (adddi3_lower): Fix the range of the constant constraints and
7133         remove the bogus operands[2] check.
7134         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
7135         operand 2.  Use addxi to handle constant operands.
7136         (subdi3_lower, subdi3_upper): Don't handle constant operands.
7137
7138 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
7139
7140         * gengtype-lex.l: Add commented } & ) characters to unconfuse
7141         editor's paren matching. Allow #define inside a struct.
7142
7143 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
7144
7145         PR middle-end/17703
7146         part of PR c++/17657
7147         * fold-const.c (fold_build_cleanup_point_expr): New function.
7148         * tree.h (fold_build_cleanup_point_expr): Prototype.
7149
7150 2004-10-10  Eric Christopher  <echristo@redhat.com>
7151
7152         * dwarf2out.c: Move attribute to subprogram declaration
7153         instead of subroutine type.
7154
7155 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
7156
7157         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
7158         hoist_insn_after, and hoist_insn_to_edge.
7159         * rtl.h: Remove the prototypes for reg_referenced_between_p,
7160         no_jumps_between_p, and insn_dependent_p.
7161         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
7162         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
7163         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
7164         hoist_insn_to_edge): Remove.
7165
7166 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7167
7168         PR c/17881
7169         * c-decl.c (grokparms): Don't warn for parameters of incomplete
7170         type in declarations that are not definitions except for the case
7171         of parameters of void type.
7172
7173 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
7174
7175         * tree-cfg.c: Fix comment typos.
7176
7177 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7178
7179         PR c/17301
7180         * builtins.c (expand_builtin_va_start): Check for too few
7181         arguments to va_start.
7182
7183 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7184
7185         PR c/17189
7186         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
7187         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
7188         pedantic.
7189         * c-parse.in (component_decl): Don't pedwarn here for unnamed
7190         fields.
7191
7192 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
7193
7194         PR tree-optimization/17906
7195         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
7196         copy non-gimple reg arguments.
7197
7198 2004-10-09  Roger Sayle  <roger@eyesopen.com>
7199
7200         PR rtl-optimization/17853
7201         * simplify-rtx.c (simplify_relational_operation): Correct comment.
7202         Reorganize handling of comparison operations with floating point
7203         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
7204         Likewise, introduce support for comparison operations with vector
7205         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
7206
7207         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
7208         * doc/tm.texi: Likewise.
7209
7210 2004-10-09  Steven Bosscher  <stevenb@suse.de>
7211
7212         * regs.h (struct reg_info_def): Remove the last_node_uid and
7213         changes_mode fields.
7214         (REGNO_LAST_NOTE_UID): Don't define.
7215         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
7216         * regmove.c (copy_src_to_dest): Likewise.
7217
7218 2004-10-09  Roger Sayle  <roger@eyesopen.com>
7219
7220         PR middle-end/17894
7221         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
7222         relational comparison operator op needs to be swapped/reversed when
7223         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
7224
7225 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
7226
7227         PR tree-opt/17902
7228         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
7229         instead of bsi_start.
7230         (value_replacement): Likewise.
7231         (abs_replacement): Likewise
7232
7233 2004-10-09  Steven Bosscher  <stevenb@suse.de>
7234
7235         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
7236         (expand_gimple_cond_expr, expand_gimple_tailcall,
7237         expand_gimple_basic_block): Use it to dump RTL for each stmt.
7238         (tree_expand_cfg): Announce full RTL function dump.
7239         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
7240         not the graph version.
7241         * tree-pretty-print.c (dump_generic_node): Allow empty statements
7242         in the arms of a COND_EXPR for lowered nodes.
7243
7244 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
7245
7246         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
7247         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
7248         strtoufix16, strtoufix32, strtoufix64): Declare.
7249
7250 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7251
7252         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
7253         for an out-of-range floating point constant.
7254         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
7255         warning if the target format does not support infinities.
7256
7257 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7258
7259         * emit-rtl.c (last_label_num, base_label_num): Remove.
7260         (max_label_num): Always return label_num.
7261         (set_new_last_label_num, restore_emit_status): Remove.
7262         (init_emit): Don't initialize last_label_num.
7263         * function.c (pop_function_context_from): Don't call
7264         restore_emit_status.
7265         * function.h: Remove the prototype for restore_emit_status.
7266         * rtl.h: Remove the prototype for set_new_last_label_num.
7267
7268 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7269
7270         * stmt.c (expand_decl_init): Remove.
7271         * tree.h: Remove the corresponding prototype.
7272
7273 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7274
7275         * integrate.c (try_constants, subst_constants, mark_stores):
7276         Remove.
7277         * integrate.h: Remove the prototype for try_constants.
7278
7279 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7280
7281         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
7282         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
7283         comments about its relevance to errors.
7284         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
7285
7286 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
7287
7288         PR c/16999
7289         * c-ppoutput.c (cb_ident): Don't quote string as it is already
7290         quoted.
7291
7292 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
7293
7294         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
7295         reference_node_pool.
7296
7297 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7298
7299         * tree-cfg.c: Fix a comment typo.
7300
7301 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
7302
7303         * config/s390/s390.c (s390_register_info): Don't save fprs for
7304         -msoft-float.
7305         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
7306
7307 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
7308
7309         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
7310         (TARGET_DEFAULT): Use symbolic values.
7311         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
7312         (TARGET_DEFAULT): Use symbolic values.
7313         * config/s390/s390.c (s390_backchain_string): Initialize to
7314         TARGET_DEFAULT_BACKCHAIN.
7315
7316 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7317
7318         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
7319         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
7320         code.
7321         (expand_builtin_strcat): Accept a type parameter.
7322         (fold_builtin_mempcpy): Accept a type and endp parameter.
7323
7324         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
7325         Accept an `exp' instead of an `arglist'.
7326
7327 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
7328
7329         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
7330         reverting my 2004-09-07 patch to use build_int_cst.
7331
7332 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7333
7334         PR target/17245
7335         * config/sparc/sparc.c (input_operand): Remove redundant code
7336         for handling LO_SUM.
7337         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
7338         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
7339         Otherwise only accept it for TFmode if quad move insns are available.
7340
7341 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7342
7343         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
7344         common cases will be caught earlier than others.
7345
7346 2004-10-08  Michael Matz  <matz@suse.de>
7347
7348         * loop-doloop.c (doloop_optimize): Extend count.
7349
7350 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7351
7352         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
7353         (prefetch): Convert to expander.
7354
7355 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
7356
7357         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
7358         first argument of CALL.
7359         (tls_local_dynamic): Likewise.
7360
7361 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7362
7363         * c-typeck.c (enum impl_conv): New.
7364         (convert_for_assignment): Use it.  Take tree for function called
7365         instead of its name.  Handle ObjC selectors for diagnostics at
7366         start of function.  Select diagnostic text within the function
7367         using full sentences for diagnsotics.  Use %qE to name functions
7368         in diagnostics.
7369         (convert_arguments, build_modify_expr,
7370         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
7371         callers to convert_for_assignment.
7372         (warn_for_assignment): Remove.
7373
7374 2004-10-08  Nick Clifton  <nickc@redhat.com>
7375
7376         * config/sh/symbian.c (symbian_possibly_export_base_class):
7377         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
7378         TYPE_CONTAINS_VPTR_P.
7379
7380 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
7381
7382         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
7383         fixed registers form all_used_regs. Update call_really_used_regs.
7384         (CALL_REALLY_USED_REGISTERS): Define.
7385         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
7386         with call_really_used_regs.
7387
7388 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
7389
7390         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
7391         for -profile as well as -p and -pg.
7392
7393 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
7394
7395         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
7396
7397 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7398
7399         * tree-cfg.c (tree_block_forwards_to): Remove.
7400         * tree-flow.h: Remove the corresponding prototype.
7401
7402 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7403
7404         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
7405         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
7406
7407 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
7408
7409         Radar 3813796
7410         * config/rs6000/rs6000.c (rs6000_generate_compare): When
7411         flag_trapping_math is in effect, don't generate subtract
7412         instructions.
7413
7414 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
7415
7416         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
7417         * config/s390/s390.c (s390_narrow_logical_operator): New function.
7418         (s390_extra_constraint_str): Add 'A' constraints.
7419         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
7420         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
7421         (CONSTRAINT_LEN): Likewise.
7422         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
7423         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
7424         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
7425         ("*iordi3"): Add OI alternative and splitter.
7426         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
7427         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
7428         ("*xordi3"): Add XI alternative and splitter.
7429         ("*xorsi3", "*xorhi3"): Likewise.
7430
7431 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7432
7433         * config/mips/mips.c (mips_function_rodata_section): New function.
7434         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
7435
7436 2004-10-07  Devang Patel  <dpatel@apple.com>
7437
7438         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
7439         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
7440         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
7441         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
7442         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
7443         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
7444         UNSPEC_VCONDU_V16QI): New constant defines.
7445         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
7446         vconduv16qi): New patterns.
7447         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
7448         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
7449         (get_vec_cmp_insn): Same.
7450         (get_vsel_insn): Same.
7451         (rs6000_emit_vector_compare): Same.
7452         (rs6000_emit_vector_select): Same.
7453         (INSN_NOT_AVAILABLE): New.
7454
7455 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
7456
7457         PR tree-optimization/17749
7458         * tree-tailcall.c (find_tail_calls): Check that parameter is
7459         a gimple_reg.
7460
7461 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7462
7463         * config/ia64/ia64.c: Fix a comment typo.
7464
7465 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7466
7467         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
7468
7469 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
7470
7471         PR c++/17115
7472         * tree-inline.c (expand_call_inline): Do not warn for functions
7473         marked with attribute noinline.
7474
7475 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7476
7477         PR target/17862
7478         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
7479         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
7480
7481         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
7482         of 0 as 4th argument to pass_by_reference.
7483         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
7484
7485 2004-10-06  Eric Christopher  <echristo@redhat.com>
7486
7487         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
7488         attribute.
7489
7490 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7491
7492         PR target/17770
7493         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
7494
7495 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
7496
7497         PR rtl-optimization/17791
7498         * loop-doloop.c (doloop_modify): Take number of iterations as
7499         argument.
7500         (doloop_optimize): Extend or shorten the number of iterations
7501         when changing mode of counter register.
7502         * loop-iv.c (lowpart_subreg): Export.
7503         * rtl.h (lowpart_subreg): Declare.
7504
7505 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
7506
7507         PR tree-optimization/17806
7508         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
7509         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
7510         flags moved to split_edge.
7511
7512 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7513
7514         PR middle-end/17835
7515         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
7516         before tentatively building the conditional move sequence.
7517
7518 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7519
7520         PR target/16815
7521         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
7522         check.
7523         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
7524         function_arg_padding.
7525
7526 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
7527
7528         PR bootstrap/17857
7529         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
7530
7531 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
7532
7533         * hooks.c (hook_int_void_1, hook_void_int): Remove.
7534         * hooks.h: Remove the corresponding prototypes.
7535
7536 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
7537
7538         PR middle-end/17849
7539         * tree-nested.c (walk_stmt_info): Add changed field.
7540         (convert_nonlocal_reference): Set changed to when we
7541         change a decl to unnested decl.
7542         <case ADDR_EXPR>: Instead of checking if the immediate part
7543         of the ADDR_EXPR changed, check the field changed.
7544         Use recompute_tree_invarant_for_addr_expr instead of unsetting
7545         TREE_INVARIANT.
7546         (convert_local_reference):  Set changed to when we
7547         change a decl to unnested decl.
7548         <case ADDR_EXPR>: Instead of checking if the immediate part
7549         of the ADDR_EXPR changed, check the field changed.
7550         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
7551
7552 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
7553
7554         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
7555         * dwarf2out.c (dwarf2out_init): Remove references to
7556         DWARF2_GENERATE_TEXT_SECTION_LABEL.
7557         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
7558         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
7559
7560 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
7561
7562         * c-typeck.c (convert_arguments): Take expression for called
7563         function rather than its name.  Handle ObjC selectors directly
7564         rather than relying on warn_for_assignment to do so.  Call warning
7565         directly rather than warn_for_assignment.  Use %qE in diagnostics.
7566         Say "argument" rather than "arg" in diagnostics.
7567         (build_function_call): Update call to convert_arguments.
7568
7569 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
7570
7571         PR debug/17787
7572         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
7573         ENUMs specially instead of just saying we do.
7574
7575 2004-10-06  Eric Christopher  <echristo@redhat.com>
7576
7577         * dwarf2.h: Sync with include/elf/dwarf2.h
7578
7579 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
7580
7581         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
7582         and TREE_VEC nodes.
7583
7584 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
7585
7586         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
7587         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
7588
7589 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
7590
7591         * lambda-code.c (compute_nest_using_fourier_motzkin): New
7592         function.
7593         (lambda_compute_auxillary_space): Split from here.
7594
7595 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
7596
7597         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
7598         * tree-flow.h: Add prototype.
7599         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
7600         expr_invariant_in_loop.
7601
7602 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
7603
7604         * tree-cfg.c (thread_jumps): Remove a duplicate check for
7605         EXIT_BLOCK_PTR.
7606
7607 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
7608
7609         * config/s390/s390-protos.h (s_imm_operand): Remove.
7610         (s390_pool_operand): Add prototype.
7611         * config/s390/s390.c (general_s_operand): Remove.
7612         (s_imm_operand): Remove.
7613         (s_operand): Merge contents of general_s_operand.
7614         (s390_pool_operand): New function.
7615         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
7616         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
7617         ("*cmpdi_ccu"): Merge Q->Q alternative.
7618         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
7619         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
7620         ("*cli"): Remove.
7621         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
7622         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
7623         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
7624
7625 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
7626
7627         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
7628         call ia64_function_arg_boundary.
7629         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
7630         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
7631         (ia64_function_arg_advance): Do not put 128 bit floats into
7632         FP registers.
7633
7634 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7635
7636         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
7637         Accept an expression instead of an arglist.
7638         (expand_builtin_stpcpy): Accept an expression instead of an
7639         arglist.
7640
7641 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7642
7643         PR target/16007
7644         * doc/install.texi (*-*-solaris2*): Mention potential problem
7645         with Sun assembler + GNU linker and C++ programs.
7646         Document status of binutils 2.15 release.
7647
7648 2004-10-06  Jan Hubicka  <jh@suse.cz>
7649
7650         * cse.c (cse_main): Kill push/pop context.
7651
7652 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
7653
7654         * pretty-print.c: Include tree.h.
7655         (pp_base_prepare_to_format): New function, logic from
7656         text_specifies_location.
7657         (pp_base_format_text): Use gcc_assert.
7658         * pretty-print.h (pp_prepare_to_format): New macro.
7659         (pp_base_prepare_to_format): Prototype.
7660         * diagnostic.c (text_specifies_location): Delete.
7661         (bug_report_request): Delete.
7662         (diagnostic_set_info): Don't call text_specifies_location.
7663         (diagnostic_action_after_output): Put text from
7664         bug_report_request inline here.  Use gcc_unreachable.
7665         (diagnostic_report_current_function): Fix comment.
7666         (diagnostic_report_diagnostic): Clarify logic for error recursion.
7667         Call pp_prepare_to_format before diagnostic_starter.
7668         (trim_filename): Use IS_DIR_SEPARATOR.
7669         (fatal_error, internal_error): Use gcc_unreachable.
7670         (error_recursion): Call diagnostic_action_after_output to
7671         issue the bug_report_request message and exit.
7672         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
7673
7674         * c-parse.in: Add list of diagnostic messages to insulate
7675         translation template from version of yacc/bison used to
7676         compile the grammar.
7677
7678 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
7679
7680         PR 16406
7681         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
7682
7683 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7684
7685         * basic-block.h: Remove the prototype for
7686         flow_preorder_transversal_compute.
7687         * cfganal.c (dfst_node): Remove.
7688         (flow_preorder_transversal_compute): Likewise.
7689         * rtl.h: Remove the prototype for get_jump_table_offset.
7690         * rtlanal.c (get_jump_table_offset): Remove.
7691
7692 2004-10-05  Richard Henderson  <rth@redhat.com>
7693
7694         PR 17756
7695         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
7696
7697 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
7698
7699         PR bootstrap/17817
7700         * Makefile.in: Stage the build directory too.
7701
7702 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
7703
7704         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
7705
7706         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
7707         (frv_emit_move): Same.
7708
7709         * config/frv/frv.c (frv_emit_move): New.
7710         (frv_legitimize_address): New.
7711
7712         * config/frv/frv.md ("movsi"): Call frv_emit_move.
7713         ("movqi"): Same.
7714         ("movhi"): Same.
7715         ("movdi"): Same.
7716         ("movsf"): Same.
7717         ("movdf"): Same.
7718
7719 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7720
7721         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
7722         system headers.
7723
7724 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7725
7726         * c-decl.c (pushdecl): When an extern declaration at block scope
7727         refers to a visible entity with internal linkage, use the old DECL
7728         rather than the new one.
7729
7730 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7731
7732         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
7733         comments.
7734
7735 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7736
7737         * tree-cfg.c (thread_jumps): Remove a duplicate check for
7738         an infinite loop.
7739
7740 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7741
7742         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
7743         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
7744         blocks.
7745
7746 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7747
7748         * tree-cfg.c (cleanup_tree_cfg): Don't call
7749         delete_unreachable_blosk() after thread_jumps().
7750         (thread_jumps): Always remove basic blocks as they become
7751         unreachable.
7752
7753 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
7754
7755         * tree-cfg.c (cleanup_tree_cfg): Remove variable
7756         something_changed.  Simplify the while loop.
7757
7758 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7759
7760         * builtins.c (expand_builtin_memmove): Delete duplicate code
7761         and accept a tree type for the result.
7762         (expand_builtin_bcopy): Accept a tree type for the result.
7763         (fold_builtin_memmove): Accept an arglist and tree type for
7764         the result.
7765
7766 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
7767
7768         * config/s390/s390.c (s390_dump_pool): Remove return value.
7769         Use gen_pool_align, gen_pool_section_start/end instead of
7770         gen_pool_start/end_31/64.
7771         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
7772         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
7773         ("pool_start_31", "pool_end_31"): Remove.
7774         ("pool_start_64", "pool_end_64"): Likewise.
7775         ("pool_align", "pool_section_start", "pool_section_end": New insns.
7776
7777         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
7778         (TARGET_CANNOT_COPY_INSN_P): Define.
7779         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
7780         (struct constant_pool): New member 'execute'.
7781         (s390_add_execute, s390_find_execute): New functions.
7782         (s390_execute_label, s390_execute_target): Likewise.
7783         (s390_dump_pool): Output in-pool execute target templates.
7784         (s390_dump_execute): New function.
7785         (s390_alloc_pool, s390_free_pool): Handle execute templates.
7786         (s390_mainpool_start, s390_mainpool_finish): Likewise.
7787         (s390_chunkify_start, s390_chunkify_finish): Likewise.
7788         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
7789         ("*execute"): New insn pattern.
7790         ("movmem_short", "*movmem_short"): Use splitters to generate
7791         explicit execute pattern, remove embedded execute.
7792         ("clrmem_short", "*clrmem_short"): Likewise.
7793         ("cmpmem_short", "*cmpmem_short"): Likewise.
7794
7795 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
7796
7797         * tree-ssa.c (verify_ssa): Verify phi arguments only
7798         contain renamed names.
7799
7800 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
7801
7802         * config/rs6000/linux.h: Formatting, whitespace.
7803         * config/rs6000/linux64.h: Likewise.
7804         * config/rs6000/rs6000-protos.h: Likewise.
7805         * config/rs6000/rs6000.c: Likewise.
7806         (easy_vector_splat_const): Add fall thru comments.
7807         (output_vec_const_move): Likewise.
7808
7809 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
7810
7811         * Makefile.in: Update -Wno-error exceptions for move to build dir.
7812
7813 2004-10-05  Chao-Ying Fu  <fu@mips.com>
7814             Richard Sandiford  <rsandifo@redhat.com>
7815
7816         * doc/invoke.texi (-mpaired-single): Link to the new description of the
7817         built-in functions.  Document dependencies.
7818         (-mips3d): Add link here too.
7819         * doc/extend.texi (MIPS Paired-Single Support): New section.
7820
7821 2004-10-04  Chao-ying Fu  <fu@mips.com>
7822
7823         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
7824
7825 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
7826
7827         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
7828         Initialize OPT_STATS to 0.
7829
7830 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
7831
7832         * tree-data-ref.c: Fix comment typos.
7833
7834 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
7835
7836         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
7837         the predicate cannot be computed, don't initialize the result to
7838         false.
7839
7840 2004-10-01  Eric Christopher  <echristo@redhat.com>
7841
7842         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
7843         locally defined enum.
7844         * dwarf2out.c (add_calling_convention_attribute): Don't
7845         emit DW_CC_normal.
7846
7847 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
7848
7849         PR c/17178, PR c/17820
7850         * c-decl.c (pop_scope): Do not warn about unused static
7851         variables as they warned in the middle-end.
7852
7853 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7854
7855         * builtins.c (expand_builtin_memcpy): Delete duplicate code
7856         and make the first parameter the expression not the arglist.
7857
7858 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
7859
7860         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
7861         as valid modes to expand address expressions.
7862
7863 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
7864
7865         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
7866         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
7867         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
7868         code formatting conventions.
7869
7870 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
7871
7872         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
7873
7874 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
7875
7876         PR tree-optimization/16632
7877         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
7878         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
7879         where | is used instead of &.
7880
7881 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
7882
7883         * ginclude/stddef.h: Fix a comment typo.
7884
7885 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7886
7887         PR target/17443
7888         * config.gcc (i?86-*-solaris2*): Restore correct logic
7889         for --enable-threads option.
7890         (sparc64-*-solaris2*): Likewise.
7891         (sparc-*-solaris2*): Likewise.
7892
7893 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
7894
7895         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
7896         (OS_MISSING_POWERPC64): Move, and comment.
7897         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
7898         (OS_MISSING_POWERPC64): Move, and comment.
7899
7900 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
7901
7902         * arm.c (output_call_mem): Add missing \t.
7903
7904 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7905
7906         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
7907         expand_builtin_strncmp): Delete duplicate code.
7908
7909 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
7910
7911         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
7912         take check-base and -limit arguments.
7913         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
7914         check ranges for ARRAY_REF and COMPONENT_REF.
7915         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
7916         instrumentation.
7917
7918 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
7919
7920         * c-objc-common.c (c_tree_printer): Correct description of %E.
7921         Don't fall through after printing an expression.
7922
7923 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
7924
7925         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
7926
7927 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
7928
7929         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
7930         delete_unrechable_blocks() only when necessary.
7931
7932 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
7933
7934         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
7935         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
7936         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
7937         __gthread_recursive_mutex_unlock): New functions.
7938
7939 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
7940
7941         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
7942         * config/s390/tpf-eh.c: Remove file.
7943         * config/s390/tpf-unwind.h: New file.
7944         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
7945         (MD_UNWIND_SUPPORT): Define.
7946
7947 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
7948
7949         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
7950
7951 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
7952
7953         * config/s390/s390-protos.h (s390_comparison): Add prototype.
7954         * config/s390/s390.c (s390_comparison): New function.
7955         (s390_branch_condition_mask): Return -1 for invalid comparisons.
7956         (s390_branch_condition_mnemonic): Assert valid comparison.
7957         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
7958         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
7959         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
7960         s390_comparison instead of comparison_operator.
7961
7962         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
7963         ("cmpmemdi"): Remove.
7964         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
7965         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
7966         ("cmpint_si"): Rename to ...
7967         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
7968         ("cmpint_di", "*cmpint_di"): Likewise.
7969         * config/s390/s390.c (s390_canonicalize_comparison): Remove
7970         redundant UNSPEC_CMPINT conversions.
7971         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
7972
7973 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
7974
7975         * collect2.c (COLLECT_PARSE_FLAG): Remove.
7976         (main): Remove a reference to COLLECT_PARSE_FLAG
7977         * system.h: Poison COLLECT_PARSE_FLAG.
7978         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
7979
7980 2004-10-01  Paul Brook  <paul@codesourcery.com>
7981
7982         * config/arm/crti.asm: Give _init and _fini function type.
7983
7984 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
7985
7986         * common.opt (ftree-loop-ivcanon): Enable by default.
7987         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
7988         Enable complete loop unrolling.
7989         (canonicalize_induction_variables, tree_unroll_loops_completely):
7990         Reset scev info.
7991
7992 2004-10-01  Paul Brook  <paul@codesourcery.com>
7993
7994         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
7995         not register number.
7996         (thumb_find_work_register): Search full register range.
7997
7998 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
7999
8000         PR tree-opt/17343
8001         * tree-cfg.c (group_case_labels): Get the label and not
8002         the case expr for the default case.
8003         When the label we looking at is the default, decrement the
8004         new_size.
8005
8006 2004-10-01  Jan Hubicka  <jh@suse.cz>
8007
8008         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
8009         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8010         * toplev.h (tree_rest_of_compilation): Update prototype.
8011         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
8012
8013 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
8014
8015         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
8016         cleanup_control_flow() out of the while loop.
8017
8018 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
8019
8020         * tree-vectorizer.c (vectorizable_operation): Fail unless
8021         the mode for the vector type is indeed a vector mode.
8022
8023 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
8024
8025         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
8026         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
8027         of convert.
8028         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
8029         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
8030         follow_ssa_edge_in_rhs): Ditto.
8031         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
8032         (dump_iv): Dump base_object.
8033         (dump_use, dump_cand): Use dump_iv.
8034         (determine_base_object): New function.
8035         (alloc_iv): Initialize base_object field.
8036         (record_use): Clear the ssa_name field of iv.
8037         (get_computation_cost_at): Do not use difference of addresses of
8038         two different objects.
8039         (may_eliminate_iv): Do not require the loop to have just single exit.
8040         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
8041         (nonzero_p): New function.
8042         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
8043         tree_simplify_using_condition, simplify_using_initial_conditions,
8044         loop_niter_by_eval, find_loop_niter_by_eval,
8045         estimate_numbers_of_iterations_loop, compare_trees,
8046         upper_bound_in_type, lower_bound_in_type,
8047         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
8048         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
8049         instead of integer_(non)zerop.
8050
8051 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
8052
8053         Revert
8054         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8055
8056         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
8057         and TI_VA_LIST_FPR_COUNTER_FIELD.
8058         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
8059         * tree-pass.h (pass_stdarg): Add.
8060         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
8061         * tree-stdarg.c: New file.
8062         * Makefile.in (OBJS-common): Add tree-stdarg.o.
8063         (tree-stdarg.o): Add dependencies.
8064         * function.h (struct function): Add va_list_gpr_size and
8065         va_list_fpr_size fields.
8066         * function.c (allocate_struct_function): Initialize them.
8067
8068         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
8069         va_list_{g,f}pr_counter_field.
8070         (ix86_setup_incoming_varargs): Don't do anything if reg_save
8071         area will not be used.  Only save registers that tree-stdarg.c
8072         detected they need saving.
8073         (ix86_va_start): Don't set up fields that won't be used.
8074
8075         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
8076         va_list_{g,f}pr_counter_field.
8077         (setup_incoming_varargs): Don't do anything if reg_save
8078         area will not be used.  Only save registers that tree-stdarg.c
8079         detected they need saving.
8080         (rs6000_va_start): Don't set up fields that won't be used.
8081
8082 2004-09-30  Eric Christopher  <echristo@redhat.com>
8083
8084         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
8085         sh abi.
8086         * dwarf2out.c (add_calling_convention_attribute): New function.
8087         (gen_subroutine_type_die): Use.
8088         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
8089         * target.h (gcc_target): Add dwarf_calling_convention.
8090         * hooks.c (hook_int_tree_0): New function.
8091         * hooks.h: Prototype.
8092         * config/sh/sh.c: Include dwarf2.h.
8093         (sh_dwarf_calling_convention): New function.
8094         (TARGET_DWARF_CALLING_CONVENTION): Use.
8095         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
8096
8097 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8098
8099         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8100         expand_builtin_strrchr, expand_builtin_strpbrk,
8101         expand_builtin_strncat, expand_builtin_strspn,
8102         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
8103         code.
8104
8105 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8106
8107         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
8108         prototype.
8109         (s390_logical_operator_ok_p): Likewise.
8110         * config/s390/s390.c (s390_expand_logical_operator): New function.
8111         (s390_logical_operator_ok_p): Likewise.
8112         * config/s390/s390.md ("anddi3"): New expander.
8113         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
8114         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
8115         ("andsi3"): Use s390_expand_logical_operator.
8116         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
8117         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
8118         ("andhi3"): New expander.
8119         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
8120         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
8121         ("andqi3"): New expander.
8122         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
8123         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
8124         ("iordi3"): New expander.
8125         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
8126         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
8127         ("iorsi3"): Use s390_expand_logical_operator.
8128         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
8129         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
8130         ("iorhi3"): New expiorer.
8131         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
8132         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
8133         ("iorqi3"): New expiorer.
8134         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
8135         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
8136         ("xordi3"): New expander.
8137         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
8138         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
8139         ("xorsi3"): New expander.
8140         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
8141         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
8142         ("xorhi3"): New expander.
8143         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
8144         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
8145         ("xorqi3"): New expander.
8146         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
8147         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
8148
8149 2004-09-30  Roger Sayle  <roger@eyesopen.com>
8150
8151         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
8152         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
8153         machine mode as the result.
8154
8155 2004-09-30  Ben Elliston  <bje@au.ibm.com>
8156
8157         PR bootstrap/17761
8158         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
8159         FOR_EACH_EDGE macros.
8160
8161 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8162
8163         * c-tree.h (readonly_error): Remove.
8164         * c-typeck (enum lvalue_use): New.
8165         (lvalue_or_else, readonly_error): Use it.  All callers changed.
8166         (readonly_error): Make static.
8167
8168 2004-09-30  Jan Hubicka  <jh@suse.cz>
8169
8170         PR debug/13974
8171         * cfgrtl.c (try_redirect_by_replacing_jump,
8172         force_nonfallthru_and_redirect, commit_one_edge_insertion,
8173         cfg_layout_merge_blocks):  Do not attach any line number information
8174         to newly inserted instructions.
8175         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
8176         emit_insn_*_noloc.
8177         (emit_*insn_before, emit_insn*_after): New.
8178         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
8179         existing locators.
8180         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
8181         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
8182
8183 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8184
8185         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
8186         (s390_return_address_offset): Remove.
8187         (s390_can_eliminate): Add prototype.
8188         (s390_initial_elimination_offset): Add prototype.
8189         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
8190         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
8191         * config/s390/s390.c (s390_arg_frame_offset): Remove.
8192         (s390_return_address_offset): Remove.
8193         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
8194         (struct machine_function): New member split_branches_pending_p.
8195         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
8196         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
8197         (s390_optimize_prologue): Remove base_used argument.  Call
8198         s390_update_frame_layout instead of s390_register_info.  Handle
8199         prologue/epilogue insns that touch only RETURN_REGNUM.
8200         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
8201         (s390_register_info): Remove base_used and return_addr_used
8202         arguments, compute special register usage inline.  Return live
8203         register data to caller.
8204         (s390_frame_info): Remove arguments, do not call s390_register_info.
8205         (s390_init_frame_layout): New function.
8206         (s390_update_frame_layout): Likewise.
8207         (s390_emit_prologue): Call s390_update_frame_layout; some code
8208         move to there.  Do not emit pool placeholder insn if unnecessary.
8209
8210 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8211
8212         * config/s390/s390.c (legitimate_reload_constant_p): Remove
8213         floating point constant workaround.
8214         (s390_secondary_input_reload_class): Handle PLUS reloads
8215         with too-large constant.
8216         (s390_expand_plus_operand): Likewise.
8217         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
8218         ("movsi"): Likewise.  Also, remove workaround for non-general
8219         operands.
8220         ("movdf"): Do not call force_const_mem.
8221         ("movsf"): Likewise.  Merge expander with *movsf insn.
8222         ("*movsf"): Remove, merge with movsf expander.
8223
8224 2004-09-30  Paul Brook  <paul@codesourcery.com>
8225
8226         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
8227         (ENDFILE_SPEC): Define.
8228         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
8229
8230 2004-09-30  Richard Henderson  <rth@redhat.com>
8231
8232         * config/alpha/qrnnd.asm: Mark for noexecstack.
8233
8234 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
8235
8236         * protoize.c, tree-cfg.c: Fix comment typos.
8237
8238 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8239
8240         PR c/17730
8241         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
8242
8243 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
8244
8245         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
8246         expressions...
8247         (add_pointed_to_expr): ... here.
8248         Call add_pointed_to_expr for variables with DECL_INITIAL set.
8249         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
8250         pointer variable, if set.
8251
8252 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
8253
8254         * config/sh/sh.c: Follow spelling conventions.
8255
8256 2004-09-29  Richard Henderson  <rth@redhat.com>
8257
8258         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
8259         * doc/tm.texi (DWARF_ZERO_REG): New.
8260
8261         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
8262         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
8263         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
8264
8265 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
8266
8267         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
8268         with a PLUS as source operand.
8269         (expand_movstr): Likewise.
8270         (expand_builtin_stpcpy): Likewise.
8271
8272 2004-09-29  Richard Henderson  <rth@redhat.com>
8273
8274         PR 17739
8275         * tree-gimple.c (is_gimple_reg): Reject hard registers.
8276         (is_gimple_asm_val): New.
8277         * tree-gimple.h (is_gimple_asm_val): Declare.
8278         * gimplify.c (gimplify_asm_expr): Use it.
8279         * tree-pretty-print.c (print_declaration): Dump hard regs.
8280         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
8281         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
8282         * tree-ssa-pre.c (is_undefined_value): Likewise.
8283         * tree-ssa-copy.c (may_propagate_copy): Likewise.
8284         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
8285         * tree-ssa.c (warn_uninit): Likewise.
8286         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
8287
8288 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
8289
8290         * c-decl.c (merge_decls): Use comptype when comparing
8291         types to decide on DECL_SIZE save of olddecl.
8292
8293 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
8294
8295         * tree.h (INDIRECT_REF_P): New macro.
8296         * alias.c (get_alias_set): Use it
8297         (nonoverlapping_memrefs_p): Ditto.
8298         * emit-rtl.c (mem_expr_equal_p): Ditto.
8299         (set_mem_attributes_minus_bitpos): Ditto.
8300         (is_gimple_addressable): Ditto.
8301         (get_base_address): Ditto.
8302         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
8303         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
8304         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
8305         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
8306         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
8307         (add_address_candidates): Ditto.
8308         (rewrite_address_base): Ditto.
8309
8310 2004-09-30  Ben Elliston  <bje@au.ibm.com>
8311
8312         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
8313         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
8314         (rewrite_ssa_into_ssa): Likewise.
8315         * tree-phinodes.c (create_phi_node): Access the number of
8316         predecessor edges using EDGE_COUNT() and not num_preds.
8317
8318 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
8319
8320         PR c/7425
8321         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
8322
8323 2004-09-29  Eric Christopher  <echristo@redhat.com>
8324
8325         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
8326
8327 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
8328
8329         * config/cris/cris.md (moverside, movemside): With MEM, make sure
8330         the address is (plus reg mem).
8331
8332 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
8333
8334         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
8335
8336 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
8337
8338         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
8339         cascaded if ... else if with a switch.
8340
8341 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
8342
8343         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
8344
8345 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8346
8347         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
8348         and TI_VA_LIST_FPR_COUNTER_FIELD.
8349         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
8350         * tree-pass.h (pass_stdarg): Add.
8351         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
8352         * tree-stdarg.c: New file.
8353         * Makefile.in (OBJS-common): Add tree-stdarg.o.
8354         (tree-stdarg.o): Add dependencies.
8355         * function.h (struct function): Add va_list_gpr_size and
8356         va_list_fpr_size fields.
8357         * function.c (allocate_struct_function): Initialize them.
8358
8359         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
8360         va_list_{g,f}pr_counter_field.
8361         (ix86_setup_incoming_varargs): Don't do anything if reg_save
8362         area will not be used.  Only save registers that tree-stdarg.c
8363         detected they need saving.
8364         (ix86_va_start): Don't set up fields that won't be used.
8365
8366         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
8367         va_list_{g,f}pr_counter_field.
8368         (setup_incoming_varargs): Don't do anything if reg_save
8369         area will not be used.  Only save registers that tree-stdarg.c
8370         detected they need saving.
8371         (rs6000_va_start): Don't set up fields that won't be used.
8372
8373 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8374
8375         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
8376         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
8377         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
8378         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
8379         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
8380         ATTR_NONNULL_1_4): New.
8381
8382 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8383
8384         PR tree-optimization/17697
8385         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
8386         cfg if needed.
8387
8388 2004-09-28  Per Bothner  <per@bothner.com>
8389
8390         * profile.c (branch_prob): Pass correct value to output_location,
8391         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
8392
8393 2004-09-28  Richard Henderson  <rth@redhat.com>
8394
8395         PR 15089
8396         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
8397         * tree-flow.h (may_propagate_copy_into_asm): Declare.
8398         * tree-ssa-ccp.c (replace_uses_in): Use it.
8399         * tree-ssa-dom.c (cprop_operand): Likewise.
8400
8401 2004-09-28 Jeff Law  <law@redhat.com>
8402
8403         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
8404         that no outgoing edges be left in the duplicate block.  Do no
8405         update information on outgoing edges or PHI nodes in target
8406         blocks here.
8407         (remove_ctrl_stmt_and_useless_edges): Renamed from
8408         remove_last_stmt_and_useless_edges.  Handle case where the
8409         block is empty or has no control statements.  Do not update edge
8410         flags here.
8411         (thread_block): Create a template block rather than copying the
8412         original block every time.  Create outgoing edges from the
8413         duplicate blocks and update PHIs at the target of the outgoing
8414         edges here.  Fix edge flags for the original block if necessary.
8415         * cfghooks (duplicate_block): No longer assert that the original
8416         block has incoming edges.
8417
8418 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
8419
8420         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
8421         Reg Vars to enforce register allocation with general constraints.
8422         (Explicit Reg Vars): Clarify relation to asm statements.
8423         (Local Reg Vars): Similar.
8424
8425 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8426
8427         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
8428         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
8429         build_control_flow, new_edge): Remove.
8430         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
8431         (bitlst, bitlst_table_last, bitlst_table): Remove.
8432         (bblst): Store basic_block pointer instead of block index.
8433         (bblst_table): Likewise.
8434         (edgelst): Store edge pointer instead of edge index.
8435         (edgelst_table, edgelst_last): New variables.
8436         (extract_bitlst): Rename to ...
8437         (extract_edgelst): ... this.  Return edge pointers, not indices.
8438         (split_edges): Update call.
8439         (rgn_edges): Store edge pointers instead of indices.
8440         (edge_to_bit): Remove.
8441         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
8442         (SET_EDGE_TO_BIT): New macro.
8443         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
8444         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
8445         data structures instead of haifa_edge et al.  Use edge pointers
8446         instead of edge indices everywhere.
8447         (compute_dom_prob_ps): Use standard CFG data structures.  Account
8448         for exit edges.
8449         (compute_trg_info): Likewise.
8450         (propagate_deps): Likewise.
8451         (debug_candidate): Account for bblst data structure change.
8452         (check_live_1, update_live_1, is_pfree): Likewise.
8453         (IS_REACHABLE): Use standard CFG data structures.
8454         (init_ready_list): Update bblst_table/edgelst_table allocation.
8455         (schedule_region): Update alloc/cleanup code to data structure
8456         changes.  Use edge->aux to store per-region edge index.
8457         (init_regions): No longer call build_control_flow.  Do not
8458         create edge list any more.
8459
8460 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8461
8462         * cse.c (cse_insn): Avoid creating direct non-local jumps.
8463         * combine.c (can_combine_p): Likewise.
8464         * local-alloc. (update_equiv_regs): Likewise.
8465
8466 2004-09-28  Richard Henderson  <rth@redhat.com>
8467
8468         PR 17531
8469         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
8470         Don't check VOIDmode here.  Force PLUS operands to common type.
8471         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
8472         Pmode if given a non pointer type.
8473
8474 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8475
8476         PR 17531
8477         * optabs.c (expand_binop): Force constants to the correct mode.
8478
8479 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
8480
8481         * config/s390/s390.c (s390_adjust_cost): Remove.
8482         (TARGET_SCHED_ADJUST_COST): Do not redefine.
8483         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
8484         * config/s390/s390.md ("main_pool"): Use "larl" type
8485         attribute if TARGET_CPU_ZARCH.
8486
8487 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
8488
8489         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
8490         variable.
8491
8492 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8493
8494         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
8495         name to the pass.
8496
8497 2004-09-28  Steven Bosscher  <stevenb@suse.de>
8498
8499         * common.opt (flag_gcse_sm): Disable by default.
8500         (flag_gcse_las): Likewise.
8501         (flag_web): Likewise.  Create from this file.
8502         * flags.h: Remove flag_web declaration.
8503         * toplev.c (flag_web): Likewise.
8504         (process_options): Never set flag_web.
8505
8506 2004-09-28  Steven Bosscher  <stevenb@suse.de>
8507
8508         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
8509         * tree-ssa-propagate.c: Include vec.h.
8510         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
8511         instead of varrays.
8512         (cfg_blocks_add): Assert the block is not already in the worklist.
8513         Update uses of interesting_ssa_edges and varying_ssa_edges.
8514         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
8515         ssa_propagate): Likewise.
8516
8517 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8518
8519         PR c/16409
8520         * c-decl.c (start_decl): Check for initializing incomplete array
8521         of VLAs.
8522         (build_compound_literal): Check for TYPE being error_mark_node.
8523         * c-parse.in (primary): Check for VLA compound literals.
8524
8525 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8526
8527         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
8528         with --disable-checking.
8529
8530 2004-09-28  Devang Patel  <dpatel@apple.com>
8531
8532         * tree-pretty-print.c (dump_generic_node): Print vector types.
8533
8534 2004-09-28  Nick Clifton  <nickc@redhat.com>
8535
8536         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
8537         invocation of the function sh_init_cumulative_args.
8538         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
8539         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
8540         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
8541         * config/sh/sh.c (sh_init_cumulative_args): New function based
8542         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
8543         heuristic added to determine the setting of force_mem when a
8544         library function is being called.
8545
8546 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8547
8548         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
8549         Skip constant arguments.
8550
8551 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
8552
8553         * tree-ssa-alias.c (create_name_tags): If PTR points to a
8554         volatile type, mark the tag volatile.
8555         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
8556         volatile.
8557
8558 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
8559
8560         * tree.def (vec_cond_expr): Fix. Change 'e'
8561         to tcc_expression.
8562
8563 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
8564
8565         * basic-block.h: Fix a comment typo.
8566
8567 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
8568
8569         * optabs.c, optabs.h: Fix comment typos.
8570
8571 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8572
8573         * config/sparc/sparc.md (call_address_struct_value_sp32):
8574         Properly mask the immediate field of the 'unimp' instruction.
8575         (call_symbolic_struct_value_sp32): Likewise.
8576
8577 2004-09-28  Ben Elliston  <bje@au.ibm.com>
8578             Steven Bosscher  <stevenb@suse.de>
8579             Andrew Pinski  <pinskia@physics.uc.edu>
8580
8581         Merge from edge-vector-branch:
8582         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
8583         (struct edge_def): Remove pred_next, succ_next members.
8584         (struct basic_block_def): Remove pred, succ members.  Add preds
8585         and succs members of type VEC(edge).
8586         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
8587         (BRANCH_EDGE): Likewise.
8588         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
8589         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
8590         (edge_iterator): New.
8591         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
8592         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
8593         (FOR_EACH_EDGE): New.
8594         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
8595         where applicable.
8596         (rotate_loop): Likewise.
8597         (find_traces_1_route): Likewise.
8598         (bb_to_key): Likewise.
8599         (connect_traces): Likewise.
8600         (copy_bb_p): Likewise.
8601         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
8602         (add_labels_and_missing_jumps): Likewise.
8603         (fix_up_fall_thru_edges): Likewise.
8604         (find_jump_block): Likewise.
8605         (fix_crossing_conditional_branches): Likewise.
8606         (fix_crossing_unconditional_branches): Likewise.
8607         (add_reg_crossing_jump_notes): Likewise.
8608         * bt-load.c (augment_live_range): Likewise.
8609         * cfg.c (clear_edges): Likewise.
8610         (unchecked_make_edge): Likewise.
8611         (cached_make_edge): Likewise.
8612         (make_single_succ_edge): Likewise.
8613         (remove_edge): Likewise.
8614         (redirect_edge_succ_nodup): Likewise.
8615         (check_bb_profile): Likewise.
8616         (dump_flow_info): Likewise.
8617         (alloc_aux_for_edges): Likewise.
8618         (clear_aux_for_edges): Likewise.
8619         (dump_cfg_bb_info): Likewise.
8620         * cfganal.c (forwarder_block_p): Likewise.
8621         (can_fallthru): Likewise.
8622         (could_fall_through): Likewise.
8623         (mark_dfs_back_edges): Likewise.
8624         (set_edge_can_fallthru_flag): Likewise.
8625         (find_unreachable_blocks): Likewise.
8626         (create_edge_list): Likewise.
8627         (verify_edge_list): Likewise.
8628         (add_noreturn_fake_exit_edges): Likewise.
8629         (connect_infinite_loops_to_exit): Likewise.
8630         (flow_reverse_top_sort_order_compute): Likewise.
8631         (flow_depth_first_order_compute): Likewise.
8632         (flow_preorder_transversal_compute): Likewise.
8633         (flow_dfs_compute_reverse_execute): Likewise.
8634         (dfs_enumerate_from): Likewise.
8635         (compute_dominance_frontiers_1): Likewise.
8636         * cfgbuild.c (make_edges): Likewise.
8637         (compute_outgoing_frequencies): Likewise.
8638         (find_many_sub_basic_blocks): Likewise.
8639         (find_sub_basic_blocks): Likewise.
8640         * cfgcleanup.c (try_simplify_condjump): Likewise.
8641         (thread_jump): Likewise.
8642         (try_forward_edges): Likewise.
8643         (merge_blocks_move): Likewise.
8644         (outgoing_edges_match): Likewise.
8645         (try_crossjump_to_edge): Likewise.
8646         (try_crossjump_bb): Likewise.
8647         (try_optimize_cfg): Likewise.
8648         (merge_seq_blocks): Likewise.
8649         * cfgexpand.c (expand_gimple_tailcall): Likewise.
8650         (expand_gimple_basic_block): Likewise.
8651         (construct_init_block): Likewise.
8652         (construct_exit_block): Likewise.
8653         * cfghooks.c (verify_flow_info): Likewise.
8654         (dump_bb): Likewise.
8655         (delete_basic_block): Likewise.
8656         (split_edge): Likewise.
8657         (merge_blocks): Likewise.
8658         (make_forwarder_block): Likewise.
8659         (tidy_fallthru_edges): Likewise.
8660         (can_duplicate_block_p): Likewise.
8661         (duplicate_block): Likewise.
8662         * cfglayout.c (fixup_reorder_chain): Likewise.
8663         (fixup_fallthru_exit_predecessor): Likewise.
8664         (can_copy_bbs_p): Likewise.
8665         (copy_bbs): Likewise.
8666         * cfgloop.c (flow_loops_cfg_dump): Likewise.
8667         (flow_loop_entry_edges_find): Likewise.
8668         (flow_loop_exit_edges_find): Likewise.
8669         (flow_loop_nodes_find): Likewise.
8670         (mark_single_exit_loops): Likewise.
8671         (flow_loop_pre_header_scan): Likewise.
8672         (flow_loop_pre_header_find): Likewise.
8673         (update_latch_info): Likewise.
8674         (canonicalize_loop_headers): Likewise.
8675         (flow_loops_find): Likewise.
8676         (get_loop_body_in_bfs_order): Likewise.
8677         (get_loop_exit_edges): Likewise.
8678         (num_loop_branches): Likewise.
8679         (verify_loop_structure): Likewise.
8680         (loop_latch_edge): Likewise.
8681         (loop_preheader_edge): Likewise.
8682         * cfgloopanal.c (mark_irreducible_loops): Likewise.
8683         (expected_loop_iterations): Likewise.
8684         * cfgloopmanip.c (remove_bbs): Likewise.
8685         (fix_bb_placement): Likewise.
8686         (fix_irreducible_loops): Likewise.
8687         (remove_path): Likewise.
8688         (scale_bbs_frequencies): Likewise.
8689         (loopify): Likewise.
8690         (unloop): Likewise.
8691         (fix_loop_placement): Likewise.
8692         (loop_delete_branch_edge): Likewise.
8693         (duplicate_loop_to_header_edge): Likewise.
8694         (mfb_keep_just): Likewise.
8695         (create_preheader): Likewise.
8696         (force_single_succ_latches): Likewise.
8697         (loop_split_edge_with): Likewise.
8698         (create_loop_notes): Likewise.
8699         * cfgrtl.c (rtl_split_block): Likewise.
8700         (rtl_merge_blocks): Likewise.
8701         (rtl_can_merge_blocks): Likewise.
8702         (try_redirect_by_replacing_jump): Likewise.
8703         (force_nonfallthru_and_redirect): Likewise.
8704         (rtl_tidy_fallthru_edge): Likewise.
8705         (commit_one_edge_insertion): Likewise.
8706         (commit_edge_insertions): Likewise.
8707         (commit_edge_insertions_watch_calls): Likewise.
8708         (rtl_verify_flow_info_1): Likewise.
8709         (rtl_verify_flow_info): Likewise.
8710         (purge_dead_edges): Likewise.
8711         (cfg_layout_redirect_edge_and_branch): Likewise.
8712         (cfg_layout_can_merge_blocks_p): Likewise.
8713         (rtl_flow_call_edges_add): Likewise.
8714         * cse.c (cse_cc_succs): Likewise.
8715         * df.c (hybrid_search): Likewise.
8716         * dominance.c (calc_dfs_tree_nonrec): Likewise.
8717         (calc_dfs_tree): Likewise.
8718         (calc_idoms): Likewise.
8719         (recount_dominator): Likewise.
8720         * domwalk.c (walk_dominator_tree): Likewise.
8721         * except.c (emit_to_new_bb_before): Likewise.
8722         (connect_post_landing_pads): Likewise.
8723         (sjlj_emit_function_enter): Likewise.
8724         (sjlj_emit_function_exit): Likewise.
8725         (finish_eh_generation): Likewise.
8726         * final.c (compute_alignments): Likewise.
8727         * flow.c (calculate_global_regs_live): Likewise.
8728         (initialize_uninitialized_subregs): Likewise.
8729         (init_propagate_block_info): Likewise.
8730         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8731         * gcse.c (find_implicit_sets): Likewise.
8732         (bypass_block): Likewise.
8733         (bypass_conditional_jumps): Likewise.
8734         (compute_pre_data): Likewise.
8735         (insert_insn_end_bb): Likewise.
8736         (insert_store): Likewise.
8737         (remove_reachable_equiv_notes): Likewise.
8738         * global.c (global_conflicts): Likewise.
8739         (calculate_reg_pav): Likewise.
8740         * graph.c (print_rtl_graph_with_bb): Likewise.
8741         * ifcvt.c (mark_loop_exit_edges): Likewise.
8742         (merge_if_block): Likewise.
8743         (find_if_header): Likewise.
8744         (block_jumps_and_fallthru_p): Likewise.
8745         (find_if_block): Likewise.
8746         (find_cond_trap): Likewise.
8747         (block_has_only_trap): Likewise.
8748         (find_if_case1): Likewise.
8749         (find_if_case_2): Likewise.
8750         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
8751         (perfect_nestify): Likewise.
8752         * lcm.c (compute_antinout_edge): Likewise.
8753         (compute_laterin): Likewise.
8754         (compute_available): Likewise.
8755         (compute_nearerout): Likewise.
8756         * loop-doloop.c (doloop_modify): Likewise.
8757         * loop-init.c (loop_optimizer_init): Likewise.
8758         * loop-invariant.c (find_exits): Likewise.
8759         * loop-iv.c (simplify_using_initial_values): Likewise.
8760         (check_simple_exit): Likewise.
8761         (find_simple_exit): Likewise.
8762         * loop-unroll.c (peel_loop_completely): Likewise.
8763         (unroll_loop_constant_iterations): Likewise.
8764         (unroll_loop_runtime_iterations): Likewise.
8765         * loop-unswitch.c (may_unswitch_on): Likewise.
8766         (unswitch_loop): Likewise.
8767         * modulo-sched.c (generate_prolog_epilog): Likewise.
8768         (sms_schedule): Likewise.
8769         * postreload-gcse.c (eliminate_partially_redundant_load):
8770         Likewise.
8771         * predict.c (can_predict_insn_p): Likewise.
8772         (set_even_probabilities): Likewise.
8773         (combine_predictions_for_bb): Likewise.
8774         (predict_loops): Likewise.
8775         (estimate_probability): Likewise.
8776         (tree_predict_by_opcode): Likewise.
8777         (tree_estimate_probability): Likewise.
8778         (last_basic_block_p): Likewise.
8779         (propagate_freq): Likewise.
8780         (estimate_loops_at_level): Likewise.
8781         (estimate_bb_frequencies): Likewise.
8782         * profile.c (instrument_edges): Likewise.
8783         (get_exec_counts): Likewise.
8784         (compute_branch_probabilities): Likewise.
8785         (branch_prob): Likewise.
8786         * ra-build.c (live_in): Likewise.
8787         * ra-rewrite.c (rewrite_program2): Likewise.
8788         * ra.c (reg_alloc): Likewise.
8789         * reg-stack.c (reg_to_stack): Likewise.
8790         (convert_regs_entry): Likewise.
8791         (compensate_edge): Likewise.
8792         (convert_regs_1): Likewise,
8793         (convert_regs_2): Likewise.
8794         (convert_regs): Likewise.
8795         * regrename.c (copyprop_hardreg_forward): Likewise.
8796         * reload1.c (fixup_abnormal_edges): Likewise.
8797         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
8798         (sbitmap_insersection_of_preds): Likewise.
8799         (sbitmap_union_of_succs): Likewise.
8800         (sbitmap_union_of_preds): Likewise.
8801         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
8802         (fix_basic_block_boundaries): Likewise.
8803         (sched_ebbs): Likewise.
8804         * sched-rgn.c (build_control_flow): Likewise.
8805         (find_rgns): Likewise.
8806         * tracer.c (find_best_successor): Likewise.
8807         (find_best_predecessor): Likewise.
8808         (tail_duplicate): Likewise.
8809         * tree-cfg.c (make_edges): Likewise.
8810         (make_ctrl_stmt_edges): Likewise.
8811         (make_goto_expr_edges): Likewise.
8812         (tree_can_merge_blocks_p): Likewise.
8813         (tree_merge_blocks): Likewise.
8814         (cfg_remove_useless_stmts_bb): Likewise.
8815         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
8816         (tree_block_forwards_to): Likewise.
8817         (cleanup_control_expr_graph): Likewise.
8818         (find_taken_edge): Likewise.
8819         (dump_cfg_stats): Likewise.
8820         (tree_cfg2vcg): Likewise.
8821         (disband_implicit_edges): Likewise.
8822         (tree_find_edge_insert_loc): Likewise.
8823         (bsi_commit_edge_inserts): Likewise.
8824         (tree_split_edge): Likewise.
8825         (tree_verify_flow_info): Likewise.
8826         (tree_make_forwarder_block): Likewise.
8827         (tree_forwarder_block_p): Likewise.
8828         (thread_jumps): Likewise.
8829         (tree_try_redirect_by_replacing_jump): Likewise.
8830         (tree_split_block): Likewise.
8831         (add_phi_args_after_copy_bb): Likewise.
8832         (rewrite_to_new_ssa_names_bb): Likewise.
8833         (dump_function_to_file): Likewise.
8834         (print_pred_bbs): Likewise.
8835         (print_loop): Likewise.
8836         (tree_flow_call_edges_add): Likewise.
8837         (split_critical_edges): Likewise.
8838         (execute_warn_function_return): Likewise.
8839         (extract_true_false_edges_from_block): Likewise.
8840         * tree-if-conv.c (tree_if_conversion): Likewise.
8841         (if_convertable_bb_p): Likewise.
8842         (find_phi_replacement_condition): Likewise.
8843         (combine_blocks): Likewise.
8844         * tree-into-ssa.c (compute_global_livein): Likewise.
8845         (ssa_mark_phi_uses): Likewise.
8846         (ssa_rewrite_initialize_block): Likewise.
8847         (rewrite_add_phi_arguments): Likewise.
8848         (ssa_rewrite_phi_arguments): Likewise.
8849         (insert_phi_nodes_for): Likewise.
8850         (rewrite_into_ssa): Likewise.
8851         (rewrite_ssa_into_ssa): Likewise.
8852         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
8853         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
8854         (rewrite_trees): Likewise.
8855         * tree-pretty-print.c (dump_bb_header): Likewise.
8856         (dump_implicit_edges): Likewise.
8857         * tree-sra.c (insert_edge_copies): Likewise.
8858         (find_obviously_necessary_stmts): Likewise.
8859         (remove_data_stmt): Likewise.
8860         * tree-ssa-dom.c (thread_across_edge): Likewise.
8861         (dom_opt_finalize_block): Likewise.
8862         (single_incoming_edge_ignoring_loop_edges): Likewise.
8863         (record_equivalences_from_incoming_edges): Likewise.
8864         (cprop_into_successor_phis): Likewise.
8865         * tree-ssa-live.c (live_worklist): Likewise.
8866         (calculate_live_on_entry): Likewise.
8867         (calculate_live_on_exit): Likewise.
8868         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
8869         (copy_loop_headers): Likewise.
8870         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
8871         (fill_always_executed_in): Likewise.
8872         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
8873         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
8874         (compute_phi_arg_on_exit): Likewise.
8875         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
8876         (get_loops_exit): Likewise.
8877         (split_loop_exit_edge): Likewise.
8878         (ip_normal_pos): Likewise.
8879         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
8880         Likewise.
8881         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
8882         (replace_phi_with_stmt): Likewise.
8883         (value_replacement): Likewise.
8884         * tree-ssa-pre.c (compute_antic_aux): Likewise.
8885         (insert_aux): Likewise.
8886         (init_pre): Likewise.
8887         * tree-ssa-propagate.c (simulate_stmt): Likewise.
8888         (simulate_block): Likewise.
8889         (ssa_prop_init): Likewise.
8890         * tree-ssa-threadupdate.c (thread_block): Likewise.
8891         (create_block_for_threading): Likewise.
8892         (remove_last_stmt_and_useless_edges): Likewise.
8893         * tree-ssa.c (verify_phi_args): Likewise.
8894         (verify_ssa): Likewise.
8895         * tree_tailcall.c (independent_of_stmt_p): Likewise.
8896         (find_tail_calls): Likewise.
8897         (eliminate_tail_call): Likewise.
8898         (tree_optimize_tail_calls_1): Likewise.
8899         * tree-vectorizer.c (vect_transform_loop): Likewise.
8900         * var-tracking.c (prologue_stack_adjust): Likewise.
8901         (vt_stack_adjustments): Likewise.
8902         (vt_find_locations): Likewise.
8903         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
8904         * config/i386/i386.c (ix86_pad_returns): Likewise.
8905         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8906         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8907
8908 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
8909
8910         PR target/16532
8911         * config/sparc/sparc.c (struct machine_function): New field
8912         'leaf_function_p' and 'prologue_data_valid_p'.
8913         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
8914         to conveniently access the above fields.
8915         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
8916         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
8917         of the generic flavor 'current_function_uses_only_leaf_regs'.
8918         (eligible_for_sibcall_delay): Likewise.
8919         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
8920         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
8921         (sparc_asm_function_prologue): Add sanity check for the assumption
8922         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
8923         (sparc_can_use_return_insn_p): New function.
8924         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
8925         (output_restore): Likewise.
8926         (output_sibcall): Likewise.
8927         (sparc_output_mi_thunk): Likewise.
8928         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
8929         * config/sparc/sparc.md (return): New expander.
8930
8931         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
8932
8933 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
8934
8935         PR c++/17642
8936         * stor-layout.c (layout_decl): Use fold_convert, not convert.
8937         (bit_from_pos): Likewise.
8938         (byte_from_pos): Likewise.
8939         (pos_from_bit): Likewise.
8940         (normalize_offset): Likewise.
8941         (place_field): Likewise.
8942         (finalize_type_size): Likewise.
8943         (layout_type): Likewise.
8944         * tree.c (build_index_type): Likewise.
8945
8946 2004-09-27  Devang Patel  <dpatel@apple.com>
8947
8948         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
8949         * genopinit.c (optabs): New entry for vcond_gen_code and
8950         vcondu_gen_code.
8951         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
8952         (get_rtx_code): New function.
8953         (vector_compare_rtx): New function.
8954         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
8955         (expand_vec_cond_expr_p): New function.
8956         (expand_vec_cond_expr): New function.
8957         (get_vcond_icode): New function.
8958         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
8959         (vcond_gen_code, vcondu_gen_code): Same.
8960
8961 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
8962
8963         * Makefile.in (STAGESTUFF): Split into ...
8964         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
8965         (mostlyclean): Update.
8966         (stage1-start, stage2-start, stage3-start, stage4-start,
8967         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
8968         Move the STAGEMOVESTUFF.
8969
8970 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8971
8972         * system.h (getpagesize): Return 'int' instead of 'long'.
8973
8974 2004-09-27  Michael Matz <matz@suse.de>
8975
8976         PR bootstrap/17698
8977         PR bootstrap/17702
8978         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
8979         bmp_iter_and_init): Shift by bit_in_word.
8980
8981 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
8982
8983         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
8984         * configure.ac: Don't sinclude it here.
8985         * configure: Regenerate.
8986
8987 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
8988
8989         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
8990         Handle AND pattern
8991
8992 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
8993
8994         PR c/13804
8995         * c-typeck.c (build_component_ref): Name type involved in
8996         diagnostic for structure or union without a member of the given
8997         name.
8998
8999 2004-09-27  DJ Delorie  <dj@redhat.com>
9000
9001         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
9002         .comm alignment is bytes, not bits.
9003
9004 2004-09-27  Devang Patel  <dpatel@apple.com>
9005
9006         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
9007         (print_call_name): Do not print VEC_COND_EXPR.
9008
9009 2004-09-27  Devang Patel  <dpatel@apple.com>
9010
9011         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
9012
9013 2004-09-27  Jan Hubicka  <jh@suse.cz>
9014
9015         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
9016
9017 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
9018
9019         * bitmap.h: Fix a comment typo.
9020
9021 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9022
9023         * libgcc2.c (getpagesize): Change type of return value to int.
9024
9025 2004-09-26  Matt Austern  <austern@apple.com>
9026
9027         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
9028         using mmap.
9029
9030 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9031
9032         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
9033         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
9034         (bitmap_iterator): New type.
9035         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
9036         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
9037         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
9038         bmp_iter_and_init, bmp_iter_and_next): New functions.
9039         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
9040         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
9041         use iterator-style EXECUTE_IF_IN_BITMAP macros.
9042         * bitmap.c (bitmap_print): Ditto.
9043         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
9044         btr_def_live_range): Ditto.
9045         * cfganal.c (compute_dominance_frontiers_1) Ditto.
9046         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
9047         Ditto.
9048         * ddg.c (build_inter_loop_deps): Ditto.
9049         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
9050         Ditto.
9051         * except.c (remove_eh_handler): Ditto.
9052         * flow.c (reg_set_to_hard_reg_set): Ditto.
9053         * gcse.c (clear_modify_mem_tables): Ditto.
9054         * global.c (build_insn_chain): Ditto.
9055         * ifcvt.c (dead_or_predicable): Ditto.
9056         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
9057         Ditto.
9058         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
9059         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
9060         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
9061         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
9062         tree_purge_all_dead_eh_edges): Ditto.
9063         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
9064         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
9065         rewrite_ssa_into_ssa): Ditto.
9066         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
9067         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
9068         Ditto.
9069         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
9070         compute_flow_sensitive_aliasing, maybe_create_global_var,
9071         dump_points_to_info_for): Ditto.
9072         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
9073         * tree-ssa-dse.c (dse_finalize_block): Ditto.
9074         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
9075         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
9076         Ditto.
9077         * tree-ssa-loop-ivopts.c (find_induction_variables,
9078         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
9079         determine_use_iv_costs, determine_set_costs, find_best_candidate,
9080         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
9081         Ditto.
9082         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
9083         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
9084         add_call_read_ops): Ditto.
9085         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
9086
9087 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9088
9089         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
9090         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
9091
9092 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
9093
9094         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
9095         reflect size of memory regions being compared.
9096
9097 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
9098
9099         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
9100         expressions.  Always clear MEM_SIZE and alias set.
9101
9102 2004-09-26  Roger Sayle  <roger@eyesopen.com>
9103             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9104
9105         PR middle-end/17112
9106         * stor-layout.c (compute_record_mode): For records with a single
9107         field, only use the field's mode if its size matches what we'd
9108         have choosen for the record ourselves.  This forces the use of
9109         BLKmode for packed records that don't completely fill a mode.
9110
9111 2004-09-26  Roger Sayle  <roger@eyesopen.com>
9112
9113         PR middle-end/17151
9114         * combine.c (force_to_mode): Remove dubious early return test that
9115         inhibits further optimization.
9116
9117 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
9118
9119         * profile.c: Fix a comment typo.
9120
9121 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9122
9123         PR bootstrap/17591
9124         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
9125         with varying offset.
9126         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
9127         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
9128         ARRAY_REFS.
9129         (expr_invariant_in_loop_p): New function.
9130         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
9131         component_ref_field_offset for COMPONENT_REFs.  Do not allow
9132         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
9133         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
9134         MISALIGNED_INDIRECT_REFs.
9135         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
9136         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
9137         MISALIGNED_INDIRECT_REFs.
9138
9139 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
9140
9141         PR c/11459
9142         * gcc.c (cpp_options, cc1_options): Preserve relative order of
9143         -std and -ansi options.
9144
9145 2004-09-26  Jan Hubicka  <jh@suse.cz>
9146
9147         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
9148         for nested functions whose proper parent has not been output.
9149
9150         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
9151         when re-constructing profile previously invalidated by loop.
9152
9153 2004-09-25  Dale Johannesen  <dalej@apple.com>
9154
9155         * tree-gimple.c:  Move GIMPLE definition...
9156         * doc/tree-ssa.texi:  here.
9157
9158 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9159
9160         * tree-vectorizer.c: Fix a comment typo.
9161
9162 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9163
9164         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
9165         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
9166         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
9167         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
9168
9169 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9170
9171         * tree-ssa-loop-unswitch.c: Fix a comment typo.
9172
9173 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9174
9175         * doc/passes.texi: Fix a typo.
9176
9177 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9178
9179         * tree-optimize.c (init_tree_optimization_passes): Add
9180         pass_record_bounds.
9181         * tree-pass.h (pass_record_bounds): Declare.
9182         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
9183         New pass.
9184
9185 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9186
9187         PR tree-optimization/17474
9188         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
9189         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
9190
9191 2004-09-25  Jan Hubicka  <jh@suse.cz>
9192
9193         * predict.c (counts_to_freqs): Make global.
9194         * predict.h (counts_to_freqa): Declare.
9195         * profile.c (compute_branch_probabilities): Compute frequencies
9196         * tree-profile.c (do_tree_profiling): Refine conditional on when
9197         tree profiling pass is needed.
9198
9199         * passes.c (rest_of_handle_cfg): Disable const/pure function
9200         detection when doing tree based profiling.
9201
9202         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
9203         conditional.
9204
9205 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
9206
9207         * config/mips/mips.h (struct mips_args): Clarify comments.
9208         * config/mips/mips.c (struct mips_arg_info): Likewise.
9209         (mips_arg_info): Don't allow fpr_p to affect the register or
9210         stack alignment.  Remove o64 silliness.
9211         (function_arg): Deal with the o32 float,float case specially.
9212
9213 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
9214
9215         * config/mips/mips.md (loadx, storex): Define for V2SF.
9216
9217 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
9218
9219         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
9220         * config/s390/s390.c (s390_back_chain_rtx): New function.
9221         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
9222         Call anti_adjust_stack.
9223         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
9224         only if compiling with back chain.
9225         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
9226         back chain only if back chain enabled.  Use s390_back_chain_rtx.
9227
9228 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9229
9230         * doc/trouble.texi: Remove obsolete information.  Update
9231         information on how to regenerate fixincluded headers.
9232
9233 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9234
9235         PR c/12951
9236         * doc/invoke.texi: Document that
9237         -Wno-error-implicit-function-declaration is not accepted.
9238
9239 2004-09-24  Richard Henderson  <rth@redhat.com>
9240
9241         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
9242         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
9243         on TARGET_MAX.
9244         (alpha_expand_mov): Allow unaligned vectors.
9245         (alpha_expand_unaligned_store): Use CONST0_RTX.
9246         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
9247
9248 2004-09-24 Jeff Law  <law@redhat.com>
9249
9250         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
9251         aliasing rules.
9252         (simplify_cond_and_lookup_avail_expr): Likewise.
9253
9254 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9255
9256         PR c/12802
9257         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
9258         title.  Document interaction with -fms-extensions.
9259         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
9260         section.
9261
9262 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9263
9264         PR c/12713
9265         * doc/extend.texi: Document interaction of attribute noreturn and
9266         longjmp.
9267
9268 2004-09-24  Richard Henderson  <rth@redhat.com>
9269
9270         PR rtl-opt/17503
9271         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
9272         (som_hash, som_eq): New.
9273         (init_subregs_of_mode, record_subregs_of_mode): New.
9274         (cannot_change_mode_set_regs): Rewrite for htab implementation.
9275         (invalid_mode_change_p): Likewise.
9276         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
9277         * flow.c (mark_used_regs): Likewise.
9278         (life_analysis): Use init_subregs_of_mode.
9279         * regs.h (subregs_of_mode): Remove.
9280         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
9281
9282 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9283
9284         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
9285         type with the copy of the conditional.
9286
9287 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9288
9289         PR tree-opt/16954
9290         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9291         Prevent renaming if the aliasing sets of the type which the
9292         pointer points to are different.
9293
9294 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9295
9296         PR c/17188
9297         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
9298         declarations of enumerators.
9299         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
9300         for redefinition.  Check for nested redefinition.
9301         (finish_struct): Don't check for nested redefinition.
9302         (start_enum): Check for nested redefinition.
9303
9304 2004-09-24  Devang Patel  <dpatel@apple.com>
9305
9306         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
9307         only when necesssary.
9308         (combine_blocks): Combine loop header and exit block.
9309
9310 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
9311
9312         * hooks.c (hook_tree_tree_bool_null): New.
9313         * hooks.h (hook_tree_tree_bool_null): Declare it.
9314         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
9315         * targhooks.c (default_fold_builtin): Remove.
9316         * targhooks.h (default_fold_builtin): Remove.
9317
9318 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9319
9320         PR rtl-optimization/17625
9321         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
9322
9323 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9324
9325         PR tree-opt/17624
9326         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
9327         Reject if any of the operands occur in an abnormal PHI.
9328
9329 2004-09-24  Andreas Schwab  <schwab@suse.de>
9330
9331         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
9332         rules.
9333
9334 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
9335
9336         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
9337         if the GNU assembler is used.
9338         (sparc-*-solaris2*): Likewise.
9339         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
9340         (dbxout_function_end): Protect N_ENSYM with it.
9341         (dbxout_begin_prologue): Protect N_BNSYM with it.
9342         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
9343         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
9344         * config/sparc/sol2-gas.h: New file.
9345
9346 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
9347
9348         PR bootstrap/17369
9349         * Makefile.in (@set_gcc_lib_path@): Added.
9350
9351         * configure.ac: Include ../config/gcc-lib-path.m4. Use
9352         TL_AC_GNU_MAKE_GCC_LIB_PATH.
9353         * configure: Regenerated.
9354
9355 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9356
9357         PR c/6980
9358         * c-typeck.c (build_c_cast): Improve wording of
9359         -Wbad-function-cast diagnostic.
9360
9361 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
9362
9363         PR target/17626
9364         * config/cris/cris.md (moverside, movemside): Rename variable
9365         "reg" to "otherop".  To generate canonical RTX, check that otherop
9366         isn't constant instead of checking that operand 1 is a register.
9367
9368 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
9369
9370         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
9371
9372 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
9373             Jakub Jelinek  <jakub@redhat.com>
9374
9375         * tree-flow.h (find_new_referenced_vars): Add prototype.
9376         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
9377         Move to...
9378         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
9379         ... here.
9380         (mark_new_vars_to_rename): Walk through all operands.
9381         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
9382         (execute_fold_all_builtins): Use it.
9383         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
9384
9385 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
9386
9387         * gthr-tpf.h: New file.
9388         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
9389         * gthr.h: Use gthr-tpf.h on TPF OS.
9390
9391 2004-09-23 Jeff Law  <law@redhat.com>
9392
9393         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
9394         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
9395         (substitute_and_fold):  Likewise.
9396         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
9397         except invariants from SSA_NAME_VALUE.
9398         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
9399         and SET_SSA_NAME_EQUIV.
9400         (restore_vars_to_original_value, record_const_or_copy): Likewise.
9401         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
9402         (record_equality, cprop_into_successor_phis): Likewise.
9403         (record_equivalences_from_stmt, cprop_operand): Likewise.
9404         (lookup_avail_expr): Likewise.
9405         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
9406         from SSA_NAME_VALUE.
9407         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
9408         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
9409         annotation from the VALUE_HANDLE field.
9410
9411 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
9412
9413         PR c++/13989
9414         PR c++/9844
9415         * tree.c (reconstruct_complex_type): Remove extra "this".
9416         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
9417         Add V4SFmode to case statement.
9418
9419 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
9420
9421         PR c/16833
9422         * doc/extend.texi, doc/invoke.texi: Document interaction of
9423         -fno-builtin with format checks.  Note that built-in functions
9424         have effects beyond generating code that avoids calls to those
9425         functions.
9426
9427 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
9428
9429         PR tree-optimization/17533
9430         * dominance.c (verify_dominators): Tolerate even more incorrect
9431         dominance data during error message printing.
9432         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
9433         and edges more correctly.
9434
9435 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
9436
9437         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
9438         New tree-codes.
9439         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
9440         MISALIGNED_INDIRECT_REF.
9441         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
9442         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
9443         Likewise.
9444         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
9445         (find_interesting_uses_address): Likewise.
9446         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
9447         (build_fold_addr_expr_with_type): Likewise.
9448         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
9449         * print-rtl.c (print_mem_expr): Likewise.
9450         * tree-dump.c (dequeue_and_dump): Likewise.
9451         * tree-eh.c (tree_could_trap_p): Likewise.
9452         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
9453         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
9454         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
9455         Likewise.
9456         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9457         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
9458         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
9459         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
9460         (add_address_candidates, rewrite_address_base): Likewise.
9461         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
9462         Likewise.
9463         * tree.c (staticp, build1_stat): Likewise.
9464
9465         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
9466         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
9467         * tree-ssa-operands.c (get_expr_operands): Likewise.
9468         * expr.c (expand_expr_real_1): Likewise.
9469
9470         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
9471         optabs.
9472         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
9473         for the new optabs.
9474         (expand_ternary_op): New function.
9475         * genopinit.c (optabs): Handle the new optabs.
9476         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
9477         (init_optabs): Initialize vec_realign_load_optab.
9478         (expand_ternary_op): New functions.
9479
9480         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
9481         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
9482         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
9483         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
9484         * target.h (struct vectorize): New member for struct gcc_target.
9485         (misaligned_mem_ok): New member for targetm.vectorize.
9486         (builtin_mask_for_load): Likewise.
9487         (builtin_mask_for_store): Likewise.
9488         * targethooks.c (default_vect_misaligned_mem_ok): New function.
9489         * targethooks.h (default_vect_misaligned_mem_ok): New function.
9490
9491         * config/rs6000/altivec.md (build_vector_mask_for_load): New
9492         define_expand.
9493         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
9494         (vec_realign_load_v16qi): New define_insn.
9495         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
9496         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
9497         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
9498         (altivec_builtin_mask_for_store): New variables.
9499         (rs6000_builtin_mask_for_load): New function. Implements
9500         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
9501         (rs6000_builtin_mask_for_store): New function. Implements
9502         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
9503         (rs6000_expand_builtin): Expand the target builtins
9504         builtin_mask_for_load and builtin_mask_for_store.
9505         (altivec_init_builtins): Initialize the new target builtins.
9506         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
9507         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
9508
9509         * tree-vectorizer.c (vect_create_data_ref): Renamed to
9510         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
9511         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
9512         (vectorizable_store): Call vect_create_data_ref_ptr with additional
9513         arguments, and create an indirect_ref with its return value data_ref.
9514         Check aligned_access_p.
9515         (vectorizable_load): Handle misaligned loads, using software-pipelined
9516         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
9517         vec_realign_load_optab is supported, or using a scheme without
9518         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
9519         misaligned_mem_ok is supported.
9520
9521         (vect_finish_stmt_generation): Typo.
9522         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
9523         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
9524         presence of misaligned loads.
9525         (vect_analyze_data_ref_access): Add check for constant init.
9526         (vect_get_symbl_and_dr): Remove duplicate line.
9527         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
9528
9529 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
9530
9531         * builtins.c: Fix a comment typo.
9532
9533 2004-09-23  Jan Hubicka  <jh@suse.cz>
9534
9535         * profile.c (branch_prob): Do not verify flow info in the middle of the
9536         pass.
9537
9538 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9539
9540         * cfgloop.h (update_single_exits_after_duplication): Declare.
9541         (loopify, split_loop_bb): Declaration changed.
9542         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
9543         of rtx.
9544         (loopify): Added redirect_all_edges argument.
9545         (update_single_exits_after_duplication): Export.
9546         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
9547         * tree-flow.h (tree_duplicate_loop_to_header_edge,
9548         tree_ssa_loop_version): Declare.
9549         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
9550         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
9551         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
9552         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
9553
9554         * tree-ssa-loop-unswitch.c: New file.
9555         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
9556         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
9557         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
9558         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
9559         * tree-pass.h (pass_unswitch): Declare.
9560         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
9561         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
9562         * doc/passes.texi: Documen tree level loop unswitching.
9563
9564 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
9565
9566         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
9567
9568 2004-09-22  Eric Christopher  <echristo@redhat.com>
9569
9570         * builtins.c (simplify_builtin_va_start): Remove.
9571         (simplify_builtin): Ditto.
9572         (fold_builtin_strchr): Ditto.
9573         (simplify_builtin_*): Rename remainders to fold_builtin_*.
9574         (expand_builtin): Fix up for above changes.
9575         (fold_builtin_1): Add new folders. Change for above.
9576         (expand_builtin_va_start): Call fold_builtin_next_arg.
9577         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
9578         * tree.h: Remove prototype for simplify_builtin.
9579
9580 2004-09-23  Jan Hubicka  <jh@suse.cz>
9581
9582         PR debug/17389
9583         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
9584         of fully inlined functions.
9585         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
9586         inlined.
9587
9588         * cfgexpand.c (add_reg_br_prob_note): New function.
9589         (expand_gimple_cond_expr): Use it.
9590         (tree_expand_cfg): No longer kill the profile.
9591         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
9592         only if it is present.
9593         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
9594         * predict.c (combine_predictions_for_insn): Set the probabilities
9595         based on REG_BR_PROB note if present.
9596         * predict.c (branch_prob): Profile is read only with
9597         flag_branch_probabilities.
9598
9599 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
9600
9601         * aclocal.m4: Add in gettext's m4 includes.
9602         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
9603         * configure.ac: Add in check for iconv.h
9604         * configure: Regenerate.
9605
9606 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
9607
9608         * aclocal.m4: Update for rename of gettext-sister.m4.
9609
9610 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
9611
9612         Fix PR tree-optimization/17587
9613         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
9614         (insert_aux): Instead of here.
9615
9616 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
9617
9618         PR tree-optimization/16721
9619         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
9620         * tree-ssa-alias.c (create_memory_tag): Move setting of
9621         TREE_THIS_VOLATILE ...
9622         (get_tmt_for): ... here.
9623
9624 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9625
9626         * config/sparc/sparc.md (cmove splitter): Fix formatting.
9627         (conditional_trap expander): Reject inappropriate CCmodes.
9628         (conditional trap insn): Use V9 syntax if possible.
9629
9630 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9631
9632         PR c/16566
9633         * c-typeck.c (build_component_ref): Don't special-case
9634         COMPOUND_EXPR.
9635
9636 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
9637
9638         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
9639         returns NULL.
9640
9641 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
9642
9643         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
9644         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
9645         TRUTH_XOR_EXPR): Mention the restriction on types.
9646
9647 2004-09-22  Matt Austern  <austern@apple.com>
9648
9649         * config/darwin.c (darwin_make_decl_one_only):
9650         Allow coalesced symbol to appear in static archive's table of contents
9651
9652 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
9653
9654         PR tree-optimization/17512
9655         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
9656         special cases.
9657
9658 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
9659
9660         * dbxout.c (get_lang_number): Do not define if
9661         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
9662
9663 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
9664
9665         PR target/15583
9666         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
9667         builtin_define ("__USE_INIT_FINI__").
9668
9669 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
9670
9671         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
9672         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
9673         * config/s390/s390.h (TARGET_TPF): New macro.
9674         * config/s390/s390.md ("eh_return"): New expander.
9675         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
9676         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
9677         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
9678         * config/s390/tpf.h (TARGET_TPF): Define to 1.
9679         (STACK_POINTER_OFFSET): Increase to 448.
9680         (TARGET_DEFAULT): Set -mtpf-trace on as default.
9681         (TPF_LOC_DIFF_OFFSET): New macro.
9682         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
9683         encoding.
9684         (__isPATrange): Add prototype.
9685         (MD_FALLBACK_FRAME_STATE_FOR): Define.
9686         * config/s390/tpf-eh.c: New file.
9687
9688 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
9689
9690         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
9691         operands in an integer comparison.
9692         * tree-cfg.c (find_taken_edge): Call fold() to determine
9693         whether the predicate is known.
9694
9695 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
9696
9697         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
9698         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
9699         Create build and doc directories along with the language directories.
9700         Don't create doc directory separately.
9701         * configure: Regenerate.
9702         * Makefile.in: Create all object and executables files built
9703         with the build compiler in a build/ directory.
9704         (genobjnames): Add missing build objects.
9705         (STAGESTUFF): Don't stage the gen* programs.
9706         (ggc-none.o): Define dependencies for the target compiler.
9707         (build-print-rtl.o): Rename to build/print-rtl.o.
9708         (build-errors.o): Rename to build/errors.o.
9709         (build-varray.o): Rename to build/varray.o.
9710         (maintainerclean): Delete the contents of the build directory.
9711         ($(genobjs): %.o): Explicitly use -o.
9712         (build/insn-conditions.o): Delete specfic rule to use generic rule.
9713         (build/gengtype-lex.o): Likewise.
9714         (build/gengtype-yacc.o): Likewise.
9715         (build/gcov-iov.o): Likewise.
9716
9717 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
9718
9719         * vec.h (VEC_space): Return true if there _is_ space.
9720         (VEC_reserve): Adjust.
9721
9722 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
9723
9724         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
9725         use FPRs for scalar, complex and vector types only.
9726
9727 2004-09-21 Jeff Law  <law@redhat.com>
9728
9729         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
9730         the opt_stats_d structure.
9731         (vrp_data): Change from a varray into a hash table.
9732         (vrp_hash_elt): New structure for elements in the vrp hash table.
9733         (vrp_hash, vrp_eq):New functions for hashing and testing equality
9734         in the vrp hash table.
9735         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
9736         initialization slightly to make it easier to read.  No longer need
9737         to grow/clear the varray.  Instead empty and delete the hash table.
9738         (dom_opt_finalize_block): Update due to change of VRP_DATA from
9739         a varray to a hash table.
9740         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
9741
9742         * tree-ssa-ccp.c (get_default_value): If we have a constant
9743         value recorded for an SSA_NAME, then use that constant as
9744         the initial lattice value.
9745         (substitute_and_fold): Transfer equivalences discovered into
9746         SSA_NAME_EQUIV.
9747
9748         * tree.h (SSA_NAME_EQUIV): Add comments.
9749         (SET_SSA_NAME_EQUIV): Similarly.
9750
9751 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
9752
9753         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
9754
9755         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
9756
9757 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
9758
9759         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
9760         (finish_decl): Likewise.
9761
9762 2004-09-21  Devang Patel  <dpatel@apple.com>
9763
9764         * tree.def (VEC_COND_EXPR): New tree node.
9765         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
9766
9767 2004-09-21  Stan Shebs  <shebs@apple.com>
9768
9769         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
9770         * config/rs6000/darwin-world.asm: Likewise.
9771
9772 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
9773
9774         * tree-ssa.c (verify_def): Use print_generic_stmt,
9775         not debug_generic_stmt.
9776         (verify_use): Ditto.
9777         (verify_phi_args): Ditto.
9778         (verify_ssa): Ditto.
9779
9780 2004-09-21  Paul Brook  <paul@codesourcery.com>
9781
9782         * varasm.c (default_assemble_integer): Return false for values wider
9783         than the target word size.  Works around GAS bug.
9784
9785 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
9786
9787         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
9788         gets value 0.
9789         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
9790         if it has value 0.
9791
9792 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
9793
9794         * c-typeck.c (build_function_call): Give name of object
9795         we are attempting to call in error message.
9796         * c-objc-common.c (c_tree_printer): Call pp_expression,
9797         not return false, for 'E' case.
9798
9799 2004-09-21  Steven Bosscher  <stevenb@suse.de>
9800
9801         PR rtl-optimization/17482
9802         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
9803         load_killed_in_block_p): Clarify comments.
9804         (record_last_reg_set_info): Make static inline.
9805         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
9806         (record_opr_changes): New function to replace the above.
9807         (compute_hash_table): Clarify comments.  Use record_opr_changes.
9808         (reg_set_between_after_reload_p): Clean up.
9809         (reg_used_between_after_reload_p): Likewise.
9810         (eliminate_partially_redundant_load): Clarify comments.
9811
9812 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
9813
9814         PR rtl-optimization/17266
9815         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
9816
9817 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
9818
9819         PR rtl-optimization/14851
9820         * rtlanal.c (commutative_operand_precedence): Calculate
9821         precedence of stripped constant.
9822
9823 2004-09-20 Jeff Law  <law@redhat.com>
9824            Jan Hubicka  <jh@suse.cz>
9825
9826         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
9827         initialize key elements here.
9828         (release_ssa_name): Zero the released SSA_NAME here.
9829         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
9830         (struct tree_ssa_name): Add new "equiv" field.
9831         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
9832         (tree_ssa_dominator_optimize): No longer allocate, resize or
9833         clear CONST_AND_COPIES.
9834         (get_value_for, set_value_for): Kill.
9835         (thread_across_edge): Get/set the equivalency using
9836         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
9837         (restore_vars_to_original_value): Likewise.
9838         (record_equivalences_from_phis): Likewise.
9839         (record_dominating_conditions): Likewise.
9840         (record_const_or_copy, record_equality): Likewise.
9841         (lookup_avail_expr): Likewise.
9842         (record_equivalences_from_stmt, cprop_operand): Likewise.
9843         (cprop_into_successor_phis): No longer need to pass around
9844         CONST_AND_COPIES.  Callers updated. Get equivalences via
9845         SSA_NAME_EQUIV.
9846         (cprop_into_phis): Likewise.
9847
9848 2004-09-20  Matt Austern <austern@apple.com>
9849             Zack Weinberg  <zack@codesourcery.com>
9850
9851         * c-common.c (fix_string_type): Build the unqualified array
9852         type unconditionally, then use c_build_qualified_type to get
9853         the proper const-qualified variant, and set its
9854         TYPE_MAIN_VARIANT to refer to the unqualified type.
9855         * c-lex.c (c_lex_return_raw_string): New global.
9856         (c_lex_with_flags): Honor it.
9857         * c-pragma.h: Declare it.
9858
9859 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
9860
9861         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
9862
9863 2004-09-21  Jan Hubicka  <jh@suse.cz>
9864
9865         PR middle-end/17126
9866         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
9867         (tree_rest_of_compilation): Cleanup.
9868
9869 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
9870
9871         * config/s390/s390.c (s390_select_rtx_section): Remove.
9872         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
9873
9874 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9875
9876         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
9877         note to pretend a direct save from the original register when an
9878         intermediate register is used for the save.
9879
9880 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9881
9882         * tsystem.h (alloca): Provide a default definition.
9883
9884         Revert:
9885         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9886             * unwind-dw2.c: Call __builtin_alloca, not alloca.
9887
9888 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
9889
9890         PR tree-opt/17558
9891         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
9892         aliasing sets are the same rather than just conflicting.
9893
9894 2004-09-20  Jan Hubicka  <jh@suse.cz>
9895
9896         PR middle-end/16460
9897
9898         * cgraph.c (cgraph_unnest_node): New function.
9899         (c_finalize): Rename to ....
9900         (c_warn_unused_result_recursivly): ... this one; do only the warning
9901         (finish_function): Finalize the toplevel function; do not lower nested tree.
9902         * cgraph.h (cgraph_unnest_node): Declare.
9903         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
9904         nestedness datastructure.
9905         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
9906         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
9907         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
9908
9909 2004-09-20  Richard Henderson  <rth@redhat.com>
9910
9911         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
9912         from some_small_symbolic_operand_1; export.
9913         (some_small_symbolic_operand): Remove.
9914         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
9915         extra C check.
9916         * config/alpha/predicates.md (some_small_symbolic_operand): New.
9917
9918 2004-09-20  Jan Hubicka  <jh@suse.cz>
9919
9920         * predict.c (return_prediction): New function.
9921         (apply_return_prediction): Likewise.
9922         (tree_bb_level_predictions): Likewise.
9923         (tree_estimate_probability): Add noreturn exit edges; call
9924         bb_level_predictions; fix logic of return heuristics.
9925         (predict_paths_leading_to):  Rescuesce from old CVS version of
9926         process_note_prediction function.
9927         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
9928
9929 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
9930
9931         * config/s390/s390.c (s390_frame_info): Added alignment statement for
9932         floating point register area on stack.
9933
9934 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
9935
9936         * predict.c (expr_expected_value): Use *_CLASS_P macros.
9937
9938 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
9939
9940         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
9941         generating useless garbage.
9942
9943 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
9944
9945         * builtins.c (fold_builtin): Call the new omonymous
9946         target hook for machine-dependent built-ins.
9947         * target-def.h (TARGET_FOLD_BUILTIN): New.
9948         * target.h (struct gcc_target): Add the fold_builtin hook.
9949         * targhooks.c (default_fold_builtin): New.
9950         * targhooks.h (default_fold_builtin): Declare it.
9951
9952 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
9953
9954         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
9955         comment typos.
9956
9957 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
9958
9959         PR target/17565
9960         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
9961
9962 2004-09-20  Jan Hubicka  <jh@suse.cz>
9963
9964         * predict.c (estimate_probability): Remove unnecesary code.
9965
9966 2004-09-19  Ira Rosen  <irar@il.ibm.com>
9967
9968         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
9969         (STMT_VINFO_VECT_DR_BASE): Declare.
9970         (VECT_SMODULO): Declare.
9971         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
9972         (vect_compute_array_base_alignment): New function.
9973         (vect_analyze_data_ref_access): Check array indices. Remove one
9974         dimensional arrays restriction.
9975         (vect_get_ptr_offset): New function.
9976         (vect_get_symbl_and_dr): New function.
9977         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
9978         (former name vect_get_base_decl_and_bit_offset).
9979         (vect_create_index_for_array_ref): Removed.
9980         (vect_create_index_for_vector_ref): New function.
9981         (vect_create_addr_base_for_vector_ref): New function.
9982         (vect_create_data_ref): Handle additional data refs. Call
9983         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
9984         (vect_compute_data_ref_alignment): Support the changes. Call
9985         vect_get_base_and_bit_offset.
9986         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
9987         data refs. Store vect_dr_base.
9988         (vect_analyze_data_ref_accesses): Support nonconstant init.
9989         (new_stmt_vec_info): Initialize vect_dr_base field.
9990         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
9991         (get_vectype_for_scalar_type): Check for BLKmode.
9992         * tree-chrec.h (initial_condition_in_loop_num): Declare.
9993         * tree-chrec.c (initial_condition_in_loop_num): New function.
9994         (chrec_component_in_loop_num): New function.
9995         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
9996         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
9997         to be pointer to varray_type.
9998
9999 2004-09-19  Jan Hubicka  <jh@suse.cz>
10000
10001         * basic-block.h (update_bb_profile_after_threading): Declare.
10002         * cfg.c (update_bb_profile_after_threading): Break out from ...
10003         * cfgcleanup.c (try_forward_edges): ... here; use it.
10004         * tree-ssa-dom.c (thread_across_edge): Use it.
10005         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
10006         profile of the new BB.
10007
10008 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
10009
10010         * tree-ssa-pre.c (insert_into_set): Don't put
10011         is_gimple_min_invariant values into the set.
10012
10013 2004-09-19  Andreas Jaeger  <aj@suse.de>
10014
10015         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
10016         prototype.
10017
10018 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10019
10020         * config/cris/cris.h: Preserve the original spelling in a
10021         quote.
10022
10023 2004-09-18 Jeff Law  <law@redhat.com>
10024
10025         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
10026         global varrays to replace the block local varrays.
10027         (struct dom_walk_block_data): Remove, no longer used.
10028         (get_eq_expr_value): No longer need to pass around pointers to local
10029         varrays.  Callers updated.  Unused markers added to unused parameters.
10030         (record_range, record_equivalences_from_stmt): Likewise.
10031         (record_equivalences_from_incoming_edge): Likewise.
10032         (record_var_is_nonzero): Likewise.  Update now that we have a
10033         single global varray of SSA_NAMEs that need restoring.
10034         (dom_opt_initialize_block_local_data): Kill, no longer used.
10035         (tree_ssa_dominator_optimize): Initialize new global varrays.
10036         Update callbacks in dominator walker structure.
10037         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
10038         VRP_VARIABLES_STACK.
10039         (restore_nonzero_vars_to_original_value): Update now that we have
10040         a single global varray of SSA_NAMEs that need restoring.
10041         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
10042         Remove unused variables.
10043         (optimize_stmt): Remove unused variable.
10044
10045 2004-09-18  Jan Hubicka  <jh@suse.cz>
10046
10047         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
10048
10049         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
10050         verify_cgraph call.
10051
10052 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10053
10054         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
10055         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
10056         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
10057         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
10058         tree-ssa-operands.c, tree-ssa-phiopt.c,
10059         tree-ssa-threadupdate.c: Fix comment typos.
10060
10061 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10062
10063         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
10064         config/arm/README-interworking, config/arm/arm-cores.def,
10065         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
10066         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
10067         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
10068         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
10069         config/frv/frv.md, config/i386/winnt.c,
10070         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
10071         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
10072         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
10073         config/mcore/mcore.c, config/mips/mips.h,
10074         config/mn10300/mn10300.md, config/pa/pa.c,
10075         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
10076         config/rs6000/rs6000.c, config/sh/symbian.c,
10077         config/sparc/sparc.h: Fix comment typos.  Follow spelling
10078         conventions.
10079
10080 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10081
10082         PR c/17424
10083         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
10084
10085 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
10086
10087         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
10088         remove TREE_ADDRESSABLE from RESULT_DECL.
10089
10090 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
10091
10092         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
10093
10094 2004-09-18  Jan Hubicka  <jh@suse.cz>
10095
10096         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
10097         NULL.
10098         * tree-ssa-alias.c (init_alias_info): Likewise.
10099         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
10100         (verify_ssa): Likewise.
10101         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
10102
10103 2004-09-18  Jan Hubicka  <jh@suse.cz>
10104
10105         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
10106         huge offset.
10107
10108 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10109
10110         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
10111         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10112         DW_EH_PE_sdata* for data.
10113         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
10114
10115 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
10116
10117         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
10118         shared anyway.
10119
10120         PR pch/13361
10121         * c-typeck.c (constructor_asmspec): Delete.
10122         (struct initializer_stack): Delete field 'asmspec'.
10123         (start_init): Delete saving of asmspec.
10124         (finish_init): Don't update constructor_asmspec.
10125         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10126         * stmt.c (expand_asm): Duplicate strings from tree.
10127         (expand_asm_operands): Likewise.
10128         * tree.c (tree_size): Update computation of size of STRING_CST.
10129         (make_node): Don't make STRING_CST nodes.
10130         (build_string): Allocate string with tree node.
10131         (tree_code_size): Clean up assertions, don't allow requests
10132         for "the size of a STRING_CST".
10133         * tree.def (STRING_CST): Update comment.
10134         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10135         (tree_string): Place contents of string in tree node.
10136         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10137         from tree.
10138
10139 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
10140
10141         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
10142         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
10143
10144 2004-09-17  Jones Desougi  <jones@ingate.com>
10145
10146         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
10147         * configure, config.in: Regenerate.
10148
10149 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
10150
10151         * tree.c, tree.h (tree_class_strings): Make array const.
10152         Reindent per coding convention.  Move asterisk to proper place
10153         per coding convention.
10154
10155 2004-09-18  Andreas Schwab  <schwab@suse.de>
10156
10157         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
10158         (tree-vectorizer.o): Likewise.
10159         (targhooks.o): Likewise.
10160
10161 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
10162             Zack Weinberg  <zack@codesourcery.com>
10163
10164         * alias.c (find_base_decl): Remove unreachable case '3' block.
10165         * expr.c (safe_from_p): Abort if passed a type.
10166         * tree-gimple.c (recalculate_side_effects): Abort if passed
10167         anything other than an expression.
10168         * tree-ssa-pre.c (phi_translate): Return expr immediately if
10169         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
10170         Abort on un-handled tree classes.
10171         (valid_in_set): Likewise.
10172         * tree.c (tree_code_class_strings): New static data.
10173
10174         * tree.h (enum tree_code_class): New.
10175         (tree_code_class_strings): Declare.
10176         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
10177         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
10178         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
10179         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
10180         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
10181
10182         * tree.def, c-common.def, objc/objc-tree.def: Use
10183         tree_code_class enumeration constants instead of code letters.
10184
10185         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
10186         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
10187         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
10188         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
10189         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
10190         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
10191         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
10192         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
10193         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
10194         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
10195         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
10196         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
10197         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
10198         Update to match.
10199
10200         * LANGUAGES: Add note about change.
10201
10202 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
10203
10204         PR tree-optimization/17319
10205         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
10206         examine pointers on the LHS of an assignment.
10207         (collect_points_to_info_r): Handle RETURN_EXPR.
10208
10209 2004-09-17 Jeff Law  <law@redhat.com>
10210
10211         * tree-ssa-dom.c (const_and_copies_stack): New.
10212         (dom_walk_block_data): Remove const_and_copies field.
10213         (record_const_or_copy): No longer need to pass in varray_type *.
10214         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
10215         Callers updated.
10216         (record_equality): Similarly.
10217         (restore_vars_to_original_value): Similarly.  Revamp to use new
10218         single global stack rather than per-block stacks.
10219         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
10220         (thread_across_edge): Remove now unused parameters.
10221         (dom_opt_initialize_block_local_data): No longer test the block
10222         local CONST_AND_COPIES.
10223         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
10224
10225 2004-09-17  Jan Hubicka  <jh@suse.cz>
10226
10227         PR tree-optimization/17509
10228         * tree-optimize.c (update_inlined_to_pointers): New function.
10229         (tree_rest_of_compilation): Use it.
10230
10231 2004-09-17  Devang Patel  <dpatel@apple.com>
10232
10233         * dbxout.c (get_lang_number): New.
10234         (dbxout_init): Include lang number in N_SO  stab.
10235         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
10236         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
10237
10238 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
10239
10240         PR tree-optimization/17273
10241         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
10242         replacement is a constant.
10243
10244 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
10245
10246         * c-tree.h (enum c_typespec_keyword): New.
10247         (struct c_declspecs): Adjust description of "type".  Remove
10248         specbits, explicit_int_p and explicit_char_p.  Rename
10249         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
10250         short_p, signed_p, unsigned_p and complex_p.
10251         (finish_declspecs): New.
10252         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
10253         typename): Call finish_declspecs.
10254         * c-decl.c (finish_declspecs): New.
10255         (declspecs_add_type): Check for combinations which cannot occur in
10256         valid specifier lists.  Update comments.
10257         (shadow_tag_warned): Remove checks done in finish_declspecs.
10258         Don't report useless type name if type defaulted to int.
10259         (grokdeclarator): Remove checks and actions done in
10260         finish_declspecs.  Don't allow for type being NULL.  Update for
10261         datastructures changes.  Initialize decl_attr.
10262         (build_null_declspecs, quals_from_declspecs): Update for
10263         datastructures changes.
10264
10265 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
10266
10267         * doc/extend.texi: Fix duplicated word.
10268
10269 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
10270
10271         * doc/invoke.texi: Remove stray explanation on
10272         -freduce-all-givs and -fmove-all-movables.
10273
10274 2004-09-17  James Morrison  <phython@gcc.gnu.org>
10275
10276         * doc/cfg.texi: Use @smallexample.
10277         * doc/md.texi: Likewise.
10278         * doc/tree-ssa.texi: Likewise.
10279         * doc/extend.texi: Likewise.  Use @r{} in comments.
10280         * doc/trouble.texi: Use @r{} in comments.
10281
10282 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
10283
10284         * configure.ac (gcc_cv_gld_version): Handle whitespace before
10285         "VERSION=".
10286         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
10287         * configure: Regenerate.
10288
10289 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
10290
10291         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
10292         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
10293         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
10294         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
10295         slashes in substitutions.
10296         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
10297
10298 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
10299
10300         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
10301         gimplify.c, lambda-code.c, optabs.c, predict.c,
10302         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
10303         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
10304         conventions.
10305
10306 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
10307
10308         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
10309         doc/extend.texi, doc/install.texi, doc/invoke.texi,
10310         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
10311         doc/trouble.texi: Use @option around options.
10312
10313 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
10314
10315         * Makefile.in (gen-protos.o): Depend on errors.h.
10316
10317 2004-09-17  Steven Bosscher  <stevenb@suse.de>
10318
10319         PR tree-optimization/17513
10320         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
10321         for successors of the entry block.
10322
10323 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
10324
10325         PR rtl-optimization/15187
10326         * ifcvt.c (noce_try_cmove_arith): Exit early if total
10327         insn_rtx_cost of both branches > BRANCH_COST
10328
10329 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
10330
10331         PR tree-optimization/17528
10332         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
10333         erase the may-alias set for a tag when merging it with
10334         another.
10335
10336 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
10337
10338         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
10339         for 32-bit TARGET_SHMEDIA.
10340         (call_value): Likewise.
10341
10342 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
10343
10344         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
10345         test apply only to TREE_STATIC and DECL_EXTERNAL.
10346
10347 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10348
10349         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
10350         * basic-block.h (get_dominated_by_region): Declare.
10351         * dominance.c (get_dominated_by_region): New function.
10352         * tree-cfg.c: Include cfglayout.h.
10353         (tree_duplicate_bb): Duplicate also phi nodes.
10354         (struct ssa_name_map_entry): New type.
10355         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
10356         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
10357         allocate_ssa_names, rewrite_to_new_ssa_names_def,
10358         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
10359         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
10360         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
10361         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
10362         rewrite_to_new_ssa_names, allocate_ssa_names,
10363         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
10364         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
10365         (copy_loop_headers): Use tree_duplicate_sese_region.
10366
10367 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
10368
10369         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
10370
10371 2004-09-16 Jeff Law  <law@redhat.com>
10372
10373         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
10374         (rewrite_block_data): Remove, no longer used.
10375         (rewrite_initialize_block_local_data): Remove, no longer used.
10376         (rewrite_initialize_block): Mark parameters as unused as needed.
10377         Change references to the block local block_defs to be block_defs_stack.
10378         Push a marker onto the block_defs_stack.
10379         (ssa_rewrite_initialize_block): Similarly.
10380         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
10381         (ssa_register_new_def): No longer needs varray argument.  Use
10382         block_defs_stack instead.  No longer handle possibly null block_defs
10383         varray.  Reverse order of items we push on the stack to make it
10384         easier to identify our marker.
10385         (register_new_def): No longer handle possibly null block_defs
10386         varray.
10387         (rewrite_finalize_block): Revamp to look for markers in the global
10388         block_defs_stack varray rather than wiping a block local varray.
10389         Mark arguments as unused as needed.
10390         (ssa_rewrite_finalize_block): Similarly.
10391         (rewrite_into_ssa): Update initialization of dom walker structure
10392         to reflect that we don't need block local data anymore.  Initialize
10393         the block_defs_stack varray.
10394         (rewrite_ssa_into_ssa): Similarly.
10395         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
10396         (struct dom_walk_data): Kill block_defs field.
10397         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
10398         (thread_across_edge): Use the global block_defs_stack instead of
10399         the old block_defs varray.
10400         (dom_opt_initialize_block_local_data): Update now that we don't have
10401         block_defs field to check anymore.
10402         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
10403         (restore_currdefs_to_original_value): Use the new block_defs_stack
10404         instead of a block local varray.
10405         (dom_opt_finalize_block): Similarly.
10406         (record_equivalencs_from_phis): Similarly.
10407         (optimize_stmt, register_definitions_for_stmt): Similarly.
10408
10409 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
10410
10411         PR tree-optimization/17517
10412         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10413         coalesce same-root variables without checking for abnormal PHI usage.
10414
10415 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
10416
10417         * cfgloop.h (duplicate_loop):  Add prototype.
10418         * cfgloopmanip.c (duplicate_loop): Make non-static.
10419         * lambda-code.c (perfect_nestify): Factor out test whether
10420         we can handle this loop into separate function.
10421         Call it.
10422         (can_convert_to_perfect_nest): New function.
10423         (replace_uses_of_x_with_y): Add modify_stmt call.
10424         * tree-loop-linear.c (linear_transform_loops): Call
10425         rewrite_into_loop_closed_ssa and free_df.
10426
10427 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
10428
10429         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
10430         loop invariant as well.
10431         (perfect_nestify): new function.
10432         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
10433         upper bounds, and steps.
10434         Set outerinductionvar properly.
10435         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
10436         parameters.
10437         Return NULL if we need a perfect loop and can't make one.
10438         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
10439         (not_interesting_stmt): New function.
10440         (phi_loop_edge_uses_def): Ditto.
10441         (stmt_uses_phi_result): Ditto.
10442         (stmt_is_bumper_for_loop): Ditto.
10443         (perfect_nest_p): Ditto.
10444         (nestify_update_pending_stmts): Ditto.
10445         (replace_uses_of_x_with_y): Ditto.
10446         (stmt_uses_op): Ditto.
10447         (perfect_nestify): Ditto.
10448         * lambda-mat.c (lambda_matrix_id_p): New function.
10449         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
10450         * lambda.h: Update prototypes.
10451         * tree-loop-linear (linear_transform_loop): Use new
10452         perfect_nest_p. Detect and ignore identity transform.
10453         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
10454
10455 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
10456
10457         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
10458         Gather also strides of accessed data.  Pass in the data references
10459         array.
10460         (try_interchange_loops): Add a new heuristic for handling the temporal
10461         locality.  Pass in the data references array.
10462         (linear_transform_loops): Pass the data references array to
10463         try_interchange_loops.
10464
10465 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
10466
10467         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
10468
10469 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
10470
10471         * doc/c-tree.texi (Classes): Remove index entries for
10472         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
10473
10474 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10475
10476         * fold-const.c (fold): Fold difference of addresses.
10477         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
10478         get_inner_reference.
10479         * tree-ssa-loop-ivopts.c (peel_address): Removed.
10480         (ptr_difference_const): Moved to fold-const.c.
10481         (split_address_cost): Use get_inner_reference instead of peel_address.
10482         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
10483         * tree.h (ptr_difference_const): Export.
10484
10485         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
10486         variable type to the dump.  Fix indentation.
10487         (idx_find_step): Handle nonconstant array_ref_element_size and
10488         array_ref_low_bound.
10489         (idx_record_use): Handle array_ref_element_size and
10490         array_ref_low_bound.
10491         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
10492         statements correctly.
10493         (get_computation_at, iv_value): Do not unshare expressions here.
10494         (rewrite_use_outer): Unshare the expression before it is emitted
10495         to code.
10496         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
10497         Moved to tree.c.
10498         * tree.c (unsigned_type_for, signed_type_for): Moved from
10499         tree-ssa-loop-niter.c.  Use langhooks.
10500         * tree.h (signed_type_for): Export.
10501
10502 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
10503
10504         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
10505         prototype.
10506
10507 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
10508
10509         PR target/11572
10510         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
10511         Add two parameters to extra_includes.
10512         (C_INCPATH_INIT): Remove.
10513         * c-incpath.c (register_include_chains): Call extra_pre_includes
10514         before adding the standard include directory.
10515         Update call to extra_includes.
10516         (!defined TARGET_EXTRA_INCLUDES): Update
10517         hook_void_charptr_charptr_int and add !define
10518         TARGET_EXTRA_PRE_INCLUDES.
10519         (!define TARGET_EXTRA_INCLUDES): Define as
10520         hook_void_charptr_charptr_int.
10521         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
10522         (target_c_incpath): Always declare.
10523         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
10524         empty function.
10525         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
10526         * config/darwin.h: (darwin_register_frameworks): Update for
10527         the two new parameters.
10528         (darwin_register_objc_includes): Add prototype.
10529         (TARGET_EXTRA_PRE_INCLUDES): Define.
10530         * config/darwin-c.c (darwin_register_objc_includes): New function.
10531         (darwin_register_frameworks): Update for the two new parameters.
10532         (target_c_incpath): Remove.
10533         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
10534         the compile line.
10535         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
10536         parameters.
10537         (TARGET_EXTRA_PRE_INCLUDES): Document.
10538
10539         * gcc.c (spec_function): Add replace-outfile.
10540         (replace_outfile_spec_function): New function.
10541         * config/darwin.h (LINK_SPEC): Add replace
10542         -lobjc with -lobjc-gnu if -fgnu-runtime is
10543         supplied.
10544         * invoke.texi (replace-outfile): Document.
10545
10546 2004-09-13  Jan Hubicka  <jh@suse.cz>
10547
10548         * predict.c (expr_expected_value, strip_builtin_expect): New function.
10549         (tree_predict_by_opcode): Use it.
10550         (tree_estimate_probability): Add, for now disabled,
10551         strip_builtin_expect call.
10552
10553 2004-09-15  James E Wilson  <wilson@specifixinc.com>
10554
10555         PR target/17455
10556         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
10557         if current_function_decl is a sibcall.
10558
10559 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
10560
10561         * varasm.c (default_function_rdodata_section): Make sure to pass
10562         along a decl for a link-once section.
10563
10564 2004-09-15  Richard Henderson  <rth@redhat.com>
10565
10566         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
10567         warning with code disable.  Fix formatting.
10568
10569 2004-09-15  Steven Bosscher  <stevenb@suse.de>
10570
10571         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
10572         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
10573         after propagating into an ADDR_EXPR.
10574
10575 2004-09-15  Andrew Pinski  <apinski@apple.com>
10576
10577         PR rtl-opt/17427
10578         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
10579         Move it out of gcc_assert.
10580
10581 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
10582
10583         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
10584         except.c, fold-const.c, function.c, langhooks.c, params.c,
10585         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
10586         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
10587         for quoting in diagnostics going through pretty-print.c.  Use ''
10588         for quoting in other diagnostic text.
10589         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
10590         translation.
10591         * Makefile.in (langhooks.o): Update dependencies.
10592         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
10593         formats.
10594
10595 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
10596
10597         * configure.ac: Check for COMDAT support.  Robustify check for
10598         SHF_MERGE support.
10599         * configure: Regenerated.
10600         * config.in: Likewise.
10601         * langhooks-def.h (lhd_comdat_group): New function.
10602         (LANG_HOOKS_COMDAT_GROUP): New macro.
10603         (LANG_HOOKS_DECLS): Use it.
10604         * langhooks.c (lhd_comdat_group): Define.
10605         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
10606         * output.h (named_section_flags): Make it a macro.
10607         (named_section_real): New function.
10608         (default_no_named_section): Add decl parameter.
10609         (default_elf_asm_named_section): Likewise.
10610         (default_coff_asm_named_section): Likewise.
10611         (default_pe_asm_named_section): Likewise.
10612         * target.h (gcc_target): Adjust type of named_section.
10613         * varasm.c (named_section_flags): Rename to named_section_real.
10614         Add decl parameter.
10615         (default_no_named_section): Add decl parameter.
10616         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
10617         with the case that ASM_COMMENT_START is "@".
10618         (default_coff_asm_named_section): Add decl parameter.
10619         (default_pe_asm_named_section): Likewise.
10620         * config/alpha/alpha.c (vms_asm_named_section): Add decl
10621         parameter.
10622         (unicosmk_asm_named_section): Likewise.
10623         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
10624         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
10625         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
10626         * config/cris/cris-protos.h (cris_target_asm_named_section):
10627         Likewise.
10628         * config/cris/cris.c (cris_target_asm_named_section):
10629         Likewise.
10630         * config/darwin/darwin-protos.h (darwin_asm_named_section):
10631         Likewise.
10632         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
10633         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
10634         * config/i386/i386-protos.h (i386_pe_asm_named_section):
10635         Likewise.
10636         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
10637         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
10638         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
10639         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
10640         Likewise.
10641         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
10642         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
10643         * cp/cp-tree.h (cxx_comdat_group): Declare.
10644         * cp/decl.c (cxx_comdat_group): New function.
10645
10646 2004-09-15  Jan Hubicka  <jh@suse.cz>
10647
10648         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
10649         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
10650
10651         * tree-cfg.c (remove_bb): Release SSA defs.
10652
10653 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
10654
10655         * doc/tm.texi: Follow spelling conventions.
10656
10657 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
10658
10659         * tree-ssa-dom.c: Fix comment typos.
10660
10661 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
10662
10663         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
10664         include ccr.
10665         (ppc_fallback_frame_state): Save location of CR.
10666
10667 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
10668
10669         * expr.c (string_constant): Handle also read-only variables
10670         initialized to string literals.
10671
10672         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
10673         into memcpy (x, y, 1) if memcpy can be expanded inline.
10674
10675 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10676
10677         PR tree-optimization/17468
10678         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
10679         definition inside a block precede uses.
10680         * tree-tailcall.c (adjust_return_value): Emit statements in the
10681         correct order.
10682
10683 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
10684
10685         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
10686
10687 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
10688
10689         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
10690
10691 2004-09-14 Jeff Law  <law@redhat.com>
10692
10693         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
10694         (struct dom_walk_block_data): Remove avail_exprs member.
10695         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
10696         (lookup_avail_expr): No longer need to pass in address of
10697         the block local available exprs stack.  All callers changed.
10698         (simplify_cond_and_lookup_avail_expr): Similarly.
10699         (simplify_switch_and_lookup_avail_expr): Similarly.
10700         (get_eq_expr_value, record_cond): Likewise.
10701         (record_dominating_conditions): Likewise.
10702         (update_rhs_and_lookup_avail_expr): Likewise.
10703         (record_equivalences_from_stmt): Likewise.
10704         (dom_opt_initialize_block_local_data): No longer test state of
10705         block local avail_exprs.
10706         (dom_opt_initialize_block): Mark unwind point in the global
10707         avail_expr stack.
10708         (remove_expressions_from_table): Update to unwind to the
10709         most recent unwind marker in the global avail_expr stack.
10710         All callers changed.
10711         (dom_opt_finalize_block): Mark unwind point in the global
10712         avail_expr stack as needed.
10713         (record_cond): Push elements into the global avail_exprs stack.
10714
10715         * tree-dfa.c (free_df_for_stmt): No longer static.
10716         (free_df): Update comments.
10717         * tree-flow.h (free_df_for_stmt): Prototype.
10718         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
10719         call release_defs.
10720
10721 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
10722
10723         PR tree-optimization/17252
10724         * tree-ssa-alias.c (may_alias_p): Don't assume that a
10725         pointer may not point to itself when using relaxed
10726         aliasing rules.
10727
10728 2004-09-14  Richard Henderson  <rth@redhat.com>
10729
10730         PR middle-end/17397
10731         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
10732         while folding <ADDR_EXPR <INDIRECT_REF X>>.
10733
10734 2004-09-14  Andrew Pinski  <apinski@apple.com>
10735
10736         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
10737         sets of the pointers but the aliasing sets of what they point to.
10738
10739 2004-09-14  Roger Sayle  <roger@eyesopen.com>
10740
10741         PR rtl-optimization/9771
10742         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
10743         conditional compilation in init_reg_sets_1.
10744         (init_reg_sets_1): Let global_regs[i] take priority over the frame
10745         (but not stack) pointer exceptions to regs_invalidated_by_call.
10746         (globalize_reg): Globalizing a fixed register may need to update
10747         regs_invalidated_by_call.
10748
10749 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
10750
10751         PR tree-optimization/15262
10752         * tree-dfa.c (dump_variable): Also print the type of the
10753         variable.
10754         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
10755         memory tags are of conflicting alias sets but have no aliased
10756         symbols in common, add one tag to the alias set of the other.
10757         (setup_pointers_and_addressables): Remove hack to deal with
10758         programs with no aliased symbols.
10759         (may_alias_p): Don't special case aggregate types.
10760
10761 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10762
10763         PR c/15498
10764         * doc/invoke.texi (Environment Variables): Correct example locale.
10765
10766 2004-09-14  Jan Hubicka  <jh@suse.cz>
10767
10768         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
10769
10770 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
10771
10772         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
10773
10774 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10775
10776         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
10777         restrict_p.
10778         (struct c_declarator): Change u.array.quals and pointer_quals to
10779         int.  Add u.array.attrs.
10780         (quals_from_declspecs): New.
10781         * c-decl.c (quals_from_declspecs): New.
10782         (shadow_tag_warned): Give more specific message for useless type
10783         qualifiers.
10784         (build_array_declarator, set_array_declarator_inner,
10785         grokdeclarator, make_pointer_declarator, build_null_declspecs,
10786         declspecs_add_qual): Update for changed structures.
10787
10788 2004-09-14  Jeff Law  <law@redhat.com>
10789
10790         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
10791         to a global varray.
10792         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
10793         (dom_opt_initialize_block_local_data): No longer test state
10794         of stmts_to_rescan.
10795         (dom_opt_finalize_block): Update due to change in scope of
10796         stmts_to_rescan.
10797         (optimize_stmt): Similarly.
10798
10799 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
10800
10801         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
10802         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
10803         comment typos.  Follow spelling conventions.
10804
10805 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
10806
10807         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
10808         config/i386/predicates.md, config/sparc/sparc.c: Follow
10809         spelling conventions.
10810
10811 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10812             Steven Bosscher  <stevenb@suse.de>
10813
10814         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
10815         * basic-block.h (struct reorder_block_def): Add copy_number field.
10816         * cfgloop.h (biv_p): Declare.
10817         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
10818         * common.opt (fsplit-ivs-in-unroller): New flag.
10819         * loop-iv.c (biv_p): New function.
10820         * loop-unroll.c: Include hashtab.h and recog.h.
10821         (struct iv_to_split, struct split_ivs_info): New types.
10822         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
10823         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
10824         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
10825         insert_base_initialization, split_iv): New functions.
10826         (peel_loop_completely, unroll_loop_constant_iterations,
10827         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
10828         Use them.
10829         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
10830
10831 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10832
10833         * tree-cfg.c (thread_jumps): Update dominators correctly in
10834         case destination of threaded edge dominates its source.
10835
10836 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10837
10838         * unroll.c: Removed.
10839         * loop.h: Removed.
10840         * Makefile.in (LOOP_H, unroll.o): Removed.
10841         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
10842         dependency.
10843         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
10844         reference.
10845         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
10846         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
10847         * loop.c: Do not include loop.h.
10848         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
10849         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
10850         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
10851         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
10852         struct loop_regs, struct loop_movables, struct loop_info): Moved
10853         from loop.h.
10854         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
10855         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
10856         find_common_reg_term, loop_iterations, final_giv_value): Moved
10857         from unroll.c.
10858         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
10859         loop_dump_stream, for_each_insn_in_loop, express_from,
10860         extend_value_for_giv, loop_iv_add_mult_emit_before,
10861         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
10862         loop_insn_first_p, get_condition_for_loop,
10863         loop_insn_emit_before, loop_insn_hoist,
10864         loop_insn_sink): Made static.
10865         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
10866         reference.
10867         (strength_reduce): Do not call unroller.
10868         (record_giv): Do not initialize unrolled field.
10869         (prescan_loop): Do not set loop_info->preconditioned.
10870         * passes.c: Do not include loop.h.
10871         (rest_of_handle_loop_optimize): Do not call unroller.
10872         * predict.c: Do not include loop.h.
10873         * rtl.h (NOTE_PRECONDITIONED): Removed.
10874         * stmt.c: Do not include loop.h.
10875         * toplev.c: Do not include loop.h.
10876         (process_options): Do not handle flag_old_unroll_loops.
10877
10878         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
10879         Documentation removed.
10880         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
10881
10882 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
10883
10884         * Makefile.in (STAGE1_CHECKING): New variable.
10885         (stage1_build): Use it.
10886         * tree-ssa.c (verify_ssa): Preserve state of dominance
10887         information.
10888
10889 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
10890
10891         * config/i386/i386.c (output_fp_compare): Add generation
10892         of ftst instruction.
10893         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
10894         Use output_fp_compare () function.
10895         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
10896         (fix_truncdi_memory): Remove operands[5] copy.
10897
10898 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
10899
10900         * config/m32r/m32r.md, config/m68k/m68kelf.h,
10901         config/mcore/mcore.md, config/rs6000/linux64.h,
10902         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
10903         typos.
10904
10905 2004-09-13  James E Wilson  <wilson@specifixinc.com>
10906
10907         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
10908         * gen-protos.c: Include errors.h.
10909         (progname): Delete.
10910
10911 2004-09-14  Jan Hubicka  <jh@suse.cz>
10912
10913         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
10914         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
10915         (predict_loops): Use number_of_iterations_exit to predict
10916         number of iterations on trees.
10917
10918 2004-09-13  Dale Johannesen  <dalej@apple.com>
10919
10920         PR 17408
10921         PR 17409
10922         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
10923         objects declared extern.
10924
10925 2004-09-14  Paul Brook  <paul@codesourcery.com>
10926
10927         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
10928         HOST_WIDE_INT.
10929
10930 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
10931
10932         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
10933         Only use TYPE_BINFO for aggregates.
10934
10935 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
10936
10937         * expmed.c (synth_mult): Initialize latency.  Check cost before
10938         checking ops count.
10939
10940 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
10941
10942         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
10943         add_call_clobber_ops and add_call_read_ops.
10944         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
10945         the number of vdefs and vuses inserted based on analysis of global
10946         variables across calls.  * tree-dfa.c (find_referenced_vars):
10947         Needed to reset static var maps before each function is compiled.
10948         * cgraphunit.c:
10949         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
10950         static_vars_info,functions_to_static_vars_info,module_statics_escape,
10951         all_module_statics,searchc_env,dfs_info): New fields to support
10952         analysis of static global variables.
10953         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
10954         cgraph_reset_static_var_maps, get_global_static_vars_info,
10955         get_global_statics_not_read, get_global_statics_not_written,
10956         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
10957         check_rhs_var, check_lhs_var, get_asm_expr_operands,
10958         process_call_for_static_vars, scan_for_static_refs,
10959         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
10960         clear_static_vars_maps, cgraph_propagate_bits,
10961         cgraph_characterize_statics): New. Functions to support analysis
10962         of static global variables.
10963         (cgraph_mark_local_and_external_functions): Renamed from:
10964         (cgraph_mark_local_functions)
10965         (cgraph_expand_all_functions): Remove call to
10966         cgraph_mark_local_and_external_functions.
10967         (cgraph_optimize): Added driver to analyze static variables whose
10968         scope is within the compilation unit.  * cgraph.h (struct
10969         cgraph_local_info, GTY): Added statics_read, statics_written,
10970         local, calls_read_all, calls_write_all, for_functions_valid.
10971         (struct cgraph_node): Added next_cycle.  * cgraph.c
10972         (dump_cgraph_node): Added print routines for new fields.  *
10973         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
10974         list.
10975
10976 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
10977
10978         * c-decl.c (grokdeclarator): Correct comments about where storage
10979         class specifiers are rejected by grammar and add corresponding
10980         asserts.  Diagnose typedefs and parameters declared inline.
10981         Change warning for inline main to a pedwarn.  Only diagnose inline
10982         main if hosted.
10983         (declspecs_add_scspec): Allow duplicate "inline".
10984
10985 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
10986
10987         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
10988         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
10989
10990 2004-09-13  Richard Henderson  <rth@redhat.com>
10991
10992         PR 17436
10993         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
10994         (tree_type): Replace spare with contains_placeholder_bits.
10995         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
10996         make static.  Remove seen_types list.
10997         (type_contains_placeholder_p): New.
10998
10999 2004-09-13  James E Wilson  <wilson@specifixinc.com>
11000
11001         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
11002         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
11003         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
11004         bdesc_arrays instead of mips_bdesc.
11005         (mips_init_builtins): Likewise.
11006         * config/mips/mips.h (TARGET_SB1): New.
11007         (HAVE_SQRT_P): Delete.
11008         * config/mips/mips.md (divide_condition): Support V2SF.
11009         (sqrt_condition, recip_condition): New.
11010         (div<mode>3): Use ANYF instead of SCALARF.
11011         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
11012         MODE.
11013         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
11014         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
11015         instead of MODE.
11016         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
11017         instead of SCALARF.  Use UNITMODE instead of MODE.
11018
11019 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
11020
11021         * config.in: Regenerate after removal of libbanshee.
11022
11023 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
11024
11025         PR tree-optimization/17400
11026         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11027         coalesce partitions when one occurs in an abnormal PHI.
11028
11029 2004-09-13  Andrew Pinski  <apinski@apple.com>
11030
11031         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
11032         name to _new_size.
11033
11034 2004-09-13  Richard Henderson  <rth@redhat.com>
11035
11036         PR inline-asm/6806
11037         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
11038         (cselib_invalidate_rtx_note_stores): New.
11039         (cselib_record_sets, cselib_process_insn): Update to match.
11040         * cselib.h (cselib_invalidate_rtx): Declare.
11041         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
11042
11043 2004-09-13  Richard Henderson  <rth@redhat.com>
11044
11045         PR tree-opt/10528
11046         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
11047         after copying its argument.
11048
11049 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
11050
11051         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
11052         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
11053         in diagnostics.  Use %' for English apostrophes.
11054         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
11055         (pedwarn_c90, pedwarn_c99): Use it.
11056         * c-decl.c (lookup_label): Quote label name in diagnostic.
11057         * c-parse.in (yyprint): Use ' instead of ` for left quote.
11058         * c-typeck.c (warn_for_assignment): Likewise.
11059
11060 2004-09-13  Jan Hubicka  <jh@suse.cz>
11061
11062         * i386.c (x86_schedule): New global variable.
11063         (override_options): Disable scheduling when not supported.
11064         * i386.h (x86_schedule): Declare.
11065         (TARGET_SCHEDULE): New macro.
11066
11067 2004-09-12  Richard Henderson  <rth@redhat.com>
11068
11069         PR c++/16254
11070         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
11071         * tree.c, tree.h (has_cleanups): Remove.
11072
11073 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11074
11075         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
11076         arguments of the phi nodes correctly.
11077
11078 2004-09-12  Jan Hubicka  <jh@suse.cz>
11079
11080         * ggc-common.c (cmp_statistics): Fix sorting.
11081
11082 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
11083
11084         PR target/16795
11085         * expmed.c (expand_divmod): If cheap power of 2 divide is
11086         available, use it for negative constant as well.
11087
11088 2004-09-12  Andrew Pinski  <apinski@apple.com>
11089
11090         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
11091         size of 0.
11092
11093         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
11094
11095 2004-09-12  Richard Henderson  <rth@redhat.com>
11096
11097         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
11098         or minus one.
11099         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
11100         post-reload, and scratch NULL.
11101         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
11102         (x86_shift_adj_2): Use ix86_expand_clear.
11103         (ashldi3): Remove CMOVE expansion difference.
11104         (ashldi3_1): Remove.
11105         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
11106         add constraints for immediates.  New peephole for split-with-temp.
11107         Run splitter after peep2 pass.
11108         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
11109         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
11110         (setcc_2): Rename with *.
11111         * config/i386/predicates.md (reg_or_pm1_operand): New.
11112         (ashldi_input_operand): New.
11113
11114 2004-09-12  Richard Henderson  <rth@redhat.com
11115
11116         * print-rtl.c (print_decl_name): New.
11117         (print_mem_expr): Use it.
11118
11119 2004-09-12  Richard Henderson  <rth@redhat.com
11120
11121         PR 17186, part deux
11122         * except.c (sjlj_emit_function_exit): Fix logic locating
11123         sjlj_exit_after in final block.
11124
11125 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
11126
11127         * common.opt: Remove flags -fmove-all-movables and
11128         -freduce-all-givs.
11129         * loop-invariant.c (find_invariants_to_move):
11130         Remove all uses of flag_move_all_movables.
11131         * loop.c (move_movables): Remove all uses of
11132         flag_move_all_movables.
11133         (strength_reduce): Remove all uses of
11134         flag_reduce_all_givs.
11135         * doc/invoke.texi: Remove documentation of flags
11136         -fremove-all-movables and -freduce-all-givs.
11137
11138 2004-09-11  Roger Sayle  <roger@eyesopen.com>
11139
11140         PR middle-end/17411
11141         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
11142         change. elt->type may be a floating point type, so use fold_convert.
11143
11144 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
11145
11146         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
11147         the thing referenced as used, not the stub itself.
11148
11149 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11150
11151         * c-tree.h (enum c_storage_class): New.
11152         (struct c_declspecs): Add storage_class, inline_p and thread_p.
11153         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
11154         declarations and "auto" or "register" in file scope empty
11155         declarations.  Give more specific warnings for other cases of
11156         storage class specifiers in empty declarations.
11157         (grokdeclarator): Update for new structures.  Don't check for
11158         multiple storage classes.  Diagnose file-scope "register" if
11159         pedantic.
11160         (build_null_declspecs): Update.
11161         (declspecs_add_scspec): Update.  Diagnose multiple storage class
11162         specifiers and invalid uses of "__thread".
11163
11164 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
11165
11166         * tree.c (tree_code_size): New function, bulk of code from tree_size.
11167         (tree_size, make_node): Use it.
11168         * tree-ssa-pre.c (init_pre): Use it.
11169         * tree.h: Prototype it.
11170
11171 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11172
11173         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
11174         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
11175         redirect_immediate_use): Use PHI_DF.
11176         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
11177         (bb_for_stmt): Use PHI_BB.
11178         (get_immediate_uses): Use PHI_DF.
11179         * tree-ssa-dse.c (max_stmt_uid): New variable.
11180         (get_stmt_uid): New function.
11181         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
11182         node annotations.
11183         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
11184         (max_uid): Renamed to max_stmt_uid.
11185         (get_stmt_uid): New function.
11186         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
11187         phi node annotations.
11188         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
11189         * tree.h (PHI_BB, PHI_DF): New accessor functions.
11190         (struct tree_phi_node): Add bb and df fields.
11191
11192 2004-09-11  Richard Henderson  <rth@redhat.com>
11193
11194         PR middle-end/17416
11195         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
11196         in conflict loop.
11197
11198 2004-09-11  Jan Hubicka  <jh@suse.cz>
11199
11200         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
11201         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
11202         * i386.md (i387_cw): Add 'uninitialized' mode.
11203
11204         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
11205         (output_location): Break out from ....
11206         (branch_prob): ... here; handle gcov output on trees.
11207         * toplev.c (process_options): No longer be sorry about coverage for
11208         trees.
11209
11210 2004-09-11  Steven Bosscher  <stevenb@suse.de>
11211
11212         PR c++/17412
11213         * fold-const.c (fold): Do not try to fold the operand of a
11214         CLEANUP_POINT_EXPR if that operand does itself not have any
11215         operands.
11216
11217         PR middle-end/17417
11218         * langhooks.c (lhd_decl_printable_name): Make sure that this
11219         function is called with is a decl node that has an identifier.
11220         * tree-pretty-print.c (dump_function_name): New function to
11221         wrap PRINT_FUNCTION_NAME and dump_decl_name.
11222         (print_call_name): Use it.
11223
11224 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
11225
11226         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
11227         "config.h" if not.
11228
11229 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
11230
11231         * tree-ssa-alias.c (collect_points_to_info_r): Handle
11232         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
11233         to OFFSET.
11234
11235 2004-09-11  Richard Henderson  <rth@redhat.com>
11236
11237         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
11238         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
11239         operand of the ADDR_EXPR.
11240         (expand_expr_real_1): Update to match.
11241
11242 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
11243
11244         PR target/17277
11245         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
11246         choose 64-bit version.
11247
11248 2004-09-11  Richard Henderson  <rth@redhat.com>
11249
11250         PR c/17396
11251         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
11252
11253 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
11254
11255         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
11256         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
11257         Insert @: after i.e. or e.g.
11258
11259 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11260
11261         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
11262         D.xxx rather than <Dxxx>.
11263
11264 2004-09-10  Adam Nemet  <anemet@lnxw.com>
11265
11266         * configure.ac (AC_MSG_CHECKING(what linker to use)):
11267         in_tree_ld_is_elf should be true for LynxOS.
11268         * configure: Regenerate.
11269
11270 2004-09-10  Adam Nemet  <anemet@lnxw.com>
11271
11272         * Makefile.in (all.cross): Add srcextra.
11273
11274 2004-09-10  Roger Sayle  <roger@eyesopen.com>
11275
11276         PR middle-end/17024
11277         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
11278         floating point comparison operators.  Change aborts to gcc_asserts.
11279
11280 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11281
11282         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
11283
11284 2004-09-10  James E Wilson  <wilson@specifixinc.com>
11285
11286         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
11287         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
11288
11289         * convert.c (convert_to_vector): Replace recursive call with
11290         error_mark_node.
11291
11292         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
11293         Add integer argument named constant.  Use const_tiny_rtx instead of
11294         CONST0_RTX.
11295         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
11296         and CONST1_RTX.
11297         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
11298         vector types.
11299         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
11300         of gen_rtx_raw_CONST_VECTOR.
11301
11302 2004-09-10  Eric Christopher  <echristo@redhat.com>
11303
11304         PR c/16046
11305         * c-parse.in (attribute): Add NULL_TREE for error case
11306         for error recovery.
11307
11308 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
11309
11310         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
11311         (extract_interface_info): Delete prototype.
11312         * c-decl.c (extract_interface_info): Delete stub.
11313         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
11314         it's not already been done ...
11315         (init_c_lex): ... not here.
11316         (fe_file_change): Don't call extract_interface_info.
11317
11318 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11319
11320         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
11321         typedef_p and typedef_signed_p.
11322         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
11323         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
11324         Check typedef_p and typedef_signed_p, not typedef_decl.
11325         (grokfield): Check typedef_p, not typedef_decl.
11326         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
11327         not typedef_decl.
11328         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
11329         typedef_decl.
11330
11331 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11332
11333         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
11334
11335 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11336
11337         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
11338         temporary variables.
11339
11340         * dbxout.c (dbxout_block): Update for
11341         current_function_func_begin_label a string.
11342         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
11343         * except.c (dw2_output_call_site_table): Likewise.
11344         * toplev.c (current_function_func_begin_label): Likewise.
11345         * tree.h (current_function_func_begin_label): Likewise.
11346         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
11347
11348         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
11349         loop.
11350
11351         * config/darwin.c: Include target.h.
11352         (struct machopic_indirection): Make ptr_name a string.
11353         (machopic_indirection_hash): Update for ptr_name a string.
11354         (machopic_indirection_eq): Likewise.
11355         (machopic_indirection_name): Likewise.
11356         (machopic_output_indirection): Likewise.
11357         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
11358         string.  Don't expect stub names to be in the identifier hash table.
11359         Do call strip_name_encoding before looking up entry in ID hash table.
11360         * config/t-darwin (darwin.o): Add target.h to dependencies.
11361
11362         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
11363         of fprintf for register names.
11364
11365         * output.h (unlikely_section_label): Delete declaration.
11366         (unlikely_text_section_name): Likewise.
11367         * varasm.c (unlikely_section_label_printed): Make static.
11368         (unlikely_section_label): Likewise.
11369         (unlikely_text_section_name): Likewise.
11370         (assemble_start_function): Use reconcat.
11371
11372         * rtl.def (REG): Add comment to describe third field.
11373
11374 2004-09-10  Andrew Pinski  <apinski@apple.com>
11375
11376         * config/darwin.c (machopic_mcount_stub_name): Call
11377         machopic_indirection_name instead of making the string
11378         ourselves.
11379
11380 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
11381
11382         Revert
11383
11384         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
11385
11386             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
11387             memory tag is call clobbered, so are its aliases.
11388             (group_aliases): When two memory tags being grouped, if one is
11389             call clobbered, so are the other and its aliases.
11390             (add_may_alias): Remove call-clobbering stuff.
11391             (replace_may_alias): Likewise.
11392             (merge_pointed_to_info): Merge pt_global_mem
11393
11394 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11395
11396         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
11397         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
11398         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
11399         tree-scalar-evolution.c, tree-ssa-copyrename.c,
11400         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
11401
11402 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11403
11404         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
11405         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
11406         pair.  Remove match_dup from inputs.  Remove masaccs handling.
11407         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
11408         (masaccs, mdasaccs): Turn into define_insns.
11409
11410 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11411
11412         * tree-tailcall.c (process_assignment): Only do accumulator transforms
11413         for floating-point types if flag_unsafe_math_optimizations.
11414
11415 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11416
11417         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
11418         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
11419         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
11420         config/h8300/h8300.md, config/i386/gmm_malloc.h,
11421         config/ia64/ia64.md, config/ip2k/libgcc.S,
11422         config/mips/mips-ps-3d.md, config/mips/mips.c,
11423         config/rs6000/rs6000.c, config/s390/s390.c,
11424         config/sh/symbian.c: Fix comment typos.
11425
11426 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11427
11428         * config/s390/s390.c (s390_emit_prologue): Added missing
11429         "{}" brackets.
11430
11431 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11432
11433         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
11434         typos.  Follow spelling conventions.
11435
11436 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
11437
11438         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
11439         in diagnostic.  Don't dereference NULL TYPE_NAME.
11440
11441 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11442
11443         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
11444         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
11445         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
11446         value-prof.c: Fix comment typos.  Follow spelling conventions.
11447
11448 2004-09-10  Jan Hubicka  <jh@suse.cz>
11449
11450         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
11451         * tree-split_edge.c (tree_split_edge): Likewise.
11452         (thread_jumps): Likewise.
11453
11454 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
11455
11456         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
11457         typos.
11458
11459 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
11460
11461         * cgraph.h (cgraph_dump_file): Do not declare.
11462         * cgraphunit.c (cgraph_dump_file): Declare as static.
11463         (init_cgraph): New.
11464         * toplev.c (cgraph_dump_file): Do not declare.
11465         (compile_file): Call init_cgraph.
11466         * tree-dump.c (dump_files): Add IPA dump file, remove
11467         XML dump of call graph.
11468         (get_dump_file_name): Support IPA dump file naming scheme.
11469         * tree.h (enum tree_dump_index): Add IPA dump file, remove
11470         XML dump of call graph.
11471         * doc/invoke.texi (Debugging Options): Document the new options.
11472
11473 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
11474
11475         * doc/extend.texi: Document the FR-V built-in functions.
11476
11477 2004-09-09  James E Wilson  <wilson@specifixinc.com>
11478
11479         * doc/sourcebuild.texi: Delete libbanshee reference.
11480
11481 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
11482
11483         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
11484
11485 2004-09-09  James E Wilson  <wilson@specifixinc.com>
11486
11487         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
11488         before calling vector_types_convertible_p.
11489         (digest_init): Check that inside_init has VECTOR_TYPE before calling
11490         vector_types_convertible_p.  Don't give another error if
11491         convert_for_assignment returns error_mark_node.
11492
11493 2004-09-09  Roger Sayle  <roger@eyesopen.com>
11494
11495         PR middle-end/17055
11496         * fold-const.c (build_zero_vector): New function to construct a
11497         vector (either floating point or integer) of zeros.
11498         (fold_convert): Internally, enable conversions of integer zero
11499         to arbitrary vector types, using the new build_zero_vector.
11500
11501 2004-09-09  Roger Sayle  <roger@eyesopen.com>
11502
11503         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
11504         expand a left shift by an immediate constant as either an ashl or
11505         a sequence of additions.
11506         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
11507         instead of calling gen_ashlsi3 with a constant directly.
11508
11509 2004-09-09  Roger Sayle  <roger@eyesopen.com>
11510
11511         * config/i386/i386.c (ix86_split_long_move): When optimizing for
11512         size, and the low and high parts of a DImode constant are equal,
11513         copy one register to another instead of loading the same immediate
11514         value twice.
11515
11516 2004-09-09  Richard Henderson  <rth@redhat.com>
11517
11518         PR middle-end/17367
11519         * function.c (assign_parm_setup_block): Only put PARALLELs into
11520         a register if use_register_for_decl.
11521
11522 2004-09-09  Eric Christopher  <echristo@redhat.com>
11523
11524         * ra-colorize.c (reset_lists): Move variable declaration inside
11525         ENABLE_CHECKING to avoid unused variable warnings when
11526         not --enable-checking.
11527         (check_colors): Ditto.
11528
11529 2004-09-09  Mike Stump  <mrs@apple.com>
11530
11531         * version.c (version_string): Bump to 4.0.0.
11532         * doc/include/gcc-common.texi (version-GCC): Likewise.
11533
11534 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
11535
11536         * doc/extend.texi (nothrow attribute): The attribute is not
11537         implemented in 3.2 and earlier.
11538
11539 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
11540
11541         * genrecog.c (compute_predicate_codes): Use op0_codes
11542         instead of codes.
11543
11544 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
11545
11546         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
11547         implementation changes.
11548
11549 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
11550
11551         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
11552         a PARALLEL instead of a SET due to added clobbers.
11553
11554 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
11555
11556         * reload.c (find_reloads_address): Pass correct operand to
11557         maybe_memory_address_p.
11558
11559 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
11560
11561         * Makefile.in: Remove libbanshee, tree-alias-*.
11562         Remove tree-alias-common.h dependencies.
11563         * common.opt: Remove -ftree-points-to.
11564         * configure.ac: Remove libbanshee.
11565         * flags.h: Remove pta_type, flag_tree_points_to.
11566         * gengtype.c (open_base_files): Remove tree-alias-type.h.
11567         * opts.c (OPT_ftree_points_to): Remove.
11568         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
11569         * tree-dfa.c: Remove tree-alias-common.h
11570         * tree-into-ssa.c: Ditto.
11571         * tree-outof-ssa.c: Ditto.
11572         * tree-ssa-copyrename.c: Ditto.
11573         * tree-ssa-live.c: Ditto.
11574         * tree-optimize.c: Ditto.
11575         * tree-ssa.c: Ditto.
11576         Remove pass_build_pta, pass_del_pta.
11577         * tree-pass.h: Ditto.
11578         * tree-ssa-alias.c: Remove tree-alias-common.h.
11579         (struct alias_stats_d): Remove pta_queries, pta_resolved.
11580         (pass_may_alias): Remove PROP_pta requirement.
11581         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
11582         (get_tmt_for): Ditto.
11583         (dump_alias_stats): Ditto.
11584         * doc/passes.texi: Remove blurb about points-to analysis.
11585         * fortran/Make-lang.in: Remove tree-alias-*.o.
11586
11587 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
11588
11589         * genattrtab.c (write_insn_cases): New function, split out from
11590         write_attr_case.  Correctly handle define_peepholes when printing
11591         the instruction name.
11592         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
11593
11594 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
11595
11596         PR target/17377
11597         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
11598         * config/cris/cris.c (cris_return_address_on_stack): New function.
11599         * config/cris/cris.md ("return"): For location of return address,
11600         also check cris_return_address_on_stack.
11601
11602 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
11603
11604         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
11605         calling phi_ssa_name_p.
11606
11607 2004-09-09  Richard Henderson  <rth@redhat.com>
11608
11609         PR c/17322
11610         * c-typeck.c (valid_compound_expr_initializer): Use only
11611         initializer_constant_valid_p, and not TREE_CONSTANT.
11612         (digest_init): Likewise.
11613         (output_init_element): Likewise.
11614
11615 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
11616
11617         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
11618         live_out_1, prune_hardregs_for_mode, init_one_web_common,
11619         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
11620         record_conflict, compare_and_free_webs, init_webs_defs_uses,
11621         parts_to_webs_1, parts_to_webs, reset_conflicts,
11622         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
11623         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
11624         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
11625         put_move, remove_move, combine, select_spill, colorize_one_web,
11626         try_recolor_web, insert_coalesced_conflicts, check_colors,
11627         break_precolored_alias, restore_conflicts_from_coalesce,
11628         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
11629         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
11630         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
11631         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
11632         check_df): Likewise.
11633         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
11634         real_arithmetic, real_compare, real_exponent, real_ldexp,
11635         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
11636         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
11637         real_digit, real_nan, real_maxval, round_for_format, real_convert,
11638         real_to_target, real_from_target, real_hash, encode_ieee_single,
11639         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
11640         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
11641         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
11642         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
11643         extract_insn, peep2_next_insn, peep2_reg_dead_p,
11644         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
11645         if_test_bypass_p): Likewise.
11646         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
11647         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
11648         emit_swap_insn, swap_to_top, move_for_stack_reg,
11649         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
11650         compensate_edge, convert_regs_1): Likewise.
11651         * regclass.c (init_reg_sets, init_reg_sets_1,
11652         memory_move_secondary_cost): Likewise.
11653         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
11654         Likewise.
11655         * reload.c (push_secondary_reload, find_valid_class, push_reload,
11656         operands_match_p, decompose, immune_p, find_reloads,
11657         find_reloads_toplev, find_reloads_address_1, subst_reloads,
11658         copy_replacements, refers_to_regno_for_reload_p,
11659         reg_overlap_mentioned_for_reload_p): Likewise.
11660         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
11661         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
11662         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
11663         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
11664         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
11665         do_output_reload, fixup_abnormal_edges): Likewise.
11666         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
11667         fill_slots_from_thread, relax_delay_slots): Likewise.
11668         * resource.c (mark_referenced_resources, mark_set_resources):
11669         Likewise.
11670         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
11671         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
11672         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
11673         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
11674         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
11675         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
11676         * rtlhooks.c (gen_lowpart_general): Likewise.
11677         * sbitmap.c (sbitmap_difference): Likewise.
11678         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
11679         sched_analyze, add_forward_dependence): Likewise.
11680         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
11681         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
11682         schedule_insns): Likewise.
11683         * sched-vis.c (print_pattern): Likewise.
11684         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
11685         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
11686         simplify_const_relational_operation, simplify_ternary_operation,
11687         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
11688         Likewise.
11689         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
11690         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
11691         resolve_operand_name_1, expand_return, expand_decl,
11692         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
11693         * stor-layout.c (put_pending_size, smallest_mode_for_size,
11694         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
11695         set_sizetype, get_mode_bounds): Likewise.
11696
11697 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
11698
11699         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
11700         * config/arm/pecoff.h, config/i386/beos-elf.h
11701         * config/i386/cygming.h, config/i386/i386-interix.h:
11702         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
11703         comment cloned from manual.
11704         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
11705
11706 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
11707
11708         * builtins.c (build_va_arg_indirect_ref): New function.
11709         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
11710         build_fold_indirect_ref.
11711         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
11712         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
11713         * tree.h: Declare new function.
11714
11715 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11716
11717         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
11718         dumping for development builds.
11719         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
11720         development builds only.
11721         * genattrtab.c (write_eligible_delay): Fix typo in previous
11722         commit.
11723         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
11724         gcc_assert.
11725
11726 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11727
11728         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
11729         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
11730         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
11731         hoist_code, extract_mentioned_regs_helper, compute_store_table,
11732         insert_store): Use gcc_assert and gcc_unreachable.
11733         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
11734         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
11735         ggc_record_overhead): Likewise.
11736         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
11737         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
11738         ggc_pop_context, clear_marks, validate_free_objects,
11739         ggc_pch_read): Likewise.
11740         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
11741         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
11742         ggc_push_context, check_cookies, ggc_collect,
11743         ggc_print_statistics): Likewise.
11744         * gimple-low.c (lower_function_body, lower_stmt,
11745         lower_bind_expr): Likewise.
11746         * gimplify.c (gimple_tree_eq, push_gimplify_context,
11747         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
11748         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
11749         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
11750         gimplify_case_label_expr, gimplify_exit_block_expr,
11751         canonicalize_component_ref, gimplify_compound_lval,
11752         gimplify_self_mod_expr, gimplify_call_expr,
11753         gimplify_init_ctor_eval, gimplify_init_constructor,
11754         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
11755         gimplify_expr, check_pointer_types_r,
11756         force_gimple_operand): Likewise.
11757         * global.c (global_alloc, build_insn_chain): Likewise.
11758         * graph.c (clean_graph_dump_file,
11759         finish_graph_dump_file): Likewise.
11760         gcov-io.c (gcov_open): Use GCOV_CHECK.
11761
11762 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
11763
11764         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
11765
11766 2004-09-09  Jan Hubicka  <jh@suse.cz>
11767
11768         middle-end/17128
11769         * tree-inline.c (expand_call_inline): Make overactive sanity check
11770         happy.
11771
11772 2004-09-09  Jan Hubicka  <jh@suse.cz>
11773
11774         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
11775         VIEW_CONVERT_EXPR.
11776
11777 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11778
11779         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
11780         (gengtype.o): Depend on errors.h.
11781         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
11782         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
11783         attr_alt_subset_p, attr_alt_subset_of_compl_p,
11784         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
11785         write_test_expr, write_attr_value, write_eligible_delay,
11786         make_internal_attr, make_numeric_value): Likewise.
11787         * genautomata.c (regexp_name, get_str_vect,
11788         gen_presence_absence_set, automaton_decl_hash,
11789         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
11790         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
11791         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
11792         test_unit_reserv, it_is_empty_reserv_sets,
11793         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
11794         reserv_sets_and, output_cycle_reservs, get_free_state,
11795         intersected_state_reservs_p, states_union, remove_arc,
11796         copy_insn_regexp, transform_1, transform_2, transform_3,
11797         regexp_transform_func, store_alt_unit_usage,
11798         check_regexp_units_distribution, process_seq_for_forming_states,
11799         process_alts_for_forming_states, make_automaton,
11800         form_arcs_marked_by_insn, create_composed_state,
11801         set_out_arc_insns_equiv_num, partition_equiv_class,
11802         process_insn_equiv_class, set_insn_equiv_classes,
11803         units_to_automata_heuristic_distr, form_regexp,
11804         longest_path_length, output_dfa_max_issue_rate, add_vect,
11805         out_state_arcs_num, add_vect_el, output_trans_table,
11806         output_state_alts_table, output_dead_lock_vect,
11807         output_max_insn_queue_index_def,
11808         output_min_insn_conflict_delay_func,
11809         output_internal_insn_latency_func, output_print_reservation_func,
11810         output_cpu_unit_reservation_p, output_state_arcs,
11811         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
11812         make_default_insn_latency_attr,
11813         form_important_insn_automata_lists): Likewise.
11814         * genemit.c (gen_exp, output_add_clobbers,
11815         output_added_clobbers_hard_reg_p): Likewise.
11816         * genextract.c (print_path, main): Likewise.
11817         * genflags.c (gen_macro): Likewise.
11818         * gengenrtl.c: Include errors.h
11819         (type_from_format, accessor_from_format): Likewise.
11820         * gengtype.c (get_file_basename, output_mangled_typename,
11821         walk_type, write_types_process_field,
11822         write_types_local_process_field): Likewise.
11823         * genmodes.c (complete_mode): Likewise.
11824         * genopinit.c (gen_insn): Likewise.
11825         * genoutput.c (output_insn_data, check_constraint_len,
11826         constraint_len): Likewise.
11827         * genpreds.c (add_mode_tests):Likewise.
11828         * gen-protos.c (add_hash): Likewise.
11829         * genrecog.c (find_operand, find_matching_operand,
11830         validate_pattern, add_to_sequence, maybe_both_true,
11831         nodes_identical_1, merge_trees, write_switch, write_cond,
11832         write_action, is_unconditional, make_insn_sequence,
11833         debug_decision_2): Likewise.
11834         * gensupport.c (is_predicable, collect_insn_data,
11835         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
11836
11837 2004-09-09  Jan Hubicka  <jh@suse.cz>
11838
11839         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
11840         * cfgbuild.c (compute_outgoing_frequencies): When probability is
11841         missing, guess it.
11842         (find_many_sub_basic_blocks): Do update profile only when it is
11843         present.
11844         * predict.c (set_even_probabilities): Break out from ...
11845         (combine_predictions_for_insn): ... here; deal with
11846         !can_predict_insn_p insns.
11847         (combine_predictions_for_bb): Use set_even_probabilities.
11848         (bb_estimate_probability_locally): Break out from ....
11849         (estimate_probability): ... here.
11850         (guess_outgoing_edge_probabilities): New entry point.
11851
11852 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11853
11854         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
11855         handle_braces, process_brace_body, main, used_arg,
11856         set_multilib_dir, print_multilib_info): Use fatal, not abort.
11857
11858         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
11859
11860         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
11861         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
11862         Morgan's theorem in last checkin.
11863
11864 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
11865             Nathan Sidwell  <nathan@codesourcery.com>
11866
11867         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
11868         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
11869         * timevar.c (timevar_push, timevar_pop, timevar_start,
11870         timevar_stop): Likewise.
11871         * toplev.c (default_pch_valid_p): Likewise.
11872         * tracer.c (tail_duplicate): Likewise.
11873         * tree-alias-common.c (get_alias_var_decl,
11874         get_values_from_constructor, create_alias_var, delete_alias_vars,
11875         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
11876         Likewise.
11877         * tree.c (tree_size, make_node_stat, copy_node_stat,
11878         build_int_cst_wide, integer_all_onesp, list_length, chainon,
11879         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
11880         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
11881         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
11882         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
11883         build_method_type_directly, decl_type_context, get_callee_fndecl,
11884         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
11885         tree_fold_gcd): Likewise.
11886         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
11887         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
11888         cleanup_control_expr_graph, find_taken_edge,
11889         find_taken_edge_switch_expr, phi_alternatives_equal,
11890         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
11891         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
11892         tree_split_edge, tree_verify_flow_info, thread_jumps,
11893         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
11894         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
11895         chrec_fold_multiply_poly_poly): Likewise.
11896         * tree-complex.c (extract_component, expand_complex_division,
11897         expand_complex_comparison, expand_complex_operations_1,
11898         build_replicated_const, expand_vector_operations_1): Likewise.
11899         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
11900         build_classic_dir_vector): Likewise.
11901         * tree-dfa.c (compute_immediate_uses_for_phi,
11902         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
11903         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
11904         * tree-dump.c (dequeue_and_dump): Likewise.
11905         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
11906         record_in_finally_tree, replace_goto_queue_1,
11907         maybe_record_in_goto_queue, verify_norecord_switch_expr,
11908         do_return_redirection): Likewise.
11909         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
11910         add_to_dst_predicate_list, find_phi_replacement_condition,
11911         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
11912         Likewise.
11913         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
11914         initialize_inlined_parameters, declare_return_variable,
11915         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
11916         optimize_inline_calls, copy_tree_r): Likewise.
11917         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
11918         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
11919         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
11920         tsi_split_statement_list_after, tsi_split_statement_list_before):
11921         Likewise.
11922         * tree-mudflap.c (mf_varname_tree): Likewise.
11923         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
11924         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
11925         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11926         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
11927         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
11928         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
11929         Likewise.
11930         * tree-phinodes.c (resize_phi_node, add_phi_arg,
11931         remove_all_phi_nodes_for): Likewise.
11932         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
11933         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
11934         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
11935         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
11936         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
11937         generate_one_element_ref, generate_element_copy,
11938         generate_element_zero, scalarize_copy, scalarize_init,
11939         scalarize_ldst): Likewise.
11940         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
11941         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
11942         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
11943         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
11944         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
11945         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
11946         widen_bitfield, ccp_fold_builtin): Likewise.
11947         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
11948         replace_exp_1, propagate_tree_value): Likewise.
11949         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
11950         * tree-ssa-dce.c (set_control_dependence_map_bit,
11951         find_control_dependence, find_pdom, mark_operand_necessary,
11952         mark_stmt_if_obviously_necessary,
11953         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
11954         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
11955         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
11956         eliminate_redundant_computations, avail_expr_eq): Likewise.
11957         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
11958         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
11959         duplicate_blocks): Likewise.
11960         * tree-ssa-loop-im.c (for_each_index, set_level,
11961         is_call_clobbered_ref): Likewise.
11962         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
11963         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
11964         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
11965         peel_address, ptr_difference_cost, may_replace_final_value,
11966         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
11967         rewrite_use, rewrite_uses): Likewise.
11968         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
11969         check_loop_closed_ssa_use): Likewise.
11970         * tree-ssanames.c (make_ssa_name): Likewise.
11971         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
11972         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
11973         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
11974         get_indirect_ref_operands, add_stmt_operand): Likewise.
11975         * tree-ssa-pre.c (value_exists_in_set_bitmap,
11976         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
11977         phi_translate, valid_in_set, compute_antic,
11978         find_or_generate_expression, create_expression_by_pieces, insert_aux,
11979         create_value_expr_from, eliminate): Likewise.
11980         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
11981         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
11982         Likewise.
11983         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
11984         eliminate_tail_call): Likewise.
11985         * tree-vectorizer.c (vect_create_index_for_array_ref,
11986         vect_align_data_ref, vect_create_data_ref,
11987         vect_create_destination_var, vect_get_vec_def_for_operand,
11988         vect_finish_stmt_generation, vect_transform_stmt,
11989         vect_transform_loop_bound, vect_transform_loop,
11990         vect_analyze_operations): Likewise.
11991         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
11992         Likewise.
11993         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
11994         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
11995         bsi_after_labels, bsi_last): Likewise.
11996         * tree-ssa-live.c (var_union, change_partition_var,
11997         create_ssa_var_map, calculate_live_on_entry, root_var_init,
11998         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
11999         Likewise.
12000         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
12001         tpa_find_tree): Likewise.
12002         (register_ssa_partition_check): Declare.
12003         (register_ssa_partition): use it.
12004         * tree-ssa-live.c: Include errors.h.
12005         (register_ssa_partition_check): New.
12006         * tree-ssa-operands.c: Include errors.h.
12007         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
12008
12009 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
12010             Catherine Moore  <clm@redhat.com>
12011
12012         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
12013         (FRV_CPU_FR405): New processor enums.
12014         (frv_issue_rate, frv_acc_group): Declare.
12015         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
12016         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
12017         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
12018         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
12019         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
12020         handled by CPP_SPEC.
12021         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
12022         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
12023         (ACC_MASK): New macro.
12024         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
12025         (TARGET_MEDIA_FR450): New macro.
12026         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
12027         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
12028         (LABEL_ALIGN_AFTER_BARRIER): Define.
12029         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
12030         (IACC_FIRST, IACC_LAST): New pair of SPRs.
12031         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
12032         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
12033         (REGISTER_NAMES): Add entries for new registers.
12034         (REG_CLASS_CONTENTS): Update for new register ranges.
12035         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
12036         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
12037         (PACKING_FLAG_USED_P): Delete.
12038         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
12039         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
12040         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
12041         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
12042         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
12043         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
12044         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
12045         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
12046         (CPU_UNITS_QUERY): Define to 1.
12047         * config/frv/frv.c: Include gt-frv.h
12048         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
12049         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
12050         (frv_insn_group): New enumeration.
12051         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
12052         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
12053         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
12054         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
12055         gap left by REGSTATE_LIVE.
12056         (regstate_t): New typedef.
12057         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12058         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
12059         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
12060         Initialize frv_unit_codes[] and frv_type_to_unit[].
12061         (frv_conditional_register_usage): Remove redundant fixing of
12062         accumulator registers.
12063         (frv_insn_packing_flag): Update specification.
12064         (frv_function_prologue): Don't set frv_insn_packing_flag here.
12065         Zero out frv_nops[].
12066         (frv_expand_epilogue): Remove comments about the no-longer-present
12067         SIBCALL_P argument.
12068         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
12069         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
12070         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
12071         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
12072         packing is disabled and if INSN can only issue to M1.
12073         (call_operand): Check TARGET_LONG_CALLS.
12074         (acc_operand, even_acc_operand, quad_acc_operand)
12075         (accg_operand): Simplify.  Don't accept pseudo registers.
12076         (output_move_single): Handle SPR<-zero moves.
12077         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
12078         (frv_registers_update, frv_registers_used_p): Delete.
12079         (frv_registers_set_p): Delete.
12080         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
12081         (frv_issues_to_branch_unit_p): New function.
12082         (frv_packet): New structure.
12083         (frv_cond_flags, frv_regstate_conflict_p): New functions.
12084         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
12085         (frv_registers_update_1, frv_registers_update): New functions.
12086         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
12087         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
12088         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
12089         (frv_sort_insn_group, frv_reorder_packet): New functions.
12090         (frv_pack_insns): Use frv_reorder_packet.
12091         (frv_packet_address): New variable.
12092         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
12093         (frv_register_nop, frv_reorg): New functions.
12094         (bdesc_1arg): Add __SCUTSS.
12095         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
12096         __SUBSS, __SLASS and __SCAN.
12097         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
12098         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
12099         (frv_init_builtins): Register the above builtins.
12100         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
12101         registers.  Turn the referenced accumulators into global registers.
12102         (frv_read_iacc_argument): New function.
12103         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
12104         (frv_split_iacc_move): New function.
12105         (frv_expand_builtin): Handle the new builtins.
12106         * config/frv/frv.md: Replace old schedulers with new order-independent
12107         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
12108         packing algorithm.
12109         (cpu): Add fr550, fr450 and fr405.
12110         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
12111         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
12112         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
12113         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
12114         (fnop, mnop): New patterns.
12115         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
12116         New constants.
12117         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
12118         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
12119         registers.
12120         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
12121         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
12122         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
12123         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
12124         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
12125         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
12126         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
12127         (frv_prefetch0, frv_prefetch): New patterns.
12128         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
12129         -mcpu=simple.  Add -mcpu=fr550.
12130         (MULTILIB_DIRNAMES): Update accordingly.
12131         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
12132         -mcpu=fr450.
12133         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
12134         -mlong-calls and -malign-labels options for FR-V.
12135
12136 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12137
12138         PR c/8420
12139         * c-tree.h (struct c_declspecs): New.
12140         (struct c_declarator, struct c_type_name, struct c_parm): Update
12141         element types.
12142         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
12143         start_function, start_decl, build_c_parm,
12144         make_pointer_declarator): Update prototypes.
12145         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
12146         declspecs_add_scspec, declspecs_add_attrs): New.
12147         (split_specs_attrs): Remove.
12148         * c-parse.in (%union): Add dsptype.
12149         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
12150         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
12151         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
12152         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
12153         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
12154         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
12155         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
12156         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
12157         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
12158         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
12159         maybe_type_quals_attrs): Change to dsptype.
12160         (struct c_declspec_stack): New.
12161         (current_declspecs, declspec_stack): Change type.
12162         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
12163         structures.
12164         (extdefs): Likewise.
12165         (setspecs): Likewise.
12166         (fndef): Use current_declspecs for empty declspecs list.
12167         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
12168         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
12169         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
12170         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
12171         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
12172         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
12173         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
12174         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
12175         structures and helper functions.  Update comments.
12176         (typespec_nonattr): Correct comment.
12177         (maybe_type_quals_attrs, typename): Update to new structures.
12178         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
12179         shadow_tag, shadow_tag_warned, start_function, start_decl,
12180         build_c_parm, make_pointer_declarator,
12181         set_array_declarator_inner, groktypename): Update to new
12182         structures.
12183         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
12184         declspecs_add_scspec, declspecs_add_attrs): New.
12185         (split_specs_attrs): Remove.
12186         (shadow_tag_warned): Make warning for useless type names a
12187         pedwarn.  Give hard error for long, short, signed, unsigned or
12188         _Complex used with struct, union or enum in empty declaration.
12189         Make found_tag a bool.
12190         (grokdeclarator): Remove checks now done at parse time.
12191
12192 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12193
12194         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
12195         c_declarator, struct c_type_name, struct c_parm): New.
12196         (build_array_declarator, set_array_declarator_inner,
12197         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
12198         start_function, start_decl, build_c_parm, build_attrs_declarator,
12199         build_function_declarator, make_pointer_declarator, c_cast_expr,
12200         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
12201         (build_id_declarator): New.
12202         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
12203         structures.
12204         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
12205         ARG_INFO_OTHERS): Remove.
12206         (build_id_declarator): New.
12207         (build_array_declarator, set_array_declarator_inner, groktypename,
12208         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
12209         grokfield, start_function, store_parm_decls_newstyle,
12210         store_parm_decls_oldstyle, store_parm_decls,
12211         build_c_parm, build_attrs_declarator, build_function_declarator,
12212         make_pointer_declarator, grokdeclarator): Update to new
12213         structures.
12214         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
12215         parmtype.
12216         (declarator, notype_declarator, after_type_declarator,
12217         parm_declarator, parm_declarator_starttypename,
12218         parm_declarator_nostarttypename, array_declarator, typename,
12219         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
12220         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
12221         parmlist_1, parmlist_2, parmlist_or_identifiers,
12222         parmlist_or_identifiers_1): Use these types.
12223         (primary, after_type_declarator, parm_declarator_starttypename,
12224         notype_declarator, component_decl, component_declarator,
12225         component_notype_declarator, typename, absdcl,
12226         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
12227         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
12228
12229 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12230
12231         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
12232         in_typeof, record_maybe_used_decl, pop_maybe_used,
12233         c_expr_sizeof_expr, c_expr_sizeof_type): New.
12234         * c-decl.c (parser_obstack): New.
12235         (c_init_decl_processing): Initialize parser_obstack.
12236         (c_write_global_declarations_1): Check for used but undefined
12237         static functions.
12238         * c-parse.in (%union): Add otype.
12239         (save_obstack_position): New.
12240         (extdefs): Use it.
12241         (unary_expr): Update in_sizeof and in_alignof.  Use
12242         c_expr_sizeof_expr and c_expr_sizeof_type.
12243         (sizeof): Update in_sizeof.
12244         (alignof): Update in_alignof.
12245         (typeof): Update in_typeof.
12246         (typespec_nonreserved_nonattr): Call pop_maybe_used.
12247         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
12248         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
12249         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
12250         (build_external_ref): Set C_DECL_USED or call
12251         record_maybe_used_decl if appropriate.
12252         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
12253
12254 2004-09-08  Eric Christopher  <echristo@redhat.com>
12255
12256         * builtins.c: Fix prototype for fold_builtin_atan.
12257
12258 2004-09-08  Eric Christopher  <echristo@redhat.com>
12259
12260         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
12261         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
12262         fold_builtin_atan): New functions. Migrate function bodies...
12263         (fold_builtin_1): ... from here.
12264
12265 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
12266
12267         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
12268         save_size.
12269
12270 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
12271
12272         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
12273         * config/rs6000/power5.md (power5-lmul): Same.
12274
12275 2004-09-08  Richard Henderson  <rth@redhat.com>
12276
12277         PR rtl-opt/17186
12278         * function.c (expand_function_end): Have fall-off-the-end
12279         return path jump around return register setup.
12280
12281 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12282
12283         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
12284         (output_return): Do not test for the presence of the 'unimp' insn.
12285         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
12286         as predicates instead of custom ones.  Return raw strings when
12287         possible.
12288         (output_sibcall): Likewise.  Concatenate strings.
12289         (output_ubranch): Remove kludge for TurboSPARC.
12290         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
12291         (output_v9branch): Likewise.
12292         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
12293         <#>: Set sparc_indent_opcode if the delay slot is filled.
12294         <(>: Likewise.
12295         <)>: New operand to emit the displacement from the saved PC on return.
12296         <@>: Remove.
12297         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
12298         (ASM_OUTPUT_OPCODE): New macro.
12299         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
12300         * config/sparc/sparc.md (normal_branch, inverted_branch,
12301         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
12302         inverted_fpe_branch): Adjust call to output_cbranch.
12303         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
12304         call to output_v9branch.
12305         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
12306         (output_v9branch): Likewise.
12307
12308 2004-09-08  Devang Patel  <dpatel@apple.com>
12309
12310         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
12311         -segs_read_only_addr and -segs_read_write_addr.
12312         (WORD_SWITCH_TAKES_ARG): Same.
12313         (LINK_SPEC): Same.
12314         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
12315         -segs_read_write_addr.
12316
12317 2004-09-08  Richard Henderson  <rth@redhat.com>
12318
12319         * function.c (reference_callee_copied): New.
12320         (assign_parm_setup_reg): Use it.
12321         * calls.c (initialize_argument_information): Likewise.
12322         (emit_library_call_value_1): Likewise.
12323         * function.h (reference_callee_copied): Declare.
12324
12325         * target.h (struct gcc_target): Add callee_copies.
12326         * target-def.h (TARGET_CALLEE_COPIES): New.
12327         (TARGET_PASS_BY_REFERENCE): Update default.
12328         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12329         * targhooks.c (hook_callee_copies_named): New.
12330         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
12331         hook_pass_by_reference_false.
12332         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
12333         * targhooks.h: Update decls.
12334         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
12335         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12336         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
12337         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
12338         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12339         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
12340         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12341         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
12342         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12343         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
12344         (mips_callee_copies): New.
12345         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12346         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
12347         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12348         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
12349         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12350         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
12351         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12352         * config/sh/sh.c (sh_callee_copies): New.
12353         (TARGET_CALLEE_COPIES): New.
12354         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12355         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
12356         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
12357         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
12358         for FUNCTION_ARG_CALLEE_COPIES.
12359         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
12360
12361 2004-09-08  Devang Patel  <dpatel@apple.com>
12362
12363         * tree-if-conv.c (find_phi_replacement_condition): Return true
12364         edge block.
12365         (replace_phi_with_cond_modify_expr): Select conditional expr args
12366         based on true edge basic block.
12367
12368 2004-09-08  Jan Hubicka  <jh@suse.cz>
12369
12370         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
12371         variables being alias set.
12372
12373 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12374
12375         * final.c (shorten_branches, final, get_insn_template,
12376         output_alternate_entry_point, final_scan_insn, alter_subreg,
12377         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
12378         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
12379         * fix-header.c (lookup_std_proto): Likewise.
12380         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
12381         verify_local_live_at_start, update_life_info, mark_reg,
12382         calculate_global_regs_live, allocate_reg_life_data,
12383         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
12384         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
12385         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
12386         * fold-const.c (force_fit_type, div_and_round_double,
12387         may_negate_without_overflow_p, int_const_binop, const_binop,
12388         size_binop, size_diffop, fold_convert_const, fold_convert,
12389         invert_tree_comparison, swap_tree_comparison,
12390         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
12391         range_binop, make_range, fold_cond_expr_with_comparison,
12392         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
12393         fold_abs_const, fold_not_const, fold_relational_const, round_up,
12394         round_down): Likewise.
12395         * function.c (find_function_data, assign_stack_temp_for_type,
12396         instantiate_virtual_regs_lossage, aggregate_value_p,
12397         assign_parm_find_entry_rtl, assign_parm_setup_block,
12398         expand_function_start, expand_function_end, keep_stack_depressed,
12399         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
12400
12401 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
12402
12403         * Makefile.in (tree-loop-linear.o): Added.
12404         (OBJS-common): Add tree-loop-linear.o
12405         * common.opt: New flag, ftree-loop-linear.
12406         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
12407         * tree-flow.h: Add prototype for linear_transform_loops.
12408         * tree-optimize.c: Add linear transform after vectorization.
12409         * tree-pass.h: Add struct pass_linear_transform.
12410         * tree-ssa-loop.c: Add pass_linear_transform.
12411         * tree-loop-linear.c: New file.
12412         * lambda-code.c: gcc_assertify.
12413         (gcc_loop_to_lambda_loop): Handle all exit tests.
12414         Handle case where we have (invariant >= induction var).
12415         (find_induction_var_from_exit_cond): Ditto.
12416
12417 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
12418
12419         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
12420         memory tag is call clobbered, so are its aliases.
12421         (group_aliases): When two memory tags being grouped, if one is
12422         call clobbered, so are the other and its aliases.
12423         (add_may_alias): Remove call-clobbering stuff.
12424         (replace_may_alias): Likewise.
12425         (merge_pointed_to_info): Merge pt_global_mem
12426
12427 2004-09-08  Jan Hubicka  <jh@suse.cz>
12428
12429         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
12430         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
12431         (cgraph_expand_function): Remove stale cgraph edges of currently
12432         compiled function; fix non-unit-at-a-time code copying function
12433         node for later reuse.
12434
12435 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12436
12437         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
12438         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
12439         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
12440         (vec_gc_free, vec_heap_free): New.
12441         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
12442         (DEF_VEC_P): Add allocator argument. Adjust.
12443         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
12444         (DEF_VEC_O): Add allocator argument. Adjust.
12445         (VEC(free)): New.
12446
12447         * tree.h (tree): Define a GC'd vector.
12448         * lamba-code.c (lambda_loop): Likewise.
12449         * value-prof.h (histogram_value): Likewise.
12450
12451 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12452
12453         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
12454         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
12455         gen_lowpart_common, gen_highpart, gen_highpart_mode,
12456         subreg_highpart_offset, operand_subword, operand_subword_force,
12457         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
12458         set_mem_alias_set, change_address_1, verify_rtx_sharing,
12459         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
12460         try_split, add_insn_after, add_insn_before, remove_insn,
12461         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
12462         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
12463         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
12464         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
12465         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
12466         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
12467         record_path_before_1, check_path_after_1, check_path_after): Likewise.
12468         * except.c (gen_eh_region, resolve_one_fixup_region,
12469         remove_unreachable_regions, convert_from_eh_region_ranges_1,
12470         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
12471         connect_post_landing_pads, sjlj_emit_function_exit,
12472         remove_exception_handler_label, remove_eh_handler,
12473         reachable_next_level, collect_one_action_chain,
12474         output_function_exception_table): Likewise.
12475         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
12476         optimize_save_area_alloca, allocate_dynamic_stack_space,
12477         probe_stack_range, hard_function_value): Likewise.
12478         * expmed.c (mode_for_extraction, store_bit_field,
12479         store_fixed_bit_field, extract_bit_field, expand_shift,
12480         expand_mult_const, expand_mult, choose_multiplier,
12481         expand_mult_highpart, expand_divmod, emit_store_flag,
12482         do_cmp_and_jump): Likewise.
12483         * expr.c (convert_move, convert_modes, move_by_pieces,
12484         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
12485         move_block_from_reg, gen_group_rtx, emit_group_load,
12486         emit_group_move, emit_group_store, use_reg, use_regs,
12487         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
12488         emit_move_insn, emit_move_insn_1, emit_push_insn,
12489         expand_assignment, store_expr, count_type_elements,
12490         store_constructor, store_field, safe_from_p, expand_var,
12491         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
12492
12493 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
12494
12495         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
12496         gcc_assert and gcc_unreachable.
12497         * ddg.c (create_ddg_dependence, add_deps_for_def,
12498         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
12499         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
12500         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
12501         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
12502         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
12503         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
12504         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
12505         dataflow_set_copy, hybrid_search, diagnostic.c,
12506         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
12507         * dojump.c (do_jump): Likewise.
12508         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
12509         compute_dom_fast_query, calculate_dominance_info,
12510         free_dominance_info, get_immediate_dominator,
12511         set_immediate_dominator, get_dominated_by,
12512         redirect_immediate_dominators, nearest_common_dominator,
12513         dominated_by_p, verify_dominators, recount_dominator,
12514         iterate_fix_dominators, add_to_dominance_info,
12515         delete_from_dominance_info): Likewise.
12516         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
12517         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
12518         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
12519         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
12520         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
12521         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
12522         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
12523         output_call_frame_info, output_loc_operands, build_cfa_loc,
12524         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
12525         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
12526         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
12527         splice_child_die, attr_checksum, same_dw_val_p,
12528         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
12529         unmark_dies, value_format, output_loc_list, output_die,
12530         output_pubnames, output_aranges, base_type_die, is_base_type,
12531         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
12532         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
12533         field_byte_offset, add_data_member_location_attribute,
12534         add_const_value_attribute, rtl_for_decl_location,
12535         add_location_or_const_value_attribute, add_byte_size_attribute,
12536         add_bit_offset_attribute, add_bit_size_attribute,
12537         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
12538         decl_start_label, gen_formal_parameter_die,
12539         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
12540         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
12541         force_decl_die, force_type_die, gen_decl_die,
12542         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
12543         dwarf2out_finish): Likewise.
12544
12545 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
12546
12547         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
12548         * builtins.c: Include tree-mudflap.h.
12549
12550 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
12551
12552         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
12553         force operand 0.0 into register in XFmode. Also do not force
12554         operand 0.0 into register if !TARGET_CMOVE.
12555         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
12556         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
12557         implement ftst x87 instruction.
12558         (*fp_jcc_7): New insn pattern. Change corresponding split
12559         pattern to handle "general_operand" instead of
12560         "nonimmediate_operand".
12561
12562 2004-09-08  Ben Elliston  <bje@au.ibm.com>
12563
12564         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
12565
12566 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
12567
12568         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
12569         generated from standard va_arg expansion.
12570         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
12571         marked nodes.
12572         (mf_varname_tree, mf_file_function_line_tree): Add some support
12573         for column numbers if compiled with USE_MAPPED_LOCATION.
12574
12575 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
12576
12577         * c-decl.c (groktypename_in_parm_context): Remove function.
12578         * c-tree.h (groktypename_in_parm_context): Remove prototype.
12579
12580 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
12581
12582         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
12583         * c-parse.in: Include c-common.h instead of objc-act.h.
12584         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
12585         myparms, myparm): Remove %type declarations.
12586         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
12587         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
12588         declarations.
12589         (objc_inherit_code, objc_public_flag): Remove.
12590         (typespec_nonreserved_nonattr): Call
12591         objc_get_protocol_qualified_type() instead of get_static_reference()
12592         and get_protocol_reference().
12593         (stmt_nocomp): Call grokparm() on @catch parameter.
12594         (objcdef): Move semantic action to objc_finish_implementation().
12595         (classdef): Move semantic action to objc_start_class_interface(),
12596         objc_continue_interface(), objc_finish_interface(),
12597         objc_start_class_implementation(), objc_continue_implementation(),
12598         objc_start_category_interface() and
12599         objc_start_category_implementation().
12600         (protocoldef): Move semantic actions to objc_start_protocol() and
12601         objc_finish_interface().
12602         (ivar_decl_list): Remove nonterminal.
12603         (visibility_spec): Move semantic actions to objc_set_visibility().
12604         (ivar_decls): Remove assignment to $$.
12605         (ivar_decl): Rephrase in terms of component_decl; call
12606         objc_add_instance_variable().
12607         (ivars, ivar_declarator): Remove nonterminals.
12608         (opt_semi): New nonterminal.
12609         (methodtype): Remove semantic actions.
12610         (methoddef): Move semantic actions to objc_set_method_type(),
12611         objc_start_method_definition() and objc_finish_method_definition().
12612         (methodproto): Move semantic actions to objc_set_method_type() and
12613         objc_add_method_declaration().
12614         (methoddecl): Use objc_typename instead of typename; move semantic
12615         actions to objc_build_method_signature().
12616         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
12617         (optparmlist): Express in terms of optparms and optellipsis.
12618         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
12619         nonterminals.
12620         (keyworddecl): Use objc_typename instead of typename.
12621         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
12622         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
12623
12624 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
12625
12626         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
12627         (MD_FALLBACK_FRAME_STATE_FOR): Update.
12628         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
12629         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
12630         (MD_FROB_UPDATE_CONTEXT): Remove default.
12631         (uw_update_context_1): Instead #ifdef invocation.
12632         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
12633         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
12634         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
12635         (MD_UNWIND_SUPPORT): Undefine this instead.
12636         * config/i386/gnu.h: Likewise.
12637         * config/alpha/linux-unwind.h: New file, macro converted to
12638         function, extracted from..
12639         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
12640         (MD_UNWIND_SUPPORT): Define.
12641         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
12642         * config/i386/linux-unwind.h, config/i386/linux.h,
12643         config/i386/linux64.h: Likewise.
12644         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
12645         MD_HANDLE_UNWABI too.
12646         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
12647         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
12648         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
12649         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
12650         * config/sparc/linux-unwind.h, config/sparc/linux.h,
12651         config/sparc/linux64.h: Likewise.
12652         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
12653         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
12654         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
12655         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
12656         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
12657
12658 2004-09-07  Jan Hubicka  <jh@suse.cz>
12659
12660         * cse.c (fold_rtx):  Avoid building of
12661         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
12662
12663         * tree-ssa-pre.c (grand_bitmap_obstack): New.
12664         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
12665         (init_pre): Initialize obstack.
12666         (fini_pre): Free obstack.
12667
12668 2004-09-07  David Daney  <ddaney@avtrex.com>
12669
12670         * config.gcc: Added support for --with-divide=[breaks|traps] for
12671         mips targets.
12672         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
12673         (TARGET_DIVIDE_TRAPS): New macro.
12674         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
12675         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
12676         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
12677         GENERATE_DIVIDE_TRAPS.
12678         (mips_output_division): Emit conditional trap if
12679         GENERATE_DIVIDE_TRAPS is set.
12680         * doc/install.texi: Document --with-divide.
12681         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
12682
12683 2004-09-07  Caroline Tice  <ctice@apple.com>
12684
12685         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
12686         EDGE_CROSSING, to flags test case.
12687
12688 2004-09-07  Jan Hubicka  <jh@suse.cz>
12689
12690         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
12691         class too.
12692
12693 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
12694
12695         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
12696         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
12697         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
12698         or gcc_unreachable.
12699         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
12700         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
12701         alloc_aux_for_edges, free_aux_for_edges): Likewise.
12702         * cfgcleanup.c (try_forward_edges,
12703         merge_blocks_move_predecessor_nojumps,
12704         merge_blocks_move_successor_nojumps): Likewise.
12705         * cfgexpand.c (expand_gimple_cond_expr,
12706         expand_gimple_tailcall): Likewise.
12707         * cfghooks.c (duplicate_block): Likewise.
12708         * cfglayout.c (record_effective_endpoints,
12709         insn_locators_initialize, change_scope, fixup_reorder_chain,
12710         verify_insn_chain, fixup_fallthru_exit_predecessor,
12711         duplicate_insn_chain, cfg_layout_finalize): Likewise.
12712         * cfgloopanal.c (check_irred): Likewise.
12713         * cfgloop.c (superloop_at_depth, flow_loops_free,
12714         flow_loop_entry_edges_find, flow_loops_find,
12715         flow_loop_outside_edge_p, get_loop_body,
12716         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
12717         get_loop_exit_edges, num_loop_branches, cancel_loop,
12718         verify_loop_structure): Likewise.
12719         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
12720         duplicate_loop_to_header_edge, create_preheader,
12721         create_loop_notes): Likewise.
12722         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
12723         edirect_branch_edge, force_nonfallthru_and_redirect,
12724         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
12725         commit_edge_insertions, commit_edge_insertions_watch_calls,
12726         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
12727         cfg_layout_redirect_edge_and_branch_force,
12728         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
12729         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
12730         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
12731         cgraph_varpool_node): Likewise.
12732         * cgraphunit.c (cgraph_finalize_function,
12733         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
12734         cgraph_expand_function, cgraph_remove_unreachable_nodes,
12735         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
12736         cgraph_mark_inline, cgraph_expand_all_functions,
12737         cgraph_build_static_cdtor): Likewise.
12738         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
12739         simplify_logical, distribute_notes, insn_cuid): Likewise.
12740         * conflict.c (conflict_graph_add, print_conflict): Likewise.
12741         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
12742         coverage_checksum_string): Likewise.
12743         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
12744         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
12745         cse_cc_succs, cse_condition_code_reg): Likewise.
12746         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
12747         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
12748         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
12749         cselib_record_set): Likewise.
12750
12751 2004-09-07  Jan Hubicka  <jh@suse.cz>
12752
12753         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
12754
12755 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
12756
12757         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
12758         fold_convert.
12759         (fold_builtin_strpbrk): Likewise.
12760         * expr.c (array_ref_low_bound): Likewise.
12761         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
12762         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
12763         * tree-sra.c (generate_element_zero): Likewise.
12764         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
12765         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
12766         add_old_iv_candidates, add_iv_candidates): Likewise.
12767         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
12768
12769 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
12770
12771         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
12772         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
12773         c_expand_expr, boolean_increment, nonnull_check_p,
12774         check_function_arguments_recurse, fold_offsetof_1): Likewise.
12775         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
12776         builtin_define_type_max): Likewise.
12777         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
12778         implicit_decl_warning, builtin_function, build_compound_literal,
12779         complete_array_type, grokdeclarator, get_parm_info,
12780         start_function, store_parm_decls_oldstyle,
12781         c_write_global_declarations): Likewise.
12782         * c-format.c (get_constant, decode_format_attr,
12783         maybe_read_dollar_number, get_flag_spec, check_format_arg,
12784         check_format_types, format_type_warning,
12785         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
12786         init_dynamic_diag_info, handle_format_attribute): Likewise.
12787         * c-gimplify.c (push_context, pop_context, finish_bc_block):
12788         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
12789         * c-objc-common.c (c_tree_printer): Likewise.
12790         * c-pch.c (pch_init): Likewise.
12791         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
12792         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
12793         * c-typeck.c (c_incomplete_type_error, composite_type,
12794         common_pointer_type, common_type, same_translation_unit_p,
12795         tagged_types_tu_compatible_p, finish_init, pop_init_level,
12796         set_designator, set_nonincremental_init_from_string,
12797         process_init_element, c_finish_if_stmt): Likewise.
12798         * caller-save.c (init_caller_save, save_call_clobbered_regs,
12799         insert_restore, insert_save, insert_one_insn): Likewise.
12800         * calls.c (emit_call_1, compute_argument_block_size,
12801         precompute_arguments, expand_call, emit_library_call_value_1,
12802         store_one_arg): Likewise.
12803
12804 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
12805
12806         * configure.ac (enable-checking): Add release option. Reorganize
12807         to avoid repetition.
12808         * configure: Rebuilt.
12809         * doc/install.texi (enable-checking): Amend documentation.
12810
12811 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12812
12813         PR bootstrap/17313
12814         * Makefile.in (specs.ready): Depend on cc1$(exeext).
12815
12816 2004-09-06  James E Wilson  <wilson@specifixinc.com>
12817
12818         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
12819         movdf_hardfloat_32bit): Split fG into two alternatives.
12820         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
12821
12822         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
12823
12824 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12825
12826         * final.c (output_in_slot): Delete.
12827         (final_scan_insn): Revert 2004-09-03 change.
12828         (output_asm_insn): Likewise.
12829         * config/sparc/sparc.c (output_return): Likewise.
12830         (output_sibcall): Likewise.
12831
12832 2004-09-06  Jan Hubicka  <jh@suse.cz>
12833
12834         * loop.c (loop_dump_aux): Do not print RTL when not available.
12835         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
12836         frontend specific type nodes.
12837         (produce_memory_decl_rtl): Break out from ...
12838         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
12839         (get_computation_at): Avoid random tree sharing.
12840         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
12841
12842 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
12843
12844         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
12845         unnecessary commands.
12846
12847 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
12848
12849         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
12850         (bitmap.o): Likewise.
12851
12852 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
12853
12854         Unify the management of RTL and tree-level dump files.
12855
12856         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
12857         Don't print function name to the dump file, the pass manager
12858         would do this for us. Add code from the top of
12859         rest_of_compilation, up to the initial RTL dump.
12860         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
12861         close the DFI_sibling dump file.
12862         (rest_of_compilation): Don't do that here.  Remove code up to the
12863         initial RTL dump.
12864         (init_optimization_passes): Remove.
12865         (pass_rest_of_compilation): Change pass name to NULL.
12866         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
12867         Do not call init_optimization_passes.
12868         * toplev.h (init_optimization_passes): Remove.
12869
12870         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
12871         finish_graph_dump_file): Remove SUFFIX parameter.
12872         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
12873         finish_graph_dump_file): Likewise.
12874
12875         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
12876         * cfgexpand.c (pass_expand): Adjust.
12877         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
12878         * passes.c (pass_rest_of_compilation): Adjust.
12879         * predict.c (pass_profile): Adjust.
12880         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
12881         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
12882         pass_split_crit_edges, pass_warn_function_return): Adjust.
12883         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
12884         * tree-dfa.c (pass_referenced_vars): Adjust.
12885         * tree-eh.c (pass_lower_eh): Adjust.
12886         * tree-if-conv.c (pass_build_ssa): Adjust.
12887         * tree-into-ssa.c (pass_build_ssa): Adjust.
12888         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
12889         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
12890         * tree-nrv.c (pass_nrv): Adjust.
12891         * tree-optimize.c (pass_gimple, pass_all_optimizations,
12892         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
12893         pass_init_datastructures): Adjust.
12894         * tree-outof-ssa.c (pass_del_ssa): Adjust.
12895         * tree-profile.c (pass_tree_profile): Adjust.
12896         * tree-sra.c (pass_sra): Adjust.
12897         * tree-ssa-alias.c (pass_may_alias): Adjust.
12898         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
12899         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
12900         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
12901         * tree-ssa-dom.c (pass_dominator): Adjust.
12902         * tree-ssa-dse.c (pass_dse): Adjust.
12903         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
12904         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
12905         * tree-ssa-loop-ch.c (pass_ch): Adjust.
12906         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
12907         pass_loop_done, pass_complete_unroll, pass_iv_canon,
12908         pass_iv_optimize, pass_vectorize): Adjust.
12909         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
12910         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
12911         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
12912         pass_late_warn_uninnitialized): Adjust.
12913         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
12914
12915         * Makefile.in (tree-dump.o): Add new dependencies.
12916         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
12917         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
12918         Likewise.
12919         * toplev.c (dump_file_name): New.
12920         * tree-dump.c (dump_enable_all): Add LETTER parameter.
12921         (struct dump_file_info): Add NUM and LETTER fields.
12922         (dump_files): Adjust and add RTL dump files.
12923         (dump_register): Add NUM and LETTER fields.
12924         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
12925         (dump_begin): Use get_dump_file_name.
12926         (dump_switch_p_1): Adjust call to dump_enable_all.
12927         * tree-dump.h (dump_register): Adjust prototype.
12928         * tree-optimize.c (register_one_dump_file): Take dump file index.
12929         Support flags for RTL dumps.
12930         (register_dump_files): Fill in NUM field of struct dump_file_info.
12931         Track properties both when the gate is executed and when it is not.
12932         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
12933         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
12934         dumps of RTL.
12935         * tree-pass.h (dump_file_name): New.
12936         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
12937         New.
12938
12939         * Makefile.in (passes.o): Add new dependencies.
12940         * passes.c (struct dump_file_info, enum dump_file_index,
12941         dump_file_tbl, init_optimization_passes): Remove.
12942         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
12943         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
12944         dump_enabled_p.
12945         (finish_optimization_passes): Update finish_graph_dump_file loop.
12946         (enable_rtl_dump_file): Remove.
12947         * tree-dump.c (dump_files): Adjust and add RTL dump files.
12948         (enable_rtl_dump_file): Add here.
12949         * tree.h (enum tree_dump_index): Add RTL dump file indices.
12950         * doc/invoke.texi (Debugging options): Document new RTL debugging
12951         options.  Update.
12952
12953 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
12954
12955         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
12956         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
12957         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
12958         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
12959         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
12960         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
12961         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
12962         vec.h: Fix comment formatting.
12963
12964 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
12965
12966         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
12967         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
12968         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
12969         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
12970         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
12971         tree-ssa-loop-niter.c, tree-ssa-operands.c,
12972         tree-ssa-operands.h, tree-ssa-propagate.c,
12973         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
12974         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
12975
12976 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
12977
12978         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
12979         vectorizer is enabled.
12980
12981 2004-09-05  Andreas Jaeger  <aj@suse.de>
12982
12983         * tree-if-conv.c: Spell check comments and clean up whitespace.
12984
12985 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12986
12987         * tree-ssa-loop-ivopts.c: New file.
12988         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
12989         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
12990         target_pres_cost, target_spill_cost): Declare.
12991         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
12992         spill_cost): Renamed to ...
12993         (target_avail_regs, target_res_regs, target_small_cost,
12994         target_pres_cost, target_spill_cost): ... and exported.
12995         (init_set_costs, global_cost_for_size): Work with renamed variables.
12996         * common.opt (flag_ivopts): New flag.
12997         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
12998         REF_ORIGINAL.
12999         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
13000         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
13001         generating SSA form.
13002         (force_gimple_operand): New function.
13003         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
13004         * tree-cfg.c (stmt_bsi): New function.
13005         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
13006         PARAM_IV_MAX_CONSIDERED_USES): New.
13007         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
13008         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
13009         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
13010         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
13011         * tree-nested.c (build_addr): Export.
13012         * tree-optimize.c (init_tree_optimization_passes): Add
13013         pass_iv_optimize.
13014         * tree-pass.h (pass_iv_optimize): Declare.
13015         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
13016         IMAGPART_EXPR.
13017         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
13018         as a phi node argument.
13019         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
13020         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
13021         functions.
13022         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
13023         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
13024         pass_iv_optimize): New pass.
13025         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
13026         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
13027         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
13028         * tree.h (REF_ORIGINAL): New macro.
13029         (build_int_cst_type, unsigned_type_for, zero_p,
13030         cst_and_fits_in_hwi, build_addr): Declare.
13031         * doc/invoke.texi (-fivopts): Document.
13032         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
13033         PARAM_IV_MAX_CONSIDERED_USES): Document.
13034         * doc/passes.texi: Document induction variable optimizations pass.
13035
13036 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13037
13038         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
13039         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
13040         * c-common.c (c_common_attribute_table): Accept parameters to
13041         sentinel attribute.
13042         (check_function_sentinel, handle_sentinel_attribute): Likewise.
13043         * doc/extend.texi: Update accordingly.
13044
13045 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13046
13047         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
13048         New.
13049         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
13050         attribute.
13051         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
13052         New functions.
13053         (c_common_attribute_table): Add `sentinel' attribute.
13054         (check_function_arguments): Handle `sentinel' attribute.
13055         * doc/extend.texi: Document `sentinel' attribute.
13056
13057 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
13058
13059         * configure: Regenerated.
13060
13061 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13062
13063         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
13064
13065         * tree.c (save_expr): No longer TREE_READONLY.
13066
13067 2004-09-04  Jan Hubicka  <jh@suse.cz>
13068
13069         * passes.c (rest_of_clean_state):  Fix merge conflict made during
13070         commiting the patch.
13071
13072 2004-09-04  Jan Hubicka  <jh@suse.cz>
13073
13074         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
13075
13076 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13077
13078         * doc/md.texi (shift patterns): New anchor.  Add reference to
13079         TARGET_SHIFT_TRUNCATION_MASK.
13080         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
13081         * target.h (shift_truncation_mask): New target hook.
13082         * targhook.h (default_shift_truncation_mask): Declare.
13083         * targhook.c (default_shift_truncation_mask): Define.
13084         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
13085         (TARGET_INITIALIZER): Include it.
13086         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
13087         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
13088         reject all out-of-range values.  Fix sign-extension code for modes
13089         whose width is smaller than HOST_BITS_PER_WIDE_INT.
13090         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
13091         (expand_superword_shift, expand_subword_shift): Likewise.
13092         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
13093         (expand_binop): Use them to implement double-word shifts.
13094         * config/arm/arm.c (arm_shift_truncation_mask): New function.
13095         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13096
13097 2004-09-04  Jan Hubicka  <jh@suse.cz>
13098
13099         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
13100         (mix): New macro copied from hashtab.c
13101         (iterative_hash_hashval_t, iterative_hash_pointer,
13102         iterative_hash_host_wide_int): New functions based on hashtab.c
13103         implementation.
13104
13105 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13106
13107         * config/mips/mips.md (mask): New mode attribute.
13108         (zero_extendsidi2): Add memory alternative.
13109         (*zero_extendsidi2_mem): Delete.
13110         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
13111         memory_operand in the TARGET_MIPS16 check.
13112         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
13113         Redefine using :GPR and :SHORT.
13114         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
13115
13116 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
13117
13118         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
13119         using rint_optab.
13120         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
13121         expand_builtin_mathfn.
13122         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
13123         btrunc?f patterns for btrunc_optab. Implement rint_optab using
13124         rint?f patterns.
13125         * optabs.c (init_optabs): Initialize rint_optab.
13126         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
13127         Add new OTI_rint.
13128         (btrunc_optab): Rename macro from trunc_optab.
13129         (rint_optab): Define corresponding macro.
13130
13131         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
13132         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
13133
13134         * config/i386/i386-protos.h (emit_i387_cw_initialization):
13135         Change prototype. Add new int parameter.
13136         * config/i386/i386.c (emit_i387_cw_initialization):
13137         Handle new rounding modes.
13138
13139         * config/i386/i386.h (enum fp_cw_mode): Delete.
13140         (MODE_NEEDED): Handle new rounding modes.
13141         (EMIT_MODE_SET): Change condition to handle new rounding modes.
13142
13143         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
13144         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
13145         represent different rounding modes of frndint insn.
13146         (type): Add frndint type.
13147         (i387, length, memory): Handle this type.
13148         (i387_cw): New attribute definition.
13149         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
13150         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
13151         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
13152         Add "i387_cw" attribute defined to "trunc".
13153         (x86_fnstcw_1): Remove comment.
13154         (*frndintxf2): Rename insn definition to frndintxf2. Move
13155         insn definition near rint?f2 expanders.
13156         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
13157         rintf and rintl built-ins as inline x87 intrinsics.
13158         (frndintxf2_floor): New pattern to implement floor rounding
13159         mode with frndint x87 instruction.
13160         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
13161         floorf and floorl built-ins as inline x87 intrinsics.
13162         (frndintxf2_ceil): New pattern to implement ceil rounding
13163         mode with frndint x87 instruction.
13164         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
13165         ceilf and ceill built-ins as inline x87 intrinsics.
13166         (frndintxf2_trunc): New pattern to implement trunc rounding
13167         mode with frndint x87 instruction.
13168         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
13169         truncf and truncl built-ins as inline x87 intrinsics.
13170         (frndintxf2_mask_pm): New pattern to implement rounding
13171         mode with exceptions with frndint x87 instruction.
13172         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
13173         implement nearbyint, nearbyintf and nearbyintl built-ins as
13174         inline x87 intrinsics.
13175
13176 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13177
13178         * config/mips/mips.md (SHORT): New mode macro.
13179         (size): New mode attribute.
13180         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
13181         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
13182         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
13183         !ISA_HAS_SEB_SEH.
13184         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
13185         *extend[qh]isi2_hw patterns and extending them to di.
13186         (extendqihi2): Implement as define_insn_and_split that produces
13187         extendqisi2 after reload.
13188
13189 2004-09-03  Devang Patel  <dpatel@apple.com>
13190
13191         * Makefile.in (OBJS-common): Add tree-if-conv.o
13192         (tree-if-conv.o): New rule.
13193         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
13194         (get_loop_body_in_bfs_order): New.
13195         * cfgloop.h (get_loop_body_in_bfs_order): New.
13196         * tree-flow.h (enum move_pos): Move here from ..
13197         * tree-ssa-loop-im.c (enum move_pos): here.
13198         (movement_possibility): Make externally visible.
13199         * tree-optimize.c (init_tree_optimization_passes): New entry for
13200         if conversion pass.
13201         * tree-pass.h (pass_if_conversion): New.
13202         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
13203         * tree-if-conv.c: New file.
13204         * doc/passes.texi: Document tree if-conversion pass.
13205         * doc/tree-ssa.texi: Same.
13206
13207 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
13208
13209         PR target/14925:
13210         Makefile.in (LIB2ADDEHSTATIC): New.
13211         (LIB2ADDEHSHARED): New.
13212         (LIBUNWIND): New.
13213         (LIBUNWINDDEP): New.
13214         (SHLIBUNWIND_LINK): New.
13215         (SHLIBUNWIND_INSTALL): New.
13216         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
13217         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
13218         (clean): Remove libunwind*
13219         (stage1-start): Remove and copy stage1/libunwind*.
13220         (stage2-start): Remove and copy stage2/libunwind*.
13221         (stage3-start): Remove and copy stage3/libunwind*.
13222         (stage4-start): Remove and copy stage4/libunwind*.
13223         (stageprofile-start): Remove and copy stageprofile/libunwind*.
13224         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
13225
13226         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
13227         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
13228         tmake_file if --with-system-libunwind isn't used.
13229
13230         * config/ia64/t-glibc-libunwind: New file.
13231         * config/t-libunwind-elf: Likewise.
13232         * unwind-compat.c: Likewise.
13233         * unwind-compat.h: Likewise.
13234         * unwind-dw2-fde-compat.c: Likewise.
13235
13236         * config/ia64/t-glibc (LIB2ADDEH): Updated.
13237         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
13238
13239         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
13240         aliases if needed.
13241         * unwind-dw2-fde-glibc.c: Likewise.
13242         * unwind-dw2.c: Likewise.
13243
13244         * config/t-libunwind (LIB2ADDEH): Updated.
13245         (LIB2ADDEHSTATIC): New.
13246         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
13247         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
13248
13249         * configure.ac: Change --enable-libunwind-exceptions to
13250         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
13251         * configure: Regenerated.
13252         * config.in: Updated.
13253
13254         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
13255         above and mention --with-system-libunwind.
13256         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
13257         removed in gcc 3.4.3 and later.
13258
13259         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
13260         USE_LIBUNWIND_EXCEPTIONS is defined.
13261
13262         * mklibgcc.in: Support libunwind.
13263
13264 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
13265
13266         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
13267         m_NOCONA.
13268
13269 2004-09-03  Richard Henderson  <rth@redhat.com>
13270
13271         PR middle-end/9997
13272         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
13273         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
13274         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
13275         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
13276         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
13277         resize_stack_vars_conflict, add_stack_var_conflict,
13278         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
13279         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
13280         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
13281         expand_one_static_var, expand_one_hard_reg_var,
13282         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
13283         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
13284         (expand_used_vars): Rewrite.
13285         * Makefile.in (cfgexpand.o): Update dependencies.
13286
13287 2004-09-04  Jan Hubicka  <jh@suse.cz>
13288
13289         * cfg.c (free_edge): Use ggc_free.
13290         (expunge_block): Use ggc_free.
13291         * passes.c (rest_of_clean_state): Free after compilation.
13292         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
13293         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
13294
13295 2004-09-03  James E Wilson  <wilson@specifixinc.com>
13296
13297         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
13298         DECL_EXTERNAL check.
13299
13300 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13301
13302         * final.c (output_in_slot): New global variable.
13303         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
13304         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
13305         'output_in_slot' before invoking output_asm_insn.
13306         (output_asm_insn): Add a space after the tab if 'output_in_slot'
13307         is set.
13308         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
13309         final_scan_insn.
13310         (output_sibcall): Likewise.
13311
13312 2004-09-03  Jan Hubicka  <jh@suse.cz>
13313
13314         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
13315         * tree-ssanames (init_ssanames): Likewise.
13316
13317 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
13318
13319         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
13320         objc_declare_protocols, objc_start_protocol,
13321         objc_start_class_interface, objc_start_category_interface,
13322         objc_continue_interface, objc_finish_interface,
13323         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
13324         objc_start_class_implementation, objc_start_category_implementation,
13325         objc_continue_implementation, objc_finish_implementation,
13326         objc_add_method_declaration, objc_start_method_definition,
13327         objc_finish_method_definition, objc_build_keyword_decl,
13328         objc_build_method_signature, objc_build_encode_expr,
13329         objc_build_protocol_expr, objc_build_selector_expr,
13330         objc_build_message_expr, objc_build_string_object,
13331         objc_get_class_reference, objc_get_protocol_qualified_type,
13332         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
13333
13334 2004-09-03  James E Wilson  <wilson@specifixinc.com>
13335
13336         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
13337
13338         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
13339         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
13340         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
13341         (mips_recip1_<fmt>): Use frdiv1 type.
13342         (mips_recip2_<fmt>): Use frdiv2 type.
13343         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
13344         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
13345         and frsqrt1.
13346         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
13347
13348 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
13349
13350         * reload.c (find_reloads): Swap operand_loc pointers for
13351         find_dummy_reload if we have swapped two operands.
13352
13353 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
13354
13355         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
13356         to get the tablejump-insn before the jump-table label.
13357
13358 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
13359
13360         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
13361         objc_declare_protocols, objc_build_message_expr,
13362         objc_finish_message_expr, objc_build_selector_expr,
13363         objc_build_protocol_expr, objc_build_encode_expr,
13364         objc_build_string_object, objc_get_protocol_qualified_type,
13365         objc_get_class_reference, objc_get_class_ivars,
13366         objc_start_class_interface, objc_start_category_interface,
13367         objc_start_protocol, objc_continue_interface, objc_finish_interface,
13368         objc_start_class_implementation, objc_start_category_implementation,
13369         objc_continue_implementation, objc_finish_implementation,
13370         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
13371         objc_add_method_declaration, objc_start_method_definition,
13372         objc_finish_method_definition, objc_add_instance_variable,
13373         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
13374         objc_finish_try_stmt, objc_begin_catch_clause,
13375         objc_finish_catch_clause, objc_build_finally_clause,
13376         objc_build_synchronized, objc_static_init_needed_p,
13377         objc_generate_static_init_call): New prototypes.
13378
13379 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
13380
13381         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
13382         is only one reg.
13383         (ia64_function_value): Ditto.
13384
13385 2004-09-03  Jan Beulich  <jbeulich@novell.com>
13386
13387         * config.gcc: Resurrect NetWare as a target. Handle special case of
13388         Novell linker to be used (specified through --with-ld=) and threading
13389         model of either Posix (default) or NKS.
13390         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
13391         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
13392         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
13393         * config/i386/netware.c, config/i386/netware.h: New.
13394         * config/i386/nwld.c, config/i386/nwld.h: New.
13395         * config/i386/netware-crt0.c: New.
13396         * config/i386/netware-libgcc.c: New.
13397         * config/i386/netware-libgcc.def: New.
13398         * config/i386/netware-libgcc.exp: New.
13399         * config/i386/t-netware, config/i386/t-nwld: New.
13400         * gthr-nks.h: New.
13401         * doc/install.texi: Document NKS threading model.
13402
13403 2004-09-03  Jan Beulich  <jbeulich@novell.com>
13404
13405         PR c/7054
13406         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
13407         * tree.h (initial_max_fld_align): Declare
13408         * stor-layout.c (initial_max_fld_align): Define and initialize.
13409         (maximum_field_alignment): Initialize to the same value.
13410         * common.opt: Add -fpack-struct= variant of switch.
13411         * opts.c: Handle -fpack-struct= variant of switch.
13412         * c-pragma.c: Change #pragma pack() handling so that it becomes
13413         compatible to other compilers: accept individual 'push' argument,
13414         make final pop restore (command line) default, correct interaction
13415         of push/pop and sole specification of a new alignment (so that the
13416         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
13417         to #pragma pack(push, <n>).
13418         * doc/extend.texi: New node "Structure-Packing Pragmas" under
13419         "Pragmas", describing #pragma pack.
13420         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
13421         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
13422         Document new TARGET_DEFAULT_PACK_STRUCT.
13423
13424 2004-09-03  Devang Patel  <dpatel@apple.com>
13425
13426         * dwarf2out.c (gen_field_die). Equate decl number to die.
13427
13428 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
13429
13430         PR target/15832
13431         * global.c (modify_reg_pav): New function.
13432         (make_accurate_live_analysis): Call the new function.  Move pavin
13433         modification by earlyclobber set into the new function.
13434
13435 2004-09-03  Andreas Schwab  <schwab@suse.de>
13436
13437         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
13438         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
13439         extended.
13440
13441 2004-09-02  Jan Beulich  <jbeulich@novell.com>
13442
13443         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
13444         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
13445         not unwind code specific ones.
13446         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
13447         Remove unwind code specific dependencies.
13448         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
13449         Remove gbl-ctors.h.
13450         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
13451         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
13452         * tsystem.h: Declare memcpy and memset when inhibit_libc.
13453
13454 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
13455
13456         * combine.c (try_combine): Delay modifying of insns which cannot
13457         be easily undone.
13458
13459 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
13460
13461         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
13462         tree-loop-im.
13463         * gcc/tree-ssa-loop.c: Ditto
13464         * gcc/tree-ssa-loop-ivcanon.c: Ditto
13465         * gcc/doc/invoke.texi: Ditto.
13466
13467 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
13468
13469         * c-decl.c (store_parm_decls_newstyle): Make static.
13470         (store_parm_decls_from): New function.
13471         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
13472         (store_parm_decls_from): New prototype.
13473
13474 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
13475
13476         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
13477         HImode with STRICT_ALIGNMENT.
13478
13479 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
13480
13481         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
13482         (TARGET_OS_CPP_BUILTINS): Likewise.
13483         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
13484         TARGET_BPABI_CPP_BUILTINS.
13485
13486 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
13487
13488         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
13489
13490 2004-09-02  Eric Christopher  <echristo@redhat.com>
13491
13492         * builtins.c (expand_builtin_cabs): Delete.
13493         (expand_builtin): If unable to fold the values do a normal
13494         library call for builtin_cab*.
13495         (fold_builtin_cabs): Depend on optimize and optimize_size.
13496         * optabs.c (expand_cmplxdiv_straight): Delete.
13497         (expand_cmplxdiv_wide): Ditto.
13498         (expand_vector_binop): Ditto.
13499         (expand_vector_unop): Ditto.
13500         (expand_complex_abs): Delete.
13501         (expand_binop): Remove calls to above functions.
13502         Remove open coding of complex arithmetic.
13503         (expand_unop): Ditto.
13504         * optabs.h: Remove prototypes.
13505
13506 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
13507
13508         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
13509         * c-tree.h (store_parm_decls_newstyle): New prototype.
13510
13511 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
13512
13513         * config/rs6000/rs6000.c (expand_block_clear): Use vector
13514         instructions if available.
13515         (expand_block_move): Likewise.
13516
13517 2004-09-03  Jan Hubicka  <jh@suse.cz>
13518
13519         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
13520
13521 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
13522
13523         * config/arm/symbian.h (LIB_SPEC): Define to empty.
13524         * config/arm/t-symbian (SHLIB_LC): Likewise.
13525
13526 2004-09-02  Paul Brook  <paul@codesourcery.com>
13527
13528         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
13529
13530 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
13531
13532         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
13533         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
13534         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
13535         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
13536         (mips_issue_rate): Remove unreachable abort.
13537         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
13538         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
13539         (mips_block_move_straight, print_operand_address, mips_file_start)
13540         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
13541         (mips_output_conditional_branch, mips_expand_builtin_direct)
13542         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
13543         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
13544         with gcc_assert.
13545
13546 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
13547
13548         * config/mips/mips.md (*lea_high64): Change split condition to
13549         flow2_completed.  Add a peephole2 to generate a more parallel version.
13550
13551 2004-09-02  Jan Hubicka  <jh@suse.cz>
13552
13553         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
13554         GGC.
13555
13556         * ggc-page.c: include tree-flow.h.
13557         (extra_order_size_table): Add stmt_ann_d.
13558         (STAT_LABEL): Rename from ....
13559         (LABEL): ... this one.
13560         * Makefile.in (ggc-page.o): Add dependency.
13561
13562         * ggc-common.c (ggc_force_collect): New global variable.
13563         (loc_description): Add fields "freed", "collected"
13564         (ptr_hash): New static hash
13565         (ptr_hash_entry): New structure.
13566         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
13567         (ggc_record_overhead): Take ptr argument, record it
13568         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
13569         (cmp_statistics): Imrove sorting.
13570         (dump_ggc_loc_statistics): Output newly collected statistics
13571         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
13572         (ggc_free): Call ggc_free_overhead.
13573         (ggc_collect): Force collection when asked to be forced.
13574         (ggc_collect): Call ggc_prune_overhead_list.
13575         * ggc.h (ggc_force_collect): Declare
13576         (ggc_record_overhead): Update prototype.
13577         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
13578
13579 2004-09-02  James E Wilson  <wilson@specifixinc.com>
13580
13581         * common.opt (ftrapping-math): Default to on.
13582
13583 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
13584
13585         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
13586
13587 2004-09-02  Denis Chertykov  <denisc@overta.ru>
13588
13589         PR target/16884
13590         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
13591         match_scratch.
13592         (*movmemqi_insn): Likewise.
13593         (*movmemhi): Likewise.
13594         (clrmemhi): Likewise.
13595         (*clrmemqi): Likewise.
13596         (*clrmemhi): Likewise.
13597
13598 2004-09-02  Paul Brook  <paul@codesourcery.com>
13599
13600         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
13601         default_use_cxa_atexit=yes.
13602
13603 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
13604
13605         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
13606         (struct kernel_old_ucontext): Delete.
13607         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
13608         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
13609         when IN_LIGGCC2.
13610
13611 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
13612
13613         * toplev.c (process_options): Fix typo.
13614
13615 2004-09-01  Richard Henderson  <rth@redhat.com>
13616
13617         PR middle-end/17258
13618         * calls.c (initialize_argument_information): Tighten pass-through
13619         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
13620         Use build_fold_addr_expr.
13621         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
13622         that assumes ADDR_EXPR allocates stack space.
13623         * fold-const.c (build_fold_addr_expr_with_type): Look through
13624         WITH_SIZE_EXPR.
13625
13626 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
13627
13628         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
13629         * ggc.h (ggc_alloc_rtx): Delete.
13630
13631 2004-09-01  Roger Sayle  <roger@eyesopen.com>
13632
13633         * expmed.c (enum alg_code): Remove long unused enumeration values.
13634         (struct mult_cost): New structure to hold the "score" of a synthetic
13635         multiply sequence, including both a rtx_cost and a latency field.
13636         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
13637         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
13638         (struct algorithm): Change type of cost field to be mult_cost.
13639         (synth_mult): Change type of cost_limit argument to be a
13640         pointer to a mult_cost.  Update all cost comparisons to use the
13641         new mult_cost infrastructure.  For alg_add_factor and
13642         alg_sub_factor operations, latency is lower than the rtx_cost.
13643         (choose_mult_variant):  Update calls to synth_mult.  Perform
13644         cost comparisons using the new mult_cost infrastructure.
13645         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
13646         to optain the total rtx_cost of a synth_mult "algorithm".
13647
13648 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
13649
13650         * config/rs6000/power4.md: Increase store latency to 12.
13651         * config/rs6000/power5.md: Same.
13652
13653 2004-09-01  James E Wilson  <wilson@specifixinc.com>
13654
13655         PR target/14064
13656         * config/avr/avr.c (avr_unique_section): Delete prototype and
13657         definition.
13658         (TARGET_ASM_UNIQUE_SECTION): Delete.
13659
13660 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
13661
13662         * c-parse.in (primary): Call objc_build_message_expr(),
13663         objc_build_selector_expr(), objc_build_protocol_expr(),
13664         objc_build_encode_expr() and objc_build_string_object() instead of
13665         build_message_expr(), build_selector_expr(), build_protocol_expr(),
13666         build_encode_expr() and build_objc_string_object(), respectively.
13667         (component_decl_list2): Call objc_get_class_ivars() instead of
13668         get_class_ivars_from_name().
13669         (keyworddecl): Call objc_build_keyword_decl() instead of
13670         build_keyword_decl().
13671         (receiver): Call objc_get_class_reference() instead of
13672         get_class_reference().
13673         (reswords): Add blank line before @@ifobjc section, for clarity.
13674
13675 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
13676
13677         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
13678         to Altivec vetors.
13679
13680 2004-09-01  Wu Yongwei  <adah@sh163.net>
13681             Danny Smith  <dannysmith@users.sourceforge.net>
13682
13683         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
13684         not Windows 'DWORD'.
13685         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
13686         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
13687         (__gthr_win32_recursive_mutex_init_function): Add prototype for
13688         __GTHREAD_HIDE_WIN32API case..
13689         (__gthr_win32_recursive_mutex_lock): Likewise.
13690         (__gthr_win32_recursive_mutex_trylock): Likewise.
13691         (__gthr_win32_recursive_mutex_unlock): Likewise.
13692         (__gthread_recursive_mutex_init_function); Add definition for
13693         __GTHREAD_HIDE_WIN32API case.
13694         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
13695         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
13696         call to InterlockedDecrement.
13697
13698 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13699
13700         * tree-tailcall.c (find_tail_calls): Also fail is statement has
13701         volatile operands.
13702
13703         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
13704
13705         * doc/c-tree.texi: Document new operands for ARRAY_REF and
13706         COMPONENT_REF.
13707
13708 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13709
13710         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
13711         * common.opt (fspeculative-prefetching): New.
13712         * flags.h (flag_speculative_prefetching_set): Declare.
13713         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
13714         values.
13715         * opts.c (flag_sepculative_prefetching_set): New variable.
13716         (common_handle_option): Handle -fspeculative-prefetching.
13717         * passes.c (rest_of_compilation): Ditto.
13718         * profile.c (instrument_values, compute_value_histograms, branch_prob):
13719         Use vectors instead of arrays.
13720         * toplev.c (process_options): Handle -fspeculative-prefetching.
13721         * rtl-profile.c: Include ggc.h.
13722         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
13723         rtl_gen_one_value_profiler_no_edge_manipulation,
13724         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
13725         argument changed.
13726         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
13727         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
13728         argument changed.
13729         * value-prof.c: Include ggc.h.
13730         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
13731         macros.
13732         (insn_prefetch_values_to_profile, find_mem_reference_1,
13733         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
13734         speculative_prefetching_transform): New.
13735         (value_profile_transformations): Call speculative_prefetching_transform.
13736         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
13737         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
13738         tree_find_values_to_profile, find_values to profile): Use vectors
13739         instead of arrays.
13740         (free_profiled_values): Removed.
13741         * value-prof.h (struct histogram_value): Renamed to
13742         struct histogram_value_t.
13743         (histogram_value, histogram_values): New types.
13744         (find_values_to_profile): Declaration changed.
13745         (free_profiled_values): Removed.
13746         (struct profile_hooks): Type of argument of the hooks changed to
13747         histogram_value.
13748         * doc/invoke.texi (-fspeculative-prefetching): Document.
13749
13750 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13751
13752         PR rtl-optimization/16408
13753         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
13754
13755 2004-09-01  Richard Henderson  <rth@redhat.com>
13756
13757         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
13758         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
13759
13760 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
13761
13762         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
13763
13764 2004-09-01  Mike Stump  <mrs@apple.com>
13765
13766         * config/darwin.c (machopic_symbol_defined_p): In addition to
13767         being SYMBOL_REF_LOCAL_P, a symbol must also be
13768         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
13769         defined in this output file, or translation unit in the case
13770         of IMA not being used.
13771         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
13772         never need .indirect_symbol when indirecting.
13773
13774 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
13775
13776         * Makefile.in (bb-reorder.o): Add several dependencies.
13777
13778 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
13779
13780         * fold-const.c (operand_equal_p): Require equal sign also for
13781         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
13782
13783 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
13784
13785         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
13786         for use in configargs.h.  Put the cname in a separate variable.  Use
13787         that to set target_cpu_default2.
13788
13789 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
13790             Nick Clifton  <nickc@redhat.com>
13791
13792         * config/sh/sh.md ("length"): Increase branch length when
13793         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
13794         constant, 2 byte for aligning the constant.
13795
13796 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
13797
13798         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
13799         CPU.
13800         (arm7tdmi-s): New CPU name.
13801         * arm/arm.c (ARM_CORE): Update for new format.
13802         * arm/arm.h (ARM_CORE): Likewise.
13803         * arm/gentune.sh: Update for extra field.
13804         * config.gcc: Likewise.
13805         * arm/arm-tune.md: Regenerate.
13806         * doc/invoke.texi: Document the real processor names for ARM cpus.
13807
13808 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
13809
13810         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
13811         (floatdidf): New functions.
13812         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
13813         (floatdisf): New functions.
13814         * t-arm-elf: Use them.
13815
13816 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
13817
13818         * c-common.h (lookup_interface): Remove prototype.
13819         (is_class_name): Rename to objc_is_class_name.
13820         (lookup_objc_ivar): Rename to objc_lookup_ivar.
13821         (get_current_scope): Rename to objc_get_current_scope.
13822         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
13823         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
13824         (yylexname): Call objc_is_class_name() instead of is_class_name().
13825         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
13826         instead of lookup_objc_ivar().
13827         * stub-objc.c (lookup_interface): Remove stub.
13828         (is_class_name): Rename to objc_is_class_name.
13829         (lookup_objc_ivar): Rename to objc_lookup_ivar.
13830
13831 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
13832
13833         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
13834         * config/arm/lib1funcs.asm: Do not include supplemental .S files
13835         when compiling for Symbian.
13836         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
13837         (TARGET_OS_CPP_BUILTINS): Likewise.
13838         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
13839
13840 2004-08-31  Stan Shebs  <shebs@apple.com>
13841
13842         * toplev.c (process_options): Ensure debug_hooks is initialized.
13843
13844 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
13845
13846         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
13847         * target.h (cxx): Add export_class_data.
13848         * config/arm/arm.c (arm_cxx_export_class_data): New function.
13849         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
13850         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
13851
13852 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
13853
13854         * config/sh/sh.c (output_branch): Check the insn length possibly
13855         in the delayed slot.
13856
13857 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13858
13859         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
13860         blank after ')'.
13861         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
13862
13863         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
13864         (c_sizeof_of_alignof_type): Likewise.
13865         * expr.c (array_ref_element_size): Likewise.
13866         (highest_pow2_factor_for_target): Likewise.
13867         * gimplify.c (canonicalize_addr_expr): Likewise.
13868         (gimplify_compound_lval): Likewise.
13869         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
13870         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
13871         * varasm.c (assemble_variable): Likewise.
13872         (output_constant_def_contents): Alignments are unsigned.
13873
13874 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13875             Jeff Law  <law@redhat.com>
13876
13877         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
13878         gets modified.
13879
13880 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
13881
13882         * hooks.c (hook_bool_void_true): New function.
13883         * hooks.h (hook_bool_void_true): Declare.
13884         * target-def.h (TARGET_CXX): Add
13885         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
13886         * target.h (struct cxx): Add key_method_may_be_inline.
13887         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
13888         function.
13889         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
13890         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
13891         __THUMB_INTERWORK.
13892
13893 2004-08-31  Denis Chertykov  <denisc@overta.ru>
13894
13895         PR target/15417
13896         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
13897         frame pointer register only in Pmode while reload in progress.
13898
13899 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
13900
13901         PR target/15334
13902         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
13903         because it breaks the 32-bit shift patterns that rely on a match_dup.
13904
13905 2004-08-31  Matt Austern  <austern@apple.com>
13906
13907         * config/darwin.c (darwin_make_decl_one_only): Allocate section
13908         names once per compilation, instead of once per symbol.
13909
13910 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
13911
13912         * Makefile.in (build_subdir): New substitution.
13913         (fixinc.sh): Simplify heavily since fixincludes is already built.
13914         (stmp-fixinc): Depend on specs.ready.
13915         (install-mkheaders): Use new location of fixincludes.
13916         (clean): Do not descend into fixinc.
13917         (FORBUILD): Replace with ../$(build_subdir).
13918         * configure.ac (build_subdir): Substitute.
13919         (FORBUILD): Do not set.
13920         (all_outputs): Remove fixinc/Makefile.
13921         (default commands): Do not create links in fixinc.
13922         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
13923         the fixincludes configuration steps and substituting
13924         @FIXINCL@ in fixinc.in.
13925         * fixinc.in: New, from fixinc/fixincl.sh.
13926
13927         * fixinc/*: Removed.
13928
13929 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
13930
13931         * attribs.c (strip_attrs): Remove.
13932         (split_specs_attrs): Move ...
13933         * c-decl.c: ... to here.
13934         * tree.h (split_specs_attrs, strip_attrs): Remove.
13935         * c-tree.h (split_specs_attrs): Declare.
13936
13937 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
13938
13939         * read-rtl.c: Disable RTL checking.
13940         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
13941
13942 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
13943
13944         * config/mips/mips.md (fcond): New code macro and attribute.
13945         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
13946         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
13947         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
13948
13949 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
13950
13951         Revert:
13952         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
13953         PR rtl-optimization/16590
13954         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
13955
13956 2004-08-30  Andrew Pinski  <apinski@apple.com>
13957
13958         * hard-reg-set.h:
13959         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
13960         * ChangeLog: Fix previous ChangeLog entry.
13961
13962         PR rtl-opt/13987
13963         * config.host (use_long_long_for_widest_fast_int): New, default is
13964         off.
13965         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
13966         * configure.ac: If use_long_long_for_widest_fast_int, then
13967         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
13968         * configure: Regenerate.
13969         * config.in: Regenerate.
13970         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
13971         New: widest integer type supported efficiently in hardware for the
13972         host.
13973         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
13974         HOST_BITS_PER_WIDEST_FAST_INT.
13975         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
13976         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
13977         HOST_WIDEST_FAST_INT
13978         instead of HOST_WIDE_INT.
13979         (HARD_REG_SET_LONGS): Likewise.
13980         (UHOST_BITS_PER_WIDE_INT): Likewise.
13981         Change the checks for the fast cases to be based on
13982         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
13983
13984 2004-08-30  Steven Bosscher  <stevenb@suse.de>
13985
13986         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
13987         not the pointers.
13988
13989 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
13990
13991         PR 12738
13992         PR 17205
13993         Radar 3460526
13994         Radar 3775729
13995         * c-decl.c (grokdeclarator): Produce error for 'static' on local
13996         function declaration.
13997
13998 2004-08-30  Richard Henderson  <rth@redhat.com>
13999
14000         * expr.c (array_ref_element_size): Force aligned_size back to
14001         sizetype.
14002         (component_ref_field_offset): Similarly for aligned_offset.
14003         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
14004         low-bound, element-size, field-offset fields rather than
14005         computed values.
14006
14007 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
14008
14009         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
14010         redundant code.
14011
14012 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
14013
14014         * c-tree.h (struct language_function): Add arg_info element.
14015         * c-decl.c (current_function_arg_info): New.
14016         (grokdeclarator, store_parm_decls): Use it instead of
14017         DECL_ARGUMENTS.
14018         (c_push_function_context, c_pop_function_context): Save and
14019         restore it.
14020
14021 2004-08-30  Richard Henderson  <rth@redhat.com>
14022
14023         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
14024         COMPONENT_REF to pointer arithmetic.
14025         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
14026         constant "c" as a valid constant initializer.  Allow narrowing of
14027         differences against the same base object, for any base object.
14028
14029 2004-08-30  Richard Henderson  <rth@redhat.com>
14030
14031         * expr.c (expand_expr_addr_expr): New.
14032         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
14033
14034 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
14035
14036         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
14037         (mips_fp_condition): New enum.
14038         (mips_fp_conditions): New array.
14039         (print_fcc_operand): Delete.
14040         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
14041         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
14042         (builtin_description): Add "cond" field.
14043         (DIRECT_BUILTIN): Initialize it.
14044         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
14045         into INSN and CODE.  Initialize the "cond" field.
14046         (CMP_BUILTINS): Update accordingly.
14047         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
14048         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
14049         mips_fp_condition as argument.  Make it the final operand of the
14050         comparison instruction.
14051         (mips_expand_builtin): Update accordingly.
14052         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
14053         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
14054         the gaps.
14055         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
14056         Don't use the 'Q' operand prefix; just print the operand normally.
14057         (mips_cabs_*, mips_c_*): Delete, replacing with...
14058         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
14059         patterns.  Split the 4s versions into 2 ps patterns after reload.
14060
14061 2004-08-30  Richard Henderson  <rth@redhat.com>
14062
14063         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
14064         assuming an ADDR_EXPR is non-null.
14065
14066 2004-08-30  Jason Merrill  <jason@redhat.com>
14067
14068         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
14069
14070 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14071
14072         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
14073         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
14074         gcc_assert and gcc_unreachable instead of abort.
14075         * alloc-pool.c (abort, fancy_abort): Remove.
14076         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
14077         gcc_assert or gcc_unreachable.
14078         * attribs.c (init_attributes, decl_attributes): Likewise.
14079         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
14080         mark_bb_for_unlikely_executed_section,
14081         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
14082         fix_crossing_unconditional_branches):  Likewise.
14083         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
14084         bitmap_operation):  Likewise.
14085         * bt-load.c (insn_sets_btr_p, augment_live_range,
14086         move_btr_def):  Likewise.
14087         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
14088         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
14089         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
14090         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
14091         expand_builtin_memcmp, expand_builtin_args_info,
14092         std_gimplify_va_arg_expr, expand_builtin_unop,
14093         expand_builtin_fputs, expand_builtin_profile_func,
14094         expand_builtin_fork_or_exec, fold_builtin_bitop,
14095         fold_builtin_classify, fold_builtin_fputs): Likewise.
14096
14097 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14098
14099         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
14100         * gcov.c (abort): Remove undef.
14101
14102         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
14103         (struct tree_binfo): Remove primary field.
14104
14105 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
14106
14107         * fixinc/Makefile.in (machname.h): Remove.
14108         (fixincl.x): Do not pass $@ to genfixes.
14109         * fixinc/genfixes: Remove code to produce machname.h.
14110         * fixinc/fixincl.sh: Move it here instead.
14111         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
14112         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
14113         return a bool indicating whether pz_mn_name_pat is NULL.
14114         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
14115         Declare extern C variables for the ENV_TABLE.
14116         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
14117         instead use the result of mn_get_regexps.
14118         * fixinc/fixtests.c: Likewise.
14119
14120 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
14121
14122         * configure.ac: Do not run fixincludes after stage1 during
14123         toplevel bootstrap.
14124         * configure: Regenerate.
14125
14126 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
14127
14128         * sched-deps.c (get_condition): Partially revert previous, by never
14129         trying to extract the condition from a condjump.
14130
14131 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14132
14133         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
14134         (handle_visibility_attribute, c_determine_visibility): Likewise.
14135         * c-common.h (my_friendly_assert): Remove.
14136
14137 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
14138
14139         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
14140         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
14141         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
14142         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
14143         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
14144
14145 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
14146
14147         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
14148         in COMPONENT_REF nodes.
14149
14150 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14151
14152         PR c++/15378
14153         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
14154         global_dc->warning_as_error_requested.
14155         * diagnostic.c (diagnostic_initialize): Tidy.
14156         * diagnostic.h (diagnostic_context::x_data): Remove
14157         (diagnostic_context::issue_warnings_are_errors_message): Rename
14158         from warnings_are_errors_message.
14159         (diagnostic_context::warning_as_error_requested): New.
14160
14161 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
14162
14163         * sched-deps.c (get_condition): Fix breakage in previous patch.
14164
14165 2004-08-30  Paul Brook  <paul@codesourcery.com>
14166
14167         * doc/install.texi: Fix broken mpfr link.
14168
14169 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
14170
14171         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
14172         other FreeBSD platforms.
14173
14174 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14175
14176         * arm.h (REVERSE_CONDITION): Define.
14177         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
14178
14179 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14180
14181         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
14182         just the codes, call reversed_comparison_code ().
14183         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
14184         (not_reg_cond): Use reversed_comparison_code.
14185         (and_reg_cond): Likewise.
14186         * ifcvt.c (cond_exec_process_if_block): Likewise.
14187         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
14188
14189 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14190
14191         * sched-deps.c (get_condition): Rewrite using jump support functions.
14192         Use reversed_comparison_code.
14193         (conditions_mutex_p): Use reversed_comparison_code.
14194
14195 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14196
14197         * config/mips/mips.c (override_options): Disable hot/cold partitioning
14198         for MIPS16.
14199
14200 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14201
14202         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
14203         (mips_function_type): Move to mips.c.
14204         * config/mips/mips.c (mips_builtin_type): New enum.
14205         (builtin_description): Replace code and ftype with builtin_type
14206         and function_type.
14207         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
14208         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
14209         (CODE_FOR_mips_abs_ps): Define.
14210         (mips_bdesc): Use new macros.
14211         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
14212         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
14213         (mips_expand_builtin_direct): New function.
14214         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
14215         builtin.  Replace boolean parameter with builtin_type.
14216         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
14217         (mips_expand_4s_compare_builtin): Delete, replacing with...
14218         (mips_expand_builtin_compare): ...this new function.
14219
14220 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
14221
14222         PR rtl-optimization/16590
14223         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
14224
14225 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
14226
14227         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
14228         * tree-ssa-propagate.c: Fix documentation.
14229
14230 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14231
14232         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
14233         (mov[sd]fcc): Likewise.
14234
14235 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14236
14237         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
14238
14239 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14240
14241         * config/mips/mips.md (divide_condition): New mode attribute.
14242         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
14243         (sqrt[sd]f3): Redefine using SCALARF.
14244         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
14245         patterns.
14246
14247 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14248
14249         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
14250         (loadx, storex, fmt, UNITMODE): New mode attributes.
14251         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
14252         (mul[sd]f3): Redefine using :SCALARF.
14253         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
14254         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
14255         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
14256         Check TARGET_FUSED_MADD for V2SF too.
14257         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
14258         were already named.
14259         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
14260         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
14261
14262 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14263
14264         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
14265         V2SF_type_node if it will be needed.
14266
14267 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14268
14269         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
14270         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
14271         (mips_prepare_builtin_target): New function.
14272         (mips_expand_builtin): Use them.  Update calls to subroutines.
14273         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
14274         cmp_choice with a boolean argument to select between movt and movf.
14275         Take the comparison's icode as an argument, not the function's fcode.
14276         (mips_expand_compare_builtin): New function.  Rename existing function
14277         to mips_expand_scalar_compare_builtin.
14278         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
14279         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
14280         comparison's icode as an argument, not the builtin's fcode.
14281
14282 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14283
14284         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
14285         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
14286         registers are false and -1 if all registers are true.
14287         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
14288         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
14289         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
14290         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
14291         (bc1any2t, bc1any2f): Likewise CCV2.
14292         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
14293
14294 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14295
14296         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
14297         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
14298         UNSPEC rather than an IF_THEN_ELSE.
14299         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
14300         mips_cond_move_tf_ps by name.
14301
14302 2004-08-29  Chao-ying Fu  <fu@mips.com>
14303             James E Wilson  <wilson@specifixinc.com>
14304
14305         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
14306         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
14307         * config/mips/mips-ps-3d.md: New file.
14308         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
14309         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
14310         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
14311         (mips_output_move): Emit "mov.ps" for V2SFmode.
14312         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
14313         MODE_VECTOR_FLOAT.
14314         (override_options): Check if TARGET_MIPS3D and there was an explicit
14315         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
14316         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
14317         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
14318         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
14319         and allow CCV2 and CCV4 to occupy two and four CC registers.
14320         (print_fcc_operand): New function.
14321         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
14322         %Z to call print_fcc_operand.
14323         (mips_function_value): Handle MODE_VECTOR_FLOAT.
14324         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
14325         (mips_vector_mode_supported_p): New function.
14326         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
14327         (builtin_description): New struct.
14328         (mips_bdesc): New array of struct builtin_description.
14329         (mips_expand_builtin, mips_init_builtins,
14330         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
14331         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
14332         functions.
14333         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
14334         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
14335         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
14336         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
14337         "-mips3d", and "-mno-mips3d".
14338         (ASM_SPEC): Map -mips3d to -mips3d in gas.
14339         (EXTRA_CONSTRAINT_Y): New macro.
14340         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
14341         multi-letter constraint 'Y'.
14342         (CONSTRAINT_LEN): New macro.
14343         (enum mips_builtins): New for MIPS builtin functions.
14344         (enum mips_function_type): New for the types of MIPS builtin functions.
14345         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
14346         * config/mips/mips.md: New constants for paired single and MIPS-3D
14347         instructions.  Include the new mips-ps-3d.md file.
14348         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
14349         movv2sf_hardfloat_64bit): New named patterns.
14350         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
14351         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
14352         sdxc1_v2sf_di): New unnamed patterns.
14353         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
14354         const_vector support.
14355         (const_0_or_1_operand): New predicate.
14356         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
14357
14358 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
14359
14360         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
14361         (tree-ssa-propagate.o): New rule.
14362         (GTFILES): Add tree-ssa-propagate.c.
14363         * tree-flow.h (struct stmt_ann_d): Remove field
14364         in_ccp_worklist.
14365         * tree-ssa-propagate.c: New file.
14366         * tree-ssa-propagate.h: New file.
14367         * tree-ssa-ccp.c: Re-write to use the routines from
14368         tree-ssa-propagate.c.
14369
14370 2004-08-28  Andrew Pinski  <apinski@apple.com>
14371
14372         * tree-ssa-loop.c: Remove extra include of basic-block.h.
14373
14374 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
14375
14376         * c-common.h: Update comments about ObjC/ObjC++ entry points.
14377         (objc_is_reserved_word): New prototype.
14378         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
14379         separate section; these are call-backs.
14380         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
14381         ObjC/ObjC++ "@" keywords.
14382         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
14383         prototypes; they already live in c-common.h.
14384         * stub-objc.c: Update copyright notice.
14385         (objc_is_reserved_word): New stub.
14386
14387 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
14388
14389         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
14390         even when not checking.
14391
14392 2004-08-27  Jason Merrill  <jason@redhat.com>
14393
14394         PR c++/13684
14395         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
14396         (gimple_push_cleanup): Add eh_only parm.
14397         (gimplify_target_expr): Pass it.
14398         * c.opt (-fno-threadsafe-statics): New option.
14399         * c-opts.c (c_common_handle_option): Handle it.
14400         * c-common.h (flag_threadsafe_statics): Declare it.
14401         * c-common.c (flag_threadsafe_statics): Record it.
14402         * doc/invoke.texi: Document it.
14403         * tsystem.h (_GNU_SOURCE): Define.
14404         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
14405         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
14406         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
14407         (__gthread_recursive_mutex_init_function): New fn.
14408         (__gthread_recursive_mutex_lock): New fn.
14409         (__gthread_recursive_mutex_trylock): New fn.
14410         (__gthread_recursive_mutex_unlock): New fn.
14411         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
14412         * gthr-win32.h, gthr-vxworks.h: Likewise.
14413         * gthr.h: Document.
14414
14415 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
14416
14417         * config/rs6000/rs6000.c (rs6000_override_options): Increase
14418         maximum skip to 15.  Set function alignment, jump alignment, and
14419         loop alignment to 16 for processors that form dispatch groups.
14420         (rs6000_rtx_costs): outer_code is used.
14421
14422 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14423
14424         * stor-layout.c (sizetype_set): Remove.
14425         (set_sizetype): Don't test or set it.
14426
14427         * tree.h (size_int_type): Remove.
14428         * fold-const.c: Do not #include gt-fold-const.h.
14429         (size_htab_hash, size_htab_eq): Remove.
14430         (size_int_kind): Use build_int_cst.
14431         (new_const, size_htab): Remove.
14432         (size_int_type): Remove.
14433         (round_up): Use build_int_cst.
14434         (round_down): Likewise. Remove spurious constant build.
14435
14436 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14437
14438         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
14439         Add is_release variable, use it for --enable-werror and
14440         --enable-checking defaults.
14441         * system.h (gcc_assert, gcc_unreachable): New.
14442         * doc/install.texi (--enable-checking): Update.
14443         * configure, config.in: Rebuilt.
14444
14445 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
14446
14447         * rtl.h (read_rtx): Change prototype.
14448         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
14449         line number.  Return true on success.
14450         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
14451         callers accordingly.
14452
14453 2004-08-26  Richard Henderson  <rth@redhat.com>
14454
14455         * c-typeck.c (build_offsetof): Remove.
14456         * c-tree.h (build_offsetof): Remove.
14457         * c-common.c (fold_offsetof_1, fold_offsetof): New.
14458         * c-common.h (fold_offsetof): Declare.
14459         * c-parse.in (offsetof_base): New.
14460         (offsetof_member_designator): Use it.  Build references, not just
14461         a tree list.
14462         (primary): Use fold_offsetof, not build_offsetof.
14463
14464 2004-08-26  Richard Henderson  <rth@redhat.com>
14465
14466         * tree.c (staticp): Return the static object.
14467         * tree.h (staticp): Update decl.
14468         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
14469         * langhooks.c (lhd_staticp): Return NULL_TREE.
14470         * langhooks-def.h (lhd_staticp): Update decl.
14471         * c-common.c (c_staticp): Return the static object.
14472         * c-common.h (c_staticp): Update decl.
14473
14474 2004-08-26  Richard Henderson  <rth@redhat.com>
14475
14476         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
14477         modes.
14478
14479 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
14480
14481         PR c/13801
14482         * c-decl.c (struct c_binding): Add type and inner_comp fields.
14483         (bind): Set type and inner_comp fields.
14484         (pop_scope): Restore type of decl to the correct type from an
14485         outer scope.  Give error when popping file scope for incomplete
14486         arrays completed incompatibly with default initialization in an
14487         inner scope.
14488         (diagnose_mismatched_decls): Handle externs with initializers at
14489         block scope.
14490         (pushdecl): Set type of external declaration at block scope based
14491         only on the visible declarations.  Save type when changing the
14492         type of a declaration.  Merge an external declaration at block
14493         scope with a visible static declaration at file scope.
14494         (implicitly_declare): Give recycled old declaration the new type
14495         except for incompatible declarations of built-in functions, saving
14496         the old type.
14497
14498 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
14499
14500         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
14501
14502 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
14503
14504         * tree-alias-common.c (gate_pta): New function.
14505         (pass_build_pta): Use it.
14506         (pass_del_pta): Use it.
14507         (delete_alias_vars): Don't check flag_tree_points_to.
14508
14509 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
14510
14511         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
14512         TFmode as additional register mode cloberred by call.
14513
14514 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
14515
14516         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
14517         parallel pattern for library call returning DImode in
14518         mixed mode.
14519
14520 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
14521
14522         * config/rs6000/rs6000.c (function_arg): Generate parallel
14523         pattern for more split args.
14524
14525 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
14526
14527         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
14528         either gen_movdi_di_update or gen_movdi_si_update depending on
14529         target mode.
14530         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
14531         to generate two versions.
14532
14533 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
14534
14535         * Makefile.in (lambda-code.o): New.
14536         (lambda-trans.o): Ditto.
14537         (TREE_DATA_REF_H): Ditto.
14538         (LAMBDA_H): Ditto.
14539         (lambda-mat.o): Use LAMBDA_H.
14540         (tree-data-ref.o): Ditto.
14541         * lambda-code.c: New file.  Lambda code generation algorithm.
14542         * lambda-trans.c: Ditto. Lambda transformation matrix support.
14543         * lambda.h: Add lambda loop structures.
14544         Add lambda loopnest structures.
14545         Add lambda body vector structure.
14546         Add lambda linear expression structures.
14547         Add prototypes for functions in new files.
14548         * lambda-mat.c: Include tree.h
14549
14550 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
14551             Sebastian Pop  <pop@cri.ensmp.fr>
14552
14553         * tree-data-ref.h: Include lambda.h
14554         (free_dependence_relation): Declared here.
14555         (free_dependence_relations): Ditto.
14556         (free_data_refs): Ditto.
14557         * tree-data-ref.c (free_dependence_relation): New function.
14558         (free_dependence_relations): Ditto.
14559         (free_data_refs): Ditot.
14560         (analyze_all_data_dependences): Free datarefs and dependence_relations.
14561         (build_classic_dist_vector): Store in the dependence_relations the
14562         information. Each arc in the dependence_relations graph is labelled
14563         with the distance and direction vectors.
14564         (build_classic_dir_vector): Ditto.
14565         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
14566         Now computes again the whole dependence graph including read-read
14567         relations.
14568         (compute_data_dependences_for_loop): Now dependence_relations contains
14569         all the data, and thus it doesn't need to initialize the classic_dir
14570         and classic_dist vectors.
14571         (analyze_all_data_dependences): Adjusted for using the new interface of
14572         compute_data_dependences_for_loop.  Remove the statistics dump.
14573
14574 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
14575
14576         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
14577         (xtensa_expand_block_move): Update comment.
14578         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
14579
14580 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
14581
14582         PR target/13506
14583         * toplev.c (crash_signal): If we crashed while emitting
14584         a user asm, then die more gracefully.
14585
14586 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14587
14588         PR target/17119.
14589         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
14590         checking for a valid constant, regardless of sign.
14591
14592 2004-08-25  Richard Henderson  <rth@redhat.com>
14593
14594         PR target/16974
14595         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
14596         if the constant satisfies add_operand.
14597
14598 2004-08-25  Richard Henderson  <rth@redhat.com>
14599
14600         PR debug/10695
14601         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
14602         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
14603         unwind info for >16-bit frames.
14604
14605 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
14606
14607         PR target/17171
14608         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
14609
14610 2004-08-25  Richard Henderson  <rth@redhat.com>
14611
14612         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
14613         (TARGET_CANNOT_FORCE_CONST_MEM): New.
14614
14615 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
14616
14617         * doc/tree-ssa.texi: Document new operand iterator.
14618
14619 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
14620
14621         PR target/16480
14622         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
14623         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
14624         as PLUS base regs.
14625
14626 2005-08-28  Paul Brook  <paul@codesourcery.com>
14627
14628         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
14629         -mfpu=vfp -march=armv5t
14630         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
14631
14632 2004-08-25  Richard Henderson  <rth@redhat.com>
14633
14634         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
14635         * target.h (struct gcc_target): Add scalar_mode_supported_p.
14636         * targhooks.c (default_scalar_mode_supported_p): New.
14637         * targhooks.h (default_scalar_mode_supported_p): Declare.
14638         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
14639
14640         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
14641         before attempting to create types.  Tidy.
14642         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
14643
14644         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
14645         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
14646
14647 2004-08-25  Richard Henderson  <rth@redhat.com>
14648
14649         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
14650         set REAL_MODE_FORMAT for TFmode.
14651
14652 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
14653
14654         * c-decl.c (grokparm): New function.
14655         * c-tree.h (grokparm): New prototype.
14656
14657 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
14658
14659         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
14660         iterator controlling structure.
14661         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
14662         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
14663         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
14664         iterator flags.
14665         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
14666         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
14667         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
14668         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
14669         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
14670         Empty operand pointers.
14671         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
14672         (op_iter_next_use): New.  Return next use_operand_p.
14673         (op_iter_next_def): New.  Return next def_operand_p.
14674         (op_iter_next_tree): New.  Return next operands as a tree.
14675         (op_iter_init): New.  Initialize an iterator structure.
14676         (op_iter_init_use): New.  Initialize structure and get the first use.
14677         (op_iter_init_def): New.  Initialize structure and get the first def.
14678         (op_iter_init_tree): New.  Initialize structure and get the first tree.
14679         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
14680         (op_iter_init_maydef): New.  Initialize structure and get the first
14681         V_MAY_DEF operands.
14682         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
14683         * tree-dfa.c (compute_immediate_uses_for_stmt,
14684         redirect_immediate_uses): Use new operand iterator.
14685         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
14686         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
14687         operands instead of using *_disappeared_p routines.
14688         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
14689         ssa_rewrite_stmt): Use new operand iterator.
14690         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
14691         rewrite_trees): Use new operand iterator.
14692         * tree-pretty-print.c (dump_vops): Use new operand iterator.
14693         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
14694         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
14695         dump_points_to_info): Use new operand iterator.
14696         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
14697         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
14698         operand iterator.
14699         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
14700         propagate_necessity): Use new operand iterator.
14701         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
14702         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
14703         a parameter instead of a stmt_ann_t.
14704         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
14705         build_tree_conflict_graph): Use new operand iterator.
14706         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
14707         rewrite_mem_refs): Use new operand iterator.
14708         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
14709         check_loop_closed_ssa_use): Use new operand iterator.
14710         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
14711         * tree-ssanames.c (release_defs): Use new operand iterator.
14712         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
14713
14714 2004-08-25  Adam Nemet  <anemet@lnxw.com>
14715
14716         * tlink.c (initial_cwd): New variable.
14717         (tlink_init): Initialize it.
14718         (recompile_files): Use tlink_execute() instead of system().  Don't
14719         duplicate verbose output of collect_execute.  Restore initial_cwd.
14720         Update comment before the function.
14721
14722 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
14723
14724         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
14725         accept) a cast from one Objective-C pointer type to another.
14726
14727 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
14728
14729         * doc/install.texi: Document that libstdc++-v3 requires
14730         now automake 1.9.1.
14731
14732 2004-08-25  Caroline Tice  <ctice@apple.com>
14733
14734         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
14735         to comments at start of function.
14736         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
14737         comment.
14738         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
14739         merge_blocks_move_predecessor_nojumps,
14740         merge_blocks_move_successor_nojumps, merge_blocks_move,
14741         try_crossjump_to_edge, try_crossjump_bb): Likewise.
14742         * cfglayout.c (fixup_reorder_chain): Likewise.
14743         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
14744         cfg_layout_can_merge_blocks_p):  Likewise.
14745         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
14746         * passes.c (rest_of_compilation): Update comments for calling
14747         optimization that partitions hot/cold basic blocks.
14748         * doc/invoke.texi:  Update documentation of
14749         freorder-blocks-and-partition flag.
14750
14751 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
14752
14753         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
14754         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
14755
14756 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
14757
14758         * config/mips/mips.md (any_shift): New code macro.
14759         (optab, insn): New code attributes.
14760         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
14761         Use the standard rather than internal patterns for the MIPS16
14762         double-shift optimization.
14763         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
14764         Redefine using :GPR and any_shift.
14765         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
14766         to cover all three shifts.
14767         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
14768         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
14769         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
14770
14771 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
14772
14773         * gimplify.c (lookup_tmp_var): Separate temporaries when not
14774         optimizing.
14775
14776 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14777
14778         PR libstdc++/17005 (fix for HP-UX 11.11)
14779         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
14780         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
14781         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
14782         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
14783         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
14784         (LINK_SPEC): Handle march=1.0 option.
14785         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
14786         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
14787         (SUBTARGET_OPTIONS): New define.
14788         (LINK_SPEC): Handle march=1.0 option.
14789         (STARTFILE_SPEC): New define.
14790         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
14791         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
14792         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
14793         (SUBTARGET_OPTIONS): New define.
14794         (LINK_SPEC): Handle march=1.0 option.
14795         (STARTFILE_SPEC): New define.
14796         * config/pa/pa.c (override_options): Add code to process -munix= option.
14797         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
14798         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
14799         defines.
14800         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
14801         (SUBTARGET_OPTIONS): Provide default define.
14802         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
14803         STANDARD_STARTFILE_PREFIX_2): New defines.
14804         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
14805         (ENDFILE_SPEC): Use %O.
14806         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
14807         Mention issue caused by changing namespace and runtime to UNIX 95/98.
14808         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
14809         Document -munix=std option.
14810
14811 2004-08-25  Steven Bosscher  <stevenb@suse.de>
14812
14813         * cse.c (cse_around_loop, cse_check_loop_start,
14814         cse_set_around_loop): Remove.
14815         (cse_basic_block): Remove the around_loop argument.
14816         (cse_end_of_basic_block): Remove the after_loop argument.
14817         (cse_main): Likewise.
14818         * rtl.h (cse_main): Update prototype.
14819         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
14820         rest_of_handle_gcse): Update cse_main calls.
14821
14822 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14823
14824         * tree.h  (build_int_cst): New, sign extended constant.
14825         (build_int_cstu): New, zero extended constant.
14826         (build_int_cst_wide): Renamed from build_int_cst.
14827         * tree.c (build_int_cst, build_int_cstu): New.
14828         (build_int_cst_wide): Renamed from build_int_cst.
14829         (make_vector_type, build_common_tree_nodes,
14830         build_common_tree_nodes_2): Adjust build_int_cst calls.
14831         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
14832         expand_builtin_strpbrk, expand_builtin_fputs,
14833         build_string_literal, expand_builtin_printf,
14834         expand_builtin_sprintf, fold_builtin_classify_type,
14835         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
14836         fold_builtin_toascii, fold_builtin_isdigit,
14837         simplify_builtin_strstr, simplify_builtin_strpbrk,
14838         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
14839         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
14840         DEF_ATTR_INT): Likewise.
14841         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
14842         Likewise.
14843         * c-lex.c (interpret_integer, lex_charconst): Likewise.
14844         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
14845         * c-pretty-print.c (pp_c_integer_constant): Likewise.
14846         * c-typeck.c (really_start_incremental_init, push_init_level,
14847         set_nonincremental_init_from_string): Likewise.
14848         * calls.c (load_register_parameters): Likewise.
14849         convert.c (convert_to_pointer): Likewise.
14850         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
14851         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
14852         build_gcov_info): Likewise.
14853         * except.c (init_eh, assign_filter_values): Likewise.
14854         * expmed.c (store_fixed_bit_field, extract_bit_field,
14855         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
14856         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
14857         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
14858         * expr.c (convert_move, emit_group_load, emit_group_store,
14859         expand_assignment, store_constructor, store_field,
14860         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
14861         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
14862         invert_truthvalue, optimize_bit_field_compare,
14863         decode_field_reference, all_ones_mask_p, constant_boolean_node,
14864         fold_div_compare, fold, fold_read_from_constant_string,
14865         fold_negate_const, fold_abs_const, fold_not_const, round_up,
14866         round_down): Likewise.
14867         * function.c (assign_parm_setup_block): Likewise.
14868         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
14869         Likewise.
14870         * stor-layout.c (layout_type, initialize_sizetypes,
14871         set_min_and_max_values_for_integral_type): Likewise.
14872         * tree-chrec.c (chrec_fold_multiply_poly_poly,
14873         reset_evolution_in_loop): Likewise.
14874         * tree-chrec.h (build_polynomial_chrec): Likewise.
14875         * tree-complex.c (build_replicated_const): Likewise.
14876         * tree-eh.c (honor_protect_cleanup_actions,
14877         lower_try_finally_onedest, lower_try_finally_copy,
14878         lower_try_finally_switch): Likewise.
14879         * tree-mudflap.c (mf_build_string, mx_register_decls,
14880         mudflap_register_call, mudflap_enqueue_constant): Likewise.
14881         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
14882         * tree-pretty-print.c (dump_generic_node): Likewise.
14883         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
14884         Likewise.
14885         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
14886         * tree-ssa-loop-niter.c (number_of_iterations_cond,
14887         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
14888         Likewise.
14889         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
14890         canonicalize_loop_induction_variables): Likewise.
14891         * tree-vectorizer.c (vect_create_index_for_array_ref,
14892         vect_transform_loop_bound, vect_compute_data_ref_alignment):
14893         Likewise.
14894
14895         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
14896         alpha_gimplify_va_arg_1): Likewise.
14897         * config/arm/arm.c (arm_get_cookie_size): Likewise.
14898         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
14899         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
14900         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
14901         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
14902         mips_gimplify_va_arg_expr): Likewise.
14903         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
14904         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
14905         add_compiler_branch_island): Likewise.
14906         * config/s390/s390.c (s390_va_start): Likewise.
14907         * config/sh/sh.c (sh_va_start): Likewise.
14908         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
14909         Likewise.
14910         * config/xtensa/xtensa.c (xtensa_va_start,
14911         xtensa_gimplify_va_arg_expr): Likewise.
14912
14913         * objc/objc-act.c (build_objc_string_object,
14914         build_objc_symtab_template, init_def_list, init_objc_symtab,
14915         init_module_descriptor, generate_static_references,
14916         build_selector_translation_table, get_proto_encoding,
14917         build_typed_selector_reference, build_selector_reference,
14918         build_next_objc_exception_stuff,
14919         build_method_prototype_list_template, generate_descriptor_table,
14920         generate_protocols, build_protocol_initializer,
14921         build_ivar_list_template, build_method_list_template,
14922         build_ivar_list_initializer, generate_ivars_list,
14923         generate_dispatch_table, generate_protocol_list,
14924         build_category_initializer, build_shared_structure_initializer,
14925         generate_shared_structures, handle_impent,
14926         generate_objc_image_info): Likewise.
14927
14928 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
14929
14930         * cfglayout.c (duplicate_insn_chain): Remove references to
14931         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
14932         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
14933         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
14934         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
14935         and NOTE_INSN_LOOP_CONT.
14936         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
14937         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
14938         and NOTE_INSN_LOOP_CONT.
14939         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
14940         check_dbra_loop, loop_dump_aux): Remove references to removed notes
14941         and fields.
14942         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
14943         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
14944         references to removed notes and fields.
14945         (subtract_reg_term, ujump_to_loop_cont): Remove.
14946
14947 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
14948
14949         * doc/install.texi: Document that libcpp does not require
14950         Automake any longer.  Document that Automake 1.9.1 should
14951         work everywhere.
14952
14953 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
14954
14955         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
14956         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
14957         DWARF_DEBUGGING_INFO from choice-of-definition chain;
14958         restructure using C89 features (#elif, #error).
14959         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
14960         * config/sh/sh.h: Remove references to DWARF_DEBUG.
14961         * doc/invoke.texi: Remove references to DWARF version 1;
14962         clarify why -gdwarf-2<n> doesn't work.
14963
14964 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
14965
14966         * basic-block.h (BB_SET_PARTITION): Clear old value first.
14967         * cfg.c (clear_bb_flags): Don't clear partition setting.
14968         * ifcvt.c (find_if_case_1): Remove ??? comment.
14969
14970 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
14971
14972         PR target/17052
14973         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
14974         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
14975         current_function_stdarg in place of sysv_varargs_p.
14976         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
14977         sysv_varargs_p.
14978
14979 2004-08-24  Richard Henderson  <rth@redhat.com>
14980
14981         PR target/16298
14982         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
14983         random codes within CONST.
14984
14985 2004-08-24  James E Wilson  <wilson@specifixinc.com>
14986
14987         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
14988         -freorder-blocks-and-partition.
14989
14990 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14991
14992         PR middle-end/17044
14993         * tree-ssa-threadupdate.c (redirection_data): Make static.
14994         (thread_block): Use ggc_alloc_cleared to allocate struct
14995         redirection_data.  Don't free elements in redirection_data.
14996
14997 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
14998
14999         * config/mips/predicates.md (small_data_pattern): Match prefetches.
15000
15001 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15002
15003         PR tree-optimization/17016
15004         * tree-ssa-loop-niter.c (number_of_iterations_cond,
15005         number_of_iterations_exit): Use POINTER_TYPE_P instead
15006         of testing for POINTER_TYPE.
15007
15008 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15009
15010         * tree-ssa-loop-ivcanon.c: New file.
15011         * tree-ssa-loop-manip.c (create_iv): New function.
15012         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
15013         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
15014         * cfgloop.c (mark_single_exit_loops): New function.
15015         (verify_loop_structure): Verify single-exit loops.
15016         * cfgloop.h (struct loop): Add single_exit field.
15017         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
15018         (mark_single_exit_loops): Declare.
15019         (tree_num_loop_insns): Declare.
15020         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
15021         (duplicate_loop_to_header_edge): Use it.
15022         * common.opt (fivcanon): New flag.
15023         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
15024         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
15025         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
15026         (bsi_insert_on_edge_immediate): New function.
15027         * tree-flow.h (bsi_insert_on_edge_immediate,
15028         canonicalize_induction_variables, tree_unroll_loops_completely,
15029         create_iv): Declare.
15030         * tree-optimize.c (init_tree_optimization_passes): Add
15031         pass_iv_canon and pass_complete_unroll.
15032         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
15033         * tree-scalar-evolution.c (get_loop_exit_condition,
15034         get_exit_conditions_rec, number_of_iterations_in_loop,
15035         scev_initialize): Use single_exit information.
15036         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
15037         missing assumptions.
15038         (loop_niter_by_eval):  Return number of iterations as unsigned
15039         int.
15040         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
15041         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
15042         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
15043         New passes.
15044         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
15045         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
15046         the defining statement is ready.
15047         * tree-vectorizer.c (vect_create_iv_simple): Removed.
15048         (vect_create_index_for_array_ref, vect_transform_loop_bound):
15049         Use create_iv.
15050         (vect_transform_loop_bound): Use single_exit information.
15051         (vect_analyze_loop_form): Cleanup bogus tests.
15052         (vectorize_loops): Do not call flow_loop_scan.
15053         * tree.h (may_negate_without_overflow_p): Declare.
15054         * fold-const.c (may_negate_without_overflow_p): Split out from ...
15055         (negate_expr_p): ... this function.
15056         (tree_expr_nonzero_p): Handle overflowed constants correctly.
15057         * doc/invoke.texi (-fivcanon): Document.
15058         * doc/passes.texi: Document canonical induction variable creation.
15059
15060 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15061
15062         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
15063         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
15064         using the mode of the operand to decide between them.
15065         * config/mips/mips.md (MOVECC): New mode macro.
15066         (ccreg): New mode attribute.
15067         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
15068         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
15069         (mov[sd]icc): Redefine using :GPR.
15070
15071 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15072
15073         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
15074         (mips_prefetch_cookie): New function.
15075         * config/mips/mips.c (print_operand_address): Fix handling of
15076         ADDRESS_CONST_INT.
15077         (mips_emit_prefetch): Delete.
15078         (mips_prefetch_cookie): New function.
15079         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
15080         mode of QImode for the address_operand.  Use mips_prefetch_cookie
15081         to calculate the first "pref" operand.
15082         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
15083         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
15084
15085 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
15086
15087         * arm.md: Include predicates.md.
15088         * predicates.md: New file.
15089         * arm.c (s_register_operand, arm_hard_register_operand)
15090         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
15091         (arm_immediate_operand, arm_neg_immediate_operand)
15092         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
15093         (arm_add_operand, arm_addimm_operand, arm_not_operand)
15094         (offsettable_memory_operand, alignable_memory_operand)
15095         (arm_reload_memory_operand, arm_float_rhs_operand)
15096         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
15097         (index_operand, shiftable_operator, logical_binary_operator)
15098         (shift_operator, equality_operator, arm_comparison_operator)
15099         (minmax_operator, cc_register, dominant_cc_register)
15100         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
15101         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
15102         (const_shift_operand, load_multiple_operation)
15103         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
15104         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
15105         (cirrus_register_operand, cirrus_fp_register)
15106         (cirrus_shift_const): Delete, replaced with equivalents in
15107         predicates.md.
15108         (shift_op): Handle ROTATE.
15109         * arm-protos.h: Delete declarations for above.
15110         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
15111         * t-arm (MD_INCLUDES): Add predicates.md.
15112         (s-preds): Depends on MD_INCLUDES.
15113
15114 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15115
15116         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
15117         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
15118         patterns.  Redefine using :GPR.  Give the match_operator a mode.
15119         Use '%2' rather than '%z2' for operand 2.
15120
15121 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15122
15123         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
15124         attribute.
15125
15126 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15127
15128         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
15129         of internal patterns.
15130         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
15131         Redefine using :P.
15132         (tablejump): Use expand_binop to calculate address.  Adjust names
15133         of internal patterns.
15134         (tablejump[sd]i): Renamed from tablejump_internal[12].
15135         Redefine using :P.
15136         (tablejump_mips16[12]): Delete.
15137
15138 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15139
15140         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
15141         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
15142         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
15143         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
15144         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
15145
15146 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15147
15148         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
15149         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
15150         using :GPR.
15151         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
15152         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
15153         (*branch_equality[sd]i_inverted): Likewise
15154         branch_equality{,_di}_inverted.
15155         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
15156         Redefine using :GPR.
15157
15158 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
15159
15160         * rtl.def: Reorganize, placing all codes used only in machine
15161         descriptions at the end.
15162
15163         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
15164         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
15165         rtx_name, rtx_format arrays by direct reference to rtl.def,
15166         first undefining GENERATOR_FILE.  Define enum insn_note and
15167         note_insn_name array by direct reference to insn-notes.def.
15168         (adjust_field_rtx_def): Remove local definition of rtx_name.
15169         Use symbolic names for insn notes.
15170         * Makefile.in (gengtype.o): Update dependencies.
15171
15172 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
15173
15174         * basic-block.h (struct basic_block_def): Reorder fields to
15175         eliminate interior padding.  Remove 'partition' field.
15176         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
15177         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
15178         (BB_COPY_PARTITION): New macros.
15179         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
15180         Replace all references to the 'partition' field of a basic
15181         block with new macros.
15182
15183         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
15184         * final.c (final_scan_insn): Don't handle it.
15185         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
15186         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
15187         * sched-rgn.c (sched_is_disabled_for_current_region_p):
15188         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
15189
15190 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15191
15192         * c-decl.c (c_init_decl_processing): Adjust
15193         build_common_tree_nodes call.
15194         * expmed.c (const_mult_add_overflow_p): Use
15195         build_distinct_type_copy.
15196         * stor-layout.c (early_type_list): Remove.
15197         (layout_type): Don't append to early_type_list.
15198         (initialize_sizetypes): Add signed_p argument.
15199         (set_sizetype): Overwrite the stub type nodes directly.
15200         * tree.c (copy_node_stat): Clear a type's value cache here ...
15201         (build_distinct_type): ... not here.
15202         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
15203         * tree.h (initialize_sizetypes): Add signed_p argument.
15204         (build_common_tree_nodes): Likewise.
15205
15206         * objc/objc-act.c (get_static_reference): Use
15207         build_variant_type_copy.
15208         (get_protocol_reference): Likewise.
15209         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
15210
15211 2004-08-24  Richard Henderson  <rth@redhat.com>
15212             Andrew Pinski  <apinski@apple.com>
15213
15214         * gimplify.c (gimplify_array_ref_to_plus): Delete.
15215         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
15216         for ARRAY_REF.
15217
15218         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
15219         ARRAY_REF also to get to the STRING_CST.
15220
15221 2004-08-24  Paul Brook  <paul@codesourcery.com>
15222
15223         * config/arm/arm.c (arm_override_options): Update error message.
15224         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
15225         TARGET_HARD_FLOAT_ABI.
15226         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
15227         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
15228
15229 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15230
15231         PR target/17093
15232         * config/m32r.md (movsi_sda): Add SI mode specification to
15233         UNSPEC.
15234
15235 2004-08-24  Nick Clifton  <nickc@redhat.com>
15236
15237         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
15238         of seth_add3_operand.
15239
15240 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15241
15242         * Makefile.in (PROTO_OBJS): Add errors.o.
15243         * protoize.c (fancy_abort): Remove.
15244         * mips-tfile.c (fancy_abort): Add parameters.
15245
15246 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
15247
15248         * doc/trouble.texi (C++ misunderstandings): Fix example code.
15249
15250 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
15251
15252         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
15253         (host-default.o): Add dependency on HOOKS_H.
15254         * config/x-linux: Likewise.
15255         * config/x-solaris: Likewise.
15256         * config/i386/x-mingw32: Likewise.
15257         * config/rs6000/x-darwin: Likewise.
15258
15259 2004-08-23  James E Wilson  <wilson@specifixinc.com>
15260
15261         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
15262         DEF_REG_NOTE.
15263
15264 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
15265
15266         PR c/14492
15267         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
15268
15269 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
15270
15271         * cfg.c (check_bb_profile): Fix typos.
15272         * function.c (assign_parm_is_stack_parm): Likewise.
15273         * tree-nested.c: Likewise.
15274
15275 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
15276
15277         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
15278         Remove TYPECODE.
15279         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
15280
15281 2004-08-23  Eric Christopher  <echristo@redhat.com>
15282
15283         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
15284         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
15285         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
15286         * target.h: Ditto.
15287         * hooks.h: Include machmode.h.
15288         (hook_bool_mode_false): Declare.
15289         * hooks.c (hook_bool_mode_false): Define.
15290         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
15291         * stor-layout.c (layout_type): Ditto.
15292         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
15293         Define to target macro.
15294         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
15295         * config/arm/arm.c: Ditto. Use.
15296         * config/arm/arm.h: Ditto.
15297         * config/arm/arm-protos.h: Ditto.
15298         * config/i386/i386.c: Ditto.
15299         * config/i386/i386.h: Ditto.
15300         * config/rs6000/rs6000.c: Ditto.
15301         * config/rs6000/rs6000.h: Ditto.
15302         * config/sh/sh.c: Ditto.
15303         * config/sh/sh.h: Ditto.
15304         * config/sh/sh-protos.h: Ditto.
15305         * config/sh/sh.md: Use.
15306         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
15307         to TARGET_VECTOR_MODE_SUPPORTED_P.
15308
15309 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
15310
15311         * Makefile.in (BUILD_ERRORS): Set to build-errors.
15312         (errors.o): New target for host.
15313         (build-errors.o): New target for build.
15314         (genobjs): Replace errors.o with build-errors.
15315         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
15316         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
15317         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
15318         (fix-header.o): Add errors.h
15319         * collect2.c (fancy_abort): Add parameters.
15320         * collect2.h (fancy_abort): Don't declare.
15321         * errors.h (fancy_abort): Don't declare.
15322         * errors.c: Include either bconfig.h or config.h.
15323         (fancy_abort): Trim filename.
15324         * fix-header.c (v_fatal, fatal): Remove.
15325         (progname): Remove definition.
15326         (main): Set progname here.
15327         * gcc.c (fancy_abort): Add parameters.
15328         * gcc.h (fancy_abort): Remove declaration.
15329         * gcov.c (fancy_abort): Remove.
15330         * rtl.h (fancy_abort): Don't declare.
15331         (abort): Don't define.
15332         * tree.h (fancy_abort): Don't declare.
15333         (abort): Don't define.
15334         * system.h (fancy_abort): Declare.
15335         (abort): Define to fancy_abort.
15336         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
15337
15338         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
15339         (usize_type, ubitsizetype): Remove.
15340         * stor-layout.c (set_sizetype): Don't initialize usizetype,
15341         ubitsizetype.
15342         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
15343
15344         * tree.h (build_distinct_type_copy): New.
15345         (build_type_copy): ... here.  Rename to ...
15346         (build_variant_type_copy): ... here.
15347         * tree.c (build_qualified_type): Rename build_type_copy call.
15348         (build_distinct_type_copy): New, broken out of ...
15349         (build_type_copy): ... here.  Rename to ...
15350         (build_variant_type_copy): ... here.  Use
15351         build_distinct_type_copy.
15352         (build_common_tree_nodes_2): Rename build_type_copy call.
15353         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
15354         call.
15355         (handle_packed_attribute, handle_unused_attribute,
15356         handle_transparanet_union_attribute, handle_aligned_attribute,
15357         handle_deprecated_attribute): Likewise.
15358         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
15359         Likewise.
15360         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
15361         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
15362         build_distinct_type_copy.
15363
15364 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15365
15366         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
15367         attribute.
15368
15369 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15370
15371         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
15372         loads and stores.
15373         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
15374         formerly unnamed patterns.  Redefine using :P for the address.  Remove
15375         explicit length attributes.
15376
15377 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15378
15379         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
15380         New functions.
15381         (single_reachable_address): Use them.
15382         (schedule_sm): Add dump.
15383         (is_call_clobbered_ref): New function.
15384         (determine_lsm_reg): Check whether the reference is call clobbered.
15385         Only work for gimple_reg_type values.
15386
15387 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15388
15389         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
15390         $31 store insns.  Redefine using :GPR.
15391
15392 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15393
15394         * config/mips/mips.md (P): New mode macro.
15395         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
15396         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
15397         Add mode attributes.
15398
15399 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15400
15401         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
15402         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
15403         later constants to cover the gap.
15404         (load, store): New mode attributes.
15405         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
15406         Use new unspec constants.
15407
15408 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15409
15410         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
15411         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
15412         to use register_operand rather than uns_arith_operand as the predicate
15413         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
15414         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
15415         Redefine using :GPR.  Make same predicate change here.  Extend the
15416         commutativity of operands 1 and 2 from the SImode version to the
15417         DImode one.
15418         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
15419         but with no predicate changes.
15420         (*nor[sd]i3): Redefine using :GPR.
15421
15422 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15423
15424         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
15425         noreturn functions.
15426
15427 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15428
15429         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
15430         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
15431         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
15432         rather than "%z2" (with a fake const0_rtx for operand 2).
15433         (ffs[sd]i2): Redefine using :GPR.
15434         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
15435
15436 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15437
15438         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
15439
15440 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15441
15442         * config/mips/mips.md (any_extend): New code macro.
15443         (u, su): New code attributes.
15444         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
15445         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
15446         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
15447         (*{s,u}mul_acc_di): Redefine using any_extend.
15448         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
15449         to reflect real insn names.
15450         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
15451         with an any_extend template.
15452         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
15453         Add '*' to name.
15454
15455 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15456
15457         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
15458         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
15459         (mul[sd]i3_r4000): Redefine using :GPR.
15460         (mulsi3_mult3): Don't check TARGET_MAD separately.
15461         (muldi3_mult3): Moved after mulsi_mult3.
15462
15463 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15464
15465         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
15466         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
15467         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
15468         (TARGET_GAS, TARGET_MIPS_AS): Delete.
15469         (TARGET_GPWORD): Define to true for n32 on IRIX.
15470         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
15471         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
15472         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
15473         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
15474         (MDEBUG_ASM_SPEC): Delete, folding into...
15475         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
15476         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
15477         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
15478         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
15479         to define asm_abi_default_spec.
15480         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
15481         (TARGET_ASM_SELECT_SECTION): Delete.
15482         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
15483         for non-mips16 code, removing previous workaround for SGI assemblers.
15484         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
15485         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
15486         (override_options): Remove !TARGET_GAS and !have_named_sections code.
15487         (print_operand): Fold TARGET_GAS conditionals into asm strings.
15488         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
15489         ASM_STABS_OP and ASM_STABN_OP.
15490         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
15491         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
15492         (mips_output_function_prologue): Remove !TARGET_GAS code.
15493         (mips_select_rtx_section): Remove !have_named_sections code.
15494         (mips_select_section): Delete.
15495         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
15496         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
15497         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
15498         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
15499         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
15500         * config/mips/windiss.h (ASM_SPEC): Likewise.
15501
15502 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15503
15504         * read-rtl.c (map_value, mapping, macro_group): New structures.
15505         (BELLWETHER_CODE): New macro.
15506         (modes, codes, bellwether_codes): New variables.
15507         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
15508         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
15509         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
15510         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
15511         (add_map_value, initialize_macros): New functions.
15512         (def_hash, def_hash_eq_p): Generalize to anything that points to,
15513         or starts with, a char * field.
15514         (find_macro, read_mapping, check_code_macro): New functions.
15515         (read_rtx_1): New, split out from read_rtx.  Handle the new
15516         define_{mode,code}_{macro,attr} constructs.  Use find_macro
15517         to parse the name of a code or mode.  Use BELLWETHER_CODE to
15518         extract the format and to choose a suitable code for rtx_alloc.
15519         Modify recursive invocations to use read_rtx_1.
15520         (read_rtx): Call initialize_macros.  Apply code and mode macros
15521         to the rtx returned by read_rtx_1.  Cache everything after the
15522         first macro expansion for subsequent read_rtx calls.
15523         * doc/md.texi: Document new .md constructs.
15524         * config/mips/mips.md (GPR): New mode macro.
15525         (d, si8_di5): New mode attributes.
15526         (any_cond): New code macro.
15527         (add[sd]i3): Redefine using :GPR.
15528         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
15529         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
15530         previously unnamed MIPS16 patterns.
15531         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
15532         lines.  Don't match (plus (const_int 0) ...).
15533         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
15534         Use a define_split to generate the addition.
15535         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
15536         (subsi3_internal): Delete.
15537         (*subsi3_extended): Renamed from subsi3_internal_2.
15538         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
15539         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
15540         using an any_cond template.
15541
15542 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15543
15544         * read-rtl.c (read_rtx): Tidy use of format_ptr.
15545
15546 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
15547
15548         * read-rtl.c (string_obstack): New file-scope variable.
15549         (read_string, read_quoted_string, read_braced_string)
15550         (read_escape): Remove obstack parameter and use string_obstack instead.
15551         (read_rtx): Remove function-local rtl_obstack and initialize
15552         string_obstack instead.  Update call to read_string.
15553
15554 2004-08-22  Andrew Pinski  <apinski@apple.com>
15555
15556         PR c/15262
15557         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
15558         expression is not constant.
15559         (c_finish_return): Do not go through INDIRECT_REF when looking
15560         for the inner expression of an ADDR_EXPR for warning about.
15561
15562 2004-08-22  Richard Henderson  <rth@redhat.com>
15563
15564         PR 17075
15565         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
15566         create new blocks and fall through.
15567         (expand_gimple_basic_block): Update to match.
15568
15569 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
15570
15571         * reload.c (find_reloads_address): Make return value tri-state.
15572         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
15573         (find_reloads): Assume that reloaded addresses match 'o' or
15574         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
15575         returned 1 (not -1).  Omit optional reloads for address operands
15576         only if find_reloads_address returned 1 (not -1).
15577
15578         * config/s390/s390.c (legitimize_reload_address): New function.
15579         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
15580         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
15581         legitimize_reload_address.
15582
15583 2004-08-22  Richard Hendersion  <rth@redhat.com>
15584
15585         * tree.h (SAVE_EXPR_RESOLVED_P): New.
15586         * gimplify.c (gimplify_save_expr): Use it.
15587         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
15588         on the temporary variable.
15589
15590 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
15591
15592         * fold-const.c (rtl_expr_nonnegative_p): Delete.
15593         * tree.h (rtl_expr_nonnegative_p): Remove.
15594
15595 2004-08-22  Steven Bosscher  <stevenb@suse.de>
15596
15597         * config/i386/ppro.md (ppro_complex_insn): Add missing check
15598         for cpu==pentiumpro.
15599
15600         * combine.c (struct reg_stat): Fix comment typo.
15601
15602 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
15603
15604         * c-tree.h (c_sizeof_nowarn): Remove.
15605
15606 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
15607
15608         * c-decl.c (set_array_declarator_type): Rename to
15609         set_array_declarator_inner.
15610         (build_c_parm, build_attrs_declarator, build_function_declarator):
15611         New functions.
15612         (make_pointer_declarator): Call build_attrs_declarator.
15613         * c-tree.h (set_array_declarator_type): Rename to
15614         set_array_declarator_inner.
15615         (build_c_parm, build_attrs_declarator, build_function_declarator):
15616         New prototypes.
15617         * c-parse.in (after_type_declarator,
15618         parm_declarator_starttypename, parm_declarator_nostarttypename,
15619         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
15620         firstparm): Use these functions
15621
15622 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
15623
15624         * c-decl.c (build_array_declarator, set_array_declarator_type,
15625         start_decl, grokdeclarator, grokparms): Change boolean parameters
15626         to type bool.
15627         * c-tree.h (build_array_declarator, set_array_declarator_type,
15628         start_decl): Update prototypes.
15629         * c-decl.c, c-parse.in: All callers changed.
15630
15631 2004-08-21  Mike Stump  <mrs@apple.com>
15632
15633         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
15634         (darwin_fix_and_continue): Likewise.
15635         (darwin_fix_and_continue_switch): Likewise.
15636         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
15637         (darwin_fix_and_continue): Likewise.
15638         (darwin_fix_and_continue_switch): Likewise.
15639
15640 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
15641
15642         PR  c++/16030
15643         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
15644         Remove, merging into ...
15645         (gen_stdcall_or_fastcall_suffix): New function, returning tree
15646         rather than const char*, and accepting additional parameter.
15647         Don't add suffix to '*'-prefixed symbols or variadic functions.
15648         (i386_pe_encode_section_info): Adjust for call to new function.
15649         Call change_decl_assembler_name.
15650
15651 2004-08-20  Mike Stump  <mrs@apple.com>
15652
15653         * config/darwin.c (machopic_indirect_data_reference): Mark
15654         stubs as defined.
15655         * config/386/386.c (darwin_local_data_pic): Add.
15656         (legitimate_constant_p): Reorder so that PLUS handling runs
15657         before darwin_local_data_pic to match the ordering in
15658         legitimate_pic_address_disp_p and so that MINUS runs after
15659         darwin_local_data_pic as otherwise the darwin_local_data_pic
15660         logic can be skipped, which would be very bad.
15661         (legitimate_pic_address_disp_p): Move from from here to
15662         darwin_local_data_pic so it can be reused.
15663
15664 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
15665
15666         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
15667         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
15668         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
15669         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
15670         (RS6000_ABI_NAME): Define as "linux".
15671         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
15672         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
15673         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
15674         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
15675         * config/rs6000/rs6000.c (dot_symbols): New global var.
15676         (rs6000_output_function_entry): New function, modified for
15677         !DOT_SYMBOLS..
15678         (print_operand <case 'z'>): ..extracted from here.
15679         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
15680         (rs6000_output_function_epilogue): Likewise.
15681         (rs6000_elf_declare_function_name): Likewise.
15682         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
15683         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
15684         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
15685         * configure: Regenerate.
15686         * config.in: Regenerate.
15687
15688 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
15689
15690         * reload.c (find_reloads_address): Fix thinko in previous change.
15691
15692         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
15693         a CONST_INT.
15694
15695 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
15696
15697         PR rtl-optimization/17099
15698         * combine.c (force_to_mode): Check if inner_mask has any bits set
15699         outside of GET_MODE (x) instead of op_mode.
15700
15701 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
15702
15703         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
15704         fragment.
15705         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
15706         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
15707         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
15708         architecture.
15709         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
15710         configurations.
15711         * config/arm/t-symbian: New file.
15712
15713 2004-08-20  Andrew Pinski  <apinski@apple.com>
15714
15715         * regrename.c (kill_value_regno): ANSIfy.
15716
15717 2004-08-20  Dale Johannesen  <dalej@apple.com>
15718
15719         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
15720
15721 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
15722
15723         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
15724         (kill_value_regno): New function, derived from kill_value.
15725         (kill_value): Update.
15726         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
15727
15728 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
15729
15730         Fix PR tree-optimization/17111
15731         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
15732         of non-value_handles.
15733         (bitmap_set_contains): All constants are in every set.
15734
15735 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
15736
15737         * fold-const.c (round_up, round_down): Use build_int_cst.
15738         Optimize common case.
15739
15740 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
15741             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15742
15743         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
15744         one_only_data_section): Rename to som_readonly_data_section,
15745         som_one_only_readonly_data_section and som_one_only_data_section.
15746         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
15747         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
15748         conditional defines.
15749         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
15750         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
15751         string values.
15752         (pa_select_section): Use renamed section functions.
15753         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
15754         SOM_READONLY_DATA_SECTION_FUNCTION,
15755         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
15756         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
15757         Define here ...
15758         * config/pa/som.h: ... not here.
15759         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
15760         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
15761         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
15762         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
15763         (READONLY_DATA_SECTION): Use som_readonly_data_section.
15764
15765 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
15766
15767         * fold-const.c (int_const_binop): Don't generate non-overflowing
15768         size-types specially.
15769         (fold_convert_const): Likewise.
15770
15771         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
15772         clear cache on copied sizetype.
15773
15774 2004-08-20  Ben Elliston  <bje@au.ibm.com>
15775
15776         * configure.ac: Don't escape apostrophe in --enable-coverage help.
15777         * configure: Regenerate.
15778
15779 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
15780
15781         PR 5620
15782         * gcc.c (struct stat input_stat): Don't define if
15783         HOST_LACKS_INODE_NUMBERS
15784         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
15785         than stat to determine if temp file is same as input file.
15786         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
15787         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
15788
15789 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
15790
15791         * configure.ac (mips*-*-*): Print an error if not using GAS.
15792         * configure: Regenerated.
15793         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
15794         comments about buggy MIPSpro assemblers.
15795         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
15796         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
15797         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
15798         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
15799         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
15800         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
15801         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
15802         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
15803         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
15804         of more general IRIX 6 definitions.
15805         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
15806         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
15807         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
15808         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
15809         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
15810         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
15811         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
15812         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
15813         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
15814         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
15815         (LINK_SPEC): Move most of definition to iris.h.
15816         (SUBTARGET_LINK_SPEC): New macro.
15817         (IRIX_STARTFILE_SPEC): Fold into...
15818         (STARTFILE_SPEC): ...here.
15819         (IRIX_ENDFILE_SPEC): Fold into...
15820         (ENDFILE_SPEC): ...here.
15821         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
15822         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
15823         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
15824         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
15825         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
15826         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
15827         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
15828         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
15829         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
15830         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
15831         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
15832         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
15833         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
15834         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
15835         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
15836         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
15837         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
15838         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
15839         (TARGET_IRIX6): Define to 1.
15840         (DRIVER_SELF_SPECS): Define.
15841         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
15842         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
15843         (SUBTARGET_LINK_SPEC): New macro.
15844         (IRIX_STARTFILE_SPEC): Fold into...
15845         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
15846         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
15847         (LIB_SPEC, LIBGCC_SPEC): Use them.
15848         (LIB_SPEC): Remove !mabi=* case.
15849         (IRIX_ENDFILE_SPEC): Fold into...
15850         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
15851         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
15852         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
15853         (TARGET_IRIX6): New macro.
15854         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
15855         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
15856         (LABEL_AFTER_LOC): Delete.
15857         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
15858         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
15859         (mips_build_builtin_va_list): Check TARGET_IRIX6.
15860         (override_options): Remove TARGET_SGI_O32_AS-related code.
15861         (irix_output_external_libcall): Make static.
15862         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
15863         LABEL_AFTER_LOC.
15864         (mips_file_start): Tidy guard for ABI sections.  Remove use of
15865         ABICALLS_ASM_OP; use .abicalls instead.
15866         (mips_output_aligned_decl_common, mips_declare_object_name)
15867         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
15868         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
15869         .globl foo .text directives.
15870         (irix_asm_named_section_1, irix_asm_named_section)
15871         (irix_section_align_entry, irix_section_align_htab)
15872         (irix_orig_asm_out_file, irix_section_align_entry_eq)
15873         (irix_section_align_entry_hash, irix_asm_output_align)
15874         (irix_file_start, irix_section_align_1, copy_file_data)
15875         (irix_file_end, irix_section_type_flags): Delete.
15876         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
15877         Use standard section syntax.  Remove protective "jr $31".
15878         (__gcc_fini): Likewise .gcc_fini.
15879         * config/mips/irix-crtn.asm: Adjust sections accordingly.
15880         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
15881         iris5gas.h.
15882         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
15883         from t-irix-gld.
15884         (EXTRA_MULTILIB_PARTS): Define.
15885         * config/mips/t-iris6: Remove bogus comment.
15886         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
15887         * config/mips/iris5gas.h, config/mips/iris5gld.h,
15888         config/mips/iris6gas.h, config/mips/iris6gld.h,
15889         config/mips/t-iris5-as, config/mips/t-iris5-gas
15890         config/mips/t-irix-gld: Delete.
15891         * config/mips/iris.h: New file.
15892         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
15893
15894 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
15895
15896         * postreload.c (reload_cse_move2add): Allow any condjump, but check
15897         that the implicit set isn't clobbered in the jump insn.
15898
15899 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
15900
15901         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
15902         * optabs.c (init_optabs): Don't check it.
15903         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
15904         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
15905
15906 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
15907
15908         * config/s390/s390.md (s390_warn_framesize_string)
15909         (s390_warn_dynamic_string, s390_stack_size_string)
15910         (s390_stack_guard_string): New global string variables.
15911         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
15912         (s390_stack_guard): New global variables.
15913         (override_options): Added checks for the new options.
15914         (s390_emit_prologue): Emit stack check and trap code and perform
15915         compile time stack size checking.
15916
15917         * config/s390/s390.h (TARGET_OPTIONS): Added new options
15918         "warn-framesize", "warn-dynamicstack", "stack-size" and
15919         "stack-guard".
15920
15921         * doc/invoke.texi: Added documentation for the new options.
15922
15923 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
15924
15925         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
15926         to eliminate warning.
15927         (linear_search_fdes): Declare p as unsigned.
15928         (binary_search_mixed_encoding_fdes): Likewise.
15929         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
15930         to eliminate warning.
15931         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
15932         type cast.
15933
15934 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
15935
15936         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
15937         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
15938         instead of one.  Check for strictly legitimate address.
15939         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
15940         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
15941
15942 2004-08-19  Eric Christopher  <echristo@redhat.com>
15943
15944         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
15945         * langhooks.h (unsave_expr_now): Ditto.
15946         * tree.h (unsave_expr_1): Remove prototype.
15947         (lhd_unsave_expr_now): Rename to unsave_expr_now.
15948         * tree-inline.c (unsave_expr_1): Move here
15949         from tree.c. Make static.
15950         (unsave_expr_now): Rename from lhd_unsave_expr_now.
15951         * tree-sra.c: Fix up for rename.
15952         * tree-ssa-copy.c: Ditto.
15953         * tree-eh.c: Ditto.
15954         * tree.c (unsave_expr_1): Move to tree-inline.c.
15955
15956 2004-08-19  Caroline Tice  <ctice@apple.com>
15957
15958         * config/i386/cygming.h (switch_to_section):  Fix typo (change
15959         in_unlikely_text_section to in_unlikely_executed_text).
15960
15961 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
15962
15963         * vec.h (VEC_lower_bound): New macro.
15964
15965 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
15966
15967         PR target/16446
15968         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
15969         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
15970         treat each ABI separately.  Deal with n32/n64 complex float arguments.
15971         (function_arg): Add associated complex handling here.
15972
15973 2004-08-19  Richard Henderson  <rth@redhat.com>
15974
15975         * config/arm/arm.c (arm_gen_load_multiple): Use
15976         adjust_automodify_address.  Take base memory and offset instead
15977         of unchanging/struct/scalar bits.
15978         (arm_gen_store_multiple): Likewise.
15979         (arm_gen_movmemqi): Use adjust_automodify_address.
15980         * config/arm/arm-protos.h: Update decls.
15981         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
15982         (store_multiple): Similarly.
15983
15984 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
15985
15986         * regclass.c (globalize_reg): Update call_really_used_regs.
15987
15988 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
15989
15990         * doc/invoke.texi (integer-share-limit): Document.
15991
15992         * tree.h (TYPE_CACHED_VALUES_P): New.
15993         (TYPE_CACHED_VALUES): New.
15994         (TYPE_ORIG_SIZE_TYPE): Adjust.
15995         * tree.def (INTEGER_CST): Update documentation.
15996         * tree.c: Inlcude params.h.
15997         (build_int_cst): Cache small values.
15998         (build_type_copy): Do not copy the value cache.
15999         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
16000         unneeded zeroing.
16001         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
16002         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
16003         cache.
16004         * fold-const.c (force_fit_type): Copy value when setting
16005         overflows.
16006         (int_const_binop): Likewise.
16007         * stor-layout.c: Include params.h
16008         (set_sizetype): Create values cache.
16009         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
16010         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
16011         * params.h (INTEGER_SHARE_LIMIT): New.
16012         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
16013
16014 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
16015
16016         * gimplify.c (gimplify_minimax_expr): Remove.
16017         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
16018
16019 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
16020
16021         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
16022         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
16023
16024 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
16025
16026         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
16027
16028 2004-08-18  Andrew Pinski  <apinski@apple.com>
16029
16030         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
16031
16032 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
16033
16034         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
16035         (__aeabi_ul2f): Likewise.
16036
16037 2004-08-18  Richard Henderson  <rth@redhat.com>
16038
16039         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
16040         move to rtl completely.
16041         (struct meminsnbuf, xtensa_emit_block_move): Remove.
16042         (xtensa_find_mode_for_size): Remove.
16043         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
16044         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
16045
16046 2004-08-18  Richard Henderson  <rth@redhat.com>
16047
16048         * config/mcore/mcore.c (mode_from_align): Remove DImode.
16049         (block_move_sequence): Rewrite to use adjust_address.
16050         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
16051         Return boolean indicating success/failure.
16052         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
16053         * config/mcore/mcore.md (movmemsi): Update to match.
16054
16055 2004-08-18  Mike Stump  <mrs@apple.com>
16056
16057         * doc/invoke.texi (-mfix-and-continue): Add support for
16058         fast turn around debugging.
16059         (-ffix-and-continue): Likewise.
16060         (-mindirect-data): Likewise.
16061         (-findirect-data): Likewise.
16062         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
16063         (indirect_data): Likewise.
16064         (machopic_data_defined_p): Likewise.
16065         (machopic_output_indirection): Likewise.
16066         (darwin_encode_section_info): Likewise.
16067         (darwin_fix_and_continue): Likewise.
16068         (darwin_fix_and_continue_switch): Likewise.
16069         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
16070         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
16071         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
16072         (SUBTARGET_OPTIONS): Likewise.
16073         (darwin_fix_and_continue): Likewise.
16074         (darwin_fix_and_continue_switch): Likewise.
16075         (TARGET_FIX_AND_CONTINUE): Likewise.
16076         * config/rs6000.c (rs6000_emit_prologue): Likewise.
16077
16078 2004-08-19  Steven Bosscher  <stevenb@suse.de>
16079
16080         * basic-block.h (struct edge_def): Remove crossing_edge.
16081         (EDGE_CROSSING): New define.
16082         (EDGE_ALL_FLAGS): Update.
16083         * bb-reorder.c (find_traces_1_round, better_edge_p,
16084         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
16085         find_jump_block, fix_crossing_conditional_branches,
16086         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
16087         Replace all occurences of crossing_edge with an edge flag check
16088         or set/reset.
16089         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16090         try_crossjump_bb): Likewise.
16091         * cfglayout.c (fixup_reorder_chain): Likewise.
16092         * cfgrtl.c (force_nonfallthru_and_redirect,
16093         commit_one_edge_insertion): Likewise.
16094
16095         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
16096         * tree-flow.h (compute_dominance_frontiers): Move prototype...
16097         * basic-block.h:  ...here.
16098         * tree-cfg.c (compute_dominance_frontiers_1,
16099         compute_dominance_frontiers): Move from here...
16100         * cfganal.c: ...to here.  Include timevar.h.
16101
16102 2004-08-18  James E Wilson  <wilson@specifixinc.com>
16103
16104         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
16105         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
16106
16107         * config/mips/mips.md (type): Add frdiv.
16108         (divsf3+1, divsf3+2): Change type to frdiv.
16109         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
16110         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
16111
16112         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
16113         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
16114         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
16115         * config/mips/5000.md (r5k_fdiv_single): Likewise.
16116         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
16117         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
16118         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
16119         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
16120         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
16121         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
16122         Likewise.
16123         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
16124
16125 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
16126
16127         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
16128         get regression tester working again.
16129
16130 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16131
16132         * insn-notes.def, reg-notes.def: New files.
16133         * rtl.h: Use them to define enum insn_note and enum reg_note.
16134         * rtl.c: Use them to define note_insn_name and reg_note_name.
16135         * Makefile.in (RTL_BASE_H): Update.
16136
16137         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
16138         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
16139
16140 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
16141
16142         * arm.c (arm_size_rtx_costs): New function.
16143         (arm_override_options): Use it if optimizing for space.
16144
16145 2004-08-18  Richard Henderson  <rth@redhat.com>
16146
16147         * emit-rtl.c (gen_const_mem): New.
16148         * rtl.h (gen_const_mem): Declare.
16149         * expr.c (do_tablejump): Use it.
16150         * varasm.c (force_const_mem): Likewise.
16151         * config/darwin.c (machopic_indirect_data_reference): Likewise.
16152         (machopic_legitimize_pic_address): Likewise.
16153         * config/arm/arm.c (legitimize_pic_address): Likewise.
16154         * config/i386/i386.c (legitimize_pic_address): Likewise.
16155         (legitimize_tls_address): Likewise.
16156         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
16157         * config/ia64/ia64.md (load_fptr): Likewise.
16158         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
16159         * config/pa/pa.c (legitimize_pic_address): Likewise.
16160         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
16161         (rs6000_emit_move): Likewise.
16162         * config/s390/s390.c (legitimize_pic_address): Likewise.
16163         (legitimize_tls_address): Likewise.
16164         * config/s390/s390.md (casesi): Likewise.
16165         * config/sh/sh.c (sh_reorg): Likewise.
16166         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
16167         * config/v850/v850.md (casesi): Likewise.
16168
16169         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
16170         * config/sh/sh.c (prepare_move_operands): Remove incorrect
16171         use of MEM_READONLY_P.
16172
16173 2004-08-18  Steven Bosscher  <stevenb@suse.de>
16174
16175         * Makefile.in (OBJS-common): Add postreload-gcse.c.
16176         Add new postreload-gcse.o.
16177         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
16178         (lookup_as_function, insert, rehash_using_reg, use_related_value,
16179         equiv_constant): Use SAFE_HASH instead of safe_hash.
16180         (exp_equiv_p): Export.  Add for_gcse argument when comparing
16181         for GCSE.
16182         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
16183         find_comparison_args, fold_rtx, cse_insn): Update callers.
16184         (hash_rtx): New function derived from old canon_hash and bits
16185         from gcse.c hash_expr_1.
16186         (canon_hash_string): Rename to hash_rtx_string.
16187         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
16188         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
16189         (cselib_lookup): Update this caller.
16190         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
16191         Make static.
16192         (hash_expr): Call hash_rtx.
16193         (ldst_entry): Likewise.
16194         (expr_equiv_p): Call exp_equiv_p.
16195         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
16196         reg_used_on_edge, reg_set_between_after_reload_p,
16197         reg_used_between_after_reload_p, get_avail_load_store_reg,
16198         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
16199         get_bb_avail_insn, hash_scan_set_after_reload,
16200         compute_hash_table_after_reload,
16201         eliminate_partially_redundant_loads, gcse_after_reload,
16202         get_bb_avail_insn, gcse_after_reload_main): Remove.
16203         * postreload-gcse.c: New file, reincarnating most of the above.
16204         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
16205         (gcse_after_reload_main): Update prototype.
16206         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
16207         * passes.c (rest_of_handle_gcse2): Use it.
16208
16209 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
16210
16211         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
16212         (pass_loop_done): Likewise.
16213
16214 2004-08-18  Andrew Pinski  <apinski@apple.com>
16215
16216         * config/rs6000/darwin.md: Delete the altivec patterns which are
16217         handled differently now.
16218         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
16219         (macho_correct_pic_di): Likewise.
16220         (call_indirect_nonlocal_darwin64): Likewise.
16221         Delete the save world/saveFP/saveVec patterns.
16222
16223         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
16224         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
16225         * config/rs6000/rs6000.md: Include darwin.md.
16226         (builtin_setjmp_receiver): Add DImode case.
16227         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
16228         Darwin bits.
16229
16230 2004-08-18  Matt Austern  <austern@apple.com>
16231
16232         Dead code stripping
16233         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
16234         * darwin.c (darwin_file_end): Mark file as potentially strippable.
16235
16236 2004-08-18  Richard Henderson  <rth@redhat.com>
16237
16238         * alias.c (readonly_fields_p): Remove.
16239         (objects_must_conflict_p): Don't call it.
16240         * tree.h (readonly_fields_p): Remove.
16241         * langhooks.h (struct lang_hooks): Remove honor_readonly.
16242         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
16243
16244 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
16245
16246         * tree-dfa.c (add_referenced_var): Only global variables are
16247         call-clobbered.
16248         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
16249         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
16250         all pointers dereferenced if the statement dereferences them.
16251         (create_name_tags): Do not create memory tags for pointers
16252         that have PT_ANYTHING set.
16253         Also check if PT_VARS is not empty before creating a name tag.
16254         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
16255         variables that share the same alias set with a pointer that
16256         may point anywhere.
16257         (add_may_alias): Add FIXME comment to remove clobbering
16258         aliased variables and tags.
16259         (replace_may_alias): Likewise.
16260         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
16261         (merge_pointed_to_info): If the original variable has not
16262         points-to information, call set_pt_anything.
16263         (add_pointed_to_var): Do not prevent adding a pointed-to
16264         variable if the pointers is PT_ANYTHING.
16265         If the variable is a global, set PT_GLOBAL_MEM.
16266         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
16267         pointer type only come in PTR+OFFSET flavours.
16268         Always call merge_pointed_to_info on PHI arguments that are
16269         SSA_NAMEs.
16270         (get_nmt_for): Mark call-clobbered tags whose pointer points
16271         to global memory.
16272         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
16273         values.
16274         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
16275         FLAGS.
16276         (add_stmt_operand): Abort if the caller tried to add a killing
16277         definition for a memory tag.
16278         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
16279         unnecessary checks.
16280
16281 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
16282
16283         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
16284         from call_used_regs.  Update call_really_used_regs.
16285         (CALL_REALLY_USED_REGISTERS): Define.
16286         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
16287         Replace call_used_regs with call_really_used_regs.
16288         (calc_live_regs, sh_media_register_for_return): Likewise.
16289         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
16290         * sh.md (return_media): Likewise.
16291
16292 2004-08-18  Andrew Pinski  <apinski@apple.com>
16293
16294         * config/darwin.c (machopic_legitimize_pic_address): Only set
16295         MEM_READONLY_P in the non TARGET_TOC case.
16296
16297 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16298
16299         * rtl.def (NIL): Delete.
16300         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
16301         Tighten the syntax a little.
16302
16303         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
16304         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
16305         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
16306         * config/i386/predicates.md, config/m32r/m32r.h
16307         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
16308         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
16309         * config/sparc/sparc.h, doc/tm.texi:
16310         Replace all occurrences of NIL with UNKNOWN.
16311
16312 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16313
16314         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
16315         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
16316         sequence inline.  Move drop_through_label code into this
16317         block, being the only place it is used.  Adjust comments.
16318
16319 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
16320
16321         * config/rs6000/altivec.md: Add new patterns for calls to
16322         save_world/rest_world functions.
16323
16324         * config/rs6000/rs6000-protos.h: (save_world_operation,
16325         restore_world_operation) new declarations.
16326
16327         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
16328         field added.
16329         (rs6000_stack_info): Set world_save_p field.
16330         (save_world_operation): New function.
16331         (restore_world_operation): New function.
16332         (compute_save_world_info): New function.
16333         (rs6000_stack_info): Call compute_save_world_info.
16334         (rs6000_emit_prologue): Check for world_save_p and generate
16335         pattern to call save_world for saving all non-volatile and
16336         special registers.
16337         (rs6000_emit_epilogue): Check for world_save_p and generate
16338         pattern to call rest_world to restore saved registers.
16339
16340         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
16341         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
16342         (rs6000_reg_names): New entries added for save_world_operation and
16343         restore_world_operation.
16344
16345 2004-08-18  Caroline Tice  <ctice@apple.com>
16346
16347         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
16348         "-freorder-blocks-and-partition" to the flags used in second
16349         stage of profiledbootstrap.
16350         * bb-reorder.c (push_to_next_round_p): Add new variable,
16351         next_round_is_last; set and use variable to make sure, when
16352         partitioning, that the last trace construction round consists
16353         of all (and only) cold basic blocks.
16354         (rotate_loop): Don't copy blocks that end in a section
16355         crossing jump.
16356         (copy_bb): Correctly initialize "partition" of duplicated bb.
16357         (add_unlikely_executed_notes): Add a comment.
16358         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
16359         to make sure, if function contains hot blocks, that the
16360         successors of ENTRY_BLOCK_PTR are hot; also, only look for
16361         crossing edges if the architecture supports named sections.
16362         (mark_bb_for_unlikely_executed_section): Modify to always
16363         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
16364         the basic block note insn.
16365         (fix_crossing_unconditional_branches): Remove extra space.
16366         (fix_edges_for_rarely_executed_code): Modify to only do
16367         partitioning work if the architecture supports named sections.
16368         (reorder_basic_blocks): Modify to only add
16369         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
16370         supports named sections.
16371         * c-common.c (handle_section_attribute): Initialize new global
16372         variable, user_defined_section_attribute, to true if user has
16373         specified one.
16374         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
16375         forward edges that cross section boundaries.
16376         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
16377         partitioning information if the architecture supports named
16378         sections.
16379         * cfgrtl.c (target.h): Add statement to include this.
16380         (rtl_split_block): Make sure newly created bb gets correct
16381         partition.
16382         (try_redirect_by_replacing_jump): Make sure redirection isn't
16383         attempting to cross section boundaries.
16384         (force_nonfallthru_and_redirect): Only do partition fix up if
16385         architecture supports named sections.
16386         (rtl_split_edge): Make sure newly created bb ends up in
16387         correct partition.
16388         (commit_one_edge_insertion): Remove code that incorrectly
16389         updated basic block partition; Make sure partition fix up only
16390         happens if architecture supports named sections and it's not
16391         already done.
16392         (rtl_verify_flow_info_1): Fix if-condition on test/error
16393         condition that fallthru edges are not allowed to cross section
16394         boundaries.
16395         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
16396         * final.c (final_scan_insn): Remove redundant test from if-statement;
16397         change calls to text_section into calls to function_section; add code
16398         to only to partitioning fix up if architecture supports named
16399         sections.
16400         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
16401         partition.
16402         (if_convert): Add targetm.have_named_sections to test.
16403         * output.h (unlikely_section_label): Extern declaration for new global
16404         variable.
16405         (unlikely_text_section_name): Likewise.
16406         * opts.c (decode_options): If both partitioning and DWARF debugging
16407         are turned on, issue a warning that this doesn't work, and change
16408         partitiong to basic block reordering (without hot/cold partitions).
16409         * passes.c (rest_of_handle_final): Re-set new global variable,
16410         user_defined_section_attribute, to false.
16411         (rest_of_compilation): Change options for calling partitioning
16412         function: Don't call if the user defined the section attribute, and
16413         don't call if DECL_ONE_ONLY is true for the current function.
16414         * predict.c (choose_function_section): Return immediately if we
16415         are doing hot/cold partitioning (i.e. let the basic block partitioning
16416         determine where the function belongs).
16417         * reg-stack.c (emit_swap_insn): Add condition to step over
16418         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
16419         * toplev.c (user_defined_section_attribute): New global variable.
16420         * toplev.h (user_defined_section_attribute): Extern declaration
16421         for new global variable.
16422         * varasm.c (unlikely_section_label): New global variable.
16423         (unlikely_text_section_name): New global variable.
16424         (unlikely_text_section): Add code to initialize
16425         unlikely_text_section_name if necessary; modify to use
16426         unlikely_text_section_name and unlikely_section_label; also to use
16427         named_section properly.
16428         (in_unlikely_text_section):  Modify to work correctly with
16429         named_section and to use unlikely_text_section_name.
16430         (named_section):  Add code to work properly with cold section.
16431         (function_section): Clean up if-statement.
16432         * config/darwin.c (darwin_asm_named_section): Return to original
16433         code, removing use of SECTION_FORMAT_STRING.
16434         * config/arm/pe.h (switch_to_section):  Add case for
16435         in_unlikely_executed_text to switch statement.
16436         * config/i386/cygming.h (switch_to_section): Likewise.
16437         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
16438         (SECTION_FORMAT_STRING): Likewise.
16439         * config/mcore/mcore.h (switch_to_section): Likewise.
16440         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
16441         (SECTION_FORMAT_STRING): Remove.
16442
16443 2004-08-18  Roger Sayle  <roger@eyesopen.com>
16444
16445         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
16446         -ffixed-reg safe, by preserving the meanings of zero and one.
16447         (CALL_USED_REGISTERS): Likewise.
16448         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
16449
16450 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16451
16452         * config/sh/sh.c (split_branches): Check the result of
16453         next_active_insn.
16454         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
16455         Call rtl_register_cfg_hooks.
16456
16457 2004-08-18  Richard Henderson  <rth@redhat.com>
16458
16459         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
16460         * alias.c (true_dependence): Update to match new semantics.
16461         (canon_true_dependence, write_dependence_p): Likewise.
16462         (anti_dependence, output_dependence): Update write_dependence_p args.
16463         (unchanging_anti_dependence): Remove.
16464         * calls.c (purge_mem_unchanging_flag): Remove.
16465         (fixup_tail_calls): Don't call it.
16466         (expand_call): Don't add unchanging memory to function usage.
16467         * expr.c (emit_block_move_via_libcall): Likewise.
16468         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
16469         (get_subtarget): Don't use RTX_UNCHANGING_P.
16470         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
16471         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
16472         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
16473         * cse.c (insert): Don't use RTX_UNCHANGING_P.
16474         (cse_insn, canon_hash): Use MEM_READONLY_P.
16475         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
16476         instead of RTX_UNCHANGING_P.
16477         * explow.c (maybe_set_unchanging): Remove.
16478         * expr.h (maybe_set_unchanging): Remove.
16479         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
16480         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
16481         (assign_parm_setup_reg, expand_function_start): Likewise.
16482         * integrate.c (copy_rtx_and_substitute): Likewise.
16483         * ra-rewrite.c (emit_colors): Likewise.
16484         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
16485         (fixup_match_1): Likewise.
16486         * reload1.c (reload, alter_reg): Likewise.
16487         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
16488         not RTX_UNCHANGING_P.
16489         (equiv_init_varies_p): Likewise.
16490         * loop-invariant.c (check_maybe_invariant): Likewise.
16491         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
16492         * loop.c (note_addr_stored): Likewise.
16493         (prescan_loop): Likewise. Don't check function usage for clobbered
16494         unchanging memory.
16495         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
16496         not RTX_UNCHANGING_P.
16497         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
16498         * varasm.c (force_const_mem): Likewise.
16499         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
16500         * web.c (entry_register): Likewise.
16501         * tree-gimple.h (get_base_address): Move decl ...
16502         * tree.h: ... here.
16503         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
16504
16505         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
16506         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
16507         (alpha_set_memflags): Update to match.
16508
16509         * config/darwin.c (machopic_indirect_data_reference): Set
16510         MEM_READONLY_P instead of RTX_UNCHANGING_P.
16511         (machopic_indirect_call_target): Likewise.
16512         (machopic_legitimize_pic_address): Likewise.
16513         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
16514         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
16515         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
16516         * config/frv/frv.md (symGOT2reg): Likewise.
16517         * config/i386/i386.c (legitimize_pic_address,
16518         legitimize_tls_address, ix86_split_to_parts): Likewise.
16519         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
16520         * config/ia64/ia64.md (load_fptr): Likewise.
16521         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
16522         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
16523         * config/mcore/mcore.c (block_move_sequence): Likewise.
16524         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
16525         * config/pa/pa.c (legitimize_pic_address): Likewise.
16526         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
16527         (rs6000_emit_move): Likewise.
16528         * config/s390/s390.c (legitimize_pic_address): Likewise.
16529         (legitimize_tls_address): Likewise.
16530         * config/s390/s390.md (casesi): Likewise.
16531         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
16532         * config/sh/sh.md (symGOT2reg): Likewise.
16533         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
16534         * config/v850/v850.md (casesi): Likewise.
16535
16536         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
16537         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
16538         * config/mips/mips.c (mips_restore_gp): Likewise.
16539         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
16540         * config/sh/sh.c (sh_reorg): Likewise.
16541
16542 2004-08-18  Richard Henderson  <rth@redhat.com>
16543
16544         * tree.h (struct tree_decl): Add gimple_formal_temp.
16545         (DECL_GIMPLE_FORMAL_TEMP_P): New.
16546         * gimplify.c (pop_gimplify_context): Clear it.
16547         (lookup_tmp_var): Set it, if is_formal.
16548         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
16549         Use is_gimple_val for VECTOR.  Simplify return value.
16550         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
16551         (gimplify_expr): Likewise.
16552         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
16553         is_gimple_tmp_rhs for clarity.  Update all callers.
16554         (is_gimple_reg_rhs): Simplify logic.
16555         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
16556         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
16557         (is_gimple_formal_tmp_reg): Similarly.
16558         * tree-gimple.h: Update decls.
16559         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
16560         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
16561         * tree-ssa-live.c (var_union, type_var_init): Likewise.
16562
16563 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
16564
16565         * c4x.c (legitimize_operands): Remove calls to
16566         preserve_subexpressions_p.
16567
16568 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
16569
16570         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
16571         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
16572
16573 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
16574
16575         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
16576         Objective-C++ extensions.
16577         * gengtype.c (get_file_basename): Match entire subdirectory name
16578         ('cp', 'objc', 'objcp') rather than just its suffix.
16579         (get_base_file_bitmap): Allow for files to belong to more than one
16580         language.
16581         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
16582         used by more than one front-end.
16583
16584 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
16585
16586         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
16587         avoid use of preserve_subexpressions_p.
16588
16589 2004-08-17  Richard Henderson  <rth@redhat.com>
16590
16591         PR 17051
16592         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
16593
16594 2004-08-17  DJ Delorie  <dj@redhat.com>
16595
16596         * doc/extend.texi: Document new xstormy16 attribute.
16597
16598         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
16599         (xstormy16_splittable_below100_or_register): New.
16600         (combine_bnp): New.
16601         (xstormy16_reorg): New.
16602         (TARGET_MACHINE_DEPENDENT_REORG): Define.
16603
16604         * config/stormy16/stormy16.md (movqi_internal): Make name public.
16605         (movhi_internal): Likewise.
16606         (cbhranchhi): Likewise.
16607         (cbhranchhi_neg): Likewise.
16608         (andhi3): Only allow splittable below100 operands.
16609         (iorhi3): Likewise.
16610         (peephole2): New and/zero_extend->and peephole.
16611         (peephole2): New load/ior/save->set1 peephole.
16612         (peephole2): New load/and/save->clr1 peephole.
16613         (bclrx, bclrx2, bclr7, bclr15): New.
16614         (bsetx, bsetx2, bset7, bset15): New.
16615
16616         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
16617         liberal about acceptable 'B' masks.
16618
16619         * config/stormy16/stormy16-protos.h
16620         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
16621         xstormy16_below100_operand, xstormy16_below100_or_register,
16622         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
16623         (PREDICATE_CODES): Add new predicates.
16624
16625         * config/stormy16/stormy16.c
16626         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
16627         xstormy16_below100_operand, xstormy16_below100_or_register,
16628         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
16629         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
16630         (xstormy16_legitimate_address_p): Allow below100 symbols.
16631         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
16632         (xstormy16_expand_move): Leave below100 operands as-is.
16633         (xstormy16_encode_section_info): Encode below100 symbols.
16634         (xstormy16_strip_name_encoding): New.
16635         (xstormy16_print_operand): Print 'b' as shift mask.
16636         (xstormy16_attribute_table): Add below100 attributes.
16637         (xstormy16_handle_below100_attribute): New.
16638
16639         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
16640         (XSTORMY16_SECTION_FUNCTION): New.
16641         (EXTRA_SECTION_FUNCTIONS): Define using the above.
16642         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16643         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
16644         (ASM_OUTPUT_LABELREF): Define.
16645
16646         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
16647         (movhi_internal): Add below100 support.
16648         (andhi3): Add below100 support.
16649         (iorhi3): Add below100 support.
16650         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
16651
16652 2004-08-17  James E Wilson  <wilson@specifixinc.com>
16653
16654         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
16655         of VOIDmode for comparison code mode.
16656         * config/mips/mips.md: For conditional move patterns, use mode of
16657         first compare operand for comparison mode, instead of VOIDmode.
16658
16659         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
16660         normal and -ffast-math code.
16661
16662 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
16663
16664         PR c++/15871
16665         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
16666
16667 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
16668
16669         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
16670
16671 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
16672
16673         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
16674         for non Darwin targets.
16675         (*call_value_nonlocal_darwin64): Likewise.
16676
16677 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
16678
16679         * config/rs6000/rs6000.c (rs6000_function_value): Check for
16680         altivec mode for altivec return register.
16681
16682 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
16683
16684         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
16685         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
16686         * config/rs6000/rs6000.md: Include darwin.md.
16687         (builtin_setjmp_receiver): Add DImode case.
16688         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
16689         Darwin bits.
16690
16691 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
16692
16693         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
16694         trees.
16695         * tree-vectorizer.h: New File: Same.
16696         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
16697         * common.opt (ftree-vectorize): New flag to enable vectorization.
16698         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
16699         vectorization pass.
16700         * tree-data-ref.h (init_data_ref): Additional argument.
16701         (array_base_name_differ_p): Moved to tree-data-ref.c.
16702         * tree-data-ref.c (array_base_name_differ_p): Revised.
16703         (initialize_data_dependence_relation): Call array_base_name_differ_p
16704         with an extra argument.
16705         (analyze_all_data_dependences): Same.
16706         (init_data_ref): Additional argument is_read to set DR_IS_READ.
16707         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
16708         file.
16709         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
16710         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
16711         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
16712         vectorization pass.
16713         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
16714         (tree_ssa_loop_done): Call scev_finalize.
16715         (tree_vectorize): Define the new vectorization pass.
16716         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
16717         size of the vector they support (until support for multiple vector
16718         sizes is added to the vectorizer).
16719         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
16720         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
16721         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
16722         documentation.
16723
16724 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
16725
16726         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
16727         usage.
16728         (generate_protocol_list, handle_impent): Likewise.
16729
16730 2004-08-17  Roger Sayle  <roger@eyesopen.com>
16731
16732         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
16733         ensure that call_used_regs is a superset of both fixed_regs and
16734         call_really_used_regs.
16735
16736 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
16737
16738         PR target/17019
16739         * arm.md (addsi3_cbranch_scratch): Correct case labels.
16740
16741 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
16742
16743         PR middle-end/17036
16744         * fold-const.c (fold): Check for integer operand when
16745         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
16746         Pinski  <pinskia@physics.uc.edu>.
16747
16748 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
16749
16750         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
16751         No need to check if in a cross configuration.
16752         * configure: Regenerate.
16753
16754         * calls.c (precompute_register_parameters):
16755         Inline preserve_subexpressions_p ().
16756         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
16757         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
16758         Likewise.
16759         * expr.c (get_subtarget): Likewise.
16760         * rtl.h (preserve_subexpressions_p): Remove.
16761         * stmt.c (preserve_subexpressions_p): Remove.
16762
16763         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
16764         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
16765         Abort on gimplified cases.
16766
16767 2004-08-16  James E Wilson  <wilson@specifixinc.com>
16768
16769         * tree.h (VECTOR_FLOAT_TYPE_P): New.
16770         (FLOAT_TYPE_P): Use it.
16771         * c-typeck.c (build_binary_op): After convert calls, check for
16772         check for ERROR_MARK operands.
16773
16774 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
16775
16776         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
16777         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
16778         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
16779         (genobjs static pattern rule): Remove %.c dependency.
16780         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
16781         Rename rules; delete commands; fix dependencies.
16782         (mostlyclean): Do not delete temporary source copies.
16783         * configure.ac: Delete all references to BUILD_PREFIX and
16784         BUILD_PREFIX_1.
16785         * configure: Regenerate.
16786
16787         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
16788         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
16789         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
16790         with #ifndef GENERATOR_FILE so that nothing from those headers
16791         is used.
16792
16793         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
16794
16795 2004-08-16  Adam Nemet  <anemet@lnxw.com>
16796
16797         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
16798
16799 2004-08-16  Andrew Pinski  <apinski@apple.com>
16800
16801         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
16802         extraneous semicolon.
16803
16804 2004-08-16  Devang Patel  <dpatel@apple.com>
16805
16806         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
16807         * print-tree.c (print_node): Print DECL_PRESERVE_P.
16808         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
16809         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
16810         * target.h (struct gcc_target): New member, mark_decl_preserved.
16811         * hooks.c (hook_void_charptr): Rename to ...
16812         (hook_void_constcharptr): ... new name.
16813         * hooks.h (hook_void_charptr): Rename to ..
16814         (hook_void_constcharptr): ... new name.
16815         * tree.h (DECL_PRESERVE_P): New #define.
16816         (struct tree_decl): New member, preserve_flag.
16817         * varasm.c (assemble_start_function): Mark decl preserved.
16818         (assemble_variable): Same.
16819         * darwin.c (darwin_mark_decl_preserved): New function.
16820         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
16821         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
16822         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
16823
16824 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
16825
16826         * c-decl.c (grokdeclarator): Allow for function definition where
16827         innermost declarator has attributes.
16828
16829 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
16830
16831         * except.c (get_exception_filter, build_post_landing_pads,
16832         dw2_build_landing_pads): Use target-specific mode for 'filter'.
16833         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
16834         * target.h (eh_return_filter_mode): New field added.
16835         * targhooks.c (default_eh_return_filter_mode): Defined.
16836         * targhooks.h (default_eh_return_filter_mode): Declared.
16837         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
16838
16839 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
16840
16841         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
16842         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
16843         * configure: Regenerate.
16844
16845 2004-08-16  Stan Shebs  <shebs@apple.com>
16846
16847         Basic support for 64-bit Darwin.
16848         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
16849         (machopic_legitimize_pic_address): Similarly, plus use Pmode
16850         instead of SImode.
16851         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
16852         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
16853         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
16854         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
16855         (PROCESSOR_DEFAULT64): Define.
16856         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
16857         Darwin.
16858         * config/rs6000/rs6000.md: Include darwin.md.
16859         (builtin_setjmp_receiver): Add DImode case.
16860         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
16861         Darwin.
16862         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
16863         (rs6000_emit_move): Add DImode case to Darwin bits.
16864         (machopic_output_stub): Use .quad if 64-bit.
16865         * invoke.texi: Document -m32 and -m64.
16866
16867 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
16868
16869         * doc/extend.texi (AltiVec builtins): Document additional differences
16870         from the Motorola AltiVec PIM.
16871
16872 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
16873
16874         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
16875         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
16876         (struct tree_common): Update public_flag documentation.
16877
16878 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
16879
16880         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
16881         Check for artificial variables, not is_gimple_tmp_var.
16882         * tree-ssa-live.c (var_union): Likewise.
16883
16884 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
16885
16886         * calls.c (load_register_parameters): Remove spurious FIXME token.
16887
16888 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
16889
16890         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
16891         (c-lang.o): Depend on c-objc-common.h.
16892         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
16893         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
16894         * c-lang.c: Include c-objc-common.h.
16895         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
16896         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
16897         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
16898         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
16899         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
16900         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
16901         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
16902         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
16903         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
16904         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
16905         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
16906         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
16907         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
16908         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
16909         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
16910         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
16911         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
16912         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
16913         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
16914         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
16915         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
16916         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
16917         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
16918         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
16919         Move to c-objc-common.h.
16920         * c-objc-common.c: Include c-objc-common.h.
16921         * c-objc-common.h: New file.
16922
16923 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
16924             Andrew Pinski  <pinskia@physics.uc.edu>
16925
16926         PR target/14931
16927         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
16928         style.
16929
16930 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
16931
16932         * tree.h (build_int_cst): New.
16933         (build_int_2): Remove.
16934         * tree.c (build_int_2): Remove.
16935         (build_int_cst): New.
16936         (make_vector_type, build_common_tree_nodes,
16937         build_common_tree_nodes_2): Use build_int_cst.
16938         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
16939         expand_builtin_strpbrk, expand_builtin_fputs,
16940         build_string_literal, expand_builtin_printf,
16941         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
16942         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
16943         fold_builtin_isdigit, simplify_builtin_strstr,
16944         simplify_builtin_strpbrk, fold_builtin_fputs,
16945         simplify_builtin_sprintf): Use build_int_cst.
16946         * c-common.c (start_fname_decls, fix_string_type,
16947         c_common_nodes_and_builtins, c_init_attributes,
16948         shorten_compare): Likewise.
16949         * c-decl.c (complete_array_type,
16950         check_bitfield_type_and_width): Likewise.
16951         * c-lex.c (interpret_integer, lex_charconst): Likewise.
16952         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
16953         * c-pretty-print.c (pp_c_integer_constant): Likewise.
16954         * c-typeck.c (really_start_incremental_init, push_init_level,
16955         set_nonincremental_init_from_string): Likewise.
16956         * calls.c (load_register_parameters): Likewise.
16957         * convert.c (convert_to_pointer): Likewise.
16958         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
16959         build_fn_info_type, build_ctr_info_value, build_gcov_info):
16960         Likewise.
16961         * except.c (init_eh, assign_filter_values, assign_filter_values):
16962         Likewise.
16963         * expmed.c (store_fixed_bit_field, extract_bit_field,
16964         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
16965         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
16966         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
16967         * expr.c (convert_move, emit_group_load, emit_group_store,
16968         expand_assignment, store_constructor, store_field,
16969         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
16970         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
16971         invert_truthvalue, optimize_bit_field_compare,
16972         decode_field_reference, all_ones_mask_p, constant_boolean_node,
16973         fold_div_compare, fold, fold_read_from_constant_string,
16974         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
16975         * function.c (assign_parm_setup_block): Likewise.
16976         * stmt.c (shift_return_value, expand_end_case_type,
16977         estimate_case_costs): Likewise.
16978         * stor-layout.c (layout_type, initialize_sizetypes,
16979         set_min_and_max_values_for_integral_type): Likewise.
16980         * tree-chrec.c (chrec_fold_multiply_poly_poly,
16981         reset_evolution_in_loop): Likewise.
16982         * tree-chrec.h (build_polynomial_chrec): Likewise.
16983         * tree-complex.c (build_replicated_const): Likewise.
16984         * tree-eh.c (honor_protect_cleanup_actions,
16985         lower_try_finally_onedest, lower_try_finally_copy,
16986         lower_try_finally_switch): Likewise.
16987         * tree-mudflap.c (mf_build_string, mx_register_decls,
16988         mudflap_register_call, mudflap_enqueue_constant): Likewise.
16989         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
16990         * tree-pretty-print.c (dump_generic_node): Likewise.
16991         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
16992         Likewise.
16993         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
16994         * tree-ssa-loop-niter.c (number_of_iterations_cond,
16995         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
16996         Likewise.
16997
16998         * config/alpha/alpha.c (alpha_initialize_trampoline,
16999         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
17000         * config/arm/arm.c (arm_get_cookie_size): Likewise.
17001         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
17002         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
17003         * config/i860/i860.c (i860_va_start): Likewise.
17004         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
17005         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
17006         mips_gimplify_va_arg_expr): Likewise.
17007         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
17008         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
17009         add_compiler_branch_island): Likewise.
17010         * config/s390/s390.c (s390_va_start): Likewise.
17011         * config/sh/sh.c (sh_va_start): Likewise.
17012         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
17013         Likewise.
17014         * config/xtensa/xtensa.c (xtensa_va_start,
17015         xtensa_gimplify_va_arg_expr): Likewise.
17016
17017         * objc/objc-act.c (build_objc_string_object,
17018         build_objc_symtab_template, init_def_list, init_objc_symtab,
17019         init_module_descriptor, generate_static_references,
17020         build_selector_translation_table, get_proto_encoding,
17021         build_typed_selector_reference, build_selector_reference,
17022         build_next_objc_exception_stuff,
17023         build_method_prototype_list_template, generate_descriptor_table,
17024         generate_protocols, build_protocol_initializer,
17025         build_ivar_list_template, build_method_list_template,
17026         build_ivar_list_initializer, generate_ivars_list,
17027         generate_dispatch_table, generate_protocol_list,
17028         build_category_initializer, build_shared_structure_initializer,
17029         generate_shared_structures, handle_impent,
17030         generate_objc_image_info): Use build_int_cst.
17031
17032 2004-08-15  Ben Elliston  <bje@au.ibm.com>
17033
17034         * vec.h: Comment improvements.
17035
17036 2004-08-14  Roger Sayle  <roger@eyesopen.com>
17037
17038         * c-common.c (shorten_compare, pointer_int_sum,
17039         c_common_truthvalue_conversion, boolean_increment): Replace calls
17040         to build with calls to buildN.
17041         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
17042         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
17043         gimplify_switch_stmt): Likewise.
17044         * c-typeck.c (default_function_array_conversion,
17045         build_component_ref, build_array_ref, build_function_call,
17046         pointer_diff, build_unary_op, build_conditional_expr,
17047         build_compound_expr, build_modify_expr, c_finish_goto_label,
17048         c_finish_goto_ptr, c_finish_return, c_finish_loop,
17049         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
17050         build_binary_op): Likewise.
17051
17052 2004-08-15  Steven Bosscher  <stevenb@suse.de>
17053
17054         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
17055
17056 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17057
17058         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
17059         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
17060         * fixinc/fixincl.x: Rebuilt.
17061
17062 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
17063
17064         * config/mips/mips-protos.h (mips_symbolic_constant_p)
17065         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
17066         (mips_small_data_pattern_p): Declare.
17067         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
17068         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
17069         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
17070         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
17071         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
17072         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
17073         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
17074         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
17075         (pc_or_label_operand, call_insn_operand, move_operand)
17076         (consttable_operand, symbolic_operand, general_symbolic_operand)
17077         (global_got_operand, local_got_operand, stack_operand)
17078         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
17079         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
17080         (mips_small_data_pattern_p): Replace previous small_data_pattern
17081         predicate.  Turn into a bool () (rtx) function.
17082         * config/mips/predicates.md: New file.
17083         * config/mips/mips.md: Include it.  Use the target-independent
17084         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
17085         trap_comparison_operator and equality_op to equality_operator.
17086         Replace uses of small_int with the equivalent const_arith_operand.
17087         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
17088         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
17089         to fcc_reload_operand.
17090         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
17091
17092 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17093
17094         PR libstdc++/17005 partial fix.
17095         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
17096         except when generating ANSI/C89 code.
17097
17098 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
17099
17100         * c-common.c (shorten_compare): Use force_fit_type directly.
17101
17102 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
17103             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
17104             Dave Korn  <dk@artimi.com>
17105
17106         * doc/install.texi (Building): Avoid duplicate reference to GNU
17107         make requirement.
17108         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
17109
17110 2004-08-14  Richard Henderson  <rth@redhat.com>
17111
17112         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
17113         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
17114
17115 2004-08-13  Richard Henderson  <rth@redhat.com>
17116
17117         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
17118         for constant_call_address_operand.
17119         (call_value_pop_1, call_value_1): Likewise.
17120         (sibcall_value_1, call_value_1_rex64): Likewise.
17121
17122 2004-08-13  James E Wilson  <wilson@specifixinc.com>
17123
17124         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
17125         Correct mode from SFmode to DFmode.
17126
17127 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
17128
17129         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
17130         __cstring_object and __image_info sections with the no_dead_strip
17131         attribute.
17132
17133 2004-08-13  Roger Sayle  <roger@eyesopen.com>
17134             David Billinghurst  <David.Billinghurst@riotinto.com>
17135
17136         PR libgfortran/15930
17137         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
17138         * fixinc/fixincl.x: Regenerate.
17139         * fixinc/tests/base/internal/math_core.h: New file.
17140
17141 2004-08-13  Richard Henderson  <rth@redhat.com>
17142
17143         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
17144         (dbxout_function_end): Remove ifdefs for it.
17145         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
17146
17147 2004-08-13  Richard Henderson  <rth@redhat.com>
17148
17149         * Makefile.in (insn-preds.o): Depend on TREE_H.
17150         * genpreds.c (write_insn_preds_c): Include tree.h.
17151         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
17152         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
17153         const48_operand, and_operand, or_operand, mode_width_operand,
17154         mode_mask_operand, mul8_operand, const0_operand,
17155         hard_fp_register_operand, hard_int_register_operand,
17156         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
17157         samegp_function_operand, direct_call_operand, small_symbolic_operand,
17158         global_symbolic_operand, call_operand, symbolic_operand,
17159         dtp16_symbolic_operand, dtp32_symbolic_operand,
17160         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
17161         gottp_symbolic_operand, alpha_comparison_operator,
17162         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
17163         signed_comparison_operator, alpha_fp_comparison_operator,
17164         divmod_operator, fix_operator, aligned_memory_operand,
17165         unaligned_memory_operand, reg_or_unaligned_mem_operand,
17166         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
17167         reg_no_subreg_operand, addition_operation): Move to predicates.md.
17168         (reg_or_const_int_operand): Remove.  Replace all users with
17169         reg_or_cint_operand.
17170         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
17171         (resolve_reload_operand): Split out of aligned_memory_operand.
17172         * config/alpha/alpha-protos.h: Update for exports.
17173         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
17174         * config/alpha/alpha.md: Include predicates.md.
17175         * config/alpha/predicates.md: New file.
17176
17177 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
17178
17179         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
17180         fields with a pointer to the instruction definition.
17181         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
17182         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
17183         (write_attr_case, write_const_num_delay_slots): Update accordingly.
17184         (write_attr_case, write_const_num_delay_slots): Write the name of
17185         an insn next to its case statement.
17186         * genoutput.c (data): Add a filename field.
17187         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
17188         (output_insn_data): Print the location of each insn definition.
17189         * genrecog.c (write_action): Print the name of an insn above
17190         the statement that returns its code.
17191
17192 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
17193
17194         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
17195         * config/libgloss.h: Likewise.
17196         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
17197         * c4x/c4x-modes.def: Likewise.
17198         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
17199         (c4x_rptb_nop_p): Likewise.
17200         (c4x_rptb_valid_p): Likewise.
17201         (c4x_rptb_insert): Likewise.
17202         (c4x_address_conflict): Likewise.
17203         * config/c4x/c4x.md: Likewise.
17204         * config/frv/frv.md: Likewise.
17205         * config/i386/athlon.md: Likewise.
17206         * config/i386/i386.md: Likewise.
17207         * config/i386/predicates.md: Likewise.
17208         * config/ia64/ia64.c: Likewise.
17209         * config/ia64/itanium1.md: Likewise.
17210         * config/ia64/itanium2.md: Likewise.
17211         * config/iq2000/iq2000.md: Likewise.
17212         * config/mcore/mcore.c: Likewise.
17213         * config/mips/mips.c: Likewise.
17214         * config/mips/r3900.h: Likewise.
17215         * config/mips/sb1.md: Likewise.
17216         * config/pa/milli64.S: Likewise.
17217         * config/pa/pa.c: Likewise.
17218         * config/pa/pa.h: Likewise.
17219         * config/rs6000/8540.md: Likewise.
17220
17221 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
17222
17223         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
17224
17225 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
17226
17227         * sh.md (cbranch define_delay) Use cond_delay_slot for
17228         non-anulled condition too.
17229
17230 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
17231
17232         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
17233         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
17234         any_parallel_operand, lmw_operation, stmw_operation,
17235         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
17236         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
17237         any_parallel_operand.
17238         (return_and_restore_fpregs_{si,di}): Same.
17239
17240 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
17241
17242         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
17243         if pred->singleton != PARALLEL, issue a warning and pretend it was.
17244         Also issue a warning for any predicate we don't know about.
17245
17246 2004-08-12  Richard Henderson  <rth@redhat.com>
17247
17248         * config/i386/i386.c (internal_label_prefix): Export.
17249         (internal_label_prefix_len, struct ix86_address,
17250         ix86_decompose_address, maybe_get_pool_constant,
17251         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
17252         memory_address_length): Export.
17253         (any_fp_register_operand, fp_register_operand,
17254         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
17255         x86_64_general_operand, x86_64_szext_general_operand,
17256         x86_64_nonmemory_operand, x86_64_movabs_operand,
17257         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
17258         x86_64_zext_immediate_operand, const_int_1_31_operand,
17259         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
17260         tls_symbolic_operand, global_dynamic_symbolic_operand,
17261         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
17262         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
17263         constant_call_address_operand, const0_operand, const1_operand,
17264         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
17265         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
17266         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
17267         general_no_elim_operand, nonmemory_no_elim_operand,
17268         index_register_operand, q_regs_operand, flags_reg_operand,
17269         non_q_regs_operand, zero_extended_scalar_load_operand,
17270         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
17271         ix86_comparison_operator, ix86_carry_flag_operator,
17272         fcmov_comparison_operator, promotable_binary_operator,
17273         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
17274         mult_operator, div_operator, arith_or_logical_operator,
17275         memory_displacement_operand, cmpsi_operand, long_memory_operand,
17276         aligned_operand): Move to predicates.md as define_predicates.
17277         (tls_symbolic_operand_1): Remove.
17278         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
17279         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
17280         (legitimize_address): Merge tls_symbolic_operand contents.
17281         (ix86_expand_move): Likewise.
17282         * config/i386/i386-protos.h: Update for exports.
17283         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
17284         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
17285         * config/i386/i386.md: Include predicates.md.
17286         * config/i386/predicates.md: New file.
17287
17288 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
17289
17290         PR c++/16924
17291         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
17292         SYMBOL_REF_DECL.
17293         (i386_pe_mark_dllimport): Likewise.
17294         (i386_pe_encode_section_info): Likewise, when overriding
17295         dllimport attribute.
17296
17297 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
17298
17299         * configure.ac: When testing for flex, nm, ar, and bison, check
17300         that they will actually be built.
17301         * configure: Regenerate.
17302
17303 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
17304
17305         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
17306         (MOVE_MAX_PIECES): Define.
17307
17308 2004-08-12  Devang patel  <dpatel@apple.com>
17309
17310         * dbxout.c (dbxout_begin_prologue): New function.
17311         (dbx_debug_hooks): Use new begin prologue hook.
17312         (dbxout_function_end): Emit N_ENSYM.
17313         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
17314
17315 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
17316
17317         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
17318         argument is float*.
17319
17320         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
17321         for vec_dss.
17322
17323         * doc/extend.texi (AltiVec builtins): Fix description for recent
17324         changes.  Update operation list to match current support.
17325
17326 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
17327
17328         * config/s390/s390.c (struct s390_frame_layout): New struct as element
17329         of struct machine_function.
17330         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
17331         changed all uses.
17332         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
17333         changed all uses.
17334         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
17335         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
17336         (s390_frame_area, s390_register_info): New functions.
17337         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
17338         for base register.
17339         (s390_return_addr_rtx, s390_return_address_offset)
17340         (s390_va_start, s390_gimplify_va_arg)
17341         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
17342         layouts.
17343         (s390_frame_info): Functionality partly moved to s390_register_info.
17344         Made adaptions for new stack layout.
17345         (save_gprs, restore_gprs): Changed meaning of second parameter and
17346         adapted all callers.
17347
17348         * config/s390/s390.h (s390_backchain_string): New global variable.
17349         (MASK_BACKCHAIN): Removed definition.
17350         (TARGET_BACKCHAIN): Changed check.
17351         (TARGET_KERNEL_BACKCHAIN): New macro.
17352         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
17353         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
17354         "kernel-backchain".
17355         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
17356
17357         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
17358         as condition.  Adjusted for new stack layout.
17359
17360         * doc/invoke.texi: Added documentation for new option
17361         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
17362         "-mno-backchain".
17363
17364 2004-08-12  Paul Brook  <paul@codesourcery.com>
17365
17366         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
17367         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
17368
17369 2004-08-12  David Daney  <ddaney@avtrex.com>
17370
17371         * java/gcj.texi:  Add subsection on signal usage.
17372
17373 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
17374
17375         * expr.c (move_by_pieces): Set alignment for move to minimum of
17376         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
17377         alignment, but not less than the original alignment.
17378         (move_by_pieces_ninsns): Same.
17379         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
17380         (store_by_pieces_1): Same.
17381
17382 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
17383
17384         PR tree-optimization/16867
17385         * tree.c (is_global_var): New function.
17386         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
17387         Call is_global_var.
17388         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
17389         Update all users.
17390         (is_global_var): Declare.
17391         * tree-dfa.c (dump_variable): Display global and addressable
17392         attributes.
17393         (add_referenced_var): Clarify documentation when marking
17394         variables call-clobbered.
17395         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
17396         instead of needs_to_live_in_memory.
17397         (mark_call_clobbered): If the variable is a tag, mark it
17398         DECL_EXTERNAL.
17399         * tree-gimple.c (is_gimple_reg): Don't check for
17400         TREE_ADDRESSABLE.
17401         (is_gimple_non_addressable): Likewise.
17402         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
17403         needs to be marked call-clobbered.
17404         (setup_pointers_and_addressables): Call is_global_var instead
17405         of needs_to_live_in_memory.
17406         * tree-ssa-dce.c (need_to_preserve_store): Remove.
17407         Update all users with is_global_var.
17408         (mark_stmt_if_obviously_necessary): Fix processing of aliased
17409         stores.  Don't check the virtual definitions.  Rather, check
17410         whether the store is going into global memory.
17411         (find_obviously_necessary_stmts): Get the symbol from the PHI
17412         result.
17413         * tree-ssa-operands.c (get_call_expr_operands): Do not add
17414         clobbering may-defs if the call does not have side effects.
17415
17416 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
17417
17418         PR c++/16276
17419         * output.h (default_function_rodata_section,
17420         default_no_function_rodata_section): New prototypes.
17421         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
17422         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
17423         (TARGET_ASM_OUT): Add it.
17424         * varasm.c (default_function_rodata_section,
17425         default_no_function_rodata_section): New functions.
17426         * final.c (final_scan_insn): Call
17427         targetm.asm_out.function_rodata_section instead of
17428         readonly_data_section.
17429         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
17430         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17431         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17432         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17433         Likewise.
17434         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17435         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17436         Likewise.
17437         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
17438         Likewise.
17439         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17440         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
17441         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
17442
17443 2004-08-12  Paul Brook  <paul@codesourcery.com>
17444
17445         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
17446         frame info.
17447         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
17448         DWARF2_UNWIND_INFO.
17449
17450 2004-08-12  Ben Elliston  <bje@au.ibm.com>
17451
17452         PR target/16286
17453         * config/rs6000/altivec.h: Change vector to __vector throughout.
17454         (Except for the `vector' macro itself).
17455
17456 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
17457
17458         * genpreds.c: Add capability to generate predicate bodies as
17459         well as function prototypes.  Write function prototypes for
17460         the generic predicates too.
17461         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
17462         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
17463         (write_match_code, write_predicate_expr, write_one_predicate_function)
17464         (parse_option): New functions.
17465         (output_predicate_decls): Delete.
17466         (main): Read the machine description, process DEFINE_PREDICATE or
17467         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
17468         as appropriate.
17469
17470         * genrecog.c (struct decision_test): Replace index with
17471         struct pred_data pointer.
17472         (next_index): Remove, unused.
17473         (pred_table, preds, special_mode_pred_table): Delete.
17474         (compute_predicate_codes, process_define_predicate): New functions.
17475         (validate_pattern, add_to_sequence, write_switch): Update for
17476         new data structures.
17477         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
17478         Check both error_count and have_error.
17479
17480         * gensupport.c (in_fname, first_predicate): New globals.
17481         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
17482         (predicate_table, last_predicate, old_pred_table)
17483         (old_special_pred_table): New statics.
17484         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
17485         (add_predicate, init_predicate_table): New functions.
17486         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
17487         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
17488         it or max_include_len.  Call init_predicate_table.
17489         (read_rtx): Run the predicate queue after the attribute queue
17490         but before all the others.
17491         * gensupport.h (in_fname, struct pred_data, first_predicate)
17492         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
17493         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
17494         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
17495         * dummy-conditions.c: Don't include bconfig.h, system.h,
17496         coretypes.h, tm.h, or system.h.  Do include stddef.h.
17497         Duplicate declaration of struct c_test from gensupport.h.
17498
17499         * Makefile.in (OBJS-common): Add insn-preds.o.
17500         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
17501         (insn-preds.c, insn-preds.o): New rules.
17502         (s-preds): Also generate insn-preds.c.
17503         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
17504         Update dependencies.
17505         (print-rtl.o, print-rtl1.o): Correct dependencies.
17506
17507         * recog.h: Delete prototypes of predicate functions.
17508
17509         * doc/md.texi (Predicates): New section with complete
17510         documentation of operand/operator predicates.  Remove some
17511         incomplete documentation of predicates from other places.
17512         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
17513         PREDICATE_CODES; indicate that both are deprecated in favor
17514         of define_predicate/define_special_predicate.
17515
17516         * config/ia64/ia64.c: All predicate function definitions moved
17517         to ia64.md, except
17518         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
17519         (ia64_expand_load_address, ia64_expand_move):
17520         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
17521
17522         * config/ia64/ia64.md: All predicates now defined here.
17523         (symbolic_operand): Is now a special predicate.
17524
17525         * config/ia64/ia64.h: Declare ia64_section_threshold.
17526         (PREDICATE_CODES): Delete.
17527
17528 2004-08-12  Richard Henderson  <rth@redhat.com>
17529
17530         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
17531         * c-semantics.c (add_stmt): Set it.
17532         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
17533         before instantiating a variable sized type.
17534
17535 2004-08-12  Richard Henderson  <rth@redhat.com>
17536
17537         * stor-layout.c (round_up, round_down): Move ...
17538         * fold-const.c (round_up, round_down): ... here.  Use
17539         multiple_of_p to avoid any arithmetic at all.
17540
17541 2004-08-12  Richard Henderson  <rth@redhat.com>
17542
17543         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
17544         (gimplify_init_ctor_preeval_1): New.
17545         (gimplify_init_ctor_preeval): New.
17546         (gimplify_init_ctor_eval): New.
17547         (gimplify_init_constructor): Use them.  Always gimplify the LHS
17548         object first.
17549
17550 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
17551
17552         (This patch is part of merge of objc-improvements-branch
17553         into mainline.)
17554
17555         * doc/frontends.texi: Mention Objective-C++ in addition to
17556         Objective-C.
17557         * doc/install.texi: Add 'obj-c++' to list of configurable
17558         languages.
17559         * doc/invoke.texi: Rename Objective-C option headings to
17560         indicate they also apply to Objective-C++.  List file
17561         extensions for Objective-C++ sources.  Mention that
17562         ObjC and ObjC++ compilations may also use C and C++ options,
17563         respectively.  Point users to doc/standards.texi for
17564         further info on ObjC and ObjC++.
17565         * doc/sourcebuild.texi: Mention the objcp/ directory and
17566         the Objective-C++ sources it contains.
17567         * doc/standards.texi: Update link to Apple ObjC site;
17568         add link to gcc readings.html WWW doc.
17569
17570 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
17571
17572         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
17573         and 2004-07-14 changes.
17574
17575 2004-08-12  Paul Brook  <paul@codesourcery.com>
17576
17577         * doc/invoke.texi: Fix typo.
17578
17579 2004-08-11 Devang Patel  <dpatel@apple.com>
17580
17581         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
17582         and -no_dead_strip_inits_and_terms.
17583         (LINK_SPEC): Same.
17584         * doc/invoke.texi (Darwin Options): Document -dead_strip and
17585         -no_dead_strip_inits_and_terms.
17586
17587 2004-08-11  Paul Brook  <paul@codesourcery.com>
17588
17589         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
17590         (arm_load_pic_register): ... to this.
17591         * config/arm/arm.c (arm_finalize_pic): Rename ...
17592         (arm_load_pic_register): ... to this.  Always output insns at the
17593         current location.  Load via low reg in thumb mode.
17594         (arm_expand_prologue): Call arm_load_pic_register.
17595         (thumb_expand_prologue): Ditto.
17596         * config/arm/arm.h (FINALIZE_PIC): Remove.
17597         * config/arm/arm.md (builtin_setjmp_receiver): Call
17598         arm_load_pic_register.
17599
17600 2004-08-11  Paul Brook  <paul@codesourcery.com>
17601
17602         * arm.c (thumb_force_lr_save): Add prototype.
17603         (thumb_compute_save_reg_mask): New function.
17604         (thumb_find_work_register): New function.
17605         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
17606         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
17607         Don't clobber r3 when removing pretend args.
17608         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
17609         (thumb_output_function_prologue): Use new functions.
17610         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
17611         * arm.h (THUMB_REG_PUSHED_P): Remove.
17612
17613 2004-08-11  James E Wilson  <wilson@specifixinc.com>
17614
17615         PR rtl-optimization/16490
17616         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
17617         global_live_at_end for new basic block if already set for other blocks.
17618
17619 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
17620
17621         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
17622
17623         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
17624         (mfcr rlwinm rlwinm patterns): Set length to 12.
17625
17626 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
17627
17628         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
17629         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
17630         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
17631         (start_ssa_stmt_operands): Delete.
17632         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
17633         struct stmt_operands_d.
17634         (build_ssa_operands): New extern entry point.
17635         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
17636         building code, replace with create_ssa_artficial_load_stmt().
17637         * tree-ssa-operands.c (struct voperands_d): Delete.
17638         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
17639         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
17640         (free_uses, free_defs, free_vuses, free_v_may_defs,
17641         free_v_must_defs): Remove dealloc parameter.
17642         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
17643         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
17644         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
17645         vector comparisons, ssa_name reuse, and allocations here.
17646         (verify_start_operands): Delete.
17647         (finalize_ssa_stmt_operands): Set new operands by calling finalize
17648         routines.
17649         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
17650         (append_def, append_usei): Simplify to simple accumulation.
17651         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
17652         duplicates and simple accumulation.
17653         (free_ssa_operands): Free vectors in a stmt_operand structure.
17654         (build_ssa_operands): New. Create a new stmt_operand structure from
17655         a stmt and an old set of stmt_operands.
17656         (get_stmt_operands): Simplify and call build_ssa_operands.
17657         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
17658         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
17659         add_call_read_ops): Don't pass prev_vops around anymore.
17660         (note_addressable): Return if no stmt annotation.
17661         (copy_virtual_operands): Access v_may_def operands through a struct.
17662         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
17663         hash tables without treating the stmt as a real stmt.
17664         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
17665         v_may_def def and use through a struct instead of 2 array elements.
17666         (struct v_may_def_optype_d): Use v_may_def_operand_type.
17667         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
17668
17669 2004-08-11  Nick Clifton  <nickc@redhat.com>
17670
17671         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
17672         this funciton's behaviour.  Return true when the current function
17673         has a section attribute and -mlong-calls is in effect.
17674         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
17675         short-call marker when -mlong-calls is in effect and the function
17676         has a section attribute.
17677
17678 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
17679
17680         * stmt.c (expand_return): If asked to return the RESULT_DECL,
17681         just call expand_value_return on result_rtl.
17682
17683 2004-08-10  Richard Henderson  <rth@redhat.com>
17684
17685         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
17686         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
17687         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
17688         (add_location_or_const_value_attribute): ... not here.  Use
17689         loc_descriptor_from_tree if possible.
17690         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
17691         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
17692         values specially.
17693         (loc_descriptor_from_tree): New.  Update callers.
17694         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
17695         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
17696         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
17697         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
17698         and BUILT_IN_STACK_RESTORE.
17699         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
17700         * stmt.c (expand_stack_alloc): Remove.
17701         * tree-mudflap.c (mx_register_decls): Don't look for
17702         BUILT_IN_STACK_ALLOC.
17703         * tree-nested.c (convert_local_reference): Likewise.
17704         * tree.h (DECL_VALUE_EXPR): New.
17705
17706 2004-08-10  Richard Henderson  <rth@redhat.com>
17707
17708         * stor-layout.c (round_up): Check for 0/1 before dividing.
17709         (round_down): Likewise.
17710
17711         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
17712
17713 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
17714
17715         * config.gcc (arm*-*-eabi*): New target.
17716         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
17717         (TARGET_LIB_INT_CMP_BIASED): Likewise.
17718         * expmed.c (expand_divmod): Try a two-valued divmod function as a
17719         last resort.
17720         * gthr.h: Remove bogus tokens at end of #pragma.
17721         * optabs.c (expand_twoval_binop_libfunc): New function.
17722         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
17723         (prepare_float_lib_cmp): Try reversing the condition.
17724         (debug_optab_libfuncs): New function.
17725         * optabs.h (expand_twoval_binop_libfunc): Declare.
17726         * config/arm/arm.c (arm_init_libfuncs): New function.
17727         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
17728         (TARGET_INIT_LIBFUNCS): Define it.
17729         * config/arm/arm.h (TARGET_BPABI): New macro.
17730         * config/arm/arm-protos.h
17731         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
17732         * config/arm/bpabi.S: New file.
17733         * config/arm/bpabi.c: Likewise.
17734         * config/arm/bpabi.h: Likewise.
17735         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
17736         (__aeabi_drsub): Likewise.
17737         (__aeabi_dsub): Likewise.
17738         (__aeabi_dadd): Likewise.
17739         (__aeabi_ui2d): Likewise.
17740         (__aeabi_i2d): Likewise.
17741         (__aeabi_f2d): Likewise.
17742         (__aeabi_dmul): Likewise.
17743         (__aeabi_ddiv): Likewise.
17744         (__aeabi_cdrcmple): Likewise.
17745         (__aeabi_cdcmpeq): Likewise.
17746         (__aeabi_cdcmple): Likewise.
17747         (__aeabi_dcmpeq): Likewise.
17748         (__aeabi_dcmplt): Likewise.
17749         (__aeabi_dcmple): Likewise.
17750         (__aeabi_dcmpge): Likewise.
17751         (__aeabi_dcmpgt): Likewise.
17752         (__aeabi_dcmpun): Likewise.
17753         (__aeabi_d2iz): Likewise.
17754         (__aeabi_d2uiz): Likewise.
17755         (__aeabi_d2f): Likewise.
17756         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
17757         (__aeabi_frsub): Likewise.
17758         (__aeabi_fsub): Likewise.
17759         (__aeabi_fadd): Likewise.
17760         (__aeabi_ui2f): Likewise.
17761         (__aeabi_i2f): Likewise.
17762         (__aeabi_fmul): Likewise.
17763         (__aeabi_fdiv): Likewise.
17764         (__aeabi_cfrcmple): Likewise.
17765         (__aeabi_cfcmpeq): Likewise.
17766         (__aeabi_cfcmple): Likewise.
17767         (__aeabi_fcmpeq): Likewise.
17768         (__aeabi_fcmplt): Likewise.
17769         (__aeabi_fcmple): Likewise.
17770         (__aeabi_fcmpge): Likewise.
17771         (__aeabi_fcmpgt): Likewise.
17772         (__aeabi_fcmpun): Likewise.
17773         (__aeabi_f2iz): Likewise.
17774         (__aeabi_f2uiz): Likewise.
17775         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
17776         (__aeabi_uidivmod): New function or alias.
17777         (__aeabi_idivmod): Likewise.
17778         (__aeabi_idiv0): Likewise.
17779         (__aeabi_ldiv0): Likewise.
17780         (__aeabi_llsr): Likewise.
17781         (__aeabi_lasr): Likewise.
17782         (__aeabi_llsl): Likewise.
17783         (bpabi.S): Include it.
17784         * config/arm/libgcc-bpabi.ver: New file.
17785         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
17786         (LINK_SPEC): Remove.
17787         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
17788         __aeabi_ulcmp.
17789         * config/arm/t-bpabi: New file.
17790         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
17791         (TARGET_LIB_INT_CMP_BIASED): Likewise.
17792
17793 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
17794
17795         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
17796         * config/rs6000/rs6000.md (clrmemsi): New pattern.
17797         * config/rs6000/rs6000.c (expand_block_clear): New function.
17798         (expand_block_move): Convert alignment to bits.  Use SImode and
17799         HImode for unaligned addresses if not STRICT_ALIGNMENT.
17800
17801 2004-08-10  Caroline Tice  <ctice@apple.com>
17802
17803         * varasm.c (unlikely_section_label): New global variable.
17804         (unlikely_text_section_name): New global variable.
17805         (text_section):  Remove alignment statement.
17806         (unlikely_text_section): Remove alignment statement; use
17807         unlikely_section_label rather than hard-coded string.
17808         (assemble_start_function): Initialize unlikely_section_label and
17809         unlikely_text_section_name;  make sure cold section is properly
17810         aligned at start of function; output unlikely_section_label if
17811         appropriate.
17812
17813 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
17814
17815         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
17816         * config/s390/s390.c (s390_canonicalize_comparison): New function.
17817         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
17818         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
17819         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
17820         ("*tmqi_mem"): Remove SUBREG from pattern.
17821         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
17822         ("*andsi3_cconly"): Likewise.
17823
17824 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
17825
17826         PR target/16909
17827         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
17828
17829 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
17830
17831         * doc/sourcebuild.texi (compat testing): Document available test
17832         framework commands.  Use the preferred spelling of DejaGnu.
17833
17834 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
17835
17836         * lambda.h: Add matrix type, and prototypes for remainder of
17837         matrix and vector functions.
17838         (lambda_vector_mult_const): New function.
17839         (lambda_vector_negate): Ditto.
17840         (lambda_vector_add): Ditto.
17841         (lambda_vector_add_mc): Ditto.
17842         (lambda_vector_copy): Ditto.
17843         (lambda_vector_zerop): Ditto.
17844         (lambda_vector_equal): Ditto.
17845         (lambda_vector_min_nz): Ditto.
17846         (lambda_vector_first_nz): Ditto.
17847         (lambda_vector_matrix_mult): Ditto.
17848         * lambda-mat.c: New file.
17849         * Makefile.in (lambda-mat.o): New.
17850
17851 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
17852
17853         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
17854         after linking stmt into the program.
17855         (bsi_remove): Don't call modify_stmt.
17856         * tree-complex.c (update_complex_assignment,
17857         expand_complex_comparison): Call modify_stmt after changing the stmt.
17858         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
17859         removing the stmt.
17860         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
17861         the stmt, and only if needed.
17862         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
17863         expression.
17864         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
17865         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
17866         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
17867         (eliminate_redundant_computations): Don't pass an annotation. Call
17868         modify_stmt rather than setting the annotation directly.
17869         (record_equivalences_from_stmt): Remove unused local 'j'.
17870         (cprop_operand): Take a stmt rather than an annotation as a parameter.
17871         Call modify_stmt.
17872         (cprop_into_stmt): Pass stmt rather than annotation.
17873         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
17874         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
17875         modify_stmt.
17876         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
17877
17878 2004-08-10  Jason Merrill  <jason@redhat.com>
17879
17880         PR middle-end/16948
17881         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
17882         the RESULT_DECL.
17883
17884 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
17885
17886         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
17887         hash function.
17888
17889 2004-08-10  Roger Sayle  <roger@eyesopen.com>
17890
17891         * config/mips/mips.md: New reciprocal square root patterns that
17892         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
17893
17894 2004-08-10  Paul Brook  <paul@codesourcery.com>
17895
17896         * config/arm/arm-protos.h (arm_set_return_address,
17897         thumb_set_return_address): Add prototypes.
17898         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
17899         * config/arm/arm.c (arm_compute_func_type,
17900         use_return_insn, arm_compute_save_reg0_reg12_mask,
17901         arm_compute_save_reg_mask, arm_output_function_prologue,
17902         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
17903         current_function_calls_eh_return.
17904         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
17905         old eh code.
17906         (arm_set_return_address, thumb_set_return_address): New functions.
17907         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
17908         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
17909         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
17910         (epilogue): Use the stackadj register.
17911         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
17912
17913 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
17914
17915         PR target/3144
17916         * expr.c (move_by_pieces_ninsns): Add max_size argument.
17917         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
17918         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
17919         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
17920         but using MOVE_RATIO.
17921         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
17922         (can_store_by_pieces): Change max_size type to unsigned int.
17923         (store_by_pieces_1): Likewise.  Pass max_size to
17924         move_by_pieces_ninsns.
17925         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
17926         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
17927         to move_by_pieces_ninsns.
17928         (STORE_BY_PIECES_P): Define.
17929         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
17930         to move_by_pieces_ninsns.
17931         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
17932
17933         * config/i386/i386.h (CLEAR_RATIO): Define.
17934
17935 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
17936
17937         * expr.c (expand_expr_real_1): Add back code that was not dead.
17938
17939 2004-08-09  Andrew Pinski  <apinski@apple.com>
17940
17941         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
17942         which is found to be compatible before returning the aliasing set.
17943
17944 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
17945
17946         * ggc-zone.c (struct alloc_zone): Add statistics counters.
17947         (always_collect): New flag.
17948         (ggc_alloc_zone_1): Update statistics support.  Don't include
17949         overhead in allocated counter.
17950         (sweep_pages): Update allocated counter for large pages.  Don'y
17951         include overhead.
17952         (ggc_collect_1): Always collect.
17953         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
17954         whether to collect.
17955         (SCALE, LABEL): New macros.
17956         (ggc_print_statistics): Add statistics support.
17957
17958 2004-08-09  Roger Sayle  <roger@eyesopen.com>
17959
17960         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
17961         (init_expmed): Fix potential overrun problem with "all.reg".
17962         (expand_sdiv2_pow2): Add an alternate implementation for signed
17963         division, if the target provides a suitable conditional move insn.
17964
17965 2004-08-09  Paul Brook  <paul@codesourcery.com>
17966         Richard Henderson  <rth@redhat.com>
17967
17968         * unwind-dw2.c (uw_install_context_1): Update target saved stack
17969         pointer.
17970
17971 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
17972
17973         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
17974         Check DATA limit only if there's no AS limit.  Ignore insanely
17975         low DATA limits.
17976         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
17977         but take care that the AS limit isn't overrun.
17978         * doc/invoke.texi: Update documentation of min-heapsize parameter.
17979
17980 2004-08-09  Jeff Law  <law@redhat.com>
17981
17982         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
17983         (tree-ssa-threadupdate.o): Add dependencies.
17984         * tree-ssa-threadupdate.c: New file.
17985         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
17986         (rewrite_vars_out_of_ssa): Remove prototype.
17987         (cleanup_tree_cfg): Returns a bool.
17988         * tree.h (thread_through_all_blocks): Prototype.
17989         * tree-outof-ssa.c  (SSANORM_*): Move into here.
17990         (remove_ssa_form): Now static.
17991         (rewrite_vars_out_of_ssa): Kill.
17992         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
17993         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
17994         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
17995         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
17996         anything was changed.
17997         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
17998         from the PHI's annotation rather than the edge associated with
17999         the new argument.
18000         * tree-ssa-dom.c (redirection_edges): Kill.
18001         (redirect_edges_and_update_ssa_graph): Kill.
18002         (tree_ssa_dominator_optimize): Do not reset forwardable flag
18003         for blocks anymore.  Do not initialize redirection_edges.
18004         Call thread_through_all_blocks.  Simplify code for cleanup
18005         of the CFG and iterating.  No longer call cleanup_tree_cfg
18006         outside the iteration loop.
18007         (thread_across_edge): No longer mess with forwardable blocks.
18008
18009 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
18010
18011         * explow.c (memory_address): Use memory_address_p.
18012         * recog.c (general_operand): Likewise.
18013         * regrename.c: No need to define REG_OK_STRICT.
18014
18015 2004-08-09  Steven Bosscher  <stevenb@suse.de>
18016
18017         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
18018         New timers.
18019         * gcse.c: Include timevar.h.
18020         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
18021         and global_copy_prop_count.
18022         (local_const_prop_count, local_copy_prop_count): New static globals.
18023         (gcse_main): Set the right timevar for each pass.
18024         (cprop_jump): Increment global_const_prop_count when a constant is
18025         propagated.  Add "GLOBAL" to dump output.
18026         (cprop_insn): Increment global_const_prop_count when a constant is
18027         propagated, or global_copy_prop_count when a copy is propagated.
18028         (do_local_cprop): Likewise for local_const_prop_count and
18029         local_copy_prop_count.
18030         (one_cprop_pass): Initialize const/cprop counters to zero.
18031         Print out results of local and global const/cprop separately.
18032         (bypass_block): Break over-length line.
18033         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
18034         for bb-reorder.o and tracer.o.
18035
18036 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18037
18038         * Makefile.in (GTFILES): Remove stmt.c
18039         (stmt.o): Do not depend on gt-stmt.h.
18040         * emit-rtl.c (emit_line_note): Do not call
18041         set_file_and_line_for_stmt.
18042         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
18043         do everything.
18044         * function.c (free_after_parsing): Do not free STMT field.
18045         (allocate_struct_function): Do not call init_stmt_for_function.
18046         (assign_stack_temp_for_type): Do not accept values of keep
18047         other than 0 or 1.
18048         (init_temp_slots): Do not initialize removed variables.
18049         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
18050         and X_VAR_TEMP_SLOT_LEVEL fields.
18051         * rtl.h (set_file_and_line_for_stmt): Remove.
18052         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
18053         struct stmt_status, cond_stack, case_stack, nesting_stack,
18054         nesting_depth, emit_locus, set_file_and_line_for_stmt,
18055         same_case_target_p, init_stmt_for_function, emit_nop,
18056         expand_start_cond, expand_start_elseif, expand_start_else,
18057         expand_elseif, expand_end_cond): Remove.
18058         (preserve_subexpressions_p): Remove references to CFUN->STMT.
18059         (expand_start_case, expand_end_case_type): Remove, merge into...
18060         (expand_case): ... this one, including other bits from
18061         expand_expr_real_1.  Inline same_case_target_p.  Turn members
18062         of CASE_STACK into local variables.
18063         (emit_case_bit_tests): Inline same_case_target_p.
18064         (add_case_node): Add HEAD argument, return new head of the list,
18065         do not handle default label here.
18066         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
18067         expand_start_elseif, current_nesting_level, expand_start_case,
18068         expand_end_case_type, expand_end_case, add_case_node,
18069         init_stmt_for_function, expand_elseif): Remove prototypes.
18070         (expand_case): Add prototype.
18071
18072 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18073
18074         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
18075
18076 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18077
18078         * expr.c (var_rtx): Remove.
18079         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
18080         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
18081         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
18082         Abort.
18083         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
18084         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
18085         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
18086
18087 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
18088         Ayal Zaks <zaks@il.ibm.com>
18089
18090         * common.opt (freschedule-modulo-scheduled-loops): New flag.
18091         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
18092         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
18093         when -freschedule-modulo-scheduled-loops flag is not specified.
18094         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
18095         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
18096         More accurate placing of insn in row of partial schedule.
18097         (ps_insn_find_column): New function.
18098         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
18099         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
18100         (schedule_region): Use sched_is_disabled_for_current_region_p.
18101         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
18102
18103 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
18104
18105         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
18106         change.
18107
18108 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
18109
18110         * config/i386/i386.c (ix86_expand_clrmem): Properly call
18111         gen_strset for 64bit target.
18112
18113 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
18114
18115         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
18116
18117 2004-08-07  Jason Merrill  <jason@redhat.com>
18118
18119         Make return in memory explicit.
18120         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
18121         (assign_parm_find_data_types): Remove code for old front end
18122         invisible reference handling.
18123         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
18124         (expand_function_end): Likewise.
18125         * gimplify.c (gimplify_return_expr): Handle a dereferenced
18126         RESULT_DECL.
18127         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
18128         (declare_return_variable): Handle DECL_BY_REFERENCE.
18129         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
18130         (cp_genericize_r): Use convert_from_reference.
18131         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
18132         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
18133
18134         * c-common.c (c_warn_unused_result): Check TREE_USED before
18135         warning about a CALL_EXPR with an unused value.
18136
18137 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
18138
18139         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
18140         to the compiler.  Use -fshort-wchar by default.
18141
18142 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
18143
18144         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
18145         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
18146         threshhold.
18147         * doc/invoke.texi (param): Document min-crossjump-insns.
18148
18149 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
18150
18151         PR c/13282
18152         * c.opt (Wmissing-field-initializers): New option.
18153         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
18154         * c-typeck.c (pop_init_level): Guard the missing field warning with
18155         warn_missing_field_initializers rather than extra_warnings.
18156         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
18157         some of the explanation from...
18158         (-Wextra): ...here.  Say that the missing field warning can be
18159         seperately controlled by -Wmissing-field-initializers.
18160
18161 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
18162
18163         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
18164         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
18165         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
18166         * tree.def (ENTRY_VALUE_EXPR): Remove.
18167
18168 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
18169
18170         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
18171         the places where it is actually needed.  Don't use repz; stosb
18172         for -Os with sufficiently small constant sizes.
18173         For sufficiently small repz; stos{l,q} repeat counts use a sequence
18174         of stos{l,q} instructions instead.
18175
18176 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18177
18178         PR tree-optimization/16807
18179         * loop-iv.c (dump_iv_info): Dump invariants correctly.
18180         (iv_subreg, iv_extend): Express value of invariant purely in
18181         base field.
18182
18183 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
18184
18185         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
18186         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
18187
18188 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
18189
18190         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
18191         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
18192         pre_dec_operand.
18193         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
18194         pattern until reload is finished to allow better code generation
18195         and split them completely into separate instrunctions.
18196         (*andsi3_split): New pattern.
18197
18198 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
18199
18200         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
18201         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
18202         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18203         * tree.h (handle_dll_attribute): Declare.  Test
18204         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18205         * c-common.h (c_determine_visibility): Declare.
18206         * c-common.c (c_determine_visibility): New function.
18207         * c-decl.c (finish_decl): Use it.
18208         (finish_function): Likewise.
18209         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
18210         zero, by default.  Use #if, not #ifdef, to test it.
18211         * config/arm/arm.c (arm_attribute_table): Use
18212         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
18213         #if.
18214         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
18215         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18216         to 1.
18217         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
18218         * config/i386/i386.c (ix86_attribute_table): Use
18219         handle_dll_attribute for dllimport/dllexport.  Test
18220         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18221         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
18222         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18223         it to 1.
18224         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
18225         with #if.
18226         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18227         it to 1.
18228         * doc/extend.texi (dllexport): Clarify and correct documentation.
18229         (dllimport): Likewise.
18230         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
18231         handle_dll_attribute.
18232
18233 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18234
18235         * tree-ssa-loop-manip.c: New file.
18236         * Makefile.in (tree-ssa-loop-manip.o): Add.
18237         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
18238         Declare.
18239         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
18240         form.
18241         (tree_ssa_loop_done): Verify loop closed ssa form.
18242         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
18243
18244 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18245
18246         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
18247         pa_asm_output_aligned_local): New functions.
18248         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
18249         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
18250         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
18251         pa_asm_output_aligned_common.
18252         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18253         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
18254         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
18255         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18256         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
18257         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
18258         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18259         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
18260         common data.
18261
18262 2004-08-05  Andrew Pinski  <apinski@apple.com>
18263
18264         * objc/objc-act.c (build_objc_string_object): Mark the address
18265         expression as constant.
18266
18267 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
18268
18269         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
18270         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
18271         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
18272
18273 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18274
18275         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
18276         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
18277         out, and associated obsolete comments.
18278
18279 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
18280
18281         * tree.h (force_fit_type): Return a tree, take three flags.
18282         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
18283         TREE_CONSTANT_OVERFLOW here.
18284         (int_const_binop, const_binop): Adjust.
18285         (size_int_type): Do sign extension here.
18286         (fold_convert_const, optimize_bit_field_compare,
18287         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
18288         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
18289         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
18290
18291 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18292
18293         PR tree-optimization/16864
18294         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
18295         for ssa names without default_def.
18296
18297 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
18298
18299         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
18300         frame pointer, restore eax with an ebp-relative address.
18301
18302 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
18303
18304         PR 14516
18305         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
18306         * c-common.h (make_rtl_for_local_static): Delete.
18307         * c-decl.c (shadow_tag_warned): Clean up comment.
18308         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
18309         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
18310         * c-semantics.c (make_rtl_for_local_static): Delete.
18311         * expr.c (init_block_move_fn): Use set_user_assembler_name.
18312         (init_block_clear_fn): Likewise.
18313         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
18314         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
18315         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
18316         * tree.h (make_decl_rtl): Remove second parameter.
18317         (set_user_assembler_name): New.
18318         * varasm.c (set_user_assembler_name): New.
18319         (make_decl_rtl): Remove second parameter.  Update callers in many
18320         files.
18321
18322 2004-08-05  Adam Nemet  <anemet@lnxw.com>
18323
18324         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
18325         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
18326         to LynxOS 4.0.
18327         * gthr-lynx.h: New file.
18328         * config/lynx-ng.h: Remove file.
18329         * config/lynx.h: Update to LynxOS 4.0.
18330         * config/t-lynx: New file.
18331         * config/i386/lynx-ng.h: Remove file.
18332         * config/i386/lynx.h: Update to LynxOS 4.0.
18333         * config/rs6000/lynxbase.h: Remove file.
18334         * config/rs6000/lynx.h: Update to LynxOS 4.0.
18335         * config/rs6000/t-lynx: New file.
18336         * doc/install.texi (Options specification): Remove reference to
18337         LynxOS from systems where --with-gnu-as makes a difference.
18338
18339 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18340
18341         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
18342         __UINTMAX_TYPE__.
18343         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
18344         __INTMAX_MAX__.
18345         (c_cpp_builtins): Call it.
18346         * doc/cpp.texi: Update.
18347
18348 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
18349
18350         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
18351         cost.
18352
18353 2004-08-04  Jan Hubicka  <jh@suse.cz>
18354
18355         * basic-block.h (profile_staus): New global variable.
18356         * cfg.c (profile_status): Declare.
18357         (check_bb_profile): Break out from ....; use profile_status
18358         (dump_flow_info): ... here.
18359         * cfgbuild.c (find_basic_blocks): Set profile_status.
18360         * cfgexpand.c (tree_expand_cfg): Likewise.
18361         * predict.c (estimate_probability): Likewise.
18362         * profile.c (branch_prob): Likewise.
18363         * tree-cfg.c (build_tree_cfg): Likewise.
18364         (dump_function_to_file): Use check_bb_profile.
18365         * tree-pretty-print (dump_bb_header): Likewise.
18366         * tree-profile.c (do_tree_profiling): Cleanup.
18367
18368 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
18369
18370         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
18371         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
18372         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
18373         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
18374         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
18375         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
18376         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
18377         (ggc-none.o, errors.o): Move rule to generators section;
18378         correct dependencies.
18379         (min-insn-modes.o): Move rule to generators section; remove
18380         unnecessary explicit command; correct dependencies.
18381         (print-rtl.o, print-rtl1.o): Correct dependencies.
18382         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
18383         (mostlyclean): Update.
18384
18385         * errors.c: Include bconfig.h not config.h.  Correct comment.
18386         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
18387         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
18388         * print-rtl.c: Don't include tm_p.h.
18389
18390         * rtl.h: Move forward-decl of struct function down where it's
18391         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
18392         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
18393
18394 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18395             Jeff Law  <law@redhat.com>
18396
18397         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
18398         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
18399         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
18400         manipulate the duplicated ssa names.
18401         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
18402         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
18403         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
18404         New functions.
18405         (release_ssa_name): Do not release ssa names that may have multiple
18406         definitions.
18407         * tree.h (release_ssa_name_force, mark_for_rewrite,
18408         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
18409         marked_ssa_names): Declare.
18410         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
18411         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
18412         Update call to rewrite_ssa_into_ssa.
18413
18414 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
18415
18416         * defaults.h (TARGET_DECLSPEC): New macro.
18417         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
18418         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
18419         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
18420         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
18421         __declspec support.
18422         (TARGET_DECLSPEC): Define.
18423         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
18424         __declspec support.
18425         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
18426         __declspec support.
18427         (TARGET_DECLSPEC): Define.
18428         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
18429         __declspec support.
18430         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
18431         support.
18432         * doc/tm.texi (TARGET_DECLSPEC): Document.
18433
18434         * doc/extend.texi: Fix typo in comment.
18435
18436 2004-08-04  Paul Brook  <paul@codesourcery.com>
18437
18438         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
18439         (TARGET_CXX): Use it.
18440         * target.h (struct gcc_target): Add cdtor_returns_this.
18441         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
18442         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
18443         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
18444
18445 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
18446
18447         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
18448         low/high pair. Do range checking directly.
18449         (interpret_integer): Adjust.
18450
18451 2004-08-04  Nick Clifton  <nickc@redhat.com>
18452
18453         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
18454         GCC ABI.
18455         * doc/invoke.texi: Document this new switch and also the -mrenesas
18456         switch.
18457
18458 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
18459
18460         * cfglayout.c (insn_locators_initialize): Update the current
18461         location before initializing a location.
18462
18463 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18464
18465         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
18466         (dbxout_function_end): Return after emitting the "Lscope" symbol
18467         under the same conditions that this function formerly wasn't called.
18468         Add explanatory comments.
18469
18470         PR 14860
18471         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
18472         on the new decl.
18473
18474         PR 13956
18475         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
18476         functions, broken out of dbxout_block.
18477         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
18478         stabs too, if it contains symbols.  Use the begin_label and
18479         the Lscope label (emitted by dbxout_function_end) for the
18480         range of this block.
18481
18482 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18483
18484         * doc/install.texi: Update autoconf version requirements.
18485
18486 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18487
18488         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
18489         * recog.c (general_operand, immediate_operand, nonmemory_operand)
18490         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
18491         * regclass.c (record_reg_classes): Likewise.
18492         * reload.c (find_reloads): Likewise.
18493         * reload1.c (reload): Likewise.
18494
18495 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
18496
18497         * gensupport.c (init_md_reader_args_cb): Renamed from
18498         init_md_reader_args.  Add third option, callback function for
18499         parsing program-specific options.  Add diagnosis of incorrect
18500         number of input files.
18501         (init_md_reader): Fold into init_md_reader_args_cb.
18502         (init_md_reader_args): Now a thin wrapper around
18503         init_md_reader_args_cb.
18504         * gensupport.h: Update prototypes.
18505
18506         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
18507         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
18508         * genrecog.c: No need to diagnose lack of an input file;
18509         init_md_reader_args will handle it.
18510         * genconditions.c: Likewise, and use init_md_reader_args.
18511         * genconstants.c: Likewise, and no need to call read_md_rtx.
18512
18513 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
18514
18515         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
18516         declarations.
18517
18518 2004-08-03  Mike Stump  <mrs@apple.com>
18519
18520         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
18521         for frameworks.
18522         * doc/invoke.texi (Darwin Options): Update to reflect above.
18523
18524 2004-08-03  Roger Sayle  <roger@eyesopen.com>
18525
18526         PR middle-end/16790
18527         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
18528         truncations, not just global truncations.
18529
18530 2004-08-03  Andrew Pinski  <apinski@apple.com>
18531
18532         PR bootstrap/16865
18533         * loop-iv.c (simplify_using_assignment): Initialize lhs.
18534
18535 2004-08-03  Paul Brook  <paul@codesourcery.com>
18536
18537         * gcc/doc/install.texi: Document MPFR requirement.
18538
18539 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
18540
18541         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
18542         and mmap() explicitly instead of relying on preset autoconf cache
18543         variables.
18544         * configure: Regenerate.
18545
18546 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
18547
18548         PR target/16570
18549         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
18550         to tmake_file.
18551         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
18552         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
18553         to tmake_file.
18554
18555         * config/i386/t-gmm_malloc: New file.
18556         * config/i386/t-pmm_malloc: Likewise.
18557
18558         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
18559
18560 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
18561             Tanguy Fautrà <tfautre@pandora.be>
18562
18563         * config/i386/pmm_malloc.h: New file.
18564
18565 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
18566
18567         * config/i386/gmm_malloc.h: New file.
18568
18569 2004-08-03  Dale Johannesen  <dalej@apple.com>
18570
18571         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
18572         * c-common.c: Include opts.h.
18573         (c_common_get_alias_set): Fix check for a single input file.
18574         * toplev.c: Remove current_file_decl.
18575         * tree.h: Ditto.
18576
18577 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
18578
18579         * config.gcc (arm*-*-symbianelf*): New target.
18580         * config/arm/symbian.h: New file.
18581
18582         * gthr-gnat.c: Add visibility #pragmas.
18583         * gthr-gnat.h : Likewise.
18584         * gthr.h: Likewise.
18585         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
18586         (__ffsDI2): Likewise.
18587         (__clzSI2): Likewise.
18588         (__ctzSI2): Likewise.
18589         (__ctzDI2): Likewise.
18590         (__popcountSI2): Likewise.
18591         (__popcountDI2): Likewise.
18592         (__paritySI2): Likewise.
18593         (__parityDI2): Likewise.
18594         * libgcc2.h: Add visibility #pragmas.
18595         (__clzDI2): Add prototype.
18596         (__clzSI2): Likewise.
18597         (__ctzSI2): Likewise.
18598         (__ffsDI2): Likewise.
18599         (__ffsSI2): Likewise.
18600         (__ctzDI2): Likewise.
18601         (__popcountSI2): Likewise.
18602         (__popcountDI2): Likewise.
18603         (__paritySI2): Likewise.
18604         (__parityDI2): Likewise.
18605         * unwind-dw2-fde.h: Add visibility #pragmas.
18606         * unwind.h: Likewise.
18607
18608 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
18609             Dale Johannesen  <dalej@apple.com>
18610             Roger Sayle  <roger@eyesopen.com>
18611
18612         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
18613         constants more accurately.  Adjust costs for FMA instructions.
18614         Add cases for most logical and float operations.  Recurse into
18615         most operands.
18616
18617 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
18618
18619         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
18620
18621 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
18622
18623         * ra-build.c (conflicts_between_webs): For webs that cross a call add
18624         conflicts to regs_invalidated_by_call.
18625
18626 2004-08-03  Paul Brook  <paul@codesourcery.com>
18627
18628         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
18629
18630 2004-08-03  Jan Hubicka  <jh@suse.cz>
18631
18632         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
18633         ARRAY_REF argument.
18634
18635 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
18636
18637         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
18638         arm968es, arm10e, arm1020e, arm1022e.
18639         * invoke.texi: Update list of ARM cores.
18640         * arm-tune.md: Regenerate.
18641
18642 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
18643
18644         * arm/gentune.sh: New file.
18645         * arm/t-arm: New file.
18646         * arm/arm-tune.md: New file (autogenerated).
18647         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
18648         * arm.md (attribute tune): Delete.  Include arm-tune.md.
18649
18650 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
18651
18652         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
18653         penultimate parameter.  All callers adjusted.
18654         (struct prefix_list): Remove used_flag_ptr.
18655         (find_a_file): Do not set *pl->used_flag_ptr.
18656         (warn_B, warn_std_ptr): Remove.
18657
18658 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
18659             Mostafa Hagog <mustafa@il.ibm.com>
18660
18661         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
18662
18663 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
18664
18665         * dwarf2out.c (output_call_frame_info): Don't change data format
18666         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
18667         label.  Use 'true' not '1'.
18668         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
18669         required.
18670
18671 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18672
18673         * gdbinit.in: Reflect previous changes to rtunion_def.
18674
18675 2004-08-02  Roger Sayle  <roger@eyesopen.com>
18676
18677         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
18678         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
18679
18680 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18681
18682         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
18683         vec_p_reserve.
18684         * langhooks.h (lang_hooks::builtin_function): Rename parameter
18685         from "class" to "bt_class".
18686
18687 2004-08-02  Paul Brook  <paul@codesourcery.com>
18688
18689         PR rtl-optimization/15068
18690         * flow.c (init_propagate_block_info): Check condition is reversible.
18691
18692 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18693
18694         * gengtype.h (options::info): Change type to const char *.
18695         (enum gc_used_enum): Move out of struct type scope.
18696         * gengtype.c (create_option): Convert initializer for option::info to
18697         appropiate type.
18698         (adjust_field_type, walk_type, write_func_for_structure,
18699         write_root, write_roots): Remove pointless cast.
18700
18701 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
18702
18703         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
18704
18705 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
18706
18707         * rtl.h (union rtunion_def): Have all members  start with the
18708         prefix "rt_".
18709         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
18710         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
18711         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
18712         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
18713         access.
18714         * gengtype.c (adjust_field_rtx_def): Likewise.
18715         * rtlanal.c (loc_mentioned_in_p): Likewise.
18716
18717 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
18718
18719         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
18720         Replace uses of mips/elf64.h with mips/elf.h
18721         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
18722         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
18723         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
18724         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
18725         (HANDLE_SYSV_PRAGMA): Delete.
18726         (ASM_OUTPUT_DEF): Fix formatting.
18727         * config/mips/elf64.h: Delete.
18728
18729 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
18730
18731         * config/ia64/ia64.c (got_symbolic_operand): Do require a
18732         symbol+offset operand to have its offset be zero mod 0x3fff
18733         when GOT entries are in use.  Clarify logic in SYMBOL_REF
18734         case.  Clarify comments.
18735         (ia64_expand_load_address): Split a symbol+offset load when
18736         the offset is nonzero mod 0x3fff, not 0x1fff.
18737
18738 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
18739
18740         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
18741         if trying to *store* to a non-offsettable address.
18742         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
18743         a nonoffsettable address.
18744         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
18745         Clean up.
18746         (movti_string): Don't move GPRs to a nonoffsettable address.
18747         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
18748
18749 2004-08-02  Ben Elliston  <bje@au.ibm.com>
18750
18751         PR target/16155
18752         * config/rs6000/altivec.h: Replace typeof with __typeof__.
18753
18754 2004-08-01  Richard Henderson  <rth@redhat.com>
18755
18756         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
18757         variable sized types.
18758
18759 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
18760
18761         * doc/invoke.texi: In the MIPS options section, remove the passage
18762         saying that -mexplicit-relocs is usually disabled for -mabicalls
18763         -fno-unit-at-a-time.
18764         * config/mips/mips.c (override_options): Remove the code that enforced
18765         this rule.
18766
18767 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
18768
18769         * config/mips/mips.md (cprestore): Provide two alternatives, one for
18770         an in-range offset and one for an out-of-range offset.  Wrap the latter
18771         in .set macro/.set nomacro if it's inside a .set nomacro block.
18772
18773 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
18774
18775         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
18776         (mips_restore_gp): Declare.
18777         * config/mips/mips.c (mips_add_offset): Add a scratch register
18778         argument.  Reimplement in rtl only, reusing MIPS16 logic from
18779         mips_output_mi_thunk.
18780         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
18781         to mips_add_offset.
18782         (mips_gp_save_slot): Delete.
18783         (mips_restore_gp): New function.
18784         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
18785         * config/mips/mips.md (exception_receiver): Turn into a
18786         define_insn_and_split.  Use mips_restore_gp to do the split.
18787         (call_internal, call_value_internal, call_value_multiple_internal): Use
18788         mips_restore_gp to restore $gp.
18789
18790 2004-07-31  Andrew Pinski  <apinski@apple.com>
18791
18792         PR other/16842
18793         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
18794
18795 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
18796
18797         * c-decl.c (diagnose_mismatched_decls): Give error for external
18798         redeclaration of identifier declared with no linkage, not just
18799         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
18800         error for redeclaration with no linkage.
18801
18802 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
18803             Fariborz Jahanian <fjahanian@apple.com>
18804
18805         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
18806         non-offsettable addresses even for DImode.
18807         (rs6000_split_multireg_move): Cope with non-offsettable addresses
18808         being moved into multiple GPRs.
18809
18810         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
18811         to 64.
18812         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
18813         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
18814         to 128.
18815         * config/rs6000/darwin-ldouble.c (isless): New macro.
18816         (inf): New macro.
18817         (nonfinite): New macro.
18818         (FPKINF): Delete.
18819         (_xlqadd): Completely rewrite.
18820         (_xlqmul): Correct overflow handling.
18821         (_xlqdiv): Correct overflow handling.
18822         * config/rs6000/darwin-ldouble-format: New file.
18823
18824 2004-07-30  Roger Sayle  <roger@eyesopen.com>
18825             Richard Henderson  <rth@redhat.com>
18826
18827         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
18828         9 into the equivalent lea instruction.
18829
18830 2004-07-30  Richard Henderson  <rth@redhat.com>
18831
18832         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
18833         with DECL_INITIAL if fb_lvalue.
18834         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
18835         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
18836         with <Cxxx>.
18837         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
18838
18839 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
18840
18841         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
18842         pointer escapes through a function call, assume that the
18843         callee will dereference it.
18844         (add_pointed_to_var): Assume that VALUE is always an
18845         ADDR_EXPR.
18846         (collect_points_to_info_r): Only call add_pointed_to_var if
18847         the value is an ADDR_EXPR.
18848
18849 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
18850
18851         * tree-ssa-alias.c (create_alias_map_for): Do not get the
18852         alias set of the inner type of ARRAY_TYPEs.
18853
18854 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
18855
18856         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
18857         setting a non-register to UNDEFINED right before the call to
18858         set_lattice_value.
18859
18860 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
18861
18862         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
18863
18864 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
18865
18866         * tree-ssa.c (verify_flow_sensitive_alias_info): When
18867         comparing points-to sets of different pointers, make sure the
18868         second pointer is actually referenced in the code.
18869
18870 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
18871
18872         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
18873         (got_symbolic_operand): Remove unreachable code.
18874         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
18875         setjmp_operand; add entry for tls_symbolic_operand.
18876         * config/ia64/ia64-protos.h: Remove all prototypes of
18877         predicate functions.
18878
18879 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
18880
18881         * c-common.h (lang_post_pch_load): New variable.
18882         * c-pch.c (lang_post_pch_load): Define it.
18883         (c_common_read_pch): Use it.
18884         * cgraphunit.c (record_call_1): Give the front end a chance to
18885         record additional needed entities when a variable is marked as
18886         needed.
18887         * tlink.c (recompile_files): Robustify.
18888         (scan_linker_output): If a symbol is assigned to a file,
18889         but after recompilation is not present there, issue an error
18890         message.
18891
18892 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18893
18894         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
18895         Take orig_loop argument and pass it to set_level.
18896         (schedule_sm): Pass the correct orig_loop to force_move_till.
18897
18898 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18899
18900         * cfgloop.c (update_latch_info): Update dominator of the new block.
18901         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
18902         info.
18903         * dominance.c (verify_dominators): Check that the dominance tree is
18904         connected.
18905         (recount_dominator): Ignore unreachable blocks.
18906         (iterate_fix_dominators): Cleanup old dominance information before
18907         recomputing it.
18908
18909 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
18910
18911         * tree-ssa-operands.c (get_expr_operands): Revert changes
18912         to ADDR_EXPR processing introduced by:
18913             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18914             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
18915
18916 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
18917
18918         * doc/implement-c.texi: Add C90 subclause references.  Point to
18919         preprocessor documentation instead of duplicating it.  Add points
18920         only present in C90.  Fill in documentation for all points.
18921
18922 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18923
18924         * pa.c (output_movb): Correct typo.
18925
18926 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
18927
18928         * ra.h (single_reg_in_regclass): Declare.
18929         * ra.c (single_reg_in_regclass): Define.
18930         (first_hard_reg): New.
18931         (init_ra): Initialize single_reg_in_regclass.
18932         * ra-colorize.c (ok_class): New.
18933         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
18934
18935 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
18936
18937         * gcov-io.h: Allow zero tag as EOF indicator.
18938         (gcov_is_eof): Remove.
18939         (gcov_truncate): Remove.
18940         * gcov-io.c (gcov_seek): Always SEEK_SET.
18941         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
18942         EOF tag.
18943         * coverage.c (read_counts_file): Don't use gcov_is_eof.
18944         * gcov-dump.c (dump_file): Likewise.
18945         * gcov.c (read_graph_file, read_count_file): Likewise.
18946
18947         * c-decl.c (complete_array_type): Don't gratuitously copy
18948         maxindex.  Check it always has a type.
18949
18950 2004-07-29  Steven Bosscher  <stevenb@suse.de>
18951
18952         * rtl.c (currently_expanding_to_rtl): New.
18953         * rtl.h (currently_expanding_to_rtl): Export it.
18954         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
18955
18956         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
18957         inliner hack.
18958         * config/sh/sh.c: Replace rtx_equal_function_value_matters
18959         with currently_expanding_to_rtl.
18960         * config/sh/sh.md: Likewise.
18961         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
18962
18963 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
18964
18965         Introduce sh2a support.
18966         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
18967         * config.gcc: Build multilibs for sh2a and sh2a-single by
18968         default.
18969         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
18970         default.  Split their tests out of the corresponding SH4
18971         multilibs.
18972         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
18973         multilibs for SH2a.
18974         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
18975         * config.gcc: Handle sh2a multilibs and cpu selection.
18976         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
18977         * config/sh/t-mlib-sh2a: New.
18978         * config/sh/t-mlib-sh2a-nofpu: New.
18979         * config/sh/t-mlib-sh2a-single: New.
18980         * config/sh/t-mlib-sh2a-single-only: New.
18981         2004-07-09  Nick Clifton  <nickc@redhat.com>
18982         Issue 43400
18983         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
18984         -ml and -m2a are used together.
18985         2004-03-23  DJ Delorie  <dj@redhat.com>
18986         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
18987         when we have a double-sized FPU.
18988         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
18989         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
18990         is set.
18991         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
18992         -msh2a-single and -msh2a-single-only
18993         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
18994         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
18995         is set.
18996         2004-02-20  DJ Delorie  <dj@delorie.com>
18997         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
18998         2004-02-20  Fred Fish <fnf@redhat.com>,
18999         Corinna Vinschen <vinschen@redhat.com>
19000         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
19001         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
19002         2004-02-18  DJ Delorie  <dj@redhat.com>
19003         * config/sh/sh.c (broken_move): Add support for movi20.
19004         * config/sh/sh.h: Likewise.
19005         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
19006         * config/sh/sh.md (udivsi3_sh2a): New.
19007         (udivsi3): Call it.
19008         (divsi3_sh2a): New.
19009         (divsi3): Call it.
19010         (mul_r): New.
19011         (ashlsi3_sh2a): New.
19012         (ashrsi3_sh2a): New.
19013         (lshrsi3_sh2a): New.
19014         (movsi_i): Disable for sh2a.
19015         (movsi_ie): Add movi20.
19016         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
19017         sh2a, for -m2a-nofpu mode.
19018         2004-02-13  DJ Delorie  <dj@redhat.com>
19019         * config/sh/lib1funcs.asm: Handle double vs single better.
19020         * config/sh/sh.h: Likewise.
19021         2004-02-09  DJ Delorie  <dj@redhat.com>
19022         * config/sh/crt1.asm: Add support for sh2a.
19023         * config/sh/elf.h: Likewise.
19024         * config/sh/lib1funcs.asm: Likewise.
19025         * config/sh/sh.c: Likewise.
19026         * config/sh/sh.md: Likewise.
19027         * config/sh/sh.h: Likewise.
19028         * config/sh/t-sh: Likewise.
19029
19030 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
19031
19032         * config/frv/frv.md (movqi_internal, movhi_internal,
19033         movsi_internal): Add backup alternatives for memory inputs.
19034
19035 2004-07-28  Matt Austern  <austern@apple.com>
19036
19037         * config/darwin.c (darwin_one_byte_bool): New global variable.
19038         * config/darwin.h (darwin_one_byte_bool): Declare.
19039         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
19040         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
19041         value of darwin_one_byte_bool.
19042         * doc/invoke.texi: Document -mone-byte-bool flag.
19043
19044 2004-07-28  Eric Christopher  <echristo@redhat.com>
19045
19046         * c-common.c (c_common_unsafe_for_reeval): Delete.
19047         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
19048         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
19049         * calls.c (fix_unsafe_tree): Delete.
19050         (expand_call): Delete code which used above.
19051         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
19052         * expr.c (expand_expr_real_1): Ditto.
19053         * fold-const.c (non_lvalue): Ditto.
19054         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
19055         (lhd_unsafe_for_reeval): Ditto.
19056         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
19057         * langhooks.h (unsafe_for_reeval): Ditto.
19058         (unsave_expr_now): Adjust comment.
19059         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
19060         (estimate_num_insns_1): Ditto.
19061         * tree-pretty-print.c (dump_generic_node): Ditto.
19062         * tree.c (expr_align): Ditto.
19063         (unsave_expr): Delete.
19064         (unsafe_for_reeval): Ditto.
19065         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
19066         * tree.def (UNSAVE_EXPR): Delete.
19067         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
19068
19069 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
19070
19071         * tree.h (enum tls_model): Move ...
19072         * coretypes.h: ... here.
19073
19074 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
19075
19076         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
19077
19078 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
19079
19080         * cse.c (validate_canon_reg): New function, split out from...
19081         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
19082
19083 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19084
19085         * tree-ssa-alias.c (maybe_create_global_var): Don't just
19086         return if .GLOBAL_VAR has been created.
19087
19088 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19089
19090         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
19091         every variable that may have aliases, not just tags.
19092
19093 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
19094
19095         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
19096         move_from_CR_eq_bit.
19097         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
19098
19099
19100         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
19101         e500_flip_eq_bit.
19102
19103         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
19104         output_e500_flip_eq_bit.
19105
19106         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
19107         output_e500_flip_eq_bit.
19108         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
19109         output_e500_flip_eq_bit.
19110         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
19111         (print_operand): case D.  Get to EQ bit.
19112
19113 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
19114
19115         * gcov.c (function_summary): Add missing \n.
19116
19117 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
19118
19119         Introduce sh4a support.
19120         * config.gcc: Handle sh4a multilibs and cpu selection.
19121         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
19122         * config/sh/t-mlib-sh4a: New.
19123         * config/sh/t-mlib-sh4al: New.
19124         * config/sh/t-mlib-sh4a-nofpu: New.
19125         * config/sh/t-mlib-sh4a-single: New.
19126         * config/sh/t-mlib-sh4a-single-only: New.
19127         2004-02-20  DJ Delorie  <dj@redhat.com>
19128         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
19129         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
19130         2003-08-22  Eric Christopher  <echristo@redhat.com>
19131         * config/sh/sh4a.md: Update for chip errata.
19132         2003-08-07  Eric Christopher  <echristo@redhat.com>
19133         * config/sh/sh4a.md: New file. sh4a processor description.
19134         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
19135         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
19136         of -m4a-nofpu.
19137         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
19138         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
19139         * doc/invoke.texi (SH Options): Document -m4al.
19140         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
19141         * config/sh/sh.c (expand_block_move): Remove commented-out code
19142         checked in by mistake.
19143         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
19144         single elements from SFmode vectors.
19145         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
19146         register.
19147         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
19148         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
19149         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
19150         sh_fsca_int2sf): Remove variable declarations.
19151         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
19152         sh_fsca_int2sf): New functions.
19153         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
19154         sh_fsca_int2sf_rtx): New static variables.
19155         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
19156         sh_fsca_int2sf): Declare.
19157         * config/sh/sh.md: Adjust.
19158         * doc/invoke.texi (SH Options): Document new options.
19159         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
19160         compatibility from SH4 code.
19161         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
19162         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
19163         early.
19164         (memory_movsrc_operand): Renamed to...
19165         (unaligned_load_operand): ... this.  Simplified.
19166         * config/sh/sh.h (PREDICATE_CODES): Adjust.
19167         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
19168         input operand to SImode, and adjust the others.  Introduce
19169         post-increment by peephole.
19170         * config/sh/sh.c (expand_block_move): Give the target address the
19171         same mode as the temp reg.
19172         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
19173         copying.
19174         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
19175         Introduce support for SH4a.
19176         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
19177         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
19178         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
19179         sh_fsca_int2sf): New.
19180         (sh_init_builtins): Initialize them.
19181         (print_operand): Support `d'.
19182         (expand_block_move): Use movua if src is misaligned.
19183         (memory_movsrc_operand): New.
19184         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
19185         and one of the SH4 macros.
19186         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
19187         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
19188         SELECT_SH4A_SINGLE): New.
19189         (TARGET_NONE): Add SH4A_BIT.
19190         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
19191         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
19192         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
19193         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
19194         (enum processor_type): Added PROCESSOR_SH4A.
19195         (PREDICATE_CODES): Add memory_movsrc_operand.
19196         * config/sh/sh.md: Removed unused variables.
19197         (attr cpu): Add sh4a.
19198         (attr type): Add movua, fsrra and fsca.
19199         (prefetch): New, for SH4.
19200         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
19201         (toggle_sz): Set type to fp.
19202         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
19203         (movua, extv, extzv): New.
19204         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
19205         and 4a-single-only.
19206
19207 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19208
19209         * tree-optimize.c (init_tree_optimization_passes): Schedule
19210         pass_may_alias right after the program is renamed into SSA.
19211         * tree-pass.h (PROP_alias): Define.
19212         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
19213         * tree-sra.c (pass_sra): Likewise.
19214         * tree-ssa-ccp.c (pass_ccp): Likewise.
19215         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
19216         * tree-ssa-dce.c (pass_dce): Likewise.
19217         * tree-ssa-dom.c (pass_dominator): Likewise.
19218         * tree-ssa-dse.c (pass_dse): Likewise.
19219         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
19220         * tree-ssa-loop-ch.c (pass_ch): Likewise.
19221         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
19222         * tree-ssa-pre.c (pass_pre): Likewise.
19223         * tree-tailcall.c (pass_tail_recursion): Likewise.
19224         * tree-ssa.c (pass_redundant_phi): Likewise.
19225         * tree-ssa-alias.c (aliases_computed_p): Remove.
19226         Update all users.
19227         (init_alias_info): Do not mark all type tags for renaming
19228         unconditionally.
19229         Clear may_aliases from every symbol.
19230         (setup_pointers_and_addressables): If a pointer has not been
19231         dereferenced and it had a type tag, clear it and mark the old
19232         tag for renaming.
19233
19234 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19235
19236         PR tree-optimization/16705
19237         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
19238         .GLOBAL_VAR.
19239
19240 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19241
19242         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
19243         check.
19244
19245         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
19246         don't make another one.
19247
19248         PR optimization/15077
19249         * function.h (struct function): Add field saved_static_chain_decl.
19250         Fix comment for static_chain_decl.
19251         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
19252         * tree-inline.h (save_body): Add new arg.
19253         * tree-optimize.c (tree_rest_of_compilation): Handle saving
19254         static_chain_decl.
19255
19256 2004-07-27  Richard Henderson  <rth@redhat.com>
19257
19258         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
19259         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
19260         is_gimple_addressable.
19261         * tree-gimple.c (is_gimple_addressable): Rename from
19262         is_gimple_addr_expr_arg; accept INDIRECT_REF.
19263         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
19264         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
19265         rename to is_gimple_addressable.
19266
19267 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
19268
19269         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
19270
19271 2004-07-27  Richard Henderson  <rth@redhat.com>
19272
19273         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
19274         before rounding.
19275
19276 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
19277
19278         * libgcc2.c: Change all conditionals testing
19279         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
19280         * libgcc2.h: Likewise.
19281         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
19282         TYPE_PRECISION of float80_type to 80.
19283         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
19284         of fpreg_type and float80_type to 80.
19285         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
19286         * config/m68k/netbsd-elf.h:
19287         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
19288         to evaluate to 80 whenever they would formerly have evaluated to 96.
19289         * config/i386/sco5.h: Remove unnecessary redefinition of
19290         LONG_DOUBLE_TYPE_SIZE.
19291         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
19292         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
19293         XFmode, with a bitsize of 80.  Update commentary.
19294         * config/ia64/ia64-modes.def: Likewise.
19295         * config/m68k/m68k-modes.def: Likewise.
19296
19297 2004-07-27  Steven Bosscher  <stevenb@suse.de>
19298
19299         * cfgexpand.c (tree_expand_cfg): Fix comment.
19300
19301         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
19302         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
19303         Remove.
19304         (prepare_function_start): Don't set rtx_equal_function_value_matters.
19305         * integrate.c (copy_rtx_and_substitute): Don't test for it.
19306         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
19307         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
19308         here again.  Update leading comment.
19309         * rtl.c (rtx_equal_function_value_matters): Remove.
19310         (rtx_equal_p): Don't test for it.
19311         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
19312         Likewise.
19313
19314         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
19315         * rtl.c (note_insn_name): Likewise.
19316         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
19317         * final.c (final_scan_insn): Likewise.
19318
19319         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
19320         * passes.c (rest_of_handle_eh): Do it here.
19321
19322         * stmt.c (struct nesting): Remove struct nesting block member.
19323         (struct stmt_status): Remove x_block_start_count field.
19324         (current_block_start_count): Remove.
19325
19326 2004-07-27  Brian Booth  <bbooth@redhat.com>
19327
19328         * tree-optimize.c (register_one_dump_file): Update condition that uses
19329         static_pass_number.
19330         (dup_pass_1): Replace with...
19331         (next_pass_1): This.
19332         (NEXT_PASS): Call next_pass_1.
19333         (DUP_PASS): Remove.
19334         (init_tree_optimization_passes): Remove uses of DUP_PASS.
19335         (execute_one_pass): Update condition that uses
19336         static_pass_number.
19337         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
19338         integer.
19339
19340 2004-07-27  Nick Clifton  <nickc@redhat.com>
19341
19342         * config/m32r/m32r.c: Include integrate.h in order to get the
19343         prototype for get_hard_reg_initial_val().
19344
19345         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
19346         and tidy up indentation.
19347         (final_presence_set): Use absence_set instead, so that if there is
19348         nothing in the "o" pipe the "s" pipe can be scheduled.
19349
19350 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
19351
19352         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
19353         don't have PT_VARS nor PT_MALLOC set.
19354         Clear name tag from pointers that have not been dereferenced.
19355         (set_pt_anything, set_pt_malloc): Forward declare.
19356         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
19357         not type compatibility when determining if a pointer can be
19358         copy propagated.
19359
19360 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
19361
19362         * expr.h (canonicalize_condition, get_condition): Add an int argument.
19363         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
19364         it to check whether the condition is still valid at the jump insn.
19365         * ifcvt.c (noce_get_condition): Likewise.
19366         (noce_get_alt_condition): Update call to canonicalize_condition.
19367         * loop-iv.c (simplify_using_initial_values): Update call to
19368         get_condition.  Remove FIXME.
19369         (check_simple_exit): Update call to get_condition.
19370         * loop-unswitch.c (may_unswitch_on): Likewise.
19371         * loop.c (check_dbra_loop): Likewise.
19372         (canonicalize_condition, get_condition): Add an argument to say whether
19373         the condition must still be valid at INSN.
19374         (get_condition_for_loop): Update call to get_condition.  Require that
19375         the condition be valid at INSN.
19376         * predict.c (estimate_probability): Update call to get_condition.
19377         Remove unused earliest parameter.
19378         (expected_value_to_br_prob): Update call to canonicalize_condition.
19379
19380 2004-07-26  Eric Christopher  <echristo@redhat.com>
19381
19382         * tree-dfa.c (add_referenced_var): Register initializers of global
19383         variables.
19384
19385 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
19386
19387         * config/i386/i386.c (function_arg): Always treat 8-
19388         and 16-byte wide vectors the same, even if MMX/SSE
19389         are disabled.
19390         (contains_128bit_aligned_vector_p): Add comment.
19391
19392 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
19393
19394         * ra.h (enum node_type): Rename to:
19395         (enum ra_node_type).
19396         * ra-colorize.c: Likewise.
19397
19398 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
19399
19400         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
19401         after simplifying the jump.
19402
19403 2004-06-26  Richard Henderson  <rth@redhat.com>
19404
19405         * calls.c (combine_pending_stack_adjustment_and_call): Make
19406         preferred_unit_stack_boundary argument unsigned.  Make
19407         unadjusted_alignment unsigned.
19408         (expand_call): Make preferred_stack_boundary and
19409         preferred_unit_stack_boundary variables unsigned.
19410         * function.c (assign_stack_local_1): Make alignment unsigned.
19411         * function.h (struct function): Make stack_alignment_needed,
19412         preferred_stack_boundary unsigned.
19413         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
19414         (ix86_compute_frame_layout): Make stack_alignment_needed,
19415         preferred_alignment variables unsigned.
19416         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
19417
19418 2004-07-26  Tom Tromey  <tromey@redhat.com>
19419
19420         * tree.h: Fix typo in comment.
19421
19422 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
19423
19424         PR bootstrap/12804
19425         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
19426         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
19427         (ggc_free): Remove incorrect freeing.
19428         (sweep_pages): Advance PP for large pages.  Fix indentation.
19429
19430 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
19431
19432         PR rtl-optimization/16643
19433         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
19434         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
19435         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
19436         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
19437         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
19438         * function.c (thread_prologue_and_epilogue_insns): Likewise.
19439         * rtl.h (tracer): Add a flags parameter.
19440         * tracer.c (tracer): Pass it to cfg_layout_initialise.
19441         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
19442         (rest_of_handle_reorder_blocks): Update calls to tracer and
19443         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
19444         (rest_of_handle_tracer): Pass 0 to tracer.
19445         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
19446
19447 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
19448
19449         PR target/16239
19450         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
19451         f->f.
19452
19453 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
19454
19455         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
19456         (BINFO_BASE_ACCESS): Adjust.
19457         (BINFO_BASE_ACCESS_APPEND): New.
19458         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
19459         * dbxout.c (dbxout_type): Adjust binfo access accessing.
19460         * dwarf2out.c (gen_member_die): Likewise.
19461         * tree-dump.c (deque_and_dump): Likewise.
19462
19463 2004-07-26  Falk Hueffner  <falk@debian.org>
19464
19465         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
19466         costs.
19467
19468 2004-07-25  Roger Sayle  <roger@eyesopen.com>
19469
19470         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
19471         value off of the stack if TARGET_USE_FFREEP.
19472
19473 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19474
19475         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
19476         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
19477         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
19478         check on invocation of XRESIZEVEC ().
19479
19480 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19481
19482         * c-common.c (disable_builtin_function): Rename variable n to
19483         new_disabled_builtin.
19484         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
19485         Rename local variable old to old_decl.
19486         * gensupport.c (shift_output_template): Rename parameter old to src.
19487         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
19488         old_rtx and newx to new_rtx.
19489
19490 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
19491
19492         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
19493         of c-pragma.h.
19494         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
19495         enum cpp_ttype.
19496         * c-lex.c: Likewise.
19497
19498 2004-07-25  Roger Sayle  <roger@eyesopen.com>
19499
19500         * fold-const.c (constant_boolean_node): Make extern.
19501         (make_range): Wrap long lines.
19502         (fold_cond_expr_with_comparison): Remove unnecessary call to
19503         pedantic_non_lvalue.  Add missing calls to fold_convert.
19504         (fold_truthop): Add missing calls to fold_convert.
19505         (fold): Likewise.
19506         * tree.h (constant_boolean_node): Add prototype here.
19507         * builtins.c (expand_builtin_strncmp): Add missing calls to
19508         fold_convert.
19509         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
19510         Call fold_convert and constant_boolean_node to correct types.
19511         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
19512         missing call to fold_convert to correct types.
19513
19514 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
19515             Brian Ryner  <bryner@brianryner.com>
19516
19517         PR c++/9283
19518         PR c++/15000
19519         * c-common.c (c_common_attribute_table): Allow
19520         handle_visibility_attribute to be called for types.
19521         (handle_visibility_attribute) When given a type, set the visibility
19522         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
19523         so that we can check later whether the attribute was present. Added
19524         warning if attribute applied to non class type.
19525         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
19526         decls and checking that they are consistent.
19527         * common.opt: Added -fvisibility.
19528         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
19529         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
19530         * flags.h, tree.h: Added assorted support defines for overall patch
19531         * opts.c: Added parsing support for -fvisibility.
19532         * tree.c (build_decl): Set visibility for all decls to be whatever
19533         is in force at that time.
19534         * varasm.c (default_binds_local_p_1): Reworked logic determining
19535         when to make a symbol locally bound.
19536         * doc/invoke.texi: Added documentation for -fvisibility and
19537         -fvisibility-inlines-hidden.
19538
19539 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19540
19541         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
19542         * c-common.c: Add missing casts from void * to other types.
19543         * c-decl.c: Likewise.
19544         * c-format.c: Likewise.
19545         * c-lex.c: Likewise.
19546         * c-pragma.c: Likewise.
19547         * c-typeck.c: Likewise.
19548         * defaults.h: Likewise.
19549         * genconstants.c: Likewise.
19550         * gengtype-lex.l: Likewise.
19551         * genmodes.c: Likewise.
19552         * read-rtl.c: Likewise.
19553         * rtl.c: Likewise.
19554
19555 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19556
19557         * bitmap.c: Use type-safe memory allocation macros from libiberty.
19558         * c-common.c: Likewise.
19559         * c-decl.c: Likewise.
19560         * c-lang.c: Likewise.
19561         * c-lex.c: Likewise.
19562         * c-opts.c: Likewise.
19563         * c-parse.in: Likewise.
19564         * c-typeck.c: Likewise.
19565         * genconditions.c: Likewise.
19566         * gengtype-lex.l: Likewise.
19567         * gengtype-yacc.y: Likewise.
19568         * gengtype.c: Likewise.
19569         * genmodes.c: Likewise.
19570         * gensupport.c: Likewise.
19571         * read-rtl.c: Likewise.
19572         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
19573         htab_find_slot().
19574
19575 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19576
19577         * c-decl.c (groktypename, groktypename_in_param_context): Rename
19578         variable typename to type_name.
19579         * c-lex.c (interpret_float): Likewise.
19580
19581 2004-07-25  Roger Sayle  <roger@eyesopen.com>
19582
19583         * convert.c (convert_to_real, convert_to_integer,
19584         convert_to_complex): Replace calls to build with calls to buildN.
19585         * coverage.c (tree_coverage_counter_ref): Likewise.
19586         * dojump.c (do_jump): Likewise.
19587         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
19588         * emit-rtl.c (component_ref_for_mem_expr,
19589         set_mem_attributes_minus_bitpos): Likewise.
19590         * explow.c (update_nonlocal_goto_save_area): Likewise.
19591         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
19592         expand_mult_add): Likewise.
19593         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
19594         store_constructor, get_inner_reference, expand_expr_real_1,
19595         try_casesi, try_tablejump): Likewise.
19596         * function.c (expand_function_start): Likewise.
19597         * stmt.c (emit_case_bit_tests, expand_end_case_type,
19598         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
19599         * stor-layout.c (place_union_field, layout_type): Likewise.
19600         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
19601         * varasm.c (copy_constant): Likewise.
19602
19603 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19604
19605         * c-common.c: Rename all identifiers named `new'.
19606         * c-decl.c: Likewise.
19607         * gensupport.c: Likewise.
19608         * simplify-rtx.c: Likewise.
19609         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
19610         with XNEW().
19611         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
19612         with XNEWVEC().
19613
19614 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
19615
19616         PR c/15360
19617         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
19618         declarations until after calling pushdecl.
19619         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
19620         "extern" and not on whether the declaration is initialized.
19621
19622 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
19623
19624         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
19625         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
19626         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
19627         "cpplib.h", "c-pragma.h", "c-common.h".
19628         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
19629         (solaris_register_pragmas): New functions.
19630         * config/sol2-protos.h: New file.
19631         * config/sol2.c: New file.
19632         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
19633         (REGISTER_TARGET_PRAGMAS): New macros.
19634         (solaris_pending_aligns, solaris_pending_inits)
19635         (solaris_pending_finis): New variables.
19636         * config/t-sol2 (sol2-c.o): Update dependencies.
19637         (sol2.o): New rule.
19638         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
19639         SUBTARGET_INSERT_ATTRIBUTES.
19640         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
19641         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
19642         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
19643         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
19644         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
19645         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
19646         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
19647         * config/sparc/sparc.c (sparc_attribute_table): New.
19648         (TARGET_INSERT_ATTRIBUTES): Define in terms of
19649         SUBTARGET_INSERT_ATTRIBUTES.
19650         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
19651         is defined.
19652         * doc/extend.texi (Solaris Pragmas): New section.
19653
19654 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19655
19656         * c-common.c: Rename all identifiers named `class' to `cl'.
19657         * c-common.h: Likewise.
19658         * c-parse.in: Likewise.
19659         * c-typeck.c: Likewise.
19660         * genmodes.c: Likewise.
19661         * real.c: Likewise.
19662         * real.h: Likewise.
19663         * recog.c: Likewise.
19664         * recog.h: Likewise.
19665         * regrename.c: Likewise.
19666         * tree.h: Likewise.
19667         * c-common.c (builtin_function_2): Change type of 5th parameter from
19668         int to enum built_in_function. Change type of 8th parameter from int
19669         to bool.
19670         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
19671         with GGC_CNEW().
19672         * c-typeck.c (convert_arguments): Change type of formal_prec from
19673         int to unsigned int.
19674         * genmodes.c (blank_mode): Make a few negative constants unsigned.
19675         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
19676         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
19677         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
19678         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
19679         iterator to for_all_modes () instead of an enum because enums can't
19680         be incremented in C++.
19681
19682
19683 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
19684
19685         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
19686         hard registers.
19687
19688 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19689
19690         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
19691         Handle ARRAY_RANGE_REF like ARRAY_REF.
19692
19693 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
19694
19695         * c-typeck.c (digest_init): Don't allow arrays of signed or
19696         unsigned variants of wchar_t to be initialized by wide string
19697         constants.  Do allow arrays of enumerated types compatible with
19698         wchar_t to be initialized by wide string constants.  Refine tests
19699         distinguishing wide and narrow strings and arrays.  Give specific
19700         error for arrays of other integer types initialized by string
19701         constants.
19702         (output_init_element, process_init_element): Check for
19703         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
19704         initializing with string constants.
19705
19706 2004-07-25  Richard Henderson  <rth@redhat.com>
19707
19708         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
19709         on the RESULT_DECL.
19710         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
19711         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
19712         DECL_IGNORED_P to new decl.
19713
19714 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
19715
19716         * config/ia64/ia64.c (general_xfmode_operand)
19717         (destination_xfmode_operand): Delete.
19718         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
19719         * config/ia64/ia64.md (*movxf_internal): Use general_operand
19720         and destination_operand.
19721
19722 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
19723
19724         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
19725         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
19726
19727 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
19728             Zack Weinberg  <zack@codesourcery.com
19729
19730         PR 16684
19731         * c-decl.c (diagnose_mismatched_decls): Don't issue a
19732         redundant-declaration warning the first time a builtin is
19733         declared explicitly.
19734
19735 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19736
19737         * tree.h (staticp): Change return type to bool.
19738
19739 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19740
19741         * c-common.c (c_staticp): Last episode of the staticp saga.
19742
19743 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19744
19745         * c-common.h (c_staticp): Change return type from int to bool.
19746         * tree.c (staticp): Likewise.
19747         * langhooks.h (staticp): Likewise.
19748
19749 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19750
19751         * langhooks-def.h (lhd_staticp): Change return type from int to
19752         bool in prototype to match definition.
19753
19754 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19755
19756         * system.h (bool, true, false): Don't redefine as preprocessor macros
19757         in C++.
19758
19759 2004-07-24  Roger Sayle  <roger@eyesopen.com>
19760
19761         * expmed.c (init_expmed): A signed modulus by a power of two is
19762         considered cheap if its less than or equal to four instructions.
19763
19764 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19765
19766         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
19767         GGC_CNEWVAR): New macros.
19768
19769 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
19770
19771         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
19772         lists.
19773         * c-decl.c: Likewise.
19774         * c-format.c: Likewise.
19775         * c-lex.c: Likewise.
19776         * c-opts.c: Likewise.
19777         * c-pragma.c: Likewise.
19778         * c-typeck.c: Likewise.
19779         * gencheck.c: Likewise.
19780         * genconditions.c: Likewise.
19781         * genconfig.c: Likewise.
19782         * genflags.c: Likewise.
19783         * gengtype.c: Likewise.
19784         * gensupport.c: Likewise.
19785         * ggc-none.c: Likewise.
19786         * langhooks.c: Likewise.
19787         * statistics.h: Likewise.
19788         * stub-objc.c: Likewise.
19789         * java/decl.c: Likewise.
19790
19791 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
19792
19793         * config/m68k/m68k.c (output_scc_di): Fix coding style.
19794         (symbolic_operand): Fix prototype.
19795         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
19796         * config/m68k/m68k.md: Add constants for registers a0 and sp and
19797         use them, change from the "{...}" syntax to the simpler {...}
19798         syntax.
19799         (*cfv4_extendqisi2): Fix destination predicate.
19800         * config/m68k/m68k-protos.h: Remove various declarations also
19801         generated via PREDICATE_CODES.
19802
19803 2004-07-23  Mike Stump  <mrs@apple.com>
19804
19805         * c-typeck.c (convert_for_assignment): Tightened up pointer
19806         converstions that differ in signedness.
19807
19808 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
19809
19810         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
19811
19812 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19813
19814         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
19815         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
19816
19817         * gimplify.c (gimplify_compound_lval): Check for no handled
19818         operations, rather than checking for explicit list of nodes.
19819         (is_gimple_addr_expr_arg_or_indirect): New function.
19820         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
19821         redundant setting of TREE_INVARIANT.
19822         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
19823         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
19824
19825 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
19826
19827         PR tree-optimization/16688
19828         PR tree-optimization/16689
19829         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
19830         unnecessary initialization of 'tag'.
19831         (get_tmt_for): Check that the new type tag has the same alias
19832         set as the pointed-to type.
19833         (group_aliases): Only regular variables need to be removed
19834         from the alias set of a name tag.
19835         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
19836         propagation if the two types are not compatible.
19837         (merge_alias_info): Rename from replace_ssa_names_ann.
19838         Add more checking.
19839         (replace_exp_1): If both arguments are SSA_NAMEs, check that
19840         the propagation can be done.
19841         Only call merge_alias_info on pointers.
19842         (propagate_value): Likewise.
19843         * tree-ssa-copyrename.c: Include langhooks.h.
19844         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
19845         to do the merging.
19846         Do not coalesce variables with incompatible types.
19847         (rename_ssa_copies): Call replace_ssa_name_symbol.
19848         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
19849         the same type as the underlying _DECL.
19850         * tree-ssanames.c (replace_ssa_name_symbol): New function.
19851         * tree.h (replace_ssa_name_symbol): Declare.
19852
19853 2004-07-23  Richard Henderson  <rth@redhat.com>
19854
19855         PR c++/16277
19856         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
19857         unshare it properly.
19858         (gimplify_modify_expr_rhs): Push assignment from a conditional into
19859         the conditional for all non-register types.
19860
19861 2004-07-23  Richard Henderson  <rth@redhat.com>
19862
19863         * expr.c (expand_expr_real_1): Don't handle non-local variables.
19864         * expr.h (fix_lexical_addr): Remove.
19865         * function.c (NEED_SEPARATE_AP): Remove.
19866         (fix_lexical_addr): Remove.
19867         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
19868         not null decl_function_context.
19869         (create_alias_vars): Likewise.
19870         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
19871         (simple_goto_p): Likewise.
19872         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
19873         * tree-ssa-ccp.c (get_default_value): Likewise.
19874         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
19875         * tree.c (needs_to_live_in_memory): Likewise.
19876         * tree-flow-inline.h (may_be_aliased): Move...
19877         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
19878         when TREE_STATIC variables may be addressable.
19879
19880 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
19881
19882         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
19883
19884 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
19885
19886         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
19887         bitmap contents if GENERATOR_FILE is defined.
19888         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
19889         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
19890
19891 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
19892
19893         * c-decl.c (start_function): Form composite type of function types
19894         rather than copying type from previous prototype declaration.
19895
19896 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
19897
19898         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
19899         the const qualifier for the second argument in the C++ functions.
19900
19901         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
19902         specific pointer types.
19903
19904         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
19905         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
19906         for vector bool and/or vector pixel, add C++ and C missing support.
19907         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
19908         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
19909         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
19910         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
19911         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
19912         missing C++ and C support for vector bool and/or vector pixel.
19913         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
19914         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
19915         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
19916         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
19917         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
19918         C++ and C types used for vector bool and/or vector pixel.
19919         (vec_st, vec_stl): Add C++ support for vector pixel.
19920         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
19921         (vec_all_ne): Add C++ support for vector pixel.
19922
19923         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
19924         (vec_vmulesb): Add missing C++ function.
19925         (vec_perm): Fix type of third argument in C++ function.
19926         (vec_vsum4shs): Fix C++ function name.
19927         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
19928         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
19929         argument passed to the error handler in C macro.
19930         (vec_nmsub): Remove extra parens around argument names in C macro.
19931         (vec_packpx): Add missing parens in C macro.
19932
19933 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
19934
19935         * machmode.def: Remove vector modes.
19936         * config/alpha/alpha-modes.def: Add supported vector modes.
19937         * config/arm/arm-modes.def: Likewise.
19938         * config/frv/frv-modes.def: Likewise.
19939         * config/i386/i386-modes.def: Likewise.
19940         * config/rs6000/rs6000-modes.def: Likewise.
19941         * config/sh/sh-modes.def: Likewise.
19942
19943 2004-07-23  Matthias Klose  <doko@debian.org>
19944
19945         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
19946         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
19947         * config.h: Regenerate.
19948         * configure: Likewise.
19949
19950 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
19951
19952         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
19953         generated SYMBOL_REFs for labels.
19954         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
19955         Change prototype.
19956         (machopic_stub_name): Remove.
19957         (machopic_indirection_name): New function.
19958         (machopic_mcount_stub_name): Likewise.
19959         (machopic_classify_name): Remove.
19960         (machopic_function_base_sym): New function.
19961         (machpoic_classify_symbol): Likewise.
19962         (machopic_classify_ident): Remove.
19963         (machopic_define_ident): Likewise.
19964         (machopic_define_name): Likewise.
19965         (machopic_name_defined_p): Likewise.
19966         (machopic_ident_defined_p): Likewise.
19967         (darwin_strip_name_encoding): Likewise.
19968         (machopic_define_symbol): New function.
19969         * config/darwin.c (hashtab.h): Include.
19970         (machopic_defined_list): Remove.
19971         (machopic_classify_ident): Likewise.
19972         (machopic_classify_name): Likewise.
19973         (machopic_ident_defined_p): Likewise.
19974         (machopic_define_ident): Likewise.
19975         (machopic_define_name): Likewise.
19976         (machopic_symbol_defined_p): New function.
19977         (machopic_classify_symbol): Likewise.
19978         (machopic_data_defined_p): Use machopic_classify_symbol.
19979         (machopic_define_symbol): New function.
19980         (machopic_function_base_sym): New function.
19981         (machopic_non_lazy_pointers): Remove.
19982         (machopic_non_lazy_ptr_name): Likewise.
19983         (machopic_stubs): Likewise.
19984         (machopic_stub_name): Likewise.
19985         (NON_LAZY_POINTER_SUFFIX): New macro.
19986         (STUB_SUFFIX): Likewise.
19987         (machopic_indirection): New structure.
19988         (machopic_indirections): New variable.
19989         (machopic_indirection_hash): New function.
19990         (machopic_indirection_eq): Likewise.
19991         (machopic_indirection_name): Likewise.
19992         (machopic_mcount_stub_name): New function.
19993         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
19994         hash table.
19995         (machopic_indirect_data_reference): Rework to use new functions.
19996         (machopic_indirect_call_target): Likewise.
19997         (machopic_legitimize_pic_address): Likewise.
19998         (machopic_output_indirection): New function.
19999         (machopic_finish): Use it.
20000         (machopic_operand_p): Rework to use new functions.
20001         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
20002         (darwin_strip_name_encoding): Remove.
20003         (update_non_lazy_ptrs): Remove.
20004         (update_stubs): Likewise.
20005         (darwin_non_lazy_pcrel): Use new functions.
20006         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
20007         (ASM_OUTPUT_LABELREF): Likewise.
20008         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
20009         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
20010         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
20011         (TARGET_STRIP_NAME_ENCODING): Do not use
20012         darwin_strip_name_encoding.
20013         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
20014         darwin_strip_name_encoding.
20015         * config/i386/darwin.h (FUNCTION_PROFILER): Use
20016         machopic_mcount_stub_name.
20017         * config/i386/i386.c (x86_output_mi_thunk): Use
20018         machopic_indirection_name, not machopic_stub_name.
20019         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
20020         machopic_function_base_sym.
20021         (print_operand): Use machopic_classify_symbol.
20022         (rs6000_emit_prologue): Use machopic_function_base_sym.
20023         (output_profile_hook): Do not use machopic_stub_name.
20024         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
20025
20026 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20027
20028         PR c/7284
20029         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
20030         as multiplication.
20031
20032 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20033
20034         * doc/implement-c.texi: New file.
20035         * doc/extend.texi (C Implementation): Move to there.
20036         * doc/gcc.texi: Include implement-c.texi.
20037         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
20038
20039 2004-07-22  Jason Merrill  <jason@redhat.com>
20040
20041         * integrate.c (copy_decl_for_inlining): Remove invisible reference
20042         handling.
20043         * tree-inline.c (setup_one_parameter): Likewise.
20044
20045 2004-07-22  Brian Booth  <bbooth@redhat.com>
20046
20047         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
20048         (substitute_and_fold): Propigate into VUSE operands when possible.
20049         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
20050         (cp_lattice_meet): Handle merging of latticevalues when
20051         UNKNOWN_VAL is present.
20052         (visit_stmt): Visit assignments with V_MUST_DEFs.
20053         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
20054         (ccp_fold): Deal with RHS' that are constant and virtual.
20055         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
20056         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
20057         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
20058         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
20059         computing immediate uses.
20060         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
20061         transition.
20062         (replace_vuse_in): New function.
20063         (likely_value): Add check of vuse operands.
20064         (get_default_value): Set the default value of virtually defined
20065         variables to UKNOWN_VAL instead of VARYING.
20066
20067 2004-07-22  Richard Henderson  <rth@redhat.com>
20068
20069         * expr.c (emit_push_insn): Don't use set_mem_attributes.
20070
20071 2004-07-22  Richard Henderson  <rth@redhat.com>
20072
20073         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
20074         variables due to conditional compilation.
20075
20076 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
20077
20078         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
20079         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
20080         Release SSA names that have been re-renamed.
20081         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
20082         variable.
20083         * tree-ssa-alias.c (init_alias_info): If aliases have been
20084         computed before, clear existing alias information.
20085         (create_name_tags): Do no fixup PT_ANYTHING pointers.
20086         If the new name tag for a pointer is different than the one it
20087         had before, mark the old tag for renaming.
20088         (replace_may_alias): New function.
20089         (group_aliases): Call it.
20090         (setup_pointers_and_addressables): Always call get_tmt_for.
20091         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
20092         once.
20093         (set_pt_anything): New local function.
20094         (set_pt_malloc): New local function.
20095         (merge_pointed_to_info): Don't merge pointed-to variables from
20096         the original pointer if the destination is pointing to an
20097         unknown location.
20098         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
20099         (add_pointed_to_var): Do not add a variable to the points-to
20100         set if the pointer is already pointing to anywhere.
20101         (collect_points_to_info_r): If the defining statement is a PHI
20102         node, only merge pointed-to information if the argument has
20103         already been visited.
20104         (get_tmt_for): Only create a new tag if the pointer didn't
20105         have one already.
20106         (dump_alias_info): Emit more information.
20107         (dump_points_to_info_for): Likewise.
20108         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
20109         try to get the annotation of an SSA_NAME.
20110         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
20111         alias sets when checking is enabled.
20112         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
20113         (eliminate): Mark basic blocks that will need
20114         EH information cleaned up.
20115         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
20116         predecessor.
20117         Initialize need_eh_cleanup.
20118         (fini_pre): Call tree_purge_all_dead_eh_edges and
20119         cleanup_tree_cfg if needed.
20120         Free need_eh_cleanup.
20121         * tree-ssa.c (verify_ssa_name): New function.
20122         (verify_def): Call it.
20123         Re-arrange to avoid printing too many error messages.
20124         (verify_use): Likewise.
20125         (verify_phi_args): Likewise.
20126         (verify_flow_insensitive_alias_info): New function.
20127         (verify_flow_sensitive_alias_info): New function.
20128         (verify_alias_info): New function.
20129         (verify_ssa): Call verify_alias_info.
20130         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
20131         program.
20132         Re-arrange to avoid printing too many error messages.
20133         * tree-ssanames.c (make_ssa_name): Clear
20134         SSA_NAME_IN_FREE_LIST.
20135         (release_ssa_name): Never release a default definition.
20136         (release_defs): New function.
20137         * tree.h: Declare it.
20138         * tree-ssa-dce.c (remove_dead_stmt): Call it.
20139
20140 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
20141
20142         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
20143         If true, do a depth-first search.  Do a breadht-first search,
20144         otherwise.
20145         (walk_use_def_chains): Add new argument IS_DFS.
20146         Update all users.
20147         * tree-flow.h (walk_use_def_chains): Update prototype.
20148
20149 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
20150
20151         * config/cris/cris.md: Tweak formatting.
20152         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
20153         (mover2side, moverside, movemside, movei, op3, andu): Replace
20154         live define_peephole:s with define_peephole2 near-equivalents.
20155         Delete the rest.
20156         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
20157         word-size modes.
20158         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
20159         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
20160         "*mov_sidesi_mem" respectively.
20161
20162 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
20163
20164         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
20165         (gimplify_build1): Move from tree-complex.c do_unop.
20166         (gimplify_build2): Move from tree-complex.c do_binop.
20167         (gimplify_build3): New.
20168         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
20169         Adjust throughout to call the functions above.
20170         * tree-flow.h: Declare the functions above.
20171         * tree-nested.c (gimplify_val): Rename to...
20172         (tsi_gimplify_val): ... this.
20173
20174         * Makefile.in (tree_complex.o): Update dependencies.
20175         (stor-layout.o): Depend on regs.h.
20176         * c-common.c (handle_vector_size_attribute): Update for
20177         vector types without corresponding vector modes.
20178         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
20179         a corresponding vector mode is not available.
20180         * print-tree.c (print_node): Print nunits for vector types
20181         * regclass.c (have_regs_of_mode): New.
20182         (init_reg_sets_1): Initialize it and use it instead
20183         of allocatable_regs_of_mode.
20184         * regs.h (have_regs_of_mode): Declare it.
20185         * stor-layout.c (layout_type): Pick a mode for vector types.
20186         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
20187         build_replicated_const, do_unop, do_binop, do_plus_minus,
20188         do_negate, expand_vector_piecewise, expand_vector_parallel,
20189         expand_vector_addition, expand_vector_operations_1,
20190         expand_vector_operations, tree_lower_operations,
20191         pass_lower_vector_ssa, pass_pre_expand): New.
20192         (expand_complex_operations, pass_lower_complex): Remove.
20193         * tree-optimize.c (init_tree_optimization_passes): Adjust
20194         pass ordering for changes in tree-complex.c.
20195         * tree-pass.h: Declare new passes.
20196         * tree.c (finish_vector_type): Remove.
20197         (make_vector_type): New.
20198         (build_vector_type_for_mode, build_vector_type): Rewritten.
20199         * tree.def (VECTOR_TYPE): Document where the number of
20200         subparts is stored.
20201         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
20202         (make_vector): Remove declaration.
20203
20204 2004-07-21  Richard Henderson  <rth@redhat.com>
20205
20206         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
20207         TREE_THIS_VOLATILE, may_aliases, or optimization level.
20208         (remove_useless_vars): Dump debugging info.
20209         (expand_used_vars): Move ...
20210         * cfgexpand.c (expand_used_vars): ... here.  Make static.
20211         * tree-flow-inline.h (set_is_used): New.
20212         (set_default_def): Use get_var_ann.
20213         * tree-flow.h: Update decls.
20214         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
20215         (create_ssa_var_map): Use it.
20216         * tree-ssa.c (set_is_used): Remove.
20217
20218 2004-07-22  Ben Elliston  <bje@au.ibm.com>
20219
20220         * gdbinit.in: Set a breakpoint on internal_error.
20221
20222 2004-07-21  Richard Henderson  <rth@redhat.com>
20223
20224         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
20225         to create a new basic block.
20226
20227 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20228
20229         PR c/15052
20230         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
20231         return type on function definitions.  Move other warnings for
20232         qualified return type to -Wreturn-type.  Do not condition any such
20233         warnings on -pedantic.  Update comments.
20234         (start_function): Only copy function type from previous prototype
20235         declaration if return types are compatible.
20236         * c-typeck.c (function_types_compatible_p): Don't condition
20237         warning for incompatibility of volatile qualifiers on the return
20238         type on -pedantic.  Update comment.
20239         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
20240
20241 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20242
20243         * c-typeck.c (set_init_index): Require designator to be of integer
20244         type.
20245
20246 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20247
20248         PR c/11250
20249         * c-parse.in (init): Change to exprtype.
20250         (primary): Set original_code for STRING to STRING_CST.
20251         Call maybe_warn_string_init for compound literals.
20252         (initdcl, notype_initdcl): Call maybe_warn_string_init.
20253         (initval): Update.
20254         * c-tree.h (maybe_warn_string_init): New.
20255         (pop_init_level, process_init_element): Use struct c_expr.
20256         (struct c_expr): Update comment.
20257         * c-typeck.c (maybe_warn_string_init): New function.
20258         (digest_init): Call it.  Additional parameter strict_string.  All
20259         callers changed.
20260         (output_init_element): Likewise.
20261         (struct constructor_stack): Use struct c_expr for
20262         replacement_value.
20263         (really_start_incremental_init, push_init_level): Update.
20264         (pop_init_level): Update.  Return struct c_expr.
20265         (process_init_level): Update.  Take struct c_expr argument.
20266
20267 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
20268
20269         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
20270         commit.
20271
20272 2004-07-21  Eric Christopher  <echristo@redhat.com>
20273
20274         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
20275         removal.
20276         * c-decl.c (pop_scope): Ditto.
20277         * calls.c (expand_call): Remove call to current_nesting_level,
20278         update comment accordingly. Remove calls to expand_start_target_temps
20279         and expand_end_target_temps.
20280         * cfgexpand.c (construct_init_block): Remove call to
20281         expand_start_bindings_and_block.
20282         (construct_exit_block): Remove call to expand_end_bindings.
20283         * expr.c (safe_from_p): Remove BIND_EXPR handling.
20284         (expand_expr_real_1): Ditto. Fix formatting.
20285         (expand_vars): Delete.
20286         * stmt.c (POPSTACK): Remove block_stack.
20287         (stmt_status): Remove x_block_stack.
20288         (block_stack): Delete.
20289         (expand_start_bindings_and_block): Ditto.
20290         (expand_start_target_temps): Ditto.
20291         (expand_end_target_temps): Ditto.
20292         (current_nesting_level): Ditto.
20293         (warn_about_unused_variables): Ditto.
20294         (expand_end_bindings): Ditto.
20295         * tree.h: Remove declarations for above.
20296
20297 2004-07-21  Steven Bosscher  <stevenb@suse.de>
20298
20299         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
20300         * rtl.c (note_insn_name): Likewise.
20301         * print-rtl.c (print_rtx): Don't print it.
20302         * cfgrtl.h (can_delete_note_p): Don't handle it.
20303         (rtl_delete_block): Likewise.
20304         * passes.c (rest_of_handle_guess_branch_prob): Remove.
20305         (rest_of_compilation): Don't call it.
20306         * predict.c (process_note_predictions, process_note_prediction,
20307         note_prediction_to_br_prob): Remove.
20308         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
20309         * stmt.c (return_prediction): Remove.
20310         (expand_value_return): Don't call it.  Don't add prediction
20311         notes for return statements.
20312
20313 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
20314
20315         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
20316         once.
20317
20318 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
20319
20320         * c-common.c (vector_types_convertible_p): Use vector types'
20321         TYPE_SIZE and TREE_TYPE instead of their mode.
20322         * convert.c (convert_to_integer): Likewise.
20323         (convert_to_vector): Likewise.
20324         * fold-const.c (fold_convert): Likewise.
20325         * varasm.c (output_constant): Likewise.
20326         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
20327         Allow a VECTOR_TYPE initializer to be made of several vectors.
20328         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
20329         of cleared and need_to_clear, and use fold_convert.
20330         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
20331         integer vectors.
20332
20333 2004-07-20  Richard Henderson  <rth@redhat.com>
20334
20335         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
20336         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
20337
20338 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
20339
20340         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
20341         enormous cost if not TARGET_HARD_MUL.
20342
20343 2004-07-20  Andrew Pinski  <apinski@apple.com>
20344
20345         PR target/16557
20346         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
20347         (ASM_SPEC): here.
20348
20349 2004-07-21  Paul brook  <paul@codesourcery.com>
20350
20351         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
20352
20353 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20354
20355         * fold-const.c (operand_equal_p): Temporarily support NULL args.
20356         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
20357         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
20358
20359 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
20360
20361         * rtl.h (plus_constant): Delete.
20362         (plus_constant_wide): Rename to plus_constant.
20363         (plus_constant_for_output_wide): Delete vestigial prototype.
20364         (GEN_INT): Remove unnecessary cast.
20365         * tree.h (build_int_2, size_int_type): Delete.
20366         (build_int_2_wide): Rename to build_int_2.
20367         (size_int_wide): Rename to size_int_kind.
20368         (size_int_type_wide): Rename to size_int_type.
20369         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
20370         Remove unnecessary cast.
20371         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
20372         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
20373         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
20374         (size_int_type_wide): Rename size_int_type.
20375         (int_const_binop): Use size_int_type.
20376         * c-lex.c (interpret_integer): Use build_int_2.
20377         * final.c (split_double): Remove unnecessary casts.
20378         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
20379
20380 2004-07-20  Richard Henderson  <rth@redhat.com>
20381
20382         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
20383         (gimplify_compound_lval): Use is_gimple_tmp_reg.
20384         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
20385         (is_gimple_tmp_reg): New.
20386         * tree-gimple.h (is_gimple_tmp_reg): Declare.
20387
20388 2004-07-20  Richard Henderson  <rth@redhat.com>
20389
20390         * tree-pretty-print.c (dump_generic_node): Dump
20391         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
20392
20393 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
20394
20395         * tree-mudflap.c (mf_set_options_fndecl): New tree.
20396         (mudflap_init): Set it.
20397         (mudflap_register_call): Remove __mf_init call.
20398         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
20399         to pass "-ignore-reads" option to libmudflap if needed.
20400
20401 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
20402
20403         PR c++/14607
20404         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
20405         (MAKE_DECL_ONE_ONLY): Undefine.
20406         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
20407         readonly_data, one_only_data_section, forget_section): New prototypes.
20408         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
20409         functions.
20410         (pa_select_section): Add one-only (COMDAT) support.
20411         * pa.h (struct machine_function): Define.
20412         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
20413         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
20414         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
20415         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
20416         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
20417         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
20418         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
20419         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
20420         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
20421         for EXTRA_SECTION_FUNCTIONS.
20422         * doc/install.texi: Update binutils requirements.
20423
20424 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
20425
20426         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
20427         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
20428         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
20429         size_t.
20430         (struct VEC): Use unsigned for num and alloc.
20431         * vec.c (struct vec_prefix): Likewise.
20432         (vec_o_reserve): Adjust.
20433
20434         * dbxout.c (dbxout_type): Fix printf format.
20435
20436         * tree.h (binfo_member): Remove.
20437         * tree.c (binfo_member): Remove.
20438
20439 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
20440
20441         * tree.h: Include vec.h
20442         (DEF_VEC_P(tree)): New type.
20443         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
20444         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
20445         (BINFO_LANG_SLOT): Remove.
20446         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
20447         (struct tree_binfo): Turn base_binfos into a trailing
20448         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
20449         (binfo_lang_slots): Remove.
20450         * tree.c (binfo_lang_slots): Remove.
20451         (make_tree_binfo_stat): Take a base binfo count, not a
20452         lang slot count.  Adjust.
20453         * Makefile.in (TREE_H): Add vec.h
20454         * alias.c (record_component_aliases): Adjust BINFO access.
20455         * dbxout.c (dbxout_type): Likewise.
20456         * dwarf2out.c (gen_member_die): Likewise.
20457         * sdbout.c (sdbout_one_type): Likewise.
20458         * tree-dump.c (deque_and_dump): Likewise.
20459         * config/i386/i386.c (classify_argument,
20460         contains_128bit_aligned_vector_p): Likewise.
20461         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
20462         * doc/c-tree.texi (Classes): Update BINFO documentation.
20463
20464 2004-07-20  Steven Bosscher  <stevenb@suse.de>
20465
20466         * c-common.h (check_case_value): Remove prototype.
20467         (c_add_case_label): Adjust prototype.
20468         * c-common.c (check_case_value): Make static.
20469         (check_case_bounds): New function.
20470         (c_add_case_label): Use it.  Take new argument orig_type.
20471         * c-typeck.c (struct c_switch): New orig_type field.
20472         (c_start_case): Set it.
20473         (do_case): Pass it to c_add_case_label.
20474         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
20475         cases from here.  Add the labels in reverse order.
20476         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
20477         (add_case_node): Return nothing, don't check for duplicate cases.
20478         Insert new case nodes in a list, not in an AVL tree.
20479         (expand_end_case_type): Don't turn a case tree into a case list.
20480         (case_tree2list): Remove.
20481         * tree.h (add_case_node): Adjust prototype.
20482
20483 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
20484
20485         * genattr.c (struct range, struct function_unit,
20486         write_units, extend_range, init_range): Remove them.
20487         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
20488         Output "#define INSN_SCHEDULING" here.
20489         * genattrtab.c (struct range, struct function_unit_op,
20490         struct function_unit, struct dimension, enum operator,
20491         operate_exp, expand_units, simplify_knowing,
20492         encode_units_mask, simplify_by_exploding,
20493         find_and_mark_used_attributes, unmark_used_attributes,
20494         add_values_to_cover, increment_current_value,
20495         test_for_current_value, simplify_with_current_value,
20496         simplify_with_current_value_aux, gen_unit,
20497         write_unit_name, write_function_unit_info,
20498         write_complex_function, write_toplevel_expr,
20499         find_single_value, extend_range): Remove.
20500         (write_attr_get): Do not handle common_av->value
20501         being an FFS.
20502         (struct attr_desc): Remove func_units_p and blockage_p.
20503         (write_attr_valueq): Do not handle them.
20504         (find_attr): Do not clear them.
20505         (make_internal_attr): Do not initialize them.
20506         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
20507         * sched-vis.c (init_target_units, insn_print_units,
20508         init_block_visualization, print_block_visualization,
20509         visualize_scheduled_insns, visualize_no_unit,
20510         visualize_stall_cycles, visualize_alloc,
20511         visualize_free, target_units, get_visual_tbl_length,
20512         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
20513         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
20514         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
20515         * haifa-sched.c (blockage_range, clear_units,
20516         schedule_unit, actual_hazard, potential_hazard,
20517         insn_unit, unit_last_insn, unit_tick,
20518         actual_hazard_this_instance, potential_hazard,
20519         schedule_unit, max_insn_queue_index_value): Remove.
20520         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
20521         max_insn_queue_index.
20522         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
20523         * doc/md.texi (Processor pipeline description): Remove
20524         references to old pipeline descriptions.
20525         (Automaton pipeline description): Merge with the above.
20526         (Old pipeline description, Comparison of the two descriptions):
20527         Remove.
20528
20529         * bt-load.c (migrate_btr_def): Remove references to
20530         use_pipeline_interface.
20531         * haifa-sched.c (insn_cost, schedule_insn,
20532         schedule_block, advance_one_cycle, sched_init,
20533         queue_to_ready, sched_finish): Likewise.
20534         * modulo-sched.c (sms_schedule, advance_one_cycle,
20535         ps_has_conflicts): Likewise.
20536         * sched-rgn.c (init_ready): Likewise.
20537         (debug_dependencies): Likewise, and remove an "if (1)".
20538         * target.h (use_dfa_pipeline_interface): Remove.
20539         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20540         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20541         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20542         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20543         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20544         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20545         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20546         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20547         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20548         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20549         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20550         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20551         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20552         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20553         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20554         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20555         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20556         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20557         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
20558
20559 2004-07-19  Roger Sayle  <roger@eyesopen.com>
20560
20561         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
20562
20563 2004-07-19  Jeff Law  <law@redhat.com>
20564
20565         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
20566         (get_eq_expr_value): Use it.  Simplify slightly.
20567
20568 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
20569
20570         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
20571         (umulsidi3_32bit_r4000): Likewise.
20572
20573 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
20574
20575         * vec.h: Propagate location information properly.
20576         (VEC_T_iterate): Add result pointer parameter.
20577         (VEC_T_space): New.
20578         (VEC_T_reserve): Use it.
20579
20580 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
20581
20582         * Makefile.in (c-format.o): Depend on c-format.h.
20583         * c-format.h: New file.
20584         (struct format_char_info): Add CHAIN member.
20585         * c-format.c: Move some types and constants to c-format.h.
20586         (format_type_error): Set to -1.
20587         (struct function_format_info): Use an int for format_type.
20588         (decode_format_type): Return an int.  Return format_type_error
20589         on error.
20590         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
20591         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
20592         (scan_char_table, time_char_table, monetary_char_table): Initialize
20593         CHAIN to NULL.
20594         (n_format_types): New variable.
20595         (check_format_info_main): Handle CHAIN in format_char_info.
20596         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
20597         TARGET_N_FORMAT_TYPES.
20598         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
20599         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
20600         * config/sol2-c.c: New file.
20601         * config/t-sol2: New file.
20602         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
20603         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
20604         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
20605
20606         * doc/extend.texi (Target Format Checks): New section.
20607         (Function Attributes): Mention it.
20608         * doc/invoke.texi: Mention target format checks.
20609         * doc/sourcebuild.texi: Mention target format checks.
20610         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
20611         TARGET_FORMAT_TYPES.
20612
20613 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
20614
20615         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
20616         added.
20617         * config/s390/s390.c (regclass_map initializer): Register 35 added to
20618         ADDR_REGS.
20619         (load_multiple_operation, store_multiple_operation): Removed
20620         pointless sanity check.
20621         (s390_decompose_address): Added check for return_address_pointer_rtx.
20622         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
20623         (s390_return_address_offset): New function.
20624         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
20625         (FRAME_REGNO_P): Added check for register 35.
20626         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
20627         REG_ALLOC_ORDER): Appended entry for register 35.
20628         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
20629         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
20630         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
20631         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
20632         is eliminable using stack pointer or hard frame pointer.
20633         (REGISTER_NAMES): Added name for register 35.
20634         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
20635         pointless sanity check.
20636
20637 2004-07-19  Roger Sayle  <roger@eyesopen.com>
20638
20639         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
20640         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
20641         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
20642         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
20643         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
20644         (fold_relational_const): Tidy up handling of floating point
20645         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
20646         transformation; fold_relational_const assumes constant operands.
20647
20648 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
20649
20650         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
20651         directory.
20652
20653 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
20654
20655         * c-tree.h (struct c_expr): Define.
20656         (C_SET_EXP_ORIGINAL_CODE): Remove.
20657         (parser_build_binary_op, build_compound_expr): Update prototypes.
20658         * c-parse.in (%union): Add exprtype.
20659         (FUNC_NAME): Mark as ttype.
20660         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
20661         exprtype.
20662         (expr): Update.  Define directly in terms of expr_no_commas
20663         instead of using nonnull_exprlist.
20664         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
20665         offsetof_member_designator, typespec_nonreserved_nonattr, init,
20666         initval, designator, component_declarator,
20667         component_notype_declarator, enumerator, array_declarator,
20668         condition, exexpr, switch_statement, stmt_nocomp, stmt,
20669         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
20670         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
20671         where appropriate.
20672         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
20673         * c-common.c (c_common_truthvalue_conversion): Don't check
20674         C_EXP_ORIGINAL_CODE.
20675         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
20676         Don't use C_EXP_ORIGINAL_CODE.
20677         (default_conversion, default_function_array_conversion): Don't use
20678         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
20679         (internal_build_compound_expr): Merge into build_compound_expr.
20680         (build_compound_expr): Take two operands instead of a TREE_LIST.
20681         * objc/objc-act.c (get_super_receiver): Update calls to
20682         build_compound_expr.
20683
20684 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
20685
20686         * config/sh/sh.c (sh_use_dfa_interface): Remove.
20687         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
20688         hook_int_void_1.
20689         * config/sh/sh.md: Extract pipeline descriptions
20690         into separate files.
20691         * config/sh/sh1.md: New file, extracted from sh.md.
20692         * config/sh/sh4.md: New file, extracted from sh.md.
20693         * config/sh/shmedia.md: New file, extracted from sh.md
20694         and rewritten using new-style pipeline description.
20695
20696 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
20697
20698         * config/pa/pa.md: Delete the two remaining define_peephole
20699         patterns.
20700
20701 2004-07-18  Steven Bosscher  <stevenb@suse.de>
20702             Joseph S. Myers  <jsm@polyomino.org.uk>
20703
20704         * c-common.c (c_common_truthvalue_conversion): Don't warn if
20705         TREE_NO_WARNING is set.
20706
20707 2004-07-18  Roger Sayle  <roger@eyesopen.com>
20708
20709         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
20710         simplify_builtin_strncmp): Delete.
20711         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
20712         Change argument to accept an arglist instead of an "exp".  Assume
20713         that the return type is always integer_type_node.  Copy missing
20714         transformations from their now obsolete simplify_builtin_*
20715         equivalents.
20716         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
20717         fold_builtin_strcmp and fold_builtin_strncmp.
20718         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
20719         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
20720         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
20721
20722 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
20723
20724         * Makefile.in (tree-alias-common.o): Update dependencies.
20725
20726 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
20727
20728         * cfgloop.c (flow_loop_nested_p): Fix comment.
20729
20730 2004-07-17  Jason Merrill  <jason@redhat.com>
20731
20732         PR c++/16115
20733         * stor-layout.c (relayout_decl): New fn.
20734         * tree.h: Declare it.
20735         (DECL_BY_REFERENCE): New macro.
20736
20737 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
20738
20739         * libgcc2.c (__enable_execute_stack): New symbol.
20740         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
20741         and declare __enable_execute_stack.
20742         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
20743         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
20744         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
20745         ENABLE_EXECUTE_STACK.
20746         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
20747         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
20748         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
20749         ENABLE_EXECUTE_STACK.
20750         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20751         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
20752         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
20753         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
20754         ENABLE_EXECUTE_STACK.
20755         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20756         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20757         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20758         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
20759         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
20760         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
20761         (sparc64_initialize_trampoline): Likewise.
20762         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
20763
20764 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
20765
20766         * langhooks.h (builtin_function): New langhook.
20767         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
20768         (LANG_HOOKS_INITIALIZER): Update.
20769         * tree.h (builtin_function): Remove.
20770         * doc/tm.texi: Update.
20771         * c-tree.h (builtin_function): Declare.
20772         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
20773         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
20774         config/ia64/ia64.c, config/iq2000/iq2000.c,
20775         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
20776         config/stormy16/stormy16.c: All callers of builtin_function
20777         changed.
20778
20779 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
20780
20781         PR target/16556
20782         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
20783         Remove white space after the backslash.
20784
20785 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
20786
20787         PR rtl-optimization/16294
20788         * resource.c (return_insn_p): New predicate.
20789         (mark_target_live_regs): Use it.  Special-case return insns.
20790         (init_resource_info): Use it.  Don't scan the epilogue past
20791         a return.
20792
20793 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
20794
20795         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
20796         destroy dominance information.
20797         * passes.c (rest_of_handle_loop2):  Free dominance information.
20798         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
20799         jump threading.
20800         (thread_jumps): Update dominance information and remove unreachable
20801         blocks.
20802         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
20803         information and remove the unreachable block.
20804
20805 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
20806
20807         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
20808
20809 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
20810
20811         * doc/sourcebuild.texi: Remove libf2c entry.
20812
20813 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
20814
20815         * config/i386/i386.md (movv16qi_internal): Fix typo.
20816
20817 2004-07-17  Steven Bosscher  <stevenb@suse.de>
20818
20819         * final.c (final_scan_insn): Fix broken commit from previous
20820         patch.
20821
20822 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
20823
20824         * c-typeck.c (parser_build_binary_op): Condition warnings for
20825         X<=Y<=Z on -Wparentheses instead of -Wextra.
20826         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
20827         supported for C only.
20828
20829 2004-07-17  Steven Bosscher  <stevenb@suse.de>
20830
20831         * cfgcleanup.c (try_simplify_condjump): Don't remove line
20832         notes to avoid unreachable code warnings.
20833         * toplev.c (backend_init): Don't emit line notes for
20834         unreachable code warnings.
20835
20836         * combine.c (distribute_notes): Don't distribute a
20837         REG_VTABLE_REF note.
20838         * final.c (final_scan_insn): Don't handle it.
20839         * rtl.c (reg_note_name): Remove it.
20840         * rtl.h (enum reg_node): Dito.
20841
20842         * emit-rtl.c (force_line_numbers, restore_line_number_status):
20843         Remove.
20844         * rtl.h (force_line_numbers, restore_line_number_status):
20845         Remove prototypes.
20846
20847         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
20848         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
20849         (using_eh_for_cleanups): Also moved here.
20850
20851         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
20852         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
20853         to expand_start_case and add_case_node.
20854         * stmt.c (struct nesting): Cleanup unused fields condition_code,
20855         last_unconditional_cleanup, nominal_type, printname, and
20856         line_number_status.
20857         (struct fixup_goto): Remove.
20858         (struct stmt_status): Remove x_goto_fixup_chain field.
20859         (goto_fixup_chain): Remove.
20860         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
20861         pushcase, pushcase_range): Remove.
20862         (expand_start_bindings_and_block): Don't set unused fields in
20863         the nesting stack.
20864         (expand_start_case, add_case_node): Cleanup unused formal arguments.
20865         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
20866         instead of emit_jump_if_reachable.
20867         (emit_case_nodes): Likewise.
20868         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
20869         static.
20870         (update_eh_label): Work around left-over exception handing regions.
20871         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
20872         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
20873         (pass_cleanup_cfg_post_optimizing): New pass.
20874         (init_tree_optimization_passes): Run the new pass after all
20875         optimizations.
20876         * tree.h (pushcase, pushcase_range): Remove prototypes.
20877         (expand_start_case, add_case_node): Update prototypes.
20878
20879 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
20880
20881         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
20882
20883 2004-07-16  Richard Henderson  <rth@redhat.com>
20884
20885         * builtins.c (std_expand_builtin_va_arg): Remove.
20886         (expand_builtin_va_arg): Remove.
20887         * expr.h: Don't declare them.
20888         * gimplify.c (mark_decls_volatile_r): Remove.
20889         (copy_if_shared_r): Don't call it.
20890         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
20891         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
20892         * gimple-low.c (lower_stmt): Likewise.
20893         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
20894         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
20895         * tree-ssa-operands.c (get_expr_operands): Likewise.
20896         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
20897         EXPAND_BUILTIN_VA_ARG.
20898         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
20899         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
20900         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
20901         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
20902
20903 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
20904
20905         * tree-ssa-pre.c (insert_aux): Break out if we hit
20906         a critical edge.
20907
20908 2004-07-16  Richard Henderson  <rth@redhat.com>
20909
20910         * basic-block.h (remove_fake_exit_edges): Declare.
20911         * cfganal.c (remove_fake_predecessors): Rename from
20912         remove_fake_successors; iterate over predecessors.
20913         (remove_fake_exit_edges): New.
20914         * cfgcleanup.c (try_optimize_cfg): Use it.
20915         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
20916         * predict.c (estimate_probability): Likewise.
20917         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
20918         * tree-cfg.c (make_edges): Likewise.
20919         * tree-ssa-pre.c (fini_pre): Likewise.
20920         * profile.c (instrument_edges): Don't remove_fake_edges.
20921         (branch_prob): Do it earlier here.
20922
20923 2004-07-16  Richard Henderson  <rth@redhat.com>
20924
20925         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
20926         switchification wrt CONSTRUCTOR.  Document the reason.
20927
20928 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
20929
20930         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
20931         that prevented descriptive __mf_check source location strings.
20932
20933 2004-07-16  Richard Henderson  <rth@redhat.com>
20934
20935         * tree-def (WITH_SIZE_EXPR): New.
20936         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
20937         * expr.c (expand_expr_real_1): Likewise.
20938         * gimplify.c (maybe_with_size_expr): New.
20939         (gimplify_arg, gimplify_modify_expr): Use it.
20940         (gimplify_modify_expr_to_memcpy): Take size parameter.
20941         (gimplify_modify_expr_to_memset): Likewise.
20942         (gimplify_expr): Handle WITH_SIZE_EXPR.
20943         * tree-alias-common.c (find_func_aliases): Likewise.
20944         * tree-eh.c (tree_could_trap_p): Likewise.
20945         (tree_could_throw_p): Likewise.
20946         * tree-gimple.c (is_gimple_lvalue): Likewise.
20947         (get_call_expr_in): Likewise.
20948         * tree-inline.c (estimate_num_insns_1): Likewise.
20949         (expand_calls_inline): Likewise.
20950         * tree-nested.c (convert_call_expr): Likewise.
20951         * tree-pretty-print.c (dump_generic_node): Likewise.
20952         * tree-sra.c (sra_walk_expr): Likewise.
20953         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
20954         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
20955         * tree-ssa-operands.c (get_expr_operands): Likewise.
20956         * tree-tailcall.c (find_tail_calls): Likewise.
20957
20958         * calls.c (expand_call): Reset old_stack_allocated after
20959         calling emit_stack_restore.
20960
20961 2004-07-16  Richard Henderson  <rth@redhat.com>
20962
20963         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
20964         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
20965         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
20966         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
20967         copy_res_decl_for_inlining.
20968
20969         * tree-inline.c (declare_return_variable): New modify_dest argument.
20970         Use it as the return value, when possible or manditory.  Handle
20971         TREE_ADDRESSABLE types.
20972         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
20973         replacement of CALL_EXPR.
20974
20975 2004-07-16  Richard Henderson  <rth@redhat.com>
20976
20977         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
20978         * gimple-low.c (expand_var_p): Don't check it.
20979         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
20980         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
20981         * tree-ssa-operands.c (add_stmt_operand): Likewise.
20982         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
20983         (find_referenced_vars): Don't call them.
20984         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
20985
20986 2004-07-16  Richard Henderson  <rth@redhat.com>
20987
20988         * function.c (pass_by_reference): True for all variable sized types.
20989
20990 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
20991
20992         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
20993         * tree-pretty-print.c: Include tree-chrec.h.
20994         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
20995         and POLYNOMIAL_CHREC nodes.
20996
20997 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
20998
20999         * builtins.c (expand_builtin_stpcpy): Do not create temporary
21000         reg with VOIDmode.
21001
21002 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
21003
21004         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
21005
21006 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
21007
21008         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
21009         to BASE_REGNUM.
21010         * config/s390/s390.c: Likewise.
21011         * config/s390/s390.h: Likewise.
21012
21013 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21014
21015         * config/mips/mips.md (addsi3, adddi3): Remove special handling
21016         of $sp adds.  Remove REGNO checks from mips16 patterns.
21017
21018 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21019
21020         * config/mips/mips.md: Delete outdated comment.
21021
21022 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21023
21024         * config/mips/mips.c (get_float_compare_codes): Delete.
21025         (mips_emit_compare): New function, mostly extracted from
21026         get_float_compare_codes and gen_conditional_branch.
21027         (gen_conditional_branch, gen_conditional_move): Use it.
21028
21029 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
21030
21031         * genautomata.c (add_vect): Speedup by using integers as
21032         bit-vectors for walking through the comb_vect and finding
21033         a match.
21034
21035 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21036
21037         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
21038         operand is an uns_arith_operand; use subtraction otherwise.
21039         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
21040         not just arith_operands.
21041
21042 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21043
21044         * config/mips/mips-protos.h (gen_int_relational): Delete.
21045         (mips_emit_scc): Declare.
21046         * config/mips/mips.c (internal_test): Delete.
21047         (sle_operand, sleu_operand): New functions.
21048         (map_test_to_internal_test, gen_int_relational): Delete.
21049         (mips_emit_binary, mips_relational_operand_ok_p)
21050         (mips_emit_int_relational, mips_zero_if_equal)
21051         (mips_emit_scc): New functions.
21052         (gen_conditional_branch): Rework to use mips_emit_int_relational.
21053         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
21054         sleu_operand.
21055         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
21056         (sltu, sleu): Use mips_emit_scc.
21057         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
21058         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
21059         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
21060
21061 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21062
21063         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
21064
21065 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21066
21067         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
21068         (*sne_[sd]i): Likewise sne_[sd]i_zero.
21069         (*sgt_[sd]i): ...and sgt_[sd]i.
21070         (*slt_[sd]i): ...and slt_[sd]i.
21071         (*sgtu_[sd]i): ...and sgtu_[sd]i.
21072         (*sltu_[sd]i): ...and sltu_[sd]i.
21073         (*sleu_[sd]i): ...and sleu_[sd]i_const.
21074         Name previously unnamed mips16 patterns.  Formatting fixes.
21075
21076 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21077
21078         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
21079         (branch_type): Delete.
21080         (gen_conditional_branch, gen_conditional_move)
21081         (mips_gen_conditional_trap): Update after name change.  Get the
21082         comparison mode from cmp_operands[0].
21083         * config/mips/mips.h (cmp_type, branch_type): Delete.
21084         (cmp_operands): Renamed from branch_cmp.
21085         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
21086         name change.  Don't set branch_type.
21087         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
21088         mode class of cmp_operands[0] rather than branch_type.  Update after
21089         name change.
21090
21091 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21092
21093         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
21094         of 0...255 to 0 when inside a SET.
21095
21096 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21097
21098         * config/mips/mips.md: Remove mips16 define_peepholes.
21099
21100 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
21101
21102         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
21103         (fini_pre): Remove fake edges.
21104
21105 2004-07-15  Richard Henderson  <rth@redhat.com>
21106
21107         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
21108         (get_indirect_ref_operands, get_call_expr_operands): ... these.
21109
21110 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
21111
21112         * vec.h (VEC_address): New function.
21113
21114 2004-07-14  Jason Merrill  <jason@redhat.com>
21115
21116         PR middle-end/15885
21117         * gimplify.c (gimplify_arg): New fn, split out from...
21118         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
21119
21120 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
21121
21122         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
21123         generate code which is generated by pushqi1 now
21124         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
21125
21126 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
21127
21128         * combine.c (simplify_set): match the mode of the constant 0 with
21129         the tested operand to match the compare behaviour and the
21130         simplify_relational_operation() expectation.
21131
21132 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
21133
21134         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
21135         ("bordered"): Same.
21136
21137 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
21138
21139         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
21140         unconditionally.
21141         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
21142
21143 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
21144
21145         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
21146         calls in mips16 code.
21147
21148 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
21149
21150         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
21151         the destination of the li as well as for the neg.
21152
21153 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
21154
21155         g++/15861
21156         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
21157         * cgraph.h: Update declaration.
21158         * c-decl.c (build_cdtor): Update call with default priority.
21159         * coverage.c (create_coverage): Ditto.
21160         * tree-mudflap.c (mf_init_fndecl): New tree.
21161         (mudflap_init): Set it.
21162         (mudflap_register_call): Arrange to call __mf_init before the first
21163         __mf_register call.
21164         (mudflap_finish_file): Mark the mudflap static initializer as extra
21165         high priority, to beat all C++ static constructors.
21166
21167 2004-07-15  Jeff Law  <law@redhat.com>
21168
21169         * loop.c (check_insn_for_givs): Restore check for code labels that was
21170         accidentally deleted by a recent checkin.
21171
21172 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
21173
21174         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
21175         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
21176
21177 2004-07-14  Richard Henderson  <rth@redhat.com>
21178
21179         * print-tree.c (print_node): Fix casts last change.
21180
21181 2004-07-15  Paul Brook  <paul@codesourcery.com>
21182
21183         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
21184         to TARGET_UNWIND_INFO.
21185         * except.c (output_function_exception_table): Ditto.
21186         * except.h: Ditto.
21187         * opts.c (decode_options): Ditto.
21188         * passes.c (rest_of_handle_final): Ditto.
21189         * final.c (final_start_function): Ditto.
21190         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
21191         target hook.
21192         * targhooks.h (default_unwind_emit): Declare.
21193         * targhooks.c (default_unwind_emit): New function.
21194         * target-def.h: Define and use TARGET_UNWIND_EMIT.
21195         * target.h (struct gcc_target): Add unwind_emit.
21196         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
21197         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
21198         Remove IA64_UNWIND_EMIT.
21199         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
21200
21201 2004-07-14  Richard Henderson  <rth@redhat.com>
21202
21203         * print-tree.c (print_node): Handle SSA_NAME.
21204
21205 2004-07-14  James E Wilson  <wilson@specifixinc.com>
21206
21207         PR target/16325
21208         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
21209         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
21210
21211 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
21212
21213         * expr.c (expand_assignment): Reenable bitfield += optimizations.
21214         Use alias set 0 for memory, do proper mode calculations and adjust
21215         address for memories.
21216
21217 2004-07-14  Per Bothner  <per@bothner.com>
21218
21219         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
21220         structure with extra column field.
21221         * tree.c (expand_location):  Also fill in column field.
21222         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
21223         gets confused by the two conditionally-compiled definitions.
21224
21225 2004-07-14  Eric Christopher  <echristo@redhat.com>
21226
21227         * calls.c (expand_call): Fix typo in comment.
21228
21229 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
21230
21231         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
21232         comparision of TFmode.
21233
21234 2004-07-14  Richard Henderson  <rth@redhat.com>
21235
21236         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
21237         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
21238         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
21239         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
21240         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
21241         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
21242         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
21243         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
21244         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
21245
21246 2004-07-14  Mike Stump  <mrs@apple.com>
21247
21248         * config/darwin.h (WINT_TYPE): Define to be int to match
21249         system header files.
21250
21251 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
21252
21253         * config/xtensa/xtensa.c (function_arg_advance): Check for args
21254         that must be passed in the stack.
21255         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
21256         arguments if the size is not a constant.
21257
21258 2004-07-14  Per Bothner  <per@bothner.com>
21259
21260         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
21261         instead of EXPR_LOCUS in a boolean context, which is always true
21262         if --enable-mapped-location.
21263         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
21264
21265 2004-07-14  Richard Henderson  <rth@redhat.com>
21266
21267         * dominance.c (struct dom_info): Add fake_exit_edge.
21268         (init_dom_info): Allocate it.
21269         (free_dom_info): Free it.
21270         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
21271         in two passes.
21272         (calc_idoms): Honor fake_exit_edge.
21273
21274 2004-07-13  Jason Merrill  <jason@redhat.com>
21275
21276         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
21277         (rhs_test_for): New fn.
21278         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
21279         * tree-gimple.h: Declare them.
21280         * gimplify.c (gimplify_modify_expr): Use the new fns.
21281
21282 2004-07-14  Richard Henderson  <rth@redhat.com>
21283
21284         * config/arm/arm-protos.h (arm_va_arg): Remove.
21285         * config/arm/arm.c (arm_va_arg): Remove.
21286         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
21287         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
21288
21289 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21290
21291         * pa.c (fix_range): New function to mark a range(s) of registers as
21292         fixed registers.
21293         (override_options): Call fix_range if the -mfixed-range option string
21294         is not empty.
21295         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
21296         * doc/invoke.texi (-mfixed-range): Document new option.
21297
21298 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
21299
21300         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
21301         for TARGET_64BIT.
21302         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
21303
21304 2004-07-14  Roger Sayle  <roger@eyesopen.com>
21305
21306         * expmed.c (expand_sdiv_pow2): New function to expand signed division
21307         by a positive power of two, split out from expand_divmod.  Provide
21308         an alternate implementation when shifts are expensive.  Lower the
21309         threshold for using a branchless implementation to BRANCH_COST >= 2.
21310         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
21311
21312 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21313
21314         * tree-dfa.c (make_rename_temp): *Really* work just
21315         like create_tmp_var if called while outside SSA form.
21316
21317 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
21318
21319         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
21320         for division by zero.
21321         ("umodsi3"): Likewise.
21322
21323 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
21324
21325         * config/mips/mips.c (mips_output_move): When generating mips16 code,
21326         force loads of negative constants to be split.
21327         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
21328         Generalize SImode li/neg splitter to cope with other modes.
21329
21330 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21331
21332         * expmed.c: Remove more references to QUEUED in the comments.
21333         * expr.c: Likewise.
21334
21335 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
21336
21337         Revert:
21338         2004-07-13  Richard Henderson  <rth@redhat.com>
21339         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
21340         correctly.
21341
21342 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21343
21344         * tree-dfa.c (make_rename_temp): Work just like
21345         create_tmp_var if called while outside SSA form.
21346
21347 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21348
21349         * expr.c (enqueue_insn, finish_expr_for_function,
21350         protect_from_queue, queued_subexp_p, mark_queue,
21351         emit_insns_enqueued_after_mark, emit_queue,
21352         expand_increment): Remove.
21353         (store_constructor): Expand increment as an assignment.
21354         (expand_expr_real_1 <case PREINCREMENT_EXPR,
21355         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
21356         case POSTDECREMENT_EXPR>): Abort.
21357         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
21358         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
21359         protect_from_queue, emit_queue, queued_subexp_p): Remove.
21360         * function.h (pending_chain, x_pending_chain): Remove.
21361         * rtl.def (QUEUED): Remove.
21362
21363         * emit-rtl.c (copy_insn_1, copy_most_rtx,
21364         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
21365         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
21366         encode_units_mask): Likewise.
21367         * local-alloc.c (equiv_init_varies_p): Likewise.
21368         * rtl.c (copy_rtx): Likewise.
21369         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
21370         * simplify-rtx.c (simplify_gen_subreg): Likewise.
21371         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
21372
21373         * builtins.c (expand_builtin, expand_builtin_apply,
21374         expand_builtin_mathfn, expand_builtin_mathfn_2,
21375         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
21376         Remove calls to emit_queue and protect_from_queue.
21377         * calls.c (expand_call, precompute_arguments,
21378         precompute_register_parameters, rtx_for_function_call,
21379         store_one_arg): Likewise.
21380         * dojump.c (do_compare_and_jump, do_jump): Likewise.
21381         * explow.c (memory_address): Likewise.
21382         * expmed.c (clear_by_pieces_1, clear_storage,
21383         clear_storage_via_libcall, emit_group_load,
21384         emit_group_store, emit_store_flag,
21385         expand_expr_real_1, store_by_pieces,
21386         store_constructor, store_expr, try_casesi,
21387         try_tablejump): Likewise.
21388         * function.c (expand_pending_sizes): Likewise.
21389         * optabs.c (emit_cmp_and_jump_insns,
21390         emit_conditional_add, emit_conditional_move,
21391         expand_fix, expand_float, prepare_cmp_insn): Likewise.
21392         * stmt.c (emit_case_bit_tests,
21393         expand_asm_expr, expand_computed_goto,
21394         expand_decl_init, expand_end_case_type,
21395         expand_end_stmt_expr, expand_expr_stmt_value,
21396         expand_return, expand_start_case,
21397         optimize_tail_recursion): Likewise.
21398         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
21399         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
21400
21401 2004-07-14  Ben Elliston  <bje@au.ibm.com>
21402
21403         * vec.h: Comment fix.
21404
21405 2004-07-13  Richard Henderson  <rth@redhat.com>
21406
21407         * target.h (struct gcc_target): Add calls.pass_by_reference.
21408         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
21409         * function.c (pass_by_reference): Use the hook.
21410         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
21411         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
21412         (hook_pass_by_reference_must_pass_in_stack): New.
21413         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
21414         (alpha_pass_by_reference): New.
21415         (TARGET_PASS_BY_REFERENCE): New.
21416         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21417         * config/arc/arc.c (arc_pass_by_reference): New.
21418         (TARGET_PASS_BY_REFERENCE): New.
21419         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21420         (FUNCTION_ARG_CALLEE_COPIES): True.
21421         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
21422         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
21423         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
21424         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21425         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21426         * config/cris/cris.c (cris_pass_by_reference): New.
21427         (TARGET_PASS_BY_REFERENCE): New.
21428         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
21429         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
21430         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21431         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
21432         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21433         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
21434         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
21435         (frv_function_arg_pass_by_reference): Remove.
21436         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21437         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
21438         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
21439         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
21440         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21441         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
21442         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
21443         (ia64_pass_by_reference): Rename from
21444         ia64_function_arg_pass_by_reference.
21445         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21446         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21447         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
21448         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
21449         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
21450         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21451         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21452         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
21453         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
21454         (m32r_pass_by_reference): Adjust prototype.  Make static.
21455         Handle mode sizes correctly.
21456         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21457         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
21458         (m68hc11_function_arg_pass_by_reference): Remove.
21459         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21460         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21461         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
21462         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21463         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
21464         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
21465         (mips_va_arg): Use pass_by_reference.
21466         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
21467         Handle mode sizes correctly.
21468         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21469         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
21470         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
21471         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
21472         (mmix_pass_by_reference): Rename from
21473         mmix_function_arg_pass_by_reference.
21474         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21475         (FUNCTION_ARG_CALLEE_COPIES): True.
21476         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
21477         (mn10300_pass_by_reference): New.
21478         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21479         (FUNCTION_ARG_CALLEE_COPIES): True.
21480         * config/pa/pa.c (pa_pass_by_reference): New.
21481         (TARGET_PASS_BY_REFERENCE): New.
21482         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21483         (FUNCTION_ARG_CALLEE_COPIES): True.
21484         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
21485         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
21486         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
21487         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21488         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
21489         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
21490         (s390_pass_by_reference): Rename from
21491         s390_function_arg_pass_by_reference.
21492         (s390_function_arg_advance): Don't query pass-by-ref.
21493         (s390_function_arg): Likewise.
21494         (s390_gimplify_va_arg): Use pass_by_reference.
21495         (s390_call_saved_register_used): Likewise.
21496         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21497         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
21498         (shcompact_byref, sh_pass_by_reference): New.
21499         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21500         (SHCOMPACT_BYREF): Remove.
21501         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
21502         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
21503         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
21504         (sparc_gimplify_va_arg): Use pass_by_reference.
21505         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21506         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21507         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
21508         (v850_pass_by_reference): New.
21509         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21510         (FUNCTION_ARG_CALLEE_COPIES): True.
21511         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
21512         FUNCTION_ARG_PASS_BY_REFERENCE docs.
21513
21514 2004-07-14  Richard Henderson  <rth@redhat.com>
21515             Richard Sandiford  <rsandifo@redhat.com>
21516
21517         * config/mips/mips-protos.h (mips_va_arg): Delete.
21518         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
21519         * config/mips/mips.c: Include tree-gimple.h.
21520         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
21521         (mips_arg_info): Remove special handling of must_pass_in_stck args.
21522         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
21523         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
21524
21525 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
21526
21527         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
21528         arguments for COND_EXPR in big-endian adjustment code.
21529
21530 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21531
21532         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
21533         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
21534         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
21535         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
21536
21537 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
21538
21539         PR tree-optimization/16443
21540         * tree-ssa-alias.c: Add more description for
21541         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
21542         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
21543         clobbering of call-clobbered and addressable variables.  If
21544         there are any before aliases have been computed, add them.
21545
21546 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
21547
21548         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
21549         verification.
21550
21551 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
21552
21553         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
21554         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
21555         to the same type.
21556
21557 2004-07-13  Per Bothner  <per@bothner.com>
21558
21559         * collect2.c (main):  Handle --no-demangle and --demangle flags.
21560
21561 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
21562
21563         * Makefile.in (OBJS-common): Add tree-data-ref.o.
21564         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
21565         (tree-data-ref.o): New rule.
21566         * lambda.h: New file.
21567         * tree-data-ref.c: New file.
21568         * tree-data-ref.h: New file.
21569         * tree.c (int_cst_value, tree_fold_gcd): New functions.
21570         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
21571
21572 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
21573
21574         PR target/13926
21575         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
21576         * config/sparc/sparc.c (output_ubranch): New function.
21577         * config/sparc/sparc.md (jump pattern): Use it.
21578
21579 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
21580
21581         PR target/16494
21582         * config/sparc/sparc.c (output_cbranch): Properly guard
21583         the code handling far branches with TARGET_V9.
21584         * config/sparc/sparc.md (length attribute): Document the
21585         side-effect of having a length greater or equal to 3.
21586
21587 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
21588             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
21589
21590         PR target/15186
21591         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
21592         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
21593
21594 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
21595             Martin Sebor  <sebor@roguewave.com>
21596
21597         PR target/12602
21598         * doc/invoke.texi (SPARC options): Document -threads
21599         and -pthreads on Solaris.
21600
21601 2004-07-13  Richard Henderson  <rth@redhat.com>
21602
21603         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
21604         by reference.
21605         (ind_gimplify_va_arg_expr): Remove.
21606         * tree.h (ind_gimplify_va_arg_expr): Remove.
21607         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
21608         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
21609         argsp to be null.
21610
21611         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
21612         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
21613         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
21614         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
21615         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
21616
21617 2004-07-13  Richard Henderson  <rth@redhat.com>
21618
21619         * function.c (pass_by_reference): New.
21620         (assign_parm_find_data_types): Use it.
21621         * calls.c (initialize_argument_information): Likewise.
21622         (emit_library_call_value_1): Likewise.
21623         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
21624         * function.h (pass_by_reference): Declare.
21625
21626 2004-07-13  Richard Henderson  <rth@redhat.com>
21627
21628         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
21629         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
21630         * expr.h (MUST_PASS_IN_STACK): Remove.
21631         * system.h (MUST_PASS_IN_STACK): Poison.
21632         * tree.h (must_pass_in_stack_var_size): Declare.
21633         (must_pass_in_stack_var_size_or_pad): Declare.
21634         * calls.c (must_pass_in_stack_var_size): New.
21635         (must_pass_in_stack_var_size_or_pad): Rename from
21636         default_must_pass_in_stack.
21637         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
21638         (TARGET_MUST_PASS_IN_STACK): New.
21639         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
21640         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
21641         (TARGET_MUST_PASS_IN_STACK): New.
21642         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
21643         * config/frv/frv.c (frv_must_pass_in_stack): New.
21644         (TARGET_MUST_PASS_IN_STACK): New.
21645         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
21646         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
21647         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
21648         (ix86_must_pass_in_stack): Make static.
21649         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
21650         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
21651         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
21652         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
21653         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
21654         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
21655         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
21656         (mcore_must_pass_on_stack): Remove.
21657         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
21658         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
21659         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
21660         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
21661         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
21662         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
21663         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
21664         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
21665         (TARGET_MUST_PASS_IN_STACK): New.
21666         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
21667         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
21668         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
21669         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
21670         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
21671         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
21672         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
21673         MUST_PASS_IN_STACK.
21674
21675         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
21676         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
21677         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
21678         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
21679         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
21680         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
21681         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
21682         config/xtensa/xtensa.c: Use target hook.
21683
21684 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
21685
21686         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
21687         * configure: Rebuilt.
21688
21689 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
21690
21691         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
21692         * config/mips/mips.h (mips_reg_names): Don't declare.
21693         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
21694         (TARGET_NAME_REGS): Delete.
21695         (TARGET_SWITCHES): Remove -mrnames.
21696         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
21697         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
21698         in REGISTER_NAMES.
21699         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
21700         (override_options): Remove handling of TARGET_NAME_REGS.
21701
21702 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
21703
21704         * config/mips/mips.h (TARGET_*): Boolify.
21705
21706 2004-07-12  Nick Clifton  <nickc@redhat.com>
21707
21708         * config.gcc: Add sh-*-symbianelf target.
21709         * config/sh/sh.c: Add new target macros:
21710         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
21711         TARGET_CXX_IMPORT_EXPORT_CLASS.
21712         (sh_file_start): Create a definition of the .directive section.
21713         (sh_attribute): Add dllimport and dllexport attributes.
21714         * config/sh/symbian-pre.h: New file.
21715         * config/sh/symbian-post.h: New file.
21716         * config/sh/symbian.c: New file. Contains Symbian specific
21717         functions.
21718         * config/sh/sh-protos.h: Add prototypes for new functions
21719         provided by symbian.c.
21720         * config/sh/t-symbian: New file.
21721         * doc/extend.texi: Document support for dllimport and dllexport
21722         attributes by the sh-symbianelf target.
21723
21724 2004-07-12  James E Wilson  <wilson@specifixinc.com>
21725
21726         * Makefile.in (AR): Use @AR@ not ar.
21727         (NM): New.
21728         (AR_FOR_TARGET): Use $(AR) not ar for native.
21729         (NM_FOR_TARGET): Use $(NM) not nm for native.
21730         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
21731         * configure: Regenerate.
21732
21733 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
21734
21735         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
21736         special case.
21737         (ashldi3_sp64): Likewise.
21738
21739 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21740
21741         PR target/16477
21742         * pa.c (function_arg): Update comment.
21743         * pa.h (BLOCK_REG_PADDING): Define.
21744
21745 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21746
21747         PR tree-optimization/16461
21748         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
21749         arguments of phi nodes.
21750
21751 2004-07-12  Devang Patel  <dpatel@apple.com>
21752
21753         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
21754
21755 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
21756
21757         * function.c (expand_function_start): Ensure r_save is in Pmode.
21758         * calls.c (prepare_call_address): Ensure static_chain_value is
21759         in Pmode.
21760         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
21761         r_save_area are in Pmode.
21762         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
21763         fnaddr, and static_chain are in Pmode.
21764
21765 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
21766
21767         PR target/16445
21768         * config/ia64/ia64.c (bundling): Don't count ignored insns.
21769
21770 2004-07-12  Richard Henderson  <rth@redhat.com>
21771
21772         * target.h (struct gcc_target): Move gimplify_va_arg_expr
21773         next to build_builtin_va_list.
21774         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
21775         * builtins.c (gimplify_va_arg_expr): Likewise.
21776         * gimplify.c (copy_if_shared_r): Likewise.
21777
21778 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
21779
21780         * passes.c (rest_of_decl_compilation): Don't defer call of
21781         assemble_variable if its DECL_RTL is already set.
21782
21783 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
21784
21785         * cfgloop.h (struct loop): Add nb_iterations field.
21786         (current_loops): Declare.
21787         * tree-chrec.c (chrec_not_analyzed_yet,
21788         chrec_dont_know, chrec_known, count_ev_in_wider_type,
21789         chrec_contains_symbols_defined_in_loop): Remove the temporary
21790         hooks.
21791         * tree-flow-inline.h (loop_containing_stmt): New function.
21792         * tree-scalar-evolution.c: Add implementation.
21793         * tree-scalar-evolution.h: Add declarations.
21794
21795 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
21796
21797         PR rtl-optimization/15921
21798         * Makefile.in (global.o): Add recog.h.
21799
21800         * global.c (recog.h): Add the include-clause.
21801         (bb_info): New member earlyclobber.
21802         (allocate_bb_info, free_bb_info): Initialize/finish the new
21803         member.
21804         (earlyclobber_regclass, earlyclobber_regclass_length): The new
21805         global variables.
21806         (check_earlyclobber, regclass_intersect,
21807         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
21808         New functions.
21809         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
21810         (make_accurate_live_analysis): Modify pavin.
21811
21812 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
21813
21814         * tree-cfg.c (find_taken_edge): Statically compute the truth
21815         value of a predicate comparing an SSA_NAME to itself.
21816
21817 2004-07-12  Roger Sayle  <roger@eyesopen.com>
21818
21819         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
21820         rs6000 doesn't have shift-and-add or shift-and-sub instructions
21821         by returning the cost of a multiplication plus an addition.
21822
21823 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
21824
21825         PR tree-optimization/14107
21826         * gimplify.c (gimplify_return_expr): Accept a
21827         RETURN_EXPR with an error argument.
21828         * tree-optimize.c (init_tree_optimization_passes):
21829         Run pass_warn_function_return at -O0.
21830
21831 2004-07-12  Roger Sayle  <roger@eyesopen.com>
21832
21833         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
21834         index entry.
21835
21836 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
21837
21838         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
21839         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
21840         * config/mips/3000.md: Add copyright notice.  Remove automota and
21841         function units; use generic ones instead.  Only define reservations
21842         for things that are different from generic.md.  Extend each clause
21843         to include r3900.
21844         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
21845         * config/mips/mips.md: Include them. Remove define_function_units.
21846         (alu, imuldiv): New automata and units.
21847
21848 2004-07-12  Ben Elliston  <bje@au.ibm.com>
21849
21850         * doc/invoke.texi (Optimize Options): Document -frename-registers
21851         not being enabled by default at -O3.
21852
21853 2004-07-11  Roger Sayle  <roger@eyesopen.com>
21854
21855         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
21856         floating point additions, to keep real immediate constant positive.
21857         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
21858         into X + C, and leave positive real constants as X - C.
21859
21860 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21861
21862         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
21863
21864 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21865
21866         PR tree-optimization/15654
21867         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
21868
21869 2004-07-11  Roger Sayle  <roger@eyesopen.com>
21870
21871         * builtins.c (fold_builtin_fputs): Don't bother converting the
21872         return type to integer_type_node, as we've already checked that
21873         the result will be ignored.
21874
21875         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
21876         that signed addition, subtraction, multiplication, division,
21877         remainder, negation and absolute value may potentially trap.
21878
21879         * fold-const.c (fold_ignored_result): New function to strip
21880         non-side-effecting tree nodes from an expression whose result
21881         is ignored.
21882         (fold_convert): Call fold_ignored_result when casting a value
21883         to VOID_TYPE.
21884         (omit_one_operand):  Call fold_ignored_result on the "omitted"
21885         operand when building a COMPOUND_EXPR.
21886         (pedantic_omit_one_operand): Likewise.
21887         * tree.h (fold_ignored_result): Prototype here.
21888         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
21889         when we're going to ignore the result.
21890
21891 2004-07-11  Richard Henderson  <rth@redhat.com>
21892
21893         PR tree-opt/16383
21894         * tree-ssa-ccp.c (fold_stmt_r): Split out...
21895         * tree.c (fields_compatible_p, find_compatible_field): ... new.
21896         * tree.h (fields_compatible_p, find_compatible_field): Declare.
21897         * tree-sra.c (sra_hash_tree): Hash fields by offset.
21898         (sra_elt_eq): Use fields_compatible_p.
21899         (generate_one_element_ref): Use find_compatible_field.
21900
21901 2004-07-11  Richard Henderson  <rth@redhat.com>
21902
21903         PR tree-opt/16422
21904         * tree-sra.c (generate_one_element_init): New.
21905         (generate_element_init): Use it.
21906         (scalarize_init): Push/pop gimplify context around it.
21907         (find_new_referenced_vars_1, find_new_referenced_vars): New.
21908         * gimplify.c (gimplify_expr): Allow SSA_NAME.
21909
21910 2004-07-11  Roger Sayle  <roger@eyesopen.com>
21911
21912         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
21913         combine.c's combine_insn_cost.
21914         * rtl.h (insn_rtx_cost): Prototype here.
21915         * combine.c (combine_insn_cost): Delete function.
21916         (combine_validate_cost): Update callers of combine_insn_cost to
21917         call insn_rtx_cost instead.
21918         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
21919         requesting the rtx_cost of call and/or jump instructions.
21920
21921         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
21922         rtx_cost directly.  Don't request/use the cost of call or jump
21923         instructions.  Return -1 if the cost of any instruction can't be
21924         determined (or the BB contains a function call).
21925         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
21926         -1 (i.e. can't determine the cost of any instruction or the basic
21927         block contains a subroutine call).
21928         (find_if_case_2): Likewise.
21929
21930 2004-07-11  Roger Sayle  <roger@eyesopen.com>
21931
21932         * rs6000.c (struct processor_costs): Change semantics of fields to
21933         include the COST_N_INSNS scaling, and update all initializers.
21934         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
21935         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
21936         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
21937         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
21938
21939 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
21940
21941         * LANGUAGES: Remove obsolete information.
21942
21943 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
21944
21945         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
21946         SIGBUS signal frames, the PSW address points *to* the faulting
21947         instruction, not after it.
21948
21949 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
21950
21951         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
21952         added to TLS symbol addresses.
21953
21954 2004-07-11  Richard Henderson  <rth@redhat.com>
21955
21956         * expmed.c (init_expmed): Use stack-local structures for
21957         temporary rtl.  Don't recognize shifts.
21958
21959 2004-07-11  Richard Henderson  <rth@redhat.com>
21960
21961         * expr.c (store_expr): Don't fiddle subreg promotion for types
21962         with precision smaller than the mode.
21963
21964 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
21965
21966         * tree.h (all_types_permanent): Remove.
21967
21968 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
21969
21970         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
21971         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
21972         * langhooks.c (lhd_clear_binding_stack): Remove.
21973         * langhooks-def.h (lhd_clear_binding_stack,
21974         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
21975         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
21976         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
21977         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
21978         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
21979         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
21980         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
21981         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
21982         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
21983         * tree.h (poplevel): Don't declare.
21984         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
21985         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
21986         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
21987         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
21988         Remove.
21989
21990 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
21991
21992         PR tree-optimization/16437
21993         * c-common.c (shorten_compare): Don't mark result of conversion to
21994         narrower signed type as overflowing.
21995         * fold-const.c (decode_field_reference): Determine whether
21996         signedness comes from outer type using precision rather than size.
21997
21998 2004-07-11  Phil Edwards  <phil@codesourcery.com>
21999
22000         * configure.ac:  Alphabetize --enable-checking list, add
22001         missing valgrind entry.
22002         * configure:  Regenerate.
22003
22004 2004-07-11  Phil Edwards  <phil@codesourcery.com>
22005
22006         * doc/install.texi (Testing):  Fix syntax in "make check" example.
22007
22008 2004-07-10  James E Wilson  <wilson@specifixinc.com>
22009
22010         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
22011
22012 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22013
22014         PR rtl-optimization/16001
22015         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
22016         niter_expr.
22017
22018 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
22019
22020         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
22021
22022 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
22023             James Morrison  <phython@gcc.gnu.org>
22024
22025         * doc/contrib.texi (Contributors): Add gfortran contributors and
22026         fix a couple of typos.
22027
22028 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22029
22030         PR rtl-optimization/15387
22031         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
22032         to incoming args space correctly.
22033
22034 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22035
22036         * pa.c (output_indirect_call): Only use %r2 as the link register in
22037         indirect calls with the long PA 2.0 pc-relative branch.
22038
22039 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
22040
22041         * config/i386/i386.c (override_options): Pick a 64-bit CPU
22042         for the default tuning if TARGET_64BIT.
22043
22044 2004-07-10  Richard Henderson  <rth@redhat.com>
22045
22046         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
22047         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
22048
22049 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
22050
22051         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
22052         * expmed.c (store_bit_field, extract_bit_field): Remove last
22053         argument.
22054         * builtins.c (expand_builtin_signbit): Adjust callers.
22055         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
22056         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
22057         * ifcvt.c (noce_emit_move_insn): Likewise.
22058         * stmt.c (expand_return): Likewise.
22059         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
22060         store_field, expand_expr_real_1): Likewise.
22061
22062 2004-07-10  Richard Henderson  <rth@redhat.com>
22063
22064         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
22065
22066 2004-07-09  Mike Stump  <mrs@apple.com>
22067
22068         * config/darwin.c (no_dead_strip): Add.
22069         (HAVE_DEAD_STRIP): Add.
22070         (darwin_emit_unwind_label): Ensure that we don't dead code strip
22071         the .eh label.
22072
22073 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22074
22075         * tree-ssa-loop-im.c: New file.
22076         * Makefile.in (tree-ssa-loop-im.o): Add.
22077         * cfgloop.c (superloop_at_depth): New function.
22078         * cfgloop.h (superloop_at_depth): Declare.
22079         * common.opt (ftree-lim): New flag.
22080         * expr.c (array_ref_up_bound): New function.
22081         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
22082         * timevar.def (TV_LIM): New timevar.
22083         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
22084         computing immediate uses of a phi node.
22085         * tree-flow.h (struct tree_ann_common_d): Add aux field.
22086         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
22087         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
22088         * tree-pass.h (pass_lim): Declare.
22089         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
22090         functions.
22091         (pass_lim): New pass structure.
22092         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
22093         * tree.c (in_array_bounds_p): New function.
22094         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
22095         (in_array_bounds_p, array_ref_up_bound): Declare.
22096         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
22097         * doc/passes.texi (tree-ssa-loop-im.c): Document.
22098
22099 2004-07-09  Richard Henderson  <rth@redhat.com>
22100
22101         * builtins.c (expand_builtin_stpcpy): Don't modify len.
22102
22103         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
22104         with prejudice.
22105
22106 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
22107
22108         * flags.h: Delete redundant prototypes that are being generated
22109         in options.h from common.opt.
22110         * common.opt: Add in the expository comments formerly in flags.h.
22111
22112 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22113
22114         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
22115         available for use only when TARGET_MMX/_SSE is set, and check for
22116         variable argument function if any register count is non-zero.
22117         (function_arg): Correctly suppress repeated warnings for passing SSE
22118         vectors are arguments without SSE enabled.
22119         (ix86_function_arg_boundary): Without SSE enabled, the use of what
22120         would be SSE register modes does no longer influence the alignment.
22121
22122 2004-07-09  Richard Henderson  <rth@redhat.com>
22123
22124         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
22125         Always align upward to arg boundary.  Use size_in_bytes/round_up.
22126         Maintain type-correctness of constants.
22127         * stor-layout.c (round_up, round_down): Special-case powers of 2.
22128
22129 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
22130
22131         * config/sparc/sparc.c (*_costs): Scale instruction costs
22132         by COSTS_N_INSNS.
22133         (sparc_rtx_costs): Adjust as appropriate.
22134
22135 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22136
22137         * config/i386/mm3dnow.h: New.
22138         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
22139
22140 2004-07-09  Richard Henderson  <rth@redhat.com>
22141
22142         * simplify-rtx.c (simplify_const_relational_operation): Only
22143         look at bounds of scalar integers.
22144
22145 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22146
22147         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
22148
22149 2004-07-09  Andrew Pinski  <apinski@apple.com>
22150
22151         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
22152         always referenced.
22153         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
22154         UOBJC_METACLASS_decl.
22155
22156 2004-07-09  James E Wilson  <wilson@specifixinc.com>
22157
22158         PR target/16364
22159         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
22160         do return a parallel if hfa_mode == XFmode and mode == TImode.
22161
22162 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22163
22164         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
22165         permissible for unary plus.
22166
22167 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22168
22169         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
22170         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
22171         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
22172         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
22173         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
22174         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
22175         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
22176         (BUILTIN_xxxIMAX): New.
22177         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
22178         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
22179         BUILT_IN_PARITYIMAX.
22180
22181 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
22182
22183         * config/sparc/sparc.h (processor_costs): Define.
22184         (sparc_costs): Declare.
22185         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
22186         hypersparc_costs, sparclet_costs, ultrasparc_costs,
22187         ultrasparc3_costs): New.
22188         (sparc_override_options): Set sparc_costs as appropriate.
22189         (sparc_rtx_costs): Use sparc_costs instead of messy
22190         conditionals.
22191
22192 2004-07-09  Steven Bosscher  <stevenb@suse.de>
22193
22194         * doc/md.texi (Processor pipeline description): Mention that
22195         the old pipeline description is deprecated.
22196
22197         * config/rs6000/7450.md (automaton ppc7450): Split up, move
22198         mciu_7450 function unit to...
22199         (automaton ppc7450mciu): ...new automaton.
22200
22201         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
22202         (schedule_block): Don't consider inserting bubbles.
22203         (sched_init): Don't initialize DFA bubbles.
22204         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
22205         TARGET_SCHED_DFA_BUBBLE): Remove.
22206         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
22207         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
22208         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
22209
22210         * stmt.c (conditional_context): Remove prototype.
22211         * tree.h (conditional_context): Remove.
22212         * tree-cfg.c (pre_insert_on_edge): Remove.
22213
22214         * c-common.h (c_expand_asm_operands): Remove prototype.
22215         * c-typeck.c (c_expand_asm_operands): Remove.
22216
22217 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22218
22219         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
22220         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
22221         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
22222         and V8QI are class SSE. All sufficiently small remaining vector modes
22223         must be passed in one or two integer registers.
22224         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
22225         returned in memory.
22226         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
22227         __builtin_ia32_pmuludq128 have non-uniform argument and return types
22228         and must thus be handled explicitly.
22229         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
22230         MMX and XMM regs.
22231         (movv8qi_internal, movv4hi_internal, movv2si_internal,
22232         movv2sf_internal): Permit moving between MMX and XMM registers (since
22233         MMX areguments and return values are passed in XMM registers).
22234         (sse2_umulsidi3): Correct type and mode.
22235
22236 2004-07-09  Richard Henderson  <rth@redhat.com>
22237
22238         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
22239
22240 2004-07-09  Eric Christopher  <echristo@redhat.com>
22241
22242         * config/rs6000/40x.md: Split into two automatons.
22243
22244 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
22245             Andrew Pinski  <apinski@apple.com>
22246
22247         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
22248         on when we have more than one input file.
22249         (c_common_parse_file): Restore loop over all input files.
22250         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
22251
22252         * c-decl.c (set_type_context): New function.
22253         (pop_scope): Use it to set context of types.  When we
22254         encounter a TYPE_DECL, set the context of the attached type too.
22255         (pop_file_scope): Don't call cpp_undef_all here.
22256         (diagnose_mismatched_decls): Do not complain about a second
22257         definition of an 'extern inline' function if it's not in the
22258         same translation unit.  Do not complain about inline
22259         declaration after use if the use was in a different
22260         translation unit.
22261         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
22262         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
22263         the external scope.
22264         (pushdecl_top_level): Likewise.
22265         (grokdeclarator): Clarify what is going on with setting
22266         DECL_EXTERNAL on function types, a little.
22267         (c_write_global_declarations): Don't do anything if
22268         -fsyntax-only or errors have been encountered.
22269
22270 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
22271
22272         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
22273
22274 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22275
22276         PR target/16459
22277         * pa.c (output_indirect_call): Use %r2 as the link register when
22278         calling $$dyncall with a pc-relative branch.
22279
22280 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
22281
22282         * doc/install.texi (Binaries): Mention OpenPKG.
22283
22284 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
22285
22286         Fix PR tree-optimization/15555
22287         * tree-dfa.c (dump_variable): If the variable is a pointer
22288         SSA_NAME, also dump its points-to information.
22289         * tree-flow.h (struct ptr_info_def): Add field
22290         is_dereferenced.
22291         (dump_points_to_info_for): Declare.
22292         (debug_points_to_info_for): Declare.
22293         * tree-optimize.c (init_tree_optimization_passes): Add a
22294         second alias analysis pass after DOM2.
22295         Move pass_del_pta to a later spot.
22296         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
22297         create a name tags when we find a dereferenced pointer.  Just
22298         mark the pointer dereferenced.
22299         (collect_points_to_info_for): Move code to clear points-to
22300         information to create_name_tags.
22301         (create_name_tags): New function.
22302         (compute_flow_sensitive_aliasing): Call it.
22303         (setup_pointers_and_addressables): Mark type tags for renaming
22304         here instead of ...
22305         (create_memory_tag): ... here.
22306         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
22307         (dump_points_to_info_for): Declare extern.
22308         (debug_points_to_info_for): New function.
22309
22310 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
22311
22312         * config/arc/arc.md: Switch to DFA-based scheduler description.
22313         * config/arc/arc.c: Switch to DFA-based scheduler description.
22314
22315 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22316
22317         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
22318         pointer.
22319
22320 2004-07-09  Richard Henderson  <rth@redhat.com>
22321
22322         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
22323         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22324         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
22325         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
22326
22327         * config/v850/v850-protos.h (v850_va_arg): Remove.
22328         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22329         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
22330         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
22331         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
22332         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
22333
22334 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22335
22336         PR target/12133
22337         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
22338         and DImode to use +/-4k offset.
22339
22340 2004-07-09  Richard Henderson  <rth@redhat.com>
22341
22342         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
22343         Remove.
22344         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22345         (xstormy16_gimplify_va_arg_expr): Rewrite from
22346         xstormy16_expand_builtin_va_arg.
22347         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
22348
22349         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
22350         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
22351
22352         * config/sh/sh-protos.h (sh_va_arg): Remove.
22353         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22354         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
22355         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
22356
22357         * config/pa/pa-protos.h (hppa_va_arg): Remove.
22358         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22359         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
22360         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
22361
22362         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
22363         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22364         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
22365         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
22366
22367 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
22368
22369         * config/sparc/sparc.md (return): Rewrite length formula.
22370         * config/sparc/sparc.c (output_return): Pass 1 as 5th
22371         argument to final_scan_insn when in a delay slot.
22372         (output_sibcall): Likewise.
22373
22374 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
22375
22376         * arm.c (arm_cpp_interwork): New variable.
22377         (arm_override_options): Set it if TARGET_INTERWORK was on the command
22378         line.
22379         * arm.h (arm_cpp_interwork): Declare it.
22380         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
22381         __THUMB_INTERWORK__ in the preprocessor.
22382
22383 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
22384
22385         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
22386
22387 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
22388
22389         PR target/16416
22390         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
22391         Override default settings to account for -m32 and -m64.
22392
22393 2004-07-08  Randolph Chung  <tausq@debian.org>
22394
22395         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
22396
22397 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
22398
22399         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
22400         before comparing it as such.
22401
22402 2004-07-08  Richard Henderson  <rth@redhat.com>
22403
22404         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
22405         temporary.  Use bit arithmetic to align.
22406
22407 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
22408
22409         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
22410         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
22411         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
22412         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
22413         add_labels_and_missing_jumps, find_jump_block,
22414         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
22415         Likewise.
22416         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
22417         link_btr_uses, move_btr_def): Likewise.
22418         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
22419         expand_builtin_expect_jump): Likewise.
22420         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
22421         * calls.c (expand_call, emit_library_call_value_1): Likewise.
22422         * cfganal.c (forwarder_block_p): Likewise.
22423         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
22424         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
22425         find_bb_boundaries): Likewise.
22426         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
22427         merge_blocks_move_predecessor_nojumps,
22428         merge_blocks_move_successor_nojumps, insns_match_p,
22429         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
22430         try_optimize_cfg): Likewise.
22431         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
22432         * cfglayout.c (skip_insns_after_block, label_for_bb,
22433         record_effective_endpoints, insn_locators_initialize,
22434         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
22435         * cfgmainloop.c (create_loop_notes): Likewise.
22436         * cfgrtl.c (delete_insn, delete_insn_chain,
22437         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
22438         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
22439         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
22440         redirect_branch_edge, force_nonfallthru_and_redirect,
22441         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
22442         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
22443         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
22444         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
22445         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
22446         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
22447         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
22448         * combine.c (combine_instructions, can_combine_p, try_combine,
22449         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
22450         distribute_notes, distribute_links, insn_cuid): Likewise.
22451         * cse.c (fold_rtx, cse_insn, cse_around_loop,
22452         invalidate_skipped_block, cse_set_around_loop,
22453         cse_end_of_basic_block, cse_main, cse_basic_block,
22454         cse_condition_code_reg): Likewise.
22455         * cselib.c (cselib_process_insn): Likewise.
22456         * ddg.c (create_ddg): Likewise.
22457         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
22458         Likewise.
22459         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
22460         gen_label_die, dwarf2out_var_location): Likewise.
22461         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
22462         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
22463         last_call_insn, active_insn_p, next_label, prev_label,
22464         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
22465         add_insn_before, remove_insn, add_function_usage_to,
22466         reorder_insns, find_line_note, remove_unnecessary_notes,
22467         emit_insn_after_1, classify_insn): Likewise.
22468         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
22469         connect_post_landing_pads, sjlj_mark_call_sites,
22470         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
22471         can_throw_internal, can_throw_external, set_nothrow_function_flags,
22472         convert_to_eh_region_ranges): Likewise.
22473         * explow.c (optimize_save_area_alloca): Likewise.
22474         * expr.c (expand_expr_real): Likewise.
22475         * final.c (insn_current_reference_address, compute_alignments,
22476         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
22477         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
22478         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
22479         propagate_block_delete_insn, propagate_one_insn,
22480         init_propagate_block_info, propagate_block, libcall_dead_p,
22481         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
22482         Likewise.
22483         * function.c (instantiate_virtual_regs, reorder_blocks_1,
22484         expand_function_start, expand_function_end, contains,
22485         thread_prologue_and_epilogue_insns,
22486         reposition_prologue_and_epilogue_notes): Likewise.
22487         * gcse.c (constprop_register, bypass_conditional_jumps,
22488         insert_insn_end_bb, gcse_after_reload): Likewise.
22489         * genemit.c (gen_expand, gen_split): Likewise.
22490         * genpeep.c (gen_peephole, main): Likewise.
22491         * global.c (build_insn_chain): Likewise.
22492         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
22493         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
22494         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
22495         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
22496         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
22497         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
22498         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
22499         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
22500         dead_or_predicable): Likewise.
22501         * integrate.c (try_constants): Likewise.
22502         * jump.c (rebuild_jump_labels, cleanup_barriers,
22503         purge_line_number_notes, init_label_info, mark_all_labels,
22504         squeeze_notes, get_label_before, get_label_after,
22505         reversed_comparison_code_parts, simplejump_p, pc_set,
22506         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
22507         delete_barrier, delete_prior_computation, delete_computation,
22508         delete_related_insns, delete_for_peephole, redirect_jump):
22509         Likewise.
22510         * lcm.c (optimize_mode_switching): Likewise.
22511         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
22512         Likewise.
22513         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
22514         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
22515         * loop-iv.c (simplify_using_assignment): Likewise.
22516         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
22517         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
22518         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
22519         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
22520         check_insn_for_givs, check_final_value, update_giv_derive,
22521         basic_induction_var, product_cheap_p, check_dbra_loop,
22522         loop_insn_first_p, last_use_this_basic_block,
22523         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
22524         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
22525         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
22526         sms_schedule_by_order): Likewise.
22527         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
22528         * postreload.c (reload_cse_simplify_operands, reload_combine,
22529         reload_cse_move2add): Likewise.
22530         * predict.c (can_predict_insn_p, estimate_probability,
22531         expected_value_to_br_prob, process_note_predictions): Likewise.
22532         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
22533         * profile.c (branch_prob): Likewise.
22534         * ra-build.c (live_out_1, livethrough_conflicts_bb,
22535         detect_webs_set_in_cond_jump): Likewise.
22536         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
22537         ra_print_rtl_with_bb): Likewise.
22538         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
22539         * recog.c (next_insn_tests_no_inequality, find_single_use,
22540         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
22541         * reg-stack.c (next_flags_user, record_label_references,
22542         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
22543         compensate_edge, convert_regs_1): Likewise.
22544         * regclass.c (scan_one_insn): Likewise.
22545         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
22546         regmove_optimize, fixup_match_1, single_set_for_csa,
22547         combine_stack_adjustments_for_block): Likewise.
22548         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
22549         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
22550         find_equiv_reg): Likewise.
22551         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
22552         reload_as_needed, emit_input_reload_insns, do_output_reload,
22553         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
22554         Likewise.
22555         * reorg.c (find_end_label, emit_delay_sequence,
22556         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
22557         get_jump_flags, rare_destination, mostly_true_jump,
22558         try_merge_delay_insns, redundant_insn, own_thread_p,
22559         fill_simple_delay_slots, fill_slots_from_thread,
22560         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
22561         dbr_schedule): Likewise.
22562         * resource.c (find_basic_block, next_insn_no_annul,
22563         find_dead_or_set_registers, mark_target_live_regs): Likewise.
22564         * rtl.h (RTX_PREV): Likewise.
22565         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
22566         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
22567         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
22568         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
22569         tablejump_p, computed_jump_p, insns_safe_to_move_p,
22570         find_first_parameter_load, can_hoist_insn_p): Likewise.
22571         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
22572         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
22573         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
22574         schedule_ebbs): Likewise.
22575         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
22576         is_conditionally_protected, can_schedule_ready_p,
22577         add_branch_dependences, debug_dependencies): Likewise.
22578         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
22579         Likewise.
22580         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
22581         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
22582         set_dominates_use, ujump_to_loop_cont): Likewise.
22583         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
22584         * varasm.c (output_constant_pool_1): Likewise.
22585
22586 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22587
22588         * tree-scalar-evolution.c: New file.
22589         * tree-scalar-evolution.h: New file.
22590         * tree-ssa-loop-niter.c: New file.
22591         * Makefile.in (SCEV_H): New.
22592         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
22593         * cfgloop.h (struct loop): Add bounds field.
22594         * tree-flow.h (struct tree_niter_desc): New type.
22595         (number_of_iterations_cond, number_of_iterations_exit,
22596         loop_niter_by_eval, find_loop_niter_by_eval,
22597         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
22598         free_numbers_of_iterations_estimates): Declare.
22599         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
22600         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
22601         * doc/invoke.texi (max-iterations-to-track): Document.
22602
22603 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
22604
22605         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
22606         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
22607         (MODE_AFTER): Add cast appropriately.
22608         * config/sh/sh.md (movdi splitter): Likewise.
22609         (casesi_worker_2): Add const qualifier appropriately.
22610         (eh_return): Remove unused variable.
22611         (insv): Initialize v;
22612
22613 2004-07-08  Richard Henderson  <rth@redhat.com>
22614
22615         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
22616         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22617         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
22618         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
22619         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
22620
22621         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
22622         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22623         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
22624         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
22625
22626         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
22627         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22628         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
22629         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
22630
22631         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
22632         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22633         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
22634         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
22635
22636         * config/i860/i860-protos.h (i860_va_arg): Remove.
22637         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22638         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
22639         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
22640
22641 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
22642
22643         * system.h: Prototype getpagesize if missing.
22644         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
22645         * configure: Regenerate.
22646         * config.in: Regenerate.
22647
22648 2004-07-08  Richard Henderson  <rth@redhat.com>
22649
22650         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
22651         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22652         (fr30_gimplify_va_arg_expr): New.
22653         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
22654         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
22655
22656 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
22657
22658         PR target/16414
22659         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
22660         of asm_noperands result.
22661
22662 2004-07-08  Richard Henderson  <rth@redhat.com>
22663
22664         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
22665         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22666         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
22667         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
22668
22669 2004-07-08  Richard Henderson  <rth@redhat.com>
22670
22671         * builtins.c (ind_gimplify_va_arg_expr): New.
22672         * tree.h (ind_gimplify_va_arg_expr): Declare.
22673         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
22674
22675 2004-07-08  Jan Beulich  <jbeulich@novell.com>
22676
22677         * expmed.c (extract_bit_field): Correct condition to use vec_extract
22678         patterns also on vector elements other than the first one.
22679         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
22680         break statements.
22681
22682 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
22683
22684         * config/rs6000/darwin-ldouble.c: Correct reference
22685         to the Linnainmaa paper.
22686
22687 2004-07-08  Richard Henderson  <rth@redhat.com>
22688
22689         * config/arc/arc-protos.h (arc_va_arg): Remove.
22690         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22691         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
22692         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
22693
22694         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
22695         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
22696         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
22697         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
22698
22699 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22700
22701         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
22702
22703 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
22704
22705         * c-decl.c (static_ctors, static_dtors): Make static.
22706         (pop_file_scope): Call c_common_write_pch and
22707         cgraph_finalize_compilation_unit here.
22708         (build_cdtor): Moved here from c-objc-common.c; simplify.
22709         (c_write_global_declarations_1): Clarify comment.
22710         (c_write_global_declarations): Close the external scope before
22711         doing anything else.  Call build_cdtor, cgraph_optimize, and
22712         mudflap_finish_file here.
22713         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
22714         Clarify comment.
22715         * c-objc-common.c: No need to include cgraph.h.
22716         (build_cdtor): Moved to c-decl.c.
22717         (c_objc_common_finish_file): Delete.
22718         * c-tree.h: Update to match.
22719         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
22720         (generate_static_references): Set TREE_USED before calling finish_decl.
22721         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
22722         on the static_instances_decl.
22723
22724 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
22725
22726         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
22727         decls when there is only one input translation unit.
22728         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
22729         change of 2004-07-05; do not treat declarations with
22730         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
22731         * opts.c (cur_in_fname): Delete.
22732         * opts.h: Likewise.
22733         * tree.c: Revert changes of 2004-07-05; no special treatment
22734         for TRANSLATION_UNIT_DECLs.
22735         * Makefile.in (tree.o): Update dependencies.
22736
22737 2004-07-08  Roger Sayle  <roger@eyesopen.com>
22738
22739         * builtins.c (fold_builtin_strcpy): Merge functionality from
22740         simplify_builtin_strcpy.  Add additional len argument.  No longer
22741         static.  Remove function prototype.
22742         (fold_builtin_strncpy): Likewise integrate functionality from
22743         simplify_builtin_strncpy.  Add additional slen argument.  No
22744         longer static.  Remove function prototype.
22745         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
22746         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
22747         types of "ignore" and "unlocked" parameters to bool.
22748         (fold_builtin_1):  Add additional ignore argument.  Call renamed
22749         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
22750         builtins.  Update arguments to fold_builtin_strncpy and
22751         fold_builtin_strcpy.  Add function prototype.
22752         (fold_builtin): Add additional Boolean ignore argument to pass
22753         to fold_builtin_1.
22754         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
22755         and fold_builtin_strncpy instead of simplify_builtin_fputs,
22756         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
22757
22758         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
22759         simplify_builtin_strncpy): Delete function prototypes.
22760         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
22761         fold_builtin_strncpy): Add function prototypes here.
22762         (fold_builtin): Update function prototype with new "bool ignore".
22763
22764         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
22765         (ccp_fold_builtin):  Update call to fold_builtin.  Call
22766         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
22767         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
22768         simplify_builtin_strncpy respectively.
22769         * fold-const.c (fold): Update call to fold_builtin.
22770
22771 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
22772
22773         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
22774         to strcpy.
22775
22776         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
22777         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
22778         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
22779         * calls.c: Remove ifdefs of macros above.
22780         * functions.c: Likewise.
22781         * expr.c: Likewise.
22782
22783 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22784
22785         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
22786         (arch attribute): Delete.
22787         (current_function_calls_alloca attribute): Rename into calls_alloca.
22788         (calls_eh_return): New attribute.
22789         (leaf_function): Likewise.
22790         (length attribute): Fix formula for sibcalls.
22791         (return insn): Correctly compute the 'length' attribute.
22792         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
22793
22794 2004-07-08  Richard Henderson  <rth@redhat.com>
22795
22796         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
22797         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
22798         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
22799         * tree-eh.c (lower_eh_constructs_1): Likewise.
22800         * tree-sra.c (sra_walk_modify_expr): Likewise.
22801         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
22802         (eliminate_unnecessary_stmts): Likewise.
22803         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
22804         * tree-tailcall.c (optimize_tail_call): Likewise.
22805         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
22806
22807 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
22808             Jakub Jelinek  <jakub@redhat.com>
22809
22810         * config/i386/i386.c (override_options): Enable
22811         SSE prefetches with -mtune, as long as we are
22812         compiling for i686 or higher.  All i686 processors
22813         accept SSE prefetches as NOPS, some i586's don't.
22814
22815 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22816
22817         PR target/10567
22818         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
22819
22820 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
22821
22822         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
22823         the handling of clobbering ASM_EXPRs.
22824
22825 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22826
22827         PR target/16430
22828         * config/sparc/sparc.c (function_value): In 64-bit mode,
22829         return the aggregates larger than 16 bytes like unions.
22830
22831 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22832
22833         PR target/16199
22834         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
22835         'temp' is zero, generate new pseudos as needed and emit the
22836         sequence of insns in single-assignment form.  Resync comments
22837         with code.
22838         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
22839         function before reload.
22840
22841 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
22842
22843         * vec.c (vec_assert_fail): Remove duplicate 'function'.
22844
22845         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
22846
22847         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
22848         Allocation is signed.
22849         (VEC_reserve): Return flag, allocation is signed.
22850
22851 2004-07-08  Richard Henderson  <rth@redhat.com>
22852
22853         * tree-ssa-ccp.c (fold_stmt): Get type directly from
22854         OBJ_TYPE_REF_OBJECT.
22855
22856 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
22857             Neil Booth  <neil@daikokuya.co.uk>
22858
22859         PR c/2511
22860         PR c/3325
22861         * c-decl.c (finish_struct): Ensure bit-fields are given the
22862         correct type.
22863         * c-common.c (c_common_signed_or_unsigned_type): For C, require
22864         the precision to match as well as the mode.
22865         * expr.c (reduce_to_bit_field_precision): New function.
22866         (expand_expr_real_1): Reduce expressions of bit-field type to
22867         proper precision.
22868         * langhooks.h (reduce_bit_field_operations): New hook.
22869         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
22870         Define.
22871         * c-lang.c, objc/objc-lang.c
22872         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
22873         * objc/objc-act.c (check_ivars): Convert types to bit-field types
22874         before checking.
22875         * tree.c (build_nonstandard_integer_type): New function.
22876         * tree.h (build_nonstandard_integer_type): New prototype.
22877         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
22878         conversions between integer and boolean types as useless.
22879
22880 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
22881
22882         * c-common.c (c_common_nodes_and_builtins): Do not
22883         create __builtin_ptrdiff_t and __builtin_size_t.
22884
22885 2004-07-08  Andrew Pinski  <apinski@apple.com>
22886
22887         * Makefile.in (libbackend.o): Add -combine to the gcc
22888         command line.
22889
22890 2004-07-08  Nick Clifton  <nickc@redhat.com>
22891
22892         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
22893         Set to -Os.
22894
22895 2004-07-08  Richard Henderson  <rth@redhat.com>
22896
22897         * except.c (expand_eh_region_start, expand_eh_region_end,
22898         expand_eh_handler, expand_eh_region_end_cleanup,
22899         expand_start_all_catch, expand_start_catch, expand_end_catch,
22900         expand_end_all_catch, expand_eh_region_end_allowed,
22901         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
22902         expand_eh_region_end_fixup): Remove.
22903         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
22904         cleanups, outer_cleanups, label_chain, exception_region.
22905         (struct goto_fixup): Remove stack_level, cleanup_list_list.
22906         (struct label_chain): Remove.
22907         (struct stmt_status): Remove x_stack_block_stack.
22908         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
22909         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
22910         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
22911         end_cleanup_deferral, last_cleanup_this_contour,
22912         containing_blocks_have_cleanups_or_stack_level,
22913         any_pending_cleanups): Remove.
22914         (expand_null_return_1): Take no arguments.
22915         (expand_label, expand_naked_return, expand_return,
22916         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
22917         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
22918         expand_end_case_type): Don't use any of them.
22919         * calls.c (expand_call): Likewise.
22920         * dojump.c (do_jump): Likewise.
22921         * function.c (expand_function_end): Likewise.
22922         * expr.c (store_expr, expand_expr_real_1): Likewise.
22923         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
22924         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
22925         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
22926         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
22927         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
22928         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
22929         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
22930         for WITH_CLEANUP_EXPR.
22931         (gimple_push_cleanup): Likewise.
22932         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
22933         * print-tree.c (print_node): Likewise.
22934         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
22935         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
22936         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
22937         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
22938         (GOTO_SUBROUTINE_EXPR): Remove.
22939         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
22940         (DECL_TOO_LATE): Remove.
22941         * except.h, tree.h: Update decls.
22942
22943 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
22944
22945         * explow.c (optimize_save_area_alloca): Do not accept parameters.
22946         * passes.c (rest_of_handle_final): Handle symout.
22947         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
22948         Push timevar here.
22949         (rest_of_handle_sched): Break out SMS.  Remove ifs for
22950         flag_schedule_insns and flag_modulo_sched.
22951         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
22952         collect at the end.
22953         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
22954         (rest_of_handle_partition_blocks, rest_of_handle_sms,
22955         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
22956         rest_of_handle_mode_switching, rest_of_handle_jump,
22957         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
22958         rest_of_handle_jump2, rest_of_handle_postreload,
22959         rest_of_handle_flow2, rest_of_clean_state,
22960         rest_of_handle_shorten_branches,
22961         rest_of_handle_prologue_epilogue,
22962         rest_of_handle_branch_target_load_optimize): New.
22963         (rest_of_compilation): Call the above.  Remove ggc_collect
22964         calls moved to rest_of_handle_*.
22965         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
22966
22967         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
22968         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
22969         * except.h (set_nothrow_function_flags): Update comment.
22970         * function.c (current_function_nothrow): Remove.
22971         * output.h (current_function_nothrow): Remove.
22972         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
22973         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
22974
22975 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22976
22977         PR bootstrap/16326
22978         * reorg.c: Revert 2004-06-30 change.
22979         (find_end_label): If HAVE_epilogue and !HAVE_return,
22980         return 0 instead of creating a label at the end of the insn chain.
22981         (optimize_skip): Account for the failure mode of find_end_label.
22982         (fill_simple_delay_slots): Likewise.
22983         (fill_slots_from_thread): Likewise.
22984         (relax_delay_slots): Likewise.
22985
22986 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
22987
22988         * tree-flow.h (addressable_vars): Declare.
22989         * tree-ssa-alias.c (addressable_vars): Define.
22990         (setup_pointers_and_addressables): Add addressable variables
22991         to addressable_vars.
22992         * tree-ssa-operands.c (get_stmt_operands): Move
22993         handling of ASM_EXPRs ...
22994         (get_asm_expr_operands): ... here.
22995         When the ASM_EXPR clobbers memory, also clobber addressable
22996         variables.
22997         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
22998         (delete_tree_ssa): Reset addressable_vars.
22999
23000 2004-07-07  Jan Beulich  <jbeulich@novell.com>
23001             Richard Henderson  <rth@redhat.com>
23002
23003         * varasm.c (assemble_variable): Use assemble_zeros for
23004         zero-initialized variables.
23005         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
23006         for SECCAT_BSS and SECCAT_TBSS.
23007
23008 2004-07-07  Jan Beulich  <jbeulich@novell.com>
23009
23010         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
23011
23012         * expmed.c (emit_store_flag): Also special-case double-word
23013         (in-)equality comparison against -1.
23014
23015         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
23016         passing arguments the containers for which are registers.
23017
23018         * calls.c (emit_library_call_value_1): Use mode of function parameter
23019         rather than that of argument since constants have none.
23020
23021 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
23022
23023         Introduce H8SX support.
23024         * expr.c (expand_strcpy): Renamed and moved to...
23025         * builtins.c (expand_movstr): ... here.  Tweak.
23026         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
23027         computed or has side effects.
23028         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
23029         unused, or if mempcpy fails.  Adjust the return value in the
23030         latter case.  Use movstr if everything else fails.
23031         * doc/md.texi (movstr): Document.
23032         (movmemM, clrmemM): Fix explanation of memory block operands.
23033         * config/h8300/h8300.md (stpcpy): Renamed to...
23034         (movstr): ... this.  Adjust.
23035         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
23036         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
23037         movmem* and clrstr* to clrmem*.
23038         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
23039         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
23040         GENERAL_REGS, always.
23041         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
23042         getting the stack pointer as addr.
23043         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
23044         from general_operand_dst.
23045         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
23046         variant of...
23047         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
23048         instead of requiring it to match only before reload.
23049         (stpcpy_internal_normal): New, normal-mode variant of...
23050         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
23051         `D' instead of requiring it to match only before reload.
23052         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
23053         mode argument.
23054         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
23055         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
23056         h8300_get_index.
23057         * config/h8300/h8300.md (attr type): Add call.
23058         (attr can_delay): If type is call, set it no.
23059         (call, call_value): Set type to call.
23060         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
23061         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
23062         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
23063         * tree.c (get_narrower): Don't narrow integral types into
23064         non-integral types.
23065         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
23066         frame_size *before* the first use.
23067         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
23068         on input.
23069         (peephole2): Don't widen instructions that push SP.  Move
23070         decrement of SP to the end of all stm-generating peepholes.
23071         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
23072         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
23073         and OR to set it to all ones.
23074         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
23075         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
23076         (call, call_value): Set can_delay to "no".
23077         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
23078         * config/h8300/h8300.md (extzv): Make subreg check more robust.
23079         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23080         * config/h8300/h8300.md (*brabit): Remove.
23081         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
23082         zero_extract.  Use bit_memory_operand as the predicate for
23083         operand 1 and 'WU' as the constraint.  Check the difference
23084         between the base length and the final one when deciding which
23085         type of branch to use.
23086         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23087         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
23088         Use convert_move to extend the result for TARGET_H8300SX.  Check
23089         for QImode memory references.  Optimize the case where the
23090         destination is a paradoxical subreg.
23091         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23092         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
23093         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
23094         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23095         * config/h8300/h8300.md: Include mova.md
23096         (length_table): Add mova and mova_zero.
23097         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
23098         after all constant addresses for '%R', '%X', '%T' and '%S'.
23099         (h8300_mova_length): New function.
23100         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
23101         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
23102         dependencies for s-config, etc.
23103         * config/h8300/gemova.sh: New file.
23104         * config/h8300/mova.md: Generated.
23105         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
23106         * config/h8300/h8300.c (h8300_bitfield_length): New.
23107         (nibble_operand): Adjust.
23108         (h8300_binary_length): Handle conditional binary op.
23109         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
23110         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
23111         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
23112         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
23113         constraints.  WU is introduced as a variant of U that requires a
23114         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
23115         * config/h8300/h8300.md (attr type): Added bitbranch.
23116         (attr length_table): Added bitfield and bitbranch.
23117         (attr length): Compute bitbranch length.
23118         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
23119         least-significant bit of a byte.
23120         (brabit, brabc, brabs): New.
23121         (insv, extzv): Emit bfst and bfld on H8300SX.
23122         (bfld, bfst, seq, sne): New.
23123         (bstzhireg, cmpstz, bstz, bistz): New.
23124         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
23125         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
23126         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
23127         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
23128         (h8sx_unary_memory_operator): New function.
23129         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
23130         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
23131         * config/h8300/h8300.md: Add peepholes to combine reloads and
23132         arithmetic insns.
23133         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
23134         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
23135         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
23136         (and?i, ior?i, xor?i): Likewise.
23137         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
23138         * config/h8300/h8300.c: Move enums and prototypes to head of file.
23139         Various whitespace fixes.
23140         (h8300_constant_length): New function, split out from...
23141         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
23142         (h8300_classify_operand): Use IN_RANGE.
23143         (h8300_classify_operand): Use h8300_constant_length.
23144         (h8300_short_move_mem_p): Tighten size check.
23145         (h8sx_mergeable_memrefs_p): Tighten equality check.
23146         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
23147         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
23148         for -msx.
23149         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
23150         * config/h8300/crtn.asm: Likewise.
23151         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
23152         if __H8300SX__ is defined.
23153         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
23154         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
23155         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
23156         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
23157         addresses as mode-dependent.
23158         * config/h8300/h8300.c (print_operand_address): Update call to
23159         h8300_get_index.
23160         (h8300_get_index): Take a mode argument.  Rework to fix an
23161         earlier misunderstanding.
23162         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
23163         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
23164         into a register if TARGET_H8300SX.
23165         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
23166         TARGET_H8300SX.  Also disable related define_splits.
23167         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
23168         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
23169         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
23170         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
23171         * config/h8300/h8300.h (OK_FOR_Z): New macro.
23172         (EXTRA_CONSTRAINT_STR): Check it.
23173         * config/h8300/h8300.c (h8300_classify_operand): Accept null
23174         class arguments.
23175         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
23176         * config/h8300/h8300.md (length_table): Add mov_imm4.
23177         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
23178         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
23179         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
23180         be a label.
23181         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
23182         * config/h8300/h8300.c (h8300_reorg): New function.
23183         (TARGET_MACHINE_DEPENDENT_REORG): Define.
23184         * config/h8300/h8300.md (length): Subtract the length of the
23185         delay slot from (pc) when checking the range of forward branches.
23186         (delay_slot, can_delay): New attributes.
23187         (define_delay): Add bra/s handling.
23188         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
23189         (jump): Add delayed-branch handling.
23190         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
23191         * expr.c (expand_strcpy): New function.
23192         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
23193         (expand_builtin_stpcpy): Likewise.
23194         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
23195         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
23196         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
23197         handling to improve register allocation for -fno-omit-frame-pointer.
23198         (h8sx_split_movmd): Delete, moving er6 handling into...
23199         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
23200         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
23201         (movmd): Add calls to copy_rtx.
23202         (movmd_internal): In the second alternative, allow the initial and
23203         final destination registers to be different .  Update the splitter
23204         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
23205         instead of h8sx_split_movmd.
23206         (stpcpy, movsd): New expanders.
23207         (movsd_internal): New define_insn.
23208         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
23209         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
23210         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
23211         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
23212         and DESTINATION_REGS.
23213         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
23214         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
23215         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
23216         (h8300_move_ratio): Declare.
23217         (MOVE_RATIO): Use it.
23218         * config/h8300/h8300.c (h8300_move_ratio): New variable.
23219         (h8300_init_once): Initialize it.
23220         (h8300_reg_class_from_letter): New function.
23221         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
23222         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
23223         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
23224         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
23225         (movstrsi, movmd): New expanders.
23226         (movmd_internal): New insn.
23227         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
23228         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
23229         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
23230         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
23231         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
23232         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23233         * config/h8300/h8300.c (nibble_operand): Fix warning.
23234         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
23235         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
23236         (movsf_h8300h): Disable for TARGET_H8300SX.
23237         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23238         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
23239         h8300_stm_parallel and h8300_return_parallel.
23240         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
23241         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
23242         h8300_stm_parallel, h8300_return_parallel): New functions.
23243         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
23244         if TARGET_H8300SX.  Use h8300_push_pop.
23245         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
23246         and final pop when generating h8sx code.  Always emit some form
23247         of return insn.
23248         * config/h8300/h8300.md: Don't enforce register alignment in
23249         stm peepholes if TARGET_H8300SX.
23250         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
23251         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
23252         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
23253         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23254         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
23255         (MULTILIB_DIRNAMES): Add a directory for it.
23256         (MULTILIB_MATCHES): Delete.
23257         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
23258         * final.c (walk_alter_subreg): Handle addresses with subregs
23259         inside a ZERO_EXTEND or AND.
23260         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
23261         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
23262         if TARGET_H8300SX.
23263         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
23264         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
23265         @(dd,Rn.w) and @(dd,ERn.L).
23266         (h8300_displacement_size): Take the whole address as argument.
23267         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
23268         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
23269         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
23270         (h8sx_mergeable_memrefs_p): Declare.
23271         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
23272         (HAVE_PRE_INCREMENT): Likewise.
23273         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
23274         addresses for TARGET_H8300SX,
23275         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
23276         and POST_DEC.
23277         (movb_length_table, movl_length_table): New tables.
23278         (movw_length_table): Define to movb_length_table.
23279         (h8300_displacement_size): New, split out from...
23280         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
23281         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
23282         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
23283         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
23284         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
23285         (compute_plussi_length, compute_plussi_cc): Update accordingly.
23286         (h8sx_unary_shift_operator): Get the mode from the operator.
23287         (binary_shift_operator): Likewise.
23288         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
23289         a memory reference, check whether the reference is offsettable.
23290         (length_table): Add movb, movw and movl.
23291         (movqi): Add new h8sx pattern.  Don't force one operand to be a
23292         register when generating h8sx code.
23293         (movhi, movsi, movsf): Likewise.
23294         (movstrictqi): Use the length_table attribute.
23295         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
23296         (addqi3): Split into a define_expand and define_insn.  Don't accept
23297         memory operands in the expander.  Use h8300_operands_match_p to
23298         check for matching operands in the define_insn.
23299         (subqi3, negqi2, one_cmplqi2): Likewise.
23300         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
23301         in any patterns that are unused in h8sx code.  In the h8sx patterns,
23302         use h8300_operands_match_p to check whether operands match.
23303         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
23304         one_cmpl[hs]i3): Likewise.
23305         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
23306         in the expander.
23307         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
23308         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
23309         (h8300_insn_length_from_table): Add a second parameter.
23310         (output_h8sx_shift): Declare.
23311         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
23312         (EXTRA_CONSTRAINT): Replace with...
23313         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
23314         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
23315         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
23316         and h8sx_binary_shift_operator.
23317         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
23318         for TARGET_H8300SX.
23319         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
23320         (bit_memory_operand, fix_bit_operand): Likewise.
23321         (h8300_length_table_for_insn): Remove.
23322         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
23323         instructions.
23324         (h8300_short_immediate_length, h8300_binary_length): New functions.
23325         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
23326         (output_plussi): Use sub to add negative constants.
23327         (compute_plussi_length): Adjust accordingly.
23328         (h8sx_single_shift_type): New enum.
23329         (h8sx_single_shift, h8sx_unary_shift_operator,
23330         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
23331         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
23332         single h8sx instruction.  Return false in this case.
23333         * config/h8300/h8300.md (length_table): Add short_immediate.
23334         (length): Pass the operand array to h8300_insn_length_from_table.
23335         (adjust_length): Assume "no" for insns with a length_table attribute.
23336         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
23337         (*addhi3_h8300hs): Don't use for h8sx.
23338         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
23339         and sub.w #xx:3.
23340         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
23341         1's predicate to nonimmediate_operand.  Only skip default expansion
23342         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
23343         for single h8sx shift instructions.
23344         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
23345         * config/h8300/h8300.c (nibble_operand): Split out of...
23346         (reg_or_nibble_operand): ... this.
23347         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
23348         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
23349         umulhisi3): Introduce expand, and introduce separate insns for
23350         sign- or zero-extended REG and already-extended CONST_INT.
23351         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
23352         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
23353         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
23354         (subhi3): Likewise.  Don't accept immediates for operand 1.
23355         Remove the early clobber from second alternative of the h8300s pattern.
23356         (subsi3): Generalize for h8sx.  Force operand 2 into a register
23357         on plain h8300 targets.
23358         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
23359         (subsi3_h8300h): Generalize for h8sx.
23360         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
23361         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
23362         * config/h8300/h8300.c (reg_or_nibble_operand): New.
23363         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
23364         (TARGET_H8300SXMUL): New.
23365         (CONST_OK_FOR_P): New.
23366         (CONST_OK_FOR_LETTER_P): Adjust.
23367         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
23368         umulhisi3): Accept 4-bit immediate on H8SX.
23369         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
23370         (udivsi3, divhi3, udivsi3, divsi3): New.
23371         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
23372         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
23373         * config/h8300/h8300.h (OK_FOR_Q): New macro.
23374         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
23375         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
23376         Add ADDRESSOF to the bit_operand entry.
23377         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
23378         (h8300_src_operand): Likewise.
23379         (bit_operand): Check nonimmediate_operand rather than general_operand.
23380         Accept any nonimmediate_operand in h8sx code.
23381         (h8300_and_costs): Initialize operands[1].
23382         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
23383         (h8300_operand_class): New enum.
23384         (h8300_length_table): New typedef.
23385         (addb_length_table, addw_length_table, addl_length_table,
23386         logicl_length_table): New tables.
23387         (logicb_length_table, logicw_length_table): New macros.
23388         (h8300_classify_operand, h8300_length_from_table,
23389         h8300_length_table_for_insn, h8300_unary_length,
23390         h8300_insn_length_from_table): New functions.
23391         (output_plussi): Only use adds and subs for register destinations.
23392         Disable redundant clause.
23393         (compute_plussi_cc): Likewise.
23394         (compute_plussi_length): Likewise.  Use h8300_length_from_table
23395         to work out the length of an insn.
23396         (output_logical_op): Only use narrower immediate instructions
23397         if the destination is a register.
23398         (compute_logical_op_cc): Likewise.
23399         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
23400         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
23401         * config/h8300/h8300.md (length_table): New attribute.
23402         (length): When an instruction has a length_table attribute, use
23403         h8300_insn_length_from_table to calculate its default length.
23404         (cmpqi): Use h8300_dst_operand for the first operand and
23405         h8300_src_operand for the second.
23406         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
23407         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
23408         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
23409         iorsi3, xorhi3, xorsi3): Likewise.
23410         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
23411         so that it allows any combination of operands for TARGET_H8300SX.
23412         (iorqi3, xorqi3): Likewise.
23413         (cmpqi): Use the length_table attribute.
23414         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
23415         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
23416         (cmpqi): Add 'Q' constraint.
23417         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
23418         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
23419         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
23420         * config/h8300/h8300.h (MASK_H8300SX): New macro.
23421         (TARGET_H8300S): True for both -ms and -msx.
23422         (TARGET_H8300SX): New macro.
23423         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
23424         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
23425         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
23426         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
23427         [Temporary change.]
23428         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
23429         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
23430         16-bit pointers and 32-bit ints.
23431         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
23432         CONST_DOUBLE with mode no wider than SImode.
23433         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
23434         output operand.
23435         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
23436         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
23437         or SUBREG thereof.
23438         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
23439         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
23440         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
23441
23442 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
23443
23444         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
23445
23446 2004-07-07  Per Bothner  <per@bothner.com>
23447
23448         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
23449
23450 2004-07-07  Mike Stump  <mrs@apple.com>
23451
23452         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
23453         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
23454         (machopic_finish): Likewise.
23455
23456 2004-07-07  Richard Henderson  <rth@redhat.com>
23457
23458         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
23459         through any value-preserving cast.
23460
23461 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
23462
23463         * function.c (assign_parm_find_data_types): Call
23464         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
23465
23466 2004-07-07  Steven Bosscher  <stevenb@suse.de>
23467
23468         * tree-cfg.c (group_case_labels): Remove case labels that have
23469         the same target as the default case.
23470
23471 2004-07-07  Steven Bosscher  <stevenb@suse.de>
23472
23473         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
23474         regardless of DECL_LANG_SPECIFIC being present or not.
23475         * tree.h (DECL_NUM_STMTS): Purge.
23476
23477 2004-07-07  Andrew Pinski  <apinski@apple.com>
23478
23479         * configure: Regenerate with the right autoconf.
23480
23481 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
23482
23483         * ifcvt.c (total_bb_rtx_cost): New function.
23484         (find_if_case_1): Compare rtx_cost of basic block to cost of
23485         BRANCH_COST insns.
23486         (find_if_case_2): Same.
23487
23488 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
23489
23490         PR target/10567
23491         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
23492         (output_return): Likewise.
23493         (output_sibcall): Abort if !flag_delayed_branch.
23494         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
23495         (emit_and_preserve): New function.
23496         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
23497         indirect jump to the thunked-to function if !flag_delayed_branch.
23498         * config/sparc/sparc.md (delayed_branch): New attribute.
23499         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
23500         attribute to compute the length of the insn.
23501         (goto_handler_and_restore): Likewise.
23502
23503 2004-07-07  Andrew Pinski  <apinski@apple.com>
23504
23505         PR tree-optimization/15777
23506         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
23507
23508         * expr.c (expand_expr_real_1): Fix formating.
23509         BUFFER_REF and IN_EXPR are dead.
23510         * fold-const.c (non_lvalue): BUFFER_REF is dead.
23511         * tree-inline.c (estimate_num_insns_1): Likewise.
23512         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
23513         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
23514         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
23515
23516 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
23517
23518         * collect2.c (dump_file): Don't call cplus_demangle if
23519         HAVE_LD_DEMANGLE is defined.
23520         (main): Pass "--demangle" to ld if no_demangle is not 0 and
23521         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
23522         if HAVE_LD_DEMANGLE is defined.
23523
23524         * configure.ac (--with-demangler-in-ld): Added
23525         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
23526         --with-demangler-in-ld is used.
23527         * config.in: Regenerated.
23528         * configure: Likewise.
23529
23530 2004-07-07  Roger Sayle  <roger@eyesopen.com>
23531
23532         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
23533         for simple floating point operations "fp", double precision
23534         multiplication "dmul", and single and double precision division
23535         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
23536         (ppc630_cost): New table split from ppc620_cost, to distinguish
23537         differences in floating point latencies.
23538         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
23539         (rs6000_rtx_costs): Add support for single and double precision
23540         floating point addition, subtraction, multiplication, division,
23541         fused-multiply-add, fused-multiply-sub, negation, absolute value
23542         and negative absolute value.  Tweak MEM case to use prefered idiom.
23543
23544 2004-07-07  Richard Henderson  <rth@redhat.com>
23545
23546         * tree-flow-inline.h (may_propagate_copy): Move...
23547         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
23548         attempt to copy between types requiring conversion.
23549         * tree-flow.h (may_propagate_copy): Update decl.
23550         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
23551
23552 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
23553
23554         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
23555         from -mtune= option.
23556
23557 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
23558
23559         * builtins.c: Rename movstr*, except for movstrict*, to
23560         movmem* and clrstr* to clrmem*.
23561         * expr.c: Likewise.
23562         * expr.h: Likewise.
23563         * genopinit.c: Likewise.
23564         * integrate.c: Likewise.
23565         * local-alloc.c: Likewise.
23566         * optabs.c: Likewise.
23567         * optabs.h: Likewise.
23568         * config/alpha/alpha.h: Likewise.
23569         * config/alpha/alpha.md: Likewise.
23570         * config/arm/arm-protos.h: Likewise.
23571         * config/arm/arm.c: Likewise.
23572         * config/arm/arm.md: Likewise.
23573         * config/avr/avr.md: Likewise.
23574         * config/c4x/c4x.c: Likewise.
23575         * config/c4x/c4x.md: Likewise.
23576         * config/frv/frv.md: Likewise.
23577         * config/i386/i386-protos.h: Likewise.
23578         * config/i386/i386.c: Likewise.
23579         * config/i386/i386.h: Likewise.
23580         * config/i386/i386.md: Likewise.
23581         * config/i860/i860.c: Likewise.
23582         * config/i860/i860.md: Likewise.
23583         * config/ip2k/ip2k.md: Likewise.
23584         * config/ip2k/libgcc.S: Likewise.
23585         * config/ip2k/t-ip2k: Likewise.
23586         * config/m32r/m32r.c: Likewise.
23587         * config/m32r/m32r.md: Likewise.
23588         * config/mcore/mcore.md: Likewise.
23589         * config/mips/mips.c: Likewise.
23590         * config/mips/mips.md: Likewise.
23591         * config/ns32k/ns32k.c: Likewise.
23592         * config/ns32k/ns32k.h: Likewise.
23593         * config/ns32k/ns32k.md: Likewise.
23594         * config/pa/pa.c: Likewise.
23595         * config/pa/pa.md: Likewise.
23596         * config/pdp11/pdp11.h: Likewise.
23597         * config/pdp11/pdp11.md: Likewise.
23598         * config/rs6000/rs6000.c: Likewise.
23599         * config/rs6000/rs6000.md: Likewise.
23600         * config/s390/s390-protos.h: Likewise.
23601         * config/s390/s390.c: Likewise.
23602         * config/s390/s390.md: Likewise.
23603         * config/sh/lib1funcs.asm: Likewise.
23604         * config/sh/sh.c: Likewise.
23605         * config/sh/sh.md: Likewise.
23606         * config/sh/t-sh: Likewise.
23607         * config/sparc/sparc.h: Likewise.
23608         * config/vax/vax.md: Likewise.
23609         * config/xtensa/xtensa.c: Likewise.
23610         * config/xtensa/xtensa.md: Likewise.
23611         * doc/invoke.texi: Likewise.
23612         * doc/md.texi: Likewise.
23613         * doc/rtl.texi: Likewise.
23614
23615 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
23616
23617         PR target/16407
23618         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
23619         * config/mips/mips.c (mips_declare_common_object): New function,
23620         mostly split out from...
23621         (mips_output_aligned_decl_common): ...here.
23622         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
23623         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
23624         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
23625         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
23626
23627 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23628
23629         PR c/16392
23630         * function.c (assign_parms): Fix typo from previous change.
23631
23632 2004-07-07  Jason Merrill  <jason@redhat.com>
23633
23634         PR c++/15815
23635         * doc/extend.texi (C++ Interface): Correct information and
23636         discourage use.
23637
23638 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
23639
23640         PR target/16130
23641         PR target/16142
23642         PR target/16143
23643         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
23644         insn.
23645
23646 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
23647
23648         PR target/1679.
23649         * config/m32r/m32r.c (m32r_function_symbol): New function:
23650         Generate a symbol name RTX with the correct m32r specific flags
23651         set.
23652         (block_move_call): Use new function to generate correct symbol.
23653         * config/m32r/m32r-protos.h: Add prototype for new funcion.
23654         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
23655         function.
23656
23657 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
23658
23659         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
23660         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
23661         TYPE_BINFO_BASETYPE): Remove.
23662         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
23663         to ...
23664         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
23665         here.
23666         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
23667         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
23668         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
23669         (struct tree_binfo): Rename base_types to base_binfos.
23670         * alias.c (record_component_aliases): Adjust BINFO macros.
23671         * dbxout.c (dbxout_type): Likewise.
23672         * dwarf2out.c (gen_member_die): Likewise.
23673         * sdbout.c (sdbout_one_type): Likewise.
23674         * tree-dump.c (deque_and_dump): Likewise.
23675         * config/i386/i386.c (classify_argument,
23676         contains_128bit_aligned_vector_p): Likewise.
23677
23678 2004-07-07  Nick Clifton  <nickc@redhat.com>
23679
23680         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
23681         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
23682
23683 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
23684
23685         * vec.h: Fix the example use.
23686
23687 2004-07-06  Richard Henderson  <rth@redhat.com>
23688
23689         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
23690         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
23691         * tree-inline.c (copy_body_r, setup_one_parameter,
23692         initialize_inlined_parameters, expand_call_inline,
23693         declare_inline_vars): Don't check it.
23694         (expand_calls_inline): Remove old version, rename new version
23695         from gimple_expand_calls_inline.
23696         * tree-optimize.c (execute_gimple): Remove.
23697         (pass_gimple): Don't run anything.
23698
23699 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
23700
23701         * doc/sourcebuild.texi: Use semicolons instead of commas in
23702         section title.
23703
23704 2004-07-06  Richard Henderson  <rth@redhat.com>
23705
23706         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
23707         (sra_walk_modify_expr, scan_init): Likewise.
23708         (generate_element_zero): Check visited before scanning children.
23709         (generate_element_init): Set visited on error.
23710         (scalarize_init): Handle generate_element_init failure similar
23711         to use_block_copy.
23712
23713 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
23714
23715         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
23716         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
23717
23718 2004-07-06  Richard Henderson  <rth@redhat.com>
23719
23720         * config/i386/i386.c (legitimize_pic_address): Make static.
23721         (legitimize_address): Handle CONST with TLS operand.
23722         (ix86_expand_move): Don't call legitimize_pic_address directly.
23723         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
23724
23725 2004-07-06  Roger Sayle  <roger@eyesopen.com>
23726
23727         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
23728         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
23729         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
23730         is currently executed unconditionally, i.e. not in "else_bb".
23731
23732 2004-07-06  Steven Bosscher  <stevenb@suse.de>
23733
23734         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
23735         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23736         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
23737         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23738         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
23739         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23740         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
23741         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23742         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
23743         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23744         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
23745         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23746         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
23747         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23748         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
23749         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
23750
23751 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
23752
23753         * dojump.c (do_jump): REFERENCE_EXPR is dead.
23754         * expr.c (expand_expr_real_1): Ditto.
23755         * tree-inline.c (estimate_num_insns_1): Ditto.
23756         * tree-pretty-print.c (dump_generic_node): Ditto.
23757         (op_symbol): Ditto.
23758         * tree.def: Ditto.
23759
23760 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
23761
23762         * tree-ssa-pre.c (reference_node_pool): New pool.
23763         (find_or_generate_expression): Class 'r' is okay too.
23764         (create_value_expr_from): Ditto.
23765         (add_to_sets): LHS should not include vuses.
23766         (eliminate): Ditto.
23767         (compute_avail): Reverse ordering of tests.
23768         Valuize INDIRECT_REF as well.
23769
23770 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
23771
23772         PR rtl-optimization/16380
23773         * loop.c (check_dbra_loop): Sink comparison instructions if they
23774         do something other than set cc0.
23775
23776 2004-07-06  James E Wilson  <wilson@specifixinc.com>
23777
23778         * doc/interface.texi (longjmp and automatic variables): Delete
23779         paragraph recommending taking the address of a variable.
23780
23781 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
23782
23783         * vec.h (VEC_embedded_alloc): Remove.
23784         (VEC_embedded_size, VEC_embedded_init): New.
23785         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
23786         MEM_STAT_INFO.
23787         (VEC_truncate): New.
23788         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
23789         (vec_embedded_alloc): Remove.
23790         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
23791         (vec_embedded_alloc): Remove.
23792
23793 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
23794
23795         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
23796         (gt-langhooks.h): Remove.
23797
23798 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
23799
23800         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
23801
23802 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
23803
23804         * config/sparc/sparc.c (get_pc_symbol): Rename into
23805         add_pc_to_pic_symbol.
23806         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
23807         (load_pic_register): Account for previous changes.
23808         Use reg_names.  Don't create the label twice.
23809         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
23810         UNSPEC_LOAD_PCREL_SYM.
23811         (get_pc): Rename into load_pcrel_sym.  Add predicate to
23812         operands.  Remove condition.
23813
23814 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
23815
23816         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
23817         RECORD, UNION & QUAL_UNION is actually a binfo.
23818
23819         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
23820         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
23821         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
23822         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
23823         * dwarf2out.c (add_data_member_location_attribute): Likewise.
23824         (gen_inheritance_die): Likewise.
23825         * tree-dump.c (deque_and_dump): Likewise.
23826         * doc/c-tree.texi (Binfos): Add under reconstruction note.
23827
23828 2004-07-06  Steven Bosscher  <stevenb@suse.de>
23829
23830         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
23831         Define.
23832         * config/mcore/mcore.md: Model memory latency with a simple DFA
23833         pipeline description instead of a define_function_unit.
23834
23835 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23836
23837         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
23838         * langhooks.h (var_mod_type_p): Likewise.
23839         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
23840         * expr.c (count_type_elements): Properly handle return from
23841         array_type_nelts and properly test for overflow.
23842         * gimplify.c (gimplify_init_constructor): Properly handle return
23843         from array_type_nelts.
23844         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
23845         * integrate.c (copy_decl_for_inlining): Correct comments.
23846         * tree-inline.c (remap_decl): Update comments, remove dead code,
23847         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
23848         (remap_type): Only remap if variably modified by vars in function
23849         being inlined.
23850         (copy_body_r): Use compatible_type langhooks to see when can fold.
23851         (setup_one_parameter): Don't remap type.
23852         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
23853         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
23854         compute TREE_INVARIANT for decl case.
23855         (find_var_from_fn): New function.
23856         (variably_modified_type_p): Add arg and call new function.
23857         * tree.h (variably_modified_type_p): Add extra arg.
23858
23859 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
23860
23861         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
23862         (goto_handler_and_restore_v9): Delete disabled insn.
23863         (goto_handler_and_restore_v9_sp64): Likewise.
23864
23865 2004-07-05  Roger Sayle  <roger@eyesopen.com>
23866
23867         * calls.c (load_register_parameters): Call expand_shift instead
23868         of expand_binop with ashl_optab (or other shift optab) directly.
23869         * expr.c (emit_group_load, emit_group_store): Likewise.
23870         * function.c (assign_parm_setup_block): Likewise.
23871         * stmt.c (shift_return_value): Likewise.
23872
23873 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
23874
23875         * expr.c (expand_assignment): Disable the bitfield += optimizations.
23876
23877 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
23878
23879         * doc/sourcebuild.texi: Revert previous patch.
23880
23881 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
23882
23883         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
23884         TARGET_MEM_FUNCTIONS.
23885         * system.h: Poison TARGET_MEM_FUNCTIONS.
23886         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
23887         bcmp_libfunc, bzero_libfunc): Remove.
23888         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
23889         bzero_libfunc.
23890         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
23891         * doc/standards.texi: Don't mention calling BSD string functions.
23892         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
23893         * config/vax/t-memfuncs: New.
23894         * config/memcmp.c, config/memcpy.c, config/memmove.c,
23895         config/memset.c: New.
23896         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
23897         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
23898         vax/t-memfuncs.
23899         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
23900         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
23901         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
23902         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
23903         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
23904         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
23905         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
23906         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
23907         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
23908         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
23909
23910 2004-07-05  Richard Henderson  <rth@redhat.com>
23911
23912         * function.c (assign_parm_setup_reg): Properly rename variables in
23913         FUNCTION_ARG_CALLEE_COPIES section.
23914
23915 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
23916
23917         * tree-mudflap.c: Include cgraph.h.
23918         (mf_init_extern_trees): Rename to mudflap_init.  Export.
23919         Rewrite to create synthetic declarations instead of looking
23920         up declarations from mf-runtime.h.
23921         (mf_make_builtin, mf_make_cache_struct_type): New functions.
23922         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
23923         Correct commentary.
23924         (execute_mudflap_function_decls, mudflap_register_call):
23925         Don't call mf_init_extern_trees.
23926         (mudflap_finish_file): Use cgraph_build_static_cdtor.
23927
23928         * tree-mudflap.h: Update prototypes.
23929         * c-mudflap.c: Delete file.
23930         * c-common.c: Include tree-mudflap.h.
23931         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
23932         * Makefile.in: Remove all references to c-mudflap.o.
23933         Update dependencies.
23934
23935 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23936
23937         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
23938         displacements with the spatial-locality cache-control completer.
23939
23940 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
23941
23942         * langhooks.c: Don't include gt-langhooks.h.
23943         (var_labelno): Delete.
23944         (lhd_set_decl_assembler_name): Do not append a distinguishing
23945         number to file-scope internal-linkage declarations for the first
23946         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
23947         the declaration itself (if at block scope), or its containing
23948         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
23949         number.
23950
23951         * opts.c (cur_in_fname): New global.
23952         * opts.h: Declare it.
23953         * tree.c: Include opts.h.
23954         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
23955         DECL_UID equal to cur_in_fname.
23956         (copy_node_stat): Do not change DECL_UID when copying a
23957         TRANSLATION_UNIT_DECL.
23958         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
23959         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
23960
23961         * c-decl.c (c_static_assembler_name): Delete.
23962         * c-tree.h (c_static_assembler_name): Delete prototype.
23963         * c-lang.c, objc/objc-lang.c: Don't override
23964         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
23965
23966         * Makefile.in (tree.o): Update dependencies.
23967         (GTFILES): Remove langhooks.c.
23968
23969 2004-07-05  Roger Sayle  <roger@eyesopen.com>
23970
23971         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
23972         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
23973         Normalize "X % C" as "X % -C" for signed modulus and negative C.
23974         Optimize "X % -Y" as "X % Y" for signed modulus.
23975         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
23976         into "((unsigned) X % Y) == 0".
23977
23978 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
23979
23980         * sourcebuild.texi (Config Fragments): Use @comma{} in
23981         cross-reference to section title.
23982
23983 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23984
23985         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
23986         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
23987         (gimplify_target_expr, gimplify_expr): Likewise.
23988         (copy_if_shared_r): No longer need special case for BIND_EXPR.
23989         (unshare_body, unvisit_body): Only look at nested if BODY_P is
23990         whole function.
23991         (gimplify_compound_lval): See if we can strip any useless conversion.
23992         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
23993         from RHS, not LHS.
23994         (gimplify_modify_expr_to_memset): Likewise.
23995         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
23996         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
23997         (declare_inline_vars): Likewise.
23998         (walk_type_fields): New function.
23999         (walk_tree): Use it.
24000         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
24001
24002         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
24003         (sra_walk_modify_expr): Allow init function to fail.
24004         (scan_init): Now returns bool.
24005         (generate_element_init): If can't understand INIT, return false.
24006         (scalarize_init): Return false if generate_element_init does.
24007
24008         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
24009         print bounds.
24010
24011         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
24012         bounds if bounds aren't constant.
24013
24014         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
24015
24016         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
24017         to type hooks; remove bogus PARAMS.
24018
24019 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
24020
24021         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
24022         * dwarf2out.c (add_data_member_location_attribute): Check for
24023         TREE_BINFO.
24024         * tree.c (tree_node_kinds): Add "binfos".
24025         (binfo_lang_slots): New.
24026         (make_node_stat): Add TREE_BINFO.
24027         (make_tree_binfo_stat): New.
24028         (tree_node_structure): Add TREE_BINFO.
24029         * tree.def (TREE_BINFO): New.
24030         * tree.h (REC_OR_UNION_CHECK): Rename to ...
24031         (RECORD_OR_UNION_CHECK): ... here.
24032         (NOT_RECORD_OR_UNION_CHECK): New.
24033         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
24034         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
24035         RECORD_OR_UNION_CHECK.
24036         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
24037         (TYPE_LANG_SLOT_1): New.
24038         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
24039         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
24040         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
24041         (BINFO_ELTS): Remove.
24042         (BINFO_LANG_SLOT): New.
24043         (struct tree_binfo): New.
24044         (binfo_lang_slots): Declare.
24045         (enum tree_node_structure_enum): Add TS_BINFO.
24046         (union tree_node): Add binfo.
24047         (make_tree_binfo_stat): Declare.
24048         (make_tree_binfo): New.
24049         (enum tree_node_kind): Add binfo_kind.
24050
24051         * objc/objc-act.c (start_class, objc_declare_protocols,
24052         start_protocols): Use TYPE_LANG_SLOT_1.
24053         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
24054         to ...
24055         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
24056         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
24057         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
24058         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
24059
24060 2004-07-05  Steven Bosscher  <stevenb@suse.de>
24061
24062         * rtl.h (struct rtx_def): Remove the integrated flag.
24063         Use the return_val flag for MEM_SCALAR_P.
24064         Reshuffle and update flags in CLEAR_RTX_FLAGS.
24065
24066 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
24067
24068         PR target/16357
24069         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
24070         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
24071         move_by_pieces.
24072
24073 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
24074
24075         * var-tracking.c: Fix some comments.
24076         (frame_stack_adjust): New.
24077         (vt_stack_adjustments): Init stack_adjust of entry block to
24078         minus stack adjustment of function prologue.
24079         (adjust_stack_reference): Do not adjust if adjustment == 0.
24080         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
24081         (emit_notes_in_bb): Likewise.
24082         (vt_add_function_parameters): Do not adjust locations of
24083         function arguments.
24084         (vt_initialize): Compute the stack adjustment of function
24085         prologue and offset the initial "location" of frame_base_decl
24086         from the stack pointer after prologue.
24087
24088 2004-07-04  Richard Henderson  <rth@redhat.com>
24089
24090         * function.c (struct assign_parm_data_all): New.
24091         (struct assign_parm_data_one): New.
24092         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
24093         assign_parm_find_data_types, assign_parms_setup_varargs,
24094         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
24095         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
24096         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
24097         assign_parm_setup_block, assign_parm_setup_reg,
24098         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
24099         (assign_parms): ... here.
24100
24101 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
24102
24103         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
24104         now are bitmap_set_t's.
24105         (bitmap_insert_into_set): No point in inserting the value if
24106         it's invariant.
24107         (bitmap_set_contains): New function.
24108         (bitmap_set_replace_value): Add comment on why we do it
24109         this way.
24110         (set_contains): Removed.
24111         (bitmap_set_subtract_from_value_set): New name of
24112         set_subtract now that it's arguments are two different
24113         types of sets.
24114         Update callers.
24115         (bitmap_find_leader): Change algorithm used.
24116         (find_or_generate_expression): Update use of functions for new
24117         bitmap sets.
24118         (create_expression_by_pieces): Ditto.
24119         (insert_aux): Ditto.
24120         (insert): Ditto.
24121         (add_to_sets): Ditto.
24122         (init_pre): Ditto.
24123         (execute_pre): Ditto.
24124         (compute_avail): Ditto.
24125         Also ignore virtual phis.
24126
24127 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
24128
24129         * combine.c (simplify_comparison): Fix comment typo.
24130
24131 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
24132
24133         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
24134         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
24135         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
24136         (output_restore): Change parameter from 'insn' to 'pat'.
24137         (output_return): Adjust call to output_restore.
24138         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
24139         Adjust call to output_restore.
24140
24141 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
24142
24143         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
24144         and assert system is bsd.
24145
24146 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
24147
24148         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
24149         (TARGET_SWITCHES): Remove -mdebugc.
24150         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
24151         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
24152         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
24153         (sle_[sd]i_reg): Delete.
24154
24155 2004-07-04  Steven Bosscher  <stevenb@suse.de>
24156
24157         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
24158         Define.
24159         * config/iq2000/iq2000.md: Translate old pipeline description to an
24160         equivalent new one.
24161
24162 2004-07-04  Roger Sayle  <roger@eyesopen.com>
24163
24164         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
24165         Ensure the replacement rhs is valid gimple before performing
24166         the substitution.  Return false if these sanity checks fail.
24167         (fold_stmt): Only set changed to true, if set_rhs returns true.
24168         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
24169         succeeds.
24170
24171 2004-07-04  Richard Henderson  <rth@redhat.com>
24172
24173         PR c/16348
24174         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
24175
24176 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
24177
24178         * configure.ac (ranlib_flags): New variable.
24179         * Makefile.in (RANLIB_FLAGS): New variable.
24180         (libbackend.a): Use it.
24181         * configure: Regenerated.
24182
24183 2004-07-04  Roger Sayle  <roger@eyesopen.com>
24184
24185         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
24186         a "sign mask" instead of using ashr_optab directly.
24187
24188 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
24189
24190         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
24191         * doc/cppopts.texi: Clarify processing of command-line defines.
24192
24193 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
24194
24195         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
24196
24197 2004-07-04  Richard Henderson  <rth@redhat.com>
24198
24199         * rtl.def (ADDRESSOF): Remove.
24200         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
24201         (find_base_term, memrefs_conflict_p): Likewise.
24202         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
24203         (fold_rtx, cse_insn, set_live_p): Likewise.
24204         * dwarf2out.c (mem_loc_descriptor): Likewise.
24205         (add_location_or_const_value_attribute): Likewise.
24206         * emit-rtl.c (copy_insn_1): Likewise.
24207         * explow.c (memory_address): Likewise.
24208         * expmed.c (store_split_bit_field): Likewise.
24209         * expr.c (expand_expr_real_1): Likewise.
24210         * function.c (instantiate_decl
24211         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
24212         * genrecog.c (preds, validate_pattern): Likewise.
24213         * integrate.c (copy_rtx_and_substitute): Likewise.
24214         * recog.c (general_operand, register_operand): Likewise.
24215         (memory_address_p): Likwise.
24216         * reload1.c (eliminate_regs, elimination_effects): Likewise.
24217         * rtl.c (copy_rtx): Likewise.
24218         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
24219         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
24220         * rtlhooks.c (gen_lowpart_general): Likewise.
24221         * stmt.c (expand_asm_operands): Likewise.
24222         * web.c (entry_register, replace_ref, web_main): Likewise.
24223         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
24224         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
24225         * config/arm/arm.c (thumb_rtx_costs): Likewise.
24226         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
24227         * config/frv/frv.c (move_destination_operand, move_source_operand,
24228         condexec_dest_operand, condexec_source_operand,
24229         condexec_memory_operand): Likewise.
24230         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
24231         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
24232         (destination_xfmode_operand): Likewise.
24233         * config/mips/mips.h (PREDICATE_CODES): Likewise.
24234         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
24235         * config/s390/s390.c (general_s_operand): Likewise.
24236         * config/s390/s390.md (mov*): Likewise.
24237         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
24238
24239         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
24240         * expr.c (expand_expr_real_1): Likewise.
24241         * stmt.c (expand_decl): Likewise.
24242         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
24243
24244         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
24245         postponed_insns, put_var_into_stack, put_reg_into_stack,
24246         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
24247         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
24248         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
24249         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
24250         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
24251         purge_bitfield_addressof_replacements, purge_addressof_replacements,
24252         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
24253         struct insns_for_mem_walk_info, insns_for_mem_walk,
24254         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
24255         setjmp_protect_args): Remove.
24256         (push_function_context_to): Don't handle var_refs_queue.
24257         (pop_function_context_from, free_after_compilation): Likewise.
24258         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
24259         (assign_parms, allocate_struct_function): Likewise.
24260         (use_register_for_decl): New.
24261         (expand_function_end): Don't setjmp_protect.
24262         * function.h (struct emit_status): Update commentary.
24263         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
24264         (max_parm_reg, parm_reg_stack_loc): Remove.
24265         * passes.c (DFI_addressof): Remove.
24266         (dump_file_info): Remove addressof.
24267         (rest_of_handle_addressof): Remove.
24268         (rest_of_compilation): Don't call it.
24269         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
24270         * stmt.c (expand_decl): Use use_register_for_decl.
24271         * tree.h: Update decls.
24272         * web.c (mark_addressof): Remove.
24273         * doc/invoke.texi (-dF): Remove.
24274
24275 2004-07-03  Richard Henderson  <rth@redhat.com>
24276
24277         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
24278         instead of gen_mem_addressof.
24279         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
24280         TImode output register.
24281
24282 2004-07-03  Richard Henderson  <rth@redhat.com>
24283
24284         PR tree-optimization/16341
24285         * tree-sra.c (sra_walk_function): Increment to next stmt before
24286         processing the current stmt.
24287         (sra_insert_after): Always use BSI_SAME_STMT.
24288
24289 2004-07-03  Richard Henderson  <rth@redhat.com>
24290
24291         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
24292         fp plus with minus.
24293
24294 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
24295
24296         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
24297         with tree_int_cst_equal.
24298
24299 2004-07-03  Andreas Schwab  <schwab@suse.de>
24300
24301         * config/ia64/ia64.md: Define new attribute "empty".
24302         (prologue_use, nop_x, insn_group_barrier): Set it.
24303
24304         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
24305         skip over "empty" insns.
24306
24307 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24308
24309         * tree-inline.c (initialize_inlined_parameters): Pass proper function
24310         context to gimplify_body.
24311         (walk_tree): Don't walk into types twice.
24312         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
24313
24314         * tree-sra.c (generate_element_init): Remove any useless conversions.
24315
24316         * gimplify.c (gimplify_conversion): Remove stripping useless
24317         conversions from here.
24318         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
24319         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
24320         Unshare before substituting PLACEHOLDER_EXPR.
24321         (gimplify_modify_expr_to_memset): Likewise.
24322         Pass address of TO to memset, not TO itself.
24323         (gimplify_init_constructor): Make copy of OBJECT so we have it each
24324         time we make an expression (to match a PLACEHOLDER_EXPR).
24325
24326         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
24327         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
24328         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
24329         * tree-ssa-dom.c (local_fold): Likewise.
24330
24331         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
24332         * langhooks.h (strct lang_hooks): New field type_max_size.
24333         * function.c (assign_temp): Call it.
24334
24335 2004-07-03  Steven Bosscher  <stevenb@suse.de>
24336
24337         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
24338         * config/sh/sh.md: Convert the SH1 pipeline description to
24339         a DFA model.
24340
24341 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
24342
24343         * c-decl.c (struct c_binding): Remove contour field; add
24344         depth, invisible, nested fields.
24345         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
24346         (B_IN_EXTERNAL_SCOPE): New convenience macros.
24347         (bind): Add invisible and nested arguments. Initialize
24348         new fields of struct c_binding; adjust loop scanning for
24349         insertion point.
24350         (free_binding_and_advance): Clear structure with memset.
24351         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
24352         in file scope, even if it's in external scope too.
24353         (pushdecl): Adjust to match.  Create invisible file-scope
24354         declarations for block-scope forward declarations of static functions.
24355         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
24356         (undeclared_variable, lookup_label, declare_label, define_label)
24357         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
24358         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
24359         (store_parm_decls_oldstyle): Adjust to match.
24360         (diagnose_mismatched_decls): Correct handling of linkage clashes.
24361         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
24362
24363         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
24364         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
24365
24366 2004-07-02  Richard Henderson  <rth@redhat.com>
24367
24368         * c-decl.c (grokdeclarator): Don't frob current_function_decl
24369         around variable_size.
24370         (set_decl_nonlocal): Remove.
24371         (store_parm_decls): Add stmts for pending sizes.
24372         * calls.c (calls_function, calls_function_1): Remove.
24373         (precompute_arguments): Don't call it.
24374         * cfgexpand.c (set_save_expr_context): Remove.
24375         (tree_expand_cfg): Don't call it.
24376         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
24377         (dwarf2out_finish): Likewise.
24378         * expr.c (emit_block_move): Adjust addresses to BLKmode.
24379         (store_constructor): Don't pre-evaluate SAVE_EXPR.
24380         (safe_from_p): Don't queue SAVE_EXPRs.
24381         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
24382         or build plain VAR_DECLs.
24383         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
24384         (fold): Likewise.
24385         (fold_checksum_tree): Don't special-case SAVE_EXPR.
24386         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
24387         (put_var_into_stack): Don't handle SAVE_EXPR.
24388         (gen_mem_addressof): Likewise.
24389         * function.h (struct function): Remove x_save_expr_regs.
24390         (save_expr_regs): Remove.
24391         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
24392         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
24393         * stor-layout.c (variable_size): Don't set it.
24394         (force_type_save_exprs, force_type_save_exprs_1): Remove.
24395         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
24396         all callers.  Don't set SAVE_EXPR_CONTEXT.
24397         * tree-inline.h (remap_save_expr): Update decl.
24398         * tree.c (save_expr): Update build size.
24399         (first_rtl_op): Don't handle SAVE_EXPR.
24400         (unsave_expr_1, contains_placeholder_p): Likewise.
24401         (decl_function_context): Likewise.
24402         * tree.def (SAVE_EXPR): Remove args 1 and 2.
24403         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
24404         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
24405
24406 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
24407
24408         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
24409         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
24410         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
24411         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
24412         some first-person references and patronizing comments.  Based on
24413         printed manual.
24414         * doc/invoke.texi: Don't reference fortran@gnu.org.
24415         * doc/trouble.texi (Warning when a non-void function value is
24416         ignored): Rewrite.  From Russ Allbery and Chris Devers.
24417
24418 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
24419
24420         * tree-ssa-pre.c (bitmap_set_t): New.
24421         (bb_value_sets): avail_out is now a bitmap_set_t.
24422         (bitmap_find_leader): New function.
24423         (bitmap_value_insert_into_set): Ditto.
24424         (bitmap_set_copy): Ditto.
24425         (bitmap_value_replace_in_set): Ditto.
24426         (bitmap_set_contains_value): Ditto.
24427         (bitmap_set_new): Ditto.
24428         (bitmap_set_pool): New pool.
24429         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
24430         (insert_aux): Ditto.
24431         (add_to_sets): Ditto.
24432         (compute_avail): Ditto
24433         (eliminate): Ditto.
24434         (init_pre): Ditto.
24435         (fini_pre): Ditto.
24436         (execute_pre): Ditto.
24437
24438 2004-07-02  Roger Sayle  <roger@eyesopen.com>
24439
24440         * config/rs6000/rs6000.c (struct processor_costs): New structure
24441         used to hold instruction latencies/sizes for processor types.
24442         (rs6000_cost): New global variable pointing to current CPU's costs.
24443         (rs6000_override_options): Initialize rs6000_cost to point to the
24444         appropriate cost table based upon rs6000_cpu and optimize_size.
24445         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
24446         timings inline.
24447
24448 2004-07-02  Richard Henderson  <rth@redhat.com>
24449
24450         * expmed.c (make_tree): Don't use SET_DECL_RTL.
24451
24452 2004-07-02  Steven Bosscher  <stevenb@suse.de>
24453
24454         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
24455
24456 2004-07-01  Richard Henderson  <rth@redhat.com>
24457
24458         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
24459         (alpha_gp_save_rtx): Use assign_stack_local instead of
24460         gen_mem_addressof.
24461
24462 2004-07-01  Richard Henderson  <rth@redhat.com>
24463
24464         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
24465         (alpha_rtx_cost_data): Update to match.
24466         (alpha_rtx_cost_size): New.
24467         (alpha_rtx_costs): Honor optimize_size.
24468
24469 2004-07-01  Richard Henderson  <rth@redhat.com>
24470
24471         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
24472         * cfgexpand.c (tree_expand_cfg): Do it here.
24473         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
24474         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
24475         * config/mips/mips.c (mips_output_mi_thunk): And here.
24476         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
24477         * config/sh/sh.c (sh_output_mi_thunk): And here.
24478         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
24479
24480 2004-07-01  Richard Henderson  <rth@redhat.com>
24481
24482         * tree.def (RTL_EXPR): Remove.
24483         * c-typeck.c (lvalue_p): Don't handle it.
24484         * expr.c (safe_from_p): Likewise.
24485         (expand_expr_real_1): Likewise.
24486         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
24487         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
24488         * gengtype.c (adjust_field_tree_exp): Likewise.
24489         * stmt.c (warn_if_unused_value): Likewise.
24490         * tree-gimple.c (recalculate_side_effects): Likewise.
24491         * tree-pretty-print.c (dump_generic_node): Likewise.
24492         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
24493         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
24494         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
24495
24496         * stmt.c (struct stmt_status): Remove x_last_expr_type,
24497         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
24498         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
24499         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
24500         all the bits that tracked last_expr.
24501         (expand_end_bindings): Don't track last_expr.
24502         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
24503         (clear_last_expr): Remove.
24504         (expand_asm): Don't call it.
24505         (expand_asm_operands, expand_end_cond): Likewise.
24506         (expand_naked_return, expand_null_return_1): Likewise.
24507         * c-typeck.c (c_begin_compound_stmt): Likewise.
24508         * cfgexpand.c (expand_block): Use expand_expr_stmt.
24509         * expr.c (expand_expr_real_1): Likewise.
24510         * tree.h: Update prototypes.
24511
24512         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
24513         (struct emit_status): Remove sequence_rtl_expr.
24514         (struct function): Remove x_rtl_expr_chain.
24515         (seq_rtl_expr, rtl_expr_chain): Remove.
24516         * function.c (struct temp_slot): Remove rtl_expr.
24517         (assign_stack_temp_for_type): Don't set it.
24518         (free_temp_slots, pop_temp_slots): Don't check it.
24519         (free_after_compilation): Don't clear x_rtl_expr_chain.
24520         (fixup_var_refs): Don't search it.
24521         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
24522         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
24523         or seq_rtl_expr.
24524         (push_topmost_sequence): Likewise.
24525         (end_sequence, init_emit): Likewise.
24526         (start_sequence_for_rtl_expr): Remove.
24527         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
24528         * rtl.h (preserve_rtl_expr_result): Remove.
24529
24530 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
24531
24532         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
24533         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
24534         typos.
24535
24536 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
24537
24538         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
24539         (STANDARD_STARTFILE_PREFIX_2): Define.
24540         (standard_startfile_prefix_1): Initialize to
24541         STANDARD_STARTFILE_PREFIX_1.
24542         (standard_startfile_prefix_2): Initialize to
24543         STANDARD_STARTFILE_PREFIX_2.
24544         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
24545         (STANDARD_STARTFILE_PREFIX_1): Define.
24546         (STANDARD_STARTFILE_PREFIX_2): Define.
24547         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
24548         (STANDARD_STARTFILE_PREFIX_2): Document.
24549
24550 2004-07-01  Richard Henderson  <rth@redhat.com>
24551
24552         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
24553         in order to disable scalarization.  Instead set a flag and wait
24554         for a candidate decl.
24555
24556 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
24557
24558         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
24559         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
24560         Use terminology "testsuite" and "enumerated".
24561
24562 2004-07-01  Richard Henderson  <rth@redhat.com>
24563
24564         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
24565         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
24566         (initial_return_save): Likewise.
24567         (flush_queued_reg_saves): Remap register numbers.
24568         (dwarf2out_return_reg): Likewise.
24569
24570 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24571
24572         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
24573
24574         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
24575         access functions for lower bound and element size and only output
24576         if lower bound nonzero or element size not same as that of type.
24577         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
24578
24579 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
24580
24581         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
24582
24583 2004-07-01  Per Bothner  <per@bothner.com>
24584
24585         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
24586
24587 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
24588
24589         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
24590         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
24591         first operand.  Don't optimize if the bitfield is volatile.
24592
24593 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
24594
24595         * c-pretty-print.c (pp_c_postfix_expression): Handle
24596         floating-point comparison operators.
24597         (pp_c_expression): Pass floating-point comparison
24598         operators to pp_c_postfix_expression.
24599
24600 2004-07-01  Roger Sayle  <roger@eyesopen.com>
24601
24602         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
24603         rtx_cost instead of "had_mult" to determine whether the transformed
24604         expression is cheaper than the original.
24605
24606 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
24607
24608         * alias.c (get_alias_set, canon_rtx, get_addr,
24609         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
24610         Use MEM_P.
24611         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
24612         expand_builtin): Likewise.
24613         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
24614         Likewise.
24615         * combine.c (can_combine_p, combinable_i3pat, try_combine,
24616         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
24617         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
24618         record_dead_and_set_regs_1, get_last_value_validate,
24619         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
24620         * cse.c (check_dependence, canon_hash, equiv_constant,
24621         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
24622         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
24623         count_reg_usage): Likewise.
24624         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
24625         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
24626         cselib_record_sets): Likewise.
24627         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
24628         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
24629         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
24630         * df.c (df_uses_record): Likewise.
24631         * dojump (do_jump): Likewise.
24632         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
24633         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
24634         decl_start_label): Likewise.
24635         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
24636         operand_subword, change_address_1, make_safe_from): Likewise.
24637         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
24638         stabilize, force_not_mem): Likewise.
24639         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
24640         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
24641         * expr.c (convert_move, convert_modes, emit_block_move,
24642         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
24643         emit_move_insn_1, expand_assignment, store_expr,
24644         store_constructor_field, store_constructor, store_field,
24645         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
24646         Likewise.
24647         * final.c (cleanup_subreg_operands, alter_subreg,
24648         get_mem_expr_from_op): Likewise.
24649         * flow.c (notice_stack_pointer_modification_1,
24650         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
24651         Likewise.
24652         * function.c (mark_temp_addr_taken, preserve_temp_slots,
24653         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
24654         optimize_bit_field, flush_addressof, purge_addressof_1,
24655         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
24656         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
24657         keep_stack_depressed): Likewise.
24658         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
24659         noce_process_if_block, find_memory): Likewise.
24660         * integrate.c (subst_constants, allocate_initial_values): Likewise.
24661         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
24662         update_equiv_regs): Likewise.
24663         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
24664         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
24665         * optabs.c (expand_abs, emit_unop_insn): Likewise.
24666         * passes.c (rest_of_handle_final): Likewise.
24667         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
24668         move2add_note_store): Likewise.
24669         * ra-build.c (detect_remat_webs): Likewise.
24670         * ra-debug.c (dump_static_insn_cost): Likewise.
24671         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
24672         * recog.c (validate_change, apply_change_group, cancel_changes,
24673         validate_replace_rtx_1, general_operand, register_operand,
24674         nonmemory_operand, push_operand, pop_operand, memory_operand,
24675         indirect_operand, asm_operand_ok, offsettable_memref_p,
24676         offsettable_nonstrict_memref_p, constrain_operands,
24677         store_data_bypass_p): Likewise.
24678         * reg-stack.c (subst_stack_regs_pat): Likewise.
24679         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
24680         copy_cost, reg_scan_mark_refs): Likewise.
24681         * regmove.c (optimize_reg_copy_3, stack_memref_p,
24682         combine_stack_adjustments_for_block): Likewise.
24683         * regrename.c (copyprop_hardreg_forward_1): Likewise.
24684         * reload.c (can_reload_into, push_reload, decompose, immune_p,
24685         find_reloads, find_reloads_address, find_reloads_address_1,
24686         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
24687         find_equiv_reg): Likewise.
24688         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
24689         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
24690         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
24691         delete_address_reloads): Likewise.
24692         * resource.c (mark_referenced_resources): Likewise.
24693         * rtlanal.c (get_jump_table_offset, count_occurrences,
24694         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
24695         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
24696         num_sign_bit_copies1): Likewise.
24697         * rtlhooks.c (gen_lowpart_general): Likewise.
24698         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
24699         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
24700         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
24701         sdbout_global_decl): Likewise.
24702         * simplify-rtx.c (simplify_subreg): Likewise.
24703         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
24704         expand_anon_union_decl, expand_end_case_type): Likewise.
24705         * unroll.c (calculate_giv_inc): Likewise.
24706         * var-tracking.c (stack_adjust_offset_pre_post,
24707         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
24708         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
24709         vt_add_function_parameters): Likewise.
24710         * varasm.c (make_var_volatile, notice_global_symbol,
24711         assemble_external, decode_addr_const, mark_weak,
24712         default_encode_section_info): Likewise.
24713
24714 2004-07-01  Steven Bosscher  <stevenb@suse.de>
24715
24716         * stmt.c (check_seenlabel): Remove.
24717         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
24718
24719 2004-07-01  Richard Henderson  <rth@redhat.com>
24720
24721         * function.h (struct function): Remove x_function_call_count.
24722         (function_call_count): Remove.
24723         * calls.c (expand_call): Don't set it.
24724         * integrate.c (copy_rtx_and_substitute): Likewise.
24725
24726         * function.h (struct function): Remove x_cleanup_label.
24727         (cleanup_label): Remove.
24728         * stmt.c (expand_value_return): Don't use it.
24729         * function.c (free_after_compilation): Don't set it.
24730         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
24731         * cfgexpand.c (tree_expand_cfg): Update call.
24732         * tree.h (expand_function_start): Update decl.
24733
24734 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
24735
24736         PR c/1027
24737         * c-lang.c (c_initialize_diagnostics): Move from here ...
24738         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
24739         (c_tree_printer): Use pretty-printer to format %T.
24740         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
24741         before '*' if not C++.
24742         (pp_c_direct_abstract_declarator): Don't try to print array upper
24743         bound for flexible array members.
24744         * c-tree.h: Include "diagnostic.h".
24745         (c_initialize_diagnostics): Declare.
24746         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
24747         * c-format.c (format_type_warning): New function.  Improve
24748         diagnostics for incorrect format argument types.
24749         (check_format_types): Use it.  Add two parameters.  Use the
24750         TYPE_MAIN_VARIANT of wanted_type.
24751         (check_format_info_main): Pass new parameters to
24752         check_format_types.
24753         (struct format_wanted_type): Update comment.
24754
24755 2004-07-01  Nick Clifton  <nickc@redhat.com>
24756
24757         * target.h (struct gcc_target): Add new field to struct cxx:
24758         import_export_class.
24759         * target-def.h (TARGET_CXX): Initialise the new field.
24760         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
24761         the new field.
24762         * doc/tm.texi: Document the new target hook.
24763
24764 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
24765
24766         * builtins.c (fold_builtin_classify): Fix typo.
24767
24768 2004-07-01  Richard Henderson  <rth@redhat.com>
24769
24770         * function.c (identify_blocks, identify_blocks_1): Remove.
24771         * function.h (identify_blocks): Remove.
24772         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
24773
24774 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
24775
24776         * builtins.c (fold_builtin_classify): New.
24777         (fold_builtin_unordered_cmp): Fix commentary.
24778         (fold_builtin): Use it.
24779         * builtins.def: Define builtins for isnan,
24780         isnanf, isnanl, finite, finitef, finitel,
24781         isinf, isinff, isinfl.
24782
24783 2004-07-01  Richard Henderson  <rth@redhat.com>
24784
24785         * function.h (struct function): Remove dont_emit_block_notes.
24786         * gimple-low.c (lower_function_body): Don't set it.
24787         * cfgexpand.c (expand_block): Don't check it.
24788         * cfglayout.c (insn_locators_initialize): Likewise.
24789         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
24790         * passes.c (rest_of_compilation): Likewise.
24791         * stmt.c (expand_start_bindings_and_block): Likewise.
24792         (expand_end_bindings): Likewise.
24793
24794 2004-07-01  Richard Henderson  <rth@redhat.com>
24795
24796         * cgraph.h (cgraph_build_static_cdtor): Declare.
24797         * cgraphunit.c (cgraph_build_static_cdtor): New.
24798         * c-objc-common.c (build_cdtor): Use it.
24799         * coverage.c (create_coverage): Likewise.
24800         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
24801         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
24802
24803 See ChangeLog.11 for earlier changes.