OSDN Git Service

PR target/18230
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-11-13  James A. Morrison  <phython@gcc.gnu.org>
2             Eric Botcazou  <ebotcazou@libertysurf.fr>
3
4         PR target/18230
5         * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector
6         patterns.
7         * config/sparc/sparc.md (V64I): New macro for 64-bit modes.
8         (V32I): New macro for 32-bit modes.
9         (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64,
10         iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64,
11         xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter,
12         xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32,
13         one_cmpldi_sp64): Use V64I instead of DI.
14         (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si,
15         xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI.
16         (addv2si3, addv4hi3, addv2hi3): Remove % modifier.
17         (nandv64i_vis, nandv32i_vis): New patterns.
18
19 2004-11-12  Mike Stump  <mrs@apple.com>
20
21         * Makefile.in: Add html support.
22         * java/Make-lang.in: Likewise.
23         * fortran/Make-lang.in: Likewise.
24         * treelang/Make-lang.in: Likewise.
25         * doc/install.texi: Likewise.
26         * doc/makefile.texi: Likewise.
27         * doc/sourcebuild.texi: Likewise.
28         
29 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
30
31         * tree-ssa-loop-manip.c: Fix a comment typo.
32
33 2004-11-12  Mike Stump  <mrs@apple.com>
34
35         * doc/cppinternals.texi (Index): Fix html generation with makeinfo by
36         renaming this node to Concept Index.
37         * doc/gccint.texi (Index): Likewise.  Also minor formatting tweaks
38         to more closely match gcc.texi.
39
40 2004-11-12  Jeff Law  <law@redhat.com>
41
42         * tree-cfg.c (hashtab.h): Include.
43         (struct edge_to_case_leader_elt): New structure.
44         (edge_to_case_leader): New.
45         (edge_to_case_leader_hash): New hashtable hasing function.
46         (edge_to_case_leader_eq): New hashtable equality function.
47         (record_switch_edge): New function.
48         (get_case_leader_for_edge, get_case_leader_for_edge): New functions.
49         (make_switch_expr_edges): Build the edge-to-case-leader
50         hash table.  Tear down the hash table when we're done.
51         (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of
52         CASE_LABEL.
53         (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes.
54         (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update
55         to use new concept of case leaders to reduce overhead of
56         redirecting outgoing edges from switch statements.
57         * tree.c (get_case_label): New function.
58         * tree.h (CASE_LABEL): Define in terms of get_case_label.
59         (CASE_LEADER_OR_LABEL): Define.
60
61 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
62
63         * varasm.c (output_addressed_constants): For CONST_DECLs,
64         output the initializer if present.
65
66 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
67
68         * config/rs6000/darwin.h: Fix confusing typo in comment.
69
70 2004-11-12  Devang Patel  <dpatel@apple.com>
71
72         * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.
73         
74 2004-11-12  Devang Patel  <dpatel@apple.com>
75
76         * tree-if-conv.c (clean_predicate_lists): Use loop header
77         and latch directly.
78         
79 2004-11-12  Richard Henderson  <rth@redhat.com>
80
81         PR 17778
82         * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New.
83         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
84         (TARGET_96_ROUND_53_LONG_DOUBLE): New.
85         * config/i386/i386-modes.def (XF): Use it.
86
87 2004-11-11  Geoffrey Keating  <geoffk@apple.com>
88
89         * Makefile.in (macro_list): Use move-if-change to avoid spurious
90         rebuilds.
91
92 2004-11-12  Mark Mitchell  <mark@codesourcery.com>
93
94         PR c++/18416
95         * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL
96         when deciding whether to pass a variable to
97         cgraph_varpool_finalize_decl or assemble_variable.
98         * toplev.c (check_global_declarations): Do not clear DECL_RTL. 
99
100 2004-11-12  Kazu Hirata  <kazu@cs.umass.edu>
101
102         * tree-vectorizer.c: Fix a comment typo.
103
104 2004-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
105
106         * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref.
107
108 2004-11-12  Diego Novillo  <dnovillo@redhat.com>
109
110         * tree-scalar-evolution.c (analyzable_condition): Remove
111         superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs.
112
113 2004-11-12  Ralf Corsepius  <ralf.corsepius@rtems.org>
114
115         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
116         Remove m505/roe multilib variant.
117
118 2004-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
119
120         * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
121         to load from the stack.
122
123 2004-11-12  Richard Henderson  <rth@redhat.com>
124
125         * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI.
126         (exact_log2): Rename from exact_log2_wide, use CTZ_HWI.
127         * toplev.h (FL2T__): Remove.
128         (CLZ_HWI): Rename from FL2T_CLZ__.
129         (CTZ_HWI): New.
130         (floor_log2): Simplify.
131         (exact_log2): New.
132
133 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
134
135         * tree-data-ref.c (analyze_subscript_affine_affine): Correctly
136         compute the first overlapping iterations.
137
138 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
139
140         PR middle-end/18005
141         * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure 
142         that arguments of EXACT_DIV_EXPR are INTEGER_CST.
143
144 2004-11-12  Steven Bosscher  <stevenb@suse.de>
145
146         PR tree-optimization/18419
147         * tree-ssa.c (walk_use_def_chains_1): Make the visited map a
148         pointer set instead of a bitmap.
149         (walk_use_def_chains): Create, pass and clean up that pointer_set.
150
151         * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited
152         field an sbitmap.
153         (init_alias_info): Allocate and zero it here.
154         (delete_alias_info): Delete it here.
155         (collect_points_to_info_for): Use it.
156
157 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
158
159         * alias.c (record_alias_subset, addr_side_effect_eval):
160         Make them static.
161         * alias.h: Remove the prototype for record_alias_subset.
162         * expr.h: Remove the commented-out prototype for
163         record_alias_subset.
164         * rtl.h: Remove the prototype for addr_side_effect_eval.
165
166         * cfglayout.c (choose_inner_scope): Make it static.
167         * rtl.h: Remove the corresponding prototype.
168
169         * cfgloopmanip.c (update_single_exits_after_duplication,
170         unloop): Make them static.
171         * cfgloop.h: Remove the corresponding prototypes.
172
173         * c-typeck.c (c_size_in_bytes, record_maybe_used_decl):
174         Make them static.
175         * c-tree.h: Remove the corresponding prototypes.
176
177         * explow.c (round_push): Make it static.
178         * expr.h: Remove the corresponding prototype.
179
180         * varasm.c (get_named_section_flags, decl_tls_model): Make
181         them static.
182         * output.h: Remove the prototype for get_named_section_flags.
183         * tree.h: Remove the prototype for decl_tls_model.
184
185 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
186
187         * function.c (expand_function_end): Remove an "if" statement
188         that always triggers.
189         * stmt.c (expand_null_return_1): Likewise.
190
191 2004-11-11  James E. Wilson  <wilson@specifixinc.com>
192
193         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode.
194         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED,
195         CLASS_MAX_NREGS): Likewise.
196
197 2004-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
198
199         PR tree-optimization/17742
200         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
201         MINUS_EXPR correctly.
202
203 2004-11-11  Sebastian Pop  <pop@cri.ensmp.fr>
204
205         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): 
206         Give up as soon as the evolution is known not computable.
207
208 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
209
210         PR target/16457
211         * config/rs6000/rs6000.c (mask64_2_operand): Stub to call
212         mask64_1or2_operand.
213         (mask64_1or2_operand): Broken out of mask64_2_operand, add flag
214         to spot rlwinm opportunities.
215         (and64_2_operand): Use mask_1or2_operand.
216         * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible.
217
218 2004-11-11  Dorit Naishlos  <dorit@il.ibm.com>
219
220         * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis.
221         (vect_update_ivs_after_vectorizer): Update function documentation.
222         Avoid quadratic behavior and direct write to PHI_ARG_DEF.
223
224 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
225
226         * config/arm/arm.c: Fix a comment typo.
227
228 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
229
230         * bitmap.h (nBITMAP_WORD_BITS): Remove.
231         (BITMAP_WORD_BITS): Force unsigned by use of 1u.
232         (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove
233         unnecessary casts.
234         (bitmap_first_set_bit): Return unsigned, use ctzl.
235         (bitmap_last_set_bit): Remove.
236         * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator
237         unsigned.
238         (bitmap_first_set_bit): Return unsigned, require non-empty bitmap,
239         remove special case code for two word elements.
240         (bitmap_last_set_bit): Remove.
241         * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of
242         bitmap_first_set_bit with bitmap_empty_p.
243         * tree-outof-ssa.c (analyze_edges_for_bb): Likewise.
244         * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than
245         bitmap_last_bit_set.
246
247 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
248
249         PR target/16796
250         * config/rs6000/rs6000.md: Add DF & SF reg move peepholes.
251
252         PR target/16458
253         * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an
254         unsigned equality compare when we know the operands are unsigned.
255
256 2004-11-10  Peter S. Mazinger  <ps.m@gmx.net>
257
258         * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define
259         __PIC__ and __pic__ only if TARGET_ABICALLS.
260         (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__.
261         (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass
262         -KPIC only if not -mno-abicalls.
263
264         * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h
265         * config/sparc/linux.h, config/sparc/linux64.h
266         (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic.
267
268         * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__.
269         * config/pa/pa/linux.h (CPP_SPEC): Likewise.
270         * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise.
271         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise.
272
273 2004-11-11  Paul Brook  <paul@codesourcery.com>
274
275         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC
276         register if current_function_uses_pic_offset_table is set.
277
278 2004-11-10  David Edelsohn  <edelsohn@gnu.org>
279
280         * config/rs6000/rs6000.md (define_attr "type"): Add two and three.
281         Change multi-instruction sequences to new attribute.
282         * config/rs6000/{40x.md,440.md,603.md,6xx.md,
283         7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md,
284         rios1.md,rios2.md,rs64.md}: Add descriptions for two and three.
285
286 2004-11-10  Daniel Berlin  <dberlin@dberlin.org>
287
288         * tree-data-ref.c (build_classic_dist_vector): If either loop
289         is outside of the nest we asked about, the dependence can't
290         matter.
291         (build_classic_dir_vector): Ditto.
292
293 2004-11-10  Zdenek Dvorak  <dvorakz@suse.cz>
294
295         * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
296         right order.
297         (force_var_cost): Determine cost of addition and multiplication more
298         precisely.
299         (get_computation_cost_at): Add cost for computing address elements to
300         the final cost.
301
302         * fold-const.c (fold): Attempt to use ptr_difference_const whenever
303         one of the arguments of MINUS_EXPR is an address.
304         (split_address_to_core_and_offset): New function.
305         (ptr_difference_const): Handle case when one of the operands is a
306         pointer.
307         * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
308         (ptr_difference_cost): Pass addresses instead of objects to
309         ptr_difference_const.
310
311 2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>
312
313         * tree.c (tree_check_failed): Emit general error if the list of
314         node types is empty.
315
316 2004-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
317
318         * config/sparc/sparc.c (function_arg_union_value): New 'slotno'
319         argument.  When the union is passed in the 6th slot, build a
320         PARALLEL with only one element.
321         (function_arg): Adjust call to function_arg_union_value.
322         (function_value): Likewise.
323
324 2004-11-10  Fariborz Jahanian <fjahanian@apple.com>
325
326         PR tree-optimization/17892
327         * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for
328         MINUS_EXPR operator.
329
330 2004-11-10  James A. Morrison  <phython@gcc.gnu.org>
331
332         PR target/18230
333         config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute.
334         (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns.
335
336 2004-11-10  Steven Bosscher  <stevenb@suse.de>
337
338         * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New.
339         (struct basic_block_def): Remove local_set and cond_local_set
340         fields.  Update comment for global_live_at_start.
341         * flow.c (calculate_global_regs_live): Allocate local_sets and
342         cond_local_sets here as arrays of bitmaps previously stored in
343         bb->local_set and bb->cond_local_set.  Use xmalloc instead of
344         obstack allocated bitmaps.
345
346 2004-11-09  H.J. Lu  <hongjiu.lu@intel.com>
347
348         PR target/18380
349         * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it
350         hidden.
351
352         * unwind-dw2.c (_Unwind_FindTableEntry): Removed.
353
354 2004-11-09  Jeff Law  <law@redhat.com>
355
356         * cfganal.c (flow_dfs_compute_reverse_execute): Accept new
357         argument holding last unvisited block.  Start search for
358         unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK.
359         (connect_infinite_loops_to_exit): Supply last unvisited block
360         to flow_dfs_compute_reverse_execute.
361
362 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
363
364         * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500
365         doubles.
366         (floatunssidf2): Same.
367         (floatsidf2): Same.
368         ("extendsfdf2"): New expander.
369         (*extendsfdf2_fpr): Rename.
370         (*truncdfsf2_fpr): Same.
371         (*negdf2_fpr): Same.
372         (*absdf2_fpr): Same.
373         (*nabsdf2_fpr): Same.
374         (*adddf3_fpr): Same.
375         (*subdf3_fpr): Same.
376         (*muldf3_fpr): Same.
377         (*divdf3_fpr): Same.
378
379         * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment.
380         ("spe_fix_truncdfsi2"): Same.
381         (spe_floatunssidf2): Same.
382         (spe_floatsidf2): Same.
383
384 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
385
386         PR c/18322
387         * c-common.c (fname_decl): Don't use line number of decl in
388         diagnostic.
389
390 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
391
392         * config/s390/s390-protos.h (s390_pool_operand): Remove.
393         * config/s390/s390.c (s390_pool_operand): Likewise.
394         (s390_extra_constraint_str): Handle 'B' constraints.
395         * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints.
396         * config/s390/s390.md: Document 'B' constraints.
397         ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of
398         s390_pool_operand to prevent insns with two literal pool
399         references.  Make pattern commutative.
400         ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use
401         'B' constraint instead of s390_pool_operand.
402
403 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
404
405         * tree-cfg.c (create_bb): Remove unnecessary memset.
406
407 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
408
409         * tree-ssa-threadupdate.c (copy_phis_to_block): Remove.
410         (thread_block): Call flush_pending_stmt instead of
411         copy_phis_to_block.
412
413 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
414
415         * loop-iv.c (iv_number_of_iterations): Make it static.
416         * cfgloop.h: Remove the corresponding prototype.
417
418 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
419
420         * function.c (combine_temp_slots, assign_parms,
421         expand_pending_sizes): Make them static.
422         * tree.h: Remove the corresponding prototypes.
423
424 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
425
426         * emit-rtl.c (copy_most_rtx): Remove.
427         * rtl.h: Remove the corresponding prototype.
428
429 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
430
431         * cfgloop.c (flow_loops_update): Remove.
432         * cfgloop.h: Remove the corresponding prototype.
433
434 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
435
436         * conflict.c (mark_reg, conflict_graph_compute): Remove.
437         * basic-block.h: Remove the prototype for
438         conflict_graph_compute.
439
440 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
441
442         * tree-if-conv.c (add_to_dst_predicate_list): Change the
443         second argument to basic_block.
444         (tree_if_convert_cond_expr): Update call sites.
445
446 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
447
448         * fold-const.c (pedantic_non_lvalue): Make it static.
449         * tree.h: Remove the corresponding prototype.
450
451 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
452
453         * optabs.c (prepare_operand): Make it static.
454         * optabs.h: Remove the corresponding prototype.
455
456 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
457
458         * reload1.c (reloads_conflict, gen_reload): Make them static.
459         * reload.h: Remove the corresponding prototypes.
460
461 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
462
463         * reload.c (refers_to_mem_for_reload_p,
464         refers_to_regno_for_reload_p): Make them static.
465         * reload.h: Remove the corresponding prototypes.
466
467 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
468             Eric Botcazou  <ebotcazou@libertysurf.fr>
469
470         PR target/18230
471         * doc/md.texi (SPARC constraints): Document 'Y' constraint.
472         * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
473         * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
474         (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
475         (fp_zero_operand): Accept MODE_VECTOR_INT modes.
476         (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
477         (sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
478         (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
479         MODE_VECTOR_INT modes.
480         (sparc_extra_constraint_check): Add new constraint 'Y'.
481         * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
482         * config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
483         (V64): New mode macro for 64-bit modes.
484         (movsf): Use V32 for mode instead of SF.
485         (movsf_insn_vis): Use V32 for mode instead of SF.  Add 'Y' constraint
486         alongside 'G' constraint.
487         (movdf): Use V64 for mode instead of DF.
488         (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
489         of DF.  Add 'Y' constraint alongside 'G' constraint.
490         (multi-isn and misaligned mems DFmode splitters): Use V64 for mode
491         instead of DF.
492
493 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
494
495         * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for
496         integer NEG and ABS.
497         * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute.
498         ("*negdi2_31"): Reimplement using a splitter.
499         ("*negdi2_cc", "*negdi2_cconly"): New insns.
500         ("*negdi2_sign", "*negdi2_sign_cc"): Likewise.
501         ("*negsi2_cc", "*negsi2_cconly"): Likewise.
502         ("*negdf2_cc", "*negdf2_cconly"): Likewise.
503         ("*negsf2_cc", "*negsf2_cconly"): Likewise.
504         ("*absdi2_cc", "*absdi2_cconly"): New insns.
505         ("*absdi2_sign", "*absdi2_sign_cc"): Likewise.
506         ("*abssi2_cc", "*abssi2_cconly"): Likewise.
507         ("*absdf2_cc", "*absdf2_cconly"): Likewise.
508         ("*abssf2_cc", "*abssf2_cconly"): Likewise.
509         ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns.
510         ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise.
511         ("*negabssi2_cc", "*negabssi2_cconly"): Likewise.
512         ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise.
513         ("*negabssf2_cc", "*negabssf2_cconly"): Likewise.
514
515 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
516
517         * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
518         when eliminating an UNSPEC_CMPINT.
519         (s390_secondary_input_reload_class): Fix test for CC register reload.
520         (s390_secondary_output_reload_class): Likewise.
521         (s390_expand_cmpmem): Swap operands.  Use gen_cmpint.
522         * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
523         ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
524         insn patterns with splitters.
525
526 2004-11-09  David Edelsohn  <edelsohn@gnu.org>
527
528         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU.
529         * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns.
530
531 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
532
533         * tree-phinodes.c (phi_reverse): New.
534         * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
535         Use it.
536         * tree-flow.h: Add a prototype for phi_reverse.
537
538 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
539
540         * tree-ssa-loop-ivopts.c: Fix a comment typo.
541
542 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
543
544         PR pch/14940
545         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__
546         definitions.
547
548 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
549
550         * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"
551         instead of "arg" in diagnostics.
552
553 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
554
555         * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
556         c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
557         gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
558         tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
559         config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
560         config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
561         config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
562         config/iq2000/iq2000.c, config/m32r/m32r.c,
563         config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
564         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
565         config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
566         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
567         config/sh/symbian.c, config/stormy16/stormy16.c,
568         config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
569         and %> as appropriate.  Use %' as apostrophe in diagnostics where
570         applicable.  Use %< and %> in place of '' quotes where applicable.
571         Use %qs in place of %<%s%>.  Consistently quote __builtin function
572         names.
573
574 2004-11-09  Hans-Peter Nilsson  <hp@bitrange.com>
575
576         * gdbinit.in (pbb, pbm): New macros.
577
578 2004-11-08 Jeff Law  <law@redhat.com>
579
580         * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than
581         implementing it inline.
582
583         * cfganal.c (find_edge): Search pred->succs or succ->preds,
584         whichever is shorter.
585
586 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
587
588         * passes.c (rest_of_handle_jump): Remove dead code.
589
590 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
591
592         * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to
593         the last used element in the worklist.
594
595 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
596
597         * tree-inline.c (remap_save_expr): Make it static.
598         * tree-inline.h: Remove the corresponding prototype.
599
600 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
601
602         * tree-ssa-loop-niter.c (upper_bound_in_type,
603         lower_bound_in_type): Make them static.
604         * tree.h: Remove the corresponding prototypes.
605
606 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
607
608         * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them
609         static.
610         * tree-ssa-live.h: Remove the corresponding prototypes.
611
612 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
613
614         * tree-if-conv.c (tree_if_conversion): Make it static.
615         * tree-flow.h: Remove the corresponding prototype.
616
617 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
618
619         * tree-ssa-operands.c (build_ssa_operands): Make it static.
620         * tree-flow.h: Remove the corresponding prototype.
621
622 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
623
624         PR tree-opt/18299
625         * tree-inline.c (copy_body_r): Change "t = t" to empty
626         statement instead of "t".
627
628 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
629
630         * modulo-sched.c (create_partial_schedule,
631         free_partial_schedule, reset_partial_schedule,
632         ps_add_node_check_conflicts, rotate_partial_schedule): Make
633         them static.
634
635 2004-11-08  Richard Henderson  <rth@redhat.com>
636
637         * expmed.c (extract_force_align_mem_bit_field): Correct handling at
638         the end of a page.
639
640 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
641
642         * sched-deps.c (add_insn_mem_dependence): Make it static.
643         * sched-int.h: Remove the corresponding prototypes.
644
645 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
646
647         * flow.c (allocate_bb_life_data): Make it static.
648         * basic-block.h: Remove the corresponding prototype.
649
650 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
651
652         * calls.c (split_complex_values, split_complex_types): Make
653         them static.
654         * expr.h: Remove the corresponding prototypes.
655
656 2004-11-08  Richard Earnshaw  <rearnsha@arm.com>
657
658         * arm.c (arm_handle_notshared_attribute): Wrap declaration and use
659         with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES.
660
661 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
662
663         * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
664         statements that always trigger.
665
666 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
667
668         * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
669         tree-scalar-evolution.c, tree-ssa-loop-im.c,
670         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
671         tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
672         appropriate.
673
674 2004-11-08  Ben Elliston  <bje@au.ibm.com>
675
676         * cgraph.h (cgraph_calls_p): Remove.
677         * cgraph.c (cgraph_calls_p): Likewise.
678
679         * varray.h (varray_copy): Remove.
680         * varray.c (varray_copy): Likewise.
681
682 2004-11-07  Andrew Pinski  <pinskia@physics.uc.edu>
683
684         PR target/18269
685         * config/darwin.c (machopic_indirect_data_reference):
686         Call gen_macho_high and gen_macho_low instead of
687         checking the mode and calling gen_macho_high_di directly.
688         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
689         * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
690         to darwin.md.
691         (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
692         load_macho_picbase, macho_low, macho_high): Removed.
693         (builtin_setjmp_receiver): Call gen_macho_high and
694         gen_macho_low instead of checking the mode and calling
695         gen_macho_high_di directly.
696         * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
697         (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
698         Moved from rs6000.md.
699         (macho_high): New expander.
700         (macho_high_si): Renamed version of macho_high from rs6000.md.
701         (macho_low): New expander.
702         (macho_low_si): Renamed version of macho_low from rs6000.md.
703         (load_macho_picbase): New expander.
704         (load_macho_picbase_si): Renamed version of load_macho_picbase
705         from rs6000.md.
706         (macho_correct_pic): New expander.
707         (macho_correct_pic_si): Renamed version of macho_correct_pic
708         from rs6000.md.
709
710 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
711
712         * c-decl.c (finish_struct): Use complete sentences for diagnostic
713         for structures or unions with no members or named members.
714
715 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
716
717         * c-typeck.c (build_unary_op): Replace unreachable diagnostic for
718         taking address of bit-field by assertion.
719
720 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
721
722         * config/s390/s390.md (attribute "op_type"): Default to "NN".
723         (attribute "atype"): Default to "agen".
724         (attribute "length"): Default to 6.
725         (define_asm_attibutes): Remove.
726         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
727         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf",
728         "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"):
729         Do not set type attribute to "cs" where already default.
730         ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm",
731         "*negdi2_31"):
732         Do not set type attribute to "other" where already default.
733         ("movti", "*movdi_64", "*movdi_31", "*movdf_31",
734         "*strlendi", "*strlensi",
735         "*movmem_long_64", "*movmem_long_31",
736         "*clrmem_long_64", "*clrmem_long_31",
737         "*cmpmem_long_64", "*cmpmem_long_31",
738         "*cmpint_si", "*cmpint_di",
739         "addti3", "*adddi3_31z", "*adddi3_31",
740         "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31",
741         "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg",
742         "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm",
743         "*pool_entry", "pool_align", "pool_section_start",
744         "pool_section_end", "main_pool", "reload_base_31", "pool"):
745         Do not set op_type attribute to "NN" where already default.
746         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
747         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
748         "fix_truncdfsi2_ibm", "floatsidf2_ibm"):
749         Do not set atype attribute to "agen" where already default.
750         ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type.
751
752 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
753
754         * config/mips/t-iris6 (tp-bit.c): Fix target filename.
755
756 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
757
758         PR target/16830
759         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the
760         R3000 and R4000 macros on IRIX.
761
762 2004-11-06  Andreas Schwab  <schwab@suse.de>
763
764         PR target/16286
765         * config/rs6000/altivec.h: Replace bool by __bool and pixel by
766         __pixel.
767
768 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
769
770         * tree-ssa-copyrename.c (rename_ssa_copies): Make it static.
771
772 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
773
774         * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
775         matches no insns already matched by other reservations.
776         * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
777         matches no insns already matched by other reservations.
778         ("x_ss"): Remove, replace by ...
779         ("x_cs"): ... this new reservation.  Check type instead of op_type.
780         Update bypasses to use x_cs instead of x_ss.
781         ("x_nn"): Remove, replace by ...
782         ("x_other"): ... this new reservation.  Check type instead of op_type.
783         Add x_other and x_branch to bypasses.
784         ("x_vs"): New reservation.
785         * config/s390/s390.md (attribute "type"): Default according to op_type.
786         ("*execute"): Set type to "cs".
787
788 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
789
790         * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR
791         if we are in GIMPLE.
792
793 2004-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
794
795         PR rtl-optimization/17933
796         * rtlanal.c (dead_or_set_regno_p): Break out common code to...
797         (covers_regno_p): New function.  Handle SETs of PARALLEL,
798         and defer the rest to...
799         (covers_regno_no_parallel_p): New function.
800
801 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
802
803         * config/sparc/sparc.c (function_arg_record_value_1): Skip
804         fields with zero length.
805         (function_arg_record_value_2): Likewise.
806         (function_arg_record_value_3): Use smallest_mode_for_size
807         instead of mode_for_size.
808         (function_arg_union_value): Return naked register for unions
809         with zero length.
810
811 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
812
813         * config/sparc/sparc.c (scan_record_type): Handle vector types.
814         (function_arg_slotno): Handle vector types specially.
815         (function_arg_record_value_1): Split fields with vector type and
816         BLKmode into their subparts.
817         (function_arg_record_value_2): Likewise.  Be prepared to handle
818         more than 2 registers per field.
819         (function_arg_union_value): Increment regno inside the loop.
820         (function_arg_vector_value): New function.
821         (function_arg): Use it to split fields with vector type and
822         BLKmode into their subparts and build a PARALLEL.  Treat
823         other vector types like floats.
824         (function_value): Likewise.
825         (sparc_pass_by_reference): Handle vector types.
826         (sparc_return_in_memory): Likewise.
827
828 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
829
830         * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"
831         statement that never triggers.
832
833 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
834
835         * config/s390/2064.md ("z_o2", "z_o3"): Remove.
836         * config/s390/2084.md ("x_o2", "x_o3"): Remove.
837         ("x_fdivd"): Use also for fsqrtd type.
838         ("x_fdivs"): Use also for fsqrts type.
839         * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types.
840         ("fix_truncdfsi2_ieee"): Set type to "ftoi".
841         ("fix_truncdfsi2_ibm"): Set type to "other".
842         ("floatdidf2", "floatdisf2"): Do not clobber CC.
843         ("floatsidf2", "floatsidf2_ieee"): Likewise.
844         ("floatsisf2", "floatsisf2_ieee"): Likewise.
845         ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand".
846         ("truncdfsf2_ibm"): Only allow "nonimmediate_operand".  Use LER
847         instead of LRER.
848         ("extendsfdf2_ibm"): Do not set atype.  Set type to "floads".
849         ("sqrtdf2"): Set type to "fsqrtd".
850         ("sqrtsf2"): Set type to "fsqrts".
851
852 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
853
854         * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a
855         pointer to the last PHI node in the new PHI chain.
856
857 2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
858
859         * config/sh/sh.c (prepare_move_operands): Emit a use of r12
860         for non-PIC TLS_MODEL_INITIAL_EXEC case.
861
862 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
863
864         * expmed.c: Fix a comment typo.
865
866 2004-11-06  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
867
868         PR target/18106
869         * config/i386/cygming.h
870         [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
871
872 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
873
874         * config/sh/sh4a.md: Fix copyright.
875
876 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
877
878         * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC
879         with GCC.
880
881 2004-11-05  David Edelsohn  <edelsohn@gnu.org>
882
883         * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf
884         when carry not used.  Suggested by Torbjorn Granlund.
885
886         * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg
887         operand[1] unnecessarily.  Suggested by Eric Christopher.
888         (rs6000_adjust_cost): Increase latency of store to wider load.
889         (rs6000_rtx_costs): mulli only allows 16-bit constants.
890
891 2004-11-05  Stan Shebs  <shebs@apple.com>
892
893         * config/rs6000/rs6000.c (machopic_output_stub): Output
894         ldu instead of lwzu for 64-bit stubs.
895
896 2004-11-05  Richard Henderson  <rth@redhat.com>
897
898         * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case
899         size 2 with BWX.
900         (alpha_expand_unaligned_store): Likewise.
901
902 2004-11-05  Richard Henderson  <rth@redhat.com>
903
904         * expmed.c (extract_force_align_mem_bit_field): New.
905         (extract_split_bit_field): Call it.
906
907 2004-11-05  Richard Henderson  <rth@redhat.com>
908
909         * ia64.md (UNSPEC_SHRP): New.
910         (dshift_count_operand): New.
911         (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
912         * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
913
914 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
915
916         * c-typeck.c (output_init_element): Return early if value is
917         error_mark_node.
918
919 2004-11-05  James E Wilson  <wilson@specifixinc.com>
920
921         * invoke.texi (-fno-guess-branch-probability): Rewrite.
922
923         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
924         1 to UNSPEC_GR_SPILL.
925
926 2004-11-05  Andreas Krebbel  <krebbel1@de.ibm.com>
927
928         * config/s390/s390.c (s390_fixed_condition_code_regs): New function.
929         (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined.
930
931 2004-11-05  Nathan Sidwell  <nathan@codesourcery.com>
932
933         * bitmap.h (enum bitmap_bits): Remove.
934         (bitmap_operation): Remove.
935         (bitmap_and, bitmap_and_into, bitmap_and_compl,
936         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
937         bitmap_xor_into): Prototype.
938         * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New.
939         (bitmap_operation): Remove.
940         (bitmap_and, bitmap_and_into, bitmap_and_compl,
941         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
942         bitmap_xor_into): New.
943         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust.
944
945         PR tree-optimization/18307
946         * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST
947         and ORIG being the same node.
948
949 2004-11-04  Geoffrey Keating  <geoffk@apple.com>
950
951         * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
952         (install-mkheaders): Install the version built for the
953         host, not for the build machine.
954         * configure.ac: Always run fixincludes.
955         (all_outputs): Remove mkheaders.
956         * configure: Regenerate.
957         * fixinc.in: Move to fixincludes/.
958         * mkfixinc.sh: Likewise.
959         * mkheaders.in: Likewise.
960         * README-fixinc: Likewise.
961
962 2004-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
963
964         PR target/18263
965         * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the
966         equivalent on the A4.
967
968 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
969
970         * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi,
971         doc/cppopts.texi, doc/extend.texi, doc/fragments.texi,
972         doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi,
973         doc/implement-c.texi, doc/install.texi, doc/invoke.texi,
974         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
975         doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi,
976         doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi,
977         doc/trouble.texi: Correct end-of-sentence markup and markup of
978         "etc.", "e.g." and "i.e.".  Use @code in various places where
979         appropriate.
980
981 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
982
983         * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi,
984         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi,
985         doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing
986         whitespace.
987
988 2004-11-04  Mark Mitchell  <mark@codesourcery.com>
989
990         * config/arm/arm.c (arm_handle_notshared_attribute): New function.
991         * doc/extend.texi: Document "notshared" attribute.
992
993 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
994
995         * tree-phinodes.c (make_phi_node): Make it static.
996         * tree.h: Remove the prototypes for make_phi_node.
997
998 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
999
1000         * stmt.c (expand_asm, expand_asm_operands): Make them static.
1001         * tree.h: Remove the prototypes for expand_asm and
1002         expand_asm_operands.
1003
1004 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1005
1006         * passes.c (rest_of_compilation): Make it static.
1007         * toplev.h: Remove the prototype for rest_of_compilation.
1008
1009 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1010
1011         * jump.c (cleanup_barriers): Use delete_insn instead of
1012         delete_barrier.
1013         (delete_barrier): Remove.
1014         * rtl.h: Remove the corresponding prototype.
1015
1016 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1017
1018         * expr.c (mostly_zero_p): Make it static.
1019         * tree.h: Remove the prototype for mostly_zeros_p.
1020
1021 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1022
1023         * cfgrtl.c (force_nonfallthru_and_redirect): Make it static.
1024
1025 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1026
1027         * builtins.c (expand_builtin_return_addr,
1028         expand_builtin_longjmp, expand_builtin_trap): Make them static.
1029         * expr.h: Remove the prototypes for expand_builtin_longjmp and
1030         expand_builtin_trap.
1031         * tree.h: Remove the prototype for expand_builtin_return_addr.
1032
1033 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1034
1035         * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
1036         * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
1037         with VAL being NULL.
1038
1039 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1040
1041         * cfghooks.c (delete_basic_block): Remove code to truncate
1042         edge vectors.
1043
1044 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
1045
1046         * flow.c (init_propagate_block_info): Change the type of i to
1047         unsigned.
1048
1049 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
1050
1051         PR tree-optimization/18184
1052         * c-typeck.c (comptypes): Do not treat pointers of different
1053         modes or alias-all flags as equivalent.
1054         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise.
1055
1056 2004-11-04  Joseph S. Myers  <joseph@codesourcery.com>
1057
1058         * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't
1059         reference specific C parser files in examples.
1060
1061 2004-11-04  Richard Sandiford  <rsandifo@redhat.com>
1062
1063         PR target/15342
1064         * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
1065         as OP_INOUT if the instruction is predicated.
1066
1067 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1068
1069         * bitmap.h: Fix a comment typo.  Follow spelling conventions.
1070         * tree-vectorizer.c: Fix a comment typo.
1071
1072 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
1073
1074         * sdbout.c (SDB_GENERATE_FAKE): Remove.
1075         (gen_fake_label): Don't use SDB_GENERATE_FAKE.
1076         * system.h: Poison SDB_GENERATE_FAKE.
1077         * doc/tm.texi (SDB_GENERATE_FAKE): Remove.
1078
1079 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
1080
1081         * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL.
1082
1083 2004-11-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1084
1085         PR other/18277
1086         * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert
1087         2004-10-29 patch
1088
1089 2004-11-04  Nathan Sidwell  <nathan@codesourcery.com>
1090
1091         * predict.c (propagate_freq): Make bitno unsigned. Move
1092         npredecessors update out of loop.
1093
1094         * bitmap.h (bitmap_iterator): Remove word_bit and bit
1095         fields. Rename others.
1096         (bmp_iter_common_next_1, bmp_iter_single_next_1,
1097         bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next,
1098         bmp_iter_and_not_next_1, bmp_iter_and_not_init,
1099         bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init,
1100         bmp_iter_and_next): Remove.
1101         (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init,
1102         bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl):
1103         New.
1104         (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP,
1105         EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust.
1106
1107         * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove.
1108         * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior,
1109         bitmap_and_into, bitmap_ior_into as appropriate.
1110         * except.c (remove_eh_handler): Likewise.
1111         * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise.
1112         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
1113         * tree-ssa-alias.c (merge_pointed_to_info): Likewise.
1114         * tree-ssa-live.h (live_merge_and_clear): Likewise.
1115         * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for):
1116         Likewise.
1117
1118         * bitmap.c (bitmap_print): Make bitno unsigned.
1119         * bt-load.c (clear_btr_from_live_range,
1120         btr_def_live_range): Likewise.
1121         * caller-save.c (save_call_clobbered_regs): Likewise.
1122         * cfganal.c (compute_dominance_frontiers_1): Likewise.
1123         * cfgcleanup.c (thread_jump): Likewise.
1124         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
1125         * conflict.c (conflict_graph_compute): Likewise.
1126         * ddg.c (add_deps_for_use): Likewise.
1127         * df.c (df_refs_update): Likewise.
1128         * except.c (remove_eh_handler): Likewise.
1129         * flow.c (verify_local_live_at_start, update_life_info,
1130         initialize_uninitialized_subregs, propagate_one_insn,
1131         free_propagate_block_info, propagate_block, find_use_as_address,
1132         reg_set_to_hard_reg_set): Likewise.
1133         * gcse.c (clear_modify_mem_tables): Likewise.
1134         * global.c (global_conflicts, build_insn_chain): Likewise.
1135         * ifcvt.c (dead_or_predicable): Likewise.
1136         * local-alloc.c (update_equiv_regs): Likewise.
1137         * loop.c (load_mems): Likewise.
1138         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs):
1139         Likewise.
1140         * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill):
1141         Likewise.
1142         * reload1.c (order_regs_for_reload, finish_spills): Likewise.
1143         * sched-deps.c (sched_analyze_insn, free_deps): Likewise.
1144         * sched-rgn.c (propagate_deps
1145         * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise.
1146         * tree-dfa.c (dump_dfa_stats
1147         tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
1148         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags):
1149         Likewise.
1150         * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars,
1151         free_temp_expr_table, find_replaceable_exprs): Likewise.
1152         * tree-sra.c (scan_function, scalarize_parms): Likewise.
1153         * tree-ssa-alias.c (init_alias_info,
1154         compute_points_to_and_addr_escape,
1155         compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise.
1156         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise.
1157         * tree-ssa-live.c (new_tree_live_info, live_worklist,
1158         calculate_live_on_entry, calculate_live_on_exit, compare_pairs,
1159         sort_coalesce_list, build_tree_conflict_graph, dump_live_info
1160         tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
1161         tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
1162         add_call_read_ops): Likewise.
1163         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise.
1164         * tree-ssa-live.h (num_var_partitions): Return unsigned.
1165
1166 2004-11-03  Dorit Naishlos  <dorit@il.ibm.com>
1167
1168         PR tree-optimization/18009
1169         * tree-vectorizer.h (enum dr_alignment_support): New type.
1170         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
1171         (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
1172         single data_reference (instead of a varray of references).
1173         * tree-vectorizer.c (new_loop_vec_info): Likewise.
1174         (vect_gen_niters_for_prolog_loop): Likewise.
1175         (vect_update_inits_of_drs): Likewise.
1176
1177         (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
1178         vect_enhance_data_refs_alignment.
1179         (vect_do_peeling_for_alignment): Likewise.
1180         (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
1181         this functionality used to be in vect_analyze_data_refs_alignment.
1182         Also update DR_MISALIGNMENT due to peeling; this functionality used to
1183         be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
1184         (vect_analyze_data_refs_alignment): Decision on whether and by how much
1185         to peel moved to vect_enhance_data_refs_alignment. Call
1186         vect_supportable_dr_alignment.
1187
1188         (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
1189         (vect_compute_data_refs_alignment): Return bool. Consider return value
1190         of vect_compute_data_ref_alignment and return true/false accordingly.
1191         (vect_enhance_data_refs_alignment): Consider return value of
1192         vect_compute_data_refs_alignment and return true/false accordingly.
1193
1194         (vect_supportable_dr_alignment): New function.
1195         (vectorizable_store): Call vect_supportable_dr_alignment.
1196         (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
1197         support checks moved from here to vect_supportable_dr_alignment.
1198
1199         (vect_transform_loop): Avoid 80 columns overflow.
1200
1201 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
1202
1203         * timevar.c (timevar_enable): Change from
1204         static.
1205         (timevar_push): Rename to ...
1206         (timevar_push_1): this and remove the
1207         enabled check.
1208         (timevar_pop): Rename to ...
1209         (timevar_pop_1): this and remove the
1210         enabled check.
1211         * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops.
1212         (timevar_pop): New macro.
1213         (timevar_push): New macro.
1214         (timevar_enable): Declare.
1215
1216 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
1217
1218         * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared
1219         libgcc for shared libraries.
1220
1221 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
1222
1223         * config/s390/s390-protos.h (s390_split_access_reg): Add prototype.
1224         * config/s390/s390.c (s390_split_access_reg): New function.
1225         (regclass_map): Add access registers.
1226         (get_thread_pointer): Use access register instead of UNSPEC_TP.
1227         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38.
1228         (ACCESS_REGNO_P, ACCESS_REG_P): New macros.
1229         (TP_REGNUM): New define.
1230         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
1231         REG_ALLOC_ORDER): Add access registers.
1232         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
1233         CANNOT_CHANGE_MODE_CLASS): Support access registers.
1234         (enum reg_class): Add ACCESS_REGS.
1235         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
1236         (REG_CLASS_FROM_LETTER): Add 't' constraint.
1237         (REGISTER_NAMES): Add access registers.
1238         * config/s390/s390.md (UNSPEC_TP): Remove.
1239         ("*movdi_64"): Add access register alternatives.  Provide splitters
1240         to split DImode access register <-> GPR moves into SImode moves.
1241         ("*movsi_zarch", "*movsi_esa"): Add access register alternatives.
1242         ("movstrictsi"): Likewise.
1243         ("get_tp_64", "get_tp_31"): Reimplement using access registers.
1244         ("set_tp_64", "set_tp_31"): Likewise.
1245         ("*set_tp"): New insn.
1246
1247 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
1248
1249         * tree-phinodes.c (resize_phi_node): Copy only a portion of
1250         the PHI node currently in use.
1251
1252 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
1253
1254         PR tree-opt/18231
1255         * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
1256         also.
1257
1258 2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
1259
1260         PR tree-optimization/18270
1261         * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
1262         abnormal edges, commit all pending stmts on incoming edges.
1263
1264 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
1265
1266         * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
1267         cause extra costs.  Generate canonical RTL.
1268
1269 2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
1270
1271         * lambda-code.c (lambda_compute_auxillary_space): Update comments.
1272         (lambda_compute_target_space). Ditto.
1273         * lambda.h (lambda_trans_matrix): Ditto.
1274         (lambda_linear_expression): Ditto.
1275         (lambda_body_vector): Ditto.
1276         (lambda_loopnest): Ditto.
1277         * tree-loop-linear.c (gather_interchange_stats): Combine tests,
1278         update comments, and remove pointless addition of 0.
1279         (linear_transform_loops): Update comments.
1280
1281 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
1282
1283         * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of
1284         CEIL_MOD_EXPR.
1285
1286 2004-11-03 Jeff Law  <law@redhat.com>
1287
1288         * predict.c (struct block_info_def): Kill "tovisit" field.
1289         (propagate_freq): Accept new "tovisit" parameter.  Change
1290         read/write access methods for "tovisit" to check the "tovisit"
1291         bitmap instead of a bit in block_info_def.
1292         (estimate_loops_at_level): Allocate "tovisit" bitmap.  Pass
1293         it to propagate_freq.
1294
1295         * stmt.c (expand_case): Speed up code to detect duplicate case
1296         label targets and count unique case label targets.
1297
1298 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
1299
1300         * cppdefault.c, cppdefault.h, timevar.h: Update copyright.
1301
1302 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
1303
1304         * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting.
1305
1306 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
1307
1308         * tree-cfg.c (find_taken_edge): Abort if we are given a
1309         statement that is neither COND_EXPR nor SWITCH_EXPR.
1310
1311 2004-11-02  Zdenek Dvorak  <dvorakz@suse.cz>
1312
1313         * fold-const.c (fold): Reassociate also (x - mult) + mult and
1314         (mult - x) + mult.  Cast operands of expression after applying
1315         distributive law to the correct types.  Apply distributive law
1316         to a * c - b * c for all non-float types.
1317
1318 2004-11-02  Geoffrey Keating  <geoffk@apple.com>
1319
1320         * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just
1321         because we don't want to run them now; instead, set them to
1322         stmp-install-fixproto or stmp-install-fixinc.
1323         * Makefile.in (stmp-install-fixproto): New.
1324         (stmp-install-fixinc): New.
1325         * configure: Regenerate.
1326
1327 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
1328
1329         * flow.c (init_propagate_block_info): Use bitmap_empty_p on result
1330         of bitmap_xor.
1331
1332 2004-11-02  Ziemowit Laski  <zlaski@apple.com>
1333
1334         * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
1335         (c_types_compatible_p): Move function definition...
1336         * c-objc-common.c (c_types_compatible_p): ...here.
1337         * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
1338         c-lang.c.
1339
1340 2004-11-02  Steven Bosscher  <stevenb@suse.de>
1341
1342         * cfgloop.h (struct loop): Update comment.
1343         * cse.c (cse_main): Remove obsolete comment.
1344
1345         * expr.h (gen_cond_trap): Move prototype under functions provided
1346         by optabs.c.
1347         (canonicalize_condition, get_condition): Move to...
1348         * rtl.h (canonicalize_condition, get_condition): ...here.
1349         (branch_target_load_optimize): Add comment that this function is
1350         in bt-load.c.
1351         * loop.c (canonicalize_condition, get_condition): Move to...
1352         * rtlanal.c (canonicalize_condition, get_condition): ...here.
1353         * sched-deps.c (get_condition): Rename to sched_get_condition.
1354         (add_dependence): Update this caller.
1355
1356 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
1357
1358         PR tree-opt/16808
1359         * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure
1360         that the vops get marked for renaming.
1361
1362 2004-11-02  Andreas Krebbel  <krebbel1@de.ibm.com>
1363
1364         * config/s390/s390.md ("movcc"): Set type attribute.
1365
1366 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
1367
1368         * tree-phinodes.c (add_phi_arg): Add an assertion that the
1369         edge already exists.
1370
1371 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
1372
1373         * tree-phinodes.c (remove_phi_arg_num): Do not zero the
1374         element that's being removed.
1375
1376 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
1377
1378         * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI
1379         arguments using PENDING_STMT.
1380         (thread_block): Call copy_phis_to_block after redirecting an
1381         edge.
1382
1383 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
1384
1385         * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
1386         bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
1387         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
1388         (bitmap_ior_and_compl_into): Produce bool.
1389         (bitmap_union_of_diff): Rename to ...
1390         (bitmap_ior_and_compl): ... here. Produce bool.
1391         * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
1392         bitmap_operation directly.
1393         (bitmap_union_of_diff): Rename to ...
1394         (bitmap_ior_and_compl): ... here. Return bool, use
1395         bitmap_operation directly.
1396         * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
1397         (df_ru_transfer_function, df_lr_transfer_function): Likewise.
1398         * global.c (modify_bb_reg_pav): Likewise.
1399
1400         * bitmap.h (bitmap_equal_p): Return bool.
1401         (bitmap_intersect_p, bitmap_intersect_compl_p): Declare.
1402         * bitmap.c (bitmap_equal_p): Return bool. Compare directly.
1403         (bitmap_intersect_p, bitmap_intersect_compl_p): New.
1404         * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and
1405         bitmap_intersect_compl_p.
1406         * ifcvt (dead_or_predicable): Likewise.
1407
1408 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
1409
1410         PR rtl-optimization/17104
1411         * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small
1412         loads in zero_extend.
1413
1414 2004-11-02  Danny Smith  <dannysmith@users.sourceforge.net>
1415
1416         PR debug/18242
1417         * toplev.c (debug_type_names): Remove "dwarf-1".
1418
1419 2004-11-02  Ben Elliston  <bje@au.ibm.com>
1420
1421         * timevar.h (timevar_get): Remove.
1422         * timevar.c (timevar_get): Remove unused function.
1423
1424 2004-11-02  Joseph S. Myers  <joseph@codesourcery.com>
1425
1426         * doc/include/texinfo.tex: Update from Texinfo CVS.
1427
1428 2004-11-02  Ben Elliston  <bje@au.ibm.com>
1429
1430         * cppdefault.h (cpp_SYSROOT): Remove.
1431         * cppdefault.c (cpp_SYSROOT): Likewise.
1432
1433 2004-11-01  Andrew MacLeod  <amacleod@redhat.com>
1434
1435         PR tree-optimization/16447
1436         * tree-cfg.c (bsi_commit_one_edge_insert): Rename from
1437         bsi_commit_edge_inserts_1, and make funtion external.  Return new block.
1438         (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert.
1439         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing.
1440         * tree-flow.h (bsi_commit_one_edge_insert): Extern decl.
1441         * tree-outof-ssa.c (rewrite_trees): Don't commit edges here.
1442         (same_stmt_list_p): New.  Return TRUE if edge is to be forwarded.
1443         (identical_copies_p): New.  Return true is two copies are the same.
1444         (identical_stmt_lists_p): New.  Return true if stmt lists are the same.
1445         (analyze_edges_for_bb): New.  Determine how best to insert edge stmts
1446         for a basic block.
1447         (perform_edge_inserts): New.  Determine what to do with all stmts that
1448         have been inserted on edges.
1449         (remove_ssa_form):  Analyze and commit edges from here.
1450
1451 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
1452
1453         PR bootstrap/18232
1454         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
1455         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
1456         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
1457         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
1458
1459 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
1460
1461         PR c/18239
1462         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
1463         parameter declarations.
1464
1465 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
1466
1467         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
1468         (s390_secondary_input_reload_class)
1469         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
1470         register.
1471         (s390_expand_cmpmem): Enable cmpmem implementation.
1472         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
1473         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
1474         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
1475         * config/s390/s390.md ("movcc"): New insn pattern.
1476         * doc/md.texi: Document 'c' constraint for s390.
1477
1478 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
1479
1480         PR c++/18064
1481         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
1482         extension.
1483
1484 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
1485
1486         Fix PR tree-optimization/17672
1487         Fix PR tree-optimization/18168
1488
1489         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
1490         assert test.
1491         (gcc_tree_to_linear_expression): Add extra to existing constant.
1492         (depth_of_nest): Factor out function used in various places.
1493         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
1494         functional changes.
1495         (find_induction_var_from_exit_cond): Stop guessing, and just
1496         get the right answer :).
1497         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
1498         Print out message about result of attempt to create perfect nest.
1499         (lbv_to_gcc_expression): Add type argument, use it to do math
1500         and induction variable creation.
1501         (lle_to_gcc_expression): Ditto.
1502         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
1503         oldiv. Pass type argument to lle_to_gcc_expression and
1504         lbv_to_gcc_expression.
1505         Reset number of iterations after transformation.
1506         (perfect_nestify): Remove useless pre-allocation, and cleanup
1507         a small amount.
1508
1509         * tree-data-ref.c (build_classic_dist_vector): Return false for
1510         dependences completely outside of the loop nest we asked about.
1511         (build_classic_dir_vector): Ditto.
1512         (compute_data_dependences_for_loop): Only add dependence relations
1513         inside the loop we asked about.
1514
1515         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
1516         Compute immediate uses.
1517
1518         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
1519
1520 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
1521
1522         * tree-cfg.c (thread_jumps): Fix a comment typo.
1523
1524 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
1525
1526         * tree-cfg.c (thread_jumps): Fix a comment typo.
1527
1528 2004-10-31  Nicolas Pitre <nico@cam.org>
1529
1530         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
1531         values smaller than 2^32.
1532
1533 2004-10-31 Jeff Law  <law@redhat.com>
1534
1535         * cfgloop.h (struct loop): Remove unused "nodes" field.
1536         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
1537         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
1538         instead of calling flow_bb_inside_loop_p for every basic block
1539         in the function.
1540         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
1541
1542 2004-10-31  Graham Stott <graham.stott@btinternet.com>
1543
1544         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
1545         INT_5_BITS instead of VAL_5_BITS_P.
1546
1547 2004-10-31  Roger Sayle  <roger@eyesopen.com>
1548
1549         PR middle-end/14521
1550         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
1551         for consistent quoting in diagnostic messages.
1552         (expand_call_inline): Likewise.
1553         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1554         * tree-ssa.c (warn_uninitialized_var): Likewise.
1555         (warn_uninitialized_phi): Likewise.
1556
1557 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
1558
1559         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
1560         mode check.
1561
1562 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
1563
1564         * c-common.c: Fix a comment typo.
1565
1566 2004-10-31  Jason Merrill  <jason@redhat.com>
1567
1568         PR middle-end/17526
1569         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
1570         aggregate types that are not BLKmode.
1571
1572 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
1573
1574         * c-common.h (objc_lookup_ivar): Add second parameter to
1575         prototype.
1576         * c-typeck.c (build_external_ref): After looking up symbol,
1577         pass it to objc_lookup_ivar() to decide whether it or the
1578         ivar should be used, rather than deciding the issue locally.
1579         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
1580         which is simply returned in the non-ObjC case.
1581
1582 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
1583
1584         * sdbout.c (sdbout_symbol): Do not output type .def statements
1585         for builtin types.
1586
1587 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1588
1589         * c-common.c (catenate_strings): New.
1590         (c_parse_error): Use it.  Don't over-escape.
1591
1592 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1593
1594         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
1595         modify the for loop expressions for it.  Remove unnecessary casts.
1596         (sh_expand_prologue): Declare reg as unsigned.
1597         (sh_gimplify_va_arg_expr): Initinalize lab_over.
1598         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
1599
1600 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
1601
1602         * doc/invoke.texi (Darwin Options): Improve description of
1603         how the subtype is chosen.
1604
1605 2004-10-30  Roger Sayle  <roger@eyesopen.com>
1606
1607         PR middle-end/18096
1608         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
1609         the stack adjustment, "size", is valid for Pmode.  If the stack
1610         frame is too large, generate a trap insn and issue a warning.
1611
1612 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
1613
1614         * tree-ssa-dom.c: Fix comment typos.
1615
1616 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1617
1618         * config/sh/sh.c (prepare_move_operands): Use operands[0]
1619         for the output rtl if no_new_pseudos is set.  Remove redundant
1620         line.
1621
1622 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
1623
1624         PR c/16666
1625         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
1626         determining whether to copy parameter types from a previous
1627         prototype declaration.
1628
1629 2004-10-29  Roger Sayle  <roger@eyesopen.com>
1630
1631         PR rtl-optimization/17581
1632         * cselib.c (cselib_process_insn): The last instruction of a libcall
1633         block, with the REG_RETVAL note, should be considered in the libcall.
1634         * gcse.c (do_local_cprop): Allow constants to be propagated outside
1635         of libcall blocks.
1636         (adjust_libcall_notes): Use simplify_replace_rtx instead of
1637         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
1638
1639 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
1640
1641         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
1642
1643 2004-10-29 Jeff Law  <law@redhat.com>
1644
1645         * tree-ssa-dom.c (struct edge_info): New structure holding
1646         edge equivalences and edge redirection information.
1647         (get_eq_expr_value, record_dominating_conditions): Kill.
1648         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
1649         Call record_edge_info.
1650         (allocate_edge_info, free_edge_info): New.
1651         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
1652         rather than cprop_into_phis.  Free all edge infos before threading
1653         jumps.
1654         (thread_across_edge): Allocate new edge info structures as needed
1655         and store the redirection target into the edge info structure
1656         instead of the edge's AUX field.
1657         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
1658         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
1659         Revamp code which finds and records equivalences associated with
1660         edges to use saved data in the edge_info structure.
1661         (record_equivalencs_from_phis): Similarly.
1662         (dom_opt_finalize_block): Revamp code which finds and records
1663         equivalences associated with edges to use saved data in the
1664         edge_info structure.
1665         (build_and_record_new_cond): New function.
1666         (record_conditions): Use build_and_record_new_cond to record
1667         dominating conditions.
1668         (record_edge_info): New function.
1669         (record_range): Tighten test for conditions which create
1670         useful range records.
1671
1672 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
1673
1674         * config/i386/darwin.h (ASM_SPEC): Simplify.
1675         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
1676         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
1677         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
1678         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
1679         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
1680         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
1681         (ASM_SPEC): Handle -force_cpusubtype_ALL.
1682         * doc/invoke.texi (Darwin Options): Improve documentation for
1683         Darwin linker (and libtool) switches.
1684
1685         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
1686
1687 2004-10-29  Stan Shebs  <shebs@apple.com>
1688
1689         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
1690
1691 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
1692
1693         * tree-phinodes.c (allocate_phi_node): New.
1694         (make_phi_node, resize_phi_node): Use it.
1695
1696 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
1697
1698         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
1699         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
1700
1701 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
1702
1703         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
1704         the whole PHI node.
1705         * tree.h (tree_phi_node): Tell the garbage collector to chase
1706         num_args arguments.
1707
1708 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
1709
1710         * opts.c (decode_options): Lower the crossjump threshold for -Os.
1711
1712 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
1713
1714         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
1715
1716 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
1717
1718         * bitmap.h (bitmap_empty_p): New.
1719         (bitmap_and, bitmap_and_into, bitmap_and_compl,
1720         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
1721         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
1722         operation macros.
1723         (bitmap_ior_and_compl): Rename to ...
1724         (bitmap_ior_and_compl_into): ... here.
1725         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
1726         (bitmap_ior_and_compl): Rename to ...
1727         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
1728         flag.
1729         (bitmap_union_of_diff): Use renamed bitmap functions.
1730         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
1731         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
1732         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
1733         * df.c (df_bb_rd_local_compute)
1734         * flow.c (calculate_global_regs_live,
1735         init_propagate_block_info): Likewise.
1736         * ifcvt.c (find_if_case_1, find_if_case_2,
1737         dead_or_predicable): Likewise.
1738         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
1739         reset_conflicts, conflicts_between_webs): Likewise.
1740         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
1741         detect_web_parts_to_rebuild): Likewise.
1742         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
1743         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
1744         * tree-sra.c (decide_instantiations): Likewise.
1745         * tree-ssa-alias.c (create_name_tags,
1746         merge_pointed_to_info): Likewise.
1747         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1748         * tree-ssa-loop-im.c (move_computations): Likewise.
1749         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
1750         * tree-ssa-pre.c (fini_pre): Likewise.
1751         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
1752         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
1753         * tree-vectorizer.c (vectorize_loops): Likewise.
1754
1755 2004-10-29  Nick Clifton  <nickc@redhat.com>
1756
1757         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
1758         adding the PIC register to the fixed_regs array, also add it
1759         to the call_used_regs array.
1760
1761 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
1762
1763         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
1764         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
1765
1766 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
1767
1768         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
1769         (rewrite_blocks): Modify argument, and use it to decide which
1770         function to call.
1771         (rewrite_def_def_chains): Call rewrite_blocks with true here.
1772         (rewrite_into_ssa): and call it with false here.
1773
1774 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
1775
1776         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
1777         triggers into gcc_assert.
1778
1779 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
1780
1781         PR tree-optimization/16728
1782         * tree-flow.h (get_ptr_info): Declare.
1783         * tree-ssa-alias.c (get_ptr_info): Make extern.
1784         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
1785         alias information.
1786
1787 2004-10-28  Stan Shebs  <shebs@apple.com>
1788
1789         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
1790         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
1791         case.
1792
1793 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
1794
1795         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
1796         prevent their later unnecessary registration.
1797         (mf_build_check_statement_for): Remove "addr" argument, and
1798         related "__mf_value" generated code.  Update callers.
1799         (mf_decl_eligible_p): New function, factored from mx_register_decls.
1800         (mx_register_decls): Call it.
1801         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
1802         to restore support for complex nested expressions.
1803         (mudflap_enqueue_decl): Simplify.  Move registration call emission
1804         out ...
1805         (mudflap_finish_file): ... to here.
1806         (mudflap_enqueue_constant): Remove dump code.
1807
1808 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
1809
1810         PR 18199
1811         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
1812         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
1813         (dbxout_finish_complex_stabs): Update to match.
1814         (dbxout_symbol_location): Call emit_pending_bincls_if_required
1815         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
1816         dbxout_begin_complex_stabs_noforcetext.
1817         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
1818         N_GSYM, using new SYM parameter.  Correct logic for special
1819         cases for N_FUN.
1820
1821         * varasm.c (function_section): If DECL is NULL_TREE, don't try
1822         to do anything else.  Do not call get_insns if cfun or
1823         cfun->emit are NULL.
1824
1825 2004-10-28  Adam Nemet  <anemet@lnxw.com>
1826
1827         PR middle-end/18160
1828         * c-typeck.c (c_mark_addressable): Issue error if address of a
1829         register variable is taken.  Use "%qD" to print DECL_NAME.
1830
1831 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
1832
1833         * opts.c (decode_options): Don't run PRE at -Os.
1834
1835 2004-10-28  Richard Henderson  <rth@redhat.com>
1836
1837         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
1838         zero in the conditional.
1839         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
1840
1841 2004-10-28  Richard Henderson  <rth@redhat.com>
1842
1843         * cse.c (memory_extend_rtx): Remove.
1844         (cse_main): Don't set it.
1845         (cse_insn): Use a local buffer instead.
1846
1847 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1848
1849         * profile.c (branch_prob): Call to init_edge_profiler added.
1850         * rtl-profile.c (rtl_init_edge_profiler): New function.
1851         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
1852         call to safe_insert_insn_on_edge.
1853         (rtl_profile_hooks): rtl_init_edge_profiler added.
1854         * tree-profile.c (tree_init_edge_profiler): New function.
1855         (tree_profile_hooks): tree_init_edge_profiler added.
1856         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
1857
1858 2004-10-28  Nick Clifton  <nickc@redhat.com>
1859
1860         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
1861         emit_jump_insn() to generate the return instruction.
1862
1863 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1864
1865         * tree-phinodes.c: Remove trailing whitespace.
1866
1867 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1868
1869         * tree-ssa-loop-ivopts.c: Fix a comment typo.
1870         * doc/invoke.texi: Fix a typo.
1871
1872 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1873
1874         * Makefile.in (OBJS-common): Remove duplicates.
1875
1876 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1877
1878         * lambda-code.c (nestify_update_pending_stmts): Remove.
1879         (perfect_nestify): Use flush_pending_stmts instead of
1880         nestify_update_pending_stmts.
1881         * tree-cfg.c (tree_make_forwarder_block): Use
1882         flush_pending_stmts.
1883         * tree-flow.h: Add a prototype for flush_pending_stmts.
1884         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
1885         Use flush_pending_stmts.
1886         (lv_update_pending_stmts): Remove.
1887         (tree_ssa_loop_version): Use flush_pending_stmts instead of
1888         lv_update_pending_stmts.
1889         * tree-ssa.c (flush_pending_stmts): New.
1890
1891 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
1892
1893         PR target/15286
1894         * final.c (alter_subreg): Compute correct offset to use with
1895         paradoxical SUBREGs of memory operands.
1896         * recog.c (general_operand): Allow paradoxical SUBREGs of
1897         memory operands after reload.
1898         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
1899         has failed when passed a hard register.
1900
1901 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
1902
1903         * function.c (assign_parm_setup_block): Handle parallels correctly.
1904
1905 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1906
1907         * final.c (shorten_branches): Initialize flags structure.
1908
1909 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
1910
1911         * tree.c (int_cst_node, int_cst_hash_table): New variables.
1912         (init_ttree): Initialize them.
1913         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
1914         (build_int_cst_wide): Use hash table for oversized integers.
1915
1916 2004-10-28  Nick Clifton  <nickc@redhat.com>
1917
1918         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
1919         begin_label.
1920
1921 2004-10-27  Richard Henderson  <rth@redhat.com>
1922
1923         PR middle-end/18163
1924         * expr.c (emit_group_load): Don't go force temporary for memory
1925         or concat source.
1926         (emit_group_store): Similarly.
1927
1928 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
1929
1930         PR other/18186
1931         * common.opt (--param): Fix spelling of parameter.
1932
1933 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
1934
1935         PR tree-opt/17529
1936         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
1937         Don't fold statement.
1938         <case ASM_EXPR>: Fold the statement.
1939
1940 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
1941
1942         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
1943         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
1944
1945 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1946
1947         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
1948         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
1949         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
1950         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
1951
1952 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1953
1954         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
1955         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
1956         punctuation outside quotes.
1957
1958 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
1959             James E Wilson  <wilson@specifixinc.com>
1960
1961         PR target/13158
1962         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
1963         sibcall alloc instruction.
1964         (process_set): Handle sibcall alloc instruction.
1965
1966 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
1967
1968         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
1969         SUBTARGET_ATTRIBUTE_TABLE.
1970         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
1971         (SUBTARGET_ATTRIBUTE_TABLE): Define.
1972         * config/darwin.c (darwin_handle_weak_import_attribute): New.
1973         (HAVE_DEAD_STRIP): Delete.
1974         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
1975         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
1976         Prototype.
1977
1978         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
1979
1980         * config/darwin.h (GTHREAD_USE_WEAK): Define.
1981
1982 2004-10-28  Ben Elliston  <bje@au.ibm.com>
1983
1984         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
1985         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
1986         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
1987         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
1988         * tree-sra.c: Include "params.h".
1989         (decide_block_copy): Use new parameters.
1990         * doc/invoke.texi (Optimize Options): Document new SRA pass
1991         parameters sra-max-structure-size and sra-field-structure-ratio.
1992
1993 2004-10-27  Nicolas Pitre <nico@cam.org>
1994
1995         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
1996
1997 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
1998
1999         PR tree-optimization/18048
2000         * fold-const.c (try_move_mult_to_index): New function.
2001         (fold): Use try_move_mult_to_index.
2002         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
2003         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
2004         an all-ones unsigned constant without extra bits.
2005         * tree.c (build_low_bits_mask): New function.
2006         * tree.h (build_low_bits_mask): Declare.
2007
2008 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
2009
2010         PR target/17956
2011         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
2012         final condition.
2013         (minsf3): Same.
2014         (maxdf3): Same.
2015         (mindf3): Same.
2016
2017 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
2018
2019         * tree-cfg.c (thread_jumps): Speed up by reordering the two
2020         conditions for entering basic blocks into worklist.
2021
2022 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
2023
2024         * tree-cfg.c (thread_jumps): Speed up by pretending to have
2025         ENTRY_BLOCK_PTR in worklist.
2026
2027 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
2028
2029         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
2030         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
2031
2032 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
2033
2034         Fix PR tree-optimization/17133
2035
2036         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
2037         def kill operand.
2038
2039         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
2040         (get_v_must_def_result_ptr): Modify for new structure of
2041         v_must_defs array.
2042         (get_v_must_def_kill_ptr): New.
2043         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
2044         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
2045         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
2046         (op_iter_init): Initialize new mustu members.
2047         (op_iter_next_mustdef): New function.
2048         (op_iter_init_mustdef): Ditto.
2049
2050         * tree-flow.h (rewrite_def_def_chains): New function.
2051
2052         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
2053         (ssa_mark_def_sites): Ditto.
2054         (rewrite_stmt): Ditto.
2055         (ssa_rewrite_stmt): Ditto.
2056         (rewrite_blocks): Factor out from rewrite_into_ssa.
2057         (mark_def_block_sites): Ditto.
2058         (rewrite_def_def_chains): New function, just rewrites def-def
2059         chains without phi node insertion.
2060
2061         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
2062
2063         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
2064
2065         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
2066         they include the rhs now.
2067
2068         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
2069         V_MUST_DEF_RESULT.
2070
2071         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
2072         Update callers.
2073         (mark_really_necessary_kill_operand_phis): New function.
2074         (perform_tree_ssa_dce): Call it.
2075         (pass_dce): Add TODO_fix_def_def_chains.
2076         (pass_cd_dce): Ditto.
2077
2078         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
2079         well.
2080         (rewrite_mem_refs): Ditto.
2081
2082         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
2083         as well.
2084
2085         * tree-ssa-operands.c (allocate_v_may_def_optype):
2086         v_may_def_operand_type_t became v_def_use_operand_type_t.
2087         (allocate_v_must_def_optype) Ditto.
2088         (finalize_ssa_v_must_defs): Update for new operand type, as well
2089         as setting the use portion as well.
2090         (copy_virtual_operands): Copy the kill operand as well.
2091         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
2092         V_MUST_DEF_RESULT.
2093
2094         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
2095         v_def_use_operand_type.
2096         (v_must_def_optype_d): Use v_def_use_operand_type.
2097         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
2098         (V_MUST_DEF_KILL_*): New macros.
2099         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
2100         members.
2101         Rename existing must_i and num_v_must members to mustd_i and
2102         num_v_mustd.
2103         (SSA_OP_VMUSTDEFKILL): New flag.
2104         (SSA_OP_VIRTUAL_KILLS): New flag.
2105         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
2106         (SSA_OP_ALL_KILLS): New flag.
2107         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
2108
2109         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
2110
2111         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
2112         became V_MUST_DEF_RESULT.
2113         (rename_variables_in_bb): Rename kill pointer as well.
2114
2115         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
2116         immediate uses.
2117
2118 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
2119
2120         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
2121         the block that needs it.
2122
2123 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
2124
2125         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
2126         ATTRIBUTE_UNUSED.
2127
2128 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
2129
2130         * c-lex.c (cb_def_pragma): Clean up code for making location
2131         palatable to diagnostic.c.
2132
2133 2004-10-27  Steven Bosscher  <stevenb@suse.de>
2134
2135         PR tree-optimization/17757
2136         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
2137         without any PHI arguments left.  Make sure the argument that
2138         we're supposed to remove exists at all.
2139
2140 2004-10-27  Paul Brook  <paul@codesourcery.com>
2141
2142         * configure.ac: Don't test for [build] __cxa_atexit when building a
2143         cross compiler.
2144         * configure: Regenerate.
2145
2146 2004-10-27  Paul Brook  <paul@codeosurcery.com>
2147
2148         * configure.ac: Use build_exeext not host_exeext when lookin for
2149         target tools.
2150         * configure: Regenerate.
2151
2152 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2153
2154         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
2155
2156 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2157             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
2158
2159         PR middle-end/14684
2160         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
2161         to match -fprofile-use.
2162
2163 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
2164
2165         * config/rs6000/rs6000.c: Fix a comment typo.
2166
2167 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
2168
2169         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
2170         counter.
2171
2172 2004-10-27  Andreas Schwab  <schwab@suse.de>
2173
2174         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
2175         unused.
2176         (default_stabs_asm_out_constructor): Likewise.
2177
2178 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
2179
2180         * builtins.c (fold_builtin_unordered_cmp): Always bring both
2181         operands to the same type.
2182
2183 2004-10-26  James E Wilson  <wilson@specifixinc.com>
2184
2185         PR target/18010
2186         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
2187
2188 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
2189
2190         * dbxout.c: Include obstack.h.
2191         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
2192         default definition.
2193         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
2194         Default-define here.
2195         (DBX_CONTIN_LENGTH): Move definition with others.
2196         (DBX_FINISH_STABS): New target macro.
2197         (current_sym_code, current_sym_value, current_sym_addr)
2198         (current_sym_nchars, CHARS, dbxout_continue)
2199         (print_int_cst_octal, print_octal, print_wide_int)
2200         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
2201         (stabstr_ob, stabstr_last_contin_point): New variables.
2202         (NUMBER_FMT_LOOP): New improper macro.
2203         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
2204         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
2205         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
2206         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
2207         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
2208         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
2209         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
2210         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
2211         New functions and/or proper function-like macros.
2212         (CONTIN): Use stabstr_continue, unconditionally.
2213         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
2214         (dbxout_init): Initialize stabstr_ob.  Check
2215         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
2216         if it was used.  Use the new interfaces.
2217         (dbxout_source_file): Remove file argument; always write to
2218         asm_out_file.  Use the new interfaces.
2219         (dbxout_type_method_1): Remove second argument which is always
2220         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
2221         (dbxout_type_methods): Remove write-only variables.  Use the
2222         new interfaces.
2223         (dbxout_parms): Refactor to remove code duplicated in each of
2224         several successive if-else-if blocks.  Use the new interfaces.
2225         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
2226         (dbxout_source_line, dbxout_finish, dbxout_type_index)
2227         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
2228         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
2229         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
2230         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
2231         Use the new interfaces.
2232         * Makefile.in (dbxout.o): Update dependencies.
2233
2234         * defaults.h: Don't define ASM_STABD_OP.
2235         * output.h: Prototype new dbxout_* interfaces.
2236         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
2237         * varasm.c: Don't define ASM_STABS_OP.
2238         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
2239         Use the new dbxout.c interfaces.  Call sorry if neither
2240         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
2241
2242         * xcoffout.h: Don't define ASM_STABS_OP.
2243         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
2244         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
2245         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
2246         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
2247         do { ... } while (0) idiom.
2248
2249         * config/alpha/alpha.c (num_source_filenames): Export.
2250         * config/alpha/alpha.h (num_source_filenames): Declare.
2251         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
2252         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
2253         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
2254         Always use .debugsym.  Update commentary.
2255         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
2256         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
2257         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
2258         Use new interfaces.
2259         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
2260         (macho_branch_islands): Use new interfaces.
2261
2262         * doc/tm.texi: Update.
2263
2264 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
2265
2266         * expr.c (emit_group_store): Do not treat floats as BLKmode.
2267         (emit_group_load): Same.
2268
2269 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
2270
2271         * c-parse.in (datadef): Use pedwarn rather than error and warning
2272         for diagnostic in case of no declaration specifiers.
2273
2274 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
2275
2276         PR bootstrap/15747
2277         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
2278         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
2279         can be used to work around this.
2280
2281 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
2282
2283         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
2284         doubles.
2285
2286 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
2287
2288         * stmt.c (expand_case): Update a comment.
2289
2290 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
2291
2292         * stmt.c (expand_case): Put an assertion that index_expr is
2293         never INTEGER_CST.  Don't special case for constant
2294         index_expr.
2295
2296 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
2297
2298         PR 18162
2299         * c-parse.in (designator): Finish with a semi-colon.
2300
2301 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
2302
2303         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
2304         into rotlsi3.
2305
2306 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
2307
2308         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
2309         a default case only.
2310
2311 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
2312
2313         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
2314         e500 doubles.
2315         (spe_build_register_parallel): New.
2316         (rs6000_spe_function_arg): Handle e500 doubles.
2317         (function_arg): Same.
2318         (spe_func_has_64bit_regs_p): Same.
2319         (rs6000_function_value): Same.
2320         (rs6000_libcall_value): Same.
2321         (legitimate_lo_sum_address_p): Return false for e500 doubles.
2322
2323         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
2324         doubles.
2325         (DATA_ALIGNMENT): Same.
2326         (CANNOT_CHANGE_MODE_CLASS): Same.
2327
2328 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
2329
2330         * expr.c (emit_group_load): Handle floats.
2331         (emit_group_store): Same.
2332
2333 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
2334
2335         * c-lex.c (get_nonpadding_token): Remove.
2336         (c_lex_with_flags): Push timevar and eat padding here.  Improve
2337         stray token diagnostic.
2338         (lex_string): Replace logic with switch statement, eat padding
2339         token here.
2340
2341 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
2342
2343         PR 18149
2344         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
2345
2346 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
2347
2348         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
2349         to 'non-weak'.
2350         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
2351         (ASM_MAKE_LABEL_LINKONCE): Delete.
2352         (ASM_WEAKEN_DECL): New.
2353         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
2354         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2355         (TEXT_SECTION_ASM_OP): Add a tab.
2356         (DATA_SECTION_ASM_OP): Likewise.
2357         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
2358         data_section on every section change.
2359         (EXTRA_SECTIONS): Add a bunch of new extra sections.
2360         (EXTRA_SECTION_FUNCTIONS): Likewise.
2361         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
2362         (JCR_SECTION_NAME): Define.
2363         (TARGET_SECTION_TYPE_FLAGS): Don't define.
2364         * config/darwin.c (darwin_encode_section_info): A symbol is defined
2365         in this file if it is not weak.
2366         (textcoal_section): Delete.
2367         (datacoal_section): Delete.
2368         (darwin_make_decl_one_only): Delete.
2369         (machopic_select_section): Handle functions.
2370         (darwin_asm_named_section): Add a tab.
2371         (darwin_section_type_flags): Delete.
2372         (darwin_unique_section): Delete contents.
2373         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
2374         DECL_WEAK is set.
2375         * config/darwin-protos.h (darwin_section_type_flags): Delete.
2376         (darwin_make_decl_one_only): Delete.
2377         (text_coal_section): New.
2378         (text_unlikely_section): New.
2379         (text_unlikely_coal_section): New.
2380         (const_coal_section): New.
2381         (data_coal_section): New.
2382         (const_data_coal_section): New.
2383         * varasm.c (function_section): Honour
2384         USE_SELECT_SECTION_FOR_FUNCTIONS.
2385         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
2386         TARGET_USES_WEAK_UNWIND_INFO is in effect.
2387         * dbxout.c (dbxout_source_file): Don't change sections while
2388         a function is being output.
2389
2390 2004-10-25  David Ayers  <d.ayers@inode.at>
2391
2392         * c-common.h: Remove RID_ID.
2393         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
2394         (typespec_reserved_attr): Add rule for TYPENAME
2395         non_empty_protocolrefs.
2396         (yylexname): Remove special handling of RID_ID.
2397
2398 2004-10-25  James E Wilson  <wilson@specifixinc.com>
2399
2400         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
2401
2402 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2403
2404         PR c/16667
2405         * c-parse.in (array_designator): New.
2406         (designator): Use it.
2407         (initelt): Only permit array_designator without '=', not ".foo".
2408
2409 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
2410         * gcc/Makefile.in: removed ggc for cgraphunit.
2411         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
2412         * gcc/cgraph.h: removed static var analysis data structures and calls.
2413         * gcc/cgraphunit.c:
2414         cgraph_mark_local_and_external_functions:changed name to
2415                 cgraph_mark_local_functions
2416         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
2417         cgraph_reset_static_var_maps,get_global_static_vars_info,
2418         get_global_statics_not_read,get_global_statics_not_written,searchc,
2419         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
2420         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
2421         scan_for_static_refs,cgraph_characterize_statics_local,
2422         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
2423         removed.
2424         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
2425         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
2426         analysis
2427         * gcc/tree-flow.h static_vars_info: removed
2428         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
2429         removed calls to static vars analysis.
2430         get_call_expr_operands: removed callee variable.
2431
2432 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
2433
2434         * cfg.c (unchecked_make_edge, redirect_edge_succ,
2435         redirect_edge_pred): Use VEC_safe_push instead of
2436         VEC_safe_insert.
2437         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2438
2439 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
2440
2441         * cfgloopmanip.c (loopify): Take two more arguments true_edge
2442         and false_edge.
2443         * cfgloop.h: Adjust the corresponding prototype.
2444         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
2445         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
2446
2447 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
2448
2449         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
2450         DECL_INCOMING_RTL is NULL.
2451
2452 2004-10-25  Steven Bosscher  <stevenb@suse.de>
2453
2454         * timevar.def (TV_FIND_REFERENCED_VARS): New.
2455         * tree-dfa.c (pass_referenced_var): Use it.
2456
2457 2004-10-25  Roger Sayle  <roger@eyesopen.com>
2458             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2459
2460         * cse.c: Change encoding of quantity numbers to avoid undefined
2461         pointer arithmetic on qty_table.
2462         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
2463         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
2464         (new_basic_block): Assign "real" quantity numbers from zero.
2465         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
2466         REG_QTY to its unique negative value.
2467         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
2468         (cse_main): Don't include max_reg when determining max_qty.
2469         (cse_basic_block): Avoid subtracting a large offset from qty_table,
2470         which causes undefined C99 behaviour.  Only allocate needed memory.
2471
2472 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
2473
2474         * stmt.c (expand_case): Remove an obsolete comment.
2475
2476 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
2477
2478         PR middle-end/17407
2479         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
2480         layout_type as it is already done by build_array_type.
2481         * tree.c (build_array_type): Layout the type even
2482
2483 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
2484
2485         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
2486
2487 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
2488
2489         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
2490         with wider-than-32-bit HOST_WIDE_INTs.
2491
2492 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
2493
2494         * config/mips/mips.c(mips_output_filename): Remove unused
2495         array ltext_label_name
2496
2497 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
2498
2499         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
2500
2501 2004-10-25  Ben Elliston  <bje@au.ibm.com>
2502
2503         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
2504
2505 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
2506
2507         * predict.c (predict_loops): Call scev_finalize instead of
2508         scev_reset.
2509
2510 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
2511
2512         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
2513         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
2514         config/sh/ushmedia.h, config/sparc/elf.h,
2515         config/sparc/sp64-elf.h: Update copyright.
2516
2517 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
2518
2519         * stmt.c (expand_case): Handle the default label outside of
2520         the for loop.  Remove code to handle a missing default label.
2521
2522 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
2523
2524         * dbxout.c (dbxout_function_decl): Don't use
2525         DBX_OUTPUT_FUNCTION_END.
2526         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
2527         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
2528
2529 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
2530
2531         PR middle-end/17967
2532         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
2533
2534 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
2535
2536         * tree-ssa-dom.c (record_equality): Use loop depth to determine
2537         which way to record the equality as well.
2538         (loop_depth_of_name): New function.
2539
2540 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2541
2542         PR middle-end/17793
2543         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
2544         through the operand if it is a useless type conversion.
2545
2546 2004-10-23  Ben Elliston  <bje@au.ibm.com>
2547
2548         * cfg.c (remove_edge): Use VEC_unordered_remove.
2549         (redirect_edge_succ): Likewise.
2550         (redirect_edge_pred): Likewise.
2551         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2552
2553 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2554
2555         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
2556         beyond its end.
2557
2558 2004-10-22  Eric Christopher  <echristo@redhat.com>
2559
2560         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
2561         saves.
2562
2563 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
2564
2565         * config/rs6000/spe.md (spe_extendsfdf2): New.
2566         (movdf_e500_double): New.
2567         (spe_truncdfsf2): New.
2568         (spe_absdf2): New.
2569         (spe_nabsdf2): New.
2570         (spe_negdf2): New.
2571         (sub_adddf3): New.
2572         (spe_subdf3): New.
2573         (spe_muldf3): New.
2574         (spe_floatsidf2): New.
2575         (spe_floatunssidf2): New.
2576         (fix_truncdfsi2): New.
2577         (spe_fixuns_truncdfsi2): New.
2578
2579         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
2580         (fpr_truncdfsf2): New.
2581         (negdf2): Change to expander.
2582         (fpr_negdf2): New.
2583         (fpr_nabsdf2): Name pattern.
2584         (adddf3): Change to expander.
2585         (fpr_adddf3): Nem.
2586         (subdf3): Change to expander.
2587         (fpr_subdf3): New.
2588         (muldf3): Change to expander.
2589         (fpr_muldf3): New.
2590         (divdf3): Change to expander.
2591         (fpr_divdf3): New.
2592         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
2593         (cmpdf): Allow for TARGET_E500_DOUBLE.
2594
2595 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2596
2597         * c-semantics.c (re_push_stmt_list): Remove.
2598         * c-common.h: Remove the corresponding prototype.
2599
2600 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2601
2602         * stmt.c (asm_op_is_mem_input): Remove.
2603         * tree.h: Remove the corresponding prototype.
2604
2605 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2606
2607         * tree-gimple.c (is_gimple_constructor_elt): Remove.
2608         * tree-gimple.h: Remove the corresponding prototype.
2609
2610 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2611
2612         * varasm.c (get_pool_mode_for_function, get_pool_offset):
2613         Remove.
2614         * rtl.h: Remove the corresponding prototypes.
2615
2616 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2617
2618         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
2619         edge information when we commit ourselves to threading a
2620         particular jump.
2621
2622 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2623
2624         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
2625         into worklist instead of their indexes.
2626
2627 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2628
2629         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
2630         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
2631         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
2632         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
2633         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
2634         tree-scalar-evolution.c, tree-ssa-dom.c,
2635         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
2636         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
2637         tree-vectorizer.c, vec.h: Fix comment formatting.
2638
2639 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2640
2641         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
2642         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
2643
2644 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
2645
2646         * config/ptx4.h, config/mcore/mcore-pe.h,
2647         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
2648
2649 2004-10-22  Peter Barada <peter@the-baradas.com>
2650
2651         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
2652         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
2653         renaming of non-live registers in interrupt functions.
2654         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
2655
2656 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
2657
2658         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
2659         Use integer for loop counter.
2660         (num_ending_zeros): New function.
2661         (number_of_iterations_cond): Use num_ending_zeros.
2662
2663 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
2664
2665         * config.gcc: Add support for --enable-e500_double.
2666
2667         * config/rs6000/e500-double.h: New file.
2668
2669         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
2670         TARGET_E500_DOUBLE.
2671
2672         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
2673         TARGET_E500_DOUBLE.
2674
2675         * config/rs6000/linuxspe.h: Same.
2676
2677         * doc/invoke.texi (Option Summary): Document new options for
2678         mfloat-gprs.
2679         (RS/6000 and PowerPC Options): Same.
2680
2681         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
2682         function.
2683         (rs6000_override_options): Use it.  Use
2684         SUB3TARGET_OVERRIDE_OPTIONS.
2685         Add 8548 to processor_target_table.
2686         (rs6000_legitimate_address): Handle e500 doubles.
2687         (rs6000_legitimize_address): Same.
2688         (rs6000_legitimize_reload_address): Same.
2689         (rs6000_hard_regno_nregs): Same.
2690         (spe_func_has_64bit_regs_p): Same.
2691         (emit_frame_save): Same.
2692         (gen_frame_mem_offset): Same.
2693         (rs6000_dwarf_register_span): Same.
2694         (rs6000_generate_compare): Same.
2695         (easy_fp_constant): Same.
2696         (legitimate_offset_address_p): Same.
2697
2698         * config/rs6000/spe.md: (cmdfeq_gpr): New.
2699         (tstdfeq_gpr): New.
2700         (cmpdfgt_gpr): New.
2701         (tstdfgt_gpr): New.
2702         (tstdfgt_gpr): New.
2703         (cmpdflt_gpr): New.
2704         (tstdflt_gpr): New.
2705         Add new constants.
2706
2707 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2708
2709         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
2710
2711 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
2712
2713         * dbxout.c: Remove unnecessary #undefs.
2714         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
2715         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
2716         definition into use sites.
2717         (cwd): Make local to dbxout_init.
2718         (dbxout_init): Restructure cwd-using logic for clarity.  Use
2719         IS_DIR_SEPARATOR.
2720         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
2721         STABS_GCC_MARKER folded in here.
2722         * system.h: Poison now-unused macros.
2723         * doc/tm.texi: Remove documentation of now-unused macros.
2724
2725 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
2726
2727         PR c/17538
2728         * c-opts.c (push_command_line_include): Use the current file
2729         name instead of the main one.
2730
2731 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
2732
2733         PR objc/17923
2734         * tree.c (staticp): A CONST_DECL has static storage if either
2735         TREE_STATIC or DECL_EXTERNAL is set.
2736         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
2737         have null names.
2738
2739 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
2740
2741         * expr.c (store_expr): Remove dont_store_target.
2742
2743 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
2744
2745         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
2746
2747 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
2748
2749         * tree-cfg.c (thread_jumps): Move a part of it to ...
2750         (thread_jumps_from_bb): ... here.
2751
2752 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
2753
2754         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
2755         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
2756
2757 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
2758
2759         * expr.c (store_expr): Clean up by renaming want_value to
2760         call_param_p.
2761
2762 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2763
2764         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
2765         fixup pc here.
2766
2767 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
2768
2769         PR 18004.
2770         * expmed.c (store_bit_field): Pass original 'value' before
2771         recursing.
2772
2773 2004-10-21  Nicolas Pitre <nico@cam.org>
2774
2775         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
2776         * config/arm/ieee754-df.S: Ditto.
2777
2778 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
2779
2780         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
2781         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
2782         Default to 0.
2783         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
2784         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
2785         an internal label and an N_SLINE .stabn whose value is the
2786         difference between that label and the function entry label.
2787         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
2788         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
2789         label and an N_SO stab with an empty string referring to it.
2790         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
2791         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
2792         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
2793         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
2794         macro is never defined.
2795         * sdbout.c (sdbout_source_line_counter): Delete.
2796         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
2797         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
2798         only two arguments.
2799         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
2800
2801         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
2802         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
2803         definitions (identical to default).
2804         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
2805         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
2806         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
2807         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
2808         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
2809         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
2810         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
2811         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
2812         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
2813         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
2814         (sym_lineno): Delete.
2815         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
2816         now-unused variable.
2817         (alpha_output_lineno): Delete.
2818         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
2819         * config/mips/mips.c (mips_output_filename): Don't use
2820         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
2821         (mips_output_lineno): Delete.
2822         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
2823         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
2824         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
2825         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
2826         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
2827         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
2828         * config/mmix/mmix.h: Likewise.
2829         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
2830         * config/mmix/mmix-protos.h: Don't prototype it.
2831         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
2832         no need to #undef ASM_OUTPUT_SOURCE_LINE.
2833         * config/arm/aout.h: Remove RISCiX-specific definition of
2834         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
2835         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
2836         ASM_OUTPUT_SOURCE_LINE.
2837         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
2838         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
2839         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
2840
2841         * doc/tm.texi: Update.
2842
2843 2004-10-20  Richard Henderson  <rth@redhat.com>
2844
2845         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
2846
2847 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
2848
2849         * configure.ac: Revert my previous patch.
2850         * configure: Regenerate.
2851
2852 2004-10-20  Ben Elliston  <bje@au.ibm.com>
2853
2854         * config/rs6000/rs6000.c
2855         (rs6000_va_start): Use build_va_arg_indirect_ref.
2856         (rs6000_gimplify_va_arg): Likewise.
2857
2858 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
2859
2860         PR java/15575
2861         * configure.ac: Declare AM_LANGINFO_CODESET.
2862         * aclocal.m4: Define AM_LANGINFO_CODESET.
2863         * configure, config.in: Rebuilt.
2864
2865 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
2866
2867         * expr.c (store_expr): Remove code that is run when
2868         want_value & 1 is nonzero.
2869
2870 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
2871
2872         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
2873         from function pointer to void *.
2874
2875 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2876
2877         PR target/18032
2878         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
2879         the frame pointer adjustment when exception handling is enabled.
2880
2881 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
2882
2883         * stor-layout.c: Fix a comment typo.
2884
2885 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
2886
2887         * expr.c (store_field): Remove two arguments value_mode and
2888         unsignedp.
2889         (expand_assignment, store_constructor_field,
2890         expand_expr_real_1): Adjust calls to store_field.
2891
2892 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
2893
2894         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
2895
2896         PR target/17317
2897         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
2898         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
2899         base and index register for loads.
2900
2901         * config/arc/t-arc: Fix multilib handling.
2902
2903 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
2904
2905         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
2906         don't inspect BLOCK_FOR_INSN for barriers.
2907         * emit-rtl.c (emit_barrier_before): Revert last change.
2908         (emit_barrier_after, emit_barrier): Ditto.
2909
2910         * doc/extend.texi (Extended Asm): Warn and provide example
2911         solution for using a call-clobbered asm register.
2912         (Local Reg Vars): Similar.  Cross-reference example.
2913
2914 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
2915
2916         * tree-cfg.c (group_case_labels): Look at the second to last
2917         case statement for combing with the default case.
2918
2919 2004-10-19  Richard Hendeson  <rth@redhat.com>
2920
2921         PR 17962
2922         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
2923
2924 2004-10-19  Richard Hendeson  <rth@redhat.com>
2925
2926         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
2927         succeeds, only expand the result.
2928
2929 2004-10-19  Richard Hendeson  <rth@redhat.com>
2930
2931         PR middle-end/17885
2932         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
2933         of INDIRECT_REF.
2934
2935 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
2936
2937         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
2938         loop with goto.
2939
2940 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
2941
2942         * expr.c (expand_assignment): Remove the last argument.
2943         Change the return type to void.
2944         * expr.h: Update the prototype of expand_assignment.
2945         * function.c (assign_parm_setup_reg): Update a call to
2946         expand_assignment.
2947         * stmt.c (expand_asm_expr): Likewise.
2948
2949 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
2950
2951         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
2952         unnecessary assignments to temp.  Return const0_rtx.
2953
2954 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2955
2956         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
2957
2958 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
2959
2960         * configure.ac (powerpc-*-darwin*): Require assembler to support
2961         .machine directive.
2962         * configure: Regenerate.
2963
2964 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2965
2966         * reload1.c (ior_hard_reg_set): Remove.
2967         (finish_spills): Use IOR_HARD_REG_SET instead of
2968         ior_hard_reg_set.
2969
2970 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
2971
2972         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
2973         the currently visited word to right.
2974
2975 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2976
2977         PR middle-end/18045
2978         * expmed.c (expand_smod_pow2): Handle modes whose size
2979         is greater than that of HOST_WIDE_INT.
2980
2981 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
2982
2983         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
2984
2985 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2986             Roger Sayle  <roger@eyesopen.com>
2987
2988         PR middle-end/17813
2989         * dojump.c (discard_pending_stack_adjust): New function.
2990         (clear_pending_stack_adjust): Call it.
2991         * expr.h (discard_pending_stack_adjust): Declare it.
2992         * explow.c (emit_stack_save): Emit pending stack adjustments
2993         before saving the stack pointer.
2994         (emit_stack_restore): Discard pending stack adjustments before
2995         restoring the stack pointer.
2996
2997 2004-10-18  Richard Henderson  <rth@redhat.com>
2998
2999         * c-common.c (handle_mode_attribute): Allow scalar->vector
3000         type changes yet.
3001
3002 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3003
3004         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
3005         value to expand_assignment.
3006
3007 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3008
3009         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
3010         thread_jumps.
3011         (thread_jumps): Iterate until no new forwarder block arises.
3012
3013 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3014
3015         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
3016         (thread_jumps): Use forwardable as cache of
3017         tree_forwarder_block_p throughout the function.
3018
3019 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3020
3021         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
3022
3023 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
3024
3025         PR middle-end/15014
3026         PR middle-end/16973
3027         * tree-cfg.c (remove_bb): If we have a label expression in the
3028         basic block and the label we have taken the address, move the
3029         label expression to the basic block which is previous in the
3030         linked list.
3031         (tree_verify_flow_info): Fix printing out the label name of the
3032         problematic label expression.
3033
3034 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
3035
3036         PR rtl-optimization/18002
3037         * simplify-rtx.c (mode_signbit_p): Externalize function...
3038         * rtl.h (mode_signbit_p): ... to here.
3039         * combine.c (simplify_shift_const): Recognize PLUS signbit as
3040         canonical form of XOR signbit and move to outer op.
3041
3042 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
3043
3044         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
3045         Update all callers.
3046         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
3047         Don't call fold_stmt more than once, use bsi_replace.
3048
3049 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
3050
3051         PR tree-optimization/17656
3052         * tree-ssa.c (replace_immediate_uses): When replacing a
3053         constant, if the call to fold_stmt produced a different
3054         statement, get an appropriate statement pointer by scanning
3055         STMT's basic block.
3056
3057 2004-10-18  Richard Henderson  <rth@redhat.com>
3058
3059         * pointer-set.c (hash1): Don't use libm functions in fallback case.
3060
3061 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
3062
3063         PR bootstrap/17684
3064         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
3065         (stage1-start): Remove and copy libunwind.a and
3066         libunwind*$(SHLIB_EXT) instead of libunwind*.
3067         (stage2-start): Likewise.
3068         (stage3-start): Likewise.
3069         (stage4-start): Likewise.
3070         (stageprofile-start): Likewise.
3071         (stagefeedback-start): Likewise.
3072
3073         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
3074         the shared library to be created and don't remove the existing
3075         shared library.
3076         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
3077         * config/i386/t-nwld (SHLIB_LINK): Likewise.
3078         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
3079         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
3080         * config/sh/t-linux (SHLIB_LINK): Likewise.
3081         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
3082         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
3083         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
3084         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
3085
3086         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
3087         files.
3088
3089 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3090
3091         * basic-block.h (reg_set_iterator): New.
3092         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
3093         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
3094         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
3095         * caller-save.c (save_call_clobbered_regs): Adjust to the new
3096         style.
3097         * cfgcleanup.c (thread_jump): Likewise.
3098         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
3099         * conflict.c (conflict_graph_compute): Likewise.
3100         * flow.c (verify_local_live_at_start, update_life_info,
3101         initialize_uninitialized_subregs, propagate_one_insn,
3102         init_propagate_block_info, free_propagate_block_info,
3103         propagate_block, dump_regset): Likewise.
3104         * global.c (global_conflicts): Likewise.
3105         * graph.c (start_bb): Likewise.
3106         * local-alloc.c (update_equiv_regs): Likewise.
3107         * loop.c (load_mems): Likewise.
3108         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
3109         find_reg, finish_spills): Likewise.
3110         * resource.c (mark_target_live_regs): Likewise.
3111         * sched-deps.c (sched_analyze_insn): Likewise.
3112         * sched-rgn.c (sched-rgn.c): Likewise.
3113         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
3114
3115 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
3116
3117         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
3118         operand 1 instead of 2
3119
3120 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
3121
3122         * loop-unroll.c: Fix comment typos.
3123
3124 2004-10-18  Revital Eres  <eres@il.ibm.com>
3125
3126         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
3127         * loop-unroll.c: Include varray.h.
3128         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
3129         opt_info and expand it to support variable expansion.
3130         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
3131         expand it to support variable expansion.
3132         (pt_info_start_duplication): Rename si_info_start_duplication.
3133         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
3134         to the variable expansion optimization.
3135         (free_opt_info): Rename free_si_info.
3136         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
3137         expand_var_during_unrolling, insert_var_expansion_initialization,
3138         combine_var_copies_in_loop_exit, release_var_copies,
3139         get_expansion): New functions.
3140         (peel_loop_completely, unroll_loop_constant_iterations,
3141         unroll_loop_runtime_iterations, peel_loop_simple,
3142         unroll_loop_stupid): Change uses of struct si_info
3143         to struct opt_info
3144         and add uses of fvariable-expansion-in-unroller flag.
3145         * params.def: Add parameter to restrict the number of expansions.
3146         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
3147         the number of expansions.
3148         * common.opt: (fvariable-expansion-in-unroller): New flag.
3149         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
3150
3151 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
3152
3153         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
3154         __GXX_MERGED_TYPEINFO_NAMES to 0.
3155
3156 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
3157
3158         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
3159         handle barriers in a bb by checking that it points to a NULL bb.
3160         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
3161         (emit_barrier_after, emit_barrier): Ditto.
3162
3163 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
3164
3165         * doc/extend.texi (Attribute Syntax): Clarify details of
3166         attributes on parameters.
3167
3168 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
3169
3170         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
3171         loop.
3172
3173 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
3174
3175         Revert:
3176         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
3177
3178         * c-typeck.c (default_function_array_conversion): Always create
3179         &a[0] for array types.
3180         (build_unary_op): Do not fold &a[x] into a + x.
3181
3182 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
3183
3184         PR middle-end/17925
3185         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
3186         block if there is a goto with a locus.
3187
3188 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
3189
3190         * config/elfos.h, config/gofast.h, config/interix.h,
3191         config/netbsd.h, config/svr3.h, config/vxworks.h,
3192         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
3193         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
3194         config/alpha/netbsd.h, config/arm/arm-modes.def,
3195         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
3196         config/cris/aout.h, config/frv/frv-modes.def,
3197         config/i386/beos-elf.h, config/i386/gas.h,
3198         config/i386/i386-coff.h, config/i386/i386-modes.def,
3199         config/i386/linux.h, config/i386/linux64.h,
3200         config/i386/mingw32.h, config/i386/netbsd-elf.h,
3201         config/i386/netbsd64.h, config/i386/sco5.h,
3202         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
3203         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
3204         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
3205         config/mips/mips-modes.def, config/mips/sdb.h,
3206         config/mips/vr.h, config/mips/vxworks.h,
3207         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
3208         config/pa/pa32-linux.h, config/rs6000/40x.md,
3209         config/rs6000/7450.md, config/rs6000/8540.md,
3210         config/rs6000/linuxspe.h, config/rs6000/power4.md,
3211         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
3212         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
3213         config/s390/s390-modes.def, config/sh/elf.h,
3214         config/sh/sh-modes.def, config/sh/sh64.h,
3215         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
3216         config/stormy16/stormy16.md, config/v850/v850-protos.h,
3217         config/vax/vax.md: Update copyright.
3218
3219 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
3220
3221         * expr.c (expand_expr_real_1): Remove an obsolete comment.
3222
3223 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
3224
3225         * c-typeck.c (default_function_array_conversion): Always create
3226         &a[0] for array types.
3227         (build_unary_op): Do not fold &a[x] into a + x.
3228
3229 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
3230
3231         * pointer-set.c (hash1): Use integer part of 2^64 / phi
3232         instead 2^32 / phi if long is 64-bit.
3233
3234 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
3235
3236         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
3237         RID_PTRVALUE.
3238         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
3239         declarations.
3240         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
3241         __ptrextent__, __ptrvalue and __ptrvalue__.
3242         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
3243         entries.
3244
3245 2004-10-16  Dale Johannesen  <dalej@apple.com>
3246
3247         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
3248
3249 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
3250
3251         PR tree-optimization/17766
3252         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
3253         (dom_info_available_p): Declare.
3254         * cfghooks.c (split_block, make_forwarder_block): Use
3255         dom_info_available_p.
3256         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
3257         free_dominance_info, verify_dominators): Ditto.
3258         (dom_info_available_p): New function.
3259         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
3260         (thread_jumps): Use dom_info_available_p.
3261         * tree-complex.c (expand_complex_div_wide): Ditto.
3262         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
3263
3264 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
3265
3266         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
3267         (find_best_candidate): Take also important candidates into account.
3268         (find_optimal_iv_set): Initialize important_candidates bitmap.
3269
3270 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
3271
3272         PR tree-optimization/17560
3273         * predict.c (tree_estimate_probability): Mark irreducible
3274         loops.
3275
3276 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
3277
3278         PR rtl-optimization/17723
3279         * cfgcleanup.c (merge_memattrs): Handle case when
3280         MEM_SIZE == NULL_RTX.
3281
3282 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
3283
3284         * toplev.c (dump_file_name): Change type to be const.
3285
3286 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3287
3288         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
3289         non_lvalue to stop something being a null pointer constant.
3290
3291 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
3292
3293         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
3294         available for TARGET_FPRS.
3295         (FUNCTION_VALUE_REGNO_P): Same.
3296
3297 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
3298
3299         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3300         -maltivec in same style as other ISA options.
3301
3302 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
3303
3304         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
3305         definition.
3306
3307 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
3308
3309         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
3310         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
3311         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
3312         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
3313         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
3314         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
3315         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
3316         predict.def, predict.h, protoize.c, reload.h, resource.h,
3317         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
3318         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
3319         unwind-sjlj.c, value-prof.h: Update copyright.
3320
3321 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
3322
3323         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
3324
3325 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
3326
3327         * tree-optimize.c (execute_one_pass): Stop timer right after
3328         executing the pass.
3329
3330 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
3331
3332         Revert:
3333         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
3334         PR middle-end/17967
3335         Revert:
3336                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
3337                 (remove_useless_stmts_1):  Fold trees we know how to fold.
3338
3339 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
3340
3341         * configure.ac: Add .machine power4 directive when testing for
3342         mfcr field.
3343         * configure: Regenerate.
3344
3345 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
3346
3347         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
3348
3349 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
3350
3351         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
3352         always.
3353
3354 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
3355
3356         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
3357         for 'f' if !TARGET_FPRS.
3358
3359 2004-10-14  Richard Henderson  <rth@redhat.com>
3360
3361         PR debug/14492
3362         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
3363
3364 2004-10-14  Richard Henderson  <rth@redhat.com>
3365
3366         PR c/17023
3367         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
3368         as error_mark_node.
3369         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
3370         instaed of current_function_decl non-null.
3371
3372 2004-10-14  Matt Austern  <austern@apple.com>
3373
3374         * pointer-set.c: New file, special-purpose hash table.
3375         * pointer-set.h: New file.
3376         * tree.h (struct pointer_set_t): Declare as opaque type.
3377         (tree_walk): Last argument is pointer_set_t* now.
3378         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
3379         (walk_type_fields):
3380         (walk_tree): Convert from htab_t to pointer_set_t for keeping
3381         track of which nodes have already been visited.
3382         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
3383         * cgraphunit.c (cgraph_create_edges): Likewise.
3384         (cgraph_characterize_statics_local): Likewise.
3385         * tree-dfa.c (collect_dfa_stats): Likewise.
3386         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
3387         pointer_set_t* now.
3388         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
3389         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
3390         of walk_subtrees is pointer_set_t* now.
3391         * Makefile.in (OBJS-common): add pointer-set.o
3392         (tree-inline.o): Depends on pointer-set.h
3393         (tree-dfa.o): Likewise
3394         (cgraphunit.o): Likewise
3395
3396 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
3397
3398         * config/rs6000/darwin.h (ASM_SPEC): Delete.
3399         (TARGET_ASM_FILE_START): Define.
3400         * config/darwin.h (ASM_SPEC): Define.
3401         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
3402         -mlong-double-128, it's the default.  Update comment about reason
3403         for force_cpusubtype_ALL.
3404         * config/rs6000/darwin-vecsave.asm: Supply .machine.
3405         * config/rs6000/darwin-world.asm: Likewise.
3406         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
3407         (symbolic_operand): Delete #if 0ed code.
3408
3409 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
3410
3411         * stmt.c (add_case_node): Make sure that we have integer
3412         constant before calling tree_int_cst_compare.
3413
3414 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
3415
3416         PR middle-end/17967
3417         Revert:
3418                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
3419                 (remove_useless_stmts_1):  Fold trees we know how to fold.
3420
3421 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
3422
3423         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
3424         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
3425         -m64.
3426
3427 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
3428
3429         * reload.c (find_reloads): When reloading a PLUS with constant
3430         operand, make sure the constant is pushed to the constant pool
3431         if required.
3432         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
3433         reload bug workaround.
3434         (s390_expand_plus_operand): Likewise.
3435
3436 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
3437
3438         * opts.c (common_handle_option): Do not enable
3439         flag_speculative_prefetching for -fprofile-generate/use.
3440
3441 2004-10-14  Devang Patel  <dpatel@apple.com>
3442
3443         PR 17635
3444         * tree-if-conv.c (process_phi_nodes): Process latch block.
3445         (combine_blocks): Process latch block and update loop structure.
3446
3447 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
3448
3449         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
3450         (vect_update_ivs_after_vectorizer):
3451         (vect_transform_for_unknown_loop_bound):
3452         (tree_duplicate_loop_to_edge):
3453         (allocate_new_names):
3454         (rename_use_op):
3455         (rename_def_op):
3456         (rename_variables_in_bb):
3457         (free_new_names):
3458         (rename_variables_in_loop):
3459         (copy_phi_nodes):
3460         (update_phis_for_duplicate_loop):
3461         (update_phi_nodes_for_guard):
3462         (make_loop_iterate_ntimes):
3463         (tree_duplicate_loop_to_edge_cfg):
3464         (add_loop_guard):
3465         (vect_analyze_loop_with_symbolic_num_of_iters):
3466         (verify_loop_for_duplication):
3467         (vect_gen_niters_for_prolog_loop):
3468         (vect_update_niters_after_peeling):
3469         (vect_update_inits_of_dr):
3470         (vect_update_inits_of_drs):
3471         (vect_build_loop_niters):
3472         (vect_do_peeling_for_alignment): New functions.
3473         (vect_transform_loop): Add unknown and known but indivisible loop
3474         bound support; add peeling for unalignment support.
3475         (vect_analyze_loop_form): Support symbolic number of iterations.
3476         (vect_transform_loop_bound): New input parameter.
3477         (vect_get_loop_niters): Change input parameter type.
3478         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
3479         (vectorizable_store): Allow unaligned access.
3480         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
3481         (vect_analyze_data_refs_alignment): Allowed one unaligned
3482         store.
3483         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
3484         to use tree.
3485         (LOOP_VINFO_INT_NITERS): New macro.
3486         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
3487         (do_peeling_for_alignment):
3488         (unaligned_drs): New members of _loop_vec_info.
3489         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
3490
3491 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
3492
3493         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
3494         (struct tree_string): Remove "const" qualifier for "str".
3495
3496 2004-10-14  Ira Rosen  <irar@il.ibm.com>
3497
3498         * tree-vectorizer.c (vect_analyze_data_refs): Call
3499         vect_get_base_and_bit_offset to get memory tag for array ref.
3500         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
3501
3502 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
3503
3504         * configure.ac: Use $LN_S for creating symlinks (not $LN).
3505         * configure: Regenerate.
3506
3507 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3508
3509         * doc/install.texi (*-*-solaris2*): Update with info about kernel
3510         patches to solve spurious testsuite failures.
3511
3512 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
3513
3514         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
3515         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
3516         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
3517         gcc_assert under ENABLE_CHECKING.
3518         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
3519         get_vectype_for_scalar_type).
3520
3521         (vect_get_vec_def_for_operand): Remove redundant variables.
3522         (vect_transform_loop): Likewise.
3523
3524 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
3525
3526         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
3527         global for -mcaller-super-interworking.
3528         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
3529         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
3530         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
3531         not need a frame pointer.
3532         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
3533         the soft frame pointer offset.
3534         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
3535         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
3536         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
3537         the stack.  Use frame_pointer_needed to choose between them.
3538         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
3539         (interwork_with_frame): New macro.
3540         (interwork): Add _interwork_{r7,r11}_call_via_rN().
3541
3542 2004-10-14  Ben Elliston  <bje@au.ibm.com>
3543
3544         PR other/17900
3545         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
3546         up the filename looking for a previous directory separator.
3547
3548 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3549
3550         * c-tree.h (enum c_typespec_kind, struct c_typespec,
3551         parser_xref_tag): New.
3552         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
3553         typedef_p.
3554         (declspecs_add_type): Adjust prototypes.
3555         * c-parse.in (%union): Add tstype.
3556         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
3557         typespec_reserved_attr, typespec_nonreserved_nonattr,
3558         structsp_attr, structsp_nonattr): Change to tstype.  Update
3559         actions.
3560         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
3561         (declspecs_add_type): Update to take struct c_typespec argument.
3562         Set tag_defined_p and typedef_p as appropriate.
3563         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
3564         Update to return struct c_typespec.
3565         (shadow_tag_warned): Don't let empty declarations with qualifiers
3566         or storage class specifiers redeclare a tag if a previous
3567         declaration is visible.
3568
3569 2004-10-13  Richard Henderson  <rth@redhat.com>
3570
3571         PR debug/15860
3572         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
3573         for DECL_INCOMING_RTL.
3574
3575 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
3576
3577         PR target/17984
3578         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
3579         trunc_int_for_mode for constants used in shortened mode.
3580
3581 2004-10-13  Richard Henderson  <rth@redhat.com>
3582
3583         PR c/17384
3584         * c-common.c (handle_mode_attribute): Disallow mode changes that
3585         alter the CODE of the top-level type.
3586
3587         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
3588         integer from internal limits macros.
3589         * config/i386/mm3dnow.h (__v2sf): Fix base type.
3590
3591 2004-10-13  Richard Henderson  <rth@redhat.com>
3592
3593         PR debug/13841
3594         * function.c (instantiate_decl): Recurse for CONCAT.
3595
3596 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
3597
3598         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
3599         andi./andis.
3600         (anddi3): Same.
3601         (extzvdi_internal1): Add attribute "compare".
3602         (extzvdi_internal2): Same.
3603
3604 2004-10-12  Tom Tromey  <tromey@redhat.com>
3605
3606         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
3607
3608 2004-10-13  Dale Johannesen  <dalej@apple.com>
3609
3610         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
3611
3612 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
3613
3614         * toplev.c (compile_file): Call mudflap_finish_file from here ...
3615         * c-decl.c (c_write_global_declarations): ... instead of here ...
3616         * cp/decl.c (cp_finish_file): ... and here.
3617         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
3618
3619 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
3620
3621         * tree-ssa-dom.c (record_range): Free the element if we are not
3622         going to use it.
3623
3624 2004-10-13  Tom Tromey  <tromey@redhat.com>
3625
3626         PR java/15578:
3627         * gcc.c (option_map): Added --extdirs and --encoding.
3628
3629 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3630
3631         PR target/14454
3632         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
3633         sparc_can_output_mi_thunk.
3634         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
3635         handling of vcall offset.
3636         (sparc_can_output_mi_thunk): New predicate.
3637         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
3638         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
3639         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
3640
3641         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
3642
3643         * config/sparc/sparc.md (movdi): Remove redundant test.
3644
3645 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
3646
3647         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
3648         TDF_IPA from -fdump-tree-*-all.
3649
3650 2004-10-13  Paul Brook  <paul@codesourcery.com>
3651
3652         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
3653         * config/arm/arm.c (thumb_find_work_register): Update comments.
3654         (arm_load_pic_register): Add argument for scratch register.
3655         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
3656         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
3657
3658 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
3659
3660         * tree-data-ref.c: Fix comment typos.
3661
3662 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
3663             Zdenek Dvorak  <dvorakz@suse.cz>
3664
3665         PR tree-optimization/17724
3666         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
3667
3668 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
3669
3670         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
3671         (altivec_builtin_mask_for_store): Likewise.
3672         (altivec_init_builtins): Use lang_hooks.builtin_function to
3673         create the decls for builtin_altivec_mask_for_load/store.
3674
3675 2004-10-13  Nick Clifton  <nickc@redhat.com>
3676
3677         * config/c4x/c4x.c: Remove inclusion of loop.h.
3678
3679 2004-10-12  Ben Elliston  <bje@au.ibm.com>
3680
3681         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
3682         (ei_container): New; renamed.
3683         (ei_start, ei_last): New macros.
3684         (ei_start_1, ei_last_1): Renamed from ei_start.
3685         (ei_last_1, ei_end_p): Use ei_container() where applicable.
3686         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
3687         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
3688
3689 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
3690
3691         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
3692         * cfgloop.c (initialize_loops_parallel_p): New.
3693         (flow_loops_find): Initialize the parallel_p field to true for all
3694         the loops.
3695         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
3696         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
3697         the size of the data accessed in the loop.
3698         (struct nb_iter_bound): Moved...
3699         * cfgloop.h (struct nb_iter_bound): ... here.
3700         (estimated_nb_iterations, parallel_p): New fields in struct loop.
3701         (record_estimate): Declare extern here.
3702         * tree-chrec.c: Fix comments.
3703         (nb_vars_in_chrec): New function.
3704         * tree-chrec.h (nb_vars_in_chrec): Declared here.
3705         * tree-data-ref.c: Don't include lambda.h, that is already included
3706         in tree-data-ref.h.
3707         (tree_fold_divides_p): Don't check for integer_onep.
3708         (tree_fold_bezout): Removed.
3709         (gcd): New static duplicated function.
3710         (int_divides_p, dump_subscript): New.
3711         (dump_data_dependence_relation): Use dump_subscript.
3712         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
3713         estimate_niter_from_size_of_data): New.
3714         (analyze_array_indexes, analyze_array): Call
3715         estimate_niter_from_size_of_data during the detection of array
3716         references.  Pass in a pointer to the statement that contains the
3717         array reference.
3718         (all_chrecs_equal_p): New.
3719         (compute_distance_vector): Renamed compute_subscript_distance.
3720         Deal with multivariate conflict functions.
3721         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
3722         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
3723         (non_affine_dependence_relation): New.
3724         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
3725         analyze_siv_subscript, analyze_miv_subscript,
3726         analyze_overlapping_iterations, subscript_dependence_tester):
3727         Initialize and return last_conflicts function.
3728         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
3729         compute_overlap_steps_for_affine_1_2): New.
3730         (analyze_siv_subscript_affine_cst): Removed.
3731         (analyze_subscript_affine_affine): Disprove dependences based on the
3732         iteration domains.  Solve the univariate dependence case as before,
3733         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
3734         Implement the multivariate case of 2 versus 1 variables.
3735         (build_classic_dist_vector, build_classic_dir_vector): Implement some
3736         unhandled cases.
3737         (find_data_references_in_loop): Compute and initialize
3738         loop->estimated_nb_iterations and loop->parallel_p.
3739         (analyze_all_data_dependences): Modify the debug dump order.
3740         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
3741         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
3742         (SUB_LAST_CONFLICT, subscript->last_conflict,
3743         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
3744         DDR_AFFINE_P, DDR_SIZE_VECT): New.
3745         (find_data_references_in_loop, initialize_data_dependence_relation,
3746         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
3747
3748 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
3749
3750         * configure: Regenerate.
3751
3752 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
3753
3754         PR 17892
3755         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
3756         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
3757         and constant folding of floating point MULT_EXPR/PLUS_EXPR
3758         expressions.
3759
3760 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
3761
3762         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
3763         (s390_gimplify_va_arg): Likewise.
3764
3765 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
3766
3767         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
3768         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
3769         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
3770         * regclass.c (record_address_regs): Remove ifdef.  Use
3771         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
3772         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
3773         definition.
3774         (scan_rtx_address, replace_oldest_value_addr): Use
3775         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
3776         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
3777         unnecessary definitions.
3778         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
3779         and MODE_BASE_REG_REG_CLASS.
3780         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
3781         (MODE_BASE_REG_REG_CLASS): Define.
3782         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
3783         (REG_MODE_OK_FOR_REG_BASE_P): Define.
3784         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
3785         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
3786
3787 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
3788
3789         * tree-ssa-alias.c (verify_name_tags): New function.
3790         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
3791         (verify_alias_info): Call verify_name_tags.
3792
3793 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
3794
3795         PR rtl-optimization/17931
3796         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
3797         ZERO_EXTRACT in it.
3798
3799 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
3800
3801         * arm.c (arm_print_operand): Use output_operand_lossage where possible
3802         rather than aborting.
3803
3804 2004-10-12  Paul Brook  <paul@coudesourcery.com>
3805
3806         * config.gcc: Add armv6{k,z,zk}
3807         * config/arm/arm-cores.def: Add arm1176 and mpcore.
3808         * config/arm/tune.md: Regenerate.
3809         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
3810         Define.
3811         (all_architectures): Add armv6k, armv6z, armv6zk.
3812         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
3813         * doc/invoke.texi: Document new arch and cpu values.
3814
3815 2004-10-12  Paul Brook  <paul@coodesourcery.com>
3816
3817         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
3818         meabi=4.
3819
3820 2004-10-12  Paul Brook  <paul@codesourcery.com>
3821
3822         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
3823         Handle negative constants.
3824
3825 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
3826
3827         PR c/17301
3828         * c-typeck.c (convert_arguments): Return error_mark_node if there
3829         are too few arguments.
3830         (build_function_call): Handle error_mark_node return from
3831         convert_arguments.
3832
3833 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
3834
3835         * configure.ac (symbolic_link): Replace with $LN_S.
3836         (Assembler/Linker): Hard link from gas and binutils trees.
3837         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
3838         * configure: Regenerate.
3839
3840 2004-10-12  Paul Brook  <paul@codesourcery.com>
3841
3842         * configure.ac: Don't look for host assembler when building a canadian
3843         cross.
3844         * configure: Regenerate.
3845
3846 2004-10-11  Roger Sayle  <roger@eyesopen.com>
3847
3848         PR other/17361
3849         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
3850         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
3851         line options for "-lang-asm" and if found allow any of the C-family
3852         front-end options.
3853         (c_common_handle_option): Remove last use of permit_fortran_options.
3854
3855 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
3856
3857         * config/s390/s390.c (print_operand): Support 'S' format flag.
3858         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
3859         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
3860         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
3861         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
3862         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
3863         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
3864         ("*movstricthi"): Likewise.
3865         ("*load_multiple_di", "*load_multiple_si"): Likewise.
3866         ("*store_multiple_di", "*store_multiple_si"): Likewise.
3867         ("*sethiqisi", "*sethihisi"): Likewise.
3868         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
3869         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
3870         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
3871         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
3872         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
3873
3874         ("*tmhi_full"): Fix incorrect op_type attribute.
3875
3876         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
3877         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
3878         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
3879         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
3880
3881 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
3882
3883         PR middle-end/16266
3884         * function.c (temp_slots_at_level): Fix typo which creates too
3885         many temp stack slots levels.
3886
3887 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
3888
3889         * config/s390/s390.c (s390_trampoline_template): Generate shorter
3890         trampoline code.
3891         (s390_trampoline_instantiate): Adapt.
3892         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
3893
3894 2004-10-11  Roger Sayle  <roger@eyesopen.com>
3895
3896         PR middle-end/17657
3897         * stmt.c (add_case_node): Add additional type argument.  Declare
3898         as static to match prototype.  Convert the upper and lower bounds
3899         to the specified index type.  Optimize away case ranges/values
3900         that are outside the index type's bounds.  Truncate case ranges
3901         that span the index type's bounds.
3902         (expand_case): Avoid unnessary computation and memory allocation
3903         when index type is error_mark_node.  Pass index_type as required
3904         by change to add_case_node API.  No need to convert case range
3905         bounds to index_type, this is now done by add_case_node.
3906
3907 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
3908
3909         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
3910         * config/s390/s390.c (s390_offset_p): New function.
3911         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
3912         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
3913         transform Q->Q alternatives to *clc pattern.
3914         ("*clc"): Move.
3915         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
3916         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
3917         to transform Q->Q alternatives to *mvc pattern.
3918         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
3919         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
3920         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
3921         transform Q->Q alternatives to *nc pattern.
3922         ("*nc"): New insn.  New peephole to merge adjacent NCs.
3923         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
3924         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
3925         transform Q->Q alternatives to *oc pattern.
3926         ("*oc"): New insn.  New peephole to merge adjacent OCs.
3927         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
3928         transform Q->Q alternatives to *xc pattern.
3929         ("*xc"): New insn.  New peephole to merge adjacent XCs.
3930         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
3931
3932 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
3933
3934         * gimplify.c (gimple_push_condition): Make sure that we don't
3935         have any saved condition cleanup if we were at the top level.
3936
3937 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
3938
3939         * config/frv/frv.md (*adddi3_internal): Change name to...
3940         (adddi3): ...replacing the exisiting define_expand.  Combine
3941         alternatives.  Fix the range of the constant constraints ('J' instead
3942         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
3943         to extract the lower and upper halves of the DImode operands.
3944         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
3945         (adddi3_lower): Fix the range of the constant constraints and
3946         remove the bogus operands[2] check.
3947         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
3948         operand 2.  Use addxi to handle constant operands.
3949         (subdi3_lower, subdi3_upper): Don't handle constant operands.
3950
3951 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
3952
3953         * gengtype-lex.l: Add commented } & ) characters to unconfuse
3954         editor's paren matching. Allow #define inside a struct.
3955
3956 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
3957
3958         PR middle-end/17703
3959         part of PR c++/17657
3960         * fold-const.c (fold_build_cleanup_point_expr): New function.
3961         * tree.h (fold_build_cleanup_point_expr): Prototype.
3962
3963 2004-10-10  Eric Christopher  <echristo@redhat.com>
3964
3965         * dwarf2out.c: Move attribute to subprogram declaration
3966         instead of subroutine type.
3967
3968 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
3969
3970         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
3971         hoist_insn_after, and hoist_insn_to_edge.
3972         * rtl.h: Remove the prototypes for reg_referenced_between_p,
3973         no_jumps_between_p, and insn_dependent_p.
3974         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
3975         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
3976         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
3977         hoist_insn_to_edge): Remove.
3978
3979 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3980
3981         PR c/17881
3982         * c-decl.c (grokparms): Don't warn for parameters of incomplete
3983         type in declarations that are not definitions except for the case
3984         of parameters of void type.
3985
3986 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
3987
3988         * tree-cfg.c: Fix comment typos.
3989
3990 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3991
3992         PR c/17301
3993         * builtins.c (expand_builtin_va_start): Check for too few
3994         arguments to va_start.
3995
3996 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3997
3998         PR c/17189
3999         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
4000         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
4001         pedantic.
4002         * c-parse.in (component_decl): Don't pedwarn here for unnamed
4003         fields.
4004
4005 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
4006
4007         PR tree-optimization/17906
4008         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
4009         copy non-gimple reg arguments.
4010
4011 2004-10-09  Roger Sayle  <roger@eyesopen.com>
4012
4013         PR rtl-optimization/17853
4014         * simplify-rtx.c (simplify_relational_operation): Correct comment.
4015         Reorganize handling of comparison operations with floating point
4016         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
4017         Likewise, introduce support for comparison operations with vector
4018         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
4019
4020         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
4021         * doc/tm.texi: Likewise.
4022
4023 2004-10-09  Steven Bosscher  <stevenb@suse.de>
4024
4025         * regs.h (struct reg_info_def): Remove the last_node_uid and
4026         changes_mode fields.
4027         (REGNO_LAST_NOTE_UID): Don't define.
4028         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
4029         * regmove.c (copy_src_to_dest): Likewise.
4030
4031 2004-10-09  Roger Sayle  <roger@eyesopen.com>
4032
4033         PR middle-end/17894
4034         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
4035         relational comparison operator op needs to be swapped/reversed when
4036         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
4037
4038 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
4039
4040         PR tree-opt/17902
4041         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
4042         instead of bsi_start.
4043         (value_replacement): Likewise.
4044         (abs_replacement): Likewise
4045
4046 2004-10-09  Steven Bosscher  <stevenb@suse.de>
4047
4048         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
4049         (expand_gimple_cond_expr, expand_gimple_tailcall,
4050         expand_gimple_basic_block): Use it to dump RTL for each stmt.
4051         (tree_expand_cfg): Announce full RTL function dump.
4052         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
4053         not the graph version.
4054         * tree-pretty-print.c (dump_generic_node): Allow empty statements
4055         in the arms of a COND_EXPR for lowered nodes.
4056
4057 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
4058
4059         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
4060         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
4061         strtoufix16, strtoufix32, strtoufix64): Declare.
4062
4063 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
4064
4065         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
4066         for an out-of-range floating point constant.
4067         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
4068         warning if the target format does not support infinities.
4069
4070 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
4071
4072         * emit-rtl.c (last_label_num, base_label_num): Remove.
4073         (max_label_num): Always return label_num.
4074         (set_new_last_label_num, restore_emit_status): Remove.
4075         (init_emit): Don't initialize last_label_num.
4076         * function.c (pop_function_context_from): Don't call
4077         restore_emit_status.
4078         * function.h: Remove the prototype for restore_emit_status.
4079         * rtl.h: Remove the prototype for set_new_last_label_num.
4080
4081 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
4082
4083         * stmt.c (expand_decl_init): Remove.
4084         * tree.h: Remove the corresponding prototype.
4085
4086 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
4087
4088         * integrate.c (try_constants, subst_constants, mark_stores):
4089         Remove.
4090         * integrate.h: Remove the prototype for try_constants.
4091
4092 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
4093
4094         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
4095         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
4096         comments about its relevance to errors.
4097         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
4098
4099 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
4100
4101         PR c/16999
4102         * c-ppoutput.c (cb_ident): Don't quote string as it is already
4103         quoted.
4104
4105 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
4106
4107         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
4108         reference_node_pool.
4109
4110 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
4111
4112         * tree-cfg.c: Fix a comment typo.
4113
4114 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
4115
4116         * config/s390/s390.c (s390_register_info): Don't save fprs for
4117         -msoft-float.
4118         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
4119
4120 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
4121
4122         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
4123         (TARGET_DEFAULT): Use symbolic values.
4124         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
4125         (TARGET_DEFAULT): Use symbolic values.
4126         * config/s390/s390.c (s390_backchain_string): Initialize to
4127         TARGET_DEFAULT_BACKCHAIN.
4128
4129 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4130
4131         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
4132         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
4133         code.
4134         (expand_builtin_strcat): Accept a type parameter.
4135         (fold_builtin_mempcpy): Accept a type and endp parameter.
4136
4137         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
4138         Accept an `exp' instead of an `arglist'.
4139
4140 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
4141
4142         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
4143         reverting my 2004-09-07 patch to use build_int_cst.
4144
4145 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4146
4147         PR target/17245
4148         * config/sparc/sparc.c (input_operand): Remove redundant code
4149         for handling LO_SUM.
4150         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
4151         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
4152         Otherwise only accept it for TFmode if quad move insns are available.
4153
4154 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
4155
4156         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
4157         common cases will be caught earlier than others.
4158
4159 2004-10-08  Michael Matz  <matz@suse.de>
4160
4161         * loop-doloop.c (doloop_optimize): Extend count.
4162
4163 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4164
4165         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
4166         (prefetch): Convert to expander.
4167
4168 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4169
4170         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
4171         first argument of CALL.
4172         (tls_local_dynamic): Likewise.
4173
4174 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
4175
4176         * c-typeck.c (enum impl_conv): New.
4177         (convert_for_assignment): Use it.  Take tree for function called
4178         instead of its name.  Handle ObjC selectors for diagnostics at
4179         start of function.  Select diagnostic text within the function
4180         using full sentences for diagnsotics.  Use %qE to name functions
4181         in diagnostics.
4182         (convert_arguments, build_modify_expr,
4183         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
4184         callers to convert_for_assignment.
4185         (warn_for_assignment): Remove.
4186
4187 2004-10-08  Nick Clifton  <nickc@redhat.com>
4188
4189         * config/sh/symbian.c (symbian_possibly_export_base_class):
4190         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
4191         TYPE_CONTAINS_VPTR_P.
4192
4193 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4194
4195         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
4196         fixed registers form all_used_regs. Update call_really_used_regs.
4197         (CALL_REALLY_USED_REGISTERS): Define.
4198         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
4199         with call_really_used_regs.
4200
4201 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
4202
4203         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
4204         for -profile as well as -p and -pg.
4205
4206 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
4207
4208         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
4209
4210 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
4211
4212         * tree-cfg.c (tree_block_forwards_to): Remove.
4213         * tree-flow.h: Remove the corresponding prototype.
4214
4215 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
4216
4217         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
4218         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
4219
4220 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
4221
4222         Radar 3813796
4223         * config/rs6000/rs6000.c (rs6000_generate_compare): When
4224         flag_trapping_math is in effect, don't generate subtract
4225         instructions.
4226
4227 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
4228
4229         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
4230         * config/s390/s390.c (s390_narrow_logical_operator): New function.
4231         (s390_extra_constraint_str): Add 'A' constraints.
4232         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
4233         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
4234         (CONSTRAINT_LEN): Likewise.
4235         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
4236         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
4237         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
4238         ("*iordi3"): Add OI alternative and splitter.
4239         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
4240         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
4241         ("*xordi3"): Add XI alternative and splitter.
4242         ("*xorsi3", "*xorhi3"): Likewise.
4243
4244 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
4245
4246         * config/mips/mips.c (mips_function_rodata_section): New function.
4247         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
4248
4249 2004-10-07  Devang Patel  <dpatel@apple.com>
4250
4251         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
4252         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
4253         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
4254         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
4255         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
4256         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
4257         UNSPEC_VCONDU_V16QI): New constant defines.
4258         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
4259         vconduv16qi): New patterns.
4260         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
4261         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
4262         (get_vec_cmp_insn): Same.
4263         (get_vsel_insn): Same.
4264         (rs6000_emit_vector_compare): Same.
4265         (rs6000_emit_vector_select): Same.
4266         (INSN_NOT_AVAILABLE): New.
4267
4268 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
4269
4270         PR tree-optimization/17749
4271         * tree-tailcall.c (find_tail_calls): Check that parameter is
4272         a gimple_reg.
4273
4274 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
4275
4276         * config/ia64/ia64.c: Fix a comment typo.
4277
4278 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4279
4280         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
4281
4282 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4283
4284         PR c++/17115
4285         * tree-inline.c (expand_call_inline): Do not warn for functions
4286         marked with attribute noinline.
4287
4288 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4289
4290         PR target/17862
4291         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
4292         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
4293
4294         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
4295         of 0 as 4th argument to pass_by_reference.
4296         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
4297
4298 2004-10-06  Eric Christopher  <echristo@redhat.com>
4299
4300         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
4301         attribute.
4302
4303 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
4304
4305         PR target/17770
4306         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
4307
4308 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
4309
4310         PR rtl-optimization/17791
4311         * loop-doloop.c (doloop_modify): Take number of iterations as
4312         argument.
4313         (doloop_optimize): Extend or shorten the number of iterations
4314         when changing mode of counter register.
4315         * loop-iv.c (lowpart_subreg): Export.
4316         * rtl.h (lowpart_subreg): Declare.
4317
4318 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
4319
4320         PR tree-optimization/17806
4321         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
4322         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
4323         flags moved to split_edge.
4324
4325 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4326
4327         PR middle-end/17835
4328         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
4329         before tentatively building the conditional move sequence.
4330
4331 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
4332
4333         PR target/16815
4334         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
4335         check.
4336         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
4337         function_arg_padding.
4338
4339 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
4340
4341         PR bootstrap/17857
4342         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
4343
4344 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
4345
4346         * hooks.c (hook_int_void_1, hook_void_int): Remove.
4347         * hooks.h: Remove the corresponding prototypes.
4348
4349 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
4350
4351         PR middle-end/17849
4352         * tree-nested.c (walk_stmt_info): Add changed field.
4353         (convert_nonlocal_reference): Set changed to when we
4354         change a decl to unnested decl.
4355         <case ADDR_EXPR>: Instead of checking if the immediate part
4356         of the ADDR_EXPR changed, check the field changed.
4357         Use recompute_tree_invarant_for_addr_expr instead of unsetting
4358         TREE_INVARIANT.
4359         (convert_local_reference):  Set changed to when we
4360         change a decl to unnested decl.
4361         <case ADDR_EXPR>: Instead of checking if the immediate part
4362         of the ADDR_EXPR changed, check the field changed.
4363         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
4364
4365 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
4366
4367         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
4368         * dwarf2out.c (dwarf2out_init): Remove references to
4369         DWARF2_GENERATE_TEXT_SECTION_LABEL.
4370         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
4371         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
4372
4373 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
4374
4375         * c-typeck.c (convert_arguments): Take expression for called
4376         function rather than its name.  Handle ObjC selectors directly
4377         rather than relying on warn_for_assignment to do so.  Call warning
4378         directly rather than warn_for_assignment.  Use %qE in diagnostics.
4379         Say "argument" rather than "arg" in diagnostics.
4380         (build_function_call): Update call to convert_arguments.
4381
4382 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
4383
4384         PR debug/17787
4385         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
4386         ENUMs specially instead of just saying we do.
4387
4388 2004-10-06  Eric Christopher  <echristo@redhat.com>
4389
4390         * dwarf2.h: Sync with include/elf/dwarf2.h
4391
4392 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
4393
4394         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
4395         and TREE_VEC nodes.
4396
4397 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
4398
4399         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
4400         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
4401
4402 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
4403
4404         * lambda-code.c (compute_nest_using_fourier_motzkin): New
4405         function.
4406         (lambda_compute_auxillary_space): Split from here.
4407
4408 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
4409
4410         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
4411         * tree-flow.h: Add prototype.
4412         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
4413         expr_invariant_in_loop.
4414
4415 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
4416
4417         * tree-cfg.c (thread_jumps): Remove a duplicate check for
4418         EXIT_BLOCK_PTR.
4419
4420 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
4421
4422         * config/s390/s390-protos.h (s_imm_operand): Remove.
4423         (s390_pool_operand): Add prototype.
4424         * config/s390/s390.c (general_s_operand): Remove.
4425         (s_imm_operand): Remove.
4426         (s_operand): Merge contents of general_s_operand.
4427         (s390_pool_operand): New function.
4428         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
4429         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
4430         ("*cmpdi_ccu"): Merge Q->Q alternative.
4431         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
4432         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
4433         ("*cli"): Remove.
4434         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
4435         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
4436         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
4437
4438 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
4439
4440         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
4441         call ia64_function_arg_boundary.
4442         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
4443         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
4444         (ia64_function_arg_advance): Do not put 128 bit floats into
4445         FP registers.
4446
4447 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4448
4449         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
4450         Accept an expression instead of an arglist.
4451         (expand_builtin_stpcpy): Accept an expression instead of an
4452         arglist.
4453
4454 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4455
4456         PR target/16007
4457         * doc/install.texi (*-*-solaris2*): Mention potential problem
4458         with Sun assembler + GNU linker and C++ programs.
4459         Document status of binutils 2.15 release.
4460
4461 2004-10-06  Jan Hubicka  <jh@suse.cz>
4462
4463         * cse.c (cse_main): Kill push/pop context.
4464
4465 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
4466
4467         * pretty-print.c: Include tree.h.
4468         (pp_base_prepare_to_format): New function, logic from
4469         text_specifies_location.
4470         (pp_base_format_text): Use gcc_assert.
4471         * pretty-print.h (pp_prepare_to_format): New macro.
4472         (pp_base_prepare_to_format): Prototype.
4473         * diagnostic.c (text_specifies_location): Delete.
4474         (bug_report_request): Delete.
4475         (diagnostic_set_info): Don't call text_specifies_location.
4476         (diagnostic_action_after_output): Put text from
4477         bug_report_request inline here.  Use gcc_unreachable.
4478         (diagnostic_report_current_function): Fix comment.
4479         (diagnostic_report_diagnostic): Clarify logic for error recursion.
4480         Call pp_prepare_to_format before diagnostic_starter.
4481         (trim_filename): Use IS_DIR_SEPARATOR.
4482         (fatal_error, internal_error): Use gcc_unreachable.
4483         (error_recursion): Call diagnostic_action_after_output to
4484         issue the bug_report_request message and exit.
4485         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
4486
4487         * c-parse.in: Add list of diagnostic messages to insulate
4488         translation template from version of yacc/bison used to
4489         compile the grammar.
4490
4491 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
4492
4493         PR 16406
4494         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
4495
4496 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4497
4498         * basic-block.h: Remove the prototype for
4499         flow_preorder_transversal_compute.
4500         * cfganal.c (dfst_node): Remove.
4501         (flow_preorder_transversal_compute): Likewise.
4502         * rtl.h: Remove the prototype for get_jump_table_offset.
4503         * rtlanal.c (get_jump_table_offset): Remove.
4504
4505 2004-10-05  Richard Henderson  <rth@redhat.com>
4506
4507         PR 17756
4508         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
4509
4510 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
4511
4512         PR bootstrap/17817
4513         * Makefile.in: Stage the build directory too.
4514
4515 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
4516
4517         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
4518
4519         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
4520         (frv_emit_move): Same.
4521
4522         * config/frv/frv.c (frv_emit_move): New.
4523         (frv_legitimize_address): New.
4524
4525         * config/frv/frv.md ("movsi"): Call frv_emit_move.
4526         ("movqi"): Same.
4527         ("movhi"): Same.
4528         ("movdi"): Same.
4529         ("movsf"): Same.
4530         ("movdf"): Same.
4531
4532 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4533
4534         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
4535         system headers.
4536
4537 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4538
4539         * c-decl.c (pushdecl): When an extern declaration at block scope
4540         refers to a visible entity with internal linkage, use the old DECL
4541         rather than the new one.
4542
4543 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4544
4545         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
4546         comments.
4547
4548 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4549
4550         * tree-cfg.c (thread_jumps): Remove a duplicate check for
4551         an infinite loop.
4552
4553 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4554
4555         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
4556         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
4557         blocks.
4558
4559 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4560
4561         * tree-cfg.c (cleanup_tree_cfg): Don't call
4562         delete_unreachable_blosk() after thread_jumps().
4563         (thread_jumps): Always remove basic blocks as they become
4564         unreachable.
4565
4566 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
4567
4568         * tree-cfg.c (cleanup_tree_cfg): Remove variable
4569         something_changed.  Simplify the while loop.
4570
4571 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4572
4573         * builtins.c (expand_builtin_memmove): Delete duplicate code
4574         and accept a tree type for the result.
4575         (expand_builtin_bcopy): Accept a tree type for the result.
4576         (fold_builtin_memmove): Accept an arglist and tree type for
4577         the result.
4578
4579 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
4580
4581         * config/s390/s390.c (s390_dump_pool): Remove return value.
4582         Use gen_pool_align, gen_pool_section_start/end instead of
4583         gen_pool_start/end_31/64.
4584         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
4585         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
4586         ("pool_start_31", "pool_end_31"): Remove.
4587         ("pool_start_64", "pool_end_64"): Likewise.
4588         ("pool_align", "pool_section_start", "pool_section_end": New insns.
4589
4590         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
4591         (TARGET_CANNOT_COPY_INSN_P): Define.
4592         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
4593         (struct constant_pool): New member 'execute'.
4594         (s390_add_execute, s390_find_execute): New functions.
4595         (s390_execute_label, s390_execute_target): Likewise.
4596         (s390_dump_pool): Output in-pool execute target templates.
4597         (s390_dump_execute): New function.
4598         (s390_alloc_pool, s390_free_pool): Handle execute templates.
4599         (s390_mainpool_start, s390_mainpool_finish): Likewise.
4600         (s390_chunkify_start, s390_chunkify_finish): Likewise.
4601         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
4602         ("*execute"): New insn pattern.
4603         ("movmem_short", "*movmem_short"): Use splitters to generate
4604         explicit execute pattern, remove embedded execute.
4605         ("clrmem_short", "*clrmem_short"): Likewise.
4606         ("cmpmem_short", "*cmpmem_short"): Likewise.
4607
4608 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
4609
4610         * tree-ssa.c (verify_ssa): Verify phi arguments only
4611         contain renamed names.
4612
4613 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
4614
4615         * config/rs6000/linux.h: Formatting, whitespace.
4616         * config/rs6000/linux64.h: Likewise.
4617         * config/rs6000/rs6000-protos.h: Likewise.
4618         * config/rs6000/rs6000.c: Likewise.
4619         (easy_vector_splat_const): Add fall thru comments.
4620         (output_vec_const_move): Likewise.
4621
4622 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
4623
4624         * Makefile.in: Update -Wno-error exceptions for move to build dir.
4625
4626 2004-10-05  Chao-Ying Fu  <fu@mips.com>
4627             Richard Sandiford  <rsandifo@redhat.com>
4628
4629         * doc/invoke.texi (-mpaired-single): Link to the new description of the
4630         built-in functions.  Document dependencies.
4631         (-mips3d): Add link here too.
4632         * doc/extend.texi (MIPS Paired-Single Support): New section.
4633
4634 2004-10-04  Chao-ying Fu  <fu@mips.com>
4635
4636         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
4637
4638 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
4639
4640         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
4641         Initialize OPT_STATS to 0.
4642
4643 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
4644
4645         * tree-data-ref.c: Fix comment typos.
4646
4647 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
4648
4649         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
4650         the predicate cannot be computed, don't initialize the result to
4651         false.
4652
4653 2004-10-01  Eric Christopher  <echristo@redhat.com>
4654
4655         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
4656         locally defined enum.
4657         * dwarf2out.c (add_calling_convention_attribute): Don't
4658         emit DW_CC_normal.
4659
4660 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
4661
4662         PR c/17178, PR c/17820
4663         * c-decl.c (pop_scope): Do not warn about unused static
4664         variables as they warned in the middle-end.
4665
4666 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4667
4668         * builtins.c (expand_builtin_memcpy): Delete duplicate code
4669         and make the first parameter the expression not the arglist.
4670
4671 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
4672
4673         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
4674         as valid modes to expand address expressions.
4675
4676 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
4677
4678         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
4679         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
4680         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
4681         code formatting conventions.
4682
4683 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
4684
4685         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
4686
4687 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
4688
4689         PR tree-optimization/16632
4690         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
4691         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
4692         where | is used instead of &.
4693
4694 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
4695
4696         * ginclude/stddef.h: Fix a comment typo.
4697
4698 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4699
4700         PR target/17443
4701         * config.gcc (i?86-*-solaris2*): Restore correct logic
4702         for --enable-threads option.
4703         (sparc64-*-solaris2*): Likewise.
4704         (sparc-*-solaris2*): Likewise.
4705
4706 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
4707
4708         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
4709         (OS_MISSING_POWERPC64): Move, and comment.
4710         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
4711         (OS_MISSING_POWERPC64): Move, and comment.
4712
4713 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
4714
4715         * arm.c (output_call_mem): Add missing \t.
4716
4717 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4718
4719         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
4720         expand_builtin_strncmp): Delete duplicate code.
4721
4722 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
4723
4724         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
4725         take check-base and -limit arguments.
4726         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
4727         check ranges for ARRAY_REF and COMPONENT_REF.
4728         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
4729         instrumentation.
4730
4731 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
4732
4733         * c-objc-common.c (c_tree_printer): Correct description of %E.
4734         Don't fall through after printing an expression.
4735
4736 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
4737
4738         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
4739
4740 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
4741
4742         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
4743         delete_unrechable_blocks() only when necessary.
4744
4745 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
4746
4747         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
4748         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
4749         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
4750         __gthread_recursive_mutex_unlock): New functions.
4751
4752 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
4753
4754         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
4755         * config/s390/tpf-eh.c: Remove file.
4756         * config/s390/tpf-unwind.h: New file.
4757         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
4758         (MD_UNWIND_SUPPORT): Define.
4759
4760 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
4761
4762         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
4763
4764 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
4765
4766         * config/s390/s390-protos.h (s390_comparison): Add prototype.
4767         * config/s390/s390.c (s390_comparison): New function.
4768         (s390_branch_condition_mask): Return -1 for invalid comparisons.
4769         (s390_branch_condition_mnemonic): Assert valid comparison.
4770         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
4771         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
4772         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
4773         s390_comparison instead of comparison_operator.
4774
4775         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
4776         ("cmpmemdi"): Remove.
4777         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
4778         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
4779         ("cmpint_si"): Rename to ...
4780         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
4781         ("cmpint_di", "*cmpint_di"): Likewise.
4782         * config/s390/s390.c (s390_canonicalize_comparison): Remove
4783         redundant UNSPEC_CMPINT conversions.
4784         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
4785
4786 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
4787
4788         * collect2.c (COLLECT_PARSE_FLAG): Remove.
4789         (main): Remove a reference to COLLECT_PARSE_FLAG
4790         * system.h: Poison COLLECT_PARSE_FLAG.
4791         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
4792
4793 2004-10-01  Paul Brook  <paul@codesourcery.com>
4794
4795         * config/arm/crti.asm: Give _init and _fini function type.
4796
4797 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
4798
4799         * common.opt (ftree-loop-ivcanon): Enable by default.
4800         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4801         Enable complete loop unrolling.
4802         (canonicalize_induction_variables, tree_unroll_loops_completely):
4803         Reset scev info.
4804
4805 2004-10-01  Paul Brook  <paul@codesourcery.com>
4806
4807         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
4808         not register number.
4809         (thumb_find_work_register): Search full register range.
4810
4811 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
4812
4813         PR tree-opt/17343
4814         * tree-cfg.c (group_case_labels): Get the label and not
4815         the case expr for the default case.
4816         When the label we looking at is the default, decrement the
4817         new_size.
4818
4819 2004-10-01  Jan Hubicka  <jh@suse.cz>
4820
4821         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
4822         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4823         * toplev.h (tree_rest_of_compilation): Update prototype.
4824         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
4825
4826 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
4827
4828         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
4829         cleanup_control_flow() out of the while loop.
4830
4831 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
4832
4833         * tree-vectorizer.c (vectorizable_operation): Fail unless
4834         the mode for the vector type is indeed a vector mode.
4835
4836 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
4837
4838         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
4839         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
4840         of convert.
4841         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
4842         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
4843         follow_ssa_edge_in_rhs): Ditto.
4844         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
4845         (dump_iv): Dump base_object.
4846         (dump_use, dump_cand): Use dump_iv.
4847         (determine_base_object): New function.
4848         (alloc_iv): Initialize base_object field.
4849         (record_use): Clear the ssa_name field of iv.
4850         (get_computation_cost_at): Do not use difference of addresses of
4851         two different objects.
4852         (may_eliminate_iv): Do not require the loop to have just single exit.
4853         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
4854         (nonzero_p): New function.
4855         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
4856         tree_simplify_using_condition, simplify_using_initial_conditions,
4857         loop_niter_by_eval, find_loop_niter_by_eval,
4858         estimate_numbers_of_iterations_loop, compare_trees,
4859         upper_bound_in_type, lower_bound_in_type,
4860         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
4861         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
4862         instead of integer_(non)zerop.
4863
4864 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
4865
4866         Revert
4867         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
4868
4869         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
4870         and TI_VA_LIST_FPR_COUNTER_FIELD.
4871         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
4872         * tree-pass.h (pass_stdarg): Add.
4873         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
4874         * tree-stdarg.c: New file.
4875         * Makefile.in (OBJS-common): Add tree-stdarg.o.
4876         (tree-stdarg.o): Add dependencies.
4877         * function.h (struct function): Add va_list_gpr_size and
4878         va_list_fpr_size fields.
4879         * function.c (allocate_struct_function): Initialize them.
4880
4881         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
4882         va_list_{g,f}pr_counter_field.
4883         (ix86_setup_incoming_varargs): Don't do anything if reg_save
4884         area will not be used.  Only save registers that tree-stdarg.c
4885         detected they need saving.
4886         (ix86_va_start): Don't set up fields that won't be used.
4887
4888         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
4889         va_list_{g,f}pr_counter_field.
4890         (setup_incoming_varargs): Don't do anything if reg_save
4891         area will not be used.  Only save registers that tree-stdarg.c
4892         detected they need saving.
4893         (rs6000_va_start): Don't set up fields that won't be used.
4894
4895 2004-09-30  Eric Christopher  <echristo@redhat.com>
4896
4897         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
4898         sh abi.
4899         * dwarf2out.c (add_calling_convention_attribute): New function.
4900         (gen_subroutine_type_die): Use.
4901         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
4902         * target.h (gcc_target): Add dwarf_calling_convention.
4903         * hooks.c (hook_int_tree_0): New function.
4904         * hooks.h: Prototype.
4905         * config/sh/sh.c: Include dwarf2.h.
4906         (sh_dwarf_calling_convention): New function.
4907         (TARGET_DWARF_CALLING_CONVENTION): Use.
4908         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
4909
4910 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4911
4912         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4913         expand_builtin_strrchr, expand_builtin_strpbrk,
4914         expand_builtin_strncat, expand_builtin_strspn,
4915         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
4916         code.
4917
4918 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
4919
4920         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
4921         prototype.
4922         (s390_logical_operator_ok_p): Likewise.
4923         * config/s390/s390.c (s390_expand_logical_operator): New function.
4924         (s390_logical_operator_ok_p): Likewise.
4925         * config/s390/s390.md ("anddi3"): New expander.
4926         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
4927         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
4928         ("andsi3"): Use s390_expand_logical_operator.
4929         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
4930         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
4931         ("andhi3"): New expander.
4932         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
4933         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
4934         ("andqi3"): New expander.
4935         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
4936         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
4937         ("iordi3"): New expander.
4938         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
4939         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
4940         ("iorsi3"): Use s390_expand_logical_operator.
4941         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
4942         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
4943         ("iorhi3"): New expiorer.
4944         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
4945         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
4946         ("iorqi3"): New expiorer.
4947         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
4948         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
4949         ("xordi3"): New expander.
4950         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
4951         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
4952         ("xorsi3"): New expander.
4953         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
4954         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
4955         ("xorhi3"): New expander.
4956         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
4957         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
4958         ("xorqi3"): New expander.
4959         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
4960         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
4961
4962 2004-09-30  Roger Sayle  <roger@eyesopen.com>
4963
4964         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
4965         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
4966         machine mode as the result.
4967
4968 2004-09-30  Ben Elliston  <bje@au.ibm.com>
4969
4970         PR bootstrap/17761
4971         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
4972         FOR_EACH_EDGE macros.
4973
4974 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
4975
4976         * c-tree.h (readonly_error): Remove.
4977         * c-typeck (enum lvalue_use): New.
4978         (lvalue_or_else, readonly_error): Use it.  All callers changed.
4979         (readonly_error): Make static.
4980
4981 2004-09-30  Jan Hubicka  <jh@suse.cz>
4982
4983         PR debug/13974
4984         * cfgrtl.c (try_redirect_by_replacing_jump,
4985         force_nonfallthru_and_redirect, commit_one_edge_insertion,
4986         cfg_layout_merge_blocks):  Do not attach any line number information
4987         to newly inserted instructions.
4988         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
4989         emit_insn_*_noloc.
4990         (emit_*insn_before, emit_insn*_after): New.
4991         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
4992         existing locators.
4993         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
4994         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
4995
4996 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
4997
4998         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
4999         (s390_return_address_offset): Remove.
5000         (s390_can_eliminate): Add prototype.
5001         (s390_initial_elimination_offset): Add prototype.
5002         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
5003         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
5004         * config/s390/s390.c (s390_arg_frame_offset): Remove.
5005         (s390_return_address_offset): Remove.
5006         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
5007         (struct machine_function): New member split_branches_pending_p.
5008         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
5009         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
5010         (s390_optimize_prologue): Remove base_used argument.  Call
5011         s390_update_frame_layout instead of s390_register_info.  Handle
5012         prologue/epilogue insns that touch only RETURN_REGNUM.
5013         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
5014         (s390_register_info): Remove base_used and return_addr_used
5015         arguments, compute special register usage inline.  Return live
5016         register data to caller.
5017         (s390_frame_info): Remove arguments, do not call s390_register_info.
5018         (s390_init_frame_layout): New function.
5019         (s390_update_frame_layout): Likewise.
5020         (s390_emit_prologue): Call s390_update_frame_layout; some code
5021         move to there.  Do not emit pool placeholder insn if unnecessary.
5022
5023 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
5024
5025         * config/s390/s390.c (legitimate_reload_constant_p): Remove
5026         floating point constant workaround.
5027         (s390_secondary_input_reload_class): Handle PLUS reloads
5028         with too-large constant.
5029         (s390_expand_plus_operand): Likewise.
5030         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
5031         ("movsi"): Likewise.  Also, remove workaround for non-general
5032         operands.
5033         ("movdf"): Do not call force_const_mem.
5034         ("movsf"): Likewise.  Merge expander with *movsf insn.
5035         ("*movsf"): Remove, merge with movsf expander.
5036
5037 2004-09-30  Paul Brook  <paul@codesourcery.com>
5038
5039         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
5040         (ENDFILE_SPEC): Define.
5041         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
5042
5043 2004-09-30  Richard Henderson  <rth@redhat.com>
5044
5045         * config/alpha/qrnnd.asm: Mark for noexecstack.
5046
5047 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
5048
5049         * protoize.c, tree-cfg.c: Fix comment typos.
5050
5051 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
5052
5053         PR c/17730
5054         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
5055
5056 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
5057
5058         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
5059         expressions...
5060         (add_pointed_to_expr): ... here.
5061         Call add_pointed_to_expr for variables with DECL_INITIAL set.
5062         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
5063         pointer variable, if set.
5064
5065 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
5066
5067         * config/sh/sh.c: Follow spelling conventions.
5068
5069 2004-09-29  Richard Henderson  <rth@redhat.com>
5070
5071         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
5072         * doc/tm.texi (DWARF_ZERO_REG): New.
5073
5074         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
5075         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
5076         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
5077
5078 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
5079
5080         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
5081         with a PLUS as source operand.
5082         (expand_movstr): Likewise.
5083         (expand_builtin_stpcpy): Likewise.
5084
5085 2004-09-29  Richard Henderson  <rth@redhat.com>
5086
5087         PR 17739
5088         * tree-gimple.c (is_gimple_reg): Reject hard registers.
5089         (is_gimple_asm_val): New.
5090         * tree-gimple.h (is_gimple_asm_val): Declare.
5091         * gimplify.c (gimplify_asm_expr): Use it.
5092         * tree-pretty-print.c (print_declaration): Dump hard regs.
5093         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
5094         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
5095         * tree-ssa-pre.c (is_undefined_value): Likewise.
5096         * tree-ssa-copy.c (may_propagate_copy): Likewise.
5097         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
5098         * tree-ssa.c (warn_uninit): Likewise.
5099         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
5100
5101 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
5102
5103         * c-decl.c (merge_decls): Use comptype when comparing
5104         types to decide on DECL_SIZE save of olddecl.
5105
5106 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
5107
5108         * tree.h (INDIRECT_REF_P): New macro.
5109         * alias.c (get_alias_set): Use it
5110         (nonoverlapping_memrefs_p): Ditto.
5111         * emit-rtl.c (mem_expr_equal_p): Ditto.
5112         (set_mem_attributes_minus_bitpos): Ditto.
5113         (is_gimple_addressable): Ditto.
5114         (get_base_address): Ditto.
5115         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
5116         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
5117         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
5118         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
5119         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
5120         (add_address_candidates): Ditto.
5121         (rewrite_address_base): Ditto.
5122
5123 2004-09-30  Ben Elliston  <bje@au.ibm.com>
5124
5125         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
5126         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
5127         (rewrite_ssa_into_ssa): Likewise.
5128         * tree-phinodes.c (create_phi_node): Access the number of
5129         predecessor edges using EDGE_COUNT() and not num_preds.
5130
5131 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
5132
5133         PR c/7425
5134         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
5135
5136 2004-09-29  Eric Christopher  <echristo@redhat.com>
5137
5138         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
5139
5140 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
5141
5142         * config/cris/cris.md (moverside, movemside): With MEM, make sure
5143         the address is (plus reg mem).
5144
5145 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
5146
5147         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
5148
5149 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
5150
5151         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
5152         cascaded if ... else if with a switch.
5153
5154 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5155
5156         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
5157
5158 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
5159
5160         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
5161         and TI_VA_LIST_FPR_COUNTER_FIELD.
5162         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
5163         * tree-pass.h (pass_stdarg): Add.
5164         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
5165         * tree-stdarg.c: New file.
5166         * Makefile.in (OBJS-common): Add tree-stdarg.o.
5167         (tree-stdarg.o): Add dependencies.
5168         * function.h (struct function): Add va_list_gpr_size and
5169         va_list_fpr_size fields.
5170         * function.c (allocate_struct_function): Initialize them.
5171
5172         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
5173         va_list_{g,f}pr_counter_field.
5174         (ix86_setup_incoming_varargs): Don't do anything if reg_save
5175         area will not be used.  Only save registers that tree-stdarg.c
5176         detected they need saving.
5177         (ix86_va_start): Don't set up fields that won't be used.
5178
5179         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
5180         va_list_{g,f}pr_counter_field.
5181         (setup_incoming_varargs): Don't do anything if reg_save
5182         area will not be used.  Only save registers that tree-stdarg.c
5183         detected they need saving.
5184         (rs6000_va_start): Don't set up fields that won't be used.
5185
5186 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
5187
5188         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
5189         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
5190         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
5191         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
5192         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
5193         ATTR_NONNULL_1_4): New.
5194
5195 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
5196
5197         PR tree-optimization/17697
5198         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
5199         cfg if needed.
5200
5201 2004-09-28  Per Bothner  <per@bothner.com>
5202
5203         * profile.c (branch_prob): Pass correct value to output_location,
5204         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
5205
5206 2004-09-28  Richard Henderson  <rth@redhat.com>
5207
5208         PR 15089
5209         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
5210         * tree-flow.h (may_propagate_copy_into_asm): Declare.
5211         * tree-ssa-ccp.c (replace_uses_in): Use it.
5212         * tree-ssa-dom.c (cprop_operand): Likewise.
5213
5214 2004-09-28 Jeff Law  <law@redhat.com>
5215
5216         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
5217         that no outgoing edges be left in the duplicate block.  Do no
5218         update information on outgoing edges or PHI nodes in target
5219         blocks here.
5220         (remove_ctrl_stmt_and_useless_edges): Renamed from
5221         remove_last_stmt_and_useless_edges.  Handle case where the
5222         block is empty or has no control statements.  Do not update edge
5223         flags here.
5224         (thread_block): Create a template block rather than copying the
5225         original block every time.  Create outgoing edges from the
5226         duplicate blocks and update PHIs at the target of the outgoing
5227         edges here.  Fix edge flags for the original block if necessary.
5228         * cfghooks (duplicate_block): No longer assert that the original
5229         block has incoming edges.
5230
5231 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
5232
5233         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
5234         Reg Vars to enforce register allocation with general constraints.
5235         (Explicit Reg Vars): Clarify relation to asm statements.
5236         (Local Reg Vars): Similar.
5237
5238 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
5239
5240         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
5241         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
5242         build_control_flow, new_edge): Remove.
5243         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
5244         (bitlst, bitlst_table_last, bitlst_table): Remove.
5245         (bblst): Store basic_block pointer instead of block index.
5246         (bblst_table): Likewise.
5247         (edgelst): Store edge pointer instead of edge index.
5248         (edgelst_table, edgelst_last): New variables.
5249         (extract_bitlst): Rename to ...
5250         (extract_edgelst): ... this.  Return edge pointers, not indices.
5251         (split_edges): Update call.
5252         (rgn_edges): Store edge pointers instead of indices.
5253         (edge_to_bit): Remove.
5254         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
5255         (SET_EDGE_TO_BIT): New macro.
5256         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
5257         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
5258         data structures instead of haifa_edge et al.  Use edge pointers
5259         instead of edge indices everywhere.
5260         (compute_dom_prob_ps): Use standard CFG data structures.  Account
5261         for exit edges.
5262         (compute_trg_info): Likewise.
5263         (propagate_deps): Likewise.
5264         (debug_candidate): Account for bblst data structure change.
5265         (check_live_1, update_live_1, is_pfree): Likewise.
5266         (IS_REACHABLE): Use standard CFG data structures.
5267         (init_ready_list): Update bblst_table/edgelst_table allocation.
5268         (schedule_region): Update alloc/cleanup code to data structure
5269         changes.  Use edge->aux to store per-region edge index.
5270         (init_regions): No longer call build_control_flow.  Do not
5271         create edge list any more.
5272
5273 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
5274
5275         * cse.c (cse_insn): Avoid creating direct non-local jumps.
5276         * combine.c (can_combine_p): Likewise.
5277         * local-alloc. (update_equiv_regs): Likewise.
5278
5279 2004-09-28  Richard Henderson  <rth@redhat.com>
5280
5281         PR 17531
5282         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
5283         Don't check VOIDmode here.  Force PLUS operands to common type.
5284         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
5285         Pmode if given a non pointer type.
5286
5287 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5288
5289         PR 17531
5290         * optabs.c (expand_binop): Force constants to the correct mode.
5291
5292 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
5293
5294         * config/s390/s390.c (s390_adjust_cost): Remove.
5295         (TARGET_SCHED_ADJUST_COST): Do not redefine.
5296         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
5297         * config/s390/s390.md ("main_pool"): Use "larl" type
5298         attribute if TARGET_CPU_ZARCH.
5299
5300 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
5301
5302         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
5303         variable.
5304
5305 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
5306
5307         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
5308         name to the pass.
5309
5310 2004-09-28  Steven Bosscher  <stevenb@suse.de>
5311
5312         * common.opt (flag_gcse_sm): Disable by default.
5313         (flag_gcse_las): Likewise.
5314         (flag_web): Likewise.  Create from this file.
5315         * flags.h: Remove flag_web declaration.
5316         * toplev.c (flag_web): Likewise.
5317         (process_options): Never set flag_web.
5318
5319 2004-09-28  Steven Bosscher  <stevenb@suse.de>
5320
5321         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
5322         * tree-ssa-propagate.c: Include vec.h.
5323         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
5324         instead of varrays.
5325         (cfg_blocks_add): Assert the block is not already in the worklist.
5326         Update uses of interesting_ssa_edges and varying_ssa_edges.
5327         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
5328         ssa_propagate): Likewise.
5329
5330 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5331
5332         PR c/16409
5333         * c-decl.c (start_decl): Check for initializing incomplete array
5334         of VLAs.
5335         (build_compound_literal): Check for TYPE being error_mark_node.
5336         * c-parse.in (primary): Check for VLA compound literals.
5337
5338 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
5339
5340         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
5341         with --disable-checking.
5342
5343 2004-09-28  Devang Patel  <dpatel@apple.com>
5344
5345         * tree-pretty-print.c (dump_generic_node): Print vector types.
5346
5347 2004-09-28  Nick Clifton  <nickc@redhat.com>
5348
5349         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
5350         invocation of the function sh_init_cumulative_args.
5351         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
5352         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
5353         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
5354         * config/sh/sh.c (sh_init_cumulative_args): New function based
5355         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
5356         heuristic added to determine the setting of force_mem when a
5357         library function is being called.
5358
5359 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
5360
5361         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
5362         Skip constant arguments.
5363
5364 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
5365
5366         * tree-ssa-alias.c (create_name_tags): If PTR points to a
5367         volatile type, mark the tag volatile.
5368         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
5369         volatile.
5370
5371 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
5372
5373         * tree.def (vec_cond_expr): Fix. Change 'e'
5374         to tcc_expression.
5375
5376 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
5377
5378         * basic-block.h: Fix a comment typo.
5379
5380 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
5381
5382         * optabs.c, optabs.h: Fix comment typos.
5383
5384 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
5385
5386         * config/sparc/sparc.md (call_address_struct_value_sp32):
5387         Properly mask the immediate field of the 'unimp' instruction.
5388         (call_symbolic_struct_value_sp32): Likewise.
5389
5390 2004-09-28  Ben Elliston  <bje@au.ibm.com>
5391             Steven Bosscher  <stevenb@suse.de>
5392             Andrew Pinski  <pinskia@physics.uc.edu>
5393
5394         Merge from edge-vector-branch:
5395         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
5396         (struct edge_def): Remove pred_next, succ_next members.
5397         (struct basic_block_def): Remove pred, succ members.  Add preds
5398         and succs members of type VEC(edge).
5399         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
5400         (BRANCH_EDGE): Likewise.
5401         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
5402         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
5403         (edge_iterator): New.
5404         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
5405         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
5406         (FOR_EACH_EDGE): New.
5407         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
5408         where applicable.
5409         (rotate_loop): Likewise.
5410         (find_traces_1_route): Likewise.
5411         (bb_to_key): Likewise.
5412         (connect_traces): Likewise.
5413         (copy_bb_p): Likewise.
5414         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
5415         (add_labels_and_missing_jumps): Likewise.
5416         (fix_up_fall_thru_edges): Likewise.
5417         (find_jump_block): Likewise.
5418         (fix_crossing_conditional_branches): Likewise.
5419         (fix_crossing_unconditional_branches): Likewise.
5420         (add_reg_crossing_jump_notes): Likewise.
5421         * bt-load.c (augment_live_range): Likewise.
5422         * cfg.c (clear_edges): Likewise.
5423         (unchecked_make_edge): Likewise.
5424         (cached_make_edge): Likewise.
5425         (make_single_succ_edge): Likewise.
5426         (remove_edge): Likewise.
5427         (redirect_edge_succ_nodup): Likewise.
5428         (check_bb_profile): Likewise.
5429         (dump_flow_info): Likewise.
5430         (alloc_aux_for_edges): Likewise.
5431         (clear_aux_for_edges): Likewise.
5432         (dump_cfg_bb_info): Likewise.
5433         * cfganal.c (forwarder_block_p): Likewise.
5434         (can_fallthru): Likewise.
5435         (could_fall_through): Likewise.
5436         (mark_dfs_back_edges): Likewise.
5437         (set_edge_can_fallthru_flag): Likewise.
5438         (find_unreachable_blocks): Likewise.
5439         (create_edge_list): Likewise.
5440         (verify_edge_list): Likewise.
5441         (add_noreturn_fake_exit_edges): Likewise.
5442         (connect_infinite_loops_to_exit): Likewise.
5443         (flow_reverse_top_sort_order_compute): Likewise.
5444         (flow_depth_first_order_compute): Likewise.
5445         (flow_preorder_transversal_compute): Likewise.
5446         (flow_dfs_compute_reverse_execute): Likewise.
5447         (dfs_enumerate_from): Likewise.
5448         (compute_dominance_frontiers_1): Likewise.
5449         * cfgbuild.c (make_edges): Likewise.
5450         (compute_outgoing_frequencies): Likewise.
5451         (find_many_sub_basic_blocks): Likewise.
5452         (find_sub_basic_blocks): Likewise.
5453         * cfgcleanup.c (try_simplify_condjump): Likewise.
5454         (thread_jump): Likewise.
5455         (try_forward_edges): Likewise.
5456         (merge_blocks_move): Likewise.
5457         (outgoing_edges_match): Likewise.
5458         (try_crossjump_to_edge): Likewise.
5459         (try_crossjump_bb): Likewise.
5460         (try_optimize_cfg): Likewise.
5461         (merge_seq_blocks): Likewise.
5462         * cfgexpand.c (expand_gimple_tailcall): Likewise.
5463         (expand_gimple_basic_block): Likewise.
5464         (construct_init_block): Likewise.
5465         (construct_exit_block): Likewise.
5466         * cfghooks.c (verify_flow_info): Likewise.
5467         (dump_bb): Likewise.
5468         (delete_basic_block): Likewise.
5469         (split_edge): Likewise.
5470         (merge_blocks): Likewise.
5471         (make_forwarder_block): Likewise.
5472         (tidy_fallthru_edges): Likewise.
5473         (can_duplicate_block_p): Likewise.
5474         (duplicate_block): Likewise.
5475         * cfglayout.c (fixup_reorder_chain): Likewise.
5476         (fixup_fallthru_exit_predecessor): Likewise.
5477         (can_copy_bbs_p): Likewise.
5478         (copy_bbs): Likewise.
5479         * cfgloop.c (flow_loops_cfg_dump): Likewise.
5480         (flow_loop_entry_edges_find): Likewise.
5481         (flow_loop_exit_edges_find): Likewise.
5482         (flow_loop_nodes_find): Likewise.
5483         (mark_single_exit_loops): Likewise.
5484         (flow_loop_pre_header_scan): Likewise.
5485         (flow_loop_pre_header_find): Likewise.
5486         (update_latch_info): Likewise.
5487         (canonicalize_loop_headers): Likewise.
5488         (flow_loops_find): Likewise.
5489         (get_loop_body_in_bfs_order): Likewise.
5490         (get_loop_exit_edges): Likewise.
5491         (num_loop_branches): Likewise.
5492         (verify_loop_structure): Likewise.
5493         (loop_latch_edge): Likewise.
5494         (loop_preheader_edge): Likewise.
5495         * cfgloopanal.c (mark_irreducible_loops): Likewise.
5496         (expected_loop_iterations): Likewise.
5497         * cfgloopmanip.c (remove_bbs): Likewise.
5498         (fix_bb_placement): Likewise.
5499         (fix_irreducible_loops): Likewise.
5500         (remove_path): Likewise.
5501         (scale_bbs_frequencies): Likewise.
5502         (loopify): Likewise.
5503         (unloop): Likewise.
5504         (fix_loop_placement): Likewise.
5505         (loop_delete_branch_edge): Likewise.
5506         (duplicate_loop_to_header_edge): Likewise.
5507         (mfb_keep_just): Likewise.
5508         (create_preheader): Likewise.
5509         (force_single_succ_latches): Likewise.
5510         (loop_split_edge_with): Likewise.
5511         (create_loop_notes): Likewise.
5512         * cfgrtl.c (rtl_split_block): Likewise.
5513         (rtl_merge_blocks): Likewise.
5514         (rtl_can_merge_blocks): Likewise.
5515         (try_redirect_by_replacing_jump): Likewise.
5516         (force_nonfallthru_and_redirect): Likewise.
5517         (rtl_tidy_fallthru_edge): Likewise.
5518         (commit_one_edge_insertion): Likewise.
5519         (commit_edge_insertions): Likewise.
5520         (commit_edge_insertions_watch_calls): Likewise.
5521         (rtl_verify_flow_info_1): Likewise.
5522         (rtl_verify_flow_info): Likewise.
5523         (purge_dead_edges): Likewise.
5524         (cfg_layout_redirect_edge_and_branch): Likewise.
5525         (cfg_layout_can_merge_blocks_p): Likewise.
5526         (rtl_flow_call_edges_add): Likewise.
5527         * cse.c (cse_cc_succs): Likewise.
5528         * df.c (hybrid_search): Likewise.
5529         * dominance.c (calc_dfs_tree_nonrec): Likewise.
5530         (calc_dfs_tree): Likewise.
5531         (calc_idoms): Likewise.
5532         (recount_dominator): Likewise.
5533         * domwalk.c (walk_dominator_tree): Likewise.
5534         * except.c (emit_to_new_bb_before): Likewise.
5535         (connect_post_landing_pads): Likewise.
5536         (sjlj_emit_function_enter): Likewise.
5537         (sjlj_emit_function_exit): Likewise.
5538         (finish_eh_generation): Likewise.
5539         * final.c (compute_alignments): Likewise.
5540         * flow.c (calculate_global_regs_live): Likewise.
5541         (initialize_uninitialized_subregs): Likewise.
5542         (init_propagate_block_info): Likewise.
5543         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5544         * gcse.c (find_implicit_sets): Likewise.
5545         (bypass_block): Likewise.
5546         (bypass_conditional_jumps): Likewise.
5547         (compute_pre_data): Likewise.
5548         (insert_insn_end_bb): Likewise.
5549         (insert_store): Likewise.
5550         (remove_reachable_equiv_notes): Likewise.
5551         * global.c (global_conflicts): Likewise.
5552         (calculate_reg_pav): Likewise.
5553         * graph.c (print_rtl_graph_with_bb): Likewise.
5554         * ifcvt.c (mark_loop_exit_edges): Likewise.
5555         (merge_if_block): Likewise.
5556         (find_if_header): Likewise.
5557         (block_jumps_and_fallthru_p): Likewise.
5558         (find_if_block): Likewise.
5559         (find_cond_trap): Likewise.
5560         (block_has_only_trap): Likewise.
5561         (find_if_case1): Likewise.
5562         (find_if_case_2): Likewise.
5563         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
5564         (perfect_nestify): Likewise.
5565         * lcm.c (compute_antinout_edge): Likewise.
5566         (compute_laterin): Likewise.
5567         (compute_available): Likewise.
5568         (compute_nearerout): Likewise.
5569         * loop-doloop.c (doloop_modify): Likewise.
5570         * loop-init.c (loop_optimizer_init): Likewise.
5571         * loop-invariant.c (find_exits): Likewise.
5572         * loop-iv.c (simplify_using_initial_values): Likewise.
5573         (check_simple_exit): Likewise.
5574         (find_simple_exit): Likewise.
5575         * loop-unroll.c (peel_loop_completely): Likewise.
5576         (unroll_loop_constant_iterations): Likewise.
5577         (unroll_loop_runtime_iterations): Likewise.
5578         * loop-unswitch.c (may_unswitch_on): Likewise.
5579         (unswitch_loop): Likewise.
5580         * modulo-sched.c (generate_prolog_epilog): Likewise.
5581         (sms_schedule): Likewise.
5582         * postreload-gcse.c (eliminate_partially_redundant_load):
5583         Likewise.
5584         * predict.c (can_predict_insn_p): Likewise.
5585         (set_even_probabilities): Likewise.
5586         (combine_predictions_for_bb): Likewise.
5587         (predict_loops): Likewise.
5588         (estimate_probability): Likewise.
5589         (tree_predict_by_opcode): Likewise.
5590         (tree_estimate_probability): Likewise.
5591         (last_basic_block_p): Likewise.
5592         (propagate_freq): Likewise.
5593         (estimate_loops_at_level): Likewise.
5594         (estimate_bb_frequencies): Likewise.
5595         * profile.c (instrument_edges): Likewise.
5596         (get_exec_counts): Likewise.
5597         (compute_branch_probabilities): Likewise.
5598         (branch_prob): Likewise.
5599         * ra-build.c (live_in): Likewise.
5600         * ra-rewrite.c (rewrite_program2): Likewise.
5601         * ra.c (reg_alloc): Likewise.
5602         * reg-stack.c (reg_to_stack): Likewise.
5603         (convert_regs_entry): Likewise.
5604         (compensate_edge): Likewise.
5605         (convert_regs_1): Likewise,
5606         (convert_regs_2): Likewise.
5607         (convert_regs): Likewise.
5608         * regrename.c (copyprop_hardreg_forward): Likewise.
5609         * reload1.c (fixup_abnormal_edges): Likewise.
5610         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
5611         (sbitmap_insersection_of_preds): Likewise.
5612         (sbitmap_union_of_succs): Likewise.
5613         (sbitmap_union_of_preds): Likewise.
5614         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
5615         (fix_basic_block_boundaries): Likewise.
5616         (sched_ebbs): Likewise.
5617         * sched-rgn.c (build_control_flow): Likewise.
5618         (find_rgns): Likewise.
5619         * tracer.c (find_best_successor): Likewise.
5620         (find_best_predecessor): Likewise.
5621         (tail_duplicate): Likewise.
5622         * tree-cfg.c (make_edges): Likewise.
5623         (make_ctrl_stmt_edges): Likewise.
5624         (make_goto_expr_edges): Likewise.
5625         (tree_can_merge_blocks_p): Likewise.
5626         (tree_merge_blocks): Likewise.
5627         (cfg_remove_useless_stmts_bb): Likewise.
5628         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
5629         (tree_block_forwards_to): Likewise.
5630         (cleanup_control_expr_graph): Likewise.
5631         (find_taken_edge): Likewise.
5632         (dump_cfg_stats): Likewise.
5633         (tree_cfg2vcg): Likewise.
5634         (disband_implicit_edges): Likewise.
5635         (tree_find_edge_insert_loc): Likewise.
5636         (bsi_commit_edge_inserts): Likewise.
5637         (tree_split_edge): Likewise.
5638         (tree_verify_flow_info): Likewise.
5639         (tree_make_forwarder_block): Likewise.
5640         (tree_forwarder_block_p): Likewise.
5641         (thread_jumps): Likewise.
5642         (tree_try_redirect_by_replacing_jump): Likewise.
5643         (tree_split_block): Likewise.
5644         (add_phi_args_after_copy_bb): Likewise.
5645         (rewrite_to_new_ssa_names_bb): Likewise.
5646         (dump_function_to_file): Likewise.
5647         (print_pred_bbs): Likewise.
5648         (print_loop): Likewise.
5649         (tree_flow_call_edges_add): Likewise.
5650         (split_critical_edges): Likewise.
5651         (execute_warn_function_return): Likewise.
5652         (extract_true_false_edges_from_block): Likewise.
5653         * tree-if-conv.c (tree_if_conversion): Likewise.
5654         (if_convertable_bb_p): Likewise.
5655         (find_phi_replacement_condition): Likewise.
5656         (combine_blocks): Likewise.
5657         * tree-into-ssa.c (compute_global_livein): Likewise.
5658         (ssa_mark_phi_uses): Likewise.
5659         (ssa_rewrite_initialize_block): Likewise.
5660         (rewrite_add_phi_arguments): Likewise.
5661         (ssa_rewrite_phi_arguments): Likewise.
5662         (insert_phi_nodes_for): Likewise.
5663         (rewrite_into_ssa): Likewise.
5664         (rewrite_ssa_into_ssa): Likewise.
5665         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
5666         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
5667         (rewrite_trees): Likewise.
5668         * tree-pretty-print.c (dump_bb_header): Likewise.
5669         (dump_implicit_edges): Likewise.
5670         * tree-sra.c (insert_edge_copies): Likewise.
5671         (find_obviously_necessary_stmts): Likewise.
5672         (remove_data_stmt): Likewise.
5673         * tree-ssa-dom.c (thread_across_edge): Likewise.
5674         (dom_opt_finalize_block): Likewise.
5675         (single_incoming_edge_ignoring_loop_edges): Likewise.
5676         (record_equivalences_from_incoming_edges): Likewise.
5677         (cprop_into_successor_phis): Likewise.
5678         * tree-ssa-live.c (live_worklist): Likewise.
5679         (calculate_live_on_entry): Likewise.
5680         (calculate_live_on_exit): Likewise.
5681         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
5682         (copy_loop_headers): Likewise.
5683         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
5684         (fill_always_executed_in): Likewise.
5685         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
5686         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
5687         (compute_phi_arg_on_exit): Likewise.
5688         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
5689         (get_loops_exit): Likewise.
5690         (split_loop_exit_edge): Likewise.
5691         (ip_normal_pos): Likewise.
5692         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
5693         Likewise.
5694         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
5695         (replace_phi_with_stmt): Likewise.
5696         (value_replacement): Likewise.
5697         * tree-ssa-pre.c (compute_antic_aux): Likewise.
5698         (insert_aux): Likewise.
5699         (init_pre): Likewise.
5700         * tree-ssa-propagate.c (simulate_stmt): Likewise.
5701         (simulate_block): Likewise.
5702         (ssa_prop_init): Likewise.
5703         * tree-ssa-threadupdate.c (thread_block): Likewise.
5704         (create_block_for_threading): Likewise.
5705         (remove_last_stmt_and_useless_edges): Likewise.
5706         * tree-ssa.c (verify_phi_args): Likewise.
5707         (verify_ssa): Likewise.
5708         * tree_tailcall.c (independent_of_stmt_p): Likewise.
5709         (find_tail_calls): Likewise.
5710         (eliminate_tail_call): Likewise.
5711         (tree_optimize_tail_calls_1): Likewise.
5712         * tree-vectorizer.c (vect_transform_loop): Likewise.
5713         * var-tracking.c (prologue_stack_adjust): Likewise.
5714         (vt_stack_adjustments): Likewise.
5715         (vt_find_locations): Likewise.
5716         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
5717         * config/i386/i386.c (ix86_pad_returns): Likewise.
5718         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
5719         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
5720
5721 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
5722
5723         PR target/16532
5724         * config/sparc/sparc.c (struct machine_function): New field
5725         'leaf_function_p' and 'prologue_data_valid_p'.
5726         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
5727         to conveniently access the above fields.
5728         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
5729         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
5730         of the generic flavor 'current_function_uses_only_leaf_regs'.
5731         (eligible_for_sibcall_delay): Likewise.
5732         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
5733         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
5734         (sparc_asm_function_prologue): Add sanity check for the assumption
5735         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
5736         (sparc_can_use_return_insn_p): New function.
5737         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
5738         (output_restore): Likewise.
5739         (output_sibcall): Likewise.
5740         (sparc_output_mi_thunk): Likewise.
5741         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
5742         * config/sparc/sparc.md (return): New expander.
5743
5744         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
5745
5746 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
5747
5748         PR c++/17642
5749         * stor-layout.c (layout_decl): Use fold_convert, not convert.
5750         (bit_from_pos): Likewise.
5751         (byte_from_pos): Likewise.
5752         (pos_from_bit): Likewise.
5753         (normalize_offset): Likewise.
5754         (place_field): Likewise.
5755         (finalize_type_size): Likewise.
5756         (layout_type): Likewise.
5757         * tree.c (build_index_type): Likewise.
5758
5759 2004-09-27  Devang Patel  <dpatel@apple.com>
5760
5761         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
5762         * genopinit.c (optabs): New entry for vcond_gen_code and
5763         vcondu_gen_code.
5764         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
5765         (get_rtx_code): New function.
5766         (vector_compare_rtx): New function.
5767         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
5768         (expand_vec_cond_expr_p): New function.
5769         (expand_vec_cond_expr): New function.
5770         (get_vcond_icode): New function.
5771         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
5772         (vcond_gen_code, vcondu_gen_code): Same.
5773
5774 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
5775
5776         * Makefile.in (STAGESTUFF): Split into ...
5777         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
5778         (mostlyclean): Update.
5779         (stage1-start, stage2-start, stage3-start, stage4-start,
5780         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
5781         Move the STAGEMOVESTUFF.
5782
5783 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
5784
5785         * system.h (getpagesize): Return 'int' instead of 'long'.
5786
5787 2004-09-27  Michael Matz <matz@suse.de>
5788
5789         PR bootstrap/17698
5790         PR bootstrap/17702
5791         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
5792         bmp_iter_and_init): Shift by bit_in_word.
5793
5794 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
5795
5796         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
5797         * configure.ac: Don't sinclude it here.
5798         * configure: Regenerate.
5799
5800 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
5801
5802         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
5803         Handle AND pattern
5804
5805 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
5806
5807         PR c/13804
5808         * c-typeck.c (build_component_ref): Name type involved in
5809         diagnostic for structure or union without a member of the given
5810         name.
5811
5812 2004-09-27  DJ Delorie  <dj@redhat.com>
5813
5814         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
5815         .comm alignment is bytes, not bits.
5816
5817 2004-09-27  Devang Patel  <dpatel@apple.com>
5818
5819         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
5820         (print_call_name): Do not print VEC_COND_EXPR.
5821
5822 2004-09-27  Devang Patel  <dpatel@apple.com>
5823
5824         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
5825
5826 2004-09-27  Jan Hubicka  <jh@suse.cz>
5827
5828         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
5829
5830 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
5831
5832         * bitmap.h: Fix a comment typo.
5833
5834 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
5835
5836         * libgcc2.c (getpagesize): Change type of return value to int.
5837
5838 2004-09-26  Matt Austern  <austern@apple.com>
5839
5840         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
5841         using mmap.
5842
5843 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5844
5845         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
5846         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
5847         (bitmap_iterator): New type.
5848         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
5849         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
5850         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
5851         bmp_iter_and_init, bmp_iter_and_next): New functions.
5852         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
5853         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
5854         use iterator-style EXECUTE_IF_IN_BITMAP macros.
5855         * bitmap.c (bitmap_print): Ditto.
5856         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
5857         btr_def_live_range): Ditto.
5858         * cfganal.c (compute_dominance_frontiers_1) Ditto.
5859         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
5860         Ditto.
5861         * ddg.c (build_inter_loop_deps): Ditto.
5862         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
5863         Ditto.
5864         * except.c (remove_eh_handler): Ditto.
5865         * flow.c (reg_set_to_hard_reg_set): Ditto.
5866         * gcse.c (clear_modify_mem_tables): Ditto.
5867         * global.c (build_insn_chain): Ditto.
5868         * ifcvt.c (dead_or_predicable): Ditto.
5869         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
5870         Ditto.
5871         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
5872         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
5873         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
5874         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
5875         tree_purge_all_dead_eh_edges): Ditto.
5876         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
5877         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
5878         rewrite_ssa_into_ssa): Ditto.
5879         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
5880         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
5881         Ditto.
5882         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
5883         compute_flow_sensitive_aliasing, maybe_create_global_var,
5884         dump_points_to_info_for): Ditto.
5885         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
5886         * tree-ssa-dse.c (dse_finalize_block): Ditto.
5887         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
5888         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
5889         Ditto.
5890         * tree-ssa-loop-ivopts.c (find_induction_variables,
5891         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
5892         determine_use_iv_costs, determine_set_costs, find_best_candidate,
5893         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
5894         Ditto.
5895         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
5896         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
5897         add_call_read_ops): Ditto.
5898         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
5899
5900 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5901
5902         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
5903         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
5904
5905 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
5906
5907         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
5908         reflect size of memory regions being compared.
5909
5910 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
5911
5912         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
5913         expressions.  Always clear MEM_SIZE and alias set.
5914
5915 2004-09-26  Roger Sayle  <roger@eyesopen.com>
5916             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5917
5918         PR middle-end/17112
5919         * stor-layout.c (compute_record_mode): For records with a single
5920         field, only use the field's mode if its size matches what we'd
5921         have choosen for the record ourselves.  This forces the use of
5922         BLKmode for packed records that don't completely fill a mode.
5923
5924 2004-09-26  Roger Sayle  <roger@eyesopen.com>
5925
5926         PR middle-end/17151
5927         * combine.c (force_to_mode): Remove dubious early return test that
5928         inhibits further optimization.
5929
5930 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
5931
5932         * profile.c: Fix a comment typo.
5933
5934 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5935
5936         PR bootstrap/17591
5937         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
5938         with varying offset.
5939         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
5940         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
5941         ARRAY_REFS.
5942         (expr_invariant_in_loop_p): New function.
5943         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
5944         component_ref_field_offset for COMPONENT_REFs.  Do not allow
5945         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
5946         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
5947         MISALIGNED_INDIRECT_REFs.
5948         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
5949         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
5950         MISALIGNED_INDIRECT_REFs.
5951
5952 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
5953
5954         PR c/11459
5955         * gcc.c (cpp_options, cc1_options): Preserve relative order of
5956         -std and -ansi options.
5957
5958 2004-09-26  Jan Hubicka  <jh@suse.cz>
5959
5960         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
5961         for nested functions whose proper parent has not been output.
5962
5963         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
5964         when re-constructing profile previously invalidated by loop.
5965
5966 2004-09-25  Dale Johannesen  <dalej@apple.com>
5967
5968         * tree-gimple.c:  Move GIMPLE definition...
5969         * doc/tree-ssa.texi:  here.
5970
5971 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
5972
5973         * tree-vectorizer.c: Fix a comment typo.
5974
5975 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
5976
5977         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
5978         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
5979         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
5980         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
5981
5982 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
5983
5984         * tree-ssa-loop-unswitch.c: Fix a comment typo.
5985
5986 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
5987
5988         * doc/passes.texi: Fix a typo.
5989
5990 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5991
5992         * tree-optimize.c (init_tree_optimization_passes): Add
5993         pass_record_bounds.
5994         * tree-pass.h (pass_record_bounds): Declare.
5995         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
5996         New pass.
5997
5998 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5999
6000         PR tree-optimization/17474
6001         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
6002         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
6003
6004 2004-09-25  Jan Hubicka  <jh@suse.cz>
6005
6006         * predict.c (counts_to_freqs): Make global.
6007         * predict.h (counts_to_freqa): Declare.
6008         * profile.c (compute_branch_probabilities): Compute frequencies
6009         * tree-profile.c (do_tree_profiling): Refine conditional on when
6010         tree profiling pass is needed.
6011
6012         * passes.c (rest_of_handle_cfg): Disable const/pure function
6013         detection when doing tree based profiling.
6014
6015         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
6016         conditional.
6017
6018 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
6019
6020         * config/mips/mips.h (struct mips_args): Clarify comments.
6021         * config/mips/mips.c (struct mips_arg_info): Likewise.
6022         (mips_arg_info): Don't allow fpr_p to affect the register or
6023         stack alignment.  Remove o64 silliness.
6024         (function_arg): Deal with the o32 float,float case specially.
6025
6026 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
6027
6028         * config/mips/mips.md (loadx, storex): Define for V2SF.
6029
6030 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
6031
6032         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
6033         * config/s390/s390.c (s390_back_chain_rtx): New function.
6034         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
6035         Call anti_adjust_stack.
6036         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
6037         only if compiling with back chain.
6038         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
6039         back chain only if back chain enabled.  Use s390_back_chain_rtx.
6040
6041 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
6042
6043         * doc/trouble.texi: Remove obsolete information.  Update
6044         information on how to regenerate fixincluded headers.
6045
6046 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
6047
6048         PR c/12951
6049         * doc/invoke.texi: Document that
6050         -Wno-error-implicit-function-declaration is not accepted.
6051
6052 2004-09-24  Richard Henderson  <rth@redhat.com>
6053
6054         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
6055         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
6056         on TARGET_MAX.
6057         (alpha_expand_mov): Allow unaligned vectors.
6058         (alpha_expand_unaligned_store): Use CONST0_RTX.
6059         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
6060
6061 2004-09-24 Jeff Law  <law@redhat.com>
6062
6063         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
6064         aliasing rules.
6065         (simplify_cond_and_lookup_avail_expr): Likewise.
6066
6067 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
6068
6069         PR c/12802
6070         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
6071         title.  Document interaction with -fms-extensions.
6072         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
6073         section.
6074
6075 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
6076
6077         PR c/12713
6078         * doc/extend.texi: Document interaction of attribute noreturn and
6079         longjmp.
6080
6081 2004-09-24  Richard Henderson  <rth@redhat.com>
6082
6083         PR rtl-opt/17503
6084         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
6085         (som_hash, som_eq): New.
6086         (init_subregs_of_mode, record_subregs_of_mode): New.
6087         (cannot_change_mode_set_regs): Rewrite for htab implementation.
6088         (invalid_mode_change_p): Likewise.
6089         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
6090         * flow.c (mark_used_regs): Likewise.
6091         (life_analysis): Use init_subregs_of_mode.
6092         * regs.h (subregs_of_mode): Remove.
6093         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
6094
6095 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
6096
6097         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
6098         type with the copy of the conditional.
6099
6100 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
6101
6102         PR tree-opt/16954
6103         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
6104         Prevent renaming if the aliasing sets of the type which the
6105         pointer points to are different.
6106
6107 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
6108
6109         PR c/17188
6110         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
6111         declarations of enumerators.
6112         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
6113         for redefinition.  Check for nested redefinition.
6114         (finish_struct): Don't check for nested redefinition.
6115         (start_enum): Check for nested redefinition.
6116
6117 2004-09-24  Devang Patel  <dpatel@apple.com>
6118
6119         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
6120         only when necesssary.
6121         (combine_blocks): Combine loop header and exit block.
6122
6123 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
6124
6125         * hooks.c (hook_tree_tree_bool_null): New.
6126         * hooks.h (hook_tree_tree_bool_null): Declare it.
6127         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
6128         * targhooks.c (default_fold_builtin): Remove.
6129         * targhooks.h (default_fold_builtin): Remove.
6130
6131 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6132
6133         PR rtl-optimization/17625
6134         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
6135
6136 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
6137
6138         PR tree-opt/17624
6139         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
6140         Reject if any of the operands occur in an abnormal PHI.
6141
6142 2004-09-24  Andreas Schwab  <schwab@suse.de>
6143
6144         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
6145         rules.
6146
6147 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
6148
6149         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
6150         if the GNU assembler is used.
6151         (sparc-*-solaris2*): Likewise.
6152         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
6153         (dbxout_function_end): Protect N_ENSYM with it.
6154         (dbxout_begin_prologue): Protect N_BNSYM with it.
6155         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
6156         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
6157         * config/sparc/sol2-gas.h: New file.
6158
6159 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
6160
6161         PR bootstrap/17369
6162         * Makefile.in (@set_gcc_lib_path@): Added.
6163
6164         * configure.ac: Include ../config/gcc-lib-path.m4. Use
6165         TL_AC_GNU_MAKE_GCC_LIB_PATH.
6166         * configure: Regenerated.
6167
6168 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
6169
6170         PR c/6980
6171         * c-typeck.c (build_c_cast): Improve wording of
6172         -Wbad-function-cast diagnostic.
6173
6174 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
6175
6176         PR target/17626
6177         * config/cris/cris.md (moverside, movemside): Rename variable
6178         "reg" to "otherop".  To generate canonical RTX, check that otherop
6179         isn't constant instead of checking that operand 1 is a register.
6180
6181 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
6182
6183         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
6184
6185 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
6186             Jakub Jelinek  <jakub@redhat.com>
6187
6188         * tree-flow.h (find_new_referenced_vars): Add prototype.
6189         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
6190         Move to...
6191         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
6192         ... here.
6193         (mark_new_vars_to_rename): Walk through all operands.
6194         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
6195         (execute_fold_all_builtins): Use it.
6196         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
6197
6198 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
6199
6200         * gthr-tpf.h: New file.
6201         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
6202         * gthr.h: Use gthr-tpf.h on TPF OS.
6203
6204 2004-09-23 Jeff Law  <law@redhat.com>
6205
6206         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
6207         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
6208         (substitute_and_fold):  Likewise.
6209         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
6210         except invariants from SSA_NAME_VALUE.
6211         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
6212         and SET_SSA_NAME_EQUIV.
6213         (restore_vars_to_original_value, record_const_or_copy): Likewise.
6214         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
6215         (record_equality, cprop_into_successor_phis): Likewise.
6216         (record_equivalences_from_stmt, cprop_operand): Likewise.
6217         (lookup_avail_expr): Likewise.
6218         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
6219         from SSA_NAME_VALUE.
6220         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
6221         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
6222         annotation from the VALUE_HANDLE field.
6223
6224 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
6225
6226         PR c++/13989
6227         PR c++/9844
6228         * tree.c (reconstruct_complex_type): Remove extra "this".
6229         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
6230         Add V4SFmode to case statement.
6231
6232 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
6233
6234         PR c/16833
6235         * doc/extend.texi, doc/invoke.texi: Document interaction of
6236         -fno-builtin with format checks.  Note that built-in functions
6237         have effects beyond generating code that avoids calls to those
6238         functions.
6239
6240 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
6241
6242         PR tree-optimization/17533
6243         * dominance.c (verify_dominators): Tolerate even more incorrect
6244         dominance data during error message printing.
6245         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
6246         and edges more correctly.
6247
6248 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
6249
6250         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
6251         New tree-codes.
6252         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
6253         MISALIGNED_INDIRECT_REF.
6254         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
6255         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
6256         Likewise.
6257         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
6258         (find_interesting_uses_address): Likewise.
6259         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
6260         (build_fold_addr_expr_with_type): Likewise.
6261         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
6262         * print-rtl.c (print_mem_expr): Likewise.
6263         * tree-dump.c (dequeue_and_dump): Likewise.
6264         * tree-eh.c (tree_could_trap_p): Likewise.
6265         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
6266         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
6267         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
6268         Likewise.
6269         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6270         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
6271         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
6272         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
6273         (add_address_candidates, rewrite_address_base): Likewise.
6274         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
6275         Likewise.
6276         * tree.c (staticp, build1_stat): Likewise.
6277
6278         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
6279         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
6280         * tree-ssa-operands.c (get_expr_operands): Likewise.
6281         * expr.c (expand_expr_real_1): Likewise.
6282
6283         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
6284         optabs.
6285         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
6286         for the new optabs.
6287         (expand_ternary_op): New function.
6288         * genopinit.c (optabs): Handle the new optabs.
6289         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
6290         (init_optabs): Initialize vec_realign_load_optab.
6291         (expand_ternary_op): New functions.
6292
6293         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
6294         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
6295         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
6296         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
6297         * target.h (struct vectorize): New member for struct gcc_target.
6298         (misaligned_mem_ok): New member for targetm.vectorize.
6299         (builtin_mask_for_load): Likewise.
6300         (builtin_mask_for_store): Likewise.
6301         * targethooks.c (default_vect_misaligned_mem_ok): New function.
6302         * targethooks.h (default_vect_misaligned_mem_ok): New function.
6303
6304         * config/rs6000/altivec.md (build_vector_mask_for_load): New
6305         define_expand.
6306         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
6307         (vec_realign_load_v16qi): New define_insn.
6308         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
6309         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
6310         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
6311         (altivec_builtin_mask_for_store): New variables.
6312         (rs6000_builtin_mask_for_load): New function. Implements
6313         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
6314         (rs6000_builtin_mask_for_store): New function. Implements
6315         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
6316         (rs6000_expand_builtin): Expand the target builtins
6317         builtin_mask_for_load and builtin_mask_for_store.
6318         (altivec_init_builtins): Initialize the new target builtins.
6319         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
6320         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
6321
6322         * tree-vectorizer.c (vect_create_data_ref): Renamed to
6323         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
6324         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
6325         (vectorizable_store): Call vect_create_data_ref_ptr with additional
6326         arguments, and create an indirect_ref with its return value data_ref.
6327         Check aligned_access_p.
6328         (vectorizable_load): Handle misaligned loads, using software-pipelined
6329         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
6330         vec_realign_load_optab is supported, or using a scheme without
6331         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
6332         misaligned_mem_ok is supported.
6333
6334         (vect_finish_stmt_generation): Typo.
6335         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
6336         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
6337         presence of misaligned loads.
6338         (vect_analyze_data_ref_access): Add check for constant init.
6339         (vect_get_symbl_and_dr): Remove duplicate line.
6340         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
6341
6342 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
6343
6344         * builtins.c: Fix a comment typo.
6345
6346 2004-09-23  Jan Hubicka  <jh@suse.cz>
6347
6348         * profile.c (branch_prob): Do not verify flow info in the middle of the
6349         pass.
6350
6351 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6352
6353         * cfgloop.h (update_single_exits_after_duplication): Declare.
6354         (loopify, split_loop_bb): Declaration changed.
6355         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
6356         of rtx.
6357         (loopify): Added redirect_all_edges argument.
6358         (update_single_exits_after_duplication): Export.
6359         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
6360         * tree-flow.h (tree_duplicate_loop_to_header_edge,
6361         tree_ssa_loop_version): Declare.
6362         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
6363         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
6364         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
6365         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
6366
6367         * tree-ssa-loop-unswitch.c: New file.
6368         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
6369         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
6370         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
6371         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
6372         * tree-pass.h (pass_unswitch): Declare.
6373         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
6374         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
6375         * doc/passes.texi: Documen tree level loop unswitching.
6376
6377 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
6378
6379         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
6380
6381 2004-09-22  Eric Christopher  <echristo@redhat.com>
6382
6383         * builtins.c (simplify_builtin_va_start): Remove.
6384         (simplify_builtin): Ditto.
6385         (fold_builtin_strchr): Ditto.
6386         (simplify_builtin_*): Rename remainders to fold_builtin_*.
6387         (expand_builtin): Fix up for above changes.
6388         (fold_builtin_1): Add new folders. Change for above.
6389         (expand_builtin_va_start): Call fold_builtin_next_arg.
6390         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
6391         * tree.h: Remove prototype for simplify_builtin.
6392
6393 2004-09-23  Jan Hubicka  <jh@suse.cz>
6394
6395         PR debug/17389
6396         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
6397         of fully inlined functions.
6398         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
6399         inlined.
6400
6401         * cfgexpand.c (add_reg_br_prob_note): New function.
6402         (expand_gimple_cond_expr): Use it.
6403         (tree_expand_cfg): No longer kill the profile.
6404         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
6405         only if it is present.
6406         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
6407         * predict.c (combine_predictions_for_insn): Set the probabilities
6408         based on REG_BR_PROB note if present.
6409         * predict.c (branch_prob): Profile is read only with
6410         flag_branch_probabilities.
6411
6412 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
6413
6414         * aclocal.m4: Add in gettext's m4 includes.
6415         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
6416         * configure.ac: Add in check for iconv.h
6417         * configure: Regenerate.
6418
6419 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
6420
6421         * aclocal.m4: Update for rename of gettext-sister.m4.
6422
6423 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
6424
6425         Fix PR tree-optimization/17587
6426         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
6427         (insert_aux): Instead of here.
6428
6429 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
6430
6431         PR tree-optimization/16721
6432         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
6433         * tree-ssa-alias.c (create_memory_tag): Move setting of
6434         TREE_THIS_VOLATILE ...
6435         (get_tmt_for): ... here.
6436
6437 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6438
6439         * config/sparc/sparc.md (cmove splitter): Fix formatting.
6440         (conditional_trap expander): Reject inappropriate CCmodes.
6441         (conditional trap insn): Use V9 syntax if possible.
6442
6443 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6444
6445         PR c/16566
6446         * c-typeck.c (build_component_ref): Don't special-case
6447         COMPOUND_EXPR.
6448
6449 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
6450
6451         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
6452         returns NULL.
6453
6454 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
6455
6456         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
6457         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
6458         TRUTH_XOR_EXPR): Mention the restriction on types.
6459
6460 2004-09-22  Matt Austern  <austern@apple.com>
6461
6462         * config/darwin.c (darwin_make_decl_one_only):
6463         Allow coalesced symbol to appear in static archive's table of contents
6464
6465 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
6466
6467         PR tree-optimization/17512
6468         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
6469         special cases.
6470
6471 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
6472
6473         * dbxout.c (get_lang_number): Do not define if
6474         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
6475
6476 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
6477
6478         PR target/15583
6479         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
6480         builtin_define ("__USE_INIT_FINI__").
6481
6482 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
6483
6484         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
6485         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
6486         * config/s390/s390.h (TARGET_TPF): New macro.
6487         * config/s390/s390.md ("eh_return"): New expander.
6488         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
6489         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
6490         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
6491         * config/s390/tpf.h (TARGET_TPF): Define to 1.
6492         (STACK_POINTER_OFFSET): Increase to 448.
6493         (TARGET_DEFAULT): Set -mtpf-trace on as default.
6494         (TPF_LOC_DIFF_OFFSET): New macro.
6495         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
6496         encoding.
6497         (__isPATrange): Add prototype.
6498         (MD_FALLBACK_FRAME_STATE_FOR): Define.
6499         * config/s390/tpf-eh.c: New file.
6500
6501 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
6502
6503         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
6504         operands in an integer comparison.
6505         * tree-cfg.c (find_taken_edge): Call fold() to determine
6506         whether the predicate is known.
6507
6508 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
6509
6510         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
6511         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
6512         Create build and doc directories along with the language directories.
6513         Don't create doc directory separately.
6514         * configure: Regenerate.
6515         * Makefile.in: Create all object and executables files built
6516         with the build compiler in a build/ directory.
6517         (genobjnames): Add missing build objects.
6518         (STAGESTUFF): Don't stage the gen* programs.
6519         (ggc-none.o): Define dependencies for the target compiler.
6520         (build-print-rtl.o): Rename to build/print-rtl.o.
6521         (build-errors.o): Rename to build/errors.o.
6522         (build-varray.o): Rename to build/varray.o.
6523         (maintainerclean): Delete the contents of the build directory.
6524         ($(genobjs): %.o): Explicitly use -o.
6525         (build/insn-conditions.o): Delete specfic rule to use generic rule.
6526         (build/gengtype-lex.o): Likewise.
6527         (build/gengtype-yacc.o): Likewise.
6528         (build/gcov-iov.o): Likewise.
6529
6530 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
6531
6532         * vec.h (VEC_space): Return true if there _is_ space.
6533         (VEC_reserve): Adjust.
6534
6535 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
6536
6537         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
6538         use FPRs for scalar, complex and vector types only.
6539
6540 2004-09-21 Jeff Law  <law@redhat.com>
6541
6542         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
6543         the opt_stats_d structure.
6544         (vrp_data): Change from a varray into a hash table.
6545         (vrp_hash_elt): New structure for elements in the vrp hash table.
6546         (vrp_hash, vrp_eq):New functions for hashing and testing equality
6547         in the vrp hash table.
6548         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
6549         initialization slightly to make it easier to read.  No longer need
6550         to grow/clear the varray.  Instead empty and delete the hash table.
6551         (dom_opt_finalize_block): Update due to change of VRP_DATA from
6552         a varray to a hash table.
6553         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
6554
6555         * tree-ssa-ccp.c (get_default_value): If we have a constant
6556         value recorded for an SSA_NAME, then use that constant as
6557         the initial lattice value.
6558         (substitute_and_fold): Transfer equivalences discovered into
6559         SSA_NAME_EQUIV.
6560
6561         * tree.h (SSA_NAME_EQUIV): Add comments.
6562         (SET_SSA_NAME_EQUIV): Similarly.
6563
6564 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
6565
6566         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
6567
6568         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
6569
6570 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
6571
6572         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
6573         (finish_decl): Likewise.
6574
6575 2004-09-21  Devang Patel  <dpatel@apple.com>
6576
6577         * tree.def (VEC_COND_EXPR): New tree node.
6578         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
6579
6580 2004-09-21  Stan Shebs  <shebs@apple.com>
6581
6582         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
6583         * config/rs6000/darwin-world.asm: Likewise.
6584
6585 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
6586
6587         * tree-ssa.c (verify_def): Use print_generic_stmt,
6588         not debug_generic_stmt.
6589         (verify_use): Ditto.
6590         (verify_phi_args): Ditto.
6591         (verify_ssa): Ditto.
6592
6593 2004-09-21  Paul Brook  <paul@codesourcery.com>
6594
6595         * varasm.c (default_assemble_integer): Return false for values wider
6596         than the target word size.  Works around GAS bug.
6597
6598 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
6599
6600         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
6601         gets value 0.
6602         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
6603         if it has value 0.
6604
6605 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
6606
6607         * c-typeck.c (build_function_call): Give name of object
6608         we are attempting to call in error message.
6609         * c-objc-common.c (c_tree_printer): Call pp_expression,
6610         not return false, for 'E' case.
6611
6612 2004-09-21  Steven Bosscher  <stevenb@suse.de>
6613
6614         PR rtl-optimization/17482
6615         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
6616         load_killed_in_block_p): Clarify comments.
6617         (record_last_reg_set_info): Make static inline.
6618         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
6619         (record_opr_changes): New function to replace the above.
6620         (compute_hash_table): Clarify comments.  Use record_opr_changes.
6621         (reg_set_between_after_reload_p): Clean up.
6622         (reg_used_between_after_reload_p): Likewise.
6623         (eliminate_partially_redundant_load): Clarify comments.
6624
6625 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
6626
6627         PR rtl-optimization/17266
6628         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
6629
6630 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
6631
6632         PR rtl-optimization/14851
6633         * rtlanal.c (commutative_operand_precedence): Calculate
6634         precedence of stripped constant.
6635
6636 2004-09-20 Jeff Law  <law@redhat.com>
6637            Jan Hubicka  <jh@suse.cz>
6638
6639         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
6640         initialize key elements here.
6641         (release_ssa_name): Zero the released SSA_NAME here.
6642         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
6643         (struct tree_ssa_name): Add new "equiv" field.
6644         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
6645         (tree_ssa_dominator_optimize): No longer allocate, resize or
6646         clear CONST_AND_COPIES.
6647         (get_value_for, set_value_for): Kill.
6648         (thread_across_edge): Get/set the equivalency using
6649         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
6650         (restore_vars_to_original_value): Likewise.
6651         (record_equivalences_from_phis): Likewise.
6652         (record_dominating_conditions): Likewise.
6653         (record_const_or_copy, record_equality): Likewise.
6654         (lookup_avail_expr): Likewise.
6655         (record_equivalences_from_stmt, cprop_operand): Likewise.
6656         (cprop_into_successor_phis): No longer need to pass around
6657         CONST_AND_COPIES.  Callers updated. Get equivalences via
6658         SSA_NAME_EQUIV.
6659         (cprop_into_phis): Likewise.
6660
6661 2004-09-20  Matt Austern <austern@apple.com>
6662             Zack Weinberg  <zack@codesourcery.com>
6663
6664         * c-common.c (fix_string_type): Build the unqualified array
6665         type unconditionally, then use c_build_qualified_type to get
6666         the proper const-qualified variant, and set its
6667         TYPE_MAIN_VARIANT to refer to the unqualified type.
6668         * c-lex.c (c_lex_return_raw_string): New global.
6669         (c_lex_with_flags): Honor it.
6670         * c-pragma.h: Declare it.
6671
6672 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
6673
6674         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
6675
6676 2004-09-21  Jan Hubicka  <jh@suse.cz>
6677
6678         PR middle-end/17126
6679         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
6680         (tree_rest_of_compilation): Cleanup.
6681
6682 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
6683
6684         * config/s390/s390.c (s390_select_rtx_section): Remove.
6685         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
6686
6687 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6688
6689         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
6690         note to pretend a direct save from the original register when an
6691         intermediate register is used for the save.
6692
6693 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6694
6695         * tsystem.h (alloca): Provide a default definition.
6696
6697         Revert:
6698         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6699             * unwind-dw2.c: Call __builtin_alloca, not alloca.
6700
6701 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
6702
6703         PR tree-opt/17558
6704         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
6705         aliasing sets are the same rather than just conflicting.
6706
6707 2004-09-20  Jan Hubicka  <jh@suse.cz>
6708
6709         PR middle-end/16460
6710
6711         * cgraph.c (cgraph_unnest_node): New function.
6712         (c_finalize): Rename to ....
6713         (c_warn_unused_result_recursivly): ... this one; do only the warning
6714         (finish_function): Finalize the toplevel function; do not lower nested tree.
6715         * cgraph.h (cgraph_unnest_node): Declare.
6716         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
6717         nestedness datastructure.
6718         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
6719         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
6720         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
6721
6722 2004-09-20  Richard Henderson  <rth@redhat.com>
6723
6724         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
6725         from some_small_symbolic_operand_1; export.
6726         (some_small_symbolic_operand): Remove.
6727         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
6728         extra C check.
6729         * config/alpha/predicates.md (some_small_symbolic_operand): New.
6730
6731 2004-09-20  Jan Hubicka  <jh@suse.cz>
6732
6733         * predict.c (return_prediction): New function.
6734         (apply_return_prediction): Likewise.
6735         (tree_bb_level_predictions): Likewise.
6736         (tree_estimate_probability): Add noreturn exit edges; call
6737         bb_level_predictions; fix logic of return heuristics.
6738         (predict_paths_leading_to):  Rescuesce from old CVS version of
6739         process_note_prediction function.
6740         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
6741
6742 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
6743
6744         * config/s390/s390.c (s390_frame_info): Added alignment statement for
6745         floating point register area on stack.
6746
6747 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
6748
6749         * predict.c (expr_expected_value): Use *_CLASS_P macros.
6750
6751 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
6752
6753         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
6754         generating useless garbage.
6755
6756 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
6757
6758         * builtins.c (fold_builtin): Call the new omonymous
6759         target hook for machine-dependent built-ins.
6760         * target-def.h (TARGET_FOLD_BUILTIN): New.
6761         * target.h (struct gcc_target): Add the fold_builtin hook.
6762         * targhooks.c (default_fold_builtin): New.
6763         * targhooks.h (default_fold_builtin): Declare it.
6764
6765 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
6766
6767         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
6768         comment typos.
6769
6770 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
6771
6772         PR target/17565
6773         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
6774
6775 2004-09-20  Jan Hubicka  <jh@suse.cz>
6776
6777         * predict.c (estimate_probability): Remove unnecesary code.
6778
6779 2004-09-19  Ira Rosen  <irar@il.ibm.com>
6780
6781         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
6782         (STMT_VINFO_VECT_DR_BASE): Declare.
6783         (VECT_SMODULO): Declare.
6784         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
6785         (vect_compute_array_base_alignment): New function.
6786         (vect_analyze_data_ref_access): Check array indices. Remove one
6787         dimensional arrays restriction.
6788         (vect_get_ptr_offset): New function.
6789         (vect_get_symbl_and_dr): New function.
6790         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
6791         (former name vect_get_base_decl_and_bit_offset).
6792         (vect_create_index_for_array_ref): Removed.
6793         (vect_create_index_for_vector_ref): New function.
6794         (vect_create_addr_base_for_vector_ref): New function.
6795         (vect_create_data_ref): Handle additional data refs. Call
6796         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
6797         (vect_compute_data_ref_alignment): Support the changes. Call
6798         vect_get_base_and_bit_offset.
6799         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
6800         data refs. Store vect_dr_base.
6801         (vect_analyze_data_ref_accesses): Support nonconstant init.
6802         (new_stmt_vec_info): Initialize vect_dr_base field.
6803         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
6804         (get_vectype_for_scalar_type): Check for BLKmode.
6805         * tree-chrec.h (initial_condition_in_loop_num): Declare.
6806         * tree-chrec.c (initial_condition_in_loop_num): New function.
6807         (chrec_component_in_loop_num): New function.
6808         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
6809         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
6810         to be pointer to varray_type.
6811
6812 2004-09-19  Jan Hubicka  <jh@suse.cz>
6813
6814         * basic-block.h (update_bb_profile_after_threading): Declare.
6815         * cfg.c (update_bb_profile_after_threading): Break out from ...
6816         * cfgcleanup.c (try_forward_edges): ... here; use it.
6817         * tree-ssa-dom.c (thread_across_edge): Use it.
6818         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
6819         profile of the new BB.
6820
6821 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
6822
6823         * tree-ssa-pre.c (insert_into_set): Don't put
6824         is_gimple_min_invariant values into the set.
6825
6826 2004-09-19  Andreas Jaeger  <aj@suse.de>
6827
6828         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
6829         prototype.
6830
6831 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
6832
6833         * config/cris/cris.h: Preserve the original spelling in a
6834         quote.
6835
6836 2004-09-18 Jeff Law  <law@redhat.com>
6837
6838         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
6839         global varrays to replace the block local varrays.
6840         (struct dom_walk_block_data): Remove, no longer used.
6841         (get_eq_expr_value): No longer need to pass around pointers to local
6842         varrays.  Callers updated.  Unused markers added to unused parameters.
6843         (record_range, record_equivalences_from_stmt): Likewise.
6844         (record_equivalences_from_incoming_edge): Likewise.
6845         (record_var_is_nonzero): Likewise.  Update now that we have a
6846         single global varray of SSA_NAMEs that need restoring.
6847         (dom_opt_initialize_block_local_data): Kill, no longer used.
6848         (tree_ssa_dominator_optimize): Initialize new global varrays.
6849         Update callbacks in dominator walker structure.
6850         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
6851         VRP_VARIABLES_STACK.
6852         (restore_nonzero_vars_to_original_value): Update now that we have
6853         a single global varray of SSA_NAMEs that need restoring.
6854         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
6855         Remove unused variables.
6856         (optimize_stmt): Remove unused variable.
6857
6858 2004-09-18  Jan Hubicka  <jh@suse.cz>
6859
6860         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
6861
6862         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
6863         verify_cgraph call.
6864
6865 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
6866
6867         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
6868         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
6869         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
6870         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
6871         tree-ssa-operands.c, tree-ssa-phiopt.c,
6872         tree-ssa-threadupdate.c: Fix comment typos.
6873
6874 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
6875
6876         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
6877         config/arm/README-interworking, config/arm/arm-cores.def,
6878         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
6879         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
6880         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
6881         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
6882         config/frv/frv.md, config/i386/winnt.c,
6883         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
6884         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
6885         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
6886         config/mcore/mcore.c, config/mips/mips.h,
6887         config/mn10300/mn10300.md, config/pa/pa.c,
6888         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
6889         config/rs6000/rs6000.c, config/sh/symbian.c,
6890         config/sparc/sparc.h: Fix comment typos.  Follow spelling
6891         conventions.
6892
6893 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
6894
6895         PR c/17424
6896         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
6897
6898 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
6899
6900         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
6901         remove TREE_ADDRESSABLE from RESULT_DECL.
6902
6903 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
6904
6905         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
6906
6907 2004-09-18  Jan Hubicka  <jh@suse.cz>
6908
6909         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
6910         NULL.
6911         * tree-ssa-alias.c (init_alias_info): Likewise.
6912         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
6913         (verify_ssa): Likewise.
6914         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
6915
6916 2004-09-18  Jan Hubicka  <jh@suse.cz>
6917
6918         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
6919         huge offset.
6920
6921 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6922
6923         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
6924         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6925         DW_EH_PE_sdata* for data.
6926         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6927
6928 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
6929
6930         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
6931         shared anyway.
6932
6933         PR pch/13361
6934         * c-typeck.c (constructor_asmspec): Delete.
6935         (struct initializer_stack): Delete field 'asmspec'.
6936         (start_init): Delete saving of asmspec.
6937         (finish_init): Don't update constructor_asmspec.
6938         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
6939         * stmt.c (expand_asm): Duplicate strings from tree.
6940         (expand_asm_operands): Likewise.
6941         * tree.c (tree_size): Update computation of size of STRING_CST.
6942         (make_node): Don't make STRING_CST nodes.
6943         (build_string): Allocate string with tree node.
6944         (tree_code_size): Clean up assertions, don't allow requests
6945         for "the size of a STRING_CST".
6946         * tree.def (STRING_CST): Update comment.
6947         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
6948         (tree_string): Place contents of string in tree node.
6949         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
6950         from tree.
6951
6952 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
6953
6954         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
6955         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
6956
6957 2004-09-17  Jones Desougi  <jones@ingate.com>
6958
6959         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
6960         * configure, config.in: Regenerate.
6961
6962 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
6963
6964         * tree.c, tree.h (tree_class_strings): Make array const.
6965         Reindent per coding convention.  Move asterisk to proper place
6966         per coding convention.
6967
6968 2004-09-18  Andreas Schwab  <schwab@suse.de>
6969
6970         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
6971         (tree-vectorizer.o): Likewise.
6972         (targhooks.o): Likewise.
6973
6974 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
6975             Zack Weinberg  <zack@codesourcery.com>
6976
6977         * alias.c (find_base_decl): Remove unreachable case '3' block.
6978         * expr.c (safe_from_p): Abort if passed a type.
6979         * tree-gimple.c (recalculate_side_effects): Abort if passed
6980         anything other than an expression.
6981         * tree-ssa-pre.c (phi_translate): Return expr immediately if
6982         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
6983         Abort on un-handled tree classes.
6984         (valid_in_set): Likewise.
6985         * tree.c (tree_code_class_strings): New static data.
6986
6987         * tree.h (enum tree_code_class): New.
6988         (tree_code_class_strings): Declare.
6989         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
6990         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
6991         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
6992         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
6993         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
6994
6995         * tree.def, c-common.def, objc/objc-tree.def: Use
6996         tree_code_class enumeration constants instead of code letters.
6997
6998         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
6999         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
7000         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
7001         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
7002         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
7003         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
7004         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
7005         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
7006         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
7007         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
7008         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
7009         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
7010         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
7011         Update to match.
7012
7013         * LANGUAGES: Add note about change.
7014
7015 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
7016
7017         PR tree-optimization/17319
7018         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
7019         examine pointers on the LHS of an assignment.
7020         (collect_points_to_info_r): Handle RETURN_EXPR.
7021
7022 2004-09-17 Jeff Law  <law@redhat.com>
7023
7024         * tree-ssa-dom.c (const_and_copies_stack): New.
7025         (dom_walk_block_data): Remove const_and_copies field.
7026         (record_const_or_copy): No longer need to pass in varray_type *.
7027         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
7028         Callers updated.
7029         (record_equality): Similarly.
7030         (restore_vars_to_original_value): Similarly.  Revamp to use new
7031         single global stack rather than per-block stacks.
7032         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
7033         (thread_across_edge): Remove now unused parameters.
7034         (dom_opt_initialize_block_local_data): No longer test the block
7035         local CONST_AND_COPIES.
7036         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
7037
7038 2004-09-17  Jan Hubicka  <jh@suse.cz>
7039
7040         PR tree-optimization/17509
7041         * tree-optimize.c (update_inlined_to_pointers): New function.
7042         (tree_rest_of_compilation): Use it.
7043
7044 2004-09-17  Devang Patel  <dpatel@apple.com>
7045
7046         * dbxout.c (get_lang_number): New.
7047         (dbxout_init): Include lang number in N_SO  stab.
7048         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
7049         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
7050
7051 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
7052
7053         PR tree-optimization/17273
7054         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
7055         replacement is a constant.
7056
7057 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
7058
7059         * c-tree.h (enum c_typespec_keyword): New.
7060         (struct c_declspecs): Adjust description of "type".  Remove
7061         specbits, explicit_int_p and explicit_char_p.  Rename
7062         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
7063         short_p, signed_p, unsigned_p and complex_p.
7064         (finish_declspecs): New.
7065         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
7066         typename): Call finish_declspecs.
7067         * c-decl.c (finish_declspecs): New.
7068         (declspecs_add_type): Check for combinations which cannot occur in
7069         valid specifier lists.  Update comments.
7070         (shadow_tag_warned): Remove checks done in finish_declspecs.
7071         Don't report useless type name if type defaulted to int.
7072         (grokdeclarator): Remove checks and actions done in
7073         finish_declspecs.  Don't allow for type being NULL.  Update for
7074         datastructures changes.  Initialize decl_attr.
7075         (build_null_declspecs, quals_from_declspecs): Update for
7076         datastructures changes.
7077
7078 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
7079
7080         * doc/extend.texi: Fix duplicated word.
7081
7082 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
7083
7084         * doc/invoke.texi: Remove stray explanation on
7085         -freduce-all-givs and -fmove-all-movables.
7086
7087 2004-09-17  James Morrison  <phython@gcc.gnu.org>
7088
7089         * doc/cfg.texi: Use @smallexample.
7090         * doc/md.texi: Likewise.
7091         * doc/tree-ssa.texi: Likewise.
7092         * doc/extend.texi: Likewise.  Use @r{} in comments.
7093         * doc/trouble.texi: Use @r{} in comments.
7094
7095 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
7096
7097         * configure.ac (gcc_cv_gld_version): Handle whitespace before
7098         "VERSION=".
7099         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
7100         * configure: Regenerate.
7101
7102 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
7103
7104         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
7105         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
7106         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
7107         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
7108         slashes in substitutions.
7109         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
7110
7111 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
7112
7113         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
7114         gimplify.c, lambda-code.c, optabs.c, predict.c,
7115         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
7116         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
7117         conventions.
7118
7119 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
7120
7121         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
7122         doc/extend.texi, doc/install.texi, doc/invoke.texi,
7123         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
7124         doc/trouble.texi: Use @option around options.
7125
7126 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
7127
7128         * Makefile.in (gen-protos.o): Depend on errors.h.
7129
7130 2004-09-17  Steven Bosscher  <stevenb@suse.de>
7131
7132         PR tree-optimization/17513
7133         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
7134         for successors of the entry block.
7135
7136 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
7137
7138         PR rtl-optimization/15187
7139         * ifcvt.c (noce_try_cmove_arith): Exit early if total
7140         insn_rtx_cost of both branches > BRANCH_COST
7141
7142 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
7143
7144         PR tree-optimization/17528
7145         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
7146         erase the may-alias set for a tag when merging it with
7147         another.
7148
7149 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
7150
7151         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
7152         for 32-bit TARGET_SHMEDIA.
7153         (call_value): Likewise.
7154
7155 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
7156
7157         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
7158         test apply only to TREE_STATIC and DECL_EXTERNAL.
7159
7160 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7161
7162         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
7163         * basic-block.h (get_dominated_by_region): Declare.
7164         * dominance.c (get_dominated_by_region): New function.
7165         * tree-cfg.c: Include cfglayout.h.
7166         (tree_duplicate_bb): Duplicate also phi nodes.
7167         (struct ssa_name_map_entry): New type.
7168         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
7169         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
7170         allocate_ssa_names, rewrite_to_new_ssa_names_def,
7171         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
7172         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
7173         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
7174         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
7175         rewrite_to_new_ssa_names, allocate_ssa_names,
7176         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
7177         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
7178         (copy_loop_headers): Use tree_duplicate_sese_region.
7179
7180 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
7181
7182         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
7183
7184 2004-09-16 Jeff Law  <law@redhat.com>
7185
7186         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
7187         (rewrite_block_data): Remove, no longer used.
7188         (rewrite_initialize_block_local_data): Remove, no longer used.
7189         (rewrite_initialize_block): Mark parameters as unused as needed.
7190         Change references to the block local block_defs to be block_defs_stack.
7191         Push a marker onto the block_defs_stack.
7192         (ssa_rewrite_initialize_block): Similarly.
7193         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
7194         (ssa_register_new_def): No longer needs varray argument.  Use
7195         block_defs_stack instead.  No longer handle possibly null block_defs
7196         varray.  Reverse order of items we push on the stack to make it
7197         easier to identify our marker.
7198         (register_new_def): No longer handle possibly null block_defs
7199         varray.
7200         (rewrite_finalize_block): Revamp to look for markers in the global
7201         block_defs_stack varray rather than wiping a block local varray.
7202         Mark arguments as unused as needed.
7203         (ssa_rewrite_finalize_block): Similarly.
7204         (rewrite_into_ssa): Update initialization of dom walker structure
7205         to reflect that we don't need block local data anymore.  Initialize
7206         the block_defs_stack varray.
7207         (rewrite_ssa_into_ssa): Similarly.
7208         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
7209         (struct dom_walk_data): Kill block_defs field.
7210         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
7211         (thread_across_edge): Use the global block_defs_stack instead of
7212         the old block_defs varray.
7213         (dom_opt_initialize_block_local_data): Update now that we don't have
7214         block_defs field to check anymore.
7215         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
7216         (restore_currdefs_to_original_value): Use the new block_defs_stack
7217         instead of a block local varray.
7218         (dom_opt_finalize_block): Similarly.
7219         (record_equivalencs_from_phis): Similarly.
7220         (optimize_stmt, register_definitions_for_stmt): Similarly.
7221
7222 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
7223
7224         PR tree-optimization/17517
7225         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
7226         coalesce same-root variables without checking for abnormal PHI usage.
7227
7228 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
7229
7230         * cfgloop.h (duplicate_loop):  Add prototype.
7231         * cfgloopmanip.c (duplicate_loop): Make non-static.
7232         * lambda-code.c (perfect_nestify): Factor out test whether
7233         we can handle this loop into separate function.
7234         Call it.
7235         (can_convert_to_perfect_nest): New function.
7236         (replace_uses_of_x_with_y): Add modify_stmt call.
7237         * tree-loop-linear.c (linear_transform_loops): Call
7238         rewrite_into_loop_closed_ssa and free_df.
7239
7240 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
7241
7242         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
7243         loop invariant as well.
7244         (perfect_nestify): new function.
7245         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
7246         upper bounds, and steps.
7247         Set outerinductionvar properly.
7248         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
7249         parameters.
7250         Return NULL if we need a perfect loop and can't make one.
7251         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
7252         (not_interesting_stmt): New function.
7253         (phi_loop_edge_uses_def): Ditto.
7254         (stmt_uses_phi_result): Ditto.
7255         (stmt_is_bumper_for_loop): Ditto.
7256         (perfect_nest_p): Ditto.
7257         (nestify_update_pending_stmts): Ditto.
7258         (replace_uses_of_x_with_y): Ditto.
7259         (stmt_uses_op): Ditto.
7260         (perfect_nestify): Ditto.
7261         * lambda-mat.c (lambda_matrix_id_p): New function.
7262         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
7263         * lambda.h: Update prototypes.
7264         * tree-loop-linear (linear_transform_loop): Use new
7265         perfect_nest_p. Detect and ignore identity transform.
7266         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
7267
7268 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
7269
7270         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
7271         Gather also strides of accessed data.  Pass in the data references
7272         array.
7273         (try_interchange_loops): Add a new heuristic for handling the temporal
7274         locality.  Pass in the data references array.
7275         (linear_transform_loops): Pass the data references array to
7276         try_interchange_loops.
7277
7278 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
7279
7280         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
7281
7282 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
7283
7284         * doc/c-tree.texi (Classes): Remove index entries for
7285         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
7286
7287 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7288
7289         * fold-const.c (fold): Fold difference of addresses.
7290         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
7291         get_inner_reference.
7292         * tree-ssa-loop-ivopts.c (peel_address): Removed.
7293         (ptr_difference_const): Moved to fold-const.c.
7294         (split_address_cost): Use get_inner_reference instead of peel_address.
7295         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
7296         * tree.h (ptr_difference_const): Export.
7297
7298         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
7299         variable type to the dump.  Fix indentation.
7300         (idx_find_step): Handle nonconstant array_ref_element_size and
7301         array_ref_low_bound.
7302         (idx_record_use): Handle array_ref_element_size and
7303         array_ref_low_bound.
7304         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
7305         statements correctly.
7306         (get_computation_at, iv_value): Do not unshare expressions here.
7307         (rewrite_use_outer): Unshare the expression before it is emitted
7308         to code.
7309         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
7310         Moved to tree.c.
7311         * tree.c (unsigned_type_for, signed_type_for): Moved from
7312         tree-ssa-loop-niter.c.  Use langhooks.
7313         * tree.h (signed_type_for): Export.
7314
7315 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
7316
7317         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
7318         prototype.
7319
7320 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
7321
7322         PR target/11572
7323         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
7324         Add two parameters to extra_includes.
7325         (C_INCPATH_INIT): Remove.
7326         * c-incpath.c (register_include_chains): Call extra_pre_includes
7327         before adding the standard include directory.
7328         Update call to extra_includes.
7329         (!defined TARGET_EXTRA_INCLUDES): Update
7330         hook_void_charptr_charptr_int and add !define
7331         TARGET_EXTRA_PRE_INCLUDES.
7332         (!define TARGET_EXTRA_INCLUDES): Define as
7333         hook_void_charptr_charptr_int.
7334         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
7335         (target_c_incpath): Always declare.
7336         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
7337         empty function.
7338         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
7339         * config/darwin.h: (darwin_register_frameworks): Update for
7340         the two new parameters.
7341         (darwin_register_objc_includes): Add prototype.
7342         (TARGET_EXTRA_PRE_INCLUDES): Define.
7343         * config/darwin-c.c (darwin_register_objc_includes): New function.
7344         (darwin_register_frameworks): Update for the two new parameters.
7345         (target_c_incpath): Remove.
7346         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
7347         the compile line.
7348         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
7349         parameters.
7350         (TARGET_EXTRA_PRE_INCLUDES): Document.
7351
7352         * gcc.c (spec_function): Add replace-outfile.
7353         (replace_outfile_spec_function): New function.
7354         * config/darwin.h (LINK_SPEC): Add replace
7355         -lobjc with -lobjc-gnu if -fgnu-runtime is
7356         supplied.
7357         * invoke.texi (replace-outfile): Document.
7358
7359 2004-09-13  Jan Hubicka  <jh@suse.cz>
7360
7361         * predict.c (expr_expected_value, strip_builtin_expect): New function.
7362         (tree_predict_by_opcode): Use it.
7363         (tree_estimate_probability): Add, for now disabled,
7364         strip_builtin_expect call.
7365
7366 2004-09-15  James E Wilson  <wilson@specifixinc.com>
7367
7368         PR target/17455
7369         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
7370         if current_function_decl is a sibcall.
7371
7372 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
7373
7374         * varasm.c (default_function_rdodata_section): Make sure to pass
7375         along a decl for a link-once section.
7376
7377 2004-09-15  Richard Henderson  <rth@redhat.com>
7378
7379         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
7380         warning with code disable.  Fix formatting.
7381
7382 2004-09-15  Steven Bosscher  <stevenb@suse.de>
7383
7384         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
7385         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
7386         after propagating into an ADDR_EXPR.
7387
7388 2004-09-15  Andrew Pinski  <apinski@apple.com>
7389
7390         PR rtl-opt/17427
7391         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
7392         Move it out of gcc_assert.
7393
7394 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
7395
7396         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
7397         except.c, fold-const.c, function.c, langhooks.c, params.c,
7398         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
7399         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
7400         for quoting in diagnostics going through pretty-print.c.  Use ''
7401         for quoting in other diagnostic text.
7402         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
7403         translation.
7404         * Makefile.in (langhooks.o): Update dependencies.
7405         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
7406         formats.
7407
7408 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
7409
7410         * configure.ac: Check for COMDAT support.  Robustify check for
7411         SHF_MERGE support.
7412         * configure: Regenerated.
7413         * config.in: Likewise.
7414         * langhooks-def.h (lhd_comdat_group): New function.
7415         (LANG_HOOKS_COMDAT_GROUP): New macro.
7416         (LANG_HOOKS_DECLS): Use it.
7417         * langhooks.c (lhd_comdat_group): Define.
7418         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
7419         * output.h (named_section_flags): Make it a macro.
7420         (named_section_real): New function.
7421         (default_no_named_section): Add decl parameter.
7422         (default_elf_asm_named_section): Likewise.
7423         (default_coff_asm_named_section): Likewise.
7424         (default_pe_asm_named_section): Likewise.
7425         * target.h (gcc_target): Adjust type of named_section.
7426         * varasm.c (named_section_flags): Rename to named_section_real.
7427         Add decl parameter.
7428         (default_no_named_section): Add decl parameter.
7429         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
7430         with the case that ASM_COMMENT_START is "@".
7431         (default_coff_asm_named_section): Add decl parameter.
7432         (default_pe_asm_named_section): Likewise.
7433         * config/alpha/alpha.c (vms_asm_named_section): Add decl
7434         parameter.
7435         (unicosmk_asm_named_section): Likewise.
7436         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
7437         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
7438         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
7439         * config/cris/cris-protos.h (cris_target_asm_named_section):
7440         Likewise.
7441         * config/cris/cris.c (cris_target_asm_named_section):
7442         Likewise.
7443         * config/darwin/darwin-protos.h (darwin_asm_named_section):
7444         Likewise.
7445         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
7446         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
7447         * config/i386/i386-protos.h (i386_pe_asm_named_section):
7448         Likewise.
7449         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
7450         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
7451         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
7452         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
7453         Likewise.
7454         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
7455         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
7456         * cp/cp-tree.h (cxx_comdat_group): Declare.
7457         * cp/decl.c (cxx_comdat_group): New function.
7458
7459 2004-09-15  Jan Hubicka  <jh@suse.cz>
7460
7461         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
7462         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
7463
7464         * tree-cfg.c (remove_bb): Release SSA defs.
7465
7466 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
7467
7468         * doc/tm.texi: Follow spelling conventions.
7469
7470 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
7471
7472         * tree-ssa-dom.c: Fix comment typos.
7473
7474 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
7475
7476         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
7477         include ccr.
7478         (ppc_fallback_frame_state): Save location of CR.
7479
7480 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
7481
7482         * expr.c (string_constant): Handle also read-only variables
7483         initialized to string literals.
7484
7485         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
7486         into memcpy (x, y, 1) if memcpy can be expanded inline.
7487
7488 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7489
7490         PR tree-optimization/17468
7491         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
7492         definition inside a block precede uses.
7493         * tree-tailcall.c (adjust_return_value): Emit statements in the
7494         correct order.
7495
7496 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
7497
7498         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
7499
7500 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
7501
7502         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
7503
7504 2004-09-14 Jeff Law  <law@redhat.com>
7505
7506         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
7507         (struct dom_walk_block_data): Remove avail_exprs member.
7508         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
7509         (lookup_avail_expr): No longer need to pass in address of
7510         the block local available exprs stack.  All callers changed.
7511         (simplify_cond_and_lookup_avail_expr): Similarly.
7512         (simplify_switch_and_lookup_avail_expr): Similarly.
7513         (get_eq_expr_value, record_cond): Likewise.
7514         (record_dominating_conditions): Likewise.
7515         (update_rhs_and_lookup_avail_expr): Likewise.
7516         (record_equivalences_from_stmt): Likewise.
7517         (dom_opt_initialize_block_local_data): No longer test state of
7518         block local avail_exprs.
7519         (dom_opt_initialize_block): Mark unwind point in the global
7520         avail_expr stack.
7521         (remove_expressions_from_table): Update to unwind to the
7522         most recent unwind marker in the global avail_expr stack.
7523         All callers changed.
7524         (dom_opt_finalize_block): Mark unwind point in the global
7525         avail_expr stack as needed.
7526         (record_cond): Push elements into the global avail_exprs stack.
7527
7528         * tree-dfa.c (free_df_for_stmt): No longer static.
7529         (free_df): Update comments.
7530         * tree-flow.h (free_df_for_stmt): Prototype.
7531         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
7532         call release_defs.
7533
7534 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
7535
7536         PR tree-optimization/17252
7537         * tree-ssa-alias.c (may_alias_p): Don't assume that a
7538         pointer may not point to itself when using relaxed
7539         aliasing rules.
7540
7541 2004-09-14  Richard Henderson  <rth@redhat.com>
7542
7543         PR middle-end/17397
7544         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
7545         while folding <ADDR_EXPR <INDIRECT_REF X>>.
7546
7547 2004-09-14  Andrew Pinski  <apinski@apple.com>
7548
7549         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
7550         sets of the pointers but the aliasing sets of what they point to.
7551
7552 2004-09-14  Roger Sayle  <roger@eyesopen.com>
7553
7554         PR rtl-optimization/9771
7555         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
7556         conditional compilation in init_reg_sets_1.
7557         (init_reg_sets_1): Let global_regs[i] take priority over the frame
7558         (but not stack) pointer exceptions to regs_invalidated_by_call.
7559         (globalize_reg): Globalizing a fixed register may need to update
7560         regs_invalidated_by_call.
7561
7562 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
7563
7564         PR tree-optimization/15262
7565         * tree-dfa.c (dump_variable): Also print the type of the
7566         variable.
7567         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
7568         memory tags are of conflicting alias sets but have no aliased
7569         symbols in common, add one tag to the alias set of the other.
7570         (setup_pointers_and_addressables): Remove hack to deal with
7571         programs with no aliased symbols.
7572         (may_alias_p): Don't special case aggregate types.
7573
7574 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7575
7576         PR c/15498
7577         * doc/invoke.texi (Environment Variables): Correct example locale.
7578
7579 2004-09-14  Jan Hubicka  <jh@suse.cz>
7580
7581         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
7582
7583 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
7584
7585         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
7586
7587 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7588
7589         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
7590         restrict_p.
7591         (struct c_declarator): Change u.array.quals and pointer_quals to
7592         int.  Add u.array.attrs.
7593         (quals_from_declspecs): New.
7594         * c-decl.c (quals_from_declspecs): New.
7595         (shadow_tag_warned): Give more specific message for useless type
7596         qualifiers.
7597         (build_array_declarator, set_array_declarator_inner,
7598         grokdeclarator, make_pointer_declarator, build_null_declspecs,
7599         declspecs_add_qual): Update for changed structures.
7600
7601 2004-09-14  Jeff Law  <law@redhat.com>
7602
7603         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
7604         to a global varray.
7605         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
7606         (dom_opt_initialize_block_local_data): No longer test state
7607         of stmts_to_rescan.
7608         (dom_opt_finalize_block): Update due to change in scope of
7609         stmts_to_rescan.
7610         (optimize_stmt): Similarly.
7611
7612 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
7613
7614         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
7615         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
7616         comment typos.  Follow spelling conventions.
7617
7618 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
7619
7620         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
7621         config/i386/predicates.md, config/sparc/sparc.c: Follow
7622         spelling conventions.
7623
7624 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7625             Steven Bosscher  <stevenb@suse.de>
7626
7627         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
7628         * basic-block.h (struct reorder_block_def): Add copy_number field.
7629         * cfgloop.h (biv_p): Declare.
7630         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
7631         * common.opt (fsplit-ivs-in-unroller): New flag.
7632         * loop-iv.c (biv_p): New function.
7633         * loop-unroll.c: Include hashtab.h and recog.h.
7634         (struct iv_to_split, struct split_ivs_info): New types.
7635         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
7636         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
7637         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
7638         insert_base_initialization, split_iv): New functions.
7639         (peel_loop_completely, unroll_loop_constant_iterations,
7640         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
7641         Use them.
7642         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
7643
7644 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7645
7646         * tree-cfg.c (thread_jumps): Update dominators correctly in
7647         case destination of threaded edge dominates its source.
7648
7649 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7650
7651         * unroll.c: Removed.
7652         * loop.h: Removed.
7653         * Makefile.in (LOOP_H, unroll.o): Removed.
7654         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
7655         dependency.
7656         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
7657         reference.
7658         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
7659         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
7660         * loop.c: Do not include loop.h.
7661         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
7662         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
7663         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
7664         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
7665         struct loop_regs, struct loop_movables, struct loop_info): Moved
7666         from loop.h.
7667         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
7668         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
7669         find_common_reg_term, loop_iterations, final_giv_value): Moved
7670         from unroll.c.
7671         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
7672         loop_dump_stream, for_each_insn_in_loop, express_from,
7673         extend_value_for_giv, loop_iv_add_mult_emit_before,
7674         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
7675         loop_insn_first_p, get_condition_for_loop,
7676         loop_insn_emit_before, loop_insn_hoist,
7677         loop_insn_sink): Made static.
7678         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
7679         reference.
7680         (strength_reduce): Do not call unroller.
7681         (record_giv): Do not initialize unrolled field.
7682         (prescan_loop): Do not set loop_info->preconditioned.
7683         * passes.c: Do not include loop.h.
7684         (rest_of_handle_loop_optimize): Do not call unroller.
7685         * predict.c: Do not include loop.h.
7686         * rtl.h (NOTE_PRECONDITIONED): Removed.
7687         * stmt.c: Do not include loop.h.
7688         * toplev.c: Do not include loop.h.
7689         (process_options): Do not handle flag_old_unroll_loops.
7690
7691         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
7692         Documentation removed.
7693         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
7694
7695 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
7696
7697         * Makefile.in (STAGE1_CHECKING): New variable.
7698         (stage1_build): Use it.
7699         * tree-ssa.c (verify_ssa): Preserve state of dominance
7700         information.
7701
7702 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
7703
7704         * config/i386/i386.c (output_fp_compare): Add generation
7705         of ftst instruction.
7706         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
7707         Use output_fp_compare () function.
7708         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
7709         (fix_truncdi_memory): Remove operands[5] copy.
7710
7711 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
7712
7713         * config/m32r/m32r.md, config/m68k/m68kelf.h,
7714         config/mcore/mcore.md, config/rs6000/linux64.h,
7715         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
7716         typos.
7717
7718 2004-09-13  James E Wilson  <wilson@specifixinc.com>
7719
7720         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
7721         * gen-protos.c: Include errors.h.
7722         (progname): Delete.
7723
7724 2004-09-14  Jan Hubicka  <jh@suse.cz>
7725
7726         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
7727         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
7728         (predict_loops): Use number_of_iterations_exit to predict
7729         number of iterations on trees.
7730
7731 2004-09-13  Dale Johannesen  <dalej@apple.com>
7732
7733         PR 17408
7734         PR 17409
7735         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
7736         objects declared extern.
7737
7738 2004-09-14  Paul Brook  <paul@codesourcery.com>
7739
7740         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
7741         HOST_WIDE_INT.
7742
7743 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
7744
7745         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
7746         Only use TYPE_BINFO for aggregates.
7747
7748 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
7749
7750         * expmed.c (synth_mult): Initialize latency.  Check cost before
7751         checking ops count.
7752
7753 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
7754
7755         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
7756         add_call_clobber_ops and add_call_read_ops.
7757         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
7758         the number of vdefs and vuses inserted based on analysis of global
7759         variables across calls.  * tree-dfa.c (find_referenced_vars):
7760         Needed to reset static var maps before each function is compiled.
7761         * cgraphunit.c:
7762         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
7763         static_vars_info,functions_to_static_vars_info,module_statics_escape,
7764         all_module_statics,searchc_env,dfs_info): New fields to support
7765         analysis of static global variables.
7766         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
7767         cgraph_reset_static_var_maps, get_global_static_vars_info,
7768         get_global_statics_not_read, get_global_statics_not_written,
7769         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
7770         check_rhs_var, check_lhs_var, get_asm_expr_operands,
7771         process_call_for_static_vars, scan_for_static_refs,
7772         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
7773         clear_static_vars_maps, cgraph_propagate_bits,
7774         cgraph_characterize_statics): New. Functions to support analysis
7775         of static global variables.
7776         (cgraph_mark_local_and_external_functions): Renamed from:
7777         (cgraph_mark_local_functions)
7778         (cgraph_expand_all_functions): Remove call to
7779         cgraph_mark_local_and_external_functions.
7780         (cgraph_optimize): Added driver to analyze static variables whose
7781         scope is within the compilation unit.  * cgraph.h (struct
7782         cgraph_local_info, GTY): Added statics_read, statics_written,
7783         local, calls_read_all, calls_write_all, for_functions_valid.
7784         (struct cgraph_node): Added next_cycle.  * cgraph.c
7785         (dump_cgraph_node): Added print routines for new fields.  *
7786         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
7787         list.
7788
7789 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
7790
7791         * c-decl.c (grokdeclarator): Correct comments about where storage
7792         class specifiers are rejected by grammar and add corresponding
7793         asserts.  Diagnose typedefs and parameters declared inline.
7794         Change warning for inline main to a pedwarn.  Only diagnose inline
7795         main if hosted.
7796         (declspecs_add_scspec): Allow duplicate "inline".
7797
7798 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
7799
7800         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
7801         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
7802
7803 2004-09-13  Richard Henderson  <rth@redhat.com>
7804
7805         PR 17436
7806         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
7807         (tree_type): Replace spare with contains_placeholder_bits.
7808         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
7809         make static.  Remove seen_types list.
7810         (type_contains_placeholder_p): New.
7811
7812 2004-09-13  James E Wilson  <wilson@specifixinc.com>
7813
7814         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
7815         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
7816         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
7817         bdesc_arrays instead of mips_bdesc.
7818         (mips_init_builtins): Likewise.
7819         * config/mips/mips.h (TARGET_SB1): New.
7820         (HAVE_SQRT_P): Delete.
7821         * config/mips/mips.md (divide_condition): Support V2SF.
7822         (sqrt_condition, recip_condition): New.
7823         (div<mode>3): Use ANYF instead of SCALARF.
7824         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
7825         MODE.
7826         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
7827         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
7828         instead of MODE.
7829         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
7830         instead of SCALARF.  Use UNITMODE instead of MODE.
7831
7832 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
7833
7834         * config.in: Regenerate after removal of libbanshee.
7835
7836 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
7837
7838         PR tree-optimization/17400
7839         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
7840         coalesce partitions when one occurs in an abnormal PHI.
7841
7842 2004-09-13  Andrew Pinski  <apinski@apple.com>
7843
7844         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
7845         name to _new_size.
7846
7847 2004-09-13  Richard Henderson  <rth@redhat.com>
7848
7849         PR inline-asm/6806
7850         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
7851         (cselib_invalidate_rtx_note_stores): New.
7852         (cselib_record_sets, cselib_process_insn): Update to match.
7853         * cselib.h (cselib_invalidate_rtx): Declare.
7854         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
7855
7856 2004-09-13  Richard Henderson  <rth@redhat.com>
7857
7858         PR tree-opt/10528
7859         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
7860         after copying its argument.
7861
7862 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
7863
7864         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
7865         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
7866         in diagnostics.  Use %' for English apostrophes.
7867         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
7868         (pedwarn_c90, pedwarn_c99): Use it.
7869         * c-decl.c (lookup_label): Quote label name in diagnostic.
7870         * c-parse.in (yyprint): Use ' instead of ` for left quote.
7871         * c-typeck.c (warn_for_assignment): Likewise.
7872
7873 2004-09-13  Jan Hubicka  <jh@suse.cz>
7874
7875         * i386.c (x86_schedule): New global variable.
7876         (override_options): Disable scheduling when not supported.
7877         * i386.h (x86_schedule): Declare.
7878         (TARGET_SCHEDULE): New macro.
7879
7880 2004-09-12  Richard Henderson  <rth@redhat.com>
7881
7882         PR c++/16254
7883         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
7884         * tree.c, tree.h (has_cleanups): Remove.
7885
7886 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7887
7888         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
7889         arguments of the phi nodes correctly.
7890
7891 2004-09-12  Jan Hubicka  <jh@suse.cz>
7892
7893         * ggc-common.c (cmp_statistics): Fix sorting.
7894
7895 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
7896
7897         PR target/16795
7898         * expmed.c (expand_divmod): If cheap power of 2 divide is
7899         available, use it for negative constant as well.
7900
7901 2004-09-12  Andrew Pinski  <apinski@apple.com>
7902
7903         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
7904         size of 0.
7905
7906         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
7907
7908 2004-09-12  Richard Henderson  <rth@redhat.com>
7909
7910         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
7911         or minus one.
7912         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
7913         post-reload, and scratch NULL.
7914         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
7915         (x86_shift_adj_2): Use ix86_expand_clear.
7916         (ashldi3): Remove CMOVE expansion difference.
7917         (ashldi3_1): Remove.
7918         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
7919         add constraints for immediates.  New peephole for split-with-temp.
7920         Run splitter after peep2 pass.
7921         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
7922         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
7923         (setcc_2): Rename with *.
7924         * config/i386/predicates.md (reg_or_pm1_operand): New.
7925         (ashldi_input_operand): New.
7926
7927 2004-09-12  Richard Henderson  <rth@redhat.com
7928
7929         * print-rtl.c (print_decl_name): New.
7930         (print_mem_expr): Use it.
7931
7932 2004-09-12  Richard Henderson  <rth@redhat.com
7933
7934         PR 17186, part deux
7935         * except.c (sjlj_emit_function_exit): Fix logic locating
7936         sjlj_exit_after in final block.
7937
7938 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
7939
7940         * common.opt: Remove flags -fmove-all-movables and
7941         -freduce-all-givs.
7942         * loop-invariant.c (find_invariants_to_move):
7943         Remove all uses of flag_move_all_movables.
7944         * loop.c (move_movables): Remove all uses of
7945         flag_move_all_movables.
7946         (strength_reduce): Remove all uses of
7947         flag_reduce_all_givs.
7948         * doc/invoke.texi: Remove documentation of flags
7949         -fremove-all-movables and -freduce-all-givs.
7950
7951 2004-09-11  Roger Sayle  <roger@eyesopen.com>
7952
7953         PR middle-end/17411
7954         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
7955         change. elt->type may be a floating point type, so use fold_convert.
7956
7957 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
7958
7959         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
7960         the thing referenced as used, not the stub itself.
7961
7962 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
7963
7964         * c-tree.h (enum c_storage_class): New.
7965         (struct c_declspecs): Add storage_class, inline_p and thread_p.
7966         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
7967         declarations and "auto" or "register" in file scope empty
7968         declarations.  Give more specific warnings for other cases of
7969         storage class specifiers in empty declarations.
7970         (grokdeclarator): Update for new structures.  Don't check for
7971         multiple storage classes.  Diagnose file-scope "register" if
7972         pedantic.
7973         (build_null_declspecs): Update.
7974         (declspecs_add_scspec): Update.  Diagnose multiple storage class
7975         specifiers and invalid uses of "__thread".
7976
7977 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
7978
7979         * tree.c (tree_code_size): New function, bulk of code from tree_size.
7980         (tree_size, make_node): Use it.
7981         * tree-ssa-pre.c (init_pre): Use it.
7982         * tree.h: Prototype it.
7983
7984 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7985
7986         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
7987         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
7988         redirect_immediate_use): Use PHI_DF.
7989         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
7990         (bb_for_stmt): Use PHI_BB.
7991         (get_immediate_uses): Use PHI_DF.
7992         * tree-ssa-dse.c (max_stmt_uid): New variable.
7993         (get_stmt_uid): New function.
7994         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
7995         node annotations.
7996         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
7997         (max_uid): Renamed to max_stmt_uid.
7998         (get_stmt_uid): New function.
7999         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
8000         phi node annotations.
8001         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
8002         * tree.h (PHI_BB, PHI_DF): New accessor functions.
8003         (struct tree_phi_node): Add bb and df fields.
8004
8005 2004-09-11  Richard Henderson  <rth@redhat.com>
8006
8007         PR middle-end/17416
8008         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
8009         in conflict loop.
8010
8011 2004-09-11  Jan Hubicka  <jh@suse.cz>
8012
8013         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
8014         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
8015         * i386.md (i387_cw): Add 'uninitialized' mode.
8016
8017         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
8018         (output_location): Break out from ....
8019         (branch_prob): ... here; handle gcov output on trees.
8020         * toplev.c (process_options): No longer be sorry about coverage for
8021         trees.
8022
8023 2004-09-11  Steven Bosscher  <stevenb@suse.de>
8024
8025         PR c++/17412
8026         * fold-const.c (fold): Do not try to fold the operand of a
8027         CLEANUP_POINT_EXPR if that operand does itself not have any
8028         operands.
8029
8030         PR middle-end/17417
8031         * langhooks.c (lhd_decl_printable_name): Make sure that this
8032         function is called with is a decl node that has an identifier.
8033         * tree-pretty-print.c (dump_function_name): New function to
8034         wrap PRINT_FUNCTION_NAME and dump_decl_name.
8035         (print_call_name): Use it.
8036
8037 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
8038
8039         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
8040         "config.h" if not.
8041
8042 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
8043
8044         * tree-ssa-alias.c (collect_points_to_info_r): Handle
8045         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
8046         to OFFSET.
8047
8048 2004-09-11  Richard Henderson  <rth@redhat.com>
8049
8050         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
8051         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
8052         operand of the ADDR_EXPR.
8053         (expand_expr_real_1): Update to match.
8054
8055 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
8056
8057         PR target/17277
8058         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
8059         choose 64-bit version.
8060
8061 2004-09-11  Richard Henderson  <rth@redhat.com>
8062
8063         PR c/17396
8064         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
8065
8066 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
8067
8068         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
8069         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
8070         Insert @: after i.e. or e.g.
8071
8072 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
8073
8074         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
8075         D.xxx rather than <Dxxx>.
8076
8077 2004-09-10  Adam Nemet  <anemet@lnxw.com>
8078
8079         * configure.ac (AC_MSG_CHECKING(what linker to use)):
8080         in_tree_ld_is_elf should be true for LynxOS.
8081         * configure: Regenerate.
8082
8083 2004-09-10  Adam Nemet  <anemet@lnxw.com>
8084
8085         * Makefile.in (all.cross): Add srcextra.
8086
8087 2004-09-10  Roger Sayle  <roger@eyesopen.com>
8088
8089         PR middle-end/17024
8090         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
8091         floating point comparison operators.  Change aborts to gcc_asserts.
8092
8093 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
8094
8095         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
8096
8097 2004-09-10  James E Wilson  <wilson@specifixinc.com>
8098
8099         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
8100         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
8101
8102         * convert.c (convert_to_vector): Replace recursive call with
8103         error_mark_node.
8104
8105         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
8106         Add integer argument named constant.  Use const_tiny_rtx instead of
8107         CONST0_RTX.
8108         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
8109         and CONST1_RTX.
8110         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
8111         vector types.
8112         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
8113         of gen_rtx_raw_CONST_VECTOR.
8114
8115 2004-09-10  Eric Christopher  <echristo@redhat.com>
8116
8117         PR c/16046
8118         * c-parse.in (attribute): Add NULL_TREE for error case
8119         for error recovery.
8120
8121 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
8122
8123         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
8124         (extract_interface_info): Delete prototype.
8125         * c-decl.c (extract_interface_info): Delete stub.
8126         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
8127         it's not already been done ...
8128         (init_c_lex): ... not here.
8129         (fe_file_change): Don't call extract_interface_info.
8130
8131 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8132
8133         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
8134         typedef_p and typedef_signed_p.
8135         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
8136         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
8137         Check typedef_p and typedef_signed_p, not typedef_decl.
8138         (grokfield): Check typedef_p, not typedef_decl.
8139         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
8140         not typedef_decl.
8141         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
8142         typedef_decl.
8143
8144 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
8145
8146         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
8147
8148 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
8149
8150         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
8151         temporary variables.
8152
8153         * dbxout.c (dbxout_block): Update for
8154         current_function_func_begin_label a string.
8155         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
8156         * except.c (dw2_output_call_site_table): Likewise.
8157         * toplev.c (current_function_func_begin_label): Likewise.
8158         * tree.h (current_function_func_begin_label): Likewise.
8159         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
8160
8161         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
8162         loop.
8163
8164         * config/darwin.c: Include target.h.
8165         (struct machopic_indirection): Make ptr_name a string.
8166         (machopic_indirection_hash): Update for ptr_name a string.
8167         (machopic_indirection_eq): Likewise.
8168         (machopic_indirection_name): Likewise.
8169         (machopic_output_indirection): Likewise.
8170         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
8171         string.  Don't expect stub names to be in the identifier hash table.
8172         Do call strip_name_encoding before looking up entry in ID hash table.
8173         * config/t-darwin (darwin.o): Add target.h to dependencies.
8174
8175         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
8176         of fprintf for register names.
8177
8178         * output.h (unlikely_section_label): Delete declaration.
8179         (unlikely_text_section_name): Likewise.
8180         * varasm.c (unlikely_section_label_printed): Make static.
8181         (unlikely_section_label): Likewise.
8182         (unlikely_text_section_name): Likewise.
8183         (assemble_start_function): Use reconcat.
8184
8185         * rtl.def (REG): Add comment to describe third field.
8186
8187 2004-09-10  Andrew Pinski  <apinski@apple.com>
8188
8189         * config/darwin.c (machopic_mcount_stub_name): Call
8190         machopic_indirection_name instead of making the string
8191         ourselves.
8192
8193 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
8194
8195         Revert
8196
8197         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
8198
8199             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
8200             memory tag is call clobbered, so are its aliases.
8201             (group_aliases): When two memory tags being grouped, if one is
8202             call clobbered, so are the other and its aliases.
8203             (add_may_alias): Remove call-clobbering stuff.
8204             (replace_may_alias): Likewise.
8205             (merge_pointed_to_info): Merge pt_global_mem
8206
8207 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
8208
8209         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
8210         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
8211         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
8212         tree-scalar-evolution.c, tree-ssa-copyrename.c,
8213         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
8214
8215 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
8216
8217         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
8218         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
8219         pair.  Remove match_dup from inputs.  Remove masaccs handling.
8220         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
8221         (masaccs, mdasaccs): Turn into define_insns.
8222
8223 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
8224
8225         * tree-tailcall.c (process_assignment): Only do accumulator transforms
8226         for floating-point types if flag_unsafe_math_optimizations.
8227
8228 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
8229
8230         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
8231         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
8232         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
8233         config/h8300/h8300.md, config/i386/gmm_malloc.h,
8234         config/ia64/ia64.md, config/ip2k/libgcc.S,
8235         config/mips/mips-ps-3d.md, config/mips/mips.c,
8236         config/rs6000/rs6000.c, config/s390/s390.c,
8237         config/sh/symbian.c: Fix comment typos.
8238
8239 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
8240
8241         * config/s390/s390.c (s390_emit_prologue): Added missing
8242         "{}" brackets.
8243
8244 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
8245
8246         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
8247         typos.  Follow spelling conventions.
8248
8249 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
8250
8251         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
8252         in diagnostic.  Don't dereference NULL TYPE_NAME.
8253
8254 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
8255
8256         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
8257         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
8258         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
8259         value-prof.c: Fix comment typos.  Follow spelling conventions.
8260
8261 2004-09-10  Jan Hubicka  <jh@suse.cz>
8262
8263         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
8264         * tree-split_edge.c (tree_split_edge): Likewise.
8265         (thread_jumps): Likewise.
8266
8267 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
8268
8269         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
8270         typos.
8271
8272 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
8273
8274         * cgraph.h (cgraph_dump_file): Do not declare.
8275         * cgraphunit.c (cgraph_dump_file): Declare as static.
8276         (init_cgraph): New.
8277         * toplev.c (cgraph_dump_file): Do not declare.
8278         (compile_file): Call init_cgraph.
8279         * tree-dump.c (dump_files): Add IPA dump file, remove
8280         XML dump of call graph.
8281         (get_dump_file_name): Support IPA dump file naming scheme.
8282         * tree.h (enum tree_dump_index): Add IPA dump file, remove
8283         XML dump of call graph.
8284         * doc/invoke.texi (Debugging Options): Document the new options.
8285
8286 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
8287
8288         * doc/extend.texi: Document the FR-V built-in functions.
8289
8290 2004-09-09  James E Wilson  <wilson@specifixinc.com>
8291
8292         * doc/sourcebuild.texi: Delete libbanshee reference.
8293
8294 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
8295
8296         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
8297
8298 2004-09-09  James E Wilson  <wilson@specifixinc.com>
8299
8300         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
8301         before calling vector_types_convertible_p.
8302         (digest_init): Check that inside_init has VECTOR_TYPE before calling
8303         vector_types_convertible_p.  Don't give another error if
8304         convert_for_assignment returns error_mark_node.
8305
8306 2004-09-09  Roger Sayle  <roger@eyesopen.com>
8307
8308         PR middle-end/17055
8309         * fold-const.c (build_zero_vector): New function to construct a
8310         vector (either floating point or integer) of zeros.
8311         (fold_convert): Internally, enable conversions of integer zero
8312         to arbitrary vector types, using the new build_zero_vector.
8313
8314 2004-09-09  Roger Sayle  <roger@eyesopen.com>
8315
8316         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
8317         expand a left shift by an immediate constant as either an ashl or
8318         a sequence of additions.
8319         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
8320         instead of calling gen_ashlsi3 with a constant directly.
8321
8322 2004-09-09  Roger Sayle  <roger@eyesopen.com>
8323
8324         * config/i386/i386.c (ix86_split_long_move): When optimizing for
8325         size, and the low and high parts of a DImode constant are equal,
8326         copy one register to another instead of loading the same immediate
8327         value twice.
8328
8329 2004-09-09  Richard Henderson  <rth@redhat.com>
8330
8331         PR middle-end/17367
8332         * function.c (assign_parm_setup_block): Only put PARALLELs into
8333         a register if use_register_for_decl.
8334
8335 2004-09-09  Eric Christopher  <echristo@redhat.com>
8336
8337         * ra-colorize.c (reset_lists): Move variable declaration inside
8338         ENABLE_CHECKING to avoid unused variable warnings when
8339         not --enable-checking.
8340         (check_colors): Ditto.
8341
8342 2004-09-09  Mike Stump  <mrs@apple.com>
8343
8344         * version.c (version_string): Bump to 4.0.0.
8345         * doc/include/gcc-common.texi (version-GCC): Likewise.
8346
8347 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
8348
8349         * doc/extend.texi (nothrow attribute): The attribute is not
8350         implemented in 3.2 and earlier.
8351
8352 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
8353
8354         * genrecog.c (compute_predicate_codes): Use op0_codes
8355         instead of codes.
8356
8357 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
8358
8359         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
8360         implementation changes.
8361
8362 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
8363
8364         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
8365         a PARALLEL instead of a SET due to added clobbers.
8366
8367 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
8368
8369         * reload.c (find_reloads_address): Pass correct operand to
8370         maybe_memory_address_p.
8371
8372 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
8373
8374         * Makefile.in: Remove libbanshee, tree-alias-*.
8375         Remove tree-alias-common.h dependencies.
8376         * common.opt: Remove -ftree-points-to.
8377         * configure.ac: Remove libbanshee.
8378         * flags.h: Remove pta_type, flag_tree_points_to.
8379         * gengtype.c (open_base_files): Remove tree-alias-type.h.
8380         * opts.c (OPT_ftree_points_to): Remove.
8381         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
8382         * tree-dfa.c: Remove tree-alias-common.h
8383         * tree-into-ssa.c: Ditto.
8384         * tree-outof-ssa.c: Ditto.
8385         * tree-ssa-copyrename.c: Ditto.
8386         * tree-ssa-live.c: Ditto.
8387         * tree-optimize.c: Ditto.
8388         * tree-ssa.c: Ditto.
8389         Remove pass_build_pta, pass_del_pta.
8390         * tree-pass.h: Ditto.
8391         * tree-ssa-alias.c: Remove tree-alias-common.h.
8392         (struct alias_stats_d): Remove pta_queries, pta_resolved.
8393         (pass_may_alias): Remove PROP_pta requirement.
8394         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
8395         (get_tmt_for): Ditto.
8396         (dump_alias_stats): Ditto.
8397         * doc/passes.texi: Remove blurb about points-to analysis.
8398         * fortran/Make-lang.in: Remove tree-alias-*.o.
8399
8400 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
8401
8402         * genattrtab.c (write_insn_cases): New function, split out from
8403         write_attr_case.  Correctly handle define_peepholes when printing
8404         the instruction name.
8405         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
8406
8407 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
8408
8409         PR target/17377
8410         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
8411         * config/cris/cris.c (cris_return_address_on_stack): New function.
8412         * config/cris/cris.md ("return"): For location of return address,
8413         also check cris_return_address_on_stack.
8414
8415 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
8416
8417         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
8418         calling phi_ssa_name_p.
8419
8420 2004-09-09  Richard Henderson  <rth@redhat.com>
8421
8422         PR c/17322
8423         * c-typeck.c (valid_compound_expr_initializer): Use only
8424         initializer_constant_valid_p, and not TREE_CONSTANT.
8425         (digest_init): Likewise.
8426         (output_init_element): Likewise.
8427
8428 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8429
8430         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
8431         live_out_1, prune_hardregs_for_mode, init_one_web_common,
8432         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
8433         record_conflict, compare_and_free_webs, init_webs_defs_uses,
8434         parts_to_webs_1, parts_to_webs, reset_conflicts,
8435         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
8436         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
8437         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
8438         put_move, remove_move, combine, select_spill, colorize_one_web,
8439         try_recolor_web, insert_coalesced_conflicts, check_colors,
8440         break_precolored_alias, restore_conflicts_from_coalesce,
8441         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
8442         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
8443         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
8444         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
8445         check_df): Likewise.
8446         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
8447         real_arithmetic, real_compare, real_exponent, real_ldexp,
8448         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
8449         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
8450         real_digit, real_nan, real_maxval, round_for_format, real_convert,
8451         real_to_target, real_from_target, real_hash, encode_ieee_single,
8452         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
8453         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
8454         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
8455         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
8456         extract_insn, peep2_next_insn, peep2_reg_dead_p,
8457         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
8458         if_test_bypass_p): Likewise.
8459         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
8460         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
8461         emit_swap_insn, swap_to_top, move_for_stack_reg,
8462         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
8463         compensate_edge, convert_regs_1): Likewise.
8464         * regclass.c (init_reg_sets, init_reg_sets_1,
8465         memory_move_secondary_cost): Likewise.
8466         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
8467         Likewise.
8468         * reload.c (push_secondary_reload, find_valid_class, push_reload,
8469         operands_match_p, decompose, immune_p, find_reloads,
8470         find_reloads_toplev, find_reloads_address_1, subst_reloads,
8471         copy_replacements, refers_to_regno_for_reload_p,
8472         reg_overlap_mentioned_for_reload_p): Likewise.
8473         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
8474         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
8475         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
8476         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
8477         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
8478         do_output_reload, fixup_abnormal_edges): Likewise.
8479         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
8480         fill_slots_from_thread, relax_delay_slots): Likewise.
8481         * resource.c (mark_referenced_resources, mark_set_resources):
8482         Likewise.
8483         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
8484         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
8485         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
8486         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
8487         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
8488         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
8489         * rtlhooks.c (gen_lowpart_general): Likewise.
8490         * sbitmap.c (sbitmap_difference): Likewise.
8491         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
8492         sched_analyze, add_forward_dependence): Likewise.
8493         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
8494         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
8495         schedule_insns): Likewise.
8496         * sched-vis.c (print_pattern): Likewise.
8497         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
8498         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
8499         simplify_const_relational_operation, simplify_ternary_operation,
8500         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
8501         Likewise.
8502         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
8503         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
8504         resolve_operand_name_1, expand_return, expand_decl,
8505         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
8506         * stor-layout.c (put_pending_size, smallest_mode_for_size,
8507         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
8508         set_sizetype, get_mode_bounds): Likewise.
8509
8510 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
8511
8512         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
8513         * config/arm/pecoff.h, config/i386/beos-elf.h
8514         * config/i386/cygming.h, config/i386/i386-interix.h:
8515         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
8516         comment cloned from manual.
8517         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
8518
8519 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
8520
8521         * builtins.c (build_va_arg_indirect_ref): New function.
8522         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
8523         build_fold_indirect_ref.
8524         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
8525         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
8526         * tree.h: Declare new function.
8527
8528 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
8529
8530         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
8531         dumping for development builds.
8532         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
8533         development builds only.
8534         * genattrtab.c (write_eligible_delay): Fix typo in previous
8535         commit.
8536         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
8537         gcc_assert.
8538
8539 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
8540
8541         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
8542         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
8543         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
8544         hoist_code, extract_mentioned_regs_helper, compute_store_table,
8545         insert_store): Use gcc_assert and gcc_unreachable.
8546         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
8547         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
8548         ggc_record_overhead): Likewise.
8549         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
8550         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
8551         ggc_pop_context, clear_marks, validate_free_objects,
8552         ggc_pch_read): Likewise.
8553         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
8554         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
8555         ggc_push_context, check_cookies, ggc_collect,
8556         ggc_print_statistics): Likewise.
8557         * gimple-low.c (lower_function_body, lower_stmt,
8558         lower_bind_expr): Likewise.
8559         * gimplify.c (gimple_tree_eq, push_gimplify_context,
8560         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
8561         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
8562         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
8563         gimplify_case_label_expr, gimplify_exit_block_expr,
8564         canonicalize_component_ref, gimplify_compound_lval,
8565         gimplify_self_mod_expr, gimplify_call_expr,
8566         gimplify_init_ctor_eval, gimplify_init_constructor,
8567         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
8568         gimplify_expr, check_pointer_types_r,
8569         force_gimple_operand): Likewise.
8570         * global.c (global_alloc, build_insn_chain): Likewise.
8571         * graph.c (clean_graph_dump_file,
8572         finish_graph_dump_file): Likewise.
8573         gcov-io.c (gcov_open): Use GCOV_CHECK.
8574
8575 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
8576
8577         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
8578
8579 2004-09-09  Jan Hubicka  <jh@suse.cz>
8580
8581         middle-end/17128
8582         * tree-inline.c (expand_call_inline): Make overactive sanity check
8583         happy.
8584
8585 2004-09-09  Jan Hubicka  <jh@suse.cz>
8586
8587         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
8588         VIEW_CONVERT_EXPR.
8589
8590 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
8591
8592         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
8593         (gengtype.o): Depend on errors.h.
8594         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
8595         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
8596         attr_alt_subset_p, attr_alt_subset_of_compl_p,
8597         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
8598         write_test_expr, write_attr_value, write_eligible_delay,
8599         make_internal_attr, make_numeric_value): Likewise.
8600         * genautomata.c (regexp_name, get_str_vect,
8601         gen_presence_absence_set, automaton_decl_hash,
8602         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
8603         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
8604         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
8605         test_unit_reserv, it_is_empty_reserv_sets,
8606         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
8607         reserv_sets_and, output_cycle_reservs, get_free_state,
8608         intersected_state_reservs_p, states_union, remove_arc,
8609         copy_insn_regexp, transform_1, transform_2, transform_3,
8610         regexp_transform_func, store_alt_unit_usage,
8611         check_regexp_units_distribution, process_seq_for_forming_states,
8612         process_alts_for_forming_states, make_automaton,
8613         form_arcs_marked_by_insn, create_composed_state,
8614         set_out_arc_insns_equiv_num, partition_equiv_class,
8615         process_insn_equiv_class, set_insn_equiv_classes,
8616         units_to_automata_heuristic_distr, form_regexp,
8617         longest_path_length, output_dfa_max_issue_rate, add_vect,
8618         out_state_arcs_num, add_vect_el, output_trans_table,
8619         output_state_alts_table, output_dead_lock_vect,
8620         output_max_insn_queue_index_def,
8621         output_min_insn_conflict_delay_func,
8622         output_internal_insn_latency_func, output_print_reservation_func,
8623         output_cpu_unit_reservation_p, output_state_arcs,
8624         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
8625         make_default_insn_latency_attr,
8626         form_important_insn_automata_lists): Likewise.
8627         * genemit.c (gen_exp, output_add_clobbers,
8628         output_added_clobbers_hard_reg_p): Likewise.
8629         * genextract.c (print_path, main): Likewise.
8630         * genflags.c (gen_macro): Likewise.
8631         * gengenrtl.c: Include errors.h
8632         (type_from_format, accessor_from_format): Likewise.
8633         * gengtype.c (get_file_basename, output_mangled_typename,
8634         walk_type, write_types_process_field,
8635         write_types_local_process_field): Likewise.
8636         * genmodes.c (complete_mode): Likewise.
8637         * genopinit.c (gen_insn): Likewise.
8638         * genoutput.c (output_insn_data, check_constraint_len,
8639         constraint_len): Likewise.
8640         * genpreds.c (add_mode_tests):Likewise.
8641         * gen-protos.c (add_hash): Likewise.
8642         * genrecog.c (find_operand, find_matching_operand,
8643         validate_pattern, add_to_sequence, maybe_both_true,
8644         nodes_identical_1, merge_trees, write_switch, write_cond,
8645         write_action, is_unconditional, make_insn_sequence,
8646         debug_decision_2): Likewise.
8647         * gensupport.c (is_predicable, collect_insn_data,
8648         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
8649
8650 2004-09-09  Jan Hubicka  <jh@suse.cz>
8651
8652         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
8653         * cfgbuild.c (compute_outgoing_frequencies): When probability is
8654         missing, guess it.
8655         (find_many_sub_basic_blocks): Do update profile only when it is
8656         present.
8657         * predict.c (set_even_probabilities): Break out from ...
8658         (combine_predictions_for_insn): ... here; deal with
8659         !can_predict_insn_p insns.
8660         (combine_predictions_for_bb): Use set_even_probabilities.
8661         (bb_estimate_probability_locally): Break out from ....
8662         (estimate_probability): ... here.
8663         (guess_outgoing_edge_probabilities): New entry point.
8664
8665 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
8666
8667         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
8668         handle_braces, process_brace_body, main, used_arg,
8669         set_multilib_dir, print_multilib_info): Use fatal, not abort.
8670
8671         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
8672
8673         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
8674         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
8675         Morgan's theorem in last checkin.
8676
8677 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8678             Nathan Sidwell  <nathan@codesourcery.com>
8679
8680         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
8681         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
8682         * timevar.c (timevar_push, timevar_pop, timevar_start,
8683         timevar_stop): Likewise.
8684         * toplev.c (default_pch_valid_p): Likewise.
8685         * tracer.c (tail_duplicate): Likewise.
8686         * tree-alias-common.c (get_alias_var_decl,
8687         get_values_from_constructor, create_alias_var, delete_alias_vars,
8688         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
8689         Likewise.
8690         * tree.c (tree_size, make_node_stat, copy_node_stat,
8691         build_int_cst_wide, integer_all_onesp, list_length, chainon,
8692         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
8693         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
8694         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
8695         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
8696         build_method_type_directly, decl_type_context, get_callee_fndecl,
8697         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
8698         tree_fold_gcd): Likewise.
8699         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
8700         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
8701         cleanup_control_expr_graph, find_taken_edge,
8702         find_taken_edge_switch_expr, phi_alternatives_equal,
8703         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
8704         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
8705         tree_split_edge, tree_verify_flow_info, thread_jumps,
8706         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
8707         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
8708         chrec_fold_multiply_poly_poly): Likewise.
8709         * tree-complex.c (extract_component, expand_complex_division,
8710         expand_complex_comparison, expand_complex_operations_1,
8711         build_replicated_const, expand_vector_operations_1): Likewise.
8712         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
8713         build_classic_dir_vector): Likewise.
8714         * tree-dfa.c (compute_immediate_uses_for_phi,
8715         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
8716         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
8717         * tree-dump.c (dequeue_and_dump): Likewise.
8718         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
8719         record_in_finally_tree, replace_goto_queue_1,
8720         maybe_record_in_goto_queue, verify_norecord_switch_expr,
8721         do_return_redirection): Likewise.
8722         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
8723         add_to_dst_predicate_list, find_phi_replacement_condition,
8724         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
8725         Likewise.
8726         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
8727         initialize_inlined_parameters, declare_return_variable,
8728         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
8729         optimize_inline_calls, copy_tree_r): Likewise.
8730         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
8731         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
8732         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
8733         tsi_split_statement_list_after, tsi_split_statement_list_before):
8734         Likewise.
8735         * tree-mudflap.c (mf_varname_tree): Likewise.
8736         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
8737         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
8738         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8739         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
8740         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
8741         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
8742         Likewise.
8743         * tree-phinodes.c (resize_phi_node, add_phi_arg,
8744         remove_all_phi_nodes_for): Likewise.
8745         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
8746         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
8747         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
8748         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
8749         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
8750         generate_one_element_ref, generate_element_copy,
8751         generate_element_zero, scalarize_copy, scalarize_init,
8752         scalarize_ldst): Likewise.
8753         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
8754         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
8755         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
8756         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
8757         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
8758         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
8759         widen_bitfield, ccp_fold_builtin): Likewise.
8760         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
8761         replace_exp_1, propagate_tree_value): Likewise.
8762         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
8763         * tree-ssa-dce.c (set_control_dependence_map_bit,
8764         find_control_dependence, find_pdom, mark_operand_necessary,
8765         mark_stmt_if_obviously_necessary,
8766         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
8767         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
8768         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
8769         eliminate_redundant_computations, avail_expr_eq): Likewise.
8770         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
8771         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
8772         duplicate_blocks): Likewise.
8773         * tree-ssa-loop-im.c (for_each_index, set_level,
8774         is_call_clobbered_ref): Likewise.
8775         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
8776         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
8777         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
8778         peel_address, ptr_difference_cost, may_replace_final_value,
8779         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
8780         rewrite_use, rewrite_uses): Likewise.
8781         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
8782         check_loop_closed_ssa_use): Likewise.
8783         * tree-ssanames.c (make_ssa_name): Likewise.
8784         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
8785         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
8786         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
8787         get_indirect_ref_operands, add_stmt_operand): Likewise.
8788         * tree-ssa-pre.c (value_exists_in_set_bitmap,
8789         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
8790         phi_translate, valid_in_set, compute_antic,
8791         find_or_generate_expression, create_expression_by_pieces, insert_aux,
8792         create_value_expr_from, eliminate): Likewise.
8793         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
8794         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
8795         Likewise.
8796         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
8797         eliminate_tail_call): Likewise.
8798         * tree-vectorizer.c (vect_create_index_for_array_ref,
8799         vect_align_data_ref, vect_create_data_ref,
8800         vect_create_destination_var, vect_get_vec_def_for_operand,
8801         vect_finish_stmt_generation, vect_transform_stmt,
8802         vect_transform_loop_bound, vect_transform_loop,
8803         vect_analyze_operations): Likewise.
8804         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
8805         Likewise.
8806         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
8807         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
8808         bsi_after_labels, bsi_last): Likewise.
8809         * tree-ssa-live.c (var_union, change_partition_var,
8810         create_ssa_var_map, calculate_live_on_entry, root_var_init,
8811         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
8812         Likewise.
8813         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
8814         tpa_find_tree): Likewise.
8815         (register_ssa_partition_check): Declare.
8816         (register_ssa_partition): use it.
8817         * tree-ssa-live.c: Include errors.h.
8818         (register_ssa_partition_check): New.
8819         * tree-ssa-operands.c: Include errors.h.
8820         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
8821
8822 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
8823             Catherine Moore  <clm@redhat.com>
8824
8825         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
8826         (FRV_CPU_FR405): New processor enums.
8827         (frv_issue_rate, frv_acc_group): Declare.
8828         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
8829         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
8830         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
8831         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
8832         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
8833         handled by CPP_SPEC.
8834         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
8835         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
8836         (ACC_MASK): New macro.
8837         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
8838         (TARGET_MEDIA_FR450): New macro.
8839         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
8840         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
8841         (LABEL_ALIGN_AFTER_BARRIER): Define.
8842         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
8843         (IACC_FIRST, IACC_LAST): New pair of SPRs.
8844         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
8845         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
8846         (REGISTER_NAMES): Add entries for new registers.
8847         (REG_CLASS_CONTENTS): Update for new register ranges.
8848         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
8849         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
8850         (PACKING_FLAG_USED_P): Delete.
8851         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
8852         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
8853         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
8854         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
8855         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
8856         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
8857         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
8858         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
8859         (CPU_UNITS_QUERY): Define to 1.
8860         * config/frv/frv.c: Include gt-frv.h
8861         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
8862         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
8863         (frv_insn_group): New enumeration.
8864         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
8865         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
8866         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
8867         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
8868         gap left by REGSTATE_LIVE.
8869         (regstate_t): New typedef.
8870         (TARGET_MACHINE_DEPENDENT_REORG): Define.
8871         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
8872         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
8873         Initialize frv_unit_codes[] and frv_type_to_unit[].
8874         (frv_conditional_register_usage): Remove redundant fixing of
8875         accumulator registers.
8876         (frv_insn_packing_flag): Update specification.
8877         (frv_function_prologue): Don't set frv_insn_packing_flag here.
8878         Zero out frv_nops[].
8879         (frv_expand_epilogue): Remove comments about the no-longer-present
8880         SIBCALL_P argument.
8881         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
8882         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
8883         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
8884         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
8885         packing is disabled and if INSN can only issue to M1.
8886         (call_operand): Check TARGET_LONG_CALLS.
8887         (acc_operand, even_acc_operand, quad_acc_operand)
8888         (accg_operand): Simplify.  Don't accept pseudo registers.
8889         (output_move_single): Handle SPR<-zero moves.
8890         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
8891         (frv_registers_update, frv_registers_used_p): Delete.
8892         (frv_registers_set_p): Delete.
8893         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
8894         (frv_issues_to_branch_unit_p): New function.
8895         (frv_packet): New structure.
8896         (frv_cond_flags, frv_regstate_conflict_p): New functions.
8897         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
8898         (frv_registers_update_1, frv_registers_update): New functions.
8899         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
8900         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
8901         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
8902         (frv_sort_insn_group, frv_reorder_packet): New functions.
8903         (frv_pack_insns): Use frv_reorder_packet.
8904         (frv_packet_address): New variable.
8905         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
8906         (frv_register_nop, frv_reorg): New functions.
8907         (bdesc_1arg): Add __SCUTSS.
8908         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
8909         __SUBSS, __SLASS and __SCAN.
8910         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
8911         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
8912         (frv_init_builtins): Register the above builtins.
8913         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
8914         registers.  Turn the referenced accumulators into global registers.
8915         (frv_read_iacc_argument): New function.
8916         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
8917         (frv_split_iacc_move): New function.
8918         (frv_expand_builtin): Handle the new builtins.
8919         * config/frv/frv.md: Replace old schedulers with new order-independent
8920         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
8921         packing algorithm.
8922         (cpu): Add fr550, fr450 and fr405.
8923         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
8924         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
8925         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
8926         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
8927         (fnop, mnop): New patterns.
8928         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
8929         New constants.
8930         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
8931         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
8932         registers.
8933         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
8934         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
8935         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
8936         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
8937         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
8938         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
8939         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
8940         (frv_prefetch0, frv_prefetch): New patterns.
8941         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
8942         -mcpu=simple.  Add -mcpu=fr550.
8943         (MULTILIB_DIRNAMES): Update accordingly.
8944         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
8945         -mcpu=fr450.
8946         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
8947         -mlong-calls and -malign-labels options for FR-V.
8948
8949 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
8950
8951         PR c/8420
8952         * c-tree.h (struct c_declspecs): New.
8953         (struct c_declarator, struct c_type_name, struct c_parm): Update
8954         element types.
8955         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
8956         start_function, start_decl, build_c_parm,
8957         make_pointer_declarator): Update prototypes.
8958         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
8959         declspecs_add_scspec, declspecs_add_attrs): New.
8960         (split_specs_attrs): Remove.
8961         * c-parse.in (%union): Add dsptype.
8962         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
8963         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
8964         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
8965         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
8966         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
8967         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
8968         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
8969         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
8970         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
8971         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
8972         maybe_type_quals_attrs): Change to dsptype.
8973         (struct c_declspec_stack): New.
8974         (current_declspecs, declspec_stack): Change type.
8975         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
8976         structures.
8977         (extdefs): Likewise.
8978         (setspecs): Likewise.
8979         (fndef): Use current_declspecs for empty declspecs list.
8980         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
8981         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
8982         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
8983         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
8984         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
8985         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
8986         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
8987         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
8988         structures and helper functions.  Update comments.
8989         (typespec_nonattr): Correct comment.
8990         (maybe_type_quals_attrs, typename): Update to new structures.
8991         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
8992         shadow_tag, shadow_tag_warned, start_function, start_decl,
8993         build_c_parm, make_pointer_declarator,
8994         set_array_declarator_inner, groktypename): Update to new
8995         structures.
8996         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
8997         declspecs_add_scspec, declspecs_add_attrs): New.
8998         (split_specs_attrs): Remove.
8999         (shadow_tag_warned): Make warning for useless type names a
9000         pedwarn.  Give hard error for long, short, signed, unsigned or
9001         _Complex used with struct, union or enum in empty declaration.
9002         Make found_tag a bool.
9003         (grokdeclarator): Remove checks now done at parse time.
9004
9005 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
9006
9007         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
9008         c_declarator, struct c_type_name, struct c_parm): New.
9009         (build_array_declarator, set_array_declarator_inner,
9010         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
9011         start_function, start_decl, build_c_parm, build_attrs_declarator,
9012         build_function_declarator, make_pointer_declarator, c_cast_expr,
9013         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
9014         (build_id_declarator): New.
9015         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
9016         structures.
9017         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
9018         ARG_INFO_OTHERS): Remove.
9019         (build_id_declarator): New.
9020         (build_array_declarator, set_array_declarator_inner, groktypename,
9021         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
9022         grokfield, start_function, store_parm_decls_newstyle,
9023         store_parm_decls_oldstyle, store_parm_decls,
9024         build_c_parm, build_attrs_declarator, build_function_declarator,
9025         make_pointer_declarator, grokdeclarator): Update to new
9026         structures.
9027         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
9028         parmtype.
9029         (declarator, notype_declarator, after_type_declarator,
9030         parm_declarator, parm_declarator_starttypename,
9031         parm_declarator_nostarttypename, array_declarator, typename,
9032         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
9033         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
9034         parmlist_1, parmlist_2, parmlist_or_identifiers,
9035         parmlist_or_identifiers_1): Use these types.
9036         (primary, after_type_declarator, parm_declarator_starttypename,
9037         notype_declarator, component_decl, component_declarator,
9038         component_notype_declarator, typename, absdcl,
9039         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
9040         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
9041
9042 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
9043
9044         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
9045         in_typeof, record_maybe_used_decl, pop_maybe_used,
9046         c_expr_sizeof_expr, c_expr_sizeof_type): New.
9047         * c-decl.c (parser_obstack): New.
9048         (c_init_decl_processing): Initialize parser_obstack.
9049         (c_write_global_declarations_1): Check for used but undefined
9050         static functions.
9051         * c-parse.in (%union): Add otype.
9052         (save_obstack_position): New.
9053         (extdefs): Use it.
9054         (unary_expr): Update in_sizeof and in_alignof.  Use
9055         c_expr_sizeof_expr and c_expr_sizeof_type.
9056         (sizeof): Update in_sizeof.
9057         (alignof): Update in_alignof.
9058         (typeof): Update in_typeof.
9059         (typespec_nonreserved_nonattr): Call pop_maybe_used.
9060         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
9061         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
9062         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
9063         (build_external_ref): Set C_DECL_USED or call
9064         record_maybe_used_decl if appropriate.
9065         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
9066
9067 2004-09-08  Eric Christopher  <echristo@redhat.com>
9068
9069         * builtins.c: Fix prototype for fold_builtin_atan.
9070
9071 2004-09-08  Eric Christopher  <echristo@redhat.com>
9072
9073         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
9074         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
9075         fold_builtin_atan): New functions. Migrate function bodies...
9076         (fold_builtin_1): ... from here.
9077
9078 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
9079
9080         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
9081         save_size.
9082
9083 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
9084
9085         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
9086         * config/rs6000/power5.md (power5-lmul): Same.
9087
9088 2004-09-08  Richard Henderson  <rth@redhat.com>
9089
9090         PR rtl-opt/17186
9091         * function.c (expand_function_end): Have fall-off-the-end
9092         return path jump around return register setup.
9093
9094 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9095
9096         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
9097         (output_return): Do not test for the presence of the 'unimp' insn.
9098         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
9099         as predicates instead of custom ones.  Return raw strings when
9100         possible.
9101         (output_sibcall): Likewise.  Concatenate strings.
9102         (output_ubranch): Remove kludge for TurboSPARC.
9103         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
9104         (output_v9branch): Likewise.
9105         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
9106         <#>: Set sparc_indent_opcode if the delay slot is filled.
9107         <(>: Likewise.
9108         <)>: New operand to emit the displacement from the saved PC on return.
9109         <@>: Remove.
9110         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
9111         (ASM_OUTPUT_OPCODE): New macro.
9112         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
9113         * config/sparc/sparc.md (normal_branch, inverted_branch,
9114         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
9115         inverted_fpe_branch): Adjust call to output_cbranch.
9116         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
9117         call to output_v9branch.
9118         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
9119         (output_v9branch): Likewise.
9120
9121 2004-09-08  Devang Patel  <dpatel@apple.com>
9122
9123         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
9124         -segs_read_only_addr and -segs_read_write_addr.
9125         (WORD_SWITCH_TAKES_ARG): Same.
9126         (LINK_SPEC): Same.
9127         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
9128         -segs_read_write_addr.
9129
9130 2004-09-08  Richard Henderson  <rth@redhat.com>
9131
9132         * function.c (reference_callee_copied): New.
9133         (assign_parm_setup_reg): Use it.
9134         * calls.c (initialize_argument_information): Likewise.
9135         (emit_library_call_value_1): Likewise.
9136         * function.h (reference_callee_copied): Declare.
9137
9138         * target.h (struct gcc_target): Add callee_copies.
9139         * target-def.h (TARGET_CALLEE_COPIES): New.
9140         (TARGET_PASS_BY_REFERENCE): Update default.
9141         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9142         * targhooks.c (hook_callee_copies_named): New.
9143         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
9144         hook_pass_by_reference_false.
9145         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
9146         * targhooks.h: Update decls.
9147         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
9148         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9149         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
9150         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
9151         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9152         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
9153         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9154         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
9155         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9156         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
9157         (mips_callee_copies): New.
9158         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9159         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
9160         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9161         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
9162         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9163         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
9164         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9165         * config/sh/sh.c (sh_callee_copies): New.
9166         (TARGET_CALLEE_COPIES): New.
9167         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9168         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
9169         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
9170         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
9171         for FUNCTION_ARG_CALLEE_COPIES.
9172         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
9173
9174 2004-09-08  Devang Patel  <dpatel@apple.com>
9175
9176         * tree-if-conv.c (find_phi_replacement_condition): Return true
9177         edge block.
9178         (replace_phi_with_cond_modify_expr): Select conditional expr args
9179         based on true edge basic block.
9180
9181 2004-09-08  Jan Hubicka  <jh@suse.cz>
9182
9183         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
9184         variables being alias set.
9185
9186 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
9187
9188         * final.c (shorten_branches, final, get_insn_template,
9189         output_alternate_entry_point, final_scan_insn, alter_subreg,
9190         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
9191         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
9192         * fix-header.c (lookup_std_proto): Likewise.
9193         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
9194         verify_local_live_at_start, update_life_info, mark_reg,
9195         calculate_global_regs_live, allocate_reg_life_data,
9196         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
9197         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
9198         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
9199         * fold-const.c (force_fit_type, div_and_round_double,
9200         may_negate_without_overflow_p, int_const_binop, const_binop,
9201         size_binop, size_diffop, fold_convert_const, fold_convert,
9202         invert_tree_comparison, swap_tree_comparison,
9203         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
9204         range_binop, make_range, fold_cond_expr_with_comparison,
9205         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
9206         fold_abs_const, fold_not_const, fold_relational_const, round_up,
9207         round_down): Likewise.
9208         * function.c (find_function_data, assign_stack_temp_for_type,
9209         instantiate_virtual_regs_lossage, aggregate_value_p,
9210         assign_parm_find_entry_rtl, assign_parm_setup_block,
9211         expand_function_start, expand_function_end, keep_stack_depressed,
9212         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
9213
9214 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
9215
9216         * Makefile.in (tree-loop-linear.o): Added.
9217         (OBJS-common): Add tree-loop-linear.o
9218         * common.opt: New flag, ftree-loop-linear.
9219         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
9220         * tree-flow.h: Add prototype for linear_transform_loops.
9221         * tree-optimize.c: Add linear transform after vectorization.
9222         * tree-pass.h: Add struct pass_linear_transform.
9223         * tree-ssa-loop.c: Add pass_linear_transform.
9224         * tree-loop-linear.c: New file.
9225         * lambda-code.c: gcc_assertify.
9226         (gcc_loop_to_lambda_loop): Handle all exit tests.
9227         Handle case where we have (invariant >= induction var).
9228         (find_induction_var_from_exit_cond): Ditto.
9229
9230 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
9231
9232         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
9233         memory tag is call clobbered, so are its aliases.
9234         (group_aliases): When two memory tags being grouped, if one is
9235         call clobbered, so are the other and its aliases.
9236         (add_may_alias): Remove call-clobbering stuff.
9237         (replace_may_alias): Likewise.
9238         (merge_pointed_to_info): Merge pt_global_mem
9239
9240 2004-09-08  Jan Hubicka  <jh@suse.cz>
9241
9242         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
9243         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
9244         (cgraph_expand_function): Remove stale cgraph edges of currently
9245         compiled function; fix non-unit-at-a-time code copying function
9246         node for later reuse.
9247
9248 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
9249
9250         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
9251         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
9252         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
9253         (vec_gc_free, vec_heap_free): New.
9254         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
9255         (DEF_VEC_P): Add allocator argument. Adjust.
9256         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
9257         (DEF_VEC_O): Add allocator argument. Adjust.
9258         (VEC(free)): New.
9259
9260         * tree.h (tree): Define a GC'd vector.
9261         * lamba-code.c (lambda_loop): Likewise.
9262         * value-prof.h (histogram_value): Likewise.
9263
9264 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
9265
9266         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
9267         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
9268         gen_lowpart_common, gen_highpart, gen_highpart_mode,
9269         subreg_highpart_offset, operand_subword, operand_subword_force,
9270         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
9271         set_mem_alias_set, change_address_1, verify_rtx_sharing,
9272         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
9273         try_split, add_insn_after, add_insn_before, remove_insn,
9274         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
9275         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
9276         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
9277         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
9278         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
9279         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
9280         record_path_before_1, check_path_after_1, check_path_after): Likewise.
9281         * except.c (gen_eh_region, resolve_one_fixup_region,
9282         remove_unreachable_regions, convert_from_eh_region_ranges_1,
9283         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
9284         connect_post_landing_pads, sjlj_emit_function_exit,
9285         remove_exception_handler_label, remove_eh_handler,
9286         reachable_next_level, collect_one_action_chain,
9287         output_function_exception_table): Likewise.
9288         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
9289         optimize_save_area_alloca, allocate_dynamic_stack_space,
9290         probe_stack_range, hard_function_value): Likewise.
9291         * expmed.c (mode_for_extraction, store_bit_field,
9292         store_fixed_bit_field, extract_bit_field, expand_shift,
9293         expand_mult_const, expand_mult, choose_multiplier,
9294         expand_mult_highpart, expand_divmod, emit_store_flag,
9295         do_cmp_and_jump): Likewise.
9296         * expr.c (convert_move, convert_modes, move_by_pieces,
9297         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
9298         move_block_from_reg, gen_group_rtx, emit_group_load,
9299         emit_group_move, emit_group_store, use_reg, use_regs,
9300         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
9301         emit_move_insn, emit_move_insn_1, emit_push_insn,
9302         expand_assignment, store_expr, count_type_elements,
9303         store_constructor, store_field, safe_from_p, expand_var,
9304         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
9305
9306 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
9307
9308         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
9309         gcc_assert and gcc_unreachable.
9310         * ddg.c (create_ddg_dependence, add_deps_for_def,
9311         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
9312         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
9313         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
9314         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
9315         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
9316         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
9317         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
9318         dataflow_set_copy, hybrid_search, diagnostic.c,
9319         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
9320         * dojump.c (do_jump): Likewise.
9321         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
9322         compute_dom_fast_query, calculate_dominance_info,
9323         free_dominance_info, get_immediate_dominator,
9324         set_immediate_dominator, get_dominated_by,
9325         redirect_immediate_dominators, nearest_common_dominator,
9326         dominated_by_p, verify_dominators, recount_dominator,
9327         iterate_fix_dominators, add_to_dominance_info,
9328         delete_from_dominance_info): Likewise.
9329         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
9330         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
9331         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
9332         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
9333         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
9334         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
9335         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
9336         output_call_frame_info, output_loc_operands, build_cfa_loc,
9337         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
9338         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
9339         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
9340         splice_child_die, attr_checksum, same_dw_val_p,
9341         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
9342         unmark_dies, value_format, output_loc_list, output_die,
9343         output_pubnames, output_aranges, base_type_die, is_base_type,
9344         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
9345         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
9346         field_byte_offset, add_data_member_location_attribute,
9347         add_const_value_attribute, rtl_for_decl_location,
9348         add_location_or_const_value_attribute, add_byte_size_attribute,
9349         add_bit_offset_attribute, add_bit_size_attribute,
9350         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
9351         decl_start_label, gen_formal_parameter_die,
9352         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
9353         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
9354         force_decl_die, force_type_die, gen_decl_die,
9355         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
9356         dwarf2out_finish): Likewise.
9357
9358 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
9359
9360         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
9361         * builtins.c: Include tree-mudflap.h.
9362
9363 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
9364
9365         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
9366         force operand 0.0 into register in XFmode. Also do not force
9367         operand 0.0 into register if !TARGET_CMOVE.
9368         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
9369         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
9370         implement ftst x87 instruction.
9371         (*fp_jcc_7): New insn pattern. Change corresponding split
9372         pattern to handle "general_operand" instead of
9373         "nonimmediate_operand".
9374
9375 2004-09-08  Ben Elliston  <bje@au.ibm.com>
9376
9377         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
9378
9379 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
9380
9381         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
9382         generated from standard va_arg expansion.
9383         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
9384         marked nodes.
9385         (mf_varname_tree, mf_file_function_line_tree): Add some support
9386         for column numbers if compiled with USE_MAPPED_LOCATION.
9387
9388 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
9389
9390         * c-decl.c (groktypename_in_parm_context): Remove function.
9391         * c-tree.h (groktypename_in_parm_context): Remove prototype.
9392
9393 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
9394
9395         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
9396         * c-parse.in: Include c-common.h instead of objc-act.h.
9397         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
9398         myparms, myparm): Remove %type declarations.
9399         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
9400         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
9401         declarations.
9402         (objc_inherit_code, objc_public_flag): Remove.
9403         (typespec_nonreserved_nonattr): Call
9404         objc_get_protocol_qualified_type() instead of get_static_reference()
9405         and get_protocol_reference().
9406         (stmt_nocomp): Call grokparm() on @catch parameter.
9407         (objcdef): Move semantic action to objc_finish_implementation().
9408         (classdef): Move semantic action to objc_start_class_interface(),
9409         objc_continue_interface(), objc_finish_interface(),
9410         objc_start_class_implementation(), objc_continue_implementation(),
9411         objc_start_category_interface() and
9412         objc_start_category_implementation().
9413         (protocoldef): Move semantic actions to objc_start_protocol() and
9414         objc_finish_interface().
9415         (ivar_decl_list): Remove nonterminal.
9416         (visibility_spec): Move semantic actions to objc_set_visibility().
9417         (ivar_decls): Remove assignment to $$.
9418         (ivar_decl): Rephrase in terms of component_decl; call
9419         objc_add_instance_variable().
9420         (ivars, ivar_declarator): Remove nonterminals.
9421         (opt_semi): New nonterminal.
9422         (methodtype): Remove semantic actions.
9423         (methoddef): Move semantic actions to objc_set_method_type(),
9424         objc_start_method_definition() and objc_finish_method_definition().
9425         (methodproto): Move semantic actions to objc_set_method_type() and
9426         objc_add_method_declaration().
9427         (methoddecl): Use objc_typename instead of typename; move semantic
9428         actions to objc_build_method_signature().
9429         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
9430         (optparmlist): Express in terms of optparms and optellipsis.
9431         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
9432         nonterminals.
9433         (keyworddecl): Use objc_typename instead of typename.
9434         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
9435         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
9436
9437 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
9438
9439         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
9440         (MD_FALLBACK_FRAME_STATE_FOR): Update.
9441         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
9442         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
9443         (MD_FROB_UPDATE_CONTEXT): Remove default.
9444         (uw_update_context_1): Instead #ifdef invocation.
9445         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
9446         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
9447         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
9448         (MD_UNWIND_SUPPORT): Undefine this instead.
9449         * config/i386/gnu.h: Likewise.
9450         * config/alpha/linux-unwind.h: New file, macro converted to
9451         function, extracted from..
9452         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
9453         (MD_UNWIND_SUPPORT): Define.
9454         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
9455         * config/i386/linux-unwind.h, config/i386/linux.h,
9456         config/i386/linux64.h: Likewise.
9457         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
9458         MD_HANDLE_UNWABI too.
9459         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
9460         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
9461         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
9462         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
9463         * config/sparc/linux-unwind.h, config/sparc/linux.h,
9464         config/sparc/linux64.h: Likewise.
9465         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
9466         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
9467         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
9468         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
9469         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
9470
9471 2004-09-07  Jan Hubicka  <jh@suse.cz>
9472
9473         * cse.c (fold_rtx):  Avoid building of
9474         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
9475
9476         * tree-ssa-pre.c (grand_bitmap_obstack): New.
9477         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
9478         (init_pre): Initialize obstack.
9479         (fini_pre): Free obstack.
9480
9481 2004-09-07  David Daney  <ddaney@avtrex.com>
9482
9483         * config.gcc: Added support for --with-divide=[breaks|traps] for
9484         mips targets.
9485         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
9486         (TARGET_DIVIDE_TRAPS): New macro.
9487         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
9488         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
9489         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
9490         GENERATE_DIVIDE_TRAPS.
9491         (mips_output_division): Emit conditional trap if
9492         GENERATE_DIVIDE_TRAPS is set.
9493         * doc/install.texi: Document --with-divide.
9494         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
9495
9496 2004-09-07  Caroline Tice  <ctice@apple.com>
9497
9498         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
9499         EDGE_CROSSING, to flags test case.
9500
9501 2004-09-07  Jan Hubicka  <jh@suse.cz>
9502
9503         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
9504         class too.
9505
9506 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
9507
9508         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
9509         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
9510         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
9511         or gcc_unreachable.
9512         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
9513         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
9514         alloc_aux_for_edges, free_aux_for_edges): Likewise.
9515         * cfgcleanup.c (try_forward_edges,
9516         merge_blocks_move_predecessor_nojumps,
9517         merge_blocks_move_successor_nojumps): Likewise.
9518         * cfgexpand.c (expand_gimple_cond_expr,
9519         expand_gimple_tailcall): Likewise.
9520         * cfghooks.c (duplicate_block): Likewise.
9521         * cfglayout.c (record_effective_endpoints,
9522         insn_locators_initialize, change_scope, fixup_reorder_chain,
9523         verify_insn_chain, fixup_fallthru_exit_predecessor,
9524         duplicate_insn_chain, cfg_layout_finalize): Likewise.
9525         * cfgloopanal.c (check_irred): Likewise.
9526         * cfgloop.c (superloop_at_depth, flow_loops_free,
9527         flow_loop_entry_edges_find, flow_loops_find,
9528         flow_loop_outside_edge_p, get_loop_body,
9529         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
9530         get_loop_exit_edges, num_loop_branches, cancel_loop,
9531         verify_loop_structure): Likewise.
9532         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
9533         duplicate_loop_to_header_edge, create_preheader,
9534         create_loop_notes): Likewise.
9535         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
9536         edirect_branch_edge, force_nonfallthru_and_redirect,
9537         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
9538         commit_edge_insertions, commit_edge_insertions_watch_calls,
9539         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
9540         cfg_layout_redirect_edge_and_branch_force,
9541         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
9542         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
9543         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
9544         cgraph_varpool_node): Likewise.
9545         * cgraphunit.c (cgraph_finalize_function,
9546         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
9547         cgraph_expand_function, cgraph_remove_unreachable_nodes,
9548         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
9549         cgraph_mark_inline, cgraph_expand_all_functions,
9550         cgraph_build_static_cdtor): Likewise.
9551         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
9552         simplify_logical, distribute_notes, insn_cuid): Likewise.
9553         * conflict.c (conflict_graph_add, print_conflict): Likewise.
9554         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
9555         coverage_checksum_string): Likewise.
9556         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
9557         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
9558         cse_cc_succs, cse_condition_code_reg): Likewise.
9559         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
9560         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
9561         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
9562         cselib_record_set): Likewise.
9563
9564 2004-09-07  Jan Hubicka  <jh@suse.cz>
9565
9566         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
9567
9568 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
9569
9570         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
9571         fold_convert.
9572         (fold_builtin_strpbrk): Likewise.
9573         * expr.c (array_ref_low_bound): Likewise.
9574         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
9575         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
9576         * tree-sra.c (generate_element_zero): Likewise.
9577         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
9578         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
9579         add_old_iv_candidates, add_iv_candidates): Likewise.
9580         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
9581
9582 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
9583
9584         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
9585         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
9586         c_expand_expr, boolean_increment, nonnull_check_p,
9587         check_function_arguments_recurse, fold_offsetof_1): Likewise.
9588         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
9589         builtin_define_type_max): Likewise.
9590         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
9591         implicit_decl_warning, builtin_function, build_compound_literal,
9592         complete_array_type, grokdeclarator, get_parm_info,
9593         start_function, store_parm_decls_oldstyle,
9594         c_write_global_declarations): Likewise.
9595         * c-format.c (get_constant, decode_format_attr,
9596         maybe_read_dollar_number, get_flag_spec, check_format_arg,
9597         check_format_types, format_type_warning,
9598         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
9599         init_dynamic_diag_info, handle_format_attribute): Likewise.
9600         * c-gimplify.c (push_context, pop_context, finish_bc_block):
9601         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
9602         * c-objc-common.c (c_tree_printer): Likewise.
9603         * c-pch.c (pch_init): Likewise.
9604         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
9605         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
9606         * c-typeck.c (c_incomplete_type_error, composite_type,
9607         common_pointer_type, common_type, same_translation_unit_p,
9608         tagged_types_tu_compatible_p, finish_init, pop_init_level,
9609         set_designator, set_nonincremental_init_from_string,
9610         process_init_element, c_finish_if_stmt): Likewise.
9611         * caller-save.c (init_caller_save, save_call_clobbered_regs,
9612         insert_restore, insert_save, insert_one_insn): Likewise.
9613         * calls.c (emit_call_1, compute_argument_block_size,
9614         precompute_arguments, expand_call, emit_library_call_value_1,
9615         store_one_arg): Likewise.
9616
9617 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
9618
9619         * configure.ac (enable-checking): Add release option. Reorganize
9620         to avoid repetition.
9621         * configure: Rebuilt.
9622         * doc/install.texi (enable-checking): Amend documentation.
9623
9624 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
9625
9626         PR bootstrap/17313
9627         * Makefile.in (specs.ready): Depend on cc1$(exeext).
9628
9629 2004-09-06  James E Wilson  <wilson@specifixinc.com>
9630
9631         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
9632         movdf_hardfloat_32bit): Split fG into two alternatives.
9633         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
9634
9635         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
9636
9637 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9638
9639         * final.c (output_in_slot): Delete.
9640         (final_scan_insn): Revert 2004-09-03 change.
9641         (output_asm_insn): Likewise.
9642         * config/sparc/sparc.c (output_return): Likewise.
9643         (output_sibcall): Likewise.
9644
9645 2004-09-06  Jan Hubicka  <jh@suse.cz>
9646
9647         * loop.c (loop_dump_aux): Do not print RTL when not available.
9648         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
9649         frontend specific type nodes.
9650         (produce_memory_decl_rtl): Break out from ...
9651         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
9652         (get_computation_at): Avoid random tree sharing.
9653         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
9654
9655 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
9656
9657         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
9658         unnecessary commands.
9659
9660 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
9661
9662         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
9663         (bitmap.o): Likewise.
9664
9665 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
9666
9667         Unify the management of RTL and tree-level dump files.
9668
9669         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
9670         Don't print function name to the dump file, the pass manager
9671         would do this for us. Add code from the top of
9672         rest_of_compilation, up to the initial RTL dump.
9673         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
9674         close the DFI_sibling dump file.
9675         (rest_of_compilation): Don't do that here.  Remove code up to the
9676         initial RTL dump.
9677         (init_optimization_passes): Remove.
9678         (pass_rest_of_compilation): Change pass name to NULL.
9679         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
9680         Do not call init_optimization_passes.
9681         * toplev.h (init_optimization_passes): Remove.
9682
9683         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
9684         finish_graph_dump_file): Remove SUFFIX parameter.
9685         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
9686         finish_graph_dump_file): Likewise.
9687
9688         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
9689         * cfgexpand.c (pass_expand): Adjust.
9690         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
9691         * passes.c (pass_rest_of_compilation): Adjust.
9692         * predict.c (pass_profile): Adjust.
9693         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
9694         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
9695         pass_split_crit_edges, pass_warn_function_return): Adjust.
9696         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
9697         * tree-dfa.c (pass_referenced_vars): Adjust.
9698         * tree-eh.c (pass_lower_eh): Adjust.
9699         * tree-if-conv.c (pass_build_ssa): Adjust.
9700         * tree-into-ssa.c (pass_build_ssa): Adjust.
9701         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
9702         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
9703         * tree-nrv.c (pass_nrv): Adjust.
9704         * tree-optimize.c (pass_gimple, pass_all_optimizations,
9705         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
9706         pass_init_datastructures): Adjust.
9707         * tree-outof-ssa.c (pass_del_ssa): Adjust.
9708         * tree-profile.c (pass_tree_profile): Adjust.
9709         * tree-sra.c (pass_sra): Adjust.
9710         * tree-ssa-alias.c (pass_may_alias): Adjust.
9711         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
9712         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
9713         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
9714         * tree-ssa-dom.c (pass_dominator): Adjust.
9715         * tree-ssa-dse.c (pass_dse): Adjust.
9716         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
9717         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
9718         * tree-ssa-loop-ch.c (pass_ch): Adjust.
9719         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
9720         pass_loop_done, pass_complete_unroll, pass_iv_canon,
9721         pass_iv_optimize, pass_vectorize): Adjust.
9722         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
9723         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
9724         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
9725         pass_late_warn_uninnitialized): Adjust.
9726         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
9727
9728         * Makefile.in (tree-dump.o): Add new dependencies.
9729         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
9730         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
9731         Likewise.
9732         * toplev.c (dump_file_name): New.
9733         * tree-dump.c (dump_enable_all): Add LETTER parameter.
9734         (struct dump_file_info): Add NUM and LETTER fields.
9735         (dump_files): Adjust and add RTL dump files.
9736         (dump_register): Add NUM and LETTER fields.
9737         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
9738         (dump_begin): Use get_dump_file_name.
9739         (dump_switch_p_1): Adjust call to dump_enable_all.
9740         * tree-dump.h (dump_register): Adjust prototype.
9741         * tree-optimize.c (register_one_dump_file): Take dump file index.
9742         Support flags for RTL dumps.
9743         (register_dump_files): Fill in NUM field of struct dump_file_info.
9744         Track properties both when the gate is executed and when it is not.
9745         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
9746         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
9747         dumps of RTL.
9748         * tree-pass.h (dump_file_name): New.
9749         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
9750         New.
9751
9752         * Makefile.in (passes.o): Add new dependencies.
9753         * passes.c (struct dump_file_info, enum dump_file_index,
9754         dump_file_tbl, init_optimization_passes): Remove.
9755         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
9756         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
9757         dump_enabled_p.
9758         (finish_optimization_passes): Update finish_graph_dump_file loop.
9759         (enable_rtl_dump_file): Remove.
9760         * tree-dump.c (dump_files): Adjust and add RTL dump files.
9761         (enable_rtl_dump_file): Add here.
9762         * tree.h (enum tree_dump_index): Add RTL dump file indices.
9763         * doc/invoke.texi (Debugging options): Document new RTL debugging
9764         options.  Update.
9765
9766 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
9767
9768         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
9769         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
9770         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
9771         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
9772         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
9773         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
9774         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
9775         vec.h: Fix comment formatting.
9776
9777 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
9778
9779         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
9780         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
9781         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
9782         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
9783         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
9784         tree-ssa-loop-niter.c, tree-ssa-operands.c,
9785         tree-ssa-operands.h, tree-ssa-propagate.c,
9786         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
9787         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
9788
9789 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
9790
9791         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
9792         vectorizer is enabled.
9793
9794 2004-09-05  Andreas Jaeger  <aj@suse.de>
9795
9796         * tree-if-conv.c: Spell check comments and clean up whitespace.
9797
9798 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9799
9800         * tree-ssa-loop-ivopts.c: New file.
9801         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
9802         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
9803         target_pres_cost, target_spill_cost): Declare.
9804         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
9805         spill_cost): Renamed to ...
9806         (target_avail_regs, target_res_regs, target_small_cost,
9807         target_pres_cost, target_spill_cost): ... and exported.
9808         (init_set_costs, global_cost_for_size): Work with renamed variables.
9809         * common.opt (flag_ivopts): New flag.
9810         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
9811         REF_ORIGINAL.
9812         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
9813         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
9814         generating SSA form.
9815         (force_gimple_operand): New function.
9816         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
9817         * tree-cfg.c (stmt_bsi): New function.
9818         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
9819         PARAM_IV_MAX_CONSIDERED_USES): New.
9820         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
9821         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
9822         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
9823         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
9824         * tree-nested.c (build_addr): Export.
9825         * tree-optimize.c (init_tree_optimization_passes): Add
9826         pass_iv_optimize.
9827         * tree-pass.h (pass_iv_optimize): Declare.
9828         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
9829         IMAGPART_EXPR.
9830         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
9831         as a phi node argument.
9832         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
9833         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
9834         functions.
9835         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
9836         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
9837         pass_iv_optimize): New pass.
9838         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
9839         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
9840         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
9841         * tree.h (REF_ORIGINAL): New macro.
9842         (build_int_cst_type, unsigned_type_for, zero_p,
9843         cst_and_fits_in_hwi, build_addr): Declare.
9844         * doc/invoke.texi (-fivopts): Document.
9845         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
9846         PARAM_IV_MAX_CONSIDERED_USES): Document.
9847         * doc/passes.texi: Document induction variable optimizations pass.
9848
9849 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9850
9851         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
9852         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
9853         * c-common.c (c_common_attribute_table): Accept parameters to
9854         sentinel attribute.
9855         (check_function_sentinel, handle_sentinel_attribute): Likewise.
9856         * doc/extend.texi: Update accordingly.
9857
9858 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9859
9860         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
9861         New.
9862         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
9863         attribute.
9864         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
9865         New functions.
9866         (c_common_attribute_table): Add `sentinel' attribute.
9867         (check_function_arguments): Handle `sentinel' attribute.
9868         * doc/extend.texi: Document `sentinel' attribute.
9869
9870 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
9871
9872         * configure: Regenerated.
9873
9874 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9875
9876         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
9877
9878         * tree.c (save_expr): No longer TREE_READONLY.
9879
9880 2004-09-04  Jan Hubicka  <jh@suse.cz>
9881
9882         * passes.c (rest_of_clean_state):  Fix merge conflict made during
9883         commiting the patch.
9884
9885 2004-09-04  Jan Hubicka  <jh@suse.cz>
9886
9887         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
9888
9889 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
9890
9891         * doc/md.texi (shift patterns): New anchor.  Add reference to
9892         TARGET_SHIFT_TRUNCATION_MASK.
9893         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
9894         * target.h (shift_truncation_mask): New target hook.
9895         * targhook.h (default_shift_truncation_mask): Declare.
9896         * targhook.c (default_shift_truncation_mask): Define.
9897         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
9898         (TARGET_INITIALIZER): Include it.
9899         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
9900         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
9901         reject all out-of-range values.  Fix sign-extension code for modes
9902         whose width is smaller than HOST_BITS_PER_WIDE_INT.
9903         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
9904         (expand_superword_shift, expand_subword_shift): Likewise.
9905         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
9906         (expand_binop): Use them to implement double-word shifts.
9907         * config/arm/arm.c (arm_shift_truncation_mask): New function.
9908         (TARGET_SHIFT_TRUNCATION_MASK): Define.
9909
9910 2004-09-04  Jan Hubicka  <jh@suse.cz>
9911
9912         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
9913         (mix): New macro copied from hashtab.c
9914         (iterative_hash_hashval_t, iterative_hash_pointer,
9915         iterative_hash_host_wide_int): New functions based on hashtab.c
9916         implementation.
9917
9918 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
9919
9920         * config/mips/mips.md (mask): New mode attribute.
9921         (zero_extendsidi2): Add memory alternative.
9922         (*zero_extendsidi2_mem): Delete.
9923         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
9924         memory_operand in the TARGET_MIPS16 check.
9925         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
9926         Redefine using :GPR and :SHORT.
9927         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
9928
9929 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
9930
9931         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
9932         using rint_optab.
9933         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
9934         expand_builtin_mathfn.
9935         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
9936         btrunc?f patterns for btrunc_optab. Implement rint_optab using
9937         rint?f patterns.
9938         * optabs.c (init_optabs): Initialize rint_optab.
9939         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
9940         Add new OTI_rint.
9941         (btrunc_optab): Rename macro from trunc_optab.
9942         (rint_optab): Define corresponding macro.
9943
9944         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
9945         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
9946
9947         * config/i386/i386-protos.h (emit_i387_cw_initialization):
9948         Change prototype. Add new int parameter.
9949         * config/i386/i386.c (emit_i387_cw_initialization):
9950         Handle new rounding modes.
9951
9952         * config/i386/i386.h (enum fp_cw_mode): Delete.
9953         (MODE_NEEDED): Handle new rounding modes.
9954         (EMIT_MODE_SET): Change condition to handle new rounding modes.
9955
9956         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
9957         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
9958         represent different rounding modes of frndint insn.
9959         (type): Add frndint type.
9960         (i387, length, memory): Handle this type.
9961         (i387_cw): New attribute definition.
9962         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
9963         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
9964         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
9965         Add "i387_cw" attribute defined to "trunc".
9966         (x86_fnstcw_1): Remove comment.
9967         (*frndintxf2): Rename insn definition to frndintxf2. Move
9968         insn definition near rint?f2 expanders.
9969         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
9970         rintf and rintl built-ins as inline x87 intrinsics.
9971         (frndintxf2_floor): New pattern to implement floor rounding
9972         mode with frndint x87 instruction.
9973         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
9974         floorf and floorl built-ins as inline x87 intrinsics.
9975         (frndintxf2_ceil): New pattern to implement ceil rounding
9976         mode with frndint x87 instruction.
9977         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
9978         ceilf and ceill built-ins as inline x87 intrinsics.
9979         (frndintxf2_trunc): New pattern to implement trunc rounding
9980         mode with frndint x87 instruction.
9981         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
9982         truncf and truncl built-ins as inline x87 intrinsics.
9983         (frndintxf2_mask_pm): New pattern to implement rounding
9984         mode with exceptions with frndint x87 instruction.
9985         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
9986         implement nearbyint, nearbyintf and nearbyintl built-ins as
9987         inline x87 intrinsics.
9988
9989 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
9990
9991         * config/mips/mips.md (SHORT): New mode macro.
9992         (size): New mode attribute.
9993         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
9994         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
9995         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
9996         !ISA_HAS_SEB_SEH.
9997         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
9998         *extend[qh]isi2_hw patterns and extending them to di.
9999         (extendqihi2): Implement as define_insn_and_split that produces
10000         extendqisi2 after reload.
10001
10002 2004-09-03  Devang Patel  <dpatel@apple.com>
10003
10004         * Makefile.in (OBJS-common): Add tree-if-conv.o
10005         (tree-if-conv.o): New rule.
10006         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
10007         (get_loop_body_in_bfs_order): New.
10008         * cfgloop.h (get_loop_body_in_bfs_order): New.
10009         * tree-flow.h (enum move_pos): Move here from ..
10010         * tree-ssa-loop-im.c (enum move_pos): here.
10011         (movement_possibility): Make externally visible.
10012         * tree-optimize.c (init_tree_optimization_passes): New entry for
10013         if conversion pass.
10014         * tree-pass.h (pass_if_conversion): New.
10015         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
10016         * tree-if-conv.c: New file.
10017         * doc/passes.texi: Document tree if-conversion pass.
10018         * doc/tree-ssa.texi: Same.
10019
10020 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
10021
10022         PR target/14925:
10023         Makefile.in (LIB2ADDEHSTATIC): New.
10024         (LIB2ADDEHSHARED): New.
10025         (LIBUNWIND): New.
10026         (LIBUNWINDDEP): New.
10027         (SHLIBUNWIND_LINK): New.
10028         (SHLIBUNWIND_INSTALL): New.
10029         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
10030         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
10031         (clean): Remove libunwind*
10032         (stage1-start): Remove and copy stage1/libunwind*.
10033         (stage2-start): Remove and copy stage2/libunwind*.
10034         (stage3-start): Remove and copy stage3/libunwind*.
10035         (stage4-start): Remove and copy stage4/libunwind*.
10036         (stageprofile-start): Remove and copy stageprofile/libunwind*.
10037         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
10038
10039         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
10040         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
10041         tmake_file if --with-system-libunwind isn't used.
10042
10043         * config/ia64/t-glibc-libunwind: New file.
10044         * config/t-libunwind-elf: Likewise.
10045         * unwind-compat.c: Likewise.
10046         * unwind-compat.h: Likewise.
10047         * unwind-dw2-fde-compat.c: Likewise.
10048
10049         * config/ia64/t-glibc (LIB2ADDEH): Updated.
10050         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
10051
10052         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
10053         aliases if needed.
10054         * unwind-dw2-fde-glibc.c: Likewise.
10055         * unwind-dw2.c: Likewise.
10056
10057         * config/t-libunwind (LIB2ADDEH): Updated.
10058         (LIB2ADDEHSTATIC): New.
10059         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
10060         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
10061
10062         * configure.ac: Change --enable-libunwind-exceptions to
10063         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
10064         * configure: Regenerated.
10065         * config.in: Updated.
10066
10067         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
10068         above and mention --with-system-libunwind.
10069         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
10070         removed in gcc 3.4.3 and later.
10071
10072         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
10073         USE_LIBUNWIND_EXCEPTIONS is defined.
10074
10075         * mklibgcc.in: Support libunwind.
10076
10077 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
10078
10079         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
10080         m_NOCONA.
10081
10082 2004-09-03  Richard Henderson  <rth@redhat.com>
10083
10084         PR middle-end/9997
10085         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
10086         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
10087         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
10088         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
10089         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
10090         resize_stack_vars_conflict, add_stack_var_conflict,
10091         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
10092         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
10093         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
10094         expand_one_static_var, expand_one_hard_reg_var,
10095         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
10096         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
10097         (expand_used_vars): Rewrite.
10098         * Makefile.in (cfgexpand.o): Update dependencies.
10099
10100 2004-09-04  Jan Hubicka  <jh@suse.cz>
10101
10102         * cfg.c (free_edge): Use ggc_free.
10103         (expunge_block): Use ggc_free.
10104         * passes.c (rest_of_clean_state): Free after compilation.
10105         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
10106         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
10107
10108 2004-09-03  James E Wilson  <wilson@specifixinc.com>
10109
10110         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
10111         DECL_EXTERNAL check.
10112
10113 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10114
10115         * final.c (output_in_slot): New global variable.
10116         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
10117         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
10118         'output_in_slot' before invoking output_asm_insn.
10119         (output_asm_insn): Add a space after the tab if 'output_in_slot'
10120         is set.
10121         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
10122         final_scan_insn.
10123         (output_sibcall): Likewise.
10124
10125 2004-09-03  Jan Hubicka  <jh@suse.cz>
10126
10127         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
10128         * tree-ssanames (init_ssanames): Likewise.
10129
10130 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
10131
10132         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
10133         objc_declare_protocols, objc_start_protocol,
10134         objc_start_class_interface, objc_start_category_interface,
10135         objc_continue_interface, objc_finish_interface,
10136         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
10137         objc_start_class_implementation, objc_start_category_implementation,
10138         objc_continue_implementation, objc_finish_implementation,
10139         objc_add_method_declaration, objc_start_method_definition,
10140         objc_finish_method_definition, objc_build_keyword_decl,
10141         objc_build_method_signature, objc_build_encode_expr,
10142         objc_build_protocol_expr, objc_build_selector_expr,
10143         objc_build_message_expr, objc_build_string_object,
10144         objc_get_class_reference, objc_get_protocol_qualified_type,
10145         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
10146
10147 2004-09-03  James E Wilson  <wilson@specifixinc.com>
10148
10149         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
10150
10151         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
10152         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
10153         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
10154         (mips_recip1_<fmt>): Use frdiv1 type.
10155         (mips_recip2_<fmt>): Use frdiv2 type.
10156         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
10157         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
10158         and frsqrt1.
10159         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
10160
10161 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
10162
10163         * reload.c (find_reloads): Swap operand_loc pointers for
10164         find_dummy_reload if we have swapped two operands.
10165
10166 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
10167
10168         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
10169         to get the tablejump-insn before the jump-table label.
10170
10171 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
10172
10173         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
10174         objc_declare_protocols, objc_build_message_expr,
10175         objc_finish_message_expr, objc_build_selector_expr,
10176         objc_build_protocol_expr, objc_build_encode_expr,
10177         objc_build_string_object, objc_get_protocol_qualified_type,
10178         objc_get_class_reference, objc_get_class_ivars,
10179         objc_start_class_interface, objc_start_category_interface,
10180         objc_start_protocol, objc_continue_interface, objc_finish_interface,
10181         objc_start_class_implementation, objc_start_category_implementation,
10182         objc_continue_implementation, objc_finish_implementation,
10183         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
10184         objc_add_method_declaration, objc_start_method_definition,
10185         objc_finish_method_definition, objc_add_instance_variable,
10186         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
10187         objc_finish_try_stmt, objc_begin_catch_clause,
10188         objc_finish_catch_clause, objc_build_finally_clause,
10189         objc_build_synchronized, objc_static_init_needed_p,
10190         objc_generate_static_init_call): New prototypes.
10191
10192 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
10193
10194         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
10195         is only one reg.
10196         (ia64_function_value): Ditto.
10197
10198 2004-09-03  Jan Beulich  <jbeulich@novell.com>
10199
10200         * config.gcc: Resurrect NetWare as a target. Handle special case of
10201         Novell linker to be used (specified through --with-ld=) and threading
10202         model of either Posix (default) or NKS.
10203         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
10204         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
10205         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
10206         * config/i386/netware.c, config/i386/netware.h: New.
10207         * config/i386/nwld.c, config/i386/nwld.h: New.
10208         * config/i386/netware-crt0.c: New.
10209         * config/i386/netware-libgcc.c: New.
10210         * config/i386/netware-libgcc.def: New.
10211         * config/i386/netware-libgcc.exp: New.
10212         * config/i386/t-netware, config/i386/t-nwld: New.
10213         * gthr-nks.h: New.
10214         * doc/install.texi: Document NKS threading model.
10215
10216 2004-09-03  Jan Beulich  <jbeulich@novell.com>
10217
10218         PR c/7054
10219         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
10220         * tree.h (initial_max_fld_align): Declare
10221         * stor-layout.c (initial_max_fld_align): Define and initialize.
10222         (maximum_field_alignment): Initialize to the same value.
10223         * common.opt: Add -fpack-struct= variant of switch.
10224         * opts.c: Handle -fpack-struct= variant of switch.
10225         * c-pragma.c: Change #pragma pack() handling so that it becomes
10226         compatible to other compilers: accept individual 'push' argument,
10227         make final pop restore (command line) default, correct interaction
10228         of push/pop and sole specification of a new alignment (so that the
10229         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
10230         to #pragma pack(push, <n>).
10231         * doc/extend.texi: New node "Structure-Packing Pragmas" under
10232         "Pragmas", describing #pragma pack.
10233         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
10234         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
10235         Document new TARGET_DEFAULT_PACK_STRUCT.
10236
10237 2004-09-03  Devang Patel  <dpatel@apple.com>
10238
10239         * dwarf2out.c (gen_field_die). Equate decl number to die.
10240
10241 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
10242
10243         PR target/15832
10244         * global.c (modify_reg_pav): New function.
10245         (make_accurate_live_analysis): Call the new function.  Move pavin
10246         modification by earlyclobber set into the new function.
10247
10248 2004-09-03  Andreas Schwab  <schwab@suse.de>
10249
10250         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
10251         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
10252         extended.
10253
10254 2004-09-02  Jan Beulich  <jbeulich@novell.com>
10255
10256         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
10257         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
10258         not unwind code specific ones.
10259         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
10260         Remove unwind code specific dependencies.
10261         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
10262         Remove gbl-ctors.h.
10263         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
10264         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
10265         * tsystem.h: Declare memcpy and memset when inhibit_libc.
10266
10267 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
10268
10269         * combine.c (try_combine): Delay modifying of insns which cannot
10270         be easily undone.
10271
10272 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
10273
10274         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
10275         tree-loop-im.
10276         * gcc/tree-ssa-loop.c: Ditto
10277         * gcc/tree-ssa-loop-ivcanon.c: Ditto
10278         * gcc/doc/invoke.texi: Ditto.
10279
10280 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
10281
10282         * c-decl.c (store_parm_decls_newstyle): Make static.
10283         (store_parm_decls_from): New function.
10284         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
10285         (store_parm_decls_from): New prototype.
10286
10287 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
10288
10289         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
10290         HImode with STRICT_ALIGNMENT.
10291
10292 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
10293
10294         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
10295         (TARGET_OS_CPP_BUILTINS): Likewise.
10296         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
10297         TARGET_BPABI_CPP_BUILTINS.
10298
10299 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
10300
10301         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
10302
10303 2004-09-02  Eric Christopher  <echristo@redhat.com>
10304
10305         * builtins.c (expand_builtin_cabs): Delete.
10306         (expand_builtin): If unable to fold the values do a normal
10307         library call for builtin_cab*.
10308         (fold_builtin_cabs): Depend on optimize and optimize_size.
10309         * optabs.c (expand_cmplxdiv_straight): Delete.
10310         (expand_cmplxdiv_wide): Ditto.
10311         (expand_vector_binop): Ditto.
10312         (expand_vector_unop): Ditto.
10313         (expand_complex_abs): Delete.
10314         (expand_binop): Remove calls to above functions.
10315         Remove open coding of complex arithmetic.
10316         (expand_unop): Ditto.
10317         * optabs.h: Remove prototypes.
10318
10319 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
10320
10321         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
10322         * c-tree.h (store_parm_decls_newstyle): New prototype.
10323
10324 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
10325
10326         * config/rs6000/rs6000.c (expand_block_clear): Use vector
10327         instructions if available.
10328         (expand_block_move): Likewise.
10329
10330 2004-09-03  Jan Hubicka  <jh@suse.cz>
10331
10332         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
10333
10334 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
10335
10336         * config/arm/symbian.h (LIB_SPEC): Define to empty.
10337         * config/arm/t-symbian (SHLIB_LC): Likewise.
10338
10339 2004-09-02  Paul Brook  <paul@codesourcery.com>
10340
10341         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
10342
10343 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
10344
10345         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
10346         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
10347         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
10348         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
10349         (mips_issue_rate): Remove unreachable abort.
10350         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
10351         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
10352         (mips_block_move_straight, print_operand_address, mips_file_start)
10353         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
10354         (mips_output_conditional_branch, mips_expand_builtin_direct)
10355         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
10356         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
10357         with gcc_assert.
10358
10359 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
10360
10361         * config/mips/mips.md (*lea_high64): Change split condition to
10362         flow2_completed.  Add a peephole2 to generate a more parallel version.
10363
10364 2004-09-02  Jan Hubicka  <jh@suse.cz>
10365
10366         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
10367         GGC.
10368
10369         * ggc-page.c: include tree-flow.h.
10370         (extra_order_size_table): Add stmt_ann_d.
10371         (STAT_LABEL): Rename from ....
10372         (LABEL): ... this one.
10373         * Makefile.in (ggc-page.o): Add dependency.
10374
10375         * ggc-common.c (ggc_force_collect): New global variable.
10376         (loc_description): Add fields "freed", "collected"
10377         (ptr_hash): New static hash
10378         (ptr_hash_entry): New structure.
10379         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
10380         (ggc_record_overhead): Take ptr argument, record it
10381         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
10382         (cmp_statistics): Imrove sorting.
10383         (dump_ggc_loc_statistics): Output newly collected statistics
10384         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
10385         (ggc_free): Call ggc_free_overhead.
10386         (ggc_collect): Force collection when asked to be forced.
10387         (ggc_collect): Call ggc_prune_overhead_list.
10388         * ggc.h (ggc_force_collect): Declare
10389         (ggc_record_overhead): Update prototype.
10390         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
10391
10392 2004-09-02  James E Wilson  <wilson@specifixinc.com>
10393
10394         * common.opt (ftrapping-math): Default to on.
10395
10396 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
10397
10398         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
10399
10400 2004-09-02  Denis Chertykov  <denisc@overta.ru>
10401
10402         PR target/16884
10403         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
10404         match_scratch.
10405         (*movmemqi_insn): Likewise.
10406         (*movmemhi): Likewise.
10407         (clrmemhi): Likewise.
10408         (*clrmemqi): Likewise.
10409         (*clrmemhi): Likewise.
10410
10411 2004-09-02  Paul Brook  <paul@codesourcery.com>
10412
10413         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
10414         default_use_cxa_atexit=yes.
10415
10416 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
10417
10418         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
10419         (struct kernel_old_ucontext): Delete.
10420         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
10421         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
10422         when IN_LIGGCC2.
10423
10424 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
10425
10426         * toplev.c (process_options): Fix typo.
10427
10428 2004-09-01  Richard Henderson  <rth@redhat.com>
10429
10430         PR middle-end/17258
10431         * calls.c (initialize_argument_information): Tighten pass-through
10432         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
10433         Use build_fold_addr_expr.
10434         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
10435         that assumes ADDR_EXPR allocates stack space.
10436         * fold-const.c (build_fold_addr_expr_with_type): Look through
10437         WITH_SIZE_EXPR.
10438
10439 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
10440
10441         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
10442         * ggc.h (ggc_alloc_rtx): Delete.
10443
10444 2004-09-01  Roger Sayle  <roger@eyesopen.com>
10445
10446         * expmed.c (enum alg_code): Remove long unused enumeration values.
10447         (struct mult_cost): New structure to hold the "score" of a synthetic
10448         multiply sequence, including both a rtx_cost and a latency field.
10449         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
10450         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
10451         (struct algorithm): Change type of cost field to be mult_cost.
10452         (synth_mult): Change type of cost_limit argument to be a
10453         pointer to a mult_cost.  Update all cost comparisons to use the
10454         new mult_cost infrastructure.  For alg_add_factor and
10455         alg_sub_factor operations, latency is lower than the rtx_cost.
10456         (choose_mult_variant):  Update calls to synth_mult.  Perform
10457         cost comparisons using the new mult_cost infrastructure.
10458         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
10459         to optain the total rtx_cost of a synth_mult "algorithm".
10460
10461 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
10462
10463         * config/rs6000/power4.md: Increase store latency to 12.
10464         * config/rs6000/power5.md: Same.
10465
10466 2004-09-01  James E Wilson  <wilson@specifixinc.com>
10467
10468         PR target/14064
10469         * config/avr/avr.c (avr_unique_section): Delete prototype and
10470         definition.
10471         (TARGET_ASM_UNIQUE_SECTION): Delete.
10472
10473 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
10474
10475         * c-parse.in (primary): Call objc_build_message_expr(),
10476         objc_build_selector_expr(), objc_build_protocol_expr(),
10477         objc_build_encode_expr() and objc_build_string_object() instead of
10478         build_message_expr(), build_selector_expr(), build_protocol_expr(),
10479         build_encode_expr() and build_objc_string_object(), respectively.
10480         (component_decl_list2): Call objc_get_class_ivars() instead of
10481         get_class_ivars_from_name().
10482         (keyworddecl): Call objc_build_keyword_decl() instead of
10483         build_keyword_decl().
10484         (receiver): Call objc_get_class_reference() instead of
10485         get_class_reference().
10486         (reswords): Add blank line before @@ifobjc section, for clarity.
10487
10488 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
10489
10490         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
10491         to Altivec vetors.
10492
10493 2004-09-01  Wu Yongwei  <adah@sh163.net>
10494             Danny Smith  <dannysmith@users.sourceforge.net>
10495
10496         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
10497         not Windows 'DWORD'.
10498         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
10499         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
10500         (__gthr_win32_recursive_mutex_init_function): Add prototype for
10501         __GTHREAD_HIDE_WIN32API case..
10502         (__gthr_win32_recursive_mutex_lock): Likewise.
10503         (__gthr_win32_recursive_mutex_trylock): Likewise.
10504         (__gthr_win32_recursive_mutex_unlock): Likewise.
10505         (__gthread_recursive_mutex_init_function); Add definition for
10506         __GTHREAD_HIDE_WIN32API case.
10507         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
10508         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
10509         call to InterlockedDecrement.
10510
10511 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10512
10513         * tree-tailcall.c (find_tail_calls): Also fail is statement has
10514         volatile operands.
10515
10516         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
10517
10518         * doc/c-tree.texi: Document new operands for ARRAY_REF and
10519         COMPONENT_REF.
10520
10521 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10522
10523         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
10524         * common.opt (fspeculative-prefetching): New.
10525         * flags.h (flag_speculative_prefetching_set): Declare.
10526         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
10527         values.
10528         * opts.c (flag_sepculative_prefetching_set): New variable.
10529         (common_handle_option): Handle -fspeculative-prefetching.
10530         * passes.c (rest_of_compilation): Ditto.
10531         * profile.c (instrument_values, compute_value_histograms, branch_prob):
10532         Use vectors instead of arrays.
10533         * toplev.c (process_options): Handle -fspeculative-prefetching.
10534         * rtl-profile.c: Include ggc.h.
10535         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
10536         rtl_gen_one_value_profiler_no_edge_manipulation,
10537         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
10538         argument changed.
10539         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
10540         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
10541         argument changed.
10542         * value-prof.c: Include ggc.h.
10543         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
10544         macros.
10545         (insn_prefetch_values_to_profile, find_mem_reference_1,
10546         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
10547         speculative_prefetching_transform): New.
10548         (value_profile_transformations): Call speculative_prefetching_transform.
10549         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
10550         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
10551         tree_find_values_to_profile, find_values to profile): Use vectors
10552         instead of arrays.
10553         (free_profiled_values): Removed.
10554         * value-prof.h (struct histogram_value): Renamed to
10555         struct histogram_value_t.
10556         (histogram_value, histogram_values): New types.
10557         (find_values_to_profile): Declaration changed.
10558         (free_profiled_values): Removed.
10559         (struct profile_hooks): Type of argument of the hooks changed to
10560         histogram_value.
10561         * doc/invoke.texi (-fspeculative-prefetching): Document.
10562
10563 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10564
10565         PR rtl-optimization/16408
10566         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
10567
10568 2004-09-01  Richard Henderson  <rth@redhat.com>
10569
10570         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
10571         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
10572
10573 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
10574
10575         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
10576
10577 2004-09-01  Mike Stump  <mrs@apple.com>
10578
10579         * config/darwin.c (machopic_symbol_defined_p): In addition to
10580         being SYMBOL_REF_LOCAL_P, a symbol must also be
10581         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
10582         defined in this output file, or translation unit in the case
10583         of IMA not being used.
10584         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
10585         never need .indirect_symbol when indirecting.
10586
10587 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
10588
10589         * Makefile.in (bb-reorder.o): Add several dependencies.
10590
10591 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
10592
10593         * fold-const.c (operand_equal_p): Require equal sign also for
10594         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
10595
10596 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
10597
10598         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
10599         for use in configargs.h.  Put the cname in a separate variable.  Use
10600         that to set target_cpu_default2.
10601
10602 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
10603             Nick Clifton  <nickc@redhat.com>
10604
10605         * config/sh/sh.md ("length"): Increase branch length when
10606         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
10607         constant, 2 byte for aligning the constant.
10608
10609 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
10610
10611         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
10612         CPU.
10613         (arm7tdmi-s): New CPU name.
10614         * arm/arm.c (ARM_CORE): Update for new format.
10615         * arm/arm.h (ARM_CORE): Likewise.
10616         * arm/gentune.sh: Update for extra field.
10617         * config.gcc: Likewise.
10618         * arm/arm-tune.md: Regenerate.
10619         * doc/invoke.texi: Document the real processor names for ARM cpus.
10620
10621 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
10622
10623         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
10624         (floatdidf): New functions.
10625         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
10626         (floatdisf): New functions.
10627         * t-arm-elf: Use them.
10628
10629 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
10630
10631         * c-common.h (lookup_interface): Remove prototype.
10632         (is_class_name): Rename to objc_is_class_name.
10633         (lookup_objc_ivar): Rename to objc_lookup_ivar.
10634         (get_current_scope): Rename to objc_get_current_scope.
10635         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
10636         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
10637         (yylexname): Call objc_is_class_name() instead of is_class_name().
10638         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
10639         instead of lookup_objc_ivar().
10640         * stub-objc.c (lookup_interface): Remove stub.
10641         (is_class_name): Rename to objc_is_class_name.
10642         (lookup_objc_ivar): Rename to objc_lookup_ivar.
10643
10644 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
10645
10646         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
10647         * config/arm/lib1funcs.asm: Do not include supplemental .S files
10648         when compiling for Symbian.
10649         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
10650         (TARGET_OS_CPP_BUILTINS): Likewise.
10651         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
10652
10653 2004-08-31  Stan Shebs  <shebs@apple.com>
10654
10655         * toplev.c (process_options): Ensure debug_hooks is initialized.
10656
10657 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
10658
10659         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
10660         * target.h (cxx): Add export_class_data.
10661         * config/arm/arm.c (arm_cxx_export_class_data): New function.
10662         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
10663         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
10664
10665 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
10666
10667         * config/sh/sh.c (output_branch): Check the insn length possibly
10668         in the delayed slot.
10669
10670 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10671
10672         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
10673         blank after ')'.
10674         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
10675
10676         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
10677         (c_sizeof_of_alignof_type): Likewise.
10678         * expr.c (array_ref_element_size): Likewise.
10679         (highest_pow2_factor_for_target): Likewise.
10680         * gimplify.c (canonicalize_addr_expr): Likewise.
10681         (gimplify_compound_lval): Likewise.
10682         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
10683         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
10684         * varasm.c (assemble_variable): Likewise.
10685         (output_constant_def_contents): Alignments are unsigned.
10686
10687 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10688             Jeff Law  <law@redhat.com>
10689
10690         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
10691         gets modified.
10692
10693 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
10694
10695         * hooks.c (hook_bool_void_true): New function.
10696         * hooks.h (hook_bool_void_true): Declare.
10697         * target-def.h (TARGET_CXX): Add
10698         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
10699         * target.h (struct cxx): Add key_method_may_be_inline.
10700         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
10701         function.
10702         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
10703         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
10704         __THUMB_INTERWORK.
10705
10706 2004-08-31  Denis Chertykov  <denisc@overta.ru>
10707
10708         PR target/15417
10709         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
10710         frame pointer register only in Pmode while reload in progress.
10711
10712 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
10713
10714         PR target/15334
10715         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
10716         because it breaks the 32-bit shift patterns that rely on a match_dup.
10717
10718 2004-08-31  Matt Austern  <austern@apple.com>
10719
10720         * config/darwin.c (darwin_make_decl_one_only): Allocate section
10721         names once per compilation, instead of once per symbol.
10722
10723 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
10724
10725         * Makefile.in (build_subdir): New substitution.
10726         (fixinc.sh): Simplify heavily since fixincludes is already built.
10727         (stmp-fixinc): Depend on specs.ready.
10728         (install-mkheaders): Use new location of fixincludes.
10729         (clean): Do not descend into fixinc.
10730         (FORBUILD): Replace with ../$(build_subdir).
10731         * configure.ac (build_subdir): Substitute.
10732         (FORBUILD): Do not set.
10733         (all_outputs): Remove fixinc/Makefile.
10734         (default commands): Do not create links in fixinc.
10735         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
10736         the fixincludes configuration steps and substituting
10737         @FIXINCL@ in fixinc.in.
10738         * fixinc.in: New, from fixinc/fixincl.sh.
10739
10740         * fixinc/*: Removed.
10741
10742 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
10743
10744         * attribs.c (strip_attrs): Remove.
10745         (split_specs_attrs): Move ...
10746         * c-decl.c: ... to here.
10747         * tree.h (split_specs_attrs, strip_attrs): Remove.
10748         * c-tree.h (split_specs_attrs): Declare.
10749
10750 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
10751
10752         * read-rtl.c: Disable RTL checking.
10753         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
10754
10755 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
10756
10757         * config/mips/mips.md (fcond): New code macro and attribute.
10758         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
10759         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
10760         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
10761
10762 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
10763
10764         Revert:
10765         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
10766         PR rtl-optimization/16590
10767         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
10768
10769 2004-08-30  Andrew Pinski  <apinski@apple.com>
10770
10771         * hard-reg-set.h:
10772         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
10773         * ChangeLog: Fix previous ChangeLog entry.
10774
10775         PR rtl-opt/13987
10776         * config.host (use_long_long_for_widest_fast_int): New, default is
10777         off.
10778         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
10779         * configure.ac: If use_long_long_for_widest_fast_int, then
10780         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
10781         * configure: Regenerate.
10782         * config.in: Regenerate.
10783         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
10784         New: widest integer type supported efficiently in hardware for the
10785         host.
10786         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
10787         HOST_BITS_PER_WIDEST_FAST_INT.
10788         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
10789         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
10790         HOST_WIDEST_FAST_INT
10791         instead of HOST_WIDE_INT.
10792         (HARD_REG_SET_LONGS): Likewise.
10793         (UHOST_BITS_PER_WIDE_INT): Likewise.
10794         Change the checks for the fast cases to be based on
10795         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
10796
10797 2004-08-30  Steven Bosscher  <stevenb@suse.de>
10798
10799         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
10800         not the pointers.
10801
10802 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
10803
10804         PR 12738
10805         PR 17205
10806         Radar 3460526
10807         Radar 3775729
10808         * c-decl.c (grokdeclarator): Produce error for 'static' on local
10809         function declaration.
10810
10811 2004-08-30  Richard Henderson  <rth@redhat.com>
10812
10813         * expr.c (array_ref_element_size): Force aligned_size back to
10814         sizetype.
10815         (component_ref_field_offset): Similarly for aligned_offset.
10816         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
10817         low-bound, element-size, field-offset fields rather than
10818         computed values.
10819
10820 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
10821
10822         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
10823         redundant code.
10824
10825 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
10826
10827         * c-tree.h (struct language_function): Add arg_info element.
10828         * c-decl.c (current_function_arg_info): New.
10829         (grokdeclarator, store_parm_decls): Use it instead of
10830         DECL_ARGUMENTS.
10831         (c_push_function_context, c_pop_function_context): Save and
10832         restore it.
10833
10834 2004-08-30  Richard Henderson  <rth@redhat.com>
10835
10836         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
10837         COMPONENT_REF to pointer arithmetic.
10838         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
10839         constant "c" as a valid constant initializer.  Allow narrowing of
10840         differences against the same base object, for any base object.
10841
10842 2004-08-30  Richard Henderson  <rth@redhat.com>
10843
10844         * expr.c (expand_expr_addr_expr): New.
10845         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
10846
10847 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
10848
10849         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
10850         (mips_fp_condition): New enum.
10851         (mips_fp_conditions): New array.
10852         (print_fcc_operand): Delete.
10853         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
10854         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
10855         (builtin_description): Add "cond" field.
10856         (DIRECT_BUILTIN): Initialize it.
10857         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
10858         into INSN and CODE.  Initialize the "cond" field.
10859         (CMP_BUILTINS): Update accordingly.
10860         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
10861         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
10862         mips_fp_condition as argument.  Make it the final operand of the
10863         comparison instruction.
10864         (mips_expand_builtin): Update accordingly.
10865         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
10866         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
10867         the gaps.
10868         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
10869         Don't use the 'Q' operand prefix; just print the operand normally.
10870         (mips_cabs_*, mips_c_*): Delete, replacing with...
10871         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
10872         patterns.  Split the 4s versions into 2 ps patterns after reload.
10873
10874 2004-08-30  Richard Henderson  <rth@redhat.com>
10875
10876         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
10877         assuming an ADDR_EXPR is non-null.
10878
10879 2004-08-30  Jason Merrill  <jason@redhat.com>
10880
10881         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
10882
10883 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
10884
10885         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
10886         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
10887         gcc_assert and gcc_unreachable instead of abort.
10888         * alloc-pool.c (abort, fancy_abort): Remove.
10889         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
10890         gcc_assert or gcc_unreachable.
10891         * attribs.c (init_attributes, decl_attributes): Likewise.
10892         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
10893         mark_bb_for_unlikely_executed_section,
10894         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
10895         fix_crossing_unconditional_branches):  Likewise.
10896         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
10897         bitmap_operation):  Likewise.
10898         * bt-load.c (insn_sets_btr_p, augment_live_range,
10899         move_btr_def):  Likewise.
10900         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
10901         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
10902         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
10903         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
10904         expand_builtin_memcmp, expand_builtin_args_info,
10905         std_gimplify_va_arg_expr, expand_builtin_unop,
10906         expand_builtin_fputs, expand_builtin_profile_func,
10907         expand_builtin_fork_or_exec, fold_builtin_bitop,
10908         fold_builtin_classify, fold_builtin_fputs): Likewise.
10909
10910 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
10911
10912         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
10913         * gcov.c (abort): Remove undef.
10914
10915         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
10916         (struct tree_binfo): Remove primary field.
10917
10918 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
10919
10920         * fixinc/Makefile.in (machname.h): Remove.
10921         (fixincl.x): Do not pass $@ to genfixes.
10922         * fixinc/genfixes: Remove code to produce machname.h.
10923         * fixinc/fixincl.sh: Move it here instead.
10924         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
10925         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
10926         return a bool indicating whether pz_mn_name_pat is NULL.
10927         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
10928         Declare extern C variables for the ENV_TABLE.
10929         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
10930         instead use the result of mn_get_regexps.
10931         * fixinc/fixtests.c: Likewise.
10932
10933 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
10934
10935         * configure.ac: Do not run fixincludes after stage1 during
10936         toplevel bootstrap.
10937         * configure: Regenerate.
10938
10939 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
10940
10941         * sched-deps.c (get_condition): Partially revert previous, by never
10942         trying to extract the condition from a condjump.
10943
10944 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
10945
10946         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
10947         (handle_visibility_attribute, c_determine_visibility): Likewise.
10948         * c-common.h (my_friendly_assert): Remove.
10949
10950 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
10951
10952         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
10953         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
10954         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
10955         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
10956         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
10957
10958 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
10959
10960         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
10961         in COMPONENT_REF nodes.
10962
10963 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10964
10965         PR c++/15378
10966         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
10967         global_dc->warning_as_error_requested.
10968         * diagnostic.c (diagnostic_initialize): Tidy.
10969         * diagnostic.h (diagnostic_context::x_data): Remove
10970         (diagnostic_context::issue_warnings_are_errors_message): Rename
10971         from warnings_are_errors_message.
10972         (diagnostic_context::warning_as_error_requested): New.
10973
10974 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
10975
10976         * sched-deps.c (get_condition): Fix breakage in previous patch.
10977
10978 2004-08-30  Paul Brook  <paul@codesourcery.com>
10979
10980         * doc/install.texi: Fix broken mpfr link.
10981
10982 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
10983
10984         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
10985         other FreeBSD platforms.
10986
10987 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
10988
10989         * arm.h (REVERSE_CONDITION): Define.
10990         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
10991
10992 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
10993
10994         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
10995         just the codes, call reversed_comparison_code ().
10996         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
10997         (not_reg_cond): Use reversed_comparison_code.
10998         (and_reg_cond): Likewise.
10999         * ifcvt.c (cond_exec_process_if_block): Likewise.
11000         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
11001
11002 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
11003
11004         * sched-deps.c (get_condition): Rewrite using jump support functions.
11005         Use reversed_comparison_code.
11006         (conditions_mutex_p): Use reversed_comparison_code.
11007
11008 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11009
11010         * config/mips/mips.c (override_options): Disable hot/cold partitioning
11011         for MIPS16.
11012
11013 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11014
11015         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
11016         (mips_function_type): Move to mips.c.
11017         * config/mips/mips.c (mips_builtin_type): New enum.
11018         (builtin_description): Replace code and ftype with builtin_type
11019         and function_type.
11020         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
11021         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
11022         (CODE_FOR_mips_abs_ps): Define.
11023         (mips_bdesc): Use new macros.
11024         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
11025         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
11026         (mips_expand_builtin_direct): New function.
11027         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
11028         builtin.  Replace boolean parameter with builtin_type.
11029         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
11030         (mips_expand_4s_compare_builtin): Delete, replacing with...
11031         (mips_expand_builtin_compare): ...this new function.
11032
11033 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
11034
11035         PR rtl-optimization/16590
11036         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
11037
11038 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
11039
11040         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
11041         * tree-ssa-propagate.c: Fix documentation.
11042
11043 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11044
11045         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
11046         (mov[sd]fcc): Likewise.
11047
11048 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11049
11050         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
11051
11052 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11053
11054         * config/mips/mips.md (divide_condition): New mode attribute.
11055         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
11056         (sqrt[sd]f3): Redefine using SCALARF.
11057         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
11058         patterns.
11059
11060 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11061
11062         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
11063         (loadx, storex, fmt, UNITMODE): New mode attributes.
11064         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
11065         (mul[sd]f3): Redefine using :SCALARF.
11066         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
11067         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
11068         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
11069         Check TARGET_FUSED_MADD for V2SF too.
11070         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
11071         were already named.
11072         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
11073         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
11074
11075 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11076
11077         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
11078         V2SF_type_node if it will be needed.
11079
11080 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11081
11082         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
11083         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
11084         (mips_prepare_builtin_target): New function.
11085         (mips_expand_builtin): Use them.  Update calls to subroutines.
11086         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
11087         cmp_choice with a boolean argument to select between movt and movf.
11088         Take the comparison's icode as an argument, not the function's fcode.
11089         (mips_expand_compare_builtin): New function.  Rename existing function
11090         to mips_expand_scalar_compare_builtin.
11091         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
11092         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
11093         comparison's icode as an argument, not the builtin's fcode.
11094
11095 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11096
11097         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
11098         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
11099         registers are false and -1 if all registers are true.
11100         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
11101         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
11102         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
11103         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
11104         (bc1any2t, bc1any2f): Likewise CCV2.
11105         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
11106
11107 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
11108
11109         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
11110         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
11111         UNSPEC rather than an IF_THEN_ELSE.
11112         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
11113         mips_cond_move_tf_ps by name.
11114
11115 2004-08-29  Chao-ying Fu  <fu@mips.com>
11116             James E Wilson  <wilson@specifixinc.com>
11117
11118         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
11119         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
11120         * config/mips/mips-ps-3d.md: New file.
11121         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
11122         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
11123         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
11124         (mips_output_move): Emit "mov.ps" for V2SFmode.
11125         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
11126         MODE_VECTOR_FLOAT.
11127         (override_options): Check if TARGET_MIPS3D and there was an explicit
11128         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
11129         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
11130         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
11131         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
11132         and allow CCV2 and CCV4 to occupy two and four CC registers.
11133         (print_fcc_operand): New function.
11134         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
11135         %Z to call print_fcc_operand.
11136         (mips_function_value): Handle MODE_VECTOR_FLOAT.
11137         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
11138         (mips_vector_mode_supported_p): New function.
11139         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
11140         (builtin_description): New struct.
11141         (mips_bdesc): New array of struct builtin_description.
11142         (mips_expand_builtin, mips_init_builtins,
11143         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
11144         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
11145         functions.
11146         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
11147         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
11148         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
11149         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
11150         "-mips3d", and "-mno-mips3d".
11151         (ASM_SPEC): Map -mips3d to -mips3d in gas.
11152         (EXTRA_CONSTRAINT_Y): New macro.
11153         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
11154         multi-letter constraint 'Y'.
11155         (CONSTRAINT_LEN): New macro.
11156         (enum mips_builtins): New for MIPS builtin functions.
11157         (enum mips_function_type): New for the types of MIPS builtin functions.
11158         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
11159         * config/mips/mips.md: New constants for paired single and MIPS-3D
11160         instructions.  Include the new mips-ps-3d.md file.
11161         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
11162         movv2sf_hardfloat_64bit): New named patterns.
11163         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
11164         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
11165         sdxc1_v2sf_di): New unnamed patterns.
11166         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
11167         const_vector support.
11168         (const_0_or_1_operand): New predicate.
11169         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
11170
11171 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
11172
11173         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
11174         (tree-ssa-propagate.o): New rule.
11175         (GTFILES): Add tree-ssa-propagate.c.
11176         * tree-flow.h (struct stmt_ann_d): Remove field
11177         in_ccp_worklist.
11178         * tree-ssa-propagate.c: New file.
11179         * tree-ssa-propagate.h: New file.
11180         * tree-ssa-ccp.c: Re-write to use the routines from
11181         tree-ssa-propagate.c.
11182
11183 2004-08-28  Andrew Pinski  <apinski@apple.com>
11184
11185         * tree-ssa-loop.c: Remove extra include of basic-block.h.
11186
11187 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
11188
11189         * c-common.h: Update comments about ObjC/ObjC++ entry points.
11190         (objc_is_reserved_word): New prototype.
11191         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
11192         separate section; these are call-backs.
11193         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
11194         ObjC/ObjC++ "@" keywords.
11195         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
11196         prototypes; they already live in c-common.h.
11197         * stub-objc.c: Update copyright notice.
11198         (objc_is_reserved_word): New stub.
11199
11200 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
11201
11202         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
11203         even when not checking.
11204
11205 2004-08-27  Jason Merrill  <jason@redhat.com>
11206
11207         PR c++/13684
11208         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
11209         (gimple_push_cleanup): Add eh_only parm.
11210         (gimplify_target_expr): Pass it.
11211         * c.opt (-fno-threadsafe-statics): New option.
11212         * c-opts.c (c_common_handle_option): Handle it.
11213         * c-common.h (flag_threadsafe_statics): Declare it.
11214         * c-common.c (flag_threadsafe_statics): Record it.
11215         * doc/invoke.texi: Document it.
11216         * tsystem.h (_GNU_SOURCE): Define.
11217         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
11218         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
11219         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
11220         (__gthread_recursive_mutex_init_function): New fn.
11221         (__gthread_recursive_mutex_lock): New fn.
11222         (__gthread_recursive_mutex_trylock): New fn.
11223         (__gthread_recursive_mutex_unlock): New fn.
11224         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
11225         * gthr-win32.h, gthr-vxworks.h: Likewise.
11226         * gthr.h: Document.
11227
11228 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
11229
11230         * config/rs6000/rs6000.c (rs6000_override_options): Increase
11231         maximum skip to 15.  Set function alignment, jump alignment, and
11232         loop alignment to 16 for processors that form dispatch groups.
11233         (rs6000_rtx_costs): outer_code is used.
11234
11235 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
11236
11237         * stor-layout.c (sizetype_set): Remove.
11238         (set_sizetype): Don't test or set it.
11239
11240         * tree.h (size_int_type): Remove.
11241         * fold-const.c: Do not #include gt-fold-const.h.
11242         (size_htab_hash, size_htab_eq): Remove.
11243         (size_int_kind): Use build_int_cst.
11244         (new_const, size_htab): Remove.
11245         (size_int_type): Remove.
11246         (round_up): Use build_int_cst.
11247         (round_down): Likewise. Remove spurious constant build.
11248
11249 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
11250
11251         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
11252         Add is_release variable, use it for --enable-werror and
11253         --enable-checking defaults.
11254         * system.h (gcc_assert, gcc_unreachable): New.
11255         * doc/install.texi (--enable-checking): Update.
11256         * configure, config.in: Rebuilt.
11257
11258 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
11259
11260         * rtl.h (read_rtx): Change prototype.
11261         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
11262         line number.  Return true on success.
11263         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
11264         callers accordingly.
11265
11266 2004-08-26  Richard Henderson  <rth@redhat.com>
11267
11268         * c-typeck.c (build_offsetof): Remove.
11269         * c-tree.h (build_offsetof): Remove.
11270         * c-common.c (fold_offsetof_1, fold_offsetof): New.
11271         * c-common.h (fold_offsetof): Declare.
11272         * c-parse.in (offsetof_base): New.
11273         (offsetof_member_designator): Use it.  Build references, not just
11274         a tree list.
11275         (primary): Use fold_offsetof, not build_offsetof.
11276
11277 2004-08-26  Richard Henderson  <rth@redhat.com>
11278
11279         * tree.c (staticp): Return the static object.
11280         * tree.h (staticp): Update decl.
11281         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
11282         * langhooks.c (lhd_staticp): Return NULL_TREE.
11283         * langhooks-def.h (lhd_staticp): Update decl.
11284         * c-common.c (c_staticp): Return the static object.
11285         * c-common.h (c_staticp): Update decl.
11286
11287 2004-08-26  Richard Henderson  <rth@redhat.com>
11288
11289         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
11290         modes.
11291
11292 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
11293
11294         PR c/13801
11295         * c-decl.c (struct c_binding): Add type and inner_comp fields.
11296         (bind): Set type and inner_comp fields.
11297         (pop_scope): Restore type of decl to the correct type from an
11298         outer scope.  Give error when popping file scope for incomplete
11299         arrays completed incompatibly with default initialization in an
11300         inner scope.
11301         (diagnose_mismatched_decls): Handle externs with initializers at
11302         block scope.
11303         (pushdecl): Set type of external declaration at block scope based
11304         only on the visible declarations.  Save type when changing the
11305         type of a declaration.  Merge an external declaration at block
11306         scope with a visible static declaration at file scope.
11307         (implicitly_declare): Give recycled old declaration the new type
11308         except for incompatible declarations of built-in functions, saving
11309         the old type.
11310
11311 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
11312
11313         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
11314
11315 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
11316
11317         * tree-alias-common.c (gate_pta): New function.
11318         (pass_build_pta): Use it.
11319         (pass_del_pta): Use it.
11320         (delete_alias_vars): Don't check flag_tree_points_to.
11321
11322 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
11323
11324         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
11325         TFmode as additional register mode cloberred by call.
11326
11327 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
11328
11329         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
11330         parallel pattern for library call returning DImode in
11331         mixed mode.
11332
11333 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
11334
11335         * config/rs6000/rs6000.c (function_arg): Generate parallel
11336         pattern for more split args.
11337
11338 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
11339
11340         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
11341         either gen_movdi_di_update or gen_movdi_si_update depending on
11342         target mode.
11343         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
11344         to generate two versions.
11345
11346 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
11347
11348         * Makefile.in (lambda-code.o): New.
11349         (lambda-trans.o): Ditto.
11350         (TREE_DATA_REF_H): Ditto.
11351         (LAMBDA_H): Ditto.
11352         (lambda-mat.o): Use LAMBDA_H.
11353         (tree-data-ref.o): Ditto.
11354         * lambda-code.c: New file.  Lambda code generation algorithm.
11355         * lambda-trans.c: Ditto. Lambda transformation matrix support.
11356         * lambda.h: Add lambda loop structures.
11357         Add lambda loopnest structures.
11358         Add lambda body vector structure.
11359         Add lambda linear expression structures.
11360         Add prototypes for functions in new files.
11361         * lambda-mat.c: Include tree.h
11362
11363 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
11364             Sebastian Pop  <pop@cri.ensmp.fr>
11365
11366         * tree-data-ref.h: Include lambda.h
11367         (free_dependence_relation): Declared here.
11368         (free_dependence_relations): Ditto.
11369         (free_data_refs): Ditto.
11370         * tree-data-ref.c (free_dependence_relation): New function.
11371         (free_dependence_relations): Ditto.
11372         (free_data_refs): Ditot.
11373         (analyze_all_data_dependences): Free datarefs and dependence_relations.
11374         (build_classic_dist_vector): Store in the dependence_relations the
11375         information. Each arc in the dependence_relations graph is labelled
11376         with the distance and direction vectors.
11377         (build_classic_dir_vector): Ditto.
11378         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
11379         Now computes again the whole dependence graph including read-read
11380         relations.
11381         (compute_data_dependences_for_loop): Now dependence_relations contains
11382         all the data, and thus it doesn't need to initialize the classic_dir
11383         and classic_dist vectors.
11384         (analyze_all_data_dependences): Adjusted for using the new interface of
11385         compute_data_dependences_for_loop.  Remove the statistics dump.
11386
11387 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
11388
11389         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
11390         (xtensa_expand_block_move): Update comment.
11391         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
11392
11393 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
11394
11395         PR target/13506
11396         * toplev.c (crash_signal): If we crashed while emitting
11397         a user asm, then die more gracefully.
11398
11399 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11400
11401         PR target/17119.
11402         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
11403         checking for a valid constant, regardless of sign.
11404
11405 2004-08-25  Richard Henderson  <rth@redhat.com>
11406
11407         PR target/16974
11408         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
11409         if the constant satisfies add_operand.
11410
11411 2004-08-25  Richard Henderson  <rth@redhat.com>
11412
11413         PR debug/10695
11414         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
11415         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
11416         unwind info for >16-bit frames.
11417
11418 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
11419
11420         PR target/17171
11421         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
11422
11423 2004-08-25  Richard Henderson  <rth@redhat.com>
11424
11425         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
11426         (TARGET_CANNOT_FORCE_CONST_MEM): New.
11427
11428 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
11429
11430         * doc/tree-ssa.texi: Document new operand iterator.
11431
11432 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
11433
11434         PR target/16480
11435         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
11436         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
11437         as PLUS base regs.
11438
11439 2005-08-28  Paul Brook  <paul@codesourcery.com>
11440
11441         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
11442         -mfpu=vfp -march=armv5t
11443         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
11444
11445 2004-08-25  Richard Henderson  <rth@redhat.com>
11446
11447         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
11448         * target.h (struct gcc_target): Add scalar_mode_supported_p.
11449         * targhooks.c (default_scalar_mode_supported_p): New.
11450         * targhooks.h (default_scalar_mode_supported_p): Declare.
11451         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
11452
11453         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
11454         before attempting to create types.  Tidy.
11455         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
11456
11457         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
11458         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
11459
11460 2004-08-25  Richard Henderson  <rth@redhat.com>
11461
11462         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
11463         set REAL_MODE_FORMAT for TFmode.
11464
11465 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
11466
11467         * c-decl.c (grokparm): New function.
11468         * c-tree.h (grokparm): New prototype.
11469
11470 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
11471
11472         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
11473         iterator controlling structure.
11474         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
11475         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
11476         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
11477         iterator flags.
11478         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
11479         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
11480         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
11481         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
11482         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
11483         Empty operand pointers.
11484         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
11485         (op_iter_next_use): New.  Return next use_operand_p.
11486         (op_iter_next_def): New.  Return next def_operand_p.
11487         (op_iter_next_tree): New.  Return next operands as a tree.
11488         (op_iter_init): New.  Initialize an iterator structure.
11489         (op_iter_init_use): New.  Initialize structure and get the first use.
11490         (op_iter_init_def): New.  Initialize structure and get the first def.
11491         (op_iter_init_tree): New.  Initialize structure and get the first tree.
11492         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
11493         (op_iter_init_maydef): New.  Initialize structure and get the first
11494         V_MAY_DEF operands.
11495         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
11496         * tree-dfa.c (compute_immediate_uses_for_stmt,
11497         redirect_immediate_uses): Use new operand iterator.
11498         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
11499         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
11500         operands instead of using *_disappeared_p routines.
11501         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
11502         ssa_rewrite_stmt): Use new operand iterator.
11503         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
11504         rewrite_trees): Use new operand iterator.
11505         * tree-pretty-print.c (dump_vops): Use new operand iterator.
11506         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
11507         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
11508         dump_points_to_info): Use new operand iterator.
11509         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
11510         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
11511         operand iterator.
11512         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
11513         propagate_necessity): Use new operand iterator.
11514         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
11515         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
11516         a parameter instead of a stmt_ann_t.
11517         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
11518         build_tree_conflict_graph): Use new operand iterator.
11519         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
11520         rewrite_mem_refs): Use new operand iterator.
11521         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
11522         check_loop_closed_ssa_use): Use new operand iterator.
11523         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
11524         * tree-ssanames.c (release_defs): Use new operand iterator.
11525         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
11526
11527 2004-08-25  Adam Nemet  <anemet@lnxw.com>
11528
11529         * tlink.c (initial_cwd): New variable.
11530         (tlink_init): Initialize it.
11531         (recompile_files): Use tlink_execute() instead of system().  Don't
11532         duplicate verbose output of collect_execute.  Restore initial_cwd.
11533         Update comment before the function.
11534
11535 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
11536
11537         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
11538         accept) a cast from one Objective-C pointer type to another.
11539
11540 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
11541
11542         * doc/install.texi: Document that libstdc++-v3 requires
11543         now automake 1.9.1.
11544
11545 2004-08-25  Caroline Tice  <ctice@apple.com>
11546
11547         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
11548         to comments at start of function.
11549         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
11550         comment.
11551         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
11552         merge_blocks_move_predecessor_nojumps,
11553         merge_blocks_move_successor_nojumps, merge_blocks_move,
11554         try_crossjump_to_edge, try_crossjump_bb): Likewise.
11555         * cfglayout.c (fixup_reorder_chain): Likewise.
11556         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
11557         cfg_layout_can_merge_blocks_p):  Likewise.
11558         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
11559         * passes.c (rest_of_compilation): Update comments for calling
11560         optimization that partitions hot/cold basic blocks.
11561         * doc/invoke.texi:  Update documentation of
11562         freorder-blocks-and-partition flag.
11563
11564 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
11565
11566         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
11567         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
11568
11569 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
11570
11571         * config/mips/mips.md (any_shift): New code macro.
11572         (optab, insn): New code attributes.
11573         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
11574         Use the standard rather than internal patterns for the MIPS16
11575         double-shift optimization.
11576         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
11577         Redefine using :GPR and any_shift.
11578         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
11579         to cover all three shifts.
11580         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
11581         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
11582         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
11583
11584 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
11585
11586         * gimplify.c (lookup_tmp_var): Separate temporaries when not
11587         optimizing.
11588
11589 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11590
11591         PR libstdc++/17005 (fix for HP-UX 11.11)
11592         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
11593         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
11594         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
11595         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
11596         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
11597         (LINK_SPEC): Handle march=1.0 option.
11598         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
11599         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
11600         (SUBTARGET_OPTIONS): New define.
11601         (LINK_SPEC): Handle march=1.0 option.
11602         (STARTFILE_SPEC): New define.
11603         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
11604         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
11605         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
11606         (SUBTARGET_OPTIONS): New define.
11607         (LINK_SPEC): Handle march=1.0 option.
11608         (STARTFILE_SPEC): New define.
11609         * config/pa/pa.c (override_options): Add code to process -munix= option.
11610         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
11611         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
11612         defines.
11613         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
11614         (SUBTARGET_OPTIONS): Provide default define.
11615         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
11616         STANDARD_STARTFILE_PREFIX_2): New defines.
11617         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
11618         (ENDFILE_SPEC): Use %O.
11619         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
11620         Mention issue caused by changing namespace and runtime to UNIX 95/98.
11621         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
11622         Document -munix=std option.
11623
11624 2004-08-25  Steven Bosscher  <stevenb@suse.de>
11625
11626         * cse.c (cse_around_loop, cse_check_loop_start,
11627         cse_set_around_loop): Remove.
11628         (cse_basic_block): Remove the around_loop argument.
11629         (cse_end_of_basic_block): Remove the after_loop argument.
11630         (cse_main): Likewise.
11631         * rtl.h (cse_main): Update prototype.
11632         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
11633         rest_of_handle_gcse): Update cse_main calls.
11634
11635 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
11636
11637         * tree.h  (build_int_cst): New, sign extended constant.
11638         (build_int_cstu): New, zero extended constant.
11639         (build_int_cst_wide): Renamed from build_int_cst.
11640         * tree.c (build_int_cst, build_int_cstu): New.
11641         (build_int_cst_wide): Renamed from build_int_cst.
11642         (make_vector_type, build_common_tree_nodes,
11643         build_common_tree_nodes_2): Adjust build_int_cst calls.
11644         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
11645         expand_builtin_strpbrk, expand_builtin_fputs,
11646         build_string_literal, expand_builtin_printf,
11647         expand_builtin_sprintf, fold_builtin_classify_type,
11648         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
11649         fold_builtin_toascii, fold_builtin_isdigit,
11650         simplify_builtin_strstr, simplify_builtin_strpbrk,
11651         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
11652         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
11653         DEF_ATTR_INT): Likewise.
11654         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
11655         Likewise.
11656         * c-lex.c (interpret_integer, lex_charconst): Likewise.
11657         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
11658         * c-pretty-print.c (pp_c_integer_constant): Likewise.
11659         * c-typeck.c (really_start_incremental_init, push_init_level,
11660         set_nonincremental_init_from_string): Likewise.
11661         * calls.c (load_register_parameters): Likewise.
11662         convert.c (convert_to_pointer): Likewise.
11663         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
11664         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
11665         build_gcov_info): Likewise.
11666         * except.c (init_eh, assign_filter_values): Likewise.
11667         * expmed.c (store_fixed_bit_field, extract_bit_field,
11668         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
11669         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
11670         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
11671         * expr.c (convert_move, emit_group_load, emit_group_store,
11672         expand_assignment, store_constructor, store_field,
11673         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
11674         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
11675         invert_truthvalue, optimize_bit_field_compare,
11676         decode_field_reference, all_ones_mask_p, constant_boolean_node,
11677         fold_div_compare, fold, fold_read_from_constant_string,
11678         fold_negate_const, fold_abs_const, fold_not_const, round_up,
11679         round_down): Likewise.
11680         * function.c (assign_parm_setup_block): Likewise.
11681         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
11682         Likewise.
11683         * stor-layout.c (layout_type, initialize_sizetypes,
11684         set_min_and_max_values_for_integral_type): Likewise.
11685         * tree-chrec.c (chrec_fold_multiply_poly_poly,
11686         reset_evolution_in_loop): Likewise.
11687         * tree-chrec.h (build_polynomial_chrec): Likewise.
11688         * tree-complex.c (build_replicated_const): Likewise.
11689         * tree-eh.c (honor_protect_cleanup_actions,
11690         lower_try_finally_onedest, lower_try_finally_copy,
11691         lower_try_finally_switch): Likewise.
11692         * tree-mudflap.c (mf_build_string, mx_register_decls,
11693         mudflap_register_call, mudflap_enqueue_constant): Likewise.
11694         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
11695         * tree-pretty-print.c (dump_generic_node): Likewise.
11696         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
11697         Likewise.
11698         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
11699         * tree-ssa-loop-niter.c (number_of_iterations_cond,
11700         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
11701         Likewise.
11702         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
11703         canonicalize_loop_induction_variables): Likewise.
11704         * tree-vectorizer.c (vect_create_index_for_array_ref,
11705         vect_transform_loop_bound, vect_compute_data_ref_alignment):
11706         Likewise.
11707
11708         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
11709         alpha_gimplify_va_arg_1): Likewise.
11710         * config/arm/arm.c (arm_get_cookie_size): Likewise.
11711         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11712         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
11713         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
11714         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
11715         mips_gimplify_va_arg_expr): Likewise.
11716         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11717         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
11718         add_compiler_branch_island): Likewise.
11719         * config/s390/s390.c (s390_va_start): Likewise.
11720         * config/sh/sh.c (sh_va_start): Likewise.
11721         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
11722         Likewise.
11723         * config/xtensa/xtensa.c (xtensa_va_start,
11724         xtensa_gimplify_va_arg_expr): Likewise.
11725
11726         * objc/objc-act.c (build_objc_string_object,
11727         build_objc_symtab_template, init_def_list, init_objc_symtab,
11728         init_module_descriptor, generate_static_references,
11729         build_selector_translation_table, get_proto_encoding,
11730         build_typed_selector_reference, build_selector_reference,
11731         build_next_objc_exception_stuff,
11732         build_method_prototype_list_template, generate_descriptor_table,
11733         generate_protocols, build_protocol_initializer,
11734         build_ivar_list_template, build_method_list_template,
11735         build_ivar_list_initializer, generate_ivars_list,
11736         generate_dispatch_table, generate_protocol_list,
11737         build_category_initializer, build_shared_structure_initializer,
11738         generate_shared_structures, handle_impent,
11739         generate_objc_image_info): Likewise.
11740
11741 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
11742
11743         * cfglayout.c (duplicate_insn_chain): Remove references to
11744         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
11745         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
11746         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
11747         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
11748         and NOTE_INSN_LOOP_CONT.
11749         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
11750         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
11751         and NOTE_INSN_LOOP_CONT.
11752         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
11753         check_dbra_loop, loop_dump_aux): Remove references to removed notes
11754         and fields.
11755         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
11756         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
11757         references to removed notes and fields.
11758         (subtract_reg_term, ujump_to_loop_cont): Remove.
11759
11760 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
11761
11762         * doc/install.texi: Document that libcpp does not require
11763         Automake any longer.  Document that Automake 1.9.1 should
11764         work everywhere.
11765
11766 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
11767
11768         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
11769         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
11770         DWARF_DEBUGGING_INFO from choice-of-definition chain;
11771         restructure using C89 features (#elif, #error).
11772         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
11773         * config/sh/sh.h: Remove references to DWARF_DEBUG.
11774         * doc/invoke.texi: Remove references to DWARF version 1;
11775         clarify why -gdwarf-2<n> doesn't work.
11776
11777 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
11778
11779         * basic-block.h (BB_SET_PARTITION): Clear old value first.
11780         * cfg.c (clear_bb_flags): Don't clear partition setting.
11781         * ifcvt.c (find_if_case_1): Remove ??? comment.
11782
11783 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
11784
11785         PR target/17052
11786         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
11787         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
11788         current_function_stdarg in place of sysv_varargs_p.
11789         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
11790         sysv_varargs_p.
11791
11792 2004-08-24  Richard Henderson  <rth@redhat.com>
11793
11794         PR target/16298
11795         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
11796         random codes within CONST.
11797
11798 2004-08-24  James E Wilson  <wilson@specifixinc.com>
11799
11800         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
11801         -freorder-blocks-and-partition.
11802
11803 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11804
11805         PR middle-end/17044
11806         * tree-ssa-threadupdate.c (redirection_data): Make static.
11807         (thread_block): Use ggc_alloc_cleared to allocate struct
11808         redirection_data.  Don't free elements in redirection_data.
11809
11810 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11811
11812         * config/mips/predicates.md (small_data_pattern): Match prefetches.
11813
11814 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11815
11816         PR tree-optimization/17016
11817         * tree-ssa-loop-niter.c (number_of_iterations_cond,
11818         number_of_iterations_exit): Use POINTER_TYPE_P instead
11819         of testing for POINTER_TYPE.
11820
11821 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11822
11823         * tree-ssa-loop-ivcanon.c: New file.
11824         * tree-ssa-loop-manip.c (create_iv): New function.
11825         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
11826         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
11827         * cfgloop.c (mark_single_exit_loops): New function.
11828         (verify_loop_structure): Verify single-exit loops.
11829         * cfgloop.h (struct loop): Add single_exit field.
11830         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
11831         (mark_single_exit_loops): Declare.
11832         (tree_num_loop_insns): Declare.
11833         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
11834         (duplicate_loop_to_header_edge): Use it.
11835         * common.opt (fivcanon): New flag.
11836         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
11837         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
11838         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
11839         (bsi_insert_on_edge_immediate): New function.
11840         * tree-flow.h (bsi_insert_on_edge_immediate,
11841         canonicalize_induction_variables, tree_unroll_loops_completely,
11842         create_iv): Declare.
11843         * tree-optimize.c (init_tree_optimization_passes): Add
11844         pass_iv_canon and pass_complete_unroll.
11845         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
11846         * tree-scalar-evolution.c (get_loop_exit_condition,
11847         get_exit_conditions_rec, number_of_iterations_in_loop,
11848         scev_initialize): Use single_exit information.
11849         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
11850         missing assumptions.
11851         (loop_niter_by_eval):  Return number of iterations as unsigned
11852         int.
11853         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
11854         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
11855         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
11856         New passes.
11857         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
11858         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
11859         the defining statement is ready.
11860         * tree-vectorizer.c (vect_create_iv_simple): Removed.
11861         (vect_create_index_for_array_ref, vect_transform_loop_bound):
11862         Use create_iv.
11863         (vect_transform_loop_bound): Use single_exit information.
11864         (vect_analyze_loop_form): Cleanup bogus tests.
11865         (vectorize_loops): Do not call flow_loop_scan.
11866         * tree.h (may_negate_without_overflow_p): Declare.
11867         * fold-const.c (may_negate_without_overflow_p): Split out from ...
11868         (negate_expr_p): ... this function.
11869         (tree_expr_nonzero_p): Handle overflowed constants correctly.
11870         * doc/invoke.texi (-fivcanon): Document.
11871         * doc/passes.texi: Document canonical induction variable creation.
11872
11873 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11874
11875         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
11876         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
11877         using the mode of the operand to decide between them.
11878         * config/mips/mips.md (MOVECC): New mode macro.
11879         (ccreg): New mode attribute.
11880         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
11881         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
11882         (mov[sd]icc): Redefine using :GPR.
11883
11884 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11885
11886         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
11887         (mips_prefetch_cookie): New function.
11888         * config/mips/mips.c (print_operand_address): Fix handling of
11889         ADDRESS_CONST_INT.
11890         (mips_emit_prefetch): Delete.
11891         (mips_prefetch_cookie): New function.
11892         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
11893         mode of QImode for the address_operand.  Use mips_prefetch_cookie
11894         to calculate the first "pref" operand.
11895         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
11896         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
11897
11898 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
11899
11900         * arm.md: Include predicates.md.
11901         * predicates.md: New file.
11902         * arm.c (s_register_operand, arm_hard_register_operand)
11903         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
11904         (arm_immediate_operand, arm_neg_immediate_operand)
11905         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
11906         (arm_add_operand, arm_addimm_operand, arm_not_operand)
11907         (offsettable_memory_operand, alignable_memory_operand)
11908         (arm_reload_memory_operand, arm_float_rhs_operand)
11909         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
11910         (index_operand, shiftable_operator, logical_binary_operator)
11911         (shift_operator, equality_operator, arm_comparison_operator)
11912         (minmax_operator, cc_register, dominant_cc_register)
11913         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
11914         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
11915         (const_shift_operand, load_multiple_operation)
11916         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
11917         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
11918         (cirrus_register_operand, cirrus_fp_register)
11919         (cirrus_shift_const): Delete, replaced with equivalents in
11920         predicates.md.
11921         (shift_op): Handle ROTATE.
11922         * arm-protos.h: Delete declarations for above.
11923         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
11924         * t-arm (MD_INCLUDES): Add predicates.md.
11925         (s-preds): Depends on MD_INCLUDES.
11926
11927 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11928
11929         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
11930         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
11931         patterns.  Redefine using :GPR.  Give the match_operator a mode.
11932         Use '%2' rather than '%z2' for operand 2.
11933
11934 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11935
11936         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
11937         attribute.
11938
11939 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11940
11941         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
11942         of internal patterns.
11943         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
11944         Redefine using :P.
11945         (tablejump): Use expand_binop to calculate address.  Adjust names
11946         of internal patterns.
11947         (tablejump[sd]i): Renamed from tablejump_internal[12].
11948         Redefine using :P.
11949         (tablejump_mips16[12]): Delete.
11950
11951 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11952
11953         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
11954         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
11955         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
11956         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
11957         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
11958
11959 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
11960
11961         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
11962         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
11963         using :GPR.
11964         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
11965         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
11966         (*branch_equality[sd]i_inverted): Likewise
11967         branch_equality{,_di}_inverted.
11968         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
11969         Redefine using :GPR.
11970
11971 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
11972
11973         * rtl.def: Reorganize, placing all codes used only in machine
11974         descriptions at the end.
11975
11976         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
11977         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
11978         rtx_name, rtx_format arrays by direct reference to rtl.def,
11979         first undefining GENERATOR_FILE.  Define enum insn_note and
11980         note_insn_name array by direct reference to insn-notes.def.
11981         (adjust_field_rtx_def): Remove local definition of rtx_name.
11982         Use symbolic names for insn notes.
11983         * Makefile.in (gengtype.o): Update dependencies.
11984
11985 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
11986
11987         * basic-block.h (struct basic_block_def): Reorder fields to
11988         eliminate interior padding.  Remove 'partition' field.
11989         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
11990         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
11991         (BB_COPY_PARTITION): New macros.
11992         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
11993         Replace all references to the 'partition' field of a basic
11994         block with new macros.
11995
11996         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
11997         * final.c (final_scan_insn): Don't handle it.
11998         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
11999         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
12000         * sched-rgn.c (sched_is_disabled_for_current_region_p):
12001         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
12002
12003 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
12004
12005         * c-decl.c (c_init_decl_processing): Adjust
12006         build_common_tree_nodes call.
12007         * expmed.c (const_mult_add_overflow_p): Use
12008         build_distinct_type_copy.
12009         * stor-layout.c (early_type_list): Remove.
12010         (layout_type): Don't append to early_type_list.
12011         (initialize_sizetypes): Add signed_p argument.
12012         (set_sizetype): Overwrite the stub type nodes directly.
12013         * tree.c (copy_node_stat): Clear a type's value cache here ...
12014         (build_distinct_type): ... not here.
12015         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
12016         * tree.h (initialize_sizetypes): Add signed_p argument.
12017         (build_common_tree_nodes): Likewise.
12018
12019         * objc/objc-act.c (get_static_reference): Use
12020         build_variant_type_copy.
12021         (get_protocol_reference): Likewise.
12022         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
12023
12024 2004-08-24  Richard Henderson  <rth@redhat.com>
12025             Andrew Pinski  <apinski@apple.com>
12026
12027         * gimplify.c (gimplify_array_ref_to_plus): Delete.
12028         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
12029         for ARRAY_REF.
12030
12031         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
12032         ARRAY_REF also to get to the STRING_CST.
12033
12034 2004-08-24  Paul Brook  <paul@codesourcery.com>
12035
12036         * config/arm/arm.c (arm_override_options): Update error message.
12037         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
12038         TARGET_HARD_FLOAT_ABI.
12039         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
12040         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
12041
12042 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12043
12044         PR target/17093
12045         * config/m32r.md (movsi_sda): Add SI mode specification to
12046         UNSPEC.
12047
12048 2004-08-24  Nick Clifton  <nickc@redhat.com>
12049
12050         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
12051         of seth_add3_operand.
12052
12053 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
12054
12055         * Makefile.in (PROTO_OBJS): Add errors.o.
12056         * protoize.c (fancy_abort): Remove.
12057         * mips-tfile.c (fancy_abort): Add parameters.
12058
12059 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
12060
12061         * doc/trouble.texi (C++ misunderstandings): Fix example code.
12062
12063 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
12064
12065         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
12066         (host-default.o): Add dependency on HOOKS_H.
12067         * config/x-linux: Likewise.
12068         * config/x-solaris: Likewise.
12069         * config/i386/x-mingw32: Likewise.
12070         * config/rs6000/x-darwin: Likewise.
12071
12072 2004-08-23  James E Wilson  <wilson@specifixinc.com>
12073
12074         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
12075         DEF_REG_NOTE.
12076
12077 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
12078
12079         PR c/14492
12080         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
12081
12082 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
12083
12084         * cfg.c (check_bb_profile): Fix typos.
12085         * function.c (assign_parm_is_stack_parm): Likewise.
12086         * tree-nested.c: Likewise.
12087
12088 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
12089
12090         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
12091         Remove TYPECODE.
12092         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
12093
12094 2004-08-23  Eric Christopher  <echristo@redhat.com>
12095
12096         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
12097         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
12098         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
12099         * target.h: Ditto.
12100         * hooks.h: Include machmode.h.
12101         (hook_bool_mode_false): Declare.
12102         * hooks.c (hook_bool_mode_false): Define.
12103         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
12104         * stor-layout.c (layout_type): Ditto.
12105         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
12106         Define to target macro.
12107         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
12108         * config/arm/arm.c: Ditto. Use.
12109         * config/arm/arm.h: Ditto.
12110         * config/arm/arm-protos.h: Ditto.
12111         * config/i386/i386.c: Ditto.
12112         * config/i386/i386.h: Ditto.
12113         * config/rs6000/rs6000.c: Ditto.
12114         * config/rs6000/rs6000.h: Ditto.
12115         * config/sh/sh.c: Ditto.
12116         * config/sh/sh.h: Ditto.
12117         * config/sh/sh-protos.h: Ditto.
12118         * config/sh/sh.md: Use.
12119         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
12120         to TARGET_VECTOR_MODE_SUPPORTED_P.
12121
12122 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
12123
12124         * Makefile.in (BUILD_ERRORS): Set to build-errors.
12125         (errors.o): New target for host.
12126         (build-errors.o): New target for build.
12127         (genobjs): Replace errors.o with build-errors.
12128         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
12129         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
12130         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
12131         (fix-header.o): Add errors.h
12132         * collect2.c (fancy_abort): Add parameters.
12133         * collect2.h (fancy_abort): Don't declare.
12134         * errors.h (fancy_abort): Don't declare.
12135         * errors.c: Include either bconfig.h or config.h.
12136         (fancy_abort): Trim filename.
12137         * fix-header.c (v_fatal, fatal): Remove.
12138         (progname): Remove definition.
12139         (main): Set progname here.
12140         * gcc.c (fancy_abort): Add parameters.
12141         * gcc.h (fancy_abort): Remove declaration.
12142         * gcov.c (fancy_abort): Remove.
12143         * rtl.h (fancy_abort): Don't declare.
12144         (abort): Don't define.
12145         * tree.h (fancy_abort): Don't declare.
12146         (abort): Don't define.
12147         * system.h (fancy_abort): Declare.
12148         (abort): Define to fancy_abort.
12149         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
12150
12151         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
12152         (usize_type, ubitsizetype): Remove.
12153         * stor-layout.c (set_sizetype): Don't initialize usizetype,
12154         ubitsizetype.
12155         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
12156
12157         * tree.h (build_distinct_type_copy): New.
12158         (build_type_copy): ... here.  Rename to ...
12159         (build_variant_type_copy): ... here.
12160         * tree.c (build_qualified_type): Rename build_type_copy call.
12161         (build_distinct_type_copy): New, broken out of ...
12162         (build_type_copy): ... here.  Rename to ...
12163         (build_variant_type_copy): ... here.  Use
12164         build_distinct_type_copy.
12165         (build_common_tree_nodes_2): Rename build_type_copy call.
12166         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
12167         call.
12168         (handle_packed_attribute, handle_unused_attribute,
12169         handle_transparanet_union_attribute, handle_aligned_attribute,
12170         handle_deprecated_attribute): Likewise.
12171         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
12172         Likewise.
12173         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
12174         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
12175         build_distinct_type_copy.
12176
12177 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12178
12179         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
12180         attribute.
12181
12182 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12183
12184         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
12185         loads and stores.
12186         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
12187         formerly unnamed patterns.  Redefine using :P for the address.  Remove
12188         explicit length attributes.
12189
12190 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12191
12192         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
12193         New functions.
12194         (single_reachable_address): Use them.
12195         (schedule_sm): Add dump.
12196         (is_call_clobbered_ref): New function.
12197         (determine_lsm_reg): Check whether the reference is call clobbered.
12198         Only work for gimple_reg_type values.
12199
12200 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12201
12202         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
12203         $31 store insns.  Redefine using :GPR.
12204
12205 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12206
12207         * config/mips/mips.md (P): New mode macro.
12208         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
12209         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
12210         Add mode attributes.
12211
12212 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12213
12214         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
12215         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
12216         later constants to cover the gap.
12217         (load, store): New mode attributes.
12218         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
12219         Use new unspec constants.
12220
12221 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12222
12223         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
12224         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
12225         to use register_operand rather than uns_arith_operand as the predicate
12226         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
12227         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
12228         Redefine using :GPR.  Make same predicate change here.  Extend the
12229         commutativity of operands 1 and 2 from the SImode version to the
12230         DImode one.
12231         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
12232         but with no predicate changes.
12233         (*nor[sd]i3): Redefine using :GPR.
12234
12235 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12236
12237         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
12238         noreturn functions.
12239
12240 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12241
12242         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
12243         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
12244         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
12245         rather than "%z2" (with a fake const0_rtx for operand 2).
12246         (ffs[sd]i2): Redefine using :GPR.
12247         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
12248
12249 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12250
12251         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
12252
12253 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12254
12255         * config/mips/mips.md (any_extend): New code macro.
12256         (u, su): New code attributes.
12257         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
12258         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
12259         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
12260         (*{s,u}mul_acc_di): Redefine using any_extend.
12261         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
12262         to reflect real insn names.
12263         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
12264         with an any_extend template.
12265         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
12266         Add '*' to name.
12267
12268 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12269
12270         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
12271         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
12272         (mul[sd]i3_r4000): Redefine using :GPR.
12273         (mulsi3_mult3): Don't check TARGET_MAD separately.
12274         (muldi3_mult3): Moved after mulsi_mult3.
12275
12276 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12277
12278         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
12279         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
12280         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
12281         (TARGET_GAS, TARGET_MIPS_AS): Delete.
12282         (TARGET_GPWORD): Define to true for n32 on IRIX.
12283         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
12284         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
12285         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
12286         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
12287         (MDEBUG_ASM_SPEC): Delete, folding into...
12288         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
12289         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
12290         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
12291         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
12292         to define asm_abi_default_spec.
12293         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
12294         (TARGET_ASM_SELECT_SECTION): Delete.
12295         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
12296         for non-mips16 code, removing previous workaround for SGI assemblers.
12297         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
12298         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
12299         (override_options): Remove !TARGET_GAS and !have_named_sections code.
12300         (print_operand): Fold TARGET_GAS conditionals into asm strings.
12301         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
12302         ASM_STABS_OP and ASM_STABN_OP.
12303         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
12304         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
12305         (mips_output_function_prologue): Remove !TARGET_GAS code.
12306         (mips_select_rtx_section): Remove !have_named_sections code.
12307         (mips_select_section): Delete.
12308         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
12309         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
12310         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
12311         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
12312         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
12313         * config/mips/windiss.h (ASM_SPEC): Likewise.
12314
12315 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12316
12317         * read-rtl.c (map_value, mapping, macro_group): New structures.
12318         (BELLWETHER_CODE): New macro.
12319         (modes, codes, bellwether_codes): New variables.
12320         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
12321         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
12322         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
12323         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
12324         (add_map_value, initialize_macros): New functions.
12325         (def_hash, def_hash_eq_p): Generalize to anything that points to,
12326         or starts with, a char * field.
12327         (find_macro, read_mapping, check_code_macro): New functions.
12328         (read_rtx_1): New, split out from read_rtx.  Handle the new
12329         define_{mode,code}_{macro,attr} constructs.  Use find_macro
12330         to parse the name of a code or mode.  Use BELLWETHER_CODE to
12331         extract the format and to choose a suitable code for rtx_alloc.
12332         Modify recursive invocations to use read_rtx_1.
12333         (read_rtx): Call initialize_macros.  Apply code and mode macros
12334         to the rtx returned by read_rtx_1.  Cache everything after the
12335         first macro expansion for subsequent read_rtx calls.
12336         * doc/md.texi: Document new .md constructs.
12337         * config/mips/mips.md (GPR): New mode macro.
12338         (d, si8_di5): New mode attributes.
12339         (any_cond): New code macro.
12340         (add[sd]i3): Redefine using :GPR.
12341         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
12342         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
12343         previously unnamed MIPS16 patterns.
12344         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
12345         lines.  Don't match (plus (const_int 0) ...).
12346         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
12347         Use a define_split to generate the addition.
12348         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
12349         (subsi3_internal): Delete.
12350         (*subsi3_extended): Renamed from subsi3_internal_2.
12351         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
12352         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
12353         using an any_cond template.
12354
12355 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12356
12357         * read-rtl.c (read_rtx): Tidy use of format_ptr.
12358
12359 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
12360
12361         * read-rtl.c (string_obstack): New file-scope variable.
12362         (read_string, read_quoted_string, read_braced_string)
12363         (read_escape): Remove obstack parameter and use string_obstack instead.
12364         (read_rtx): Remove function-local rtl_obstack and initialize
12365         string_obstack instead.  Update call to read_string.
12366
12367 2004-08-22  Andrew Pinski  <apinski@apple.com>
12368
12369         PR c/15262
12370         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
12371         expression is not constant.
12372         (c_finish_return): Do not go through INDIRECT_REF when looking
12373         for the inner expression of an ADDR_EXPR for warning about.
12374
12375 2004-08-22  Richard Henderson  <rth@redhat.com>
12376
12377         PR 17075
12378         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
12379         create new blocks and fall through.
12380         (expand_gimple_basic_block): Update to match.
12381
12382 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
12383
12384         * reload.c (find_reloads_address): Make return value tri-state.
12385         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
12386         (find_reloads): Assume that reloaded addresses match 'o' or
12387         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
12388         returned 1 (not -1).  Omit optional reloads for address operands
12389         only if find_reloads_address returned 1 (not -1).
12390
12391         * config/s390/s390.c (legitimize_reload_address): New function.
12392         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
12393         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
12394         legitimize_reload_address.
12395
12396 2004-08-22  Richard Hendersion  <rth@redhat.com>
12397
12398         * tree.h (SAVE_EXPR_RESOLVED_P): New.
12399         * gimplify.c (gimplify_save_expr): Use it.
12400         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
12401         on the temporary variable.
12402
12403 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
12404
12405         * fold-const.c (rtl_expr_nonnegative_p): Delete.
12406         * tree.h (rtl_expr_nonnegative_p): Remove.
12407
12408 2004-08-22  Steven Bosscher  <stevenb@suse.de>
12409
12410         * config/i386/ppro.md (ppro_complex_insn): Add missing check
12411         for cpu==pentiumpro.
12412
12413         * combine.c (struct reg_stat): Fix comment typo.
12414
12415 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
12416
12417         * c-tree.h (c_sizeof_nowarn): Remove.
12418
12419 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
12420
12421         * c-decl.c (set_array_declarator_type): Rename to
12422         set_array_declarator_inner.
12423         (build_c_parm, build_attrs_declarator, build_function_declarator):
12424         New functions.
12425         (make_pointer_declarator): Call build_attrs_declarator.
12426         * c-tree.h (set_array_declarator_type): Rename to
12427         set_array_declarator_inner.
12428         (build_c_parm, build_attrs_declarator, build_function_declarator):
12429         New prototypes.
12430         * c-parse.in (after_type_declarator,
12431         parm_declarator_starttypename, parm_declarator_nostarttypename,
12432         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
12433         firstparm): Use these functions
12434
12435 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
12436
12437         * c-decl.c (build_array_declarator, set_array_declarator_type,
12438         start_decl, grokdeclarator, grokparms): Change boolean parameters
12439         to type bool.
12440         * c-tree.h (build_array_declarator, set_array_declarator_type,
12441         start_decl): Update prototypes.
12442         * c-decl.c, c-parse.in: All callers changed.
12443
12444 2004-08-21  Mike Stump  <mrs@apple.com>
12445
12446         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
12447         (darwin_fix_and_continue): Likewise.
12448         (darwin_fix_and_continue_switch): Likewise.
12449         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
12450         (darwin_fix_and_continue): Likewise.
12451         (darwin_fix_and_continue_switch): Likewise.
12452
12453 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
12454
12455         PR  c++/16030
12456         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
12457         Remove, merging into ...
12458         (gen_stdcall_or_fastcall_suffix): New function, returning tree
12459         rather than const char*, and accepting additional parameter.
12460         Don't add suffix to '*'-prefixed symbols or variadic functions.
12461         (i386_pe_encode_section_info): Adjust for call to new function.
12462         Call change_decl_assembler_name.
12463
12464 2004-08-20  Mike Stump  <mrs@apple.com>
12465
12466         * config/darwin.c (machopic_indirect_data_reference): Mark
12467         stubs as defined.
12468         * config/386/386.c (darwin_local_data_pic): Add.
12469         (legitimate_constant_p): Reorder so that PLUS handling runs
12470         before darwin_local_data_pic to match the ordering in
12471         legitimate_pic_address_disp_p and so that MINUS runs after
12472         darwin_local_data_pic as otherwise the darwin_local_data_pic
12473         logic can be skipped, which would be very bad.
12474         (legitimate_pic_address_disp_p): Move from from here to
12475         darwin_local_data_pic so it can be reused.
12476
12477 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
12478
12479         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
12480         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
12481         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
12482         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
12483         (RS6000_ABI_NAME): Define as "linux".
12484         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
12485         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
12486         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
12487         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
12488         * config/rs6000/rs6000.c (dot_symbols): New global var.
12489         (rs6000_output_function_entry): New function, modified for
12490         !DOT_SYMBOLS..
12491         (print_operand <case 'z'>): ..extracted from here.
12492         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
12493         (rs6000_output_function_epilogue): Likewise.
12494         (rs6000_elf_declare_function_name): Likewise.
12495         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
12496         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
12497         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
12498         * configure: Regenerate.
12499         * config.in: Regenerate.
12500
12501 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
12502
12503         * reload.c (find_reloads_address): Fix thinko in previous change.
12504
12505         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
12506         a CONST_INT.
12507
12508 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
12509
12510         PR rtl-optimization/17099
12511         * combine.c (force_to_mode): Check if inner_mask has any bits set
12512         outside of GET_MODE (x) instead of op_mode.
12513
12514 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
12515
12516         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
12517         fragment.
12518         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
12519         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
12520         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
12521         architecture.
12522         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
12523         configurations.
12524         * config/arm/t-symbian: New file.
12525
12526 2004-08-20  Andrew Pinski  <apinski@apple.com>
12527
12528         * regrename.c (kill_value_regno): ANSIfy.
12529
12530 2004-08-20  Dale Johannesen  <dalej@apple.com>
12531
12532         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
12533
12534 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
12535
12536         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
12537         (kill_value_regno): New function, derived from kill_value.
12538         (kill_value): Update.
12539         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
12540
12541 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
12542
12543         Fix PR tree-optimization/17111
12544         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
12545         of non-value_handles.
12546         (bitmap_set_contains): All constants are in every set.
12547
12548 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
12549
12550         * fold-const.c (round_up, round_down): Use build_int_cst.
12551         Optimize common case.
12552
12553 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
12554             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12555
12556         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
12557         one_only_data_section): Rename to som_readonly_data_section,
12558         som_one_only_readonly_data_section and som_one_only_data_section.
12559         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
12560         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
12561         conditional defines.
12562         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
12563         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
12564         string values.
12565         (pa_select_section): Use renamed section functions.
12566         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
12567         SOM_READONLY_DATA_SECTION_FUNCTION,
12568         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
12569         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
12570         Define here ...
12571         * config/pa/som.h: ... not here.
12572         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
12573         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
12574         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
12575         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
12576         (READONLY_DATA_SECTION): Use som_readonly_data_section.
12577
12578 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
12579
12580         * fold-const.c (int_const_binop): Don't generate non-overflowing
12581         size-types specially.
12582         (fold_convert_const): Likewise.
12583
12584         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
12585         clear cache on copied sizetype.
12586
12587 2004-08-20  Ben Elliston  <bje@au.ibm.com>
12588
12589         * configure.ac: Don't escape apostrophe in --enable-coverage help.
12590         * configure: Regenerate.
12591
12592 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
12593
12594         PR 5620
12595         * gcc.c (struct stat input_stat): Don't define if
12596         HOST_LACKS_INODE_NUMBERS
12597         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
12598         than stat to determine if temp file is same as input file.
12599         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
12600         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
12601
12602 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
12603
12604         * configure.ac (mips*-*-*): Print an error if not using GAS.
12605         * configure: Regenerated.
12606         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
12607         comments about buggy MIPSpro assemblers.
12608         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
12609         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
12610         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
12611         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
12612         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
12613         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
12614         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
12615         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
12616         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
12617         of more general IRIX 6 definitions.
12618         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
12619         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
12620         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
12621         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
12622         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
12623         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
12624         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
12625         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
12626         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
12627         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
12628         (LINK_SPEC): Move most of definition to iris.h.
12629         (SUBTARGET_LINK_SPEC): New macro.
12630         (IRIX_STARTFILE_SPEC): Fold into...
12631         (STARTFILE_SPEC): ...here.
12632         (IRIX_ENDFILE_SPEC): Fold into...
12633         (ENDFILE_SPEC): ...here.
12634         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
12635         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
12636         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
12637         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
12638         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
12639         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
12640         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
12641         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
12642         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
12643         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
12644         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
12645         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
12646         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
12647         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
12648         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
12649         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
12650         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
12651         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
12652         (TARGET_IRIX6): Define to 1.
12653         (DRIVER_SELF_SPECS): Define.
12654         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
12655         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
12656         (SUBTARGET_LINK_SPEC): New macro.
12657         (IRIX_STARTFILE_SPEC): Fold into...
12658         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
12659         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
12660         (LIB_SPEC, LIBGCC_SPEC): Use them.
12661         (LIB_SPEC): Remove !mabi=* case.
12662         (IRIX_ENDFILE_SPEC): Fold into...
12663         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
12664         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
12665         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
12666         (TARGET_IRIX6): New macro.
12667         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
12668         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
12669         (LABEL_AFTER_LOC): Delete.
12670         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
12671         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
12672         (mips_build_builtin_va_list): Check TARGET_IRIX6.
12673         (override_options): Remove TARGET_SGI_O32_AS-related code.
12674         (irix_output_external_libcall): Make static.
12675         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
12676         LABEL_AFTER_LOC.
12677         (mips_file_start): Tidy guard for ABI sections.  Remove use of
12678         ABICALLS_ASM_OP; use .abicalls instead.
12679         (mips_output_aligned_decl_common, mips_declare_object_name)
12680         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
12681         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
12682         .globl foo .text directives.
12683         (irix_asm_named_section_1, irix_asm_named_section)
12684         (irix_section_align_entry, irix_section_align_htab)
12685         (irix_orig_asm_out_file, irix_section_align_entry_eq)
12686         (irix_section_align_entry_hash, irix_asm_output_align)
12687         (irix_file_start, irix_section_align_1, copy_file_data)
12688         (irix_file_end, irix_section_type_flags): Delete.
12689         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
12690         Use standard section syntax.  Remove protective "jr $31".
12691         (__gcc_fini): Likewise .gcc_fini.
12692         * config/mips/irix-crtn.asm: Adjust sections accordingly.
12693         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
12694         iris5gas.h.
12695         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
12696         from t-irix-gld.
12697         (EXTRA_MULTILIB_PARTS): Define.
12698         * config/mips/t-iris6: Remove bogus comment.
12699         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
12700         * config/mips/iris5gas.h, config/mips/iris5gld.h,
12701         config/mips/iris6gas.h, config/mips/iris6gld.h,
12702         config/mips/t-iris5-as, config/mips/t-iris5-gas
12703         config/mips/t-irix-gld: Delete.
12704         * config/mips/iris.h: New file.
12705         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
12706
12707 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
12708
12709         * postreload.c (reload_cse_move2add): Allow any condjump, but check
12710         that the implicit set isn't clobbered in the jump insn.
12711
12712 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
12713
12714         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
12715         * optabs.c (init_optabs): Don't check it.
12716         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
12717         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
12718
12719 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
12720
12721         * config/s390/s390.md (s390_warn_framesize_string)
12722         (s390_warn_dynamic_string, s390_stack_size_string)
12723         (s390_stack_guard_string): New global string variables.
12724         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
12725         (s390_stack_guard): New global variables.
12726         (override_options): Added checks for the new options.
12727         (s390_emit_prologue): Emit stack check and trap code and perform
12728         compile time stack size checking.
12729
12730         * config/s390/s390.h (TARGET_OPTIONS): Added new options
12731         "warn-framesize", "warn-dynamicstack", "stack-size" and
12732         "stack-guard".
12733
12734         * doc/invoke.texi: Added documentation for the new options.
12735
12736 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
12737
12738         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
12739         to eliminate warning.
12740         (linear_search_fdes): Declare p as unsigned.
12741         (binary_search_mixed_encoding_fdes): Likewise.
12742         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
12743         to eliminate warning.
12744         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
12745         type cast.
12746
12747 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
12748
12749         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
12750         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
12751         instead of one.  Check for strictly legitimate address.
12752         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
12753         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
12754
12755 2004-08-19  Eric Christopher  <echristo@redhat.com>
12756
12757         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
12758         * langhooks.h (unsave_expr_now): Ditto.
12759         * tree.h (unsave_expr_1): Remove prototype.
12760         (lhd_unsave_expr_now): Rename to unsave_expr_now.
12761         * tree-inline.c (unsave_expr_1): Move here
12762         from tree.c. Make static.
12763         (unsave_expr_now): Rename from lhd_unsave_expr_now.
12764         * tree-sra.c: Fix up for rename.
12765         * tree-ssa-copy.c: Ditto.
12766         * tree-eh.c: Ditto.
12767         * tree.c (unsave_expr_1): Move to tree-inline.c.
12768
12769 2004-08-19  Caroline Tice  <ctice@apple.com>
12770
12771         * config/i386/cygming.h (switch_to_section):  Fix typo (change
12772         in_unlikely_text_section to in_unlikely_executed_text).
12773
12774 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
12775
12776         * vec.h (VEC_lower_bound): New macro.
12777
12778 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
12779
12780         PR target/16446
12781         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
12782         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
12783         treat each ABI separately.  Deal with n32/n64 complex float arguments.
12784         (function_arg): Add associated complex handling here.
12785
12786 2004-08-19  Richard Henderson  <rth@redhat.com>
12787
12788         * config/arm/arm.c (arm_gen_load_multiple): Use
12789         adjust_automodify_address.  Take base memory and offset instead
12790         of unchanging/struct/scalar bits.
12791         (arm_gen_store_multiple): Likewise.
12792         (arm_gen_movmemqi): Use adjust_automodify_address.
12793         * config/arm/arm-protos.h: Update decls.
12794         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
12795         (store_multiple): Similarly.
12796
12797 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
12798
12799         * regclass.c (globalize_reg): Update call_really_used_regs.
12800
12801 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
12802
12803         * doc/invoke.texi (integer-share-limit): Document.
12804
12805         * tree.h (TYPE_CACHED_VALUES_P): New.
12806         (TYPE_CACHED_VALUES): New.
12807         (TYPE_ORIG_SIZE_TYPE): Adjust.
12808         * tree.def (INTEGER_CST): Update documentation.
12809         * tree.c: Inlcude params.h.
12810         (build_int_cst): Cache small values.
12811         (build_type_copy): Do not copy the value cache.
12812         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
12813         unneeded zeroing.
12814         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
12815         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
12816         cache.
12817         * fold-const.c (force_fit_type): Copy value when setting
12818         overflows.
12819         (int_const_binop): Likewise.
12820         * stor-layout.c: Include params.h
12821         (set_sizetype): Create values cache.
12822         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
12823         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
12824         * params.h (INTEGER_SHARE_LIMIT): New.
12825         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
12826
12827 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
12828
12829         * gimplify.c (gimplify_minimax_expr): Remove.
12830         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
12831
12832 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
12833
12834         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
12835         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
12836
12837 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
12838
12839         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
12840
12841 2004-08-18  Andrew Pinski  <apinski@apple.com>
12842
12843         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
12844
12845 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
12846
12847         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
12848         (__aeabi_ul2f): Likewise.
12849
12850 2004-08-18  Richard Henderson  <rth@redhat.com>
12851
12852         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
12853         move to rtl completely.
12854         (struct meminsnbuf, xtensa_emit_block_move): Remove.
12855         (xtensa_find_mode_for_size): Remove.
12856         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
12857         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
12858
12859 2004-08-18  Richard Henderson  <rth@redhat.com>
12860
12861         * config/mcore/mcore.c (mode_from_align): Remove DImode.
12862         (block_move_sequence): Rewrite to use adjust_address.
12863         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
12864         Return boolean indicating success/failure.
12865         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
12866         * config/mcore/mcore.md (movmemsi): Update to match.
12867
12868 2004-08-18  Mike Stump  <mrs@apple.com>
12869
12870         * doc/invoke.texi (-mfix-and-continue): Add support for
12871         fast turn around debugging.
12872         (-ffix-and-continue): Likewise.
12873         (-mindirect-data): Likewise.
12874         (-findirect-data): Likewise.
12875         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
12876         (indirect_data): Likewise.
12877         (machopic_data_defined_p): Likewise.
12878         (machopic_output_indirection): Likewise.
12879         (darwin_encode_section_info): Likewise.
12880         (darwin_fix_and_continue): Likewise.
12881         (darwin_fix_and_continue_switch): Likewise.
12882         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
12883         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
12884         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
12885         (SUBTARGET_OPTIONS): Likewise.
12886         (darwin_fix_and_continue): Likewise.
12887         (darwin_fix_and_continue_switch): Likewise.
12888         (TARGET_FIX_AND_CONTINUE): Likewise.
12889         * config/rs6000.c (rs6000_emit_prologue): Likewise.
12890
12891 2004-08-19  Steven Bosscher  <stevenb@suse.de>
12892
12893         * basic-block.h (struct edge_def): Remove crossing_edge.
12894         (EDGE_CROSSING): New define.
12895         (EDGE_ALL_FLAGS): Update.
12896         * bb-reorder.c (find_traces_1_round, better_edge_p,
12897         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
12898         find_jump_block, fix_crossing_conditional_branches,
12899         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
12900         Replace all occurences of crossing_edge with an edge flag check
12901         or set/reset.
12902         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
12903         try_crossjump_bb): Likewise.
12904         * cfglayout.c (fixup_reorder_chain): Likewise.
12905         * cfgrtl.c (force_nonfallthru_and_redirect,
12906         commit_one_edge_insertion): Likewise.
12907
12908         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
12909         * tree-flow.h (compute_dominance_frontiers): Move prototype...
12910         * basic-block.h:  ...here.
12911         * tree-cfg.c (compute_dominance_frontiers_1,
12912         compute_dominance_frontiers): Move from here...
12913         * cfganal.c: ...to here.  Include timevar.h.
12914
12915 2004-08-18  James E Wilson  <wilson@specifixinc.com>
12916
12917         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
12918         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
12919
12920         * config/mips/mips.md (type): Add frdiv.
12921         (divsf3+1, divsf3+2): Change type to frdiv.
12922         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
12923         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
12924
12925         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
12926         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
12927         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
12928         * config/mips/5000.md (r5k_fdiv_single): Likewise.
12929         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
12930         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
12931         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
12932         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
12933         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
12934         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
12935         Likewise.
12936         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
12937
12938 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
12939
12940         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
12941         get regression tester working again.
12942
12943 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
12944
12945         * insn-notes.def, reg-notes.def: New files.
12946         * rtl.h: Use them to define enum insn_note and enum reg_note.
12947         * rtl.c: Use them to define note_insn_name and reg_note_name.
12948         * Makefile.in (RTL_BASE_H): Update.
12949
12950         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
12951         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
12952
12953 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
12954
12955         * arm.c (arm_size_rtx_costs): New function.
12956         (arm_override_options): Use it if optimizing for space.
12957
12958 2004-08-18  Richard Henderson  <rth@redhat.com>
12959
12960         * emit-rtl.c (gen_const_mem): New.
12961         * rtl.h (gen_const_mem): Declare.
12962         * expr.c (do_tablejump): Use it.
12963         * varasm.c (force_const_mem): Likewise.
12964         * config/darwin.c (machopic_indirect_data_reference): Likewise.
12965         (machopic_legitimize_pic_address): Likewise.
12966         * config/arm/arm.c (legitimize_pic_address): Likewise.
12967         * config/i386/i386.c (legitimize_pic_address): Likewise.
12968         (legitimize_tls_address): Likewise.
12969         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
12970         * config/ia64/ia64.md (load_fptr): Likewise.
12971         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
12972         * config/pa/pa.c (legitimize_pic_address): Likewise.
12973         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
12974         (rs6000_emit_move): Likewise.
12975         * config/s390/s390.c (legitimize_pic_address): Likewise.
12976         (legitimize_tls_address): Likewise.
12977         * config/s390/s390.md (casesi): Likewise.
12978         * config/sh/sh.c (sh_reorg): Likewise.
12979         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
12980         * config/v850/v850.md (casesi): Likewise.
12981
12982         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
12983         * config/sh/sh.c (prepare_move_operands): Remove incorrect
12984         use of MEM_READONLY_P.
12985
12986 2004-08-18  Steven Bosscher  <stevenb@suse.de>
12987
12988         * Makefile.in (OBJS-common): Add postreload-gcse.c.
12989         Add new postreload-gcse.o.
12990         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
12991         (lookup_as_function, insert, rehash_using_reg, use_related_value,
12992         equiv_constant): Use SAFE_HASH instead of safe_hash.
12993         (exp_equiv_p): Export.  Add for_gcse argument when comparing
12994         for GCSE.
12995         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
12996         find_comparison_args, fold_rtx, cse_insn): Update callers.
12997         (hash_rtx): New function derived from old canon_hash and bits
12998         from gcse.c hash_expr_1.
12999         (canon_hash_string): Rename to hash_rtx_string.
13000         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
13001         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
13002         (cselib_lookup): Update this caller.
13003         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
13004         Make static.
13005         (hash_expr): Call hash_rtx.
13006         (ldst_entry): Likewise.
13007         (expr_equiv_p): Call exp_equiv_p.
13008         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
13009         reg_used_on_edge, reg_set_between_after_reload_p,
13010         reg_used_between_after_reload_p, get_avail_load_store_reg,
13011         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
13012         get_bb_avail_insn, hash_scan_set_after_reload,
13013         compute_hash_table_after_reload,
13014         eliminate_partially_redundant_loads, gcse_after_reload,
13015         get_bb_avail_insn, gcse_after_reload_main): Remove.
13016         * postreload-gcse.c: New file, reincarnating most of the above.
13017         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
13018         (gcse_after_reload_main): Update prototype.
13019         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
13020         * passes.c (rest_of_handle_gcse2): Use it.
13021
13022 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
13023
13024         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
13025         (pass_loop_done): Likewise.
13026
13027 2004-08-18  Andrew Pinski  <apinski@apple.com>
13028
13029         * config/rs6000/darwin.md: Delete the altivec patterns which are
13030         handled differently now.
13031         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
13032         (macho_correct_pic_di): Likewise.
13033         (call_indirect_nonlocal_darwin64): Likewise.
13034         Delete the save world/saveFP/saveVec patterns.
13035
13036         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
13037         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
13038         * config/rs6000/rs6000.md: Include darwin.md.
13039         (builtin_setjmp_receiver): Add DImode case.
13040         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
13041         Darwin bits.
13042
13043 2004-08-18  Matt Austern  <austern@apple.com>
13044
13045         Dead code stripping
13046         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
13047         * darwin.c (darwin_file_end): Mark file as potentially strippable.
13048
13049 2004-08-18  Richard Henderson  <rth@redhat.com>
13050
13051         * alias.c (readonly_fields_p): Remove.
13052         (objects_must_conflict_p): Don't call it.
13053         * tree.h (readonly_fields_p): Remove.
13054         * langhooks.h (struct lang_hooks): Remove honor_readonly.
13055         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
13056
13057 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
13058
13059         * tree-dfa.c (add_referenced_var): Only global variables are
13060         call-clobbered.
13061         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
13062         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
13063         all pointers dereferenced if the statement dereferences them.
13064         (create_name_tags): Do not create memory tags for pointers
13065         that have PT_ANYTHING set.
13066         Also check if PT_VARS is not empty before creating a name tag.
13067         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
13068         variables that share the same alias set with a pointer that
13069         may point anywhere.
13070         (add_may_alias): Add FIXME comment to remove clobbering
13071         aliased variables and tags.
13072         (replace_may_alias): Likewise.
13073         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
13074         (merge_pointed_to_info): If the original variable has not
13075         points-to information, call set_pt_anything.
13076         (add_pointed_to_var): Do not prevent adding a pointed-to
13077         variable if the pointers is PT_ANYTHING.
13078         If the variable is a global, set PT_GLOBAL_MEM.
13079         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
13080         pointer type only come in PTR+OFFSET flavours.
13081         Always call merge_pointed_to_info on PHI arguments that are
13082         SSA_NAMEs.
13083         (get_nmt_for): Mark call-clobbered tags whose pointer points
13084         to global memory.
13085         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
13086         values.
13087         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
13088         FLAGS.
13089         (add_stmt_operand): Abort if the caller tried to add a killing
13090         definition for a memory tag.
13091         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
13092         unnecessary checks.
13093
13094 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
13095
13096         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
13097         from call_used_regs.  Update call_really_used_regs.
13098         (CALL_REALLY_USED_REGISTERS): Define.
13099         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
13100         Replace call_used_regs with call_really_used_regs.
13101         (calc_live_regs, sh_media_register_for_return): Likewise.
13102         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
13103         * sh.md (return_media): Likewise.
13104
13105 2004-08-18  Andrew Pinski  <apinski@apple.com>
13106
13107         * config/darwin.c (machopic_legitimize_pic_address): Only set
13108         MEM_READONLY_P in the non TARGET_TOC case.
13109
13110 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
13111
13112         * rtl.def (NIL): Delete.
13113         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
13114         Tighten the syntax a little.
13115
13116         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
13117         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
13118         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
13119         * config/i386/predicates.md, config/m32r/m32r.h
13120         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
13121         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
13122         * config/sparc/sparc.h, doc/tm.texi:
13123         Replace all occurrences of NIL with UNKNOWN.
13124
13125 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
13126
13127         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
13128         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
13129         sequence inline.  Move drop_through_label code into this
13130         block, being the only place it is used.  Adjust comments.
13131
13132 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
13133
13134         * config/rs6000/altivec.md: Add new patterns for calls to
13135         save_world/rest_world functions.
13136
13137         * config/rs6000/rs6000-protos.h: (save_world_operation,
13138         restore_world_operation) new declarations.
13139
13140         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
13141         field added.
13142         (rs6000_stack_info): Set world_save_p field.
13143         (save_world_operation): New function.
13144         (restore_world_operation): New function.
13145         (compute_save_world_info): New function.
13146         (rs6000_stack_info): Call compute_save_world_info.
13147         (rs6000_emit_prologue): Check for world_save_p and generate
13148         pattern to call save_world for saving all non-volatile and
13149         special registers.
13150         (rs6000_emit_epilogue): Check for world_save_p and generate
13151         pattern to call rest_world to restore saved registers.
13152
13153         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
13154         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
13155         (rs6000_reg_names): New entries added for save_world_operation and
13156         restore_world_operation.
13157
13158 2004-08-18  Caroline Tice  <ctice@apple.com>
13159
13160         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
13161         "-freorder-blocks-and-partition" to the flags used in second
13162         stage of profiledbootstrap.
13163         * bb-reorder.c (push_to_next_round_p): Add new variable,
13164         next_round_is_last; set and use variable to make sure, when
13165         partitioning, that the last trace construction round consists
13166         of all (and only) cold basic blocks.
13167         (rotate_loop): Don't copy blocks that end in a section
13168         crossing jump.
13169         (copy_bb): Correctly initialize "partition" of duplicated bb.
13170         (add_unlikely_executed_notes): Add a comment.
13171         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
13172         to make sure, if function contains hot blocks, that the
13173         successors of ENTRY_BLOCK_PTR are hot; also, only look for
13174         crossing edges if the architecture supports named sections.
13175         (mark_bb_for_unlikely_executed_section): Modify to always
13176         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
13177         the basic block note insn.
13178         (fix_crossing_unconditional_branches): Remove extra space.
13179         (fix_edges_for_rarely_executed_code): Modify to only do
13180         partitioning work if the architecture supports named sections.
13181         (reorder_basic_blocks): Modify to only add
13182         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
13183         supports named sections.
13184         * c-common.c (handle_section_attribute): Initialize new global
13185         variable, user_defined_section_attribute, to true if user has
13186         specified one.
13187         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
13188         forward edges that cross section boundaries.
13189         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
13190         partitioning information if the architecture supports named
13191         sections.
13192         * cfgrtl.c (target.h): Add statement to include this.
13193         (rtl_split_block): Make sure newly created bb gets correct
13194         partition.
13195         (try_redirect_by_replacing_jump): Make sure redirection isn't
13196         attempting to cross section boundaries.
13197         (force_nonfallthru_and_redirect): Only do partition fix up if
13198         architecture supports named sections.
13199         (rtl_split_edge): Make sure newly created bb ends up in
13200         correct partition.
13201         (commit_one_edge_insertion): Remove code that incorrectly
13202         updated basic block partition; Make sure partition fix up only
13203         happens if architecture supports named sections and it's not
13204         already done.
13205         (rtl_verify_flow_info_1): Fix if-condition on test/error
13206         condition that fallthru edges are not allowed to cross section
13207         boundaries.
13208         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
13209         * final.c (final_scan_insn): Remove redundant test from if-statement;
13210         change calls to text_section into calls to function_section; add code
13211         to only to partitioning fix up if architecture supports named
13212         sections.
13213         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
13214         partition.
13215         (if_convert): Add targetm.have_named_sections to test.
13216         * output.h (unlikely_section_label): Extern declaration for new global
13217         variable.
13218         (unlikely_text_section_name): Likewise.
13219         * opts.c (decode_options): If both partitioning and DWARF debugging
13220         are turned on, issue a warning that this doesn't work, and change
13221         partitiong to basic block reordering (without hot/cold partitions).
13222         * passes.c (rest_of_handle_final): Re-set new global variable,
13223         user_defined_section_attribute, to false.
13224         (rest_of_compilation): Change options for calling partitioning
13225         function: Don't call if the user defined the section attribute, and
13226         don't call if DECL_ONE_ONLY is true for the current function.
13227         * predict.c (choose_function_section): Return immediately if we
13228         are doing hot/cold partitioning (i.e. let the basic block partitioning
13229         determine where the function belongs).
13230         * reg-stack.c (emit_swap_insn): Add condition to step over
13231         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
13232         * toplev.c (user_defined_section_attribute): New global variable.
13233         * toplev.h (user_defined_section_attribute): Extern declaration
13234         for new global variable.
13235         * varasm.c (unlikely_section_label): New global variable.
13236         (unlikely_text_section_name): New global variable.
13237         (unlikely_text_section): Add code to initialize
13238         unlikely_text_section_name if necessary; modify to use
13239         unlikely_text_section_name and unlikely_section_label; also to use
13240         named_section properly.
13241         (in_unlikely_text_section):  Modify to work correctly with
13242         named_section and to use unlikely_text_section_name.
13243         (named_section):  Add code to work properly with cold section.
13244         (function_section): Clean up if-statement.
13245         * config/darwin.c (darwin_asm_named_section): Return to original
13246         code, removing use of SECTION_FORMAT_STRING.
13247         * config/arm/pe.h (switch_to_section):  Add case for
13248         in_unlikely_executed_text to switch statement.
13249         * config/i386/cygming.h (switch_to_section): Likewise.
13250         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
13251         (SECTION_FORMAT_STRING): Likewise.
13252         * config/mcore/mcore.h (switch_to_section): Likewise.
13253         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
13254         (SECTION_FORMAT_STRING): Remove.
13255
13256 2004-08-18  Roger Sayle  <roger@eyesopen.com>
13257
13258         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
13259         -ffixed-reg safe, by preserving the meanings of zero and one.
13260         (CALL_USED_REGISTERS): Likewise.
13261         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
13262
13263 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
13264
13265         * config/sh/sh.c (split_branches): Check the result of
13266         next_active_insn.
13267         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
13268         Call rtl_register_cfg_hooks.
13269
13270 2004-08-18  Richard Henderson  <rth@redhat.com>
13271
13272         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
13273         * alias.c (true_dependence): Update to match new semantics.
13274         (canon_true_dependence, write_dependence_p): Likewise.
13275         (anti_dependence, output_dependence): Update write_dependence_p args.
13276         (unchanging_anti_dependence): Remove.
13277         * calls.c (purge_mem_unchanging_flag): Remove.
13278         (fixup_tail_calls): Don't call it.
13279         (expand_call): Don't add unchanging memory to function usage.
13280         * expr.c (emit_block_move_via_libcall): Likewise.
13281         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
13282         (get_subtarget): Don't use RTX_UNCHANGING_P.
13283         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
13284         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
13285         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
13286         * cse.c (insert): Don't use RTX_UNCHANGING_P.
13287         (cse_insn, canon_hash): Use MEM_READONLY_P.
13288         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
13289         instead of RTX_UNCHANGING_P.
13290         * explow.c (maybe_set_unchanging): Remove.
13291         * expr.h (maybe_set_unchanging): Remove.
13292         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
13293         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
13294         (assign_parm_setup_reg, expand_function_start): Likewise.
13295         * integrate.c (copy_rtx_and_substitute): Likewise.
13296         * ra-rewrite.c (emit_colors): Likewise.
13297         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
13298         (fixup_match_1): Likewise.
13299         * reload1.c (reload, alter_reg): Likewise.
13300         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
13301         not RTX_UNCHANGING_P.
13302         (equiv_init_varies_p): Likewise.
13303         * loop-invariant.c (check_maybe_invariant): Likewise.
13304         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
13305         * loop.c (note_addr_stored): Likewise.
13306         (prescan_loop): Likewise. Don't check function usage for clobbered
13307         unchanging memory.
13308         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
13309         not RTX_UNCHANGING_P.
13310         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
13311         * varasm.c (force_const_mem): Likewise.
13312         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
13313         * web.c (entry_register): Likewise.
13314         * tree-gimple.h (get_base_address): Move decl ...
13315         * tree.h: ... here.
13316         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
13317
13318         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
13319         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
13320         (alpha_set_memflags): Update to match.
13321
13322         * config/darwin.c (machopic_indirect_data_reference): Set
13323         MEM_READONLY_P instead of RTX_UNCHANGING_P.
13324         (machopic_indirect_call_target): Likewise.
13325         (machopic_legitimize_pic_address): Likewise.
13326         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
13327         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
13328         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
13329         * config/frv/frv.md (symGOT2reg): Likewise.
13330         * config/i386/i386.c (legitimize_pic_address,
13331         legitimize_tls_address, ix86_split_to_parts): Likewise.
13332         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
13333         * config/ia64/ia64.md (load_fptr): Likewise.
13334         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
13335         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
13336         * config/mcore/mcore.c (block_move_sequence): Likewise.
13337         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
13338         * config/pa/pa.c (legitimize_pic_address): Likewise.
13339         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
13340         (rs6000_emit_move): Likewise.
13341         * config/s390/s390.c (legitimize_pic_address): Likewise.
13342         (legitimize_tls_address): Likewise.
13343         * config/s390/s390.md (casesi): Likewise.
13344         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
13345         * config/sh/sh.md (symGOT2reg): Likewise.
13346         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
13347         * config/v850/v850.md (casesi): Likewise.
13348
13349         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
13350         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
13351         * config/mips/mips.c (mips_restore_gp): Likewise.
13352         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
13353         * config/sh/sh.c (sh_reorg): Likewise.
13354
13355 2004-08-18  Richard Henderson  <rth@redhat.com>
13356
13357         * tree.h (struct tree_decl): Add gimple_formal_temp.
13358         (DECL_GIMPLE_FORMAL_TEMP_P): New.
13359         * gimplify.c (pop_gimplify_context): Clear it.
13360         (lookup_tmp_var): Set it, if is_formal.
13361         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
13362         Use is_gimple_val for VECTOR.  Simplify return value.
13363         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
13364         (gimplify_expr): Likewise.
13365         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
13366         is_gimple_tmp_rhs for clarity.  Update all callers.
13367         (is_gimple_reg_rhs): Simplify logic.
13368         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
13369         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
13370         (is_gimple_formal_tmp_reg): Similarly.
13371         * tree-gimple.h: Update decls.
13372         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
13373         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
13374         * tree-ssa-live.c (var_union, type_var_init): Likewise.
13375
13376 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
13377
13378         * c4x.c (legitimize_operands): Remove calls to
13379         preserve_subexpressions_p.
13380
13381 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
13382
13383         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
13384         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
13385
13386 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
13387
13388         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
13389         Objective-C++ extensions.
13390         * gengtype.c (get_file_basename): Match entire subdirectory name
13391         ('cp', 'objc', 'objcp') rather than just its suffix.
13392         (get_base_file_bitmap): Allow for files to belong to more than one
13393         language.
13394         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
13395         used by more than one front-end.
13396
13397 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
13398
13399         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
13400         avoid use of preserve_subexpressions_p.
13401
13402 2004-08-17  Richard Henderson  <rth@redhat.com>
13403
13404         PR 17051
13405         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
13406
13407 2004-08-17  DJ Delorie  <dj@redhat.com>
13408
13409         * doc/extend.texi: Document new xstormy16 attribute.
13410
13411         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
13412         (xstormy16_splittable_below100_or_register): New.
13413         (combine_bnp): New.
13414         (xstormy16_reorg): New.
13415         (TARGET_MACHINE_DEPENDENT_REORG): Define.
13416
13417         * config/stormy16/stormy16.md (movqi_internal): Make name public.
13418         (movhi_internal): Likewise.
13419         (cbhranchhi): Likewise.
13420         (cbhranchhi_neg): Likewise.
13421         (andhi3): Only allow splittable below100 operands.
13422         (iorhi3): Likewise.
13423         (peephole2): New and/zero_extend->and peephole.
13424         (peephole2): New load/ior/save->set1 peephole.
13425         (peephole2): New load/and/save->clr1 peephole.
13426         (bclrx, bclrx2, bclr7, bclr15): New.
13427         (bsetx, bsetx2, bset7, bset15): New.
13428
13429         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
13430         liberal about acceptable 'B' masks.
13431
13432         * config/stormy16/stormy16-protos.h
13433         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
13434         xstormy16_below100_operand, xstormy16_below100_or_register,
13435         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
13436         (PREDICATE_CODES): Add new predicates.
13437
13438         * config/stormy16/stormy16.c
13439         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
13440         xstormy16_below100_operand, xstormy16_below100_or_register,
13441         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
13442         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
13443         (xstormy16_legitimate_address_p): Allow below100 symbols.
13444         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
13445         (xstormy16_expand_move): Leave below100 operands as-is.
13446         (xstormy16_encode_section_info): Encode below100 symbols.
13447         (xstormy16_strip_name_encoding): New.
13448         (xstormy16_print_operand): Print 'b' as shift mask.
13449         (xstormy16_attribute_table): Add below100 attributes.
13450         (xstormy16_handle_below100_attribute): New.
13451
13452         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
13453         (XSTORMY16_SECTION_FUNCTION): New.
13454         (EXTRA_SECTION_FUNCTIONS): Define using the above.
13455         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
13456         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
13457         (ASM_OUTPUT_LABELREF): Define.
13458
13459         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
13460         (movhi_internal): Add below100 support.
13461         (andhi3): Add below100 support.
13462         (iorhi3): Add below100 support.
13463         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
13464
13465 2004-08-17  James E Wilson  <wilson@specifixinc.com>
13466
13467         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
13468         of VOIDmode for comparison code mode.
13469         * config/mips/mips.md: For conditional move patterns, use mode of
13470         first compare operand for comparison mode, instead of VOIDmode.
13471
13472         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
13473         normal and -ffast-math code.
13474
13475 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
13476
13477         PR c++/15871
13478         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
13479
13480 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
13481
13482         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
13483
13484 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
13485
13486         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
13487         for non Darwin targets.
13488         (*call_value_nonlocal_darwin64): Likewise.
13489
13490 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
13491
13492         * config/rs6000/rs6000.c (rs6000_function_value): Check for
13493         altivec mode for altivec return register.
13494
13495 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
13496
13497         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
13498         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
13499         * config/rs6000/rs6000.md: Include darwin.md.
13500         (builtin_setjmp_receiver): Add DImode case.
13501         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
13502         Darwin bits.
13503
13504 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
13505
13506         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
13507         trees.
13508         * tree-vectorizer.h: New File: Same.
13509         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
13510         * common.opt (ftree-vectorize): New flag to enable vectorization.
13511         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
13512         vectorization pass.
13513         * tree-data-ref.h (init_data_ref): Additional argument.
13514         (array_base_name_differ_p): Moved to tree-data-ref.c.
13515         * tree-data-ref.c (array_base_name_differ_p): Revised.
13516         (initialize_data_dependence_relation): Call array_base_name_differ_p
13517         with an extra argument.
13518         (analyze_all_data_dependences): Same.
13519         (init_data_ref): Additional argument is_read to set DR_IS_READ.
13520         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
13521         file.
13522         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
13523         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
13524         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
13525         vectorization pass.
13526         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
13527         (tree_ssa_loop_done): Call scev_finalize.
13528         (tree_vectorize): Define the new vectorization pass.
13529         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
13530         size of the vector they support (until support for multiple vector
13531         sizes is added to the vectorizer).
13532         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
13533         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
13534         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
13535         documentation.
13536
13537 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
13538
13539         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
13540         usage.
13541         (generate_protocol_list, handle_impent): Likewise.
13542
13543 2004-08-17  Roger Sayle  <roger@eyesopen.com>
13544
13545         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
13546         ensure that call_used_regs is a superset of both fixed_regs and
13547         call_really_used_regs.
13548
13549 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
13550
13551         PR target/17019
13552         * arm.md (addsi3_cbranch_scratch): Correct case labels.
13553
13554 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
13555
13556         PR middle-end/17036
13557         * fold-const.c (fold): Check for integer operand when
13558         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
13559         Pinski  <pinskia@physics.uc.edu>.
13560
13561 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
13562
13563         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
13564         No need to check if in a cross configuration.
13565         * configure: Regenerate.
13566
13567         * calls.c (precompute_register_parameters):
13568         Inline preserve_subexpressions_p ().
13569         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
13570         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
13571         Likewise.
13572         * expr.c (get_subtarget): Likewise.
13573         * rtl.h (preserve_subexpressions_p): Remove.
13574         * stmt.c (preserve_subexpressions_p): Remove.
13575
13576         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
13577         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
13578         Abort on gimplified cases.
13579
13580 2004-08-16  James E Wilson  <wilson@specifixinc.com>
13581
13582         * tree.h (VECTOR_FLOAT_TYPE_P): New.
13583         (FLOAT_TYPE_P): Use it.
13584         * c-typeck.c (build_binary_op): After convert calls, check for
13585         check for ERROR_MARK operands.
13586
13587 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
13588
13589         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
13590         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
13591         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
13592         (genobjs static pattern rule): Remove %.c dependency.
13593         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
13594         Rename rules; delete commands; fix dependencies.
13595         (mostlyclean): Do not delete temporary source copies.
13596         * configure.ac: Delete all references to BUILD_PREFIX and
13597         BUILD_PREFIX_1.
13598         * configure: Regenerate.
13599
13600         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
13601         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
13602         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
13603         with #ifndef GENERATOR_FILE so that nothing from those headers
13604         is used.
13605
13606         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
13607
13608 2004-08-16  Adam Nemet  <anemet@lnxw.com>
13609
13610         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
13611
13612 2004-08-16  Andrew Pinski  <apinski@apple.com>
13613
13614         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
13615         extraneous semicolon.
13616
13617 2004-08-16  Devang Patel  <dpatel@apple.com>
13618
13619         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
13620         * print-tree.c (print_node): Print DECL_PRESERVE_P.
13621         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
13622         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
13623         * target.h (struct gcc_target): New member, mark_decl_preserved.
13624         * hooks.c (hook_void_charptr): Rename to ...
13625         (hook_void_constcharptr): ... new name.
13626         * hooks.h (hook_void_charptr): Rename to ..
13627         (hook_void_constcharptr): ... new name.
13628         * tree.h (DECL_PRESERVE_P): New #define.
13629         (struct tree_decl): New member, preserve_flag.
13630         * varasm.c (assemble_start_function): Mark decl preserved.
13631         (assemble_variable): Same.
13632         * darwin.c (darwin_mark_decl_preserved): New function.
13633         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
13634         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
13635         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
13636
13637 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
13638
13639         * c-decl.c (grokdeclarator): Allow for function definition where
13640         innermost declarator has attributes.
13641
13642 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
13643
13644         * except.c (get_exception_filter, build_post_landing_pads,
13645         dw2_build_landing_pads): Use target-specific mode for 'filter'.
13646         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
13647         * target.h (eh_return_filter_mode): New field added.
13648         * targhooks.c (default_eh_return_filter_mode): Defined.
13649         * targhooks.h (default_eh_return_filter_mode): Declared.
13650         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
13651
13652 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
13653
13654         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
13655         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
13656         * configure: Regenerate.
13657
13658 2004-08-16  Stan Shebs  <shebs@apple.com>
13659
13660         Basic support for 64-bit Darwin.
13661         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
13662         (machopic_legitimize_pic_address): Similarly, plus use Pmode
13663         instead of SImode.
13664         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
13665         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
13666         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
13667         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
13668         (PROCESSOR_DEFAULT64): Define.
13669         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
13670         Darwin.
13671         * config/rs6000/rs6000.md: Include darwin.md.
13672         (builtin_setjmp_receiver): Add DImode case.
13673         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
13674         Darwin.
13675         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
13676         (rs6000_emit_move): Add DImode case to Darwin bits.
13677         (machopic_output_stub): Use .quad if 64-bit.
13678         * invoke.texi: Document -m32 and -m64.
13679
13680 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
13681
13682         * doc/extend.texi (AltiVec builtins): Document additional differences
13683         from the Motorola AltiVec PIM.
13684
13685 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
13686
13687         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
13688         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
13689         (struct tree_common): Update public_flag documentation.
13690
13691 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
13692
13693         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13694         Check for artificial variables, not is_gimple_tmp_var.
13695         * tree-ssa-live.c (var_union): Likewise.
13696
13697 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
13698
13699         * calls.c (load_register_parameters): Remove spurious FIXME token.
13700
13701 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
13702
13703         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
13704         (c-lang.o): Depend on c-objc-common.h.
13705         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
13706         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
13707         * c-lang.c: Include c-objc-common.h.
13708         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
13709         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
13710         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
13711         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
13712         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
13713         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
13714         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
13715         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
13716         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
13717         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
13718         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
13719         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
13720         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
13721         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
13722         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
13723         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
13724         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
13725         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
13726         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
13727         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
13728         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
13729         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
13730         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
13731         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
13732         Move to c-objc-common.h.
13733         * c-objc-common.c: Include c-objc-common.h.
13734         * c-objc-common.h: New file.
13735
13736 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
13737             Andrew Pinski  <pinskia@physics.uc.edu>
13738
13739         PR target/14931
13740         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
13741         style.
13742
13743 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
13744
13745         * tree.h (build_int_cst): New.
13746         (build_int_2): Remove.
13747         * tree.c (build_int_2): Remove.
13748         (build_int_cst): New.
13749         (make_vector_type, build_common_tree_nodes,
13750         build_common_tree_nodes_2): Use build_int_cst.
13751         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
13752         expand_builtin_strpbrk, expand_builtin_fputs,
13753         build_string_literal, expand_builtin_printf,
13754         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
13755         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
13756         fold_builtin_isdigit, simplify_builtin_strstr,
13757         simplify_builtin_strpbrk, fold_builtin_fputs,
13758         simplify_builtin_sprintf): Use build_int_cst.
13759         * c-common.c (start_fname_decls, fix_string_type,
13760         c_common_nodes_and_builtins, c_init_attributes,
13761         shorten_compare): Likewise.
13762         * c-decl.c (complete_array_type,
13763         check_bitfield_type_and_width): Likewise.
13764         * c-lex.c (interpret_integer, lex_charconst): Likewise.
13765         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
13766         * c-pretty-print.c (pp_c_integer_constant): Likewise.
13767         * c-typeck.c (really_start_incremental_init, push_init_level,
13768         set_nonincremental_init_from_string): Likewise.
13769         * calls.c (load_register_parameters): Likewise.
13770         * convert.c (convert_to_pointer): Likewise.
13771         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
13772         build_fn_info_type, build_ctr_info_value, build_gcov_info):
13773         Likewise.
13774         * except.c (init_eh, assign_filter_values, assign_filter_values):
13775         Likewise.
13776         * expmed.c (store_fixed_bit_field, extract_bit_field,
13777         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
13778         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
13779         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
13780         * expr.c (convert_move, emit_group_load, emit_group_store,
13781         expand_assignment, store_constructor, store_field,
13782         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
13783         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
13784         invert_truthvalue, optimize_bit_field_compare,
13785         decode_field_reference, all_ones_mask_p, constant_boolean_node,
13786         fold_div_compare, fold, fold_read_from_constant_string,
13787         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
13788         * function.c (assign_parm_setup_block): Likewise.
13789         * stmt.c (shift_return_value, expand_end_case_type,
13790         estimate_case_costs): Likewise.
13791         * stor-layout.c (layout_type, initialize_sizetypes,
13792         set_min_and_max_values_for_integral_type): Likewise.
13793         * tree-chrec.c (chrec_fold_multiply_poly_poly,
13794         reset_evolution_in_loop): Likewise.
13795         * tree-chrec.h (build_polynomial_chrec): Likewise.
13796         * tree-complex.c (build_replicated_const): Likewise.
13797         * tree-eh.c (honor_protect_cleanup_actions,
13798         lower_try_finally_onedest, lower_try_finally_copy,
13799         lower_try_finally_switch): Likewise.
13800         * tree-mudflap.c (mf_build_string, mx_register_decls,
13801         mudflap_register_call, mudflap_enqueue_constant): Likewise.
13802         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
13803         * tree-pretty-print.c (dump_generic_node): Likewise.
13804         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
13805         Likewise.
13806         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
13807         * tree-ssa-loop-niter.c (number_of_iterations_cond,
13808         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
13809         Likewise.
13810
13811         * config/alpha/alpha.c (alpha_initialize_trampoline,
13812         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
13813         * config/arm/arm.c (arm_get_cookie_size): Likewise.
13814         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
13815         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
13816         * config/i860/i860.c (i860_va_start): Likewise.
13817         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
13818         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
13819         mips_gimplify_va_arg_expr): Likewise.
13820         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
13821         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
13822         add_compiler_branch_island): Likewise.
13823         * config/s390/s390.c (s390_va_start): Likewise.
13824         * config/sh/sh.c (sh_va_start): Likewise.
13825         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
13826         Likewise.
13827         * config/xtensa/xtensa.c (xtensa_va_start,
13828         xtensa_gimplify_va_arg_expr): Likewise.
13829
13830         * objc/objc-act.c (build_objc_string_object,
13831         build_objc_symtab_template, init_def_list, init_objc_symtab,
13832         init_module_descriptor, generate_static_references,
13833         build_selector_translation_table, get_proto_encoding,
13834         build_typed_selector_reference, build_selector_reference,
13835         build_next_objc_exception_stuff,
13836         build_method_prototype_list_template, generate_descriptor_table,
13837         generate_protocols, build_protocol_initializer,
13838         build_ivar_list_template, build_method_list_template,
13839         build_ivar_list_initializer, generate_ivars_list,
13840         generate_dispatch_table, generate_protocol_list,
13841         build_category_initializer, build_shared_structure_initializer,
13842         generate_shared_structures, handle_impent,
13843         generate_objc_image_info): Use build_int_cst.
13844
13845 2004-08-15  Ben Elliston  <bje@au.ibm.com>
13846
13847         * vec.h: Comment improvements.
13848
13849 2004-08-14  Roger Sayle  <roger@eyesopen.com>
13850
13851         * c-common.c (shorten_compare, pointer_int_sum,
13852         c_common_truthvalue_conversion, boolean_increment): Replace calls
13853         to build with calls to buildN.
13854         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
13855         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
13856         gimplify_switch_stmt): Likewise.
13857         * c-typeck.c (default_function_array_conversion,
13858         build_component_ref, build_array_ref, build_function_call,
13859         pointer_diff, build_unary_op, build_conditional_expr,
13860         build_compound_expr, build_modify_expr, c_finish_goto_label,
13861         c_finish_goto_ptr, c_finish_return, c_finish_loop,
13862         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
13863         build_binary_op): Likewise.
13864
13865 2004-08-15  Steven Bosscher  <stevenb@suse.de>
13866
13867         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
13868
13869 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13870
13871         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
13872         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
13873         * fixinc/fixincl.x: Rebuilt.
13874
13875 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
13876
13877         * config/mips/mips-protos.h (mips_symbolic_constant_p)
13878         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
13879         (mips_small_data_pattern_p): Declare.
13880         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
13881         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
13882         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
13883         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
13884         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
13885         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
13886         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
13887         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
13888         (pc_or_label_operand, call_insn_operand, move_operand)
13889         (consttable_operand, symbolic_operand, general_symbolic_operand)
13890         (global_got_operand, local_got_operand, stack_operand)
13891         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
13892         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
13893         (mips_small_data_pattern_p): Replace previous small_data_pattern
13894         predicate.  Turn into a bool () (rtx) function.
13895         * config/mips/predicates.md: New file.
13896         * config/mips/mips.md: Include it.  Use the target-independent
13897         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
13898         trap_comparison_operator and equality_op to equality_operator.
13899         Replace uses of small_int with the equivalent const_arith_operand.
13900         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
13901         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
13902         to fcc_reload_operand.
13903         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
13904
13905 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13906
13907         PR libstdc++/17005 partial fix.
13908         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
13909         except when generating ANSI/C89 code.
13910
13911 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
13912
13913         * c-common.c (shorten_compare): Use force_fit_type directly.
13914
13915 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
13916             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
13917             Dave Korn  <dk@artimi.com>
13918
13919         * doc/install.texi (Building): Avoid duplicate reference to GNU
13920         make requirement.
13921         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
13922
13923 2004-08-14  Richard Henderson  <rth@redhat.com>
13924
13925         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
13926         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
13927
13928 2004-08-13  Richard Henderson  <rth@redhat.com>
13929
13930         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
13931         for constant_call_address_operand.
13932         (call_value_pop_1, call_value_1): Likewise.
13933         (sibcall_value_1, call_value_1_rex64): Likewise.
13934
13935 2004-08-13  James E Wilson  <wilson@specifixinc.com>
13936
13937         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
13938         Correct mode from SFmode to DFmode.
13939
13940 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
13941
13942         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
13943         __cstring_object and __image_info sections with the no_dead_strip
13944         attribute.
13945
13946 2004-08-13  Roger Sayle  <roger@eyesopen.com>
13947             David Billinghurst  <David.Billinghurst@riotinto.com>
13948
13949         PR libgfortran/15930
13950         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
13951         * fixinc/fixincl.x: Regenerate.
13952         * fixinc/tests/base/internal/math_core.h: New file.
13953
13954 2004-08-13  Richard Henderson  <rth@redhat.com>
13955
13956         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
13957         (dbxout_function_end): Remove ifdefs for it.
13958         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
13959
13960 2004-08-13  Richard Henderson  <rth@redhat.com>
13961
13962         * Makefile.in (insn-preds.o): Depend on TREE_H.
13963         * genpreds.c (write_insn_preds_c): Include tree.h.
13964         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
13965         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
13966         const48_operand, and_operand, or_operand, mode_width_operand,
13967         mode_mask_operand, mul8_operand, const0_operand,
13968         hard_fp_register_operand, hard_int_register_operand,
13969         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
13970         samegp_function_operand, direct_call_operand, small_symbolic_operand,
13971         global_symbolic_operand, call_operand, symbolic_operand,
13972         dtp16_symbolic_operand, dtp32_symbolic_operand,
13973         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
13974         gottp_symbolic_operand, alpha_comparison_operator,
13975         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
13976         signed_comparison_operator, alpha_fp_comparison_operator,
13977         divmod_operator, fix_operator, aligned_memory_operand,
13978         unaligned_memory_operand, reg_or_unaligned_mem_operand,
13979         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
13980         reg_no_subreg_operand, addition_operation): Move to predicates.md.
13981         (reg_or_const_int_operand): Remove.  Replace all users with
13982         reg_or_cint_operand.
13983         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
13984         (resolve_reload_operand): Split out of aligned_memory_operand.
13985         * config/alpha/alpha-protos.h: Update for exports.
13986         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
13987         * config/alpha/alpha.md: Include predicates.md.
13988         * config/alpha/predicates.md: New file.
13989
13990 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
13991
13992         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
13993         fields with a pointer to the instruction definition.
13994         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
13995         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
13996         (write_attr_case, write_const_num_delay_slots): Update accordingly.
13997         (write_attr_case, write_const_num_delay_slots): Write the name of
13998         an insn next to its case statement.
13999         * genoutput.c (data): Add a filename field.
14000         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
14001         (output_insn_data): Print the location of each insn definition.
14002         * genrecog.c (write_action): Print the name of an insn above
14003         the statement that returns its code.
14004
14005 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
14006
14007         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
14008         * config/libgloss.h: Likewise.
14009         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
14010         * c4x/c4x-modes.def: Likewise.
14011         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
14012         (c4x_rptb_nop_p): Likewise.
14013         (c4x_rptb_valid_p): Likewise.
14014         (c4x_rptb_insert): Likewise.
14015         (c4x_address_conflict): Likewise.
14016         * config/c4x/c4x.md: Likewise.
14017         * config/frv/frv.md: Likewise.
14018         * config/i386/athlon.md: Likewise.
14019         * config/i386/i386.md: Likewise.
14020         * config/i386/predicates.md: Likewise.
14021         * config/ia64/ia64.c: Likewise.
14022         * config/ia64/itanium1.md: Likewise.
14023         * config/ia64/itanium2.md: Likewise.
14024         * config/iq2000/iq2000.md: Likewise.
14025         * config/mcore/mcore.c: Likewise.
14026         * config/mips/mips.c: Likewise.
14027         * config/mips/r3900.h: Likewise.
14028         * config/mips/sb1.md: Likewise.
14029         * config/pa/milli64.S: Likewise.
14030         * config/pa/pa.c: Likewise.
14031         * config/pa/pa.h: Likewise.
14032         * config/rs6000/8540.md: Likewise.
14033
14034 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
14035
14036         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
14037
14038 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
14039
14040         * sh.md (cbranch define_delay) Use cond_delay_slot for
14041         non-anulled condition too.
14042
14043 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
14044
14045         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
14046         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
14047         any_parallel_operand, lmw_operation, stmw_operation,
14048         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
14049         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
14050         any_parallel_operand.
14051         (return_and_restore_fpregs_{si,di}): Same.
14052
14053 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
14054
14055         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
14056         if pred->singleton != PARALLEL, issue a warning and pretend it was.
14057         Also issue a warning for any predicate we don't know about.
14058
14059 2004-08-12  Richard Henderson  <rth@redhat.com>
14060
14061         * config/i386/i386.c (internal_label_prefix): Export.
14062         (internal_label_prefix_len, struct ix86_address,
14063         ix86_decompose_address, maybe_get_pool_constant,
14064         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
14065         memory_address_length): Export.
14066         (any_fp_register_operand, fp_register_operand,
14067         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
14068         x86_64_general_operand, x86_64_szext_general_operand,
14069         x86_64_nonmemory_operand, x86_64_movabs_operand,
14070         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
14071         x86_64_zext_immediate_operand, const_int_1_31_operand,
14072         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
14073         tls_symbolic_operand, global_dynamic_symbolic_operand,
14074         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
14075         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
14076         constant_call_address_operand, const0_operand, const1_operand,
14077         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
14078         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
14079         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
14080         general_no_elim_operand, nonmemory_no_elim_operand,
14081         index_register_operand, q_regs_operand, flags_reg_operand,
14082         non_q_regs_operand, zero_extended_scalar_load_operand,
14083         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
14084         ix86_comparison_operator, ix86_carry_flag_operator,
14085         fcmov_comparison_operator, promotable_binary_operator,
14086         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
14087         mult_operator, div_operator, arith_or_logical_operator,
14088         memory_displacement_operand, cmpsi_operand, long_memory_operand,
14089         aligned_operand): Move to predicates.md as define_predicates.
14090         (tls_symbolic_operand_1): Remove.
14091         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
14092         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
14093         (legitimize_address): Merge tls_symbolic_operand contents.
14094         (ix86_expand_move): Likewise.
14095         * config/i386/i386-protos.h: Update for exports.
14096         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
14097         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
14098         * config/i386/i386.md: Include predicates.md.
14099         * config/i386/predicates.md: New file.
14100
14101 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
14102
14103         PR c++/16924
14104         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
14105         SYMBOL_REF_DECL.
14106         (i386_pe_mark_dllimport): Likewise.
14107         (i386_pe_encode_section_info): Likewise, when overriding
14108         dllimport attribute.
14109
14110 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
14111
14112         * configure.ac: When testing for flex, nm, ar, and bison, check
14113         that they will actually be built.
14114         * configure: Regenerate.
14115
14116 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
14117
14118         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
14119         (MOVE_MAX_PIECES): Define.
14120
14121 2004-08-12  Devang patel  <dpatel@apple.com>
14122
14123         * dbxout.c (dbxout_begin_prologue): New function.
14124         (dbx_debug_hooks): Use new begin prologue hook.
14125         (dbxout_function_end): Emit N_ENSYM.
14126         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
14127
14128 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
14129
14130         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
14131         argument is float*.
14132
14133         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
14134         for vec_dss.
14135
14136         * doc/extend.texi (AltiVec builtins): Fix description for recent
14137         changes.  Update operation list to match current support.
14138
14139 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
14140
14141         * config/s390/s390.c (struct s390_frame_layout): New struct as element
14142         of struct machine_function.
14143         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
14144         changed all uses.
14145         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
14146         changed all uses.
14147         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
14148         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
14149         (s390_frame_area, s390_register_info): New functions.
14150         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
14151         for base register.
14152         (s390_return_addr_rtx, s390_return_address_offset)
14153         (s390_va_start, s390_gimplify_va_arg)
14154         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
14155         layouts.
14156         (s390_frame_info): Functionality partly moved to s390_register_info.
14157         Made adaptions for new stack layout.
14158         (save_gprs, restore_gprs): Changed meaning of second parameter and
14159         adapted all callers.
14160
14161         * config/s390/s390.h (s390_backchain_string): New global variable.
14162         (MASK_BACKCHAIN): Removed definition.
14163         (TARGET_BACKCHAIN): Changed check.
14164         (TARGET_KERNEL_BACKCHAIN): New macro.
14165         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
14166         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
14167         "kernel-backchain".
14168         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
14169
14170         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
14171         as condition.  Adjusted for new stack layout.
14172
14173         * doc/invoke.texi: Added documentation for new option
14174         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
14175         "-mno-backchain".
14176
14177 2004-08-12  Paul Brook  <paul@codesourcery.com>
14178
14179         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
14180         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
14181
14182 2004-08-12  David Daney  <ddaney@avtrex.com>
14183
14184         * java/gcj.texi:  Add subsection on signal usage.
14185
14186 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
14187
14188         * expr.c (move_by_pieces): Set alignment for move to minimum of
14189         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
14190         alignment, but not less than the original alignment.
14191         (move_by_pieces_ninsns): Same.
14192         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
14193         (store_by_pieces_1): Same.
14194
14195 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
14196
14197         PR tree-optimization/16867
14198         * tree.c (is_global_var): New function.
14199         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
14200         Call is_global_var.
14201         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
14202         Update all users.
14203         (is_global_var): Declare.
14204         * tree-dfa.c (dump_variable): Display global and addressable
14205         attributes.
14206         (add_referenced_var): Clarify documentation when marking
14207         variables call-clobbered.
14208         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
14209         instead of needs_to_live_in_memory.
14210         (mark_call_clobbered): If the variable is a tag, mark it
14211         DECL_EXTERNAL.
14212         * tree-gimple.c (is_gimple_reg): Don't check for
14213         TREE_ADDRESSABLE.
14214         (is_gimple_non_addressable): Likewise.
14215         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
14216         needs to be marked call-clobbered.
14217         (setup_pointers_and_addressables): Call is_global_var instead
14218         of needs_to_live_in_memory.
14219         * tree-ssa-dce.c (need_to_preserve_store): Remove.
14220         Update all users with is_global_var.
14221         (mark_stmt_if_obviously_necessary): Fix processing of aliased
14222         stores.  Don't check the virtual definitions.  Rather, check
14223         whether the store is going into global memory.
14224         (find_obviously_necessary_stmts): Get the symbol from the PHI
14225         result.
14226         * tree-ssa-operands.c (get_call_expr_operands): Do not add
14227         clobbering may-defs if the call does not have side effects.
14228
14229 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
14230
14231         PR c++/16276
14232         * output.h (default_function_rodata_section,
14233         default_no_function_rodata_section): New prototypes.
14234         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
14235         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
14236         (TARGET_ASM_OUT): Add it.
14237         * varasm.c (default_function_rodata_section,
14238         default_no_function_rodata_section): New functions.
14239         * final.c (final_scan_insn): Call
14240         targetm.asm_out.function_rodata_section instead of
14241         readonly_data_section.
14242         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
14243         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
14244         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
14245         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
14246         Likewise.
14247         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
14248         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
14249         Likewise.
14250         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
14251         Likewise.
14252         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
14253         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
14254         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
14255
14256 2004-08-12  Paul Brook  <paul@codesourcery.com>
14257
14258         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
14259         frame info.
14260         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
14261         DWARF2_UNWIND_INFO.
14262
14263 2004-08-12  Ben Elliston  <bje@au.ibm.com>
14264
14265         PR target/16286
14266         * config/rs6000/altivec.h: Change vector to __vector throughout.
14267         (Except for the `vector' macro itself).
14268
14269 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
14270
14271         * genpreds.c: Add capability to generate predicate bodies as
14272         well as function prototypes.  Write function prototypes for
14273         the generic predicates too.
14274         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
14275         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
14276         (write_match_code, write_predicate_expr, write_one_predicate_function)
14277         (parse_option): New functions.
14278         (output_predicate_decls): Delete.
14279         (main): Read the machine description, process DEFINE_PREDICATE or
14280         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
14281         as appropriate.
14282
14283         * genrecog.c (struct decision_test): Replace index with
14284         struct pred_data pointer.
14285         (next_index): Remove, unused.
14286         (pred_table, preds, special_mode_pred_table): Delete.
14287         (compute_predicate_codes, process_define_predicate): New functions.
14288         (validate_pattern, add_to_sequence, write_switch): Update for
14289         new data structures.
14290         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
14291         Check both error_count and have_error.
14292
14293         * gensupport.c (in_fname, first_predicate): New globals.
14294         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
14295         (predicate_table, last_predicate, old_pred_table)
14296         (old_special_pred_table): New statics.
14297         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
14298         (add_predicate, init_predicate_table): New functions.
14299         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
14300         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
14301         it or max_include_len.  Call init_predicate_table.
14302         (read_rtx): Run the predicate queue after the attribute queue
14303         but before all the others.
14304         * gensupport.h (in_fname, struct pred_data, first_predicate)
14305         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
14306         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
14307         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
14308         * dummy-conditions.c: Don't include bconfig.h, system.h,
14309         coretypes.h, tm.h, or system.h.  Do include stddef.h.
14310         Duplicate declaration of struct c_test from gensupport.h.
14311
14312         * Makefile.in (OBJS-common): Add insn-preds.o.
14313         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
14314         (insn-preds.c, insn-preds.o): New rules.
14315         (s-preds): Also generate insn-preds.c.
14316         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
14317         Update dependencies.
14318         (print-rtl.o, print-rtl1.o): Correct dependencies.
14319
14320         * recog.h: Delete prototypes of predicate functions.
14321
14322         * doc/md.texi (Predicates): New section with complete
14323         documentation of operand/operator predicates.  Remove some
14324         incomplete documentation of predicates from other places.
14325         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
14326         PREDICATE_CODES; indicate that both are deprecated in favor
14327         of define_predicate/define_special_predicate.
14328
14329         * config/ia64/ia64.c: All predicate function definitions moved
14330         to ia64.md, except
14331         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
14332         (ia64_expand_load_address, ia64_expand_move):
14333         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
14334
14335         * config/ia64/ia64.md: All predicates now defined here.
14336         (symbolic_operand): Is now a special predicate.
14337
14338         * config/ia64/ia64.h: Declare ia64_section_threshold.
14339         (PREDICATE_CODES): Delete.
14340
14341 2004-08-12  Richard Henderson  <rth@redhat.com>
14342
14343         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
14344         * c-semantics.c (add_stmt): Set it.
14345         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
14346         before instantiating a variable sized type.
14347
14348 2004-08-12  Richard Henderson  <rth@redhat.com>
14349
14350         * stor-layout.c (round_up, round_down): Move ...
14351         * fold-const.c (round_up, round_down): ... here.  Use
14352         multiple_of_p to avoid any arithmetic at all.
14353
14354 2004-08-12  Richard Henderson  <rth@redhat.com>
14355
14356         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
14357         (gimplify_init_ctor_preeval_1): New.
14358         (gimplify_init_ctor_preeval): New.
14359         (gimplify_init_ctor_eval): New.
14360         (gimplify_init_constructor): Use them.  Always gimplify the LHS
14361         object first.
14362
14363 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
14364
14365         (This patch is part of merge of objc-improvements-branch
14366         into mainline.)
14367
14368         * doc/frontends.texi: Mention Objective-C++ in addition to
14369         Objective-C.
14370         * doc/install.texi: Add 'obj-c++' to list of configurable
14371         languages.
14372         * doc/invoke.texi: Rename Objective-C option headings to
14373         indicate they also apply to Objective-C++.  List file
14374         extensions for Objective-C++ sources.  Mention that
14375         ObjC and ObjC++ compilations may also use C and C++ options,
14376         respectively.  Point users to doc/standards.texi for
14377         further info on ObjC and ObjC++.
14378         * doc/sourcebuild.texi: Mention the objcp/ directory and
14379         the Objective-C++ sources it contains.
14380         * doc/standards.texi: Update link to Apple ObjC site;
14381         add link to gcc readings.html WWW doc.
14382
14383 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
14384
14385         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
14386         and 2004-07-14 changes.
14387
14388 2004-08-12  Paul Brook  <paul@codesourcery.com>
14389
14390         * doc/invoke.texi: Fix typo.
14391
14392 2004-08-11 Devang Patel  <dpatel@apple.com>
14393
14394         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
14395         and -no_dead_strip_inits_and_terms.
14396         (LINK_SPEC): Same.
14397         * doc/invoke.texi (Darwin Options): Document -dead_strip and
14398         -no_dead_strip_inits_and_terms.
14399
14400 2004-08-11  Paul Brook  <paul@codesourcery.com>
14401
14402         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
14403         (arm_load_pic_register): ... to this.
14404         * config/arm/arm.c (arm_finalize_pic): Rename ...
14405         (arm_load_pic_register): ... to this.  Always output insns at the
14406         current location.  Load via low reg in thumb mode.
14407         (arm_expand_prologue): Call arm_load_pic_register.
14408         (thumb_expand_prologue): Ditto.
14409         * config/arm/arm.h (FINALIZE_PIC): Remove.
14410         * config/arm/arm.md (builtin_setjmp_receiver): Call
14411         arm_load_pic_register.
14412
14413 2004-08-11  Paul Brook  <paul@codesourcery.com>
14414
14415         * arm.c (thumb_force_lr_save): Add prototype.
14416         (thumb_compute_save_reg_mask): New function.
14417         (thumb_find_work_register): New function.
14418         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
14419         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
14420         Don't clobber r3 when removing pretend args.
14421         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
14422         (thumb_output_function_prologue): Use new functions.
14423         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
14424         * arm.h (THUMB_REG_PUSHED_P): Remove.
14425
14426 2004-08-11  James E Wilson  <wilson@specifixinc.com>
14427
14428         PR rtl-optimization/16490
14429         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
14430         global_live_at_end for new basic block if already set for other blocks.
14431
14432 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
14433
14434         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
14435
14436         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
14437         (mfcr rlwinm rlwinm patterns): Set length to 12.
14438
14439 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
14440
14441         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
14442         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
14443         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
14444         (start_ssa_stmt_operands): Delete.
14445         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
14446         struct stmt_operands_d.
14447         (build_ssa_operands): New extern entry point.
14448         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
14449         building code, replace with create_ssa_artficial_load_stmt().
14450         * tree-ssa-operands.c (struct voperands_d): Delete.
14451         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
14452         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
14453         (free_uses, free_defs, free_vuses, free_v_may_defs,
14454         free_v_must_defs): Remove dealloc parameter.
14455         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
14456         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
14457         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
14458         vector comparisons, ssa_name reuse, and allocations here.
14459         (verify_start_operands): Delete.
14460         (finalize_ssa_stmt_operands): Set new operands by calling finalize
14461         routines.
14462         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
14463         (append_def, append_usei): Simplify to simple accumulation.
14464         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
14465         duplicates and simple accumulation.
14466         (free_ssa_operands): Free vectors in a stmt_operand structure.
14467         (build_ssa_operands): New. Create a new stmt_operand structure from
14468         a stmt and an old set of stmt_operands.
14469         (get_stmt_operands): Simplify and call build_ssa_operands.
14470         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
14471         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
14472         add_call_read_ops): Don't pass prev_vops around anymore.
14473         (note_addressable): Return if no stmt annotation.
14474         (copy_virtual_operands): Access v_may_def operands through a struct.
14475         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
14476         hash tables without treating the stmt as a real stmt.
14477         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
14478         v_may_def def and use through a struct instead of 2 array elements.
14479         (struct v_may_def_optype_d): Use v_may_def_operand_type.
14480         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
14481
14482 2004-08-11  Nick Clifton  <nickc@redhat.com>
14483
14484         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
14485         this funciton's behaviour.  Return true when the current function
14486         has a section attribute and -mlong-calls is in effect.
14487         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
14488         short-call marker when -mlong-calls is in effect and the function
14489         has a section attribute.
14490
14491 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
14492
14493         * stmt.c (expand_return): If asked to return the RESULT_DECL,
14494         just call expand_value_return on result_rtl.
14495
14496 2004-08-10  Richard Henderson  <rth@redhat.com>
14497
14498         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
14499         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
14500         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
14501         (add_location_or_const_value_attribute): ... not here.  Use
14502         loc_descriptor_from_tree if possible.
14503         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
14504         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
14505         values specially.
14506         (loc_descriptor_from_tree): New.  Update callers.
14507         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
14508         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
14509         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
14510         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
14511         and BUILT_IN_STACK_RESTORE.
14512         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
14513         * stmt.c (expand_stack_alloc): Remove.
14514         * tree-mudflap.c (mx_register_decls): Don't look for
14515         BUILT_IN_STACK_ALLOC.
14516         * tree-nested.c (convert_local_reference): Likewise.
14517         * tree.h (DECL_VALUE_EXPR): New.
14518
14519 2004-08-10  Richard Henderson  <rth@redhat.com>
14520
14521         * stor-layout.c (round_up): Check for 0/1 before dividing.
14522         (round_down): Likewise.
14523
14524         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
14525
14526 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
14527
14528         * config.gcc (arm*-*-eabi*): New target.
14529         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
14530         (TARGET_LIB_INT_CMP_BIASED): Likewise.
14531         * expmed.c (expand_divmod): Try a two-valued divmod function as a
14532         last resort.
14533         * gthr.h: Remove bogus tokens at end of #pragma.
14534         * optabs.c (expand_twoval_binop_libfunc): New function.
14535         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
14536         (prepare_float_lib_cmp): Try reversing the condition.
14537         (debug_optab_libfuncs): New function.
14538         * optabs.h (expand_twoval_binop_libfunc): Declare.
14539         * config/arm/arm.c (arm_init_libfuncs): New function.
14540         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
14541         (TARGET_INIT_LIBFUNCS): Define it.
14542         * config/arm/arm.h (TARGET_BPABI): New macro.
14543         * config/arm/arm-protos.h
14544         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
14545         * config/arm/bpabi.S: New file.
14546         * config/arm/bpabi.c: Likewise.
14547         * config/arm/bpabi.h: Likewise.
14548         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
14549         (__aeabi_drsub): Likewise.
14550         (__aeabi_dsub): Likewise.
14551         (__aeabi_dadd): Likewise.
14552         (__aeabi_ui2d): Likewise.
14553         (__aeabi_i2d): Likewise.
14554         (__aeabi_f2d): Likewise.
14555         (__aeabi_dmul): Likewise.
14556         (__aeabi_ddiv): Likewise.
14557         (__aeabi_cdrcmple): Likewise.
14558         (__aeabi_cdcmpeq): Likewise.
14559         (__aeabi_cdcmple): Likewise.
14560         (__aeabi_dcmpeq): Likewise.
14561         (__aeabi_dcmplt): Likewise.
14562         (__aeabi_dcmple): Likewise.
14563         (__aeabi_dcmpge): Likewise.
14564         (__aeabi_dcmpgt): Likewise.
14565         (__aeabi_dcmpun): Likewise.
14566         (__aeabi_d2iz): Likewise.
14567         (__aeabi_d2uiz): Likewise.
14568         (__aeabi_d2f): Likewise.
14569         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
14570         (__aeabi_frsub): Likewise.
14571         (__aeabi_fsub): Likewise.
14572         (__aeabi_fadd): Likewise.
14573         (__aeabi_ui2f): Likewise.
14574         (__aeabi_i2f): Likewise.
14575         (__aeabi_fmul): Likewise.
14576         (__aeabi_fdiv): Likewise.
14577         (__aeabi_cfrcmple): Likewise.
14578         (__aeabi_cfcmpeq): Likewise.
14579         (__aeabi_cfcmple): Likewise.
14580         (__aeabi_fcmpeq): Likewise.
14581         (__aeabi_fcmplt): Likewise.
14582         (__aeabi_fcmple): Likewise.
14583         (__aeabi_fcmpge): Likewise.
14584         (__aeabi_fcmpgt): Likewise.
14585         (__aeabi_fcmpun): Likewise.
14586         (__aeabi_f2iz): Likewise.
14587         (__aeabi_f2uiz): Likewise.
14588         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
14589         (__aeabi_uidivmod): New function or alias.
14590         (__aeabi_idivmod): Likewise.
14591         (__aeabi_idiv0): Likewise.
14592         (__aeabi_ldiv0): Likewise.
14593         (__aeabi_llsr): Likewise.
14594         (__aeabi_lasr): Likewise.
14595         (__aeabi_llsl): Likewise.
14596         (bpabi.S): Include it.
14597         * config/arm/libgcc-bpabi.ver: New file.
14598         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
14599         (LINK_SPEC): Remove.
14600         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
14601         __aeabi_ulcmp.
14602         * config/arm/t-bpabi: New file.
14603         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
14604         (TARGET_LIB_INT_CMP_BIASED): Likewise.
14605
14606 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
14607
14608         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
14609         * config/rs6000/rs6000.md (clrmemsi): New pattern.
14610         * config/rs6000/rs6000.c (expand_block_clear): New function.
14611         (expand_block_move): Convert alignment to bits.  Use SImode and
14612         HImode for unaligned addresses if not STRICT_ALIGNMENT.
14613
14614 2004-08-10  Caroline Tice  <ctice@apple.com>
14615
14616         * varasm.c (unlikely_section_label): New global variable.
14617         (unlikely_text_section_name): New global variable.
14618         (text_section):  Remove alignment statement.
14619         (unlikely_text_section): Remove alignment statement; use
14620         unlikely_section_label rather than hard-coded string.
14621         (assemble_start_function): Initialize unlikely_section_label and
14622         unlikely_text_section_name;  make sure cold section is properly
14623         aligned at start of function; output unlikely_section_label if
14624         appropriate.
14625
14626 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
14627
14628         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
14629         * config/s390/s390.c (s390_canonicalize_comparison): New function.
14630         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
14631         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
14632         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
14633         ("*tmqi_mem"): Remove SUBREG from pattern.
14634         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
14635         ("*andsi3_cconly"): Likewise.
14636
14637 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
14638
14639         PR target/16909
14640         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
14641
14642 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
14643
14644         * doc/sourcebuild.texi (compat testing): Document available test
14645         framework commands.  Use the preferred spelling of DejaGnu.
14646
14647 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
14648
14649         * lambda.h: Add matrix type, and prototypes for remainder of
14650         matrix and vector functions.
14651         (lambda_vector_mult_const): New function.
14652         (lambda_vector_negate): Ditto.
14653         (lambda_vector_add): Ditto.
14654         (lambda_vector_add_mc): Ditto.
14655         (lambda_vector_copy): Ditto.
14656         (lambda_vector_zerop): Ditto.
14657         (lambda_vector_equal): Ditto.
14658         (lambda_vector_min_nz): Ditto.
14659         (lambda_vector_first_nz): Ditto.
14660         (lambda_vector_matrix_mult): Ditto.
14661         * lambda-mat.c: New file.
14662         * Makefile.in (lambda-mat.o): New.
14663
14664 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
14665
14666         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
14667         after linking stmt into the program.
14668         (bsi_remove): Don't call modify_stmt.
14669         * tree-complex.c (update_complex_assignment,
14670         expand_complex_comparison): Call modify_stmt after changing the stmt.
14671         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
14672         removing the stmt.
14673         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
14674         the stmt, and only if needed.
14675         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
14676         expression.
14677         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
14678         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
14679         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
14680         (eliminate_redundant_computations): Don't pass an annotation. Call
14681         modify_stmt rather than setting the annotation directly.
14682         (record_equivalences_from_stmt): Remove unused local 'j'.
14683         (cprop_operand): Take a stmt rather than an annotation as a parameter.
14684         Call modify_stmt.
14685         (cprop_into_stmt): Pass stmt rather than annotation.
14686         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
14687         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
14688         modify_stmt.
14689         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
14690
14691 2004-08-10  Jason Merrill  <jason@redhat.com>
14692
14693         PR middle-end/16948
14694         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
14695         the RESULT_DECL.
14696
14697 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
14698
14699         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
14700         hash function.
14701
14702 2004-08-10  Roger Sayle  <roger@eyesopen.com>
14703
14704         * config/mips/mips.md: New reciprocal square root patterns that
14705         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
14706
14707 2004-08-10  Paul Brook  <paul@codesourcery.com>
14708
14709         * config/arm/arm-protos.h (arm_set_return_address,
14710         thumb_set_return_address): Add prototypes.
14711         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
14712         * config/arm/arm.c (arm_compute_func_type,
14713         use_return_insn, arm_compute_save_reg0_reg12_mask,
14714         arm_compute_save_reg_mask, arm_output_function_prologue,
14715         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
14716         current_function_calls_eh_return.
14717         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
14718         old eh code.
14719         (arm_set_return_address, thumb_set_return_address): New functions.
14720         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
14721         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
14722         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
14723         (epilogue): Use the stackadj register.
14724         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
14725
14726 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
14727
14728         PR target/3144
14729         * expr.c (move_by_pieces_ninsns): Add max_size argument.
14730         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
14731         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
14732         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
14733         but using MOVE_RATIO.
14734         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
14735         (can_store_by_pieces): Change max_size type to unsigned int.
14736         (store_by_pieces_1): Likewise.  Pass max_size to
14737         move_by_pieces_ninsns.
14738         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
14739         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
14740         to move_by_pieces_ninsns.
14741         (STORE_BY_PIECES_P): Define.
14742         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
14743         to move_by_pieces_ninsns.
14744         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
14745
14746         * config/i386/i386.h (CLEAR_RATIO): Define.
14747
14748 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
14749
14750         * expr.c (expand_expr_real_1): Add back code that was not dead.
14751
14752 2004-08-09  Andrew Pinski  <apinski@apple.com>
14753
14754         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
14755         which is found to be compatible before returning the aliasing set.
14756
14757 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
14758
14759         * ggc-zone.c (struct alloc_zone): Add statistics counters.
14760         (always_collect): New flag.
14761         (ggc_alloc_zone_1): Update statistics support.  Don't include
14762         overhead in allocated counter.
14763         (sweep_pages): Update allocated counter for large pages.  Don'y
14764         include overhead.
14765         (ggc_collect_1): Always collect.
14766         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
14767         whether to collect.
14768         (SCALE, LABEL): New macros.
14769         (ggc_print_statistics): Add statistics support.
14770
14771 2004-08-09  Roger Sayle  <roger@eyesopen.com>
14772
14773         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
14774         (init_expmed): Fix potential overrun problem with "all.reg".
14775         (expand_sdiv2_pow2): Add an alternate implementation for signed
14776         division, if the target provides a suitable conditional move insn.
14777
14778 2004-08-09  Paul Brook  <paul@codesourcery.com>
14779         Richard Henderson  <rth@redhat.com>
14780
14781         * unwind-dw2.c (uw_install_context_1): Update target saved stack
14782         pointer.
14783
14784 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
14785
14786         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
14787         Check DATA limit only if there's no AS limit.  Ignore insanely
14788         low DATA limits.
14789         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
14790         but take care that the AS limit isn't overrun.
14791         * doc/invoke.texi: Update documentation of min-heapsize parameter.
14792
14793 2004-08-09  Jeff Law  <law@redhat.com>
14794
14795         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
14796         (tree-ssa-threadupdate.o): Add dependencies.
14797         * tree-ssa-threadupdate.c: New file.
14798         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
14799         (rewrite_vars_out_of_ssa): Remove prototype.
14800         (cleanup_tree_cfg): Returns a bool.
14801         * tree.h (thread_through_all_blocks): Prototype.
14802         * tree-outof-ssa.c  (SSANORM_*): Move into here.
14803         (remove_ssa_form): Now static.
14804         (rewrite_vars_out_of_ssa): Kill.
14805         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
14806         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
14807         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
14808         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
14809         anything was changed.
14810         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
14811         from the PHI's annotation rather than the edge associated with
14812         the new argument.
14813         * tree-ssa-dom.c (redirection_edges): Kill.
14814         (redirect_edges_and_update_ssa_graph): Kill.
14815         (tree_ssa_dominator_optimize): Do not reset forwardable flag
14816         for blocks anymore.  Do not initialize redirection_edges.
14817         Call thread_through_all_blocks.  Simplify code for cleanup
14818         of the CFG and iterating.  No longer call cleanup_tree_cfg
14819         outside the iteration loop.
14820         (thread_across_edge): No longer mess with forwardable blocks.
14821
14822 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
14823
14824         * explow.c (memory_address): Use memory_address_p.
14825         * recog.c (general_operand): Likewise.
14826         * regrename.c: No need to define REG_OK_STRICT.
14827
14828 2004-08-09  Steven Bosscher  <stevenb@suse.de>
14829
14830         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
14831         New timers.
14832         * gcse.c: Include timevar.h.
14833         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
14834         and global_copy_prop_count.
14835         (local_const_prop_count, local_copy_prop_count): New static globals.
14836         (gcse_main): Set the right timevar for each pass.
14837         (cprop_jump): Increment global_const_prop_count when a constant is
14838         propagated.  Add "GLOBAL" to dump output.
14839         (cprop_insn): Increment global_const_prop_count when a constant is
14840         propagated, or global_copy_prop_count when a copy is propagated.
14841         (do_local_cprop): Likewise for local_const_prop_count and
14842         local_copy_prop_count.
14843         (one_cprop_pass): Initialize const/cprop counters to zero.
14844         Print out results of local and global const/cprop separately.
14845         (bypass_block): Break over-length line.
14846         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
14847         for bb-reorder.o and tracer.o.
14848
14849 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
14850
14851         * Makefile.in (GTFILES): Remove stmt.c
14852         (stmt.o): Do not depend on gt-stmt.h.
14853         * emit-rtl.c (emit_line_note): Do not call
14854         set_file_and_line_for_stmt.
14855         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
14856         do everything.
14857         * function.c (free_after_parsing): Do not free STMT field.
14858         (allocate_struct_function): Do not call init_stmt_for_function.
14859         (assign_stack_temp_for_type): Do not accept values of keep
14860         other than 0 or 1.
14861         (init_temp_slots): Do not initialize removed variables.
14862         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
14863         and X_VAR_TEMP_SLOT_LEVEL fields.
14864         * rtl.h (set_file_and_line_for_stmt): Remove.
14865         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
14866         struct stmt_status, cond_stack, case_stack, nesting_stack,
14867         nesting_depth, emit_locus, set_file_and_line_for_stmt,
14868         same_case_target_p, init_stmt_for_function, emit_nop,
14869         expand_start_cond, expand_start_elseif, expand_start_else,
14870         expand_elseif, expand_end_cond): Remove.
14871         (preserve_subexpressions_p): Remove references to CFUN->STMT.
14872         (expand_start_case, expand_end_case_type): Remove, merge into...
14873         (expand_case): ... this one, including other bits from
14874         expand_expr_real_1.  Inline same_case_target_p.  Turn members
14875         of CASE_STACK into local variables.
14876         (emit_case_bit_tests): Inline same_case_target_p.
14877         (add_case_node): Add HEAD argument, return new head of the list,
14878         do not handle default label here.
14879         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
14880         expand_start_elseif, current_nesting_level, expand_start_case,
14881         expand_end_case_type, expand_end_case, add_case_node,
14882         init_stmt_for_function, expand_elseif): Remove prototypes.
14883         (expand_case): Add prototype.
14884
14885 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
14886
14887         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
14888
14889 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
14890
14891         * expr.c (var_rtx): Remove.
14892         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
14893         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
14894         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
14895         Abort.
14896         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
14897         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
14898         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
14899
14900 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
14901         Ayal Zaks <zaks@il.ibm.com>
14902
14903         * common.opt (freschedule-modulo-scheduled-loops): New flag.
14904         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
14905         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
14906         when -freschedule-modulo-scheduled-loops flag is not specified.
14907         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
14908         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
14909         More accurate placing of insn in row of partial schedule.
14910         (ps_insn_find_column): New function.
14911         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
14912         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
14913         (schedule_region): Use sched_is_disabled_for_current_region_p.
14914         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
14915
14916 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
14917
14918         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
14919         change.
14920
14921 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
14922
14923         * config/i386/i386.c (ix86_expand_clrmem): Properly call
14924         gen_strset for 64bit target.
14925
14926 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
14927
14928         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
14929
14930 2004-08-07  Jason Merrill  <jason@redhat.com>
14931
14932         Make return in memory explicit.
14933         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
14934         (assign_parm_find_data_types): Remove code for old front end
14935         invisible reference handling.
14936         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
14937         (expand_function_end): Likewise.
14938         * gimplify.c (gimplify_return_expr): Handle a dereferenced
14939         RESULT_DECL.
14940         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
14941         (declare_return_variable): Handle DECL_BY_REFERENCE.
14942         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
14943         (cp_genericize_r): Use convert_from_reference.
14944         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
14945         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
14946
14947         * c-common.c (c_warn_unused_result): Check TREE_USED before
14948         warning about a CALL_EXPR with an unused value.
14949
14950 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
14951
14952         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
14953         to the compiler.  Use -fshort-wchar by default.
14954
14955 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
14956
14957         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
14958         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
14959         threshhold.
14960         * doc/invoke.texi (param): Document min-crossjump-insns.
14961
14962 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
14963
14964         PR c/13282
14965         * c.opt (Wmissing-field-initializers): New option.
14966         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
14967         * c-typeck.c (pop_init_level): Guard the missing field warning with
14968         warn_missing_field_initializers rather than extra_warnings.
14969         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
14970         some of the explanation from...
14971         (-Wextra): ...here.  Say that the missing field warning can be
14972         seperately controlled by -Wmissing-field-initializers.
14973
14974 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
14975
14976         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
14977         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
14978         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
14979         * tree.def (ENTRY_VALUE_EXPR): Remove.
14980
14981 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
14982
14983         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
14984         the places where it is actually needed.  Don't use repz; stosb
14985         for -Os with sufficiently small constant sizes.
14986         For sufficiently small repz; stos{l,q} repeat counts use a sequence
14987         of stos{l,q} instructions instead.
14988
14989 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14990
14991         PR tree-optimization/16807
14992         * loop-iv.c (dump_iv_info): Dump invariants correctly.
14993         (iv_subreg, iv_extend): Express value of invariant purely in
14994         base field.
14995
14996 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
14997
14998         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
14999         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
15000
15001 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
15002
15003         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
15004         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
15005         pre_dec_operand.
15006         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
15007         pattern until reload is finished to allow better code generation
15008         and split them completely into separate instrunctions.
15009         (*andsi3_split): New pattern.
15010
15011 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
15012
15013         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
15014         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
15015         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
15016         * tree.h (handle_dll_attribute): Declare.  Test
15017         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
15018         * c-common.h (c_determine_visibility): Declare.
15019         * c-common.c (c_determine_visibility): New function.
15020         * c-decl.c (finish_decl): Use it.
15021         (finish_function): Likewise.
15022         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
15023         zero, by default.  Use #if, not #ifdef, to test it.
15024         * config/arm/arm.c (arm_attribute_table): Use
15025         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
15026         #if.
15027         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
15028         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
15029         to 1.
15030         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
15031         * config/i386/i386.c (ix86_attribute_table): Use
15032         handle_dll_attribute for dllimport/dllexport.  Test
15033         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
15034         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
15035         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
15036         it to 1.
15037         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
15038         with #if.
15039         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
15040         it to 1.
15041         * doc/extend.texi (dllexport): Clarify and correct documentation.
15042         (dllimport): Likewise.
15043         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
15044         handle_dll_attribute.
15045
15046 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15047
15048         * tree-ssa-loop-manip.c: New file.
15049         * Makefile.in (tree-ssa-loop-manip.o): Add.
15050         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
15051         Declare.
15052         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
15053         form.
15054         (tree_ssa_loop_done): Verify loop closed ssa form.
15055         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
15056
15057 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15058
15059         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
15060         pa_asm_output_aligned_local): New functions.
15061         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
15062         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
15063         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
15064         pa_asm_output_aligned_common.
15065         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
15066         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
15067         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
15068         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
15069         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
15070         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
15071         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
15072         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
15073         common data.
15074
15075 2004-08-05  Andrew Pinski  <apinski@apple.com>
15076
15077         * objc/objc-act.c (build_objc_string_object): Mark the address
15078         expression as constant.
15079
15080 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
15081
15082         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
15083         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
15084         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
15085
15086 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15087
15088         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
15089         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
15090         out, and associated obsolete comments.
15091
15092 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
15093
15094         * tree.h (force_fit_type): Return a tree, take three flags.
15095         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
15096         TREE_CONSTANT_OVERFLOW here.
15097         (int_const_binop, const_binop): Adjust.
15098         (size_int_type): Do sign extension here.
15099         (fold_convert_const, optimize_bit_field_compare,
15100         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
15101         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
15102         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
15103
15104 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15105
15106         PR tree-optimization/16864
15107         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
15108         for ssa names without default_def.
15109
15110 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
15111
15112         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
15113         frame pointer, restore eax with an ebp-relative address.
15114
15115 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
15116
15117         PR 14516
15118         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
15119         * c-common.h (make_rtl_for_local_static): Delete.
15120         * c-decl.c (shadow_tag_warned): Clean up comment.
15121         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
15122         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
15123         * c-semantics.c (make_rtl_for_local_static): Delete.
15124         * expr.c (init_block_move_fn): Use set_user_assembler_name.
15125         (init_block_clear_fn): Likewise.
15126         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
15127         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
15128         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
15129         * tree.h (make_decl_rtl): Remove second parameter.
15130         (set_user_assembler_name): New.
15131         * varasm.c (set_user_assembler_name): New.
15132         (make_decl_rtl): Remove second parameter.  Update callers in many
15133         files.
15134
15135 2004-08-05  Adam Nemet  <anemet@lnxw.com>
15136
15137         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
15138         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
15139         to LynxOS 4.0.
15140         * gthr-lynx.h: New file.
15141         * config/lynx-ng.h: Remove file.
15142         * config/lynx.h: Update to LynxOS 4.0.
15143         * config/t-lynx: New file.
15144         * config/i386/lynx-ng.h: Remove file.
15145         * config/i386/lynx.h: Update to LynxOS 4.0.
15146         * config/rs6000/lynxbase.h: Remove file.
15147         * config/rs6000/lynx.h: Update to LynxOS 4.0.
15148         * config/rs6000/t-lynx: New file.
15149         * doc/install.texi (Options specification): Remove reference to
15150         LynxOS from systems where --with-gnu-as makes a difference.
15151
15152 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15153
15154         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
15155         __UINTMAX_TYPE__.
15156         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
15157         __INTMAX_MAX__.
15158         (c_cpp_builtins): Call it.
15159         * doc/cpp.texi: Update.
15160
15161 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
15162
15163         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
15164         cost.
15165
15166 2004-08-04  Jan Hubicka  <jh@suse.cz>
15167
15168         * basic-block.h (profile_staus): New global variable.
15169         * cfg.c (profile_status): Declare.
15170         (check_bb_profile): Break out from ....; use profile_status
15171         (dump_flow_info): ... here.
15172         * cfgbuild.c (find_basic_blocks): Set profile_status.
15173         * cfgexpand.c (tree_expand_cfg): Likewise.
15174         * predict.c (estimate_probability): Likewise.
15175         * profile.c (branch_prob): Likewise.
15176         * tree-cfg.c (build_tree_cfg): Likewise.
15177         (dump_function_to_file): Use check_bb_profile.
15178         * tree-pretty-print (dump_bb_header): Likewise.
15179         * tree-profile.c (do_tree_profiling): Cleanup.
15180
15181 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
15182
15183         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
15184         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
15185         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
15186         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
15187         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
15188         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
15189         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
15190         (ggc-none.o, errors.o): Move rule to generators section;
15191         correct dependencies.
15192         (min-insn-modes.o): Move rule to generators section; remove
15193         unnecessary explicit command; correct dependencies.
15194         (print-rtl.o, print-rtl1.o): Correct dependencies.
15195         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
15196         (mostlyclean): Update.
15197
15198         * errors.c: Include bconfig.h not config.h.  Correct comment.
15199         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
15200         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
15201         * print-rtl.c: Don't include tm_p.h.
15202
15203         * rtl.h: Move forward-decl of struct function down where it's
15204         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
15205         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
15206
15207 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15208             Jeff Law  <law@redhat.com>
15209
15210         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
15211         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
15212         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
15213         manipulate the duplicated ssa names.
15214         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
15215         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
15216         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
15217         New functions.
15218         (release_ssa_name): Do not release ssa names that may have multiple
15219         definitions.
15220         * tree.h (release_ssa_name_force, mark_for_rewrite,
15221         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
15222         marked_ssa_names): Declare.
15223         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
15224         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
15225         Update call to rewrite_ssa_into_ssa.
15226
15227 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
15228
15229         * defaults.h (TARGET_DECLSPEC): New macro.
15230         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
15231         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
15232         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
15233         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
15234         __declspec support.
15235         (TARGET_DECLSPEC): Define.
15236         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
15237         __declspec support.
15238         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
15239         __declspec support.
15240         (TARGET_DECLSPEC): Define.
15241         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
15242         __declspec support.
15243         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
15244         support.
15245         * doc/tm.texi (TARGET_DECLSPEC): Document.
15246
15247         * doc/extend.texi: Fix typo in comment.
15248
15249 2004-08-04  Paul Brook  <paul@codesourcery.com>
15250
15251         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
15252         (TARGET_CXX): Use it.
15253         * target.h (struct gcc_target): Add cdtor_returns_this.
15254         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
15255         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
15256         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
15257
15258 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
15259
15260         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
15261         low/high pair. Do range checking directly.
15262         (interpret_integer): Adjust.
15263
15264 2004-08-04  Nick Clifton  <nickc@redhat.com>
15265
15266         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
15267         GCC ABI.
15268         * doc/invoke.texi: Document this new switch and also the -mrenesas
15269         switch.
15270
15271 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
15272
15273         * cfglayout.c (insn_locators_initialize): Update the current
15274         location before initializing a location.
15275
15276 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
15277
15278         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
15279         (dbxout_function_end): Return after emitting the "Lscope" symbol
15280         under the same conditions that this function formerly wasn't called.
15281         Add explanatory comments.
15282
15283         PR 14860
15284         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
15285         on the new decl.
15286
15287         PR 13956
15288         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
15289         functions, broken out of dbxout_block.
15290         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
15291         stabs too, if it contains symbols.  Use the begin_label and
15292         the Lscope label (emitted by dbxout_function_end) for the
15293         range of this block.
15294
15295 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
15296
15297         * doc/install.texi: Update autoconf version requirements.
15298
15299 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
15300
15301         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
15302         * recog.c (general_operand, immediate_operand, nonmemory_operand)
15303         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
15304         * regclass.c (record_reg_classes): Likewise.
15305         * reload.c (find_reloads): Likewise.
15306         * reload1.c (reload): Likewise.
15307
15308 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
15309
15310         * gensupport.c (init_md_reader_args_cb): Renamed from
15311         init_md_reader_args.  Add third option, callback function for
15312         parsing program-specific options.  Add diagnosis of incorrect
15313         number of input files.
15314         (init_md_reader): Fold into init_md_reader_args_cb.
15315         (init_md_reader_args): Now a thin wrapper around
15316         init_md_reader_args_cb.
15317         * gensupport.h: Update prototypes.
15318
15319         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
15320         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
15321         * genrecog.c: No need to diagnose lack of an input file;
15322         init_md_reader_args will handle it.
15323         * genconditions.c: Likewise, and use init_md_reader_args.
15324         * genconstants.c: Likewise, and no need to call read_md_rtx.
15325
15326 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
15327
15328         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
15329         declarations.
15330
15331 2004-08-03  Mike Stump  <mrs@apple.com>
15332
15333         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
15334         for frameworks.
15335         * doc/invoke.texi (Darwin Options): Update to reflect above.
15336
15337 2004-08-03  Roger Sayle  <roger@eyesopen.com>
15338
15339         PR middle-end/16790
15340         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
15341         truncations, not just global truncations.
15342
15343 2004-08-03  Andrew Pinski  <apinski@apple.com>
15344
15345         PR bootstrap/16865
15346         * loop-iv.c (simplify_using_assignment): Initialize lhs.
15347
15348 2004-08-03  Paul Brook  <paul@codesourcery.com>
15349
15350         * gcc/doc/install.texi: Document MPFR requirement.
15351
15352 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
15353
15354         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
15355         and mmap() explicitly instead of relying on preset autoconf cache
15356         variables.
15357         * configure: Regenerate.
15358
15359 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
15360
15361         PR target/16570
15362         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
15363         to tmake_file.
15364         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
15365         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
15366         to tmake_file.
15367
15368         * config/i386/t-gmm_malloc: New file.
15369         * config/i386/t-pmm_malloc: Likewise.
15370
15371         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
15372
15373 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
15374             Tanguy Fautrà <tfautre@pandora.be>
15375
15376         * config/i386/pmm_malloc.h: New file.
15377
15378 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
15379
15380         * config/i386/gmm_malloc.h: New file.
15381
15382 2004-08-03  Dale Johannesen  <dalej@apple.com>
15383
15384         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
15385         * c-common.c: Include opts.h.
15386         (c_common_get_alias_set): Fix check for a single input file.
15387         * toplev.c: Remove current_file_decl.
15388         * tree.h: Ditto.
15389
15390 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
15391
15392         * config.gcc (arm*-*-symbianelf*): New target.
15393         * config/arm/symbian.h: New file.
15394
15395         * gthr-gnat.c: Add visibility #pragmas.
15396         * gthr-gnat.h : Likewise.
15397         * gthr.h: Likewise.
15398         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
15399         (__ffsDI2): Likewise.
15400         (__clzSI2): Likewise.
15401         (__ctzSI2): Likewise.
15402         (__ctzDI2): Likewise.
15403         (__popcountSI2): Likewise.
15404         (__popcountDI2): Likewise.
15405         (__paritySI2): Likewise.
15406         (__parityDI2): Likewise.
15407         * libgcc2.h: Add visibility #pragmas.
15408         (__clzDI2): Add prototype.
15409         (__clzSI2): Likewise.
15410         (__ctzSI2): Likewise.
15411         (__ffsDI2): Likewise.
15412         (__ffsSI2): Likewise.
15413         (__ctzDI2): Likewise.
15414         (__popcountSI2): Likewise.
15415         (__popcountDI2): Likewise.
15416         (__paritySI2): Likewise.
15417         (__parityDI2): Likewise.
15418         * unwind-dw2-fde.h: Add visibility #pragmas.
15419         * unwind.h: Likewise.
15420
15421 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
15422             Dale Johannesen  <dalej@apple.com>
15423             Roger Sayle  <roger@eyesopen.com>
15424
15425         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
15426         constants more accurately.  Adjust costs for FMA instructions.
15427         Add cases for most logical and float operations.  Recurse into
15428         most operands.
15429
15430 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
15431
15432         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
15433
15434 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
15435
15436         * ra-build.c (conflicts_between_webs): For webs that cross a call add
15437         conflicts to regs_invalidated_by_call.
15438
15439 2004-08-03  Paul Brook  <paul@codesourcery.com>
15440
15441         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
15442
15443 2004-08-03  Jan Hubicka  <jh@suse.cz>
15444
15445         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
15446         ARRAY_REF argument.
15447
15448 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
15449
15450         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
15451         arm968es, arm10e, arm1020e, arm1022e.
15452         * invoke.texi: Update list of ARM cores.
15453         * arm-tune.md: Regenerate.
15454
15455 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
15456
15457         * arm/gentune.sh: New file.
15458         * arm/t-arm: New file.
15459         * arm/arm-tune.md: New file (autogenerated).
15460         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
15461         * arm.md (attribute tune): Delete.  Include arm-tune.md.
15462
15463 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
15464
15465         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
15466         penultimate parameter.  All callers adjusted.
15467         (struct prefix_list): Remove used_flag_ptr.
15468         (find_a_file): Do not set *pl->used_flag_ptr.
15469         (warn_B, warn_std_ptr): Remove.
15470
15471 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
15472             Mostafa Hagog <mustafa@il.ibm.com>
15473
15474         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
15475
15476 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
15477
15478         * dwarf2out.c (output_call_frame_info): Don't change data format
15479         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
15480         label.  Use 'true' not '1'.
15481         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
15482         required.
15483
15484 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15485
15486         * gdbinit.in: Reflect previous changes to rtunion_def.
15487
15488 2004-08-02  Roger Sayle  <roger@eyesopen.com>
15489
15490         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
15491         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
15492
15493 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15494
15495         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
15496         vec_p_reserve.
15497         * langhooks.h (lang_hooks::builtin_function): Rename parameter
15498         from "class" to "bt_class".
15499
15500 2004-08-02  Paul Brook  <paul@codesourcery.com>
15501
15502         PR rtl-optimization/15068
15503         * flow.c (init_propagate_block_info): Check condition is reversible.
15504
15505 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15506
15507         * gengtype.h (options::info): Change type to const char *.
15508         (enum gc_used_enum): Move out of struct type scope.
15509         * gengtype.c (create_option): Convert initializer for option::info to
15510         appropiate type.
15511         (adjust_field_type, walk_type, write_func_for_structure,
15512         write_root, write_roots): Remove pointless cast.
15513
15514 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
15515
15516         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
15517
15518 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
15519
15520         * rtl.h (union rtunion_def): Have all members  start with the
15521         prefix "rt_".
15522         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
15523         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
15524         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
15525         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
15526         access.
15527         * gengtype.c (adjust_field_rtx_def): Likewise.
15528         * rtlanal.c (loc_mentioned_in_p): Likewise.
15529
15530 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
15531
15532         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
15533         Replace uses of mips/elf64.h with mips/elf.h
15534         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
15535         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
15536         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
15537         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
15538         (HANDLE_SYSV_PRAGMA): Delete.
15539         (ASM_OUTPUT_DEF): Fix formatting.
15540         * config/mips/elf64.h: Delete.
15541
15542 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
15543
15544         * config/ia64/ia64.c (got_symbolic_operand): Do require a
15545         symbol+offset operand to have its offset be zero mod 0x3fff
15546         when GOT entries are in use.  Clarify logic in SYMBOL_REF
15547         case.  Clarify comments.
15548         (ia64_expand_load_address): Split a symbol+offset load when
15549         the offset is nonzero mod 0x3fff, not 0x1fff.
15550
15551 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
15552
15553         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
15554         if trying to *store* to a non-offsettable address.
15555         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
15556         a nonoffsettable address.
15557         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
15558         Clean up.
15559         (movti_string): Don't move GPRs to a nonoffsettable address.
15560         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
15561
15562 2004-08-02  Ben Elliston  <bje@au.ibm.com>
15563
15564         PR target/16155
15565         * config/rs6000/altivec.h: Replace typeof with __typeof__.
15566
15567 2004-08-01  Richard Henderson  <rth@redhat.com>
15568
15569         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
15570         variable sized types.
15571
15572 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
15573
15574         * doc/invoke.texi: In the MIPS options section, remove the passage
15575         saying that -mexplicit-relocs is usually disabled for -mabicalls
15576         -fno-unit-at-a-time.
15577         * config/mips/mips.c (override_options): Remove the code that enforced
15578         this rule.
15579
15580 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
15581
15582         * config/mips/mips.md (cprestore): Provide two alternatives, one for
15583         an in-range offset and one for an out-of-range offset.  Wrap the latter
15584         in .set macro/.set nomacro if it's inside a .set nomacro block.
15585
15586 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
15587
15588         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
15589         (mips_restore_gp): Declare.
15590         * config/mips/mips.c (mips_add_offset): Add a scratch register
15591         argument.  Reimplement in rtl only, reusing MIPS16 logic from
15592         mips_output_mi_thunk.
15593         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
15594         to mips_add_offset.
15595         (mips_gp_save_slot): Delete.
15596         (mips_restore_gp): New function.
15597         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
15598         * config/mips/mips.md (exception_receiver): Turn into a
15599         define_insn_and_split.  Use mips_restore_gp to do the split.
15600         (call_internal, call_value_internal, call_value_multiple_internal): Use
15601         mips_restore_gp to restore $gp.
15602
15603 2004-07-31  Andrew Pinski  <apinski@apple.com>
15604
15605         PR other/16842
15606         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
15607
15608 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
15609
15610         * c-decl.c (diagnose_mismatched_decls): Give error for external
15611         redeclaration of identifier declared with no linkage, not just
15612         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
15613         error for redeclaration with no linkage.
15614
15615 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
15616             Fariborz Jahanian <fjahanian@apple.com>
15617
15618         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
15619         non-offsettable addresses even for DImode.
15620         (rs6000_split_multireg_move): Cope with non-offsettable addresses
15621         being moved into multiple GPRs.
15622
15623         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
15624         to 64.
15625         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
15626         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
15627         to 128.
15628         * config/rs6000/darwin-ldouble.c (isless): New macro.
15629         (inf): New macro.
15630         (nonfinite): New macro.
15631         (FPKINF): Delete.
15632         (_xlqadd): Completely rewrite.
15633         (_xlqmul): Correct overflow handling.
15634         (_xlqdiv): Correct overflow handling.
15635         * config/rs6000/darwin-ldouble-format: New file.
15636
15637 2004-07-30  Roger Sayle  <roger@eyesopen.com>
15638             Richard Henderson  <rth@redhat.com>
15639
15640         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
15641         9 into the equivalent lea instruction.
15642
15643 2004-07-30  Richard Henderson  <rth@redhat.com>
15644
15645         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
15646         with DECL_INITIAL if fb_lvalue.
15647         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
15648         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
15649         with <Cxxx>.
15650         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
15651
15652 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
15653
15654         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
15655         pointer escapes through a function call, assume that the
15656         callee will dereference it.
15657         (add_pointed_to_var): Assume that VALUE is always an
15658         ADDR_EXPR.
15659         (collect_points_to_info_r): Only call add_pointed_to_var if
15660         the value is an ADDR_EXPR.
15661
15662 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
15663
15664         * tree-ssa-alias.c (create_alias_map_for): Do not get the
15665         alias set of the inner type of ARRAY_TYPEs.
15666
15667 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
15668
15669         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
15670         setting a non-register to UNDEFINED right before the call to
15671         set_lattice_value.
15672
15673 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15674
15675         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
15676
15677 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
15678
15679         * tree-ssa.c (verify_flow_sensitive_alias_info): When
15680         comparing points-to sets of different pointers, make sure the
15681         second pointer is actually referenced in the code.
15682
15683 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
15684
15685         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
15686         (got_symbolic_operand): Remove unreachable code.
15687         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
15688         setjmp_operand; add entry for tls_symbolic_operand.
15689         * config/ia64/ia64-protos.h: Remove all prototypes of
15690         predicate functions.
15691
15692 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
15693
15694         * c-common.h (lang_post_pch_load): New variable.
15695         * c-pch.c (lang_post_pch_load): Define it.
15696         (c_common_read_pch): Use it.
15697         * cgraphunit.c (record_call_1): Give the front end a chance to
15698         record additional needed entities when a variable is marked as
15699         needed.
15700         * tlink.c (recompile_files): Robustify.
15701         (scan_linker_output): If a symbol is assigned to a file,
15702         but after recompilation is not present there, issue an error
15703         message.
15704
15705 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15706
15707         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
15708         Take orig_loop argument and pass it to set_level.
15709         (schedule_sm): Pass the correct orig_loop to force_move_till.
15710
15711 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15712
15713         * cfgloop.c (update_latch_info): Update dominator of the new block.
15714         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
15715         info.
15716         * dominance.c (verify_dominators): Check that the dominance tree is
15717         connected.
15718         (recount_dominator): Ignore unreachable blocks.
15719         (iterate_fix_dominators): Cleanup old dominance information before
15720         recomputing it.
15721
15722 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
15723
15724         * tree-ssa-operands.c (get_expr_operands): Revert changes
15725         to ADDR_EXPR processing introduced by:
15726             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15727             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
15728
15729 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
15730
15731         * doc/implement-c.texi: Add C90 subclause references.  Point to
15732         preprocessor documentation instead of duplicating it.  Add points
15733         only present in C90.  Fill in documentation for all points.
15734
15735 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15736
15737         * pa.c (output_movb): Correct typo.
15738
15739 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
15740
15741         * ra.h (single_reg_in_regclass): Declare.
15742         * ra.c (single_reg_in_regclass): Define.
15743         (first_hard_reg): New.
15744         (init_ra): Initialize single_reg_in_regclass.
15745         * ra-colorize.c (ok_class): New.
15746         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
15747
15748 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
15749
15750         * gcov-io.h: Allow zero tag as EOF indicator.
15751         (gcov_is_eof): Remove.
15752         (gcov_truncate): Remove.
15753         * gcov-io.c (gcov_seek): Always SEEK_SET.
15754         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
15755         EOF tag.
15756         * coverage.c (read_counts_file): Don't use gcov_is_eof.
15757         * gcov-dump.c (dump_file): Likewise.
15758         * gcov.c (read_graph_file, read_count_file): Likewise.
15759
15760         * c-decl.c (complete_array_type): Don't gratuitously copy
15761         maxindex.  Check it always has a type.
15762
15763 2004-07-29  Steven Bosscher  <stevenb@suse.de>
15764
15765         * rtl.c (currently_expanding_to_rtl): New.
15766         * rtl.h (currently_expanding_to_rtl): Export it.
15767         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
15768
15769         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
15770         inliner hack.
15771         * config/sh/sh.c: Replace rtx_equal_function_value_matters
15772         with currently_expanding_to_rtl.
15773         * config/sh/sh.md: Likewise.
15774         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
15775
15776 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
15777
15778         Introduce sh2a support.
15779         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
15780         * config.gcc: Build multilibs for sh2a and sh2a-single by
15781         default.
15782         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
15783         default.  Split their tests out of the corresponding SH4
15784         multilibs.
15785         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
15786         multilibs for SH2a.
15787         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
15788         * config.gcc: Handle sh2a multilibs and cpu selection.
15789         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
15790         * config/sh/t-mlib-sh2a: New.
15791         * config/sh/t-mlib-sh2a-nofpu: New.
15792         * config/sh/t-mlib-sh2a-single: New.
15793         * config/sh/t-mlib-sh2a-single-only: New.
15794         2004-07-09  Nick Clifton  <nickc@redhat.com>
15795         Issue 43400
15796         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
15797         -ml and -m2a are used together.
15798         2004-03-23  DJ Delorie  <dj@redhat.com>
15799         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
15800         when we have a double-sized FPU.
15801         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
15802         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
15803         is set.
15804         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
15805         -msh2a-single and -msh2a-single-only
15806         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
15807         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
15808         is set.
15809         2004-02-20  DJ Delorie  <dj@delorie.com>
15810         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
15811         2004-02-20  Fred Fish <fnf@redhat.com>,
15812         Corinna Vinschen <vinschen@redhat.com>
15813         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
15814         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
15815         2004-02-18  DJ Delorie  <dj@redhat.com>
15816         * config/sh/sh.c (broken_move): Add support for movi20.
15817         * config/sh/sh.h: Likewise.
15818         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
15819         * config/sh/sh.md (udivsi3_sh2a): New.
15820         (udivsi3): Call it.
15821         (divsi3_sh2a): New.
15822         (divsi3): Call it.
15823         (mul_r): New.
15824         (ashlsi3_sh2a): New.
15825         (ashrsi3_sh2a): New.
15826         (lshrsi3_sh2a): New.
15827         (movsi_i): Disable for sh2a.
15828         (movsi_ie): Add movi20.
15829         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
15830         sh2a, for -m2a-nofpu mode.
15831         2004-02-13  DJ Delorie  <dj@redhat.com>
15832         * config/sh/lib1funcs.asm: Handle double vs single better.
15833         * config/sh/sh.h: Likewise.
15834         2004-02-09  DJ Delorie  <dj@redhat.com>
15835         * config/sh/crt1.asm: Add support for sh2a.
15836         * config/sh/elf.h: Likewise.
15837         * config/sh/lib1funcs.asm: Likewise.
15838         * config/sh/sh.c: Likewise.
15839         * config/sh/sh.md: Likewise.
15840         * config/sh/sh.h: Likewise.
15841         * config/sh/t-sh: Likewise.
15842
15843 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
15844
15845         * config/frv/frv.md (movqi_internal, movhi_internal,
15846         movsi_internal): Add backup alternatives for memory inputs.
15847
15848 2004-07-28  Matt Austern  <austern@apple.com>
15849
15850         * config/darwin.c (darwin_one_byte_bool): New global variable.
15851         * config/darwin.h (darwin_one_byte_bool): Declare.
15852         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
15853         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
15854         value of darwin_one_byte_bool.
15855         * doc/invoke.texi: Document -mone-byte-bool flag.
15856
15857 2004-07-28  Eric Christopher  <echristo@redhat.com>
15858
15859         * c-common.c (c_common_unsafe_for_reeval): Delete.
15860         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
15861         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
15862         * calls.c (fix_unsafe_tree): Delete.
15863         (expand_call): Delete code which used above.
15864         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
15865         * expr.c (expand_expr_real_1): Ditto.
15866         * fold-const.c (non_lvalue): Ditto.
15867         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
15868         (lhd_unsafe_for_reeval): Ditto.
15869         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
15870         * langhooks.h (unsafe_for_reeval): Ditto.
15871         (unsave_expr_now): Adjust comment.
15872         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
15873         (estimate_num_insns_1): Ditto.
15874         * tree-pretty-print.c (dump_generic_node): Ditto.
15875         * tree.c (expr_align): Ditto.
15876         (unsave_expr): Delete.
15877         (unsafe_for_reeval): Ditto.
15878         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
15879         * tree.def (UNSAVE_EXPR): Delete.
15880         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
15881
15882 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
15883
15884         * tree.h (enum tls_model): Move ...
15885         * coretypes.h: ... here.
15886
15887 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
15888
15889         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
15890
15891 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
15892
15893         * cse.c (validate_canon_reg): New function, split out from...
15894         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
15895
15896 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
15897
15898         * tree-ssa-alias.c (maybe_create_global_var): Don't just
15899         return if .GLOBAL_VAR has been created.
15900
15901 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
15902
15903         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
15904         every variable that may have aliases, not just tags.
15905
15906 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
15907
15908         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
15909         move_from_CR_eq_bit.
15910         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
15911
15912
15913         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
15914         e500_flip_eq_bit.
15915
15916         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
15917         output_e500_flip_eq_bit.
15918
15919         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
15920         output_e500_flip_eq_bit.
15921         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
15922         output_e500_flip_eq_bit.
15923         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
15924         (print_operand): case D.  Get to EQ bit.
15925
15926 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
15927
15928         * gcov.c (function_summary): Add missing \n.
15929
15930 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
15931
15932         Introduce sh4a support.
15933         * config.gcc: Handle sh4a multilibs and cpu selection.
15934         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
15935         * config/sh/t-mlib-sh4a: New.
15936         * config/sh/t-mlib-sh4al: New.
15937         * config/sh/t-mlib-sh4a-nofpu: New.
15938         * config/sh/t-mlib-sh4a-single: New.
15939         * config/sh/t-mlib-sh4a-single-only: New.
15940         2004-02-20  DJ Delorie  <dj@redhat.com>
15941         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
15942         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
15943         2003-08-22  Eric Christopher  <echristo@redhat.com>
15944         * config/sh/sh4a.md: Update for chip errata.
15945         2003-08-07  Eric Christopher  <echristo@redhat.com>
15946         * config/sh/sh4a.md: New file. sh4a processor description.
15947         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
15948         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
15949         of -m4a-nofpu.
15950         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
15951         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
15952         * doc/invoke.texi (SH Options): Document -m4al.
15953         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
15954         * config/sh/sh.c (expand_block_move): Remove commented-out code
15955         checked in by mistake.
15956         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
15957         single elements from SFmode vectors.
15958         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
15959         register.
15960         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
15961         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
15962         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
15963         sh_fsca_int2sf): Remove variable declarations.
15964         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
15965         sh_fsca_int2sf): New functions.
15966         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
15967         sh_fsca_int2sf_rtx): New static variables.
15968         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
15969         sh_fsca_int2sf): Declare.
15970         * config/sh/sh.md: Adjust.
15971         * doc/invoke.texi (SH Options): Document new options.
15972         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
15973         compatibility from SH4 code.
15974         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
15975         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
15976         early.
15977         (memory_movsrc_operand): Renamed to...
15978         (unaligned_load_operand): ... this.  Simplified.
15979         * config/sh/sh.h (PREDICATE_CODES): Adjust.
15980         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
15981         input operand to SImode, and adjust the others.  Introduce
15982         post-increment by peephole.
15983         * config/sh/sh.c (expand_block_move): Give the target address the
15984         same mode as the temp reg.
15985         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
15986         copying.
15987         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
15988         Introduce support for SH4a.
15989         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
15990         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
15991         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
15992         sh_fsca_int2sf): New.
15993         (sh_init_builtins): Initialize them.
15994         (print_operand): Support `d'.
15995         (expand_block_move): Use movua if src is misaligned.
15996         (memory_movsrc_operand): New.
15997         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
15998         and one of the SH4 macros.
15999         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
16000         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
16001         SELECT_SH4A_SINGLE): New.
16002         (TARGET_NONE): Add SH4A_BIT.
16003         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
16004         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
16005         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
16006         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
16007         (enum processor_type): Added PROCESSOR_SH4A.
16008         (PREDICATE_CODES): Add memory_movsrc_operand.
16009         * config/sh/sh.md: Removed unused variables.
16010         (attr cpu): Add sh4a.
16011         (attr type): Add movua, fsrra and fsca.
16012         (prefetch): New, for SH4.
16013         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
16014         (toggle_sz): Set type to fp.
16015         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
16016         (movua, extv, extzv): New.
16017         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
16018         and 4a-single-only.
16019
16020 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
16021
16022         * tree-optimize.c (init_tree_optimization_passes): Schedule
16023         pass_may_alias right after the program is renamed into SSA.
16024         * tree-pass.h (PROP_alias): Define.
16025         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
16026         * tree-sra.c (pass_sra): Likewise.
16027         * tree-ssa-ccp.c (pass_ccp): Likewise.
16028         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
16029         * tree-ssa-dce.c (pass_dce): Likewise.
16030         * tree-ssa-dom.c (pass_dominator): Likewise.
16031         * tree-ssa-dse.c (pass_dse): Likewise.
16032         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
16033         * tree-ssa-loop-ch.c (pass_ch): Likewise.
16034         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
16035         * tree-ssa-pre.c (pass_pre): Likewise.
16036         * tree-tailcall.c (pass_tail_recursion): Likewise.
16037         * tree-ssa.c (pass_redundant_phi): Likewise.
16038         * tree-ssa-alias.c (aliases_computed_p): Remove.
16039         Update all users.
16040         (init_alias_info): Do not mark all type tags for renaming
16041         unconditionally.
16042         Clear may_aliases from every symbol.
16043         (setup_pointers_and_addressables): If a pointer has not been
16044         dereferenced and it had a type tag, clear it and mark the old
16045         tag for renaming.
16046
16047 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
16048
16049         PR tree-optimization/16705
16050         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
16051         .GLOBAL_VAR.
16052
16053 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16054
16055         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
16056         check.
16057
16058         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
16059         don't make another one.
16060
16061         PR optimization/15077
16062         * function.h (struct function): Add field saved_static_chain_decl.
16063         Fix comment for static_chain_decl.
16064         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
16065         * tree-inline.h (save_body): Add new arg.
16066         * tree-optimize.c (tree_rest_of_compilation): Handle saving
16067         static_chain_decl.
16068
16069 2004-07-27  Richard Henderson  <rth@redhat.com>
16070
16071         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
16072         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
16073         is_gimple_addressable.
16074         * tree-gimple.c (is_gimple_addressable): Rename from
16075         is_gimple_addr_expr_arg; accept INDIRECT_REF.
16076         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
16077         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
16078         rename to is_gimple_addressable.
16079
16080 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
16081
16082         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
16083
16084 2004-07-27  Richard Henderson  <rth@redhat.com>
16085
16086         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
16087         before rounding.
16088
16089 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
16090
16091         * libgcc2.c: Change all conditionals testing
16092         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
16093         * libgcc2.h: Likewise.
16094         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
16095         TYPE_PRECISION of float80_type to 80.
16096         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
16097         of fpreg_type and float80_type to 80.
16098         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
16099         * config/m68k/netbsd-elf.h:
16100         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
16101         to evaluate to 80 whenever they would formerly have evaluated to 96.
16102         * config/i386/sco5.h: Remove unnecessary redefinition of
16103         LONG_DOUBLE_TYPE_SIZE.
16104         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
16105         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
16106         XFmode, with a bitsize of 80.  Update commentary.
16107         * config/ia64/ia64-modes.def: Likewise.
16108         * config/m68k/m68k-modes.def: Likewise.
16109
16110 2004-07-27  Steven Bosscher  <stevenb@suse.de>
16111
16112         * cfgexpand.c (tree_expand_cfg): Fix comment.
16113
16114         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
16115         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
16116         Remove.
16117         (prepare_function_start): Don't set rtx_equal_function_value_matters.
16118         * integrate.c (copy_rtx_and_substitute): Don't test for it.
16119         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
16120         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
16121         here again.  Update leading comment.
16122         * rtl.c (rtx_equal_function_value_matters): Remove.
16123         (rtx_equal_p): Don't test for it.
16124         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
16125         Likewise.
16126
16127         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
16128         * rtl.c (note_insn_name): Likewise.
16129         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
16130         * final.c (final_scan_insn): Likewise.
16131
16132         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
16133         * passes.c (rest_of_handle_eh): Do it here.
16134
16135         * stmt.c (struct nesting): Remove struct nesting block member.
16136         (struct stmt_status): Remove x_block_start_count field.
16137         (current_block_start_count): Remove.
16138
16139 2004-07-27  Brian Booth  <bbooth@redhat.com>
16140
16141         * tree-optimize.c (register_one_dump_file): Update condition that uses
16142         static_pass_number.
16143         (dup_pass_1): Replace with...
16144         (next_pass_1): This.
16145         (NEXT_PASS): Call next_pass_1.
16146         (DUP_PASS): Remove.
16147         (init_tree_optimization_passes): Remove uses of DUP_PASS.
16148         (execute_one_pass): Update condition that uses
16149         static_pass_number.
16150         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
16151         integer.
16152
16153 2004-07-27  Nick Clifton  <nickc@redhat.com>
16154
16155         * config/m32r/m32r.c: Include integrate.h in order to get the
16156         prototype for get_hard_reg_initial_val().
16157
16158         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
16159         and tidy up indentation.
16160         (final_presence_set): Use absence_set instead, so that if there is
16161         nothing in the "o" pipe the "s" pipe can be scheduled.
16162
16163 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
16164
16165         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
16166         don't have PT_VARS nor PT_MALLOC set.
16167         Clear name tag from pointers that have not been dereferenced.
16168         (set_pt_anything, set_pt_malloc): Forward declare.
16169         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
16170         not type compatibility when determining if a pointer can be
16171         copy propagated.
16172
16173 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
16174
16175         * expr.h (canonicalize_condition, get_condition): Add an int argument.
16176         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
16177         it to check whether the condition is still valid at the jump insn.
16178         * ifcvt.c (noce_get_condition): Likewise.
16179         (noce_get_alt_condition): Update call to canonicalize_condition.
16180         * loop-iv.c (simplify_using_initial_values): Update call to
16181         get_condition.  Remove FIXME.
16182         (check_simple_exit): Update call to get_condition.
16183         * loop-unswitch.c (may_unswitch_on): Likewise.
16184         * loop.c (check_dbra_loop): Likewise.
16185         (canonicalize_condition, get_condition): Add an argument to say whether
16186         the condition must still be valid at INSN.
16187         (get_condition_for_loop): Update call to get_condition.  Require that
16188         the condition be valid at INSN.
16189         * predict.c (estimate_probability): Update call to get_condition.
16190         Remove unused earliest parameter.
16191         (expected_value_to_br_prob): Update call to canonicalize_condition.
16192
16193 2004-07-26  Eric Christopher  <echristo@redhat.com>
16194
16195         * tree-dfa.c (add_referenced_var): Register initializers of global
16196         variables.
16197
16198 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
16199
16200         * config/i386/i386.c (function_arg): Always treat 8-
16201         and 16-byte wide vectors the same, even if MMX/SSE
16202         are disabled.
16203         (contains_128bit_aligned_vector_p): Add comment.
16204
16205 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
16206
16207         * ra.h (enum node_type): Rename to:
16208         (enum ra_node_type).
16209         * ra-colorize.c: Likewise.
16210
16211 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
16212
16213         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
16214         after simplifying the jump.
16215
16216 2004-06-26  Richard Henderson  <rth@redhat.com>
16217
16218         * calls.c (combine_pending_stack_adjustment_and_call): Make
16219         preferred_unit_stack_boundary argument unsigned.  Make
16220         unadjusted_alignment unsigned.
16221         (expand_call): Make preferred_stack_boundary and
16222         preferred_unit_stack_boundary variables unsigned.
16223         * function.c (assign_stack_local_1): Make alignment unsigned.
16224         * function.h (struct function): Make stack_alignment_needed,
16225         preferred_stack_boundary unsigned.
16226         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
16227         (ix86_compute_frame_layout): Make stack_alignment_needed,
16228         preferred_alignment variables unsigned.
16229         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
16230
16231 2004-07-26  Tom Tromey  <tromey@redhat.com>
16232
16233         * tree.h: Fix typo in comment.
16234
16235 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
16236
16237         PR bootstrap/12804
16238         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
16239         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
16240         (ggc_free): Remove incorrect freeing.
16241         (sweep_pages): Advance PP for large pages.  Fix indentation.
16242
16243 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
16244
16245         PR rtl-optimization/16643
16246         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
16247         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
16248         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
16249         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
16250         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
16251         * function.c (thread_prologue_and_epilogue_insns): Likewise.
16252         * rtl.h (tracer): Add a flags parameter.
16253         * tracer.c (tracer): Pass it to cfg_layout_initialise.
16254         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
16255         (rest_of_handle_reorder_blocks): Update calls to tracer and
16256         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
16257         (rest_of_handle_tracer): Pass 0 to tracer.
16258         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
16259
16260 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
16261
16262         PR target/16239
16263         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
16264         f->f.
16265
16266 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
16267
16268         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
16269         (BINFO_BASE_ACCESS): Adjust.
16270         (BINFO_BASE_ACCESS_APPEND): New.
16271         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
16272         * dbxout.c (dbxout_type): Adjust binfo access accessing.
16273         * dwarf2out.c (gen_member_die): Likewise.
16274         * tree-dump.c (deque_and_dump): Likewise.
16275
16276 2004-07-26  Falk Hueffner  <falk@debian.org>
16277
16278         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
16279         costs.
16280
16281 2004-07-25  Roger Sayle  <roger@eyesopen.com>
16282
16283         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
16284         value off of the stack if TARGET_USE_FFREEP.
16285
16286 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
16287
16288         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
16289         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
16290         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
16291         check on invocation of XRESIZEVEC ().
16292
16293 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
16294
16295         * c-common.c (disable_builtin_function): Rename variable n to
16296         new_disabled_builtin.
16297         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
16298         Rename local variable old to old_decl.
16299         * gensupport.c (shift_output_template): Rename parameter old to src.
16300         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
16301         old_rtx and newx to new_rtx.
16302
16303 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
16304
16305         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
16306         of c-pragma.h.
16307         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
16308         enum cpp_ttype.
16309         * c-lex.c: Likewise.
16310
16311 2004-07-25  Roger Sayle  <roger@eyesopen.com>
16312
16313         * fold-const.c (constant_boolean_node): Make extern.
16314         (make_range): Wrap long lines.
16315         (fold_cond_expr_with_comparison): Remove unnecessary call to
16316         pedantic_non_lvalue.  Add missing calls to fold_convert.
16317         (fold_truthop): Add missing calls to fold_convert.
16318         (fold): Likewise.
16319         * tree.h (constant_boolean_node): Add prototype here.
16320         * builtins.c (expand_builtin_strncmp): Add missing calls to
16321         fold_convert.
16322         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
16323         Call fold_convert and constant_boolean_node to correct types.
16324         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
16325         missing call to fold_convert to correct types.
16326
16327 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
16328             Brian Ryner  <bryner@brianryner.com>
16329
16330         PR c++/9283
16331         PR c++/15000
16332         * c-common.c (c_common_attribute_table): Allow
16333         handle_visibility_attribute to be called for types.
16334         (handle_visibility_attribute) When given a type, set the visibility
16335         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
16336         so that we can check later whether the attribute was present. Added
16337         warning if attribute applied to non class type.
16338         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
16339         decls and checking that they are consistent.
16340         * common.opt: Added -fvisibility.
16341         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
16342         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
16343         * flags.h, tree.h: Added assorted support defines for overall patch
16344         * opts.c: Added parsing support for -fvisibility.
16345         * tree.c (build_decl): Set visibility for all decls to be whatever
16346         is in force at that time.
16347         * varasm.c (default_binds_local_p_1): Reworked logic determining
16348         when to make a symbol locally bound.
16349         * doc/invoke.texi: Added documentation for -fvisibility and
16350         -fvisibility-inlines-hidden.
16351
16352 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16353
16354         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
16355         * c-common.c: Add missing casts from void * to other types.
16356         * c-decl.c: Likewise.
16357         * c-format.c: Likewise.
16358         * c-lex.c: Likewise.
16359         * c-pragma.c: Likewise.
16360         * c-typeck.c: Likewise.
16361         * defaults.h: Likewise.
16362         * genconstants.c: Likewise.
16363         * gengtype-lex.l: Likewise.
16364         * genmodes.c: Likewise.
16365         * read-rtl.c: Likewise.
16366         * rtl.c: Likewise.
16367
16368 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16369
16370         * bitmap.c: Use type-safe memory allocation macros from libiberty.
16371         * c-common.c: Likewise.
16372         * c-decl.c: Likewise.
16373         * c-lang.c: Likewise.
16374         * c-lex.c: Likewise.
16375         * c-opts.c: Likewise.
16376         * c-parse.in: Likewise.
16377         * c-typeck.c: Likewise.
16378         * genconditions.c: Likewise.
16379         * gengtype-lex.l: Likewise.
16380         * gengtype-yacc.y: Likewise.
16381         * gengtype.c: Likewise.
16382         * genmodes.c: Likewise.
16383         * gensupport.c: Likewise.
16384         * read-rtl.c: Likewise.
16385         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
16386         htab_find_slot().
16387
16388 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16389
16390         * c-decl.c (groktypename, groktypename_in_param_context): Rename
16391         variable typename to type_name.
16392         * c-lex.c (interpret_float): Likewise.
16393
16394 2004-07-25  Roger Sayle  <roger@eyesopen.com>
16395
16396         * convert.c (convert_to_real, convert_to_integer,
16397         convert_to_complex): Replace calls to build with calls to buildN.
16398         * coverage.c (tree_coverage_counter_ref): Likewise.
16399         * dojump.c (do_jump): Likewise.
16400         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
16401         * emit-rtl.c (component_ref_for_mem_expr,
16402         set_mem_attributes_minus_bitpos): Likewise.
16403         * explow.c (update_nonlocal_goto_save_area): Likewise.
16404         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
16405         expand_mult_add): Likewise.
16406         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
16407         store_constructor, get_inner_reference, expand_expr_real_1,
16408         try_casesi, try_tablejump): Likewise.
16409         * function.c (expand_function_start): Likewise.
16410         * stmt.c (emit_case_bit_tests, expand_end_case_type,
16411         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
16412         * stor-layout.c (place_union_field, layout_type): Likewise.
16413         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
16414         * varasm.c (copy_constant): Likewise.
16415
16416 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16417
16418         * c-common.c: Rename all identifiers named `new'.
16419         * c-decl.c: Likewise.
16420         * gensupport.c: Likewise.
16421         * simplify-rtx.c: Likewise.
16422         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
16423         with XNEW().
16424         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
16425         with XNEWVEC().
16426
16427 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
16428
16429         PR c/15360
16430         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
16431         declarations until after calling pushdecl.
16432         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
16433         "extern" and not on whether the declaration is initialized.
16434
16435 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
16436
16437         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
16438         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
16439         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
16440         "cpplib.h", "c-pragma.h", "c-common.h".
16441         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
16442         (solaris_register_pragmas): New functions.
16443         * config/sol2-protos.h: New file.
16444         * config/sol2.c: New file.
16445         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
16446         (REGISTER_TARGET_PRAGMAS): New macros.
16447         (solaris_pending_aligns, solaris_pending_inits)
16448         (solaris_pending_finis): New variables.
16449         * config/t-sol2 (sol2-c.o): Update dependencies.
16450         (sol2.o): New rule.
16451         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
16452         SUBTARGET_INSERT_ATTRIBUTES.
16453         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
16454         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
16455         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
16456         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
16457         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
16458         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
16459         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
16460         * config/sparc/sparc.c (sparc_attribute_table): New.
16461         (TARGET_INSERT_ATTRIBUTES): Define in terms of
16462         SUBTARGET_INSERT_ATTRIBUTES.
16463         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
16464         is defined.
16465         * doc/extend.texi (Solaris Pragmas): New section.
16466
16467 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16468
16469         * c-common.c: Rename all identifiers named `class' to `cl'.
16470         * c-common.h: Likewise.
16471         * c-parse.in: Likewise.
16472         * c-typeck.c: Likewise.
16473         * genmodes.c: Likewise.
16474         * real.c: Likewise.
16475         * real.h: Likewise.
16476         * recog.c: Likewise.
16477         * recog.h: Likewise.
16478         * regrename.c: Likewise.
16479         * tree.h: Likewise.
16480         * c-common.c (builtin_function_2): Change type of 5th parameter from
16481         int to enum built_in_function. Change type of 8th parameter from int
16482         to bool.
16483         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
16484         with GGC_CNEW().
16485         * c-typeck.c (convert_arguments): Change type of formal_prec from
16486         int to unsigned int.
16487         * genmodes.c (blank_mode): Make a few negative constants unsigned.
16488         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
16489         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
16490         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
16491         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
16492         iterator to for_all_modes () instead of an enum because enums can't
16493         be incremented in C++.
16494
16495
16496 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
16497
16498         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
16499         hard registers.
16500
16501 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16502
16503         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
16504         Handle ARRAY_RANGE_REF like ARRAY_REF.
16505
16506 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
16507
16508         * c-typeck.c (digest_init): Don't allow arrays of signed or
16509         unsigned variants of wchar_t to be initialized by wide string
16510         constants.  Do allow arrays of enumerated types compatible with
16511         wchar_t to be initialized by wide string constants.  Refine tests
16512         distinguishing wide and narrow strings and arrays.  Give specific
16513         error for arrays of other integer types initialized by string
16514         constants.
16515         (output_init_element, process_init_element): Check for
16516         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
16517         initializing with string constants.
16518
16519 2004-07-25  Richard Henderson  <rth@redhat.com>
16520
16521         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
16522         on the RESULT_DECL.
16523         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
16524         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
16525         DECL_IGNORED_P to new decl.
16526
16527 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
16528
16529         * config/ia64/ia64.c (general_xfmode_operand)
16530         (destination_xfmode_operand): Delete.
16531         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
16532         * config/ia64/ia64.md (*movxf_internal): Use general_operand
16533         and destination_operand.
16534
16535 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
16536
16537         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
16538         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
16539
16540 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
16541             Zack Weinberg  <zack@codesourcery.com
16542
16543         PR 16684
16544         * c-decl.c (diagnose_mismatched_decls): Don't issue a
16545         redundant-declaration warning the first time a builtin is
16546         declared explicitly.
16547
16548 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16549
16550         * tree.h (staticp): Change return type to bool.
16551
16552 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16553
16554         * c-common.c (c_staticp): Last episode of the staticp saga.
16555
16556 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16557
16558         * c-common.h (c_staticp): Change return type from int to bool.
16559         * tree.c (staticp): Likewise.
16560         * langhooks.h (staticp): Likewise.
16561
16562 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16563
16564         * langhooks-def.h (lhd_staticp): Change return type from int to
16565         bool in prototype to match definition.
16566
16567 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16568
16569         * system.h (bool, true, false): Don't redefine as preprocessor macros
16570         in C++.
16571
16572 2004-07-24  Roger Sayle  <roger@eyesopen.com>
16573
16574         * expmed.c (init_expmed): A signed modulus by a power of two is
16575         considered cheap if its less than or equal to four instructions.
16576
16577 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16578
16579         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
16580         GGC_CNEWVAR): New macros.
16581
16582 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
16583
16584         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
16585         lists.
16586         * c-decl.c: Likewise.
16587         * c-format.c: Likewise.
16588         * c-lex.c: Likewise.
16589         * c-opts.c: Likewise.
16590         * c-pragma.c: Likewise.
16591         * c-typeck.c: Likewise.
16592         * gencheck.c: Likewise.
16593         * genconditions.c: Likewise.
16594         * genconfig.c: Likewise.
16595         * genflags.c: Likewise.
16596         * gengtype.c: Likewise.
16597         * gensupport.c: Likewise.
16598         * ggc-none.c: Likewise.
16599         * langhooks.c: Likewise.
16600         * statistics.h: Likewise.
16601         * stub-objc.c: Likewise.
16602         * java/decl.c: Likewise.
16603
16604 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
16605
16606         * config/m68k/m68k.c (output_scc_di): Fix coding style.
16607         (symbolic_operand): Fix prototype.
16608         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
16609         * config/m68k/m68k.md: Add constants for registers a0 and sp and
16610         use them, change from the "{...}" syntax to the simpler {...}
16611         syntax.
16612         (*cfv4_extendqisi2): Fix destination predicate.
16613         * config/m68k/m68k-protos.h: Remove various declarations also
16614         generated via PREDICATE_CODES.
16615
16616 2004-07-23  Mike Stump  <mrs@apple.com>
16617
16618         * c-typeck.c (convert_for_assignment): Tightened up pointer
16619         converstions that differ in signedness.
16620
16621 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
16622
16623         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
16624
16625 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16626
16627         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
16628         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
16629
16630         * gimplify.c (gimplify_compound_lval): Check for no handled
16631         operations, rather than checking for explicit list of nodes.
16632         (is_gimple_addr_expr_arg_or_indirect): New function.
16633         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
16634         redundant setting of TREE_INVARIANT.
16635         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
16636         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
16637
16638 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
16639
16640         PR tree-optimization/16688
16641         PR tree-optimization/16689
16642         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
16643         unnecessary initialization of 'tag'.
16644         (get_tmt_for): Check that the new type tag has the same alias
16645         set as the pointed-to type.
16646         (group_aliases): Only regular variables need to be removed
16647         from the alias set of a name tag.
16648         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
16649         propagation if the two types are not compatible.
16650         (merge_alias_info): Rename from replace_ssa_names_ann.
16651         Add more checking.
16652         (replace_exp_1): If both arguments are SSA_NAMEs, check that
16653         the propagation can be done.
16654         Only call merge_alias_info on pointers.
16655         (propagate_value): Likewise.
16656         * tree-ssa-copyrename.c: Include langhooks.h.
16657         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
16658         to do the merging.
16659         Do not coalesce variables with incompatible types.
16660         (rename_ssa_copies): Call replace_ssa_name_symbol.
16661         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
16662         the same type as the underlying _DECL.
16663         * tree-ssanames.c (replace_ssa_name_symbol): New function.
16664         * tree.h (replace_ssa_name_symbol): Declare.
16665
16666 2004-07-23  Richard Henderson  <rth@redhat.com>
16667
16668         PR c++/16277
16669         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
16670         unshare it properly.
16671         (gimplify_modify_expr_rhs): Push assignment from a conditional into
16672         the conditional for all non-register types.
16673
16674 2004-07-23  Richard Henderson  <rth@redhat.com>
16675
16676         * expr.c (expand_expr_real_1): Don't handle non-local variables.
16677         * expr.h (fix_lexical_addr): Remove.
16678         * function.c (NEED_SEPARATE_AP): Remove.
16679         (fix_lexical_addr): Remove.
16680         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
16681         not null decl_function_context.
16682         (create_alias_vars): Likewise.
16683         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
16684         (simple_goto_p): Likewise.
16685         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
16686         * tree-ssa-ccp.c (get_default_value): Likewise.
16687         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
16688         * tree.c (needs_to_live_in_memory): Likewise.
16689         * tree-flow-inline.h (may_be_aliased): Move...
16690         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
16691         when TREE_STATIC variables may be addressable.
16692
16693 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
16694
16695         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
16696
16697 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
16698
16699         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
16700         bitmap contents if GENERATOR_FILE is defined.
16701         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
16702         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
16703
16704 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
16705
16706         * c-decl.c (start_function): Form composite type of function types
16707         rather than copying type from previous prototype declaration.
16708
16709 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
16710
16711         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
16712         the const qualifier for the second argument in the C++ functions.
16713
16714         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
16715         specific pointer types.
16716
16717         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
16718         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
16719         for vector bool and/or vector pixel, add C++ and C missing support.
16720         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
16721         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
16722         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
16723         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
16724         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
16725         missing C++ and C support for vector bool and/or vector pixel.
16726         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
16727         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
16728         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
16729         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
16730         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
16731         C++ and C types used for vector bool and/or vector pixel.
16732         (vec_st, vec_stl): Add C++ support for vector pixel.
16733         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
16734         (vec_all_ne): Add C++ support for vector pixel.
16735
16736         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
16737         (vec_vmulesb): Add missing C++ function.
16738         (vec_perm): Fix type of third argument in C++ function.
16739         (vec_vsum4shs): Fix C++ function name.
16740         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
16741         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
16742         argument passed to the error handler in C macro.
16743         (vec_nmsub): Remove extra parens around argument names in C macro.
16744         (vec_packpx): Add missing parens in C macro.
16745
16746 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
16747
16748         * machmode.def: Remove vector modes.
16749         * config/alpha/alpha-modes.def: Add supported vector modes.
16750         * config/arm/arm-modes.def: Likewise.
16751         * config/frv/frv-modes.def: Likewise.
16752         * config/i386/i386-modes.def: Likewise.
16753         * config/rs6000/rs6000-modes.def: Likewise.
16754         * config/sh/sh-modes.def: Likewise.
16755
16756 2004-07-23  Matthias Klose  <doko@debian.org>
16757
16758         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
16759         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
16760         * config.h: Regenerate.
16761         * configure: Likewise.
16762
16763 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
16764
16765         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
16766         generated SYMBOL_REFs for labels.
16767         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
16768         Change prototype.
16769         (machopic_stub_name): Remove.
16770         (machopic_indirection_name): New function.
16771         (machopic_mcount_stub_name): Likewise.
16772         (machopic_classify_name): Remove.
16773         (machopic_function_base_sym): New function.
16774         (machpoic_classify_symbol): Likewise.
16775         (machopic_classify_ident): Remove.
16776         (machopic_define_ident): Likewise.
16777         (machopic_define_name): Likewise.
16778         (machopic_name_defined_p): Likewise.
16779         (machopic_ident_defined_p): Likewise.
16780         (darwin_strip_name_encoding): Likewise.
16781         (machopic_define_symbol): New function.
16782         * config/darwin.c (hashtab.h): Include.
16783         (machopic_defined_list): Remove.
16784         (machopic_classify_ident): Likewise.
16785         (machopic_classify_name): Likewise.
16786         (machopic_ident_defined_p): Likewise.
16787         (machopic_define_ident): Likewise.
16788         (machopic_define_name): Likewise.
16789         (machopic_symbol_defined_p): New function.
16790         (machopic_classify_symbol): Likewise.
16791         (machopic_data_defined_p): Use machopic_classify_symbol.
16792         (machopic_define_symbol): New function.
16793         (machopic_function_base_sym): New function.
16794         (machopic_non_lazy_pointers): Remove.
16795         (machopic_non_lazy_ptr_name): Likewise.
16796         (machopic_stubs): Likewise.
16797         (machopic_stub_name): Likewise.
16798         (NON_LAZY_POINTER_SUFFIX): New macro.
16799         (STUB_SUFFIX): Likewise.
16800         (machopic_indirection): New structure.
16801         (machopic_indirections): New variable.
16802         (machopic_indirection_hash): New function.
16803         (machopic_indirection_eq): Likewise.
16804         (machopic_indirection_name): Likewise.
16805         (machopic_mcount_stub_name): New function.
16806         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
16807         hash table.
16808         (machopic_indirect_data_reference): Rework to use new functions.
16809         (machopic_indirect_call_target): Likewise.
16810         (machopic_legitimize_pic_address): Likewise.
16811         (machopic_output_indirection): New function.
16812         (machopic_finish): Use it.
16813         (machopic_operand_p): Rework to use new functions.
16814         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
16815         (darwin_strip_name_encoding): Remove.
16816         (update_non_lazy_ptrs): Remove.
16817         (update_stubs): Likewise.
16818         (darwin_non_lazy_pcrel): Use new functions.
16819         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
16820         (ASM_OUTPUT_LABELREF): Likewise.
16821         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
16822         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
16823         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
16824         (TARGET_STRIP_NAME_ENCODING): Do not use
16825         darwin_strip_name_encoding.
16826         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
16827         darwin_strip_name_encoding.
16828         * config/i386/darwin.h (FUNCTION_PROFILER): Use
16829         machopic_mcount_stub_name.
16830         * config/i386/i386.c (x86_output_mi_thunk): Use
16831         machopic_indirection_name, not machopic_stub_name.
16832         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
16833         machopic_function_base_sym.
16834         (print_operand): Use machopic_classify_symbol.
16835         (rs6000_emit_prologue): Use machopic_function_base_sym.
16836         (output_profile_hook): Do not use machopic_stub_name.
16837         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
16838
16839 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16840
16841         PR c/7284
16842         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
16843         as multiplication.
16844
16845 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16846
16847         * doc/implement-c.texi: New file.
16848         * doc/extend.texi (C Implementation): Move to there.
16849         * doc/gcc.texi: Include implement-c.texi.
16850         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
16851
16852 2004-07-22  Jason Merrill  <jason@redhat.com>
16853
16854         * integrate.c (copy_decl_for_inlining): Remove invisible reference
16855         handling.
16856         * tree-inline.c (setup_one_parameter): Likewise.
16857
16858 2004-07-22  Brian Booth  <bbooth@redhat.com>
16859
16860         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
16861         (substitute_and_fold): Propigate into VUSE operands when possible.
16862         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
16863         (cp_lattice_meet): Handle merging of latticevalues when
16864         UNKNOWN_VAL is present.
16865         (visit_stmt): Visit assignments with V_MUST_DEFs.
16866         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
16867         (ccp_fold): Deal with RHS' that are constant and virtual.
16868         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
16869         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
16870         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
16871         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
16872         computing immediate uses.
16873         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
16874         transition.
16875         (replace_vuse_in): New function.
16876         (likely_value): Add check of vuse operands.
16877         (get_default_value): Set the default value of virtually defined
16878         variables to UKNOWN_VAL instead of VARYING.
16879
16880 2004-07-22  Richard Henderson  <rth@redhat.com>
16881
16882         * expr.c (emit_push_insn): Don't use set_mem_attributes.
16883
16884 2004-07-22  Richard Henderson  <rth@redhat.com>
16885
16886         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
16887         variables due to conditional compilation.
16888
16889 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
16890
16891         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
16892         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
16893         Release SSA names that have been re-renamed.
16894         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
16895         variable.
16896         * tree-ssa-alias.c (init_alias_info): If aliases have been
16897         computed before, clear existing alias information.
16898         (create_name_tags): Do no fixup PT_ANYTHING pointers.
16899         If the new name tag for a pointer is different than the one it
16900         had before, mark the old tag for renaming.
16901         (replace_may_alias): New function.
16902         (group_aliases): Call it.
16903         (setup_pointers_and_addressables): Always call get_tmt_for.
16904         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
16905         once.
16906         (set_pt_anything): New local function.
16907         (set_pt_malloc): New local function.
16908         (merge_pointed_to_info): Don't merge pointed-to variables from
16909         the original pointer if the destination is pointing to an
16910         unknown location.
16911         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
16912         (add_pointed_to_var): Do not add a variable to the points-to
16913         set if the pointer is already pointing to anywhere.
16914         (collect_points_to_info_r): If the defining statement is a PHI
16915         node, only merge pointed-to information if the argument has
16916         already been visited.
16917         (get_tmt_for): Only create a new tag if the pointer didn't
16918         have one already.
16919         (dump_alias_info): Emit more information.
16920         (dump_points_to_info_for): Likewise.
16921         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
16922         try to get the annotation of an SSA_NAME.
16923         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
16924         alias sets when checking is enabled.
16925         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
16926         (eliminate): Mark basic blocks that will need
16927         EH information cleaned up.
16928         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
16929         predecessor.
16930         Initialize need_eh_cleanup.
16931         (fini_pre): Call tree_purge_all_dead_eh_edges and
16932         cleanup_tree_cfg if needed.
16933         Free need_eh_cleanup.
16934         * tree-ssa.c (verify_ssa_name): New function.
16935         (verify_def): Call it.
16936         Re-arrange to avoid printing too many error messages.
16937         (verify_use): Likewise.
16938         (verify_phi_args): Likewise.
16939         (verify_flow_insensitive_alias_info): New function.
16940         (verify_flow_sensitive_alias_info): New function.
16941         (verify_alias_info): New function.
16942         (verify_ssa): Call verify_alias_info.
16943         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
16944         program.
16945         Re-arrange to avoid printing too many error messages.
16946         * tree-ssanames.c (make_ssa_name): Clear
16947         SSA_NAME_IN_FREE_LIST.
16948         (release_ssa_name): Never release a default definition.
16949         (release_defs): New function.
16950         * tree.h: Declare it.
16951         * tree-ssa-dce.c (remove_dead_stmt): Call it.
16952
16953 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
16954
16955         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
16956         If true, do a depth-first search.  Do a breadht-first search,
16957         otherwise.
16958         (walk_use_def_chains): Add new argument IS_DFS.
16959         Update all users.
16960         * tree-flow.h (walk_use_def_chains): Update prototype.
16961
16962 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
16963
16964         * config/cris/cris.md: Tweak formatting.
16965         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
16966         (mover2side, moverside, movemside, movei, op3, andu): Replace
16967         live define_peephole:s with define_peephole2 near-equivalents.
16968         Delete the rest.
16969         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
16970         word-size modes.
16971         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
16972         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
16973         "*mov_sidesi_mem" respectively.
16974
16975 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
16976
16977         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
16978         (gimplify_build1): Move from tree-complex.c do_unop.
16979         (gimplify_build2): Move from tree-complex.c do_binop.
16980         (gimplify_build3): New.
16981         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
16982         Adjust throughout to call the functions above.
16983         * tree-flow.h: Declare the functions above.
16984         * tree-nested.c (gimplify_val): Rename to...
16985         (tsi_gimplify_val): ... this.
16986
16987         * Makefile.in (tree_complex.o): Update dependencies.
16988         (stor-layout.o): Depend on regs.h.
16989         * c-common.c (handle_vector_size_attribute): Update for
16990         vector types without corresponding vector modes.
16991         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
16992         a corresponding vector mode is not available.
16993         * print-tree.c (print_node): Print nunits for vector types
16994         * regclass.c (have_regs_of_mode): New.
16995         (init_reg_sets_1): Initialize it and use it instead
16996         of allocatable_regs_of_mode.
16997         * regs.h (have_regs_of_mode): Declare it.
16998         * stor-layout.c (layout_type): Pick a mode for vector types.
16999         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
17000         build_replicated_const, do_unop, do_binop, do_plus_minus,
17001         do_negate, expand_vector_piecewise, expand_vector_parallel,
17002         expand_vector_addition, expand_vector_operations_1,
17003         expand_vector_operations, tree_lower_operations,
17004         pass_lower_vector_ssa, pass_pre_expand): New.
17005         (expand_complex_operations, pass_lower_complex): Remove.
17006         * tree-optimize.c (init_tree_optimization_passes): Adjust
17007         pass ordering for changes in tree-complex.c.
17008         * tree-pass.h: Declare new passes.
17009         * tree.c (finish_vector_type): Remove.
17010         (make_vector_type): New.
17011         (build_vector_type_for_mode, build_vector_type): Rewritten.
17012         * tree.def (VECTOR_TYPE): Document where the number of
17013         subparts is stored.
17014         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
17015         (make_vector): Remove declaration.
17016
17017 2004-07-21  Richard Henderson  <rth@redhat.com>
17018
17019         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
17020         TREE_THIS_VOLATILE, may_aliases, or optimization level.
17021         (remove_useless_vars): Dump debugging info.
17022         (expand_used_vars): Move ...
17023         * cfgexpand.c (expand_used_vars): ... here.  Make static.
17024         * tree-flow-inline.h (set_is_used): New.
17025         (set_default_def): Use get_var_ann.
17026         * tree-flow.h: Update decls.
17027         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
17028         (create_ssa_var_map): Use it.
17029         * tree-ssa.c (set_is_used): Remove.
17030
17031 2004-07-22  Ben Elliston  <bje@au.ibm.com>
17032
17033         * gdbinit.in: Set a breakpoint on internal_error.
17034
17035 2004-07-21  Richard Henderson  <rth@redhat.com>
17036
17037         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
17038         to create a new basic block.
17039
17040 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
17041
17042         PR c/15052
17043         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
17044         return type on function definitions.  Move other warnings for
17045         qualified return type to -Wreturn-type.  Do not condition any such
17046         warnings on -pedantic.  Update comments.
17047         (start_function): Only copy function type from previous prototype
17048         declaration if return types are compatible.
17049         * c-typeck.c (function_types_compatible_p): Don't condition
17050         warning for incompatibility of volatile qualifiers on the return
17051         type on -pedantic.  Update comment.
17052         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
17053
17054 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
17055
17056         * c-typeck.c (set_init_index): Require designator to be of integer
17057         type.
17058
17059 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
17060
17061         PR c/11250
17062         * c-parse.in (init): Change to exprtype.
17063         (primary): Set original_code for STRING to STRING_CST.
17064         Call maybe_warn_string_init for compound literals.
17065         (initdcl, notype_initdcl): Call maybe_warn_string_init.
17066         (initval): Update.
17067         * c-tree.h (maybe_warn_string_init): New.
17068         (pop_init_level, process_init_element): Use struct c_expr.
17069         (struct c_expr): Update comment.
17070         * c-typeck.c (maybe_warn_string_init): New function.
17071         (digest_init): Call it.  Additional parameter strict_string.  All
17072         callers changed.
17073         (output_init_element): Likewise.
17074         (struct constructor_stack): Use struct c_expr for
17075         replacement_value.
17076         (really_start_incremental_init, push_init_level): Update.
17077         (pop_init_level): Update.  Return struct c_expr.
17078         (process_init_level): Update.  Take struct c_expr argument.
17079
17080 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
17081
17082         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
17083         commit.
17084
17085 2004-07-21  Eric Christopher  <echristo@redhat.com>
17086
17087         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
17088         removal.
17089         * c-decl.c (pop_scope): Ditto.
17090         * calls.c (expand_call): Remove call to current_nesting_level,
17091         update comment accordingly. Remove calls to expand_start_target_temps
17092         and expand_end_target_temps.
17093         * cfgexpand.c (construct_init_block): Remove call to
17094         expand_start_bindings_and_block.
17095         (construct_exit_block): Remove call to expand_end_bindings.
17096         * expr.c (safe_from_p): Remove BIND_EXPR handling.
17097         (expand_expr_real_1): Ditto. Fix formatting.
17098         (expand_vars): Delete.
17099         * stmt.c (POPSTACK): Remove block_stack.
17100         (stmt_status): Remove x_block_stack.
17101         (block_stack): Delete.
17102         (expand_start_bindings_and_block): Ditto.
17103         (expand_start_target_temps): Ditto.
17104         (expand_end_target_temps): Ditto.
17105         (current_nesting_level): Ditto.
17106         (warn_about_unused_variables): Ditto.
17107         (expand_end_bindings): Ditto.
17108         * tree.h: Remove declarations for above.
17109
17110 2004-07-21  Steven Bosscher  <stevenb@suse.de>
17111
17112         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
17113         * rtl.c (note_insn_name): Likewise.
17114         * print-rtl.c (print_rtx): Don't print it.
17115         * cfgrtl.h (can_delete_note_p): Don't handle it.
17116         (rtl_delete_block): Likewise.
17117         * passes.c (rest_of_handle_guess_branch_prob): Remove.
17118         (rest_of_compilation): Don't call it.
17119         * predict.c (process_note_predictions, process_note_prediction,
17120         note_prediction_to_br_prob): Remove.
17121         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
17122         * stmt.c (return_prediction): Remove.
17123         (expand_value_return): Don't call it.  Don't add prediction
17124         notes for return statements.
17125
17126 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
17127
17128         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
17129         once.
17130
17131 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
17132
17133         * c-common.c (vector_types_convertible_p): Use vector types'
17134         TYPE_SIZE and TREE_TYPE instead of their mode.
17135         * convert.c (convert_to_integer): Likewise.
17136         (convert_to_vector): Likewise.
17137         * fold-const.c (fold_convert): Likewise.
17138         * varasm.c (output_constant): Likewise.
17139         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
17140         Allow a VECTOR_TYPE initializer to be made of several vectors.
17141         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
17142         of cleared and need_to_clear, and use fold_convert.
17143         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
17144         integer vectors.
17145
17146 2004-07-20  Richard Henderson  <rth@redhat.com>
17147
17148         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
17149         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
17150
17151 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
17152
17153         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
17154         enormous cost if not TARGET_HARD_MUL.
17155
17156 2004-07-20  Andrew Pinski  <apinski@apple.com>
17157
17158         PR target/16557
17159         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
17160         (ASM_SPEC): here.
17161
17162 2004-07-21  Paul brook  <paul@codesourcery.com>
17163
17164         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
17165
17166 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17167
17168         * fold-const.c (operand_equal_p): Temporarily support NULL args.
17169         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
17170         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
17171
17172 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
17173
17174         * rtl.h (plus_constant): Delete.
17175         (plus_constant_wide): Rename to plus_constant.
17176         (plus_constant_for_output_wide): Delete vestigial prototype.
17177         (GEN_INT): Remove unnecessary cast.
17178         * tree.h (build_int_2, size_int_type): Delete.
17179         (build_int_2_wide): Rename to build_int_2.
17180         (size_int_wide): Rename to size_int_kind.
17181         (size_int_type_wide): Rename to size_int_type.
17182         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
17183         Remove unnecessary cast.
17184         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
17185         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
17186         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
17187         (size_int_type_wide): Rename size_int_type.
17188         (int_const_binop): Use size_int_type.
17189         * c-lex.c (interpret_integer): Use build_int_2.
17190         * final.c (split_double): Remove unnecessary casts.
17191         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
17192
17193 2004-07-20  Richard Henderson  <rth@redhat.com>
17194
17195         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
17196         (gimplify_compound_lval): Use is_gimple_tmp_reg.
17197         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
17198         (is_gimple_tmp_reg): New.
17199         * tree-gimple.h (is_gimple_tmp_reg): Declare.
17200
17201 2004-07-20  Richard Henderson  <rth@redhat.com>
17202
17203         * tree-pretty-print.c (dump_generic_node): Dump
17204         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
17205
17206 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
17207
17208         * tree-mudflap.c (mf_set_options_fndecl): New tree.
17209         (mudflap_init): Set it.
17210         (mudflap_register_call): Remove __mf_init call.
17211         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
17212         to pass "-ignore-reads" option to libmudflap if needed.
17213
17214 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
17215
17216         PR c++/14607
17217         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
17218         (MAKE_DECL_ONE_ONLY): Undefine.
17219         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
17220         readonly_data, one_only_data_section, forget_section): New prototypes.
17221         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
17222         functions.
17223         (pa_select_section): Add one-only (COMDAT) support.
17224         * pa.h (struct machine_function): Define.
17225         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
17226         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
17227         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
17228         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
17229         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
17230         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
17231         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
17232         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
17233         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
17234         for EXTRA_SECTION_FUNCTIONS.
17235         * doc/install.texi: Update binutils requirements.
17236
17237 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
17238
17239         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
17240         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
17241         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
17242         size_t.
17243         (struct VEC): Use unsigned for num and alloc.
17244         * vec.c (struct vec_prefix): Likewise.
17245         (vec_o_reserve): Adjust.
17246
17247         * dbxout.c (dbxout_type): Fix printf format.
17248
17249         * tree.h (binfo_member): Remove.
17250         * tree.c (binfo_member): Remove.
17251
17252 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
17253
17254         * tree.h: Include vec.h
17255         (DEF_VEC_P(tree)): New type.
17256         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
17257         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
17258         (BINFO_LANG_SLOT): Remove.
17259         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
17260         (struct tree_binfo): Turn base_binfos into a trailing
17261         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
17262         (binfo_lang_slots): Remove.
17263         * tree.c (binfo_lang_slots): Remove.
17264         (make_tree_binfo_stat): Take a base binfo count, not a
17265         lang slot count.  Adjust.
17266         * Makefile.in (TREE_H): Add vec.h
17267         * alias.c (record_component_aliases): Adjust BINFO access.
17268         * dbxout.c (dbxout_type): Likewise.
17269         * dwarf2out.c (gen_member_die): Likewise.
17270         * sdbout.c (sdbout_one_type): Likewise.
17271         * tree-dump.c (deque_and_dump): Likewise.
17272         * config/i386/i386.c (classify_argument,
17273         contains_128bit_aligned_vector_p): Likewise.
17274         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
17275         * doc/c-tree.texi (Classes): Update BINFO documentation.
17276
17277 2004-07-20  Steven Bosscher  <stevenb@suse.de>
17278
17279         * c-common.h (check_case_value): Remove prototype.
17280         (c_add_case_label): Adjust prototype.
17281         * c-common.c (check_case_value): Make static.
17282         (check_case_bounds): New function.
17283         (c_add_case_label): Use it.  Take new argument orig_type.
17284         * c-typeck.c (struct c_switch): New orig_type field.
17285         (c_start_case): Set it.
17286         (do_case): Pass it to c_add_case_label.
17287         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
17288         cases from here.  Add the labels in reverse order.
17289         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
17290         (add_case_node): Return nothing, don't check for duplicate cases.
17291         Insert new case nodes in a list, not in an AVL tree.
17292         (expand_end_case_type): Don't turn a case tree into a case list.
17293         (case_tree2list): Remove.
17294         * tree.h (add_case_node): Adjust prototype.
17295
17296 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
17297
17298         * genattr.c (struct range, struct function_unit,
17299         write_units, extend_range, init_range): Remove them.
17300         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
17301         Output "#define INSN_SCHEDULING" here.
17302         * genattrtab.c (struct range, struct function_unit_op,
17303         struct function_unit, struct dimension, enum operator,
17304         operate_exp, expand_units, simplify_knowing,
17305         encode_units_mask, simplify_by_exploding,
17306         find_and_mark_used_attributes, unmark_used_attributes,
17307         add_values_to_cover, increment_current_value,
17308         test_for_current_value, simplify_with_current_value,
17309         simplify_with_current_value_aux, gen_unit,
17310         write_unit_name, write_function_unit_info,
17311         write_complex_function, write_toplevel_expr,
17312         find_single_value, extend_range): Remove.
17313         (write_attr_get): Do not handle common_av->value
17314         being an FFS.
17315         (struct attr_desc): Remove func_units_p and blockage_p.
17316         (write_attr_valueq): Do not handle them.
17317         (find_attr): Do not clear them.
17318         (make_internal_attr): Do not initialize them.
17319         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
17320         * sched-vis.c (init_target_units, insn_print_units,
17321         init_block_visualization, print_block_visualization,
17322         visualize_scheduled_insns, visualize_no_unit,
17323         visualize_stall_cycles, visualize_alloc,
17324         visualize_free, target_units, get_visual_tbl_length,
17325         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
17326         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
17327         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
17328         * haifa-sched.c (blockage_range, clear_units,
17329         schedule_unit, actual_hazard, potential_hazard,
17330         insn_unit, unit_last_insn, unit_tick,
17331         actual_hazard_this_instance, potential_hazard,
17332         schedule_unit, max_insn_queue_index_value): Remove.
17333         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
17334         max_insn_queue_index.
17335         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
17336         * doc/md.texi (Processor pipeline description): Remove
17337         references to old pipeline descriptions.
17338         (Automaton pipeline description): Merge with the above.
17339         (Old pipeline description, Comparison of the two descriptions):
17340         Remove.
17341
17342         * bt-load.c (migrate_btr_def): Remove references to
17343         use_pipeline_interface.
17344         * haifa-sched.c (insn_cost, schedule_insn,
17345         schedule_block, advance_one_cycle, sched_init,
17346         queue_to_ready, sched_finish): Likewise.
17347         * modulo-sched.c (sms_schedule, advance_one_cycle,
17348         ps_has_conflicts): Likewise.
17349         * sched-rgn.c (init_ready): Likewise.
17350         (debug_dependencies): Likewise, and remove an "if (1)".
17351         * target.h (use_dfa_pipeline_interface): Remove.
17352         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17353         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17354         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17355         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17356         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17357         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17358         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17359         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17360         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17361         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17362         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17363         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17364         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17365         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17366         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17367         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17368         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17369         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17370         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
17371
17372 2004-07-19  Roger Sayle  <roger@eyesopen.com>
17373
17374         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
17375
17376 2004-07-19  Jeff Law  <law@redhat.com>
17377
17378         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
17379         (get_eq_expr_value): Use it.  Simplify slightly.
17380
17381 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
17382
17383         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
17384         (umulsidi3_32bit_r4000): Likewise.
17385
17386 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
17387
17388         * vec.h: Propagate location information properly.
17389         (VEC_T_iterate): Add result pointer parameter.
17390         (VEC_T_space): New.
17391         (VEC_T_reserve): Use it.
17392
17393 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
17394
17395         * Makefile.in (c-format.o): Depend on c-format.h.
17396         * c-format.h: New file.
17397         (struct format_char_info): Add CHAIN member.
17398         * c-format.c: Move some types and constants to c-format.h.
17399         (format_type_error): Set to -1.
17400         (struct function_format_info): Use an int for format_type.
17401         (decode_format_type): Return an int.  Return format_type_error
17402         on error.
17403         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
17404         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
17405         (scan_char_table, time_char_table, monetary_char_table): Initialize
17406         CHAIN to NULL.
17407         (n_format_types): New variable.
17408         (check_format_info_main): Handle CHAIN in format_char_info.
17409         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
17410         TARGET_N_FORMAT_TYPES.
17411         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
17412         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
17413         * config/sol2-c.c: New file.
17414         * config/t-sol2: New file.
17415         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
17416         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
17417         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
17418
17419         * doc/extend.texi (Target Format Checks): New section.
17420         (Function Attributes): Mention it.
17421         * doc/invoke.texi: Mention target format checks.
17422         * doc/sourcebuild.texi: Mention target format checks.
17423         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
17424         TARGET_FORMAT_TYPES.
17425
17426 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
17427
17428         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
17429         added.
17430         * config/s390/s390.c (regclass_map initializer): Register 35 added to
17431         ADDR_REGS.
17432         (load_multiple_operation, store_multiple_operation): Removed
17433         pointless sanity check.
17434         (s390_decompose_address): Added check for return_address_pointer_rtx.
17435         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
17436         (s390_return_address_offset): New function.
17437         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
17438         (FRAME_REGNO_P): Added check for register 35.
17439         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
17440         REG_ALLOC_ORDER): Appended entry for register 35.
17441         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
17442         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
17443         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
17444         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
17445         is eliminable using stack pointer or hard frame pointer.
17446         (REGISTER_NAMES): Added name for register 35.
17447         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
17448         pointless sanity check.
17449
17450 2004-07-19  Roger Sayle  <roger@eyesopen.com>
17451
17452         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
17453         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
17454         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
17455         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
17456         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
17457         (fold_relational_const): Tidy up handling of floating point
17458         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
17459         transformation; fold_relational_const assumes constant operands.
17460
17461 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
17462
17463         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
17464         directory.
17465
17466 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
17467
17468         * c-tree.h (struct c_expr): Define.
17469         (C_SET_EXP_ORIGINAL_CODE): Remove.
17470         (parser_build_binary_op, build_compound_expr): Update prototypes.
17471         * c-parse.in (%union): Add exprtype.
17472         (FUNC_NAME): Mark as ttype.
17473         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
17474         exprtype.
17475         (expr): Update.  Define directly in terms of expr_no_commas
17476         instead of using nonnull_exprlist.
17477         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
17478         offsetof_member_designator, typespec_nonreserved_nonattr, init,
17479         initval, designator, component_declarator,
17480         component_notype_declarator, enumerator, array_declarator,
17481         condition, exexpr, switch_statement, stmt_nocomp, stmt,
17482         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
17483         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
17484         where appropriate.
17485         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
17486         * c-common.c (c_common_truthvalue_conversion): Don't check
17487         C_EXP_ORIGINAL_CODE.
17488         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
17489         Don't use C_EXP_ORIGINAL_CODE.
17490         (default_conversion, default_function_array_conversion): Don't use
17491         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
17492         (internal_build_compound_expr): Merge into build_compound_expr.
17493         (build_compound_expr): Take two operands instead of a TREE_LIST.
17494         * objc/objc-act.c (get_super_receiver): Update calls to
17495         build_compound_expr.
17496
17497 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
17498
17499         * config/sh/sh.c (sh_use_dfa_interface): Remove.
17500         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
17501         hook_int_void_1.
17502         * config/sh/sh.md: Extract pipeline descriptions
17503         into separate files.
17504         * config/sh/sh1.md: New file, extracted from sh.md.
17505         * config/sh/sh4.md: New file, extracted from sh.md.
17506         * config/sh/shmedia.md: New file, extracted from sh.md
17507         and rewritten using new-style pipeline description.
17508
17509 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
17510
17511         * config/pa/pa.md: Delete the two remaining define_peephole
17512         patterns.
17513
17514 2004-07-18  Steven Bosscher  <stevenb@suse.de>
17515             Joseph S. Myers  <jsm@polyomino.org.uk>
17516
17517         * c-common.c (c_common_truthvalue_conversion): Don't warn if
17518         TREE_NO_WARNING is set.
17519
17520 2004-07-18  Roger Sayle  <roger@eyesopen.com>
17521
17522         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
17523         simplify_builtin_strncmp): Delete.
17524         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
17525         Change argument to accept an arglist instead of an "exp".  Assume
17526         that the return type is always integer_type_node.  Copy missing
17527         transformations from their now obsolete simplify_builtin_*
17528         equivalents.
17529         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
17530         fold_builtin_strcmp and fold_builtin_strncmp.
17531         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
17532         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
17533         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
17534
17535 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
17536
17537         * Makefile.in (tree-alias-common.o): Update dependencies.
17538
17539 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
17540
17541         * cfgloop.c (flow_loop_nested_p): Fix comment.
17542
17543 2004-07-17  Jason Merrill  <jason@redhat.com>
17544
17545         PR c++/16115
17546         * stor-layout.c (relayout_decl): New fn.
17547         * tree.h: Declare it.
17548         (DECL_BY_REFERENCE): New macro.
17549
17550 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
17551
17552         * libgcc2.c (__enable_execute_stack): New symbol.
17553         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
17554         and declare __enable_execute_stack.
17555         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
17556         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
17557         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
17558         ENABLE_EXECUTE_STACK.
17559         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
17560         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
17561         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
17562         ENABLE_EXECUTE_STACK.
17563         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17564         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
17565         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
17566         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
17567         ENABLE_EXECUTE_STACK.
17568         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17569         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17570         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17571         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
17572         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
17573         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
17574         (sparc64_initialize_trampoline): Likewise.
17575         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
17576
17577 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
17578
17579         * langhooks.h (builtin_function): New langhook.
17580         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
17581         (LANG_HOOKS_INITIALIZER): Update.
17582         * tree.h (builtin_function): Remove.
17583         * doc/tm.texi: Update.
17584         * c-tree.h (builtin_function): Declare.
17585         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
17586         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
17587         config/ia64/ia64.c, config/iq2000/iq2000.c,
17588         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
17589         config/stormy16/stormy16.c: All callers of builtin_function
17590         changed.
17591
17592 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
17593
17594         PR target/16556
17595         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
17596         Remove white space after the backslash.
17597
17598 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
17599
17600         PR rtl-optimization/16294
17601         * resource.c (return_insn_p): New predicate.
17602         (mark_target_live_regs): Use it.  Special-case return insns.
17603         (init_resource_info): Use it.  Don't scan the epilogue past
17604         a return.
17605
17606 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17607
17608         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
17609         destroy dominance information.
17610         * passes.c (rest_of_handle_loop2):  Free dominance information.
17611         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
17612         jump threading.
17613         (thread_jumps): Update dominance information and remove unreachable
17614         blocks.
17615         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
17616         information and remove the unreachable block.
17617
17618 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
17619
17620         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
17621
17622 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
17623
17624         * doc/sourcebuild.texi: Remove libf2c entry.
17625
17626 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
17627
17628         * config/i386/i386.md (movv16qi_internal): Fix typo.
17629
17630 2004-07-17  Steven Bosscher  <stevenb@suse.de>
17631
17632         * final.c (final_scan_insn): Fix broken commit from previous
17633         patch.
17634
17635 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
17636
17637         * c-typeck.c (parser_build_binary_op): Condition warnings for
17638         X<=Y<=Z on -Wparentheses instead of -Wextra.
17639         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
17640         supported for C only.
17641
17642 2004-07-17  Steven Bosscher  <stevenb@suse.de>
17643
17644         * cfgcleanup.c (try_simplify_condjump): Don't remove line
17645         notes to avoid unreachable code warnings.
17646         * toplev.c (backend_init): Don't emit line notes for
17647         unreachable code warnings.
17648
17649         * combine.c (distribute_notes): Don't distribute a
17650         REG_VTABLE_REF note.
17651         * final.c (final_scan_insn): Don't handle it.
17652         * rtl.c (reg_note_name): Remove it.
17653         * rtl.h (enum reg_node): Dito.
17654
17655         * emit-rtl.c (force_line_numbers, restore_line_number_status):
17656         Remove.
17657         * rtl.h (force_line_numbers, restore_line_number_status):
17658         Remove prototypes.
17659
17660         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
17661         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
17662         (using_eh_for_cleanups): Also moved here.
17663
17664         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
17665         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
17666         to expand_start_case and add_case_node.
17667         * stmt.c (struct nesting): Cleanup unused fields condition_code,
17668         last_unconditional_cleanup, nominal_type, printname, and
17669         line_number_status.
17670         (struct fixup_goto): Remove.
17671         (struct stmt_status): Remove x_goto_fixup_chain field.
17672         (goto_fixup_chain): Remove.
17673         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
17674         pushcase, pushcase_range): Remove.
17675         (expand_start_bindings_and_block): Don't set unused fields in
17676         the nesting stack.
17677         (expand_start_case, add_case_node): Cleanup unused formal arguments.
17678         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
17679         instead of emit_jump_if_reachable.
17680         (emit_case_nodes): Likewise.
17681         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
17682         static.
17683         (update_eh_label): Work around left-over exception handing regions.
17684         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
17685         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
17686         (pass_cleanup_cfg_post_optimizing): New pass.
17687         (init_tree_optimization_passes): Run the new pass after all
17688         optimizations.
17689         * tree.h (pushcase, pushcase_range): Remove prototypes.
17690         (expand_start_case, add_case_node): Update prototypes.
17691
17692 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
17693
17694         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
17695
17696 2004-07-16  Richard Henderson  <rth@redhat.com>
17697
17698         * builtins.c (std_expand_builtin_va_arg): Remove.
17699         (expand_builtin_va_arg): Remove.
17700         * expr.h: Don't declare them.
17701         * gimplify.c (mark_decls_volatile_r): Remove.
17702         (copy_if_shared_r): Don't call it.
17703         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
17704         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
17705         * gimple-low.c (lower_stmt): Likewise.
17706         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
17707         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
17708         * tree-ssa-operands.c (get_expr_operands): Likewise.
17709         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
17710         EXPAND_BUILTIN_VA_ARG.
17711         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
17712         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
17713         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
17714         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
17715
17716 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
17717
17718         * tree-ssa-pre.c (insert_aux): Break out if we hit
17719         a critical edge.
17720
17721 2004-07-16  Richard Henderson  <rth@redhat.com>
17722
17723         * basic-block.h (remove_fake_exit_edges): Declare.
17724         * cfganal.c (remove_fake_predecessors): Rename from
17725         remove_fake_successors; iterate over predecessors.
17726         (remove_fake_exit_edges): New.
17727         * cfgcleanup.c (try_optimize_cfg): Use it.
17728         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
17729         * predict.c (estimate_probability): Likewise.
17730         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
17731         * tree-cfg.c (make_edges): Likewise.
17732         * tree-ssa-pre.c (fini_pre): Likewise.
17733         * profile.c (instrument_edges): Don't remove_fake_edges.
17734         (branch_prob): Do it earlier here.
17735
17736 2004-07-16  Richard Henderson  <rth@redhat.com>
17737
17738         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
17739         switchification wrt CONSTRUCTOR.  Document the reason.
17740
17741 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
17742
17743         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
17744         that prevented descriptive __mf_check source location strings.
17745
17746 2004-07-16  Richard Henderson  <rth@redhat.com>
17747
17748         * tree-def (WITH_SIZE_EXPR): New.
17749         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
17750         * expr.c (expand_expr_real_1): Likewise.
17751         * gimplify.c (maybe_with_size_expr): New.
17752         (gimplify_arg, gimplify_modify_expr): Use it.
17753         (gimplify_modify_expr_to_memcpy): Take size parameter.
17754         (gimplify_modify_expr_to_memset): Likewise.
17755         (gimplify_expr): Handle WITH_SIZE_EXPR.
17756         * tree-alias-common.c (find_func_aliases): Likewise.
17757         * tree-eh.c (tree_could_trap_p): Likewise.
17758         (tree_could_throw_p): Likewise.
17759         * tree-gimple.c (is_gimple_lvalue): Likewise.
17760         (get_call_expr_in): Likewise.
17761         * tree-inline.c (estimate_num_insns_1): Likewise.
17762         (expand_calls_inline): Likewise.
17763         * tree-nested.c (convert_call_expr): Likewise.
17764         * tree-pretty-print.c (dump_generic_node): Likewise.
17765         * tree-sra.c (sra_walk_expr): Likewise.
17766         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
17767         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
17768         * tree-ssa-operands.c (get_expr_operands): Likewise.
17769         * tree-tailcall.c (find_tail_calls): Likewise.
17770
17771         * calls.c (expand_call): Reset old_stack_allocated after
17772         calling emit_stack_restore.
17773
17774 2004-07-16  Richard Henderson  <rth@redhat.com>
17775
17776         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
17777         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
17778         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
17779         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
17780         copy_res_decl_for_inlining.
17781
17782         * tree-inline.c (declare_return_variable): New modify_dest argument.
17783         Use it as the return value, when possible or manditory.  Handle
17784         TREE_ADDRESSABLE types.
17785         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
17786         replacement of CALL_EXPR.
17787
17788 2004-07-16  Richard Henderson  <rth@redhat.com>
17789
17790         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
17791         * gimple-low.c (expand_var_p): Don't check it.
17792         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
17793         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
17794         * tree-ssa-operands.c (add_stmt_operand): Likewise.
17795         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
17796         (find_referenced_vars): Don't call them.
17797         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
17798
17799 2004-07-16  Richard Henderson  <rth@redhat.com>
17800
17801         * function.c (pass_by_reference): True for all variable sized types.
17802
17803 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
17804
17805         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
17806         * tree-pretty-print.c: Include tree-chrec.h.
17807         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
17808         and POLYNOMIAL_CHREC nodes.
17809
17810 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
17811
17812         * builtins.c (expand_builtin_stpcpy): Do not create temporary
17813         reg with VOIDmode.
17814
17815 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
17816
17817         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
17818
17819 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
17820
17821         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
17822         to BASE_REGNUM.
17823         * config/s390/s390.c: Likewise.
17824         * config/s390/s390.h: Likewise.
17825
17826 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17827
17828         * config/mips/mips.md (addsi3, adddi3): Remove special handling
17829         of $sp adds.  Remove REGNO checks from mips16 patterns.
17830
17831 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17832
17833         * config/mips/mips.md: Delete outdated comment.
17834
17835 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17836
17837         * config/mips/mips.c (get_float_compare_codes): Delete.
17838         (mips_emit_compare): New function, mostly extracted from
17839         get_float_compare_codes and gen_conditional_branch.
17840         (gen_conditional_branch, gen_conditional_move): Use it.
17841
17842 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
17843
17844         * genautomata.c (add_vect): Speedup by using integers as
17845         bit-vectors for walking through the comb_vect and finding
17846         a match.
17847
17848 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17849
17850         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
17851         operand is an uns_arith_operand; use subtraction otherwise.
17852         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
17853         not just arith_operands.
17854
17855 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17856
17857         * config/mips/mips-protos.h (gen_int_relational): Delete.
17858         (mips_emit_scc): Declare.
17859         * config/mips/mips.c (internal_test): Delete.
17860         (sle_operand, sleu_operand): New functions.
17861         (map_test_to_internal_test, gen_int_relational): Delete.
17862         (mips_emit_binary, mips_relational_operand_ok_p)
17863         (mips_emit_int_relational, mips_zero_if_equal)
17864         (mips_emit_scc): New functions.
17865         (gen_conditional_branch): Rework to use mips_emit_int_relational.
17866         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
17867         sleu_operand.
17868         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
17869         (sltu, sleu): Use mips_emit_scc.
17870         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
17871         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
17872         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
17873
17874 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17875
17876         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
17877
17878 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17879
17880         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
17881         (*sne_[sd]i): Likewise sne_[sd]i_zero.
17882         (*sgt_[sd]i): ...and sgt_[sd]i.
17883         (*slt_[sd]i): ...and slt_[sd]i.
17884         (*sgtu_[sd]i): ...and sgtu_[sd]i.
17885         (*sltu_[sd]i): ...and sltu_[sd]i.
17886         (*sleu_[sd]i): ...and sleu_[sd]i_const.
17887         Name previously unnamed mips16 patterns.  Formatting fixes.
17888
17889 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17890
17891         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
17892         (branch_type): Delete.
17893         (gen_conditional_branch, gen_conditional_move)
17894         (mips_gen_conditional_trap): Update after name change.  Get the
17895         comparison mode from cmp_operands[0].
17896         * config/mips/mips.h (cmp_type, branch_type): Delete.
17897         (cmp_operands): Renamed from branch_cmp.
17898         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
17899         name change.  Don't set branch_type.
17900         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
17901         mode class of cmp_operands[0] rather than branch_type.  Update after
17902         name change.
17903
17904 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17905
17906         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
17907         of 0...255 to 0 when inside a SET.
17908
17909 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
17910
17911         * config/mips/mips.md: Remove mips16 define_peepholes.
17912
17913 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
17914
17915         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
17916         (fini_pre): Remove fake edges.
17917
17918 2004-07-15  Richard Henderson  <rth@redhat.com>
17919
17920         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
17921         (get_indirect_ref_operands, get_call_expr_operands): ... these.
17922
17923 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
17924
17925         * vec.h (VEC_address): New function.
17926
17927 2004-07-14  Jason Merrill  <jason@redhat.com>
17928
17929         PR middle-end/15885
17930         * gimplify.c (gimplify_arg): New fn, split out from...
17931         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
17932
17933 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
17934
17935         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
17936         generate code which is generated by pushqi1 now
17937         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
17938
17939 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
17940
17941         * combine.c (simplify_set): match the mode of the constant 0 with
17942         the tested operand to match the compare behaviour and the
17943         simplify_relational_operation() expectation.
17944
17945 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
17946
17947         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
17948         ("bordered"): Same.
17949
17950 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
17951
17952         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
17953         unconditionally.
17954         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
17955
17956 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
17957
17958         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
17959         calls in mips16 code.
17960
17961 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
17962
17963         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
17964         the destination of the li as well as for the neg.
17965
17966 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
17967
17968         g++/15861
17969         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
17970         * cgraph.h: Update declaration.
17971         * c-decl.c (build_cdtor): Update call with default priority.
17972         * coverage.c (create_coverage): Ditto.
17973         * tree-mudflap.c (mf_init_fndecl): New tree.
17974         (mudflap_init): Set it.
17975         (mudflap_register_call): Arrange to call __mf_init before the first
17976         __mf_register call.
17977         (mudflap_finish_file): Mark the mudflap static initializer as extra
17978         high priority, to beat all C++ static constructors.
17979
17980 2004-07-15  Jeff Law  <law@redhat.com>
17981
17982         * loop.c (check_insn_for_givs): Restore check for code labels that was
17983         accidentally deleted by a recent checkin.
17984
17985 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
17986
17987         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
17988         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
17989
17990 2004-07-14  Richard Henderson  <rth@redhat.com>
17991
17992         * print-tree.c (print_node): Fix casts last change.
17993
17994 2004-07-15  Paul Brook  <paul@codesourcery.com>
17995
17996         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
17997         to TARGET_UNWIND_INFO.
17998         * except.c (output_function_exception_table): Ditto.
17999         * except.h: Ditto.
18000         * opts.c (decode_options): Ditto.
18001         * passes.c (rest_of_handle_final): Ditto.
18002         * final.c (final_start_function): Ditto.
18003         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
18004         target hook.
18005         * targhooks.h (default_unwind_emit): Declare.
18006         * targhooks.c (default_unwind_emit): New function.
18007         * target-def.h: Define and use TARGET_UNWIND_EMIT.
18008         * target.h (struct gcc_target): Add unwind_emit.
18009         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
18010         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
18011         Remove IA64_UNWIND_EMIT.
18012         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
18013
18014 2004-07-14  Richard Henderson  <rth@redhat.com>
18015
18016         * print-tree.c (print_node): Handle SSA_NAME.
18017
18018 2004-07-14  James E Wilson  <wilson@specifixinc.com>
18019
18020         PR target/16325
18021         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
18022         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
18023
18024 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
18025
18026         * expr.c (expand_assignment): Reenable bitfield += optimizations.
18027         Use alias set 0 for memory, do proper mode calculations and adjust
18028         address for memories.
18029
18030 2004-07-14  Per Bothner  <per@bothner.com>
18031
18032         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
18033         structure with extra column field.
18034         * tree.c (expand_location):  Also fill in column field.
18035         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
18036         gets confused by the two conditionally-compiled definitions.
18037
18038 2004-07-14  Eric Christopher  <echristo@redhat.com>
18039
18040         * calls.c (expand_call): Fix typo in comment.
18041
18042 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
18043
18044         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
18045         comparision of TFmode.
18046
18047 2004-07-14  Richard Henderson  <rth@redhat.com>
18048
18049         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
18050         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
18051         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
18052         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
18053         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
18054         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
18055         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
18056         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
18057         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
18058
18059 2004-07-14  Mike Stump  <mrs@apple.com>
18060
18061         * config/darwin.h (WINT_TYPE): Define to be int to match
18062         system header files.
18063
18064 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
18065
18066         * config/xtensa/xtensa.c (function_arg_advance): Check for args
18067         that must be passed in the stack.
18068         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
18069         arguments if the size is not a constant.
18070
18071 2004-07-14  Per Bothner  <per@bothner.com>
18072
18073         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
18074         instead of EXPR_LOCUS in a boolean context, which is always true
18075         if --enable-mapped-location.
18076         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
18077
18078 2004-07-14  Richard Henderson  <rth@redhat.com>
18079
18080         * dominance.c (struct dom_info): Add fake_exit_edge.
18081         (init_dom_info): Allocate it.
18082         (free_dom_info): Free it.
18083         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
18084         in two passes.
18085         (calc_idoms): Honor fake_exit_edge.
18086
18087 2004-07-13  Jason Merrill  <jason@redhat.com>
18088
18089         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
18090         (rhs_test_for): New fn.
18091         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
18092         * tree-gimple.h: Declare them.
18093         * gimplify.c (gimplify_modify_expr): Use the new fns.
18094
18095 2004-07-14  Richard Henderson  <rth@redhat.com>
18096
18097         * config/arm/arm-protos.h (arm_va_arg): Remove.
18098         * config/arm/arm.c (arm_va_arg): Remove.
18099         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
18100         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
18101
18102 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18103
18104         * pa.c (fix_range): New function to mark a range(s) of registers as
18105         fixed registers.
18106         (override_options): Call fix_range if the -mfixed-range option string
18107         is not empty.
18108         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
18109         * doc/invoke.texi (-mfixed-range): Document new option.
18110
18111 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
18112
18113         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
18114         for TARGET_64BIT.
18115         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
18116
18117 2004-07-14  Roger Sayle  <roger@eyesopen.com>
18118
18119         * expmed.c (expand_sdiv_pow2): New function to expand signed division
18120         by a positive power of two, split out from expand_divmod.  Provide
18121         an alternate implementation when shifts are expensive.  Lower the
18122         threshold for using a branchless implementation to BRANCH_COST >= 2.
18123         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
18124
18125 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
18126
18127         * tree-dfa.c (make_rename_temp): *Really* work just
18128         like create_tmp_var if called while outside SSA form.
18129
18130 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
18131
18132         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
18133         for division by zero.
18134         ("umodsi3"): Likewise.
18135
18136 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
18137
18138         * config/mips/mips.c (mips_output_move): When generating mips16 code,
18139         force loads of negative constants to be split.
18140         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
18141         Generalize SImode li/neg splitter to cope with other modes.
18142
18143 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
18144
18145         * expmed.c: Remove more references to QUEUED in the comments.
18146         * expr.c: Likewise.
18147
18148 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
18149
18150         Revert:
18151         2004-07-13  Richard Henderson  <rth@redhat.com>
18152         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
18153         correctly.
18154
18155 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
18156
18157         * tree-dfa.c (make_rename_temp): Work just like
18158         create_tmp_var if called while outside SSA form.
18159
18160 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
18161
18162         * expr.c (enqueue_insn, finish_expr_for_function,
18163         protect_from_queue, queued_subexp_p, mark_queue,
18164         emit_insns_enqueued_after_mark, emit_queue,
18165         expand_increment): Remove.
18166         (store_constructor): Expand increment as an assignment.
18167         (expand_expr_real_1 <case PREINCREMENT_EXPR,
18168         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
18169         case POSTDECREMENT_EXPR>): Abort.
18170         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
18171         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
18172         protect_from_queue, emit_queue, queued_subexp_p): Remove.
18173         * function.h (pending_chain, x_pending_chain): Remove.
18174         * rtl.def (QUEUED): Remove.
18175
18176         * emit-rtl.c (copy_insn_1, copy_most_rtx,
18177         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
18178         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
18179         encode_units_mask): Likewise.
18180         * local-alloc.c (equiv_init_varies_p): Likewise.
18181         * rtl.c (copy_rtx): Likewise.
18182         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
18183         * simplify-rtx.c (simplify_gen_subreg): Likewise.
18184         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
18185
18186         * builtins.c (expand_builtin, expand_builtin_apply,
18187         expand_builtin_mathfn, expand_builtin_mathfn_2,
18188         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
18189         Remove calls to emit_queue and protect_from_queue.
18190         * calls.c (expand_call, precompute_arguments,
18191         precompute_register_parameters, rtx_for_function_call,
18192         store_one_arg): Likewise.
18193         * dojump.c (do_compare_and_jump, do_jump): Likewise.
18194         * explow.c (memory_address): Likewise.
18195         * expmed.c (clear_by_pieces_1, clear_storage,
18196         clear_storage_via_libcall, emit_group_load,
18197         emit_group_store, emit_store_flag,
18198         expand_expr_real_1, store_by_pieces,
18199         store_constructor, store_expr, try_casesi,
18200         try_tablejump): Likewise.
18201         * function.c (expand_pending_sizes): Likewise.
18202         * optabs.c (emit_cmp_and_jump_insns,
18203         emit_conditional_add, emit_conditional_move,
18204         expand_fix, expand_float, prepare_cmp_insn): Likewise.
18205         * stmt.c (emit_case_bit_tests,
18206         expand_asm_expr, expand_computed_goto,
18207         expand_decl_init, expand_end_case_type,
18208         expand_end_stmt_expr, expand_expr_stmt_value,
18209         expand_return, expand_start_case,
18210         optimize_tail_recursion): Likewise.
18211         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
18212         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
18213
18214 2004-07-14  Ben Elliston  <bje@au.ibm.com>
18215
18216         * vec.h: Comment fix.
18217
18218 2004-07-13  Richard Henderson  <rth@redhat.com>
18219
18220         * target.h (struct gcc_target): Add calls.pass_by_reference.
18221         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
18222         * function.c (pass_by_reference): Use the hook.
18223         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
18224         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
18225         (hook_pass_by_reference_must_pass_in_stack): New.
18226         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
18227         (alpha_pass_by_reference): New.
18228         (TARGET_PASS_BY_REFERENCE): New.
18229         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18230         * config/arc/arc.c (arc_pass_by_reference): New.
18231         (TARGET_PASS_BY_REFERENCE): New.
18232         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18233         (FUNCTION_ARG_CALLEE_COPIES): True.
18234         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
18235         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
18236         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
18237         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18238         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18239         * config/cris/cris.c (cris_pass_by_reference): New.
18240         (TARGET_PASS_BY_REFERENCE): New.
18241         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
18242         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
18243         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18244         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
18245         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18246         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
18247         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
18248         (frv_function_arg_pass_by_reference): Remove.
18249         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18250         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
18251         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
18252         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
18253         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18254         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
18255         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
18256         (ia64_pass_by_reference): Rename from
18257         ia64_function_arg_pass_by_reference.
18258         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18259         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18260         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
18261         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
18262         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
18263         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18264         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
18265         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
18266         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
18267         (m32r_pass_by_reference): Adjust prototype.  Make static.
18268         Handle mode sizes correctly.
18269         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18270         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
18271         (m68hc11_function_arg_pass_by_reference): Remove.
18272         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18273         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
18274         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
18275         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18276         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
18277         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
18278         (mips_va_arg): Use pass_by_reference.
18279         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
18280         Handle mode sizes correctly.
18281         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18282         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
18283         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
18284         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
18285         (mmix_pass_by_reference): Rename from
18286         mmix_function_arg_pass_by_reference.
18287         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18288         (FUNCTION_ARG_CALLEE_COPIES): True.
18289         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
18290         (mn10300_pass_by_reference): New.
18291         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18292         (FUNCTION_ARG_CALLEE_COPIES): True.
18293         * config/pa/pa.c (pa_pass_by_reference): New.
18294         (TARGET_PASS_BY_REFERENCE): New.
18295         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18296         (FUNCTION_ARG_CALLEE_COPIES): True.
18297         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
18298         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
18299         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
18300         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18301         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
18302         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
18303         (s390_pass_by_reference): Rename from
18304         s390_function_arg_pass_by_reference.
18305         (s390_function_arg_advance): Don't query pass-by-ref.
18306         (s390_function_arg): Likewise.
18307         (s390_gimplify_va_arg): Use pass_by_reference.
18308         (s390_call_saved_register_used): Likewise.
18309         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18310         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
18311         (shcompact_byref, sh_pass_by_reference): New.
18312         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18313         (SHCOMPACT_BYREF): Remove.
18314         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
18315         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
18316         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
18317         (sparc_gimplify_va_arg): Use pass_by_reference.
18318         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18319         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18320         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
18321         (v850_pass_by_reference): New.
18322         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18323         (FUNCTION_ARG_CALLEE_COPIES): True.
18324         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
18325         FUNCTION_ARG_PASS_BY_REFERENCE docs.
18326
18327 2004-07-14  Richard Henderson  <rth@redhat.com>
18328             Richard Sandiford  <rsandifo@redhat.com>
18329
18330         * config/mips/mips-protos.h (mips_va_arg): Delete.
18331         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
18332         * config/mips/mips.c: Include tree-gimple.h.
18333         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
18334         (mips_arg_info): Remove special handling of must_pass_in_stck args.
18335         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
18336         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
18337
18338 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
18339
18340         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
18341         arguments for COND_EXPR in big-endian adjustment code.
18342
18343 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18344
18345         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
18346         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
18347         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
18348         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
18349
18350 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
18351
18352         PR tree-optimization/16443
18353         * tree-ssa-alias.c: Add more description for
18354         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
18355         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
18356         clobbering of call-clobbered and addressable variables.  If
18357         there are any before aliases have been computed, add them.
18358
18359 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
18360
18361         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
18362         verification.
18363
18364 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
18365
18366         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
18367         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
18368         to the same type.
18369
18370 2004-07-13  Per Bothner  <per@bothner.com>
18371
18372         * collect2.c (main):  Handle --no-demangle and --demangle flags.
18373
18374 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
18375
18376         * Makefile.in (OBJS-common): Add tree-data-ref.o.
18377         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
18378         (tree-data-ref.o): New rule.
18379         * lambda.h: New file.
18380         * tree-data-ref.c: New file.
18381         * tree-data-ref.h: New file.
18382         * tree.c (int_cst_value, tree_fold_gcd): New functions.
18383         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
18384
18385 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
18386
18387         PR target/13926
18388         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
18389         * config/sparc/sparc.c (output_ubranch): New function.
18390         * config/sparc/sparc.md (jump pattern): Use it.
18391
18392 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
18393
18394         PR target/16494
18395         * config/sparc/sparc.c (output_cbranch): Properly guard
18396         the code handling far branches with TARGET_V9.
18397         * config/sparc/sparc.md (length attribute): Document the
18398         side-effect of having a length greater or equal to 3.
18399
18400 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
18401             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
18402
18403         PR target/15186
18404         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
18405         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
18406
18407 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
18408             Martin Sebor  <sebor@roguewave.com>
18409
18410         PR target/12602
18411         * doc/invoke.texi (SPARC options): Document -threads
18412         and -pthreads on Solaris.
18413
18414 2004-07-13  Richard Henderson  <rth@redhat.com>
18415
18416         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
18417         by reference.
18418         (ind_gimplify_va_arg_expr): Remove.
18419         * tree.h (ind_gimplify_va_arg_expr): Remove.
18420         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
18421         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
18422         argsp to be null.
18423
18424         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
18425         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
18426         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
18427         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
18428         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
18429
18430 2004-07-13  Richard Henderson  <rth@redhat.com>
18431
18432         * function.c (pass_by_reference): New.
18433         (assign_parm_find_data_types): Use it.
18434         * calls.c (initialize_argument_information): Likewise.
18435         (emit_library_call_value_1): Likewise.
18436         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
18437         * function.h (pass_by_reference): Declare.
18438
18439 2004-07-13  Richard Henderson  <rth@redhat.com>
18440
18441         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
18442         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
18443         * expr.h (MUST_PASS_IN_STACK): Remove.
18444         * system.h (MUST_PASS_IN_STACK): Poison.
18445         * tree.h (must_pass_in_stack_var_size): Declare.
18446         (must_pass_in_stack_var_size_or_pad): Declare.
18447         * calls.c (must_pass_in_stack_var_size): New.
18448         (must_pass_in_stack_var_size_or_pad): Rename from
18449         default_must_pass_in_stack.
18450         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
18451         (TARGET_MUST_PASS_IN_STACK): New.
18452         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
18453         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
18454         (TARGET_MUST_PASS_IN_STACK): New.
18455         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
18456         * config/frv/frv.c (frv_must_pass_in_stack): New.
18457         (TARGET_MUST_PASS_IN_STACK): New.
18458         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
18459         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
18460         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
18461         (ix86_must_pass_in_stack): Make static.
18462         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
18463         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
18464         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
18465         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
18466         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
18467         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
18468         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
18469         (mcore_must_pass_on_stack): Remove.
18470         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
18471         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
18472         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
18473         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
18474         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
18475         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
18476         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
18477         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
18478         (TARGET_MUST_PASS_IN_STACK): New.
18479         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
18480         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
18481         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
18482         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
18483         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
18484         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
18485         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
18486         MUST_PASS_IN_STACK.
18487
18488         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
18489         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
18490         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
18491         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
18492         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
18493         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
18494         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
18495         config/xtensa/xtensa.c: Use target hook.
18496
18497 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
18498
18499         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
18500         * configure: Rebuilt.
18501
18502 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
18503
18504         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
18505         * config/mips/mips.h (mips_reg_names): Don't declare.
18506         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
18507         (TARGET_NAME_REGS): Delete.
18508         (TARGET_SWITCHES): Remove -mrnames.
18509         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
18510         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
18511         in REGISTER_NAMES.
18512         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
18513         (override_options): Remove handling of TARGET_NAME_REGS.
18514
18515 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
18516
18517         * config/mips/mips.h (TARGET_*): Boolify.
18518
18519 2004-07-12  Nick Clifton  <nickc@redhat.com>
18520
18521         * config.gcc: Add sh-*-symbianelf target.
18522         * config/sh/sh.c: Add new target macros:
18523         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
18524         TARGET_CXX_IMPORT_EXPORT_CLASS.
18525         (sh_file_start): Create a definition of the .directive section.
18526         (sh_attribute): Add dllimport and dllexport attributes.
18527         * config/sh/symbian-pre.h: New file.
18528         * config/sh/symbian-post.h: New file.
18529         * config/sh/symbian.c: New file. Contains Symbian specific
18530         functions.
18531         * config/sh/sh-protos.h: Add prototypes for new functions
18532         provided by symbian.c.
18533         * config/sh/t-symbian: New file.
18534         * doc/extend.texi: Document support for dllimport and dllexport
18535         attributes by the sh-symbianelf target.
18536
18537 2004-07-12  James E Wilson  <wilson@specifixinc.com>
18538
18539         * Makefile.in (AR): Use @AR@ not ar.
18540         (NM): New.
18541         (AR_FOR_TARGET): Use $(AR) not ar for native.
18542         (NM_FOR_TARGET): Use $(NM) not nm for native.
18543         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
18544         * configure: Regenerate.
18545
18546 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
18547
18548         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
18549         special case.
18550         (ashldi3_sp64): Likewise.
18551
18552 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18553
18554         PR target/16477
18555         * pa.c (function_arg): Update comment.
18556         * pa.h (BLOCK_REG_PADDING): Define.
18557
18558 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18559
18560         PR tree-optimization/16461
18561         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
18562         arguments of phi nodes.
18563
18564 2004-07-12  Devang Patel  <dpatel@apple.com>
18565
18566         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
18567
18568 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
18569
18570         * function.c (expand_function_start): Ensure r_save is in Pmode.
18571         * calls.c (prepare_call_address): Ensure static_chain_value is
18572         in Pmode.
18573         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
18574         r_save_area are in Pmode.
18575         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
18576         fnaddr, and static_chain are in Pmode.
18577
18578 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
18579
18580         PR target/16445
18581         * config/ia64/ia64.c (bundling): Don't count ignored insns.
18582
18583 2004-07-12  Richard Henderson  <rth@redhat.com>
18584
18585         * target.h (struct gcc_target): Move gimplify_va_arg_expr
18586         next to build_builtin_va_list.
18587         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
18588         * builtins.c (gimplify_va_arg_expr): Likewise.
18589         * gimplify.c (copy_if_shared_r): Likewise.
18590
18591 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
18592
18593         * passes.c (rest_of_decl_compilation): Don't defer call of
18594         assemble_variable if its DECL_RTL is already set.
18595
18596 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
18597
18598         * cfgloop.h (struct loop): Add nb_iterations field.
18599         (current_loops): Declare.
18600         * tree-chrec.c (chrec_not_analyzed_yet,
18601         chrec_dont_know, chrec_known, count_ev_in_wider_type,
18602         chrec_contains_symbols_defined_in_loop): Remove the temporary
18603         hooks.
18604         * tree-flow-inline.h (loop_containing_stmt): New function.
18605         * tree-scalar-evolution.c: Add implementation.
18606         * tree-scalar-evolution.h: Add declarations.
18607
18608 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
18609
18610         PR rtl-optimization/15921
18611         * Makefile.in (global.o): Add recog.h.
18612
18613         * global.c (recog.h): Add the include-clause.
18614         (bb_info): New member earlyclobber.
18615         (allocate_bb_info, free_bb_info): Initialize/finish the new
18616         member.
18617         (earlyclobber_regclass, earlyclobber_regclass_length): The new
18618         global variables.
18619         (check_earlyclobber, regclass_intersect,
18620         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
18621         New functions.
18622         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
18623         (make_accurate_live_analysis): Modify pavin.
18624
18625 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
18626
18627         * tree-cfg.c (find_taken_edge): Statically compute the truth
18628         value of a predicate comparing an SSA_NAME to itself.
18629
18630 2004-07-12  Roger Sayle  <roger@eyesopen.com>
18631
18632         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
18633         rs6000 doesn't have shift-and-add or shift-and-sub instructions
18634         by returning the cost of a multiplication plus an addition.
18635
18636 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
18637
18638         PR tree-optimization/14107
18639         * gimplify.c (gimplify_return_expr): Accept a
18640         RETURN_EXPR with an error argument.
18641         * tree-optimize.c (init_tree_optimization_passes):
18642         Run pass_warn_function_return at -O0.
18643
18644 2004-07-12  Roger Sayle  <roger@eyesopen.com>
18645
18646         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
18647         index entry.
18648
18649 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
18650
18651         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
18652         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18653         * config/mips/3000.md: Add copyright notice.  Remove automota and
18654         function units; use generic ones instead.  Only define reservations
18655         for things that are different from generic.md.  Extend each clause
18656         to include r3900.
18657         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
18658         * config/mips/mips.md: Include them. Remove define_function_units.
18659         (alu, imuldiv): New automata and units.
18660
18661 2004-07-12  Ben Elliston  <bje@au.ibm.com>
18662
18663         * doc/invoke.texi (Optimize Options): Document -frename-registers
18664         not being enabled by default at -O3.
18665
18666 2004-07-11  Roger Sayle  <roger@eyesopen.com>
18667
18668         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
18669         floating point additions, to keep real immediate constant positive.
18670         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
18671         into X + C, and leave positive real constants as X - C.
18672
18673 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18674
18675         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
18676
18677 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18678
18679         PR tree-optimization/15654
18680         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
18681
18682 2004-07-11  Roger Sayle  <roger@eyesopen.com>
18683
18684         * builtins.c (fold_builtin_fputs): Don't bother converting the
18685         return type to integer_type_node, as we've already checked that
18686         the result will be ignored.
18687
18688         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
18689         that signed addition, subtraction, multiplication, division,
18690         remainder, negation and absolute value may potentially trap.
18691
18692         * fold-const.c (fold_ignored_result): New function to strip
18693         non-side-effecting tree nodes from an expression whose result
18694         is ignored.
18695         (fold_convert): Call fold_ignored_result when casting a value
18696         to VOID_TYPE.
18697         (omit_one_operand):  Call fold_ignored_result on the "omitted"
18698         operand when building a COMPOUND_EXPR.
18699         (pedantic_omit_one_operand): Likewise.
18700         * tree.h (fold_ignored_result): Prototype here.
18701         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
18702         when we're going to ignore the result.
18703
18704 2004-07-11  Richard Henderson  <rth@redhat.com>
18705
18706         PR tree-opt/16383
18707         * tree-ssa-ccp.c (fold_stmt_r): Split out...
18708         * tree.c (fields_compatible_p, find_compatible_field): ... new.
18709         * tree.h (fields_compatible_p, find_compatible_field): Declare.
18710         * tree-sra.c (sra_hash_tree): Hash fields by offset.
18711         (sra_elt_eq): Use fields_compatible_p.
18712         (generate_one_element_ref): Use find_compatible_field.
18713
18714 2004-07-11  Richard Henderson  <rth@redhat.com>
18715
18716         PR tree-opt/16422
18717         * tree-sra.c (generate_one_element_init): New.
18718         (generate_element_init): Use it.
18719         (scalarize_init): Push/pop gimplify context around it.
18720         (find_new_referenced_vars_1, find_new_referenced_vars): New.
18721         * gimplify.c (gimplify_expr): Allow SSA_NAME.
18722
18723 2004-07-11  Roger Sayle  <roger@eyesopen.com>
18724
18725         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
18726         combine.c's combine_insn_cost.
18727         * rtl.h (insn_rtx_cost): Prototype here.
18728         * combine.c (combine_insn_cost): Delete function.
18729         (combine_validate_cost): Update callers of combine_insn_cost to
18730         call insn_rtx_cost instead.
18731         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
18732         requesting the rtx_cost of call and/or jump instructions.
18733
18734         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
18735         rtx_cost directly.  Don't request/use the cost of call or jump
18736         instructions.  Return -1 if the cost of any instruction can't be
18737         determined (or the BB contains a function call).
18738         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
18739         -1 (i.e. can't determine the cost of any instruction or the basic
18740         block contains a subroutine call).
18741         (find_if_case_2): Likewise.
18742
18743 2004-07-11  Roger Sayle  <roger@eyesopen.com>
18744
18745         * rs6000.c (struct processor_costs): Change semantics of fields to
18746         include the COST_N_INSNS scaling, and update all initializers.
18747         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
18748         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
18749         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
18750         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
18751
18752 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
18753
18754         * LANGUAGES: Remove obsolete information.
18755
18756 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
18757
18758         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
18759         SIGBUS signal frames, the PSW address points *to* the faulting
18760         instruction, not after it.
18761
18762 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
18763
18764         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
18765         added to TLS symbol addresses.
18766
18767 2004-07-11  Richard Henderson  <rth@redhat.com>
18768
18769         * expmed.c (init_expmed): Use stack-local structures for
18770         temporary rtl.  Don't recognize shifts.
18771
18772 2004-07-11  Richard Henderson  <rth@redhat.com>
18773
18774         * expr.c (store_expr): Don't fiddle subreg promotion for types
18775         with precision smaller than the mode.
18776
18777 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
18778
18779         * tree.h (all_types_permanent): Remove.
18780
18781 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
18782
18783         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
18784         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
18785         * langhooks.c (lhd_clear_binding_stack): Remove.
18786         * langhooks-def.h (lhd_clear_binding_stack,
18787         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
18788         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
18789         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
18790         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
18791         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
18792         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
18793         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
18794         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
18795         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
18796         * tree.h (poplevel): Don't declare.
18797         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
18798         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
18799         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
18800         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
18801         Remove.
18802
18803 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
18804
18805         PR tree-optimization/16437
18806         * c-common.c (shorten_compare): Don't mark result of conversion to
18807         narrower signed type as overflowing.
18808         * fold-const.c (decode_field_reference): Determine whether
18809         signedness comes from outer type using precision rather than size.
18810
18811 2004-07-11  Phil Edwards  <phil@codesourcery.com>
18812
18813         * configure.ac:  Alphabetize --enable-checking list, add
18814         missing valgrind entry.
18815         * configure:  Regenerate.
18816
18817 2004-07-11  Phil Edwards  <phil@codesourcery.com>
18818
18819         * doc/install.texi (Testing):  Fix syntax in "make check" example.
18820
18821 2004-07-10  James E Wilson  <wilson@specifixinc.com>
18822
18823         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
18824
18825 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18826
18827         PR rtl-optimization/16001
18828         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
18829         niter_expr.
18830
18831 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
18832
18833         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
18834
18835 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
18836             James Morrison  <phython@gcc.gnu.org>
18837
18838         * doc/contrib.texi (Contributors): Add gfortran contributors and
18839         fix a couple of typos.
18840
18841 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18842
18843         PR rtl-optimization/15387
18844         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
18845         to incoming args space correctly.
18846
18847 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18848
18849         * pa.c (output_indirect_call): Only use %r2 as the link register in
18850         indirect calls with the long PA 2.0 pc-relative branch.
18851
18852 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
18853
18854         * config/i386/i386.c (override_options): Pick a 64-bit CPU
18855         for the default tuning if TARGET_64BIT.
18856
18857 2004-07-10  Richard Henderson  <rth@redhat.com>
18858
18859         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
18860         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
18861
18862 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
18863
18864         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
18865         * expmed.c (store_bit_field, extract_bit_field): Remove last
18866         argument.
18867         * builtins.c (expand_builtin_signbit): Adjust callers.
18868         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
18869         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
18870         * ifcvt.c (noce_emit_move_insn): Likewise.
18871         * stmt.c (expand_return): Likewise.
18872         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
18873         store_field, expand_expr_real_1): Likewise.
18874
18875 2004-07-10  Richard Henderson  <rth@redhat.com>
18876
18877         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
18878
18879 2004-07-09  Mike Stump  <mrs@apple.com>
18880
18881         * config/darwin.c (no_dead_strip): Add.
18882         (HAVE_DEAD_STRIP): Add.
18883         (darwin_emit_unwind_label): Ensure that we don't dead code strip
18884         the .eh label.
18885
18886 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18887
18888         * tree-ssa-loop-im.c: New file.
18889         * Makefile.in (tree-ssa-loop-im.o): Add.
18890         * cfgloop.c (superloop_at_depth): New function.
18891         * cfgloop.h (superloop_at_depth): Declare.
18892         * common.opt (ftree-lim): New flag.
18893         * expr.c (array_ref_up_bound): New function.
18894         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
18895         * timevar.def (TV_LIM): New timevar.
18896         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
18897         computing immediate uses of a phi node.
18898         * tree-flow.h (struct tree_ann_common_d): Add aux field.
18899         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
18900         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
18901         * tree-pass.h (pass_lim): Declare.
18902         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
18903         functions.
18904         (pass_lim): New pass structure.
18905         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
18906         * tree.c (in_array_bounds_p): New function.
18907         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
18908         (in_array_bounds_p, array_ref_up_bound): Declare.
18909         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
18910         * doc/passes.texi (tree-ssa-loop-im.c): Document.
18911
18912 2004-07-09  Richard Henderson  <rth@redhat.com>
18913
18914         * builtins.c (expand_builtin_stpcpy): Don't modify len.
18915
18916         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
18917         with prejudice.
18918
18919 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
18920
18921         * flags.h: Delete redundant prototypes that are being generated
18922         in options.h from common.opt.
18923         * common.opt: Add in the expository comments formerly in flags.h.
18924
18925 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18926
18927         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
18928         available for use only when TARGET_MMX/_SSE is set, and check for
18929         variable argument function if any register count is non-zero.
18930         (function_arg): Correctly suppress repeated warnings for passing SSE
18931         vectors are arguments without SSE enabled.
18932         (ix86_function_arg_boundary): Without SSE enabled, the use of what
18933         would be SSE register modes does no longer influence the alignment.
18934
18935 2004-07-09  Richard Henderson  <rth@redhat.com>
18936
18937         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
18938         Always align upward to arg boundary.  Use size_in_bytes/round_up.
18939         Maintain type-correctness of constants.
18940         * stor-layout.c (round_up, round_down): Special-case powers of 2.
18941
18942 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
18943
18944         * config/sparc/sparc.c (*_costs): Scale instruction costs
18945         by COSTS_N_INSNS.
18946         (sparc_rtx_costs): Adjust as appropriate.
18947
18948 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18949
18950         * config/i386/mm3dnow.h: New.
18951         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
18952
18953 2004-07-09  Richard Henderson  <rth@redhat.com>
18954
18955         * simplify-rtx.c (simplify_const_relational_operation): Only
18956         look at bounds of scalar integers.
18957
18958 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18959
18960         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
18961
18962 2004-07-09  Andrew Pinski  <apinski@apple.com>
18963
18964         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
18965         always referenced.
18966         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
18967         UOBJC_METACLASS_decl.
18968
18969 2004-07-09  James E Wilson  <wilson@specifixinc.com>
18970
18971         PR target/16364
18972         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
18973         do return a parallel if hfa_mode == XFmode and mode == TImode.
18974
18975 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18976
18977         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
18978         permissible for unary plus.
18979
18980 2004-07-09  Jan Beulich  <jbeulich@novell.com>
18981
18982         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
18983         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
18984         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
18985         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
18986         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
18987         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
18988         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
18989         (BUILTIN_xxxIMAX): New.
18990         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
18991         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
18992         BUILT_IN_PARITYIMAX.
18993
18994 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
18995
18996         * config/sparc/sparc.h (processor_costs): Define.
18997         (sparc_costs): Declare.
18998         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
18999         hypersparc_costs, sparclet_costs, ultrasparc_costs,
19000         ultrasparc3_costs): New.
19001         (sparc_override_options): Set sparc_costs as appropriate.
19002         (sparc_rtx_costs): Use sparc_costs instead of messy
19003         conditionals.
19004
19005 2004-07-09  Steven Bosscher  <stevenb@suse.de>
19006
19007         * doc/md.texi (Processor pipeline description): Mention that
19008         the old pipeline description is deprecated.
19009
19010         * config/rs6000/7450.md (automaton ppc7450): Split up, move
19011         mciu_7450 function unit to...
19012         (automaton ppc7450mciu): ...new automaton.
19013
19014         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
19015         (schedule_block): Don't consider inserting bubbles.
19016         (sched_init): Don't initialize DFA bubbles.
19017         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
19018         TARGET_SCHED_DFA_BUBBLE): Remove.
19019         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
19020         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
19021         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
19022
19023         * stmt.c (conditional_context): Remove prototype.
19024         * tree.h (conditional_context): Remove.
19025         * tree-cfg.c (pre_insert_on_edge): Remove.
19026
19027         * c-common.h (c_expand_asm_operands): Remove prototype.
19028         * c-typeck.c (c_expand_asm_operands): Remove.
19029
19030 2004-07-09  Jan Beulich  <jbeulich@novell.com>
19031
19032         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
19033         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
19034         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
19035         and V8QI are class SSE. All sufficiently small remaining vector modes
19036         must be passed in one or two integer registers.
19037         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
19038         returned in memory.
19039         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
19040         __builtin_ia32_pmuludq128 have non-uniform argument and return types
19041         and must thus be handled explicitly.
19042         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
19043         MMX and XMM regs.
19044         (movv8qi_internal, movv4hi_internal, movv2si_internal,
19045         movv2sf_internal): Permit moving between MMX and XMM registers (since
19046         MMX areguments and return values are passed in XMM registers).
19047         (sse2_umulsidi3): Correct type and mode.
19048
19049 2004-07-09  Richard Henderson  <rth@redhat.com>
19050
19051         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
19052
19053 2004-07-09  Eric Christopher  <echristo@redhat.com>
19054
19055         * config/rs6000/40x.md: Split into two automatons.
19056
19057 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
19058             Andrew Pinski  <apinski@apple.com>
19059
19060         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
19061         on when we have more than one input file.
19062         (c_common_parse_file): Restore loop over all input files.
19063         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
19064
19065         * c-decl.c (set_type_context): New function.
19066         (pop_scope): Use it to set context of types.  When we
19067         encounter a TYPE_DECL, set the context of the attached type too.
19068         (pop_file_scope): Don't call cpp_undef_all here.
19069         (diagnose_mismatched_decls): Do not complain about a second
19070         definition of an 'extern inline' function if it's not in the
19071         same translation unit.  Do not complain about inline
19072         declaration after use if the use was in a different
19073         translation unit.
19074         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
19075         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
19076         the external scope.
19077         (pushdecl_top_level): Likewise.
19078         (grokdeclarator): Clarify what is going on with setting
19079         DECL_EXTERNAL on function types, a little.
19080         (c_write_global_declarations): Don't do anything if
19081         -fsyntax-only or errors have been encountered.
19082
19083 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
19084
19085         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
19086
19087 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19088
19089         PR target/16459
19090         * pa.c (output_indirect_call): Use %r2 as the link register when
19091         calling $$dyncall with a pc-relative branch.
19092
19093 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
19094
19095         * doc/install.texi (Binaries): Mention OpenPKG.
19096
19097 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
19098
19099         Fix PR tree-optimization/15555
19100         * tree-dfa.c (dump_variable): If the variable is a pointer
19101         SSA_NAME, also dump its points-to information.
19102         * tree-flow.h (struct ptr_info_def): Add field
19103         is_dereferenced.
19104         (dump_points_to_info_for): Declare.
19105         (debug_points_to_info_for): Declare.
19106         * tree-optimize.c (init_tree_optimization_passes): Add a
19107         second alias analysis pass after DOM2.
19108         Move pass_del_pta to a later spot.
19109         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
19110         create a name tags when we find a dereferenced pointer.  Just
19111         mark the pointer dereferenced.
19112         (collect_points_to_info_for): Move code to clear points-to
19113         information to create_name_tags.
19114         (create_name_tags): New function.
19115         (compute_flow_sensitive_aliasing): Call it.
19116         (setup_pointers_and_addressables): Mark type tags for renaming
19117         here instead of ...
19118         (create_memory_tag): ... here.
19119         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
19120         (dump_points_to_info_for): Declare extern.
19121         (debug_points_to_info_for): New function.
19122
19123 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
19124
19125         * config/arc/arc.md: Switch to DFA-based scheduler description.
19126         * config/arc/arc.c: Switch to DFA-based scheduler description.
19127
19128 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
19129
19130         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
19131         pointer.
19132
19133 2004-07-09  Richard Henderson  <rth@redhat.com>
19134
19135         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
19136         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19137         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
19138         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
19139
19140         * config/v850/v850-protos.h (v850_va_arg): Remove.
19141         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19142         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
19143         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
19144         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
19145         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
19146
19147 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
19148
19149         PR target/12133
19150         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
19151         and DImode to use +/-4k offset.
19152
19153 2004-07-09  Richard Henderson  <rth@redhat.com>
19154
19155         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
19156         Remove.
19157         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19158         (xstormy16_gimplify_va_arg_expr): Rewrite from
19159         xstormy16_expand_builtin_va_arg.
19160         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
19161
19162         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
19163         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
19164
19165         * config/sh/sh-protos.h (sh_va_arg): Remove.
19166         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19167         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
19168         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
19169
19170         * config/pa/pa-protos.h (hppa_va_arg): Remove.
19171         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19172         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
19173         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
19174
19175         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
19176         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19177         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
19178         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
19179
19180 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
19181
19182         * config/sparc/sparc.md (return): Rewrite length formula.
19183         * config/sparc/sparc.c (output_return): Pass 1 as 5th
19184         argument to final_scan_insn when in a delay slot.
19185         (output_sibcall): Likewise.
19186
19187 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
19188
19189         * arm.c (arm_cpp_interwork): New variable.
19190         (arm_override_options): Set it if TARGET_INTERWORK was on the command
19191         line.
19192         * arm.h (arm_cpp_interwork): Declare it.
19193         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
19194         __THUMB_INTERWORK__ in the preprocessor.
19195
19196 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
19197
19198         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
19199
19200 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
19201
19202         PR target/16416
19203         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
19204         Override default settings to account for -m32 and -m64.
19205
19206 2004-07-08  Randolph Chung  <tausq@debian.org>
19207
19208         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
19209
19210 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
19211
19212         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
19213         before comparing it as such.
19214
19215 2004-07-08  Richard Henderson  <rth@redhat.com>
19216
19217         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
19218         temporary.  Use bit arithmetic to align.
19219
19220 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
19221
19222         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
19223         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
19224         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
19225         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
19226         add_labels_and_missing_jumps, find_jump_block,
19227         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
19228         Likewise.
19229         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
19230         link_btr_uses, move_btr_def): Likewise.
19231         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
19232         expand_builtin_expect_jump): Likewise.
19233         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
19234         * calls.c (expand_call, emit_library_call_value_1): Likewise.
19235         * cfganal.c (forwarder_block_p): Likewise.
19236         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
19237         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
19238         find_bb_boundaries): Likewise.
19239         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
19240         merge_blocks_move_predecessor_nojumps,
19241         merge_blocks_move_successor_nojumps, insns_match_p,
19242         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
19243         try_optimize_cfg): Likewise.
19244         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
19245         * cfglayout.c (skip_insns_after_block, label_for_bb,
19246         record_effective_endpoints, insn_locators_initialize,
19247         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
19248         * cfgmainloop.c (create_loop_notes): Likewise.
19249         * cfgrtl.c (delete_insn, delete_insn_chain,
19250         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
19251         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
19252         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
19253         redirect_branch_edge, force_nonfallthru_and_redirect,
19254         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
19255         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
19256         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
19257         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
19258         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
19259         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
19260         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
19261         * combine.c (combine_instructions, can_combine_p, try_combine,
19262         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
19263         distribute_notes, distribute_links, insn_cuid): Likewise.
19264         * cse.c (fold_rtx, cse_insn, cse_around_loop,
19265         invalidate_skipped_block, cse_set_around_loop,
19266         cse_end_of_basic_block, cse_main, cse_basic_block,
19267         cse_condition_code_reg): Likewise.
19268         * cselib.c (cselib_process_insn): Likewise.
19269         * ddg.c (create_ddg): Likewise.
19270         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
19271         Likewise.
19272         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
19273         gen_label_die, dwarf2out_var_location): Likewise.
19274         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
19275         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
19276         last_call_insn, active_insn_p, next_label, prev_label,
19277         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
19278         add_insn_before, remove_insn, add_function_usage_to,
19279         reorder_insns, find_line_note, remove_unnecessary_notes,
19280         emit_insn_after_1, classify_insn): Likewise.
19281         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
19282         connect_post_landing_pads, sjlj_mark_call_sites,
19283         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
19284         can_throw_internal, can_throw_external, set_nothrow_function_flags,
19285         convert_to_eh_region_ranges): Likewise.
19286         * explow.c (optimize_save_area_alloca): Likewise.
19287         * expr.c (expand_expr_real): Likewise.
19288         * final.c (insn_current_reference_address, compute_alignments,
19289         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
19290         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
19291         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
19292         propagate_block_delete_insn, propagate_one_insn,
19293         init_propagate_block_info, propagate_block, libcall_dead_p,
19294         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
19295         Likewise.
19296         * function.c (instantiate_virtual_regs, reorder_blocks_1,
19297         expand_function_start, expand_function_end, contains,
19298         thread_prologue_and_epilogue_insns,
19299         reposition_prologue_and_epilogue_notes): Likewise.
19300         * gcse.c (constprop_register, bypass_conditional_jumps,
19301         insert_insn_end_bb, gcse_after_reload): Likewise.
19302         * genemit.c (gen_expand, gen_split): Likewise.
19303         * genpeep.c (gen_peephole, main): Likewise.
19304         * global.c (build_insn_chain): Likewise.
19305         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
19306         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
19307         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
19308         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
19309         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
19310         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
19311         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
19312         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
19313         dead_or_predicable): Likewise.
19314         * integrate.c (try_constants): Likewise.
19315         * jump.c (rebuild_jump_labels, cleanup_barriers,
19316         purge_line_number_notes, init_label_info, mark_all_labels,
19317         squeeze_notes, get_label_before, get_label_after,
19318         reversed_comparison_code_parts, simplejump_p, pc_set,
19319         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
19320         delete_barrier, delete_prior_computation, delete_computation,
19321         delete_related_insns, delete_for_peephole, redirect_jump):
19322         Likewise.
19323         * lcm.c (optimize_mode_switching): Likewise.
19324         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
19325         Likewise.
19326         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
19327         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
19328         * loop-iv.c (simplify_using_assignment): Likewise.
19329         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
19330         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
19331         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
19332         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
19333         check_insn_for_givs, check_final_value, update_giv_derive,
19334         basic_induction_var, product_cheap_p, check_dbra_loop,
19335         loop_insn_first_p, last_use_this_basic_block,
19336         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
19337         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
19338         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
19339         sms_schedule_by_order): Likewise.
19340         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
19341         * postreload.c (reload_cse_simplify_operands, reload_combine,
19342         reload_cse_move2add): Likewise.
19343         * predict.c (can_predict_insn_p, estimate_probability,
19344         expected_value_to_br_prob, process_note_predictions): Likewise.
19345         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
19346         * profile.c (branch_prob): Likewise.
19347         * ra-build.c (live_out_1, livethrough_conflicts_bb,
19348         detect_webs_set_in_cond_jump): Likewise.
19349         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
19350         ra_print_rtl_with_bb): Likewise.
19351         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
19352         * recog.c (next_insn_tests_no_inequality, find_single_use,
19353         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
19354         * reg-stack.c (next_flags_user, record_label_references,
19355         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
19356         compensate_edge, convert_regs_1): Likewise.
19357         * regclass.c (scan_one_insn): Likewise.
19358         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
19359         regmove_optimize, fixup_match_1, single_set_for_csa,
19360         combine_stack_adjustments_for_block): Likewise.
19361         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
19362         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
19363         find_equiv_reg): Likewise.
19364         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
19365         reload_as_needed, emit_input_reload_insns, do_output_reload,
19366         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
19367         Likewise.
19368         * reorg.c (find_end_label, emit_delay_sequence,
19369         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
19370         get_jump_flags, rare_destination, mostly_true_jump,
19371         try_merge_delay_insns, redundant_insn, own_thread_p,
19372         fill_simple_delay_slots, fill_slots_from_thread,
19373         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
19374         dbr_schedule): Likewise.
19375         * resource.c (find_basic_block, next_insn_no_annul,
19376         find_dead_or_set_registers, mark_target_live_regs): Likewise.
19377         * rtl.h (RTX_PREV): Likewise.
19378         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
19379         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
19380         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
19381         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
19382         tablejump_p, computed_jump_p, insns_safe_to_move_p,
19383         find_first_parameter_load, can_hoist_insn_p): Likewise.
19384         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
19385         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
19386         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
19387         schedule_ebbs): Likewise.
19388         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
19389         is_conditionally_protected, can_schedule_ready_p,
19390         add_branch_dependences, debug_dependencies): Likewise.
19391         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
19392         Likewise.
19393         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
19394         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
19395         set_dominates_use, ujump_to_loop_cont): Likewise.
19396         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
19397         * varasm.c (output_constant_pool_1): Likewise.
19398
19399 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19400
19401         * tree-scalar-evolution.c: New file.
19402         * tree-scalar-evolution.h: New file.
19403         * tree-ssa-loop-niter.c: New file.
19404         * Makefile.in (SCEV_H): New.
19405         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
19406         * cfgloop.h (struct loop): Add bounds field.
19407         * tree-flow.h (struct tree_niter_desc): New type.
19408         (number_of_iterations_cond, number_of_iterations_exit,
19409         loop_niter_by_eval, find_loop_niter_by_eval,
19410         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
19411         free_numbers_of_iterations_estimates): Declare.
19412         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
19413         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
19414         * doc/invoke.texi (max-iterations-to-track): Document.
19415
19416 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
19417
19418         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
19419         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
19420         (MODE_AFTER): Add cast appropriately.
19421         * config/sh/sh.md (movdi splitter): Likewise.
19422         (casesi_worker_2): Add const qualifier appropriately.
19423         (eh_return): Remove unused variable.
19424         (insv): Initialize v;
19425
19426 2004-07-08  Richard Henderson  <rth@redhat.com>
19427
19428         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
19429         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19430         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
19431         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
19432         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
19433
19434         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
19435         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19436         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
19437         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
19438
19439         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
19440         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19441         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
19442         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
19443
19444         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
19445         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19446         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
19447         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
19448
19449         * config/i860/i860-protos.h (i860_va_arg): Remove.
19450         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19451         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
19452         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
19453
19454 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
19455
19456         * system.h: Prototype getpagesize if missing.
19457         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
19458         * configure: Regenerate.
19459         * config.in: Regenerate.
19460
19461 2004-07-08  Richard Henderson  <rth@redhat.com>
19462
19463         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
19464         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19465         (fr30_gimplify_va_arg_expr): New.
19466         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
19467         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
19468
19469 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
19470
19471         PR target/16414
19472         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
19473         of asm_noperands result.
19474
19475 2004-07-08  Richard Henderson  <rth@redhat.com>
19476
19477         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
19478         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19479         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
19480         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
19481
19482 2004-07-08  Richard Henderson  <rth@redhat.com>
19483
19484         * builtins.c (ind_gimplify_va_arg_expr): New.
19485         * tree.h (ind_gimplify_va_arg_expr): Declare.
19486         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
19487
19488 2004-07-08  Jan Beulich  <jbeulich@novell.com>
19489
19490         * expmed.c (extract_bit_field): Correct condition to use vec_extract
19491         patterns also on vector elements other than the first one.
19492         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
19493         break statements.
19494
19495 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
19496
19497         * config/rs6000/darwin-ldouble.c: Correct reference
19498         to the Linnainmaa paper.
19499
19500 2004-07-08  Richard Henderson  <rth@redhat.com>
19501
19502         * config/arc/arc-protos.h (arc_va_arg): Remove.
19503         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19504         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
19505         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
19506
19507         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
19508         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
19509         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
19510         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
19511
19512 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19513
19514         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
19515
19516 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
19517
19518         * c-decl.c (static_ctors, static_dtors): Make static.
19519         (pop_file_scope): Call c_common_write_pch and
19520         cgraph_finalize_compilation_unit here.
19521         (build_cdtor): Moved here from c-objc-common.c; simplify.
19522         (c_write_global_declarations_1): Clarify comment.
19523         (c_write_global_declarations): Close the external scope before
19524         doing anything else.  Call build_cdtor, cgraph_optimize, and
19525         mudflap_finish_file here.
19526         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
19527         Clarify comment.
19528         * c-objc-common.c: No need to include cgraph.h.
19529         (build_cdtor): Moved to c-decl.c.
19530         (c_objc_common_finish_file): Delete.
19531         * c-tree.h: Update to match.
19532         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
19533         (generate_static_references): Set TREE_USED before calling finish_decl.
19534         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
19535         on the static_instances_decl.
19536
19537 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
19538
19539         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
19540         decls when there is only one input translation unit.
19541         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
19542         change of 2004-07-05; do not treat declarations with
19543         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
19544         * opts.c (cur_in_fname): Delete.
19545         * opts.h: Likewise.
19546         * tree.c: Revert changes of 2004-07-05; no special treatment
19547         for TRANSLATION_UNIT_DECLs.
19548         * Makefile.in (tree.o): Update dependencies.
19549
19550 2004-07-08  Roger Sayle  <roger@eyesopen.com>
19551
19552         * builtins.c (fold_builtin_strcpy): Merge functionality from
19553         simplify_builtin_strcpy.  Add additional len argument.  No longer
19554         static.  Remove function prototype.
19555         (fold_builtin_strncpy): Likewise integrate functionality from
19556         simplify_builtin_strncpy.  Add additional slen argument.  No
19557         longer static.  Remove function prototype.
19558         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
19559         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
19560         types of "ignore" and "unlocked" parameters to bool.
19561         (fold_builtin_1):  Add additional ignore argument.  Call renamed
19562         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
19563         builtins.  Update arguments to fold_builtin_strncpy and
19564         fold_builtin_strcpy.  Add function prototype.
19565         (fold_builtin): Add additional Boolean ignore argument to pass
19566         to fold_builtin_1.
19567         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
19568         and fold_builtin_strncpy instead of simplify_builtin_fputs,
19569         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
19570
19571         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
19572         simplify_builtin_strncpy): Delete function prototypes.
19573         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
19574         fold_builtin_strncpy): Add function prototypes here.
19575         (fold_builtin): Update function prototype with new "bool ignore".
19576
19577         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
19578         (ccp_fold_builtin):  Update call to fold_builtin.  Call
19579         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
19580         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
19581         simplify_builtin_strncpy respectively.
19582         * fold-const.c (fold): Update call to fold_builtin.
19583
19584 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
19585
19586         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
19587         to strcpy.
19588
19589         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
19590         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
19591         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
19592         * calls.c: Remove ifdefs of macros above.
19593         * functions.c: Likewise.
19594         * expr.c: Likewise.
19595
19596 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19597
19598         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
19599         (arch attribute): Delete.
19600         (current_function_calls_alloca attribute): Rename into calls_alloca.
19601         (calls_eh_return): New attribute.
19602         (leaf_function): Likewise.
19603         (length attribute): Fix formula for sibcalls.
19604         (return insn): Correctly compute the 'length' attribute.
19605         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
19606
19607 2004-07-08  Richard Henderson  <rth@redhat.com>
19608
19609         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
19610         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
19611         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
19612         * tree-eh.c (lower_eh_constructs_1): Likewise.
19613         * tree-sra.c (sra_walk_modify_expr): Likewise.
19614         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
19615         (eliminate_unnecessary_stmts): Likewise.
19616         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
19617         * tree-tailcall.c (optimize_tail_call): Likewise.
19618         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
19619
19620 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
19621             Jakub Jelinek  <jakub@redhat.com>
19622
19623         * config/i386/i386.c (override_options): Enable
19624         SSE prefetches with -mtune, as long as we are
19625         compiling for i686 or higher.  All i686 processors
19626         accept SSE prefetches as NOPS, some i586's don't.
19627
19628 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19629
19630         PR target/10567
19631         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
19632
19633 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
19634
19635         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
19636         the handling of clobbering ASM_EXPRs.
19637
19638 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19639
19640         PR target/16430
19641         * config/sparc/sparc.c (function_value): In 64-bit mode,
19642         return the aggregates larger than 16 bytes like unions.
19643
19644 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19645
19646         PR target/16199
19647         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
19648         'temp' is zero, generate new pseudos as needed and emit the
19649         sequence of insns in single-assignment form.  Resync comments
19650         with code.
19651         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
19652         function before reload.
19653
19654 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
19655
19656         * vec.c (vec_assert_fail): Remove duplicate 'function'.
19657
19658         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
19659
19660         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
19661         Allocation is signed.
19662         (VEC_reserve): Return flag, allocation is signed.
19663
19664 2004-07-08  Richard Henderson  <rth@redhat.com>
19665
19666         * tree-ssa-ccp.c (fold_stmt): Get type directly from
19667         OBJ_TYPE_REF_OBJECT.
19668
19669 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
19670             Neil Booth  <neil@daikokuya.co.uk>
19671
19672         PR c/2511
19673         PR c/3325
19674         * c-decl.c (finish_struct): Ensure bit-fields are given the
19675         correct type.
19676         * c-common.c (c_common_signed_or_unsigned_type): For C, require
19677         the precision to match as well as the mode.
19678         * expr.c (reduce_to_bit_field_precision): New function.
19679         (expand_expr_real_1): Reduce expressions of bit-field type to
19680         proper precision.
19681         * langhooks.h (reduce_bit_field_operations): New hook.
19682         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
19683         Define.
19684         * c-lang.c, objc/objc-lang.c
19685         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
19686         * objc/objc-act.c (check_ivars): Convert types to bit-field types
19687         before checking.
19688         * tree.c (build_nonstandard_integer_type): New function.
19689         * tree.h (build_nonstandard_integer_type): New prototype.
19690         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
19691         conversions between integer and boolean types as useless.
19692
19693 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
19694
19695         * c-common.c (c_common_nodes_and_builtins): Do not
19696         create __builtin_ptrdiff_t and __builtin_size_t.
19697
19698 2004-07-08  Andrew Pinski  <apinski@apple.com>
19699
19700         * Makefile.in (libbackend.o): Add -combine to the gcc
19701         command line.
19702
19703 2004-07-08  Nick Clifton  <nickc@redhat.com>
19704
19705         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
19706         Set to -Os.
19707
19708 2004-07-08  Richard Henderson  <rth@redhat.com>
19709
19710         * except.c (expand_eh_region_start, expand_eh_region_end,
19711         expand_eh_handler, expand_eh_region_end_cleanup,
19712         expand_start_all_catch, expand_start_catch, expand_end_catch,
19713         expand_end_all_catch, expand_eh_region_end_allowed,
19714         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
19715         expand_eh_region_end_fixup): Remove.
19716         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
19717         cleanups, outer_cleanups, label_chain, exception_region.
19718         (struct goto_fixup): Remove stack_level, cleanup_list_list.
19719         (struct label_chain): Remove.
19720         (struct stmt_status): Remove x_stack_block_stack.
19721         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
19722         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
19723         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
19724         end_cleanup_deferral, last_cleanup_this_contour,
19725         containing_blocks_have_cleanups_or_stack_level,
19726         any_pending_cleanups): Remove.
19727         (expand_null_return_1): Take no arguments.
19728         (expand_label, expand_naked_return, expand_return,
19729         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
19730         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
19731         expand_end_case_type): Don't use any of them.
19732         * calls.c (expand_call): Likewise.
19733         * dojump.c (do_jump): Likewise.
19734         * function.c (expand_function_end): Likewise.
19735         * expr.c (store_expr, expand_expr_real_1): Likewise.
19736         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
19737         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
19738         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
19739         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
19740         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
19741         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
19742         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
19743         for WITH_CLEANUP_EXPR.
19744         (gimple_push_cleanup): Likewise.
19745         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
19746         * print-tree.c (print_node): Likewise.
19747         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
19748         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
19749         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
19750         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
19751         (GOTO_SUBROUTINE_EXPR): Remove.
19752         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
19753         (DECL_TOO_LATE): Remove.
19754         * except.h, tree.h: Update decls.
19755
19756 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
19757
19758         * explow.c (optimize_save_area_alloca): Do not accept parameters.
19759         * passes.c (rest_of_handle_final): Handle symout.
19760         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
19761         Push timevar here.
19762         (rest_of_handle_sched): Break out SMS.  Remove ifs for
19763         flag_schedule_insns and flag_modulo_sched.
19764         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
19765         collect at the end.
19766         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
19767         (rest_of_handle_partition_blocks, rest_of_handle_sms,
19768         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
19769         rest_of_handle_mode_switching, rest_of_handle_jump,
19770         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
19771         rest_of_handle_jump2, rest_of_handle_postreload,
19772         rest_of_handle_flow2, rest_of_clean_state,
19773         rest_of_handle_shorten_branches,
19774         rest_of_handle_prologue_epilogue,
19775         rest_of_handle_branch_target_load_optimize): New.
19776         (rest_of_compilation): Call the above.  Remove ggc_collect
19777         calls moved to rest_of_handle_*.
19778         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
19779
19780         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
19781         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
19782         * except.h (set_nothrow_function_flags): Update comment.
19783         * function.c (current_function_nothrow): Remove.
19784         * output.h (current_function_nothrow): Remove.
19785         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
19786         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
19787
19788 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19789
19790         PR bootstrap/16326
19791         * reorg.c: Revert 2004-06-30 change.
19792         (find_end_label): If HAVE_epilogue and !HAVE_return,
19793         return 0 instead of creating a label at the end of the insn chain.
19794         (optimize_skip): Account for the failure mode of find_end_label.
19795         (fill_simple_delay_slots): Likewise.
19796         (fill_slots_from_thread): Likewise.
19797         (relax_delay_slots): Likewise.
19798
19799 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
19800
19801         * tree-flow.h (addressable_vars): Declare.
19802         * tree-ssa-alias.c (addressable_vars): Define.
19803         (setup_pointers_and_addressables): Add addressable variables
19804         to addressable_vars.
19805         * tree-ssa-operands.c (get_stmt_operands): Move
19806         handling of ASM_EXPRs ...
19807         (get_asm_expr_operands): ... here.
19808         When the ASM_EXPR clobbers memory, also clobber addressable
19809         variables.
19810         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
19811         (delete_tree_ssa): Reset addressable_vars.
19812
19813 2004-07-07  Jan Beulich  <jbeulich@novell.com>
19814             Richard Henderson  <rth@redhat.com>
19815
19816         * varasm.c (assemble_variable): Use assemble_zeros for
19817         zero-initialized variables.
19818         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
19819         for SECCAT_BSS and SECCAT_TBSS.
19820
19821 2004-07-07  Jan Beulich  <jbeulich@novell.com>
19822
19823         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
19824
19825         * expmed.c (emit_store_flag): Also special-case double-word
19826         (in-)equality comparison against -1.
19827
19828         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
19829         passing arguments the containers for which are registers.
19830
19831         * calls.c (emit_library_call_value_1): Use mode of function parameter
19832         rather than that of argument since constants have none.
19833
19834 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
19835
19836         Introduce H8SX support.
19837         * expr.c (expand_strcpy): Renamed and moved to...
19838         * builtins.c (expand_movstr): ... here.  Tweak.
19839         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
19840         computed or has side effects.
19841         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
19842         unused, or if mempcpy fails.  Adjust the return value in the
19843         latter case.  Use movstr if everything else fails.
19844         * doc/md.texi (movstr): Document.
19845         (movmemM, clrmemM): Fix explanation of memory block operands.
19846         * config/h8300/h8300.md (stpcpy): Renamed to...
19847         (movstr): ... this.  Adjust.
19848         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
19849         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
19850         movmem* and clrstr* to clrmem*.
19851         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
19852         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
19853         GENERAL_REGS, always.
19854         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
19855         getting the stack pointer as addr.
19856         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
19857         from general_operand_dst.
19858         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
19859         variant of...
19860         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
19861         instead of requiring it to match only before reload.
19862         (stpcpy_internal_normal): New, normal-mode variant of...
19863         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
19864         `D' instead of requiring it to match only before reload.
19865         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
19866         mode argument.
19867         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
19868         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
19869         h8300_get_index.
19870         * config/h8300/h8300.md (attr type): Add call.
19871         (attr can_delay): If type is call, set it no.
19872         (call, call_value): Set type to call.
19873         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
19874         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
19875         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
19876         * tree.c (get_narrower): Don't narrow integral types into
19877         non-integral types.
19878         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
19879         frame_size *before* the first use.
19880         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
19881         on input.
19882         (peephole2): Don't widen instructions that push SP.  Move
19883         decrement of SP to the end of all stm-generating peepholes.
19884         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
19885         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
19886         and OR to set it to all ones.
19887         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
19888         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
19889         (call, call_value): Set can_delay to "no".
19890         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
19891         * config/h8300/h8300.md (extzv): Make subreg check more robust.
19892         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
19893         * config/h8300/h8300.md (*brabit): Remove.
19894         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
19895         zero_extract.  Use bit_memory_operand as the predicate for
19896         operand 1 and 'WU' as the constraint.  Check the difference
19897         between the base length and the final one when deciding which
19898         type of branch to use.
19899         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
19900         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
19901         Use convert_move to extend the result for TARGET_H8300SX.  Check
19902         for QImode memory references.  Optimize the case where the
19903         destination is a paradoxical subreg.
19904         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
19905         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
19906         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
19907         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
19908         * config/h8300/h8300.md: Include mova.md
19909         (length_table): Add mova and mova_zero.
19910         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
19911         after all constant addresses for '%R', '%X', '%T' and '%S'.
19912         (h8300_mova_length): New function.
19913         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
19914         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
19915         dependencies for s-config, etc.
19916         * config/h8300/gemova.sh: New file.
19917         * config/h8300/mova.md: Generated.
19918         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
19919         * config/h8300/h8300.c (h8300_bitfield_length): New.
19920         (nibble_operand): Adjust.
19921         (h8300_binary_length): Handle conditional binary op.
19922         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
19923         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
19924         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
19925         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
19926         constraints.  WU is introduced as a variant of U that requires a
19927         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
19928         * config/h8300/h8300.md (attr type): Added bitbranch.
19929         (attr length_table): Added bitfield and bitbranch.
19930         (attr length): Compute bitbranch length.
19931         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
19932         least-significant bit of a byte.
19933         (brabit, brabc, brabs): New.
19934         (insv, extzv): Emit bfst and bfld on H8300SX.
19935         (bfld, bfst, seq, sne): New.
19936         (bstzhireg, cmpstz, bstz, bistz): New.
19937         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
19938         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
19939         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
19940         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
19941         (h8sx_unary_memory_operator): New function.
19942         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
19943         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
19944         * config/h8300/h8300.md: Add peepholes to combine reloads and
19945         arithmetic insns.
19946         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
19947         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
19948         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
19949         (and?i, ior?i, xor?i): Likewise.
19950         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
19951         * config/h8300/h8300.c: Move enums and prototypes to head of file.
19952         Various whitespace fixes.
19953         (h8300_constant_length): New function, split out from...
19954         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
19955         (h8300_classify_operand): Use IN_RANGE.
19956         (h8300_classify_operand): Use h8300_constant_length.
19957         (h8300_short_move_mem_p): Tighten size check.
19958         (h8sx_mergeable_memrefs_p): Tighten equality check.
19959         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
19960         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
19961         for -msx.
19962         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
19963         * config/h8300/crtn.asm: Likewise.
19964         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
19965         if __H8300SX__ is defined.
19966         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
19967         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
19968         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
19969         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
19970         addresses as mode-dependent.
19971         * config/h8300/h8300.c (print_operand_address): Update call to
19972         h8300_get_index.
19973         (h8300_get_index): Take a mode argument.  Rework to fix an
19974         earlier misunderstanding.
19975         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
19976         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
19977         into a register if TARGET_H8300SX.
19978         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
19979         TARGET_H8300SX.  Also disable related define_splits.
19980         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
19981         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
19982         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
19983         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
19984         * config/h8300/h8300.h (OK_FOR_Z): New macro.
19985         (EXTRA_CONSTRAINT_STR): Check it.
19986         * config/h8300/h8300.c (h8300_classify_operand): Accept null
19987         class arguments.
19988         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
19989         * config/h8300/h8300.md (length_table): Add mov_imm4.
19990         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
19991         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
19992         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
19993         be a label.
19994         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
19995         * config/h8300/h8300.c (h8300_reorg): New function.
19996         (TARGET_MACHINE_DEPENDENT_REORG): Define.
19997         * config/h8300/h8300.md (length): Subtract the length of the
19998         delay slot from (pc) when checking the range of forward branches.
19999         (delay_slot, can_delay): New attributes.
20000         (define_delay): Add bra/s handling.
20001         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
20002         (jump): Add delayed-branch handling.
20003         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
20004         * expr.c (expand_strcpy): New function.
20005         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
20006         (expand_builtin_stpcpy): Likewise.
20007         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
20008         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
20009         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
20010         handling to improve register allocation for -fno-omit-frame-pointer.
20011         (h8sx_split_movmd): Delete, moving er6 handling into...
20012         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
20013         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
20014         (movmd): Add calls to copy_rtx.
20015         (movmd_internal): In the second alternative, allow the initial and
20016         final destination registers to be different .  Update the splitter
20017         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
20018         instead of h8sx_split_movmd.
20019         (stpcpy, movsd): New expanders.
20020         (movsd_internal): New define_insn.
20021         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
20022         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
20023         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
20024         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
20025         and DESTINATION_REGS.
20026         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
20027         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
20028         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
20029         (h8300_move_ratio): Declare.
20030         (MOVE_RATIO): Use it.
20031         * config/h8300/h8300.c (h8300_move_ratio): New variable.
20032         (h8300_init_once): Initialize it.
20033         (h8300_reg_class_from_letter): New function.
20034         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
20035         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
20036         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
20037         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
20038         (movstrsi, movmd): New expanders.
20039         (movmd_internal): New insn.
20040         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
20041         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
20042         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
20043         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
20044         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
20045         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
20046         * config/h8300/h8300.c (nibble_operand): Fix warning.
20047         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
20048         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
20049         (movsf_h8300h): Disable for TARGET_H8300SX.
20050         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
20051         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
20052         h8300_stm_parallel and h8300_return_parallel.
20053         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
20054         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
20055         h8300_stm_parallel, h8300_return_parallel): New functions.
20056         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
20057         if TARGET_H8300SX.  Use h8300_push_pop.
20058         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
20059         and final pop when generating h8sx code.  Always emit some form
20060         of return insn.
20061         * config/h8300/h8300.md: Don't enforce register alignment in
20062         stm peepholes if TARGET_H8300SX.
20063         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
20064         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
20065         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
20066         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
20067         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
20068         (MULTILIB_DIRNAMES): Add a directory for it.
20069         (MULTILIB_MATCHES): Delete.
20070         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
20071         * final.c (walk_alter_subreg): Handle addresses with subregs
20072         inside a ZERO_EXTEND or AND.
20073         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
20074         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
20075         if TARGET_H8300SX.
20076         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
20077         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
20078         @(dd,Rn.w) and @(dd,ERn.L).
20079         (h8300_displacement_size): Take the whole address as argument.
20080         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
20081         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
20082         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
20083         (h8sx_mergeable_memrefs_p): Declare.
20084         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
20085         (HAVE_PRE_INCREMENT): Likewise.
20086         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
20087         addresses for TARGET_H8300SX,
20088         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
20089         and POST_DEC.
20090         (movb_length_table, movl_length_table): New tables.
20091         (movw_length_table): Define to movb_length_table.
20092         (h8300_displacement_size): New, split out from...
20093         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
20094         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
20095         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
20096         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
20097         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
20098         (compute_plussi_length, compute_plussi_cc): Update accordingly.
20099         (h8sx_unary_shift_operator): Get the mode from the operator.
20100         (binary_shift_operator): Likewise.
20101         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
20102         a memory reference, check whether the reference is offsettable.
20103         (length_table): Add movb, movw and movl.
20104         (movqi): Add new h8sx pattern.  Don't force one operand to be a
20105         register when generating h8sx code.
20106         (movhi, movsi, movsf): Likewise.
20107         (movstrictqi): Use the length_table attribute.
20108         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
20109         (addqi3): Split into a define_expand and define_insn.  Don't accept
20110         memory operands in the expander.  Use h8300_operands_match_p to
20111         check for matching operands in the define_insn.
20112         (subqi3, negqi2, one_cmplqi2): Likewise.
20113         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
20114         in any patterns that are unused in h8sx code.  In the h8sx patterns,
20115         use h8300_operands_match_p to check whether operands match.
20116         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
20117         one_cmpl[hs]i3): Likewise.
20118         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
20119         in the expander.
20120         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
20121         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
20122         (h8300_insn_length_from_table): Add a second parameter.
20123         (output_h8sx_shift): Declare.
20124         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
20125         (EXTRA_CONSTRAINT): Replace with...
20126         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
20127         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
20128         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
20129         and h8sx_binary_shift_operator.
20130         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
20131         for TARGET_H8300SX.
20132         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
20133         (bit_memory_operand, fix_bit_operand): Likewise.
20134         (h8300_length_table_for_insn): Remove.
20135         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
20136         instructions.
20137         (h8300_short_immediate_length, h8300_binary_length): New functions.
20138         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
20139         (output_plussi): Use sub to add negative constants.
20140         (compute_plussi_length): Adjust accordingly.
20141         (h8sx_single_shift_type): New enum.
20142         (h8sx_single_shift, h8sx_unary_shift_operator,
20143         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
20144         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
20145         single h8sx instruction.  Return false in this case.
20146         * config/h8300/h8300.md (length_table): Add short_immediate.
20147         (length): Pass the operand array to h8300_insn_length_from_table.
20148         (adjust_length): Assume "no" for insns with a length_table attribute.
20149         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
20150         (*addhi3_h8300hs): Don't use for h8sx.
20151         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
20152         and sub.w #xx:3.
20153         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
20154         1's predicate to nonimmediate_operand.  Only skip default expansion
20155         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
20156         for single h8sx shift instructions.
20157         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
20158         * config/h8300/h8300.c (nibble_operand): Split out of...
20159         (reg_or_nibble_operand): ... this.
20160         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
20161         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
20162         umulhisi3): Introduce expand, and introduce separate insns for
20163         sign- or zero-extended REG and already-extended CONST_INT.
20164         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
20165         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
20166         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
20167         (subhi3): Likewise.  Don't accept immediates for operand 1.
20168         Remove the early clobber from second alternative of the h8300s pattern.
20169         (subsi3): Generalize for h8sx.  Force operand 2 into a register
20170         on plain h8300 targets.
20171         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
20172         (subsi3_h8300h): Generalize for h8sx.
20173         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
20174         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
20175         * config/h8300/h8300.c (reg_or_nibble_operand): New.
20176         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
20177         (TARGET_H8300SXMUL): New.
20178         (CONST_OK_FOR_P): New.
20179         (CONST_OK_FOR_LETTER_P): Adjust.
20180         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
20181         umulhisi3): Accept 4-bit immediate on H8SX.
20182         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
20183         (udivsi3, divhi3, udivsi3, divsi3): New.
20184         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
20185         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
20186         * config/h8300/h8300.h (OK_FOR_Q): New macro.
20187         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
20188         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
20189         Add ADDRESSOF to the bit_operand entry.
20190         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
20191         (h8300_src_operand): Likewise.
20192         (bit_operand): Check nonimmediate_operand rather than general_operand.
20193         Accept any nonimmediate_operand in h8sx code.
20194         (h8300_and_costs): Initialize operands[1].
20195         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
20196         (h8300_operand_class): New enum.
20197         (h8300_length_table): New typedef.
20198         (addb_length_table, addw_length_table, addl_length_table,
20199         logicl_length_table): New tables.
20200         (logicb_length_table, logicw_length_table): New macros.
20201         (h8300_classify_operand, h8300_length_from_table,
20202         h8300_length_table_for_insn, h8300_unary_length,
20203         h8300_insn_length_from_table): New functions.
20204         (output_plussi): Only use adds and subs for register destinations.
20205         Disable redundant clause.
20206         (compute_plussi_cc): Likewise.
20207         (compute_plussi_length): Likewise.  Use h8300_length_from_table
20208         to work out the length of an insn.
20209         (output_logical_op): Only use narrower immediate instructions
20210         if the destination is a register.
20211         (compute_logical_op_cc): Likewise.
20212         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
20213         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
20214         * config/h8300/h8300.md (length_table): New attribute.
20215         (length): When an instruction has a length_table attribute, use
20216         h8300_insn_length_from_table to calculate its default length.
20217         (cmpqi): Use h8300_dst_operand for the first operand and
20218         h8300_src_operand for the second.
20219         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
20220         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
20221         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
20222         iorsi3, xorhi3, xorsi3): Likewise.
20223         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
20224         so that it allows any combination of operands for TARGET_H8300SX.
20225         (iorqi3, xorqi3): Likewise.
20226         (cmpqi): Use the length_table attribute.
20227         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
20228         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
20229         (cmpqi): Add 'Q' constraint.
20230         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
20231         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
20232         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
20233         * config/h8300/h8300.h (MASK_H8300SX): New macro.
20234         (TARGET_H8300S): True for both -ms and -msx.
20235         (TARGET_H8300SX): New macro.
20236         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
20237         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
20238         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
20239         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
20240         [Temporary change.]
20241         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
20242         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
20243         16-bit pointers and 32-bit ints.
20244         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
20245         CONST_DOUBLE with mode no wider than SImode.
20246         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
20247         output operand.
20248         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
20249         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
20250         or SUBREG thereof.
20251         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
20252         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
20253         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
20254
20255 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
20256
20257         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
20258
20259 2004-07-07  Per Bothner  <per@bothner.com>
20260
20261         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
20262
20263 2004-07-07  Mike Stump  <mrs@apple.com>
20264
20265         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
20266         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
20267         (machopic_finish): Likewise.
20268
20269 2004-07-07  Richard Henderson  <rth@redhat.com>
20270
20271         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
20272         through any value-preserving cast.
20273
20274 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
20275
20276         * function.c (assign_parm_find_data_types): Call
20277         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
20278
20279 2004-07-07  Steven Bosscher  <stevenb@suse.de>
20280
20281         * tree-cfg.c (group_case_labels): Remove case labels that have
20282         the same target as the default case.
20283
20284 2004-07-07  Steven Bosscher  <stevenb@suse.de>
20285
20286         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
20287         regardless of DECL_LANG_SPECIFIC being present or not.
20288         * tree.h (DECL_NUM_STMTS): Purge.
20289
20290 2004-07-07  Andrew Pinski  <apinski@apple.com>
20291
20292         * configure: Regenerate with the right autoconf.
20293
20294 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
20295
20296         * ifcvt.c (total_bb_rtx_cost): New function.
20297         (find_if_case_1): Compare rtx_cost of basic block to cost of
20298         BRANCH_COST insns.
20299         (find_if_case_2): Same.
20300
20301 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
20302
20303         PR target/10567
20304         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
20305         (output_return): Likewise.
20306         (output_sibcall): Abort if !flag_delayed_branch.
20307         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
20308         (emit_and_preserve): New function.
20309         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
20310         indirect jump to the thunked-to function if !flag_delayed_branch.
20311         * config/sparc/sparc.md (delayed_branch): New attribute.
20312         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
20313         attribute to compute the length of the insn.
20314         (goto_handler_and_restore): Likewise.
20315
20316 2004-07-07  Andrew Pinski  <apinski@apple.com>
20317
20318         PR tree-optimization/15777
20319         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
20320
20321         * expr.c (expand_expr_real_1): Fix formating.
20322         BUFFER_REF and IN_EXPR are dead.
20323         * fold-const.c (non_lvalue): BUFFER_REF is dead.
20324         * tree-inline.c (estimate_num_insns_1): Likewise.
20325         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
20326         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
20327         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
20328
20329 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20330
20331         * collect2.c (dump_file): Don't call cplus_demangle if
20332         HAVE_LD_DEMANGLE is defined.
20333         (main): Pass "--demangle" to ld if no_demangle is not 0 and
20334         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
20335         if HAVE_LD_DEMANGLE is defined.
20336
20337         * configure.ac (--with-demangler-in-ld): Added
20338         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
20339         --with-demangler-in-ld is used.
20340         * config.in: Regenerated.
20341         * configure: Likewise.
20342
20343 2004-07-07  Roger Sayle  <roger@eyesopen.com>
20344
20345         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
20346         for simple floating point operations "fp", double precision
20347         multiplication "dmul", and single and double precision division
20348         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
20349         (ppc630_cost): New table split from ppc620_cost, to distinguish
20350         differences in floating point latencies.
20351         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
20352         (rs6000_rtx_costs): Add support for single and double precision
20353         floating point addition, subtraction, multiplication, division,
20354         fused-multiply-add, fused-multiply-sub, negation, absolute value
20355         and negative absolute value.  Tweak MEM case to use prefered idiom.
20356
20357 2004-07-07  Richard Henderson  <rth@redhat.com>
20358
20359         * tree-flow-inline.h (may_propagate_copy): Move...
20360         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
20361         attempt to copy between types requiring conversion.
20362         * tree-flow.h (may_propagate_copy): Update decl.
20363         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
20364
20365 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
20366
20367         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
20368         from -mtune= option.
20369
20370 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
20371
20372         * builtins.c: Rename movstr*, except for movstrict*, to
20373         movmem* and clrstr* to clrmem*.
20374         * expr.c: Likewise.
20375         * expr.h: Likewise.
20376         * genopinit.c: Likewise.
20377         * integrate.c: Likewise.
20378         * local-alloc.c: Likewise.
20379         * optabs.c: Likewise.
20380         * optabs.h: Likewise.
20381         * config/alpha/alpha.h: Likewise.
20382         * config/alpha/alpha.md: Likewise.
20383         * config/arm/arm-protos.h: Likewise.
20384         * config/arm/arm.c: Likewise.
20385         * config/arm/arm.md: Likewise.
20386         * config/avr/avr.md: Likewise.
20387         * config/c4x/c4x.c: Likewise.
20388         * config/c4x/c4x.md: Likewise.
20389         * config/frv/frv.md: Likewise.
20390         * config/i386/i386-protos.h: Likewise.
20391         * config/i386/i386.c: Likewise.
20392         * config/i386/i386.h: Likewise.
20393         * config/i386/i386.md: Likewise.
20394         * config/i860/i860.c: Likewise.
20395         * config/i860/i860.md: Likewise.
20396         * config/ip2k/ip2k.md: Likewise.
20397         * config/ip2k/libgcc.S: Likewise.
20398         * config/ip2k/t-ip2k: Likewise.
20399         * config/m32r/m32r.c: Likewise.
20400         * config/m32r/m32r.md: Likewise.
20401         * config/mcore/mcore.md: Likewise.
20402         * config/mips/mips.c: Likewise.
20403         * config/mips/mips.md: Likewise.
20404         * config/ns32k/ns32k.c: Likewise.
20405         * config/ns32k/ns32k.h: Likewise.
20406         * config/ns32k/ns32k.md: Likewise.
20407         * config/pa/pa.c: Likewise.
20408         * config/pa/pa.md: Likewise.
20409         * config/pdp11/pdp11.h: Likewise.
20410         * config/pdp11/pdp11.md: Likewise.
20411         * config/rs6000/rs6000.c: Likewise.
20412         * config/rs6000/rs6000.md: Likewise.
20413         * config/s390/s390-protos.h: Likewise.
20414         * config/s390/s390.c: Likewise.
20415         * config/s390/s390.md: Likewise.
20416         * config/sh/lib1funcs.asm: Likewise.
20417         * config/sh/sh.c: Likewise.
20418         * config/sh/sh.md: Likewise.
20419         * config/sh/t-sh: Likewise.
20420         * config/sparc/sparc.h: Likewise.
20421         * config/vax/vax.md: Likewise.
20422         * config/xtensa/xtensa.c: Likewise.
20423         * config/xtensa/xtensa.md: Likewise.
20424         * doc/invoke.texi: Likewise.
20425         * doc/md.texi: Likewise.
20426         * doc/rtl.texi: Likewise.
20427
20428 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
20429
20430         PR target/16407
20431         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
20432         * config/mips/mips.c (mips_declare_common_object): New function,
20433         mostly split out from...
20434         (mips_output_aligned_decl_common): ...here.
20435         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
20436         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
20437         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
20438         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
20439
20440 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20441
20442         PR c/16392
20443         * function.c (assign_parms): Fix typo from previous change.
20444
20445 2004-07-07  Jason Merrill  <jason@redhat.com>
20446
20447         PR c++/15815
20448         * doc/extend.texi (C++ Interface): Correct information and
20449         discourage use.
20450
20451 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
20452
20453         PR target/16130
20454         PR target/16142
20455         PR target/16143
20456         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
20457         insn.
20458
20459 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20460
20461         PR target/1679.
20462         * config/m32r/m32r.c (m32r_function_symbol): New function:
20463         Generate a symbol name RTX with the correct m32r specific flags
20464         set.
20465         (block_move_call): Use new function to generate correct symbol.
20466         * config/m32r/m32r-protos.h: Add prototype for new funcion.
20467         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
20468         function.
20469
20470 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
20471
20472         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
20473         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
20474         TYPE_BINFO_BASETYPE): Remove.
20475         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
20476         to ...
20477         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
20478         here.
20479         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
20480         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
20481         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
20482         (struct tree_binfo): Rename base_types to base_binfos.
20483         * alias.c (record_component_aliases): Adjust BINFO macros.
20484         * dbxout.c (dbxout_type): Likewise.
20485         * dwarf2out.c (gen_member_die): Likewise.
20486         * sdbout.c (sdbout_one_type): Likewise.
20487         * tree-dump.c (deque_and_dump): Likewise.
20488         * config/i386/i386.c (classify_argument,
20489         contains_128bit_aligned_vector_p): Likewise.
20490
20491 2004-07-07  Nick Clifton  <nickc@redhat.com>
20492
20493         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
20494         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
20495
20496 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
20497
20498         * vec.h: Fix the example use.
20499
20500 2004-07-06  Richard Henderson  <rth@redhat.com>
20501
20502         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
20503         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
20504         * tree-inline.c (copy_body_r, setup_one_parameter,
20505         initialize_inlined_parameters, expand_call_inline,
20506         declare_inline_vars): Don't check it.
20507         (expand_calls_inline): Remove old version, rename new version
20508         from gimple_expand_calls_inline.
20509         * tree-optimize.c (execute_gimple): Remove.
20510         (pass_gimple): Don't run anything.
20511
20512 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
20513
20514         * doc/sourcebuild.texi: Use semicolons instead of commas in
20515         section title.
20516
20517 2004-07-06  Richard Henderson  <rth@redhat.com>
20518
20519         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
20520         (sra_walk_modify_expr, scan_init): Likewise.
20521         (generate_element_zero): Check visited before scanning children.
20522         (generate_element_init): Set visited on error.
20523         (scalarize_init): Handle generate_element_init failure similar
20524         to use_block_copy.
20525
20526 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
20527
20528         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
20529         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
20530
20531 2004-07-06  Richard Henderson  <rth@redhat.com>
20532
20533         * config/i386/i386.c (legitimize_pic_address): Make static.
20534         (legitimize_address): Handle CONST with TLS operand.
20535         (ix86_expand_move): Don't call legitimize_pic_address directly.
20536         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
20537
20538 2004-07-06  Roger Sayle  <roger@eyesopen.com>
20539
20540         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
20541         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
20542         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
20543         is currently executed unconditionally, i.e. not in "else_bb".
20544
20545 2004-07-06  Steven Bosscher  <stevenb@suse.de>
20546
20547         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
20548         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20549         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
20550         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20551         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
20552         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20553         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
20554         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20555         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
20556         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20557         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
20558         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20559         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
20560         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20561         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
20562         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
20563
20564 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
20565
20566         * dojump.c (do_jump): REFERENCE_EXPR is dead.
20567         * expr.c (expand_expr_real_1): Ditto.
20568         * tree-inline.c (estimate_num_insns_1): Ditto.
20569         * tree-pretty-print.c (dump_generic_node): Ditto.
20570         (op_symbol): Ditto.
20571         * tree.def: Ditto.
20572
20573 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
20574
20575         * tree-ssa-pre.c (reference_node_pool): New pool.
20576         (find_or_generate_expression): Class 'r' is okay too.
20577         (create_value_expr_from): Ditto.
20578         (add_to_sets): LHS should not include vuses.
20579         (eliminate): Ditto.
20580         (compute_avail): Reverse ordering of tests.
20581         Valuize INDIRECT_REF as well.
20582
20583 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
20584
20585         PR rtl-optimization/16380
20586         * loop.c (check_dbra_loop): Sink comparison instructions if they
20587         do something other than set cc0.
20588
20589 2004-07-06  James E Wilson  <wilson@specifixinc.com>
20590
20591         * doc/interface.texi (longjmp and automatic variables): Delete
20592         paragraph recommending taking the address of a variable.
20593
20594 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
20595
20596         * vec.h (VEC_embedded_alloc): Remove.
20597         (VEC_embedded_size, VEC_embedded_init): New.
20598         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
20599         MEM_STAT_INFO.
20600         (VEC_truncate): New.
20601         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
20602         (vec_embedded_alloc): Remove.
20603         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
20604         (vec_embedded_alloc): Remove.
20605
20606 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
20607
20608         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
20609         (gt-langhooks.h): Remove.
20610
20611 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
20612
20613         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
20614
20615 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
20616
20617         * config/sparc/sparc.c (get_pc_symbol): Rename into
20618         add_pc_to_pic_symbol.
20619         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
20620         (load_pic_register): Account for previous changes.
20621         Use reg_names.  Don't create the label twice.
20622         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
20623         UNSPEC_LOAD_PCREL_SYM.
20624         (get_pc): Rename into load_pcrel_sym.  Add predicate to
20625         operands.  Remove condition.
20626
20627 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
20628
20629         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
20630         RECORD, UNION & QUAL_UNION is actually a binfo.
20631
20632         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
20633         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
20634         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
20635         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
20636         * dwarf2out.c (add_data_member_location_attribute): Likewise.
20637         (gen_inheritance_die): Likewise.
20638         * tree-dump.c (deque_and_dump): Likewise.
20639         * doc/c-tree.texi (Binfos): Add under reconstruction note.
20640
20641 2004-07-06  Steven Bosscher  <stevenb@suse.de>
20642
20643         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
20644         Define.
20645         * config/mcore/mcore.md: Model memory latency with a simple DFA
20646         pipeline description instead of a define_function_unit.
20647
20648 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20649
20650         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
20651         * langhooks.h (var_mod_type_p): Likewise.
20652         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
20653         * expr.c (count_type_elements): Properly handle return from
20654         array_type_nelts and properly test for overflow.
20655         * gimplify.c (gimplify_init_constructor): Properly handle return
20656         from array_type_nelts.
20657         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
20658         * integrate.c (copy_decl_for_inlining): Correct comments.
20659         * tree-inline.c (remap_decl): Update comments, remove dead code,
20660         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
20661         (remap_type): Only remap if variably modified by vars in function
20662         being inlined.
20663         (copy_body_r): Use compatible_type langhooks to see when can fold.
20664         (setup_one_parameter): Don't remap type.
20665         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
20666         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
20667         compute TREE_INVARIANT for decl case.
20668         (find_var_from_fn): New function.
20669         (variably_modified_type_p): Add arg and call new function.
20670         * tree.h (variably_modified_type_p): Add extra arg.
20671
20672 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
20673
20674         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
20675         (goto_handler_and_restore_v9): Delete disabled insn.
20676         (goto_handler_and_restore_v9_sp64): Likewise.
20677
20678 2004-07-05  Roger Sayle  <roger@eyesopen.com>
20679
20680         * calls.c (load_register_parameters): Call expand_shift instead
20681         of expand_binop with ashl_optab (or other shift optab) directly.
20682         * expr.c (emit_group_load, emit_group_store): Likewise.
20683         * function.c (assign_parm_setup_block): Likewise.
20684         * stmt.c (shift_return_value): Likewise.
20685
20686 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
20687
20688         * expr.c (expand_assignment): Disable the bitfield += optimizations.
20689
20690 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
20691
20692         * doc/sourcebuild.texi: Revert previous patch.
20693
20694 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
20695
20696         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
20697         TARGET_MEM_FUNCTIONS.
20698         * system.h: Poison TARGET_MEM_FUNCTIONS.
20699         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
20700         bcmp_libfunc, bzero_libfunc): Remove.
20701         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
20702         bzero_libfunc.
20703         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
20704         * doc/standards.texi: Don't mention calling BSD string functions.
20705         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
20706         * config/vax/t-memfuncs: New.
20707         * config/memcmp.c, config/memcpy.c, config/memmove.c,
20708         config/memset.c: New.
20709         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
20710         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
20711         vax/t-memfuncs.
20712         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
20713         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
20714         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
20715         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
20716         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
20717         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
20718         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
20719         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
20720         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
20721         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
20722
20723 2004-07-05  Richard Henderson  <rth@redhat.com>
20724
20725         * function.c (assign_parm_setup_reg): Properly rename variables in
20726         FUNCTION_ARG_CALLEE_COPIES section.
20727
20728 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
20729
20730         * tree-mudflap.c: Include cgraph.h.
20731         (mf_init_extern_trees): Rename to mudflap_init.  Export.
20732         Rewrite to create synthetic declarations instead of looking
20733         up declarations from mf-runtime.h.
20734         (mf_make_builtin, mf_make_cache_struct_type): New functions.
20735         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
20736         Correct commentary.
20737         (execute_mudflap_function_decls, mudflap_register_call):
20738         Don't call mf_init_extern_trees.
20739         (mudflap_finish_file): Use cgraph_build_static_cdtor.
20740
20741         * tree-mudflap.h: Update prototypes.
20742         * c-mudflap.c: Delete file.
20743         * c-common.c: Include tree-mudflap.h.
20744         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
20745         * Makefile.in: Remove all references to c-mudflap.o.
20746         Update dependencies.
20747
20748 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20749
20750         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
20751         displacements with the spatial-locality cache-control completer.
20752
20753 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
20754
20755         * langhooks.c: Don't include gt-langhooks.h.
20756         (var_labelno): Delete.
20757         (lhd_set_decl_assembler_name): Do not append a distinguishing
20758         number to file-scope internal-linkage declarations for the first
20759         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
20760         the declaration itself (if at block scope), or its containing
20761         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
20762         number.
20763
20764         * opts.c (cur_in_fname): New global.
20765         * opts.h: Declare it.
20766         * tree.c: Include opts.h.
20767         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
20768         DECL_UID equal to cur_in_fname.
20769         (copy_node_stat): Do not change DECL_UID when copying a
20770         TRANSLATION_UNIT_DECL.
20771         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
20772         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
20773
20774         * c-decl.c (c_static_assembler_name): Delete.
20775         * c-tree.h (c_static_assembler_name): Delete prototype.
20776         * c-lang.c, objc/objc-lang.c: Don't override
20777         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
20778
20779         * Makefile.in (tree.o): Update dependencies.
20780         (GTFILES): Remove langhooks.c.
20781
20782 2004-07-05  Roger Sayle  <roger@eyesopen.com>
20783
20784         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
20785         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
20786         Normalize "X % C" as "X % -C" for signed modulus and negative C.
20787         Optimize "X % -Y" as "X % Y" for signed modulus.
20788         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
20789         into "((unsigned) X % Y) == 0".
20790
20791 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
20792
20793         * sourcebuild.texi (Config Fragments): Use @comma{} in
20794         cross-reference to section title.
20795
20796 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20797
20798         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
20799         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
20800         (gimplify_target_expr, gimplify_expr): Likewise.
20801         (copy_if_shared_r): No longer need special case for BIND_EXPR.
20802         (unshare_body, unvisit_body): Only look at nested if BODY_P is
20803         whole function.
20804         (gimplify_compound_lval): See if we can strip any useless conversion.
20805         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
20806         from RHS, not LHS.
20807         (gimplify_modify_expr_to_memset): Likewise.
20808         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
20809         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
20810         (declare_inline_vars): Likewise.
20811         (walk_type_fields): New function.
20812         (walk_tree): Use it.
20813         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
20814
20815         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
20816         (sra_walk_modify_expr): Allow init function to fail.
20817         (scan_init): Now returns bool.
20818         (generate_element_init): If can't understand INIT, return false.
20819         (scalarize_init): Return false if generate_element_init does.
20820
20821         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
20822         print bounds.
20823
20824         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
20825         bounds if bounds aren't constant.
20826
20827         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
20828
20829         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
20830         to type hooks; remove bogus PARAMS.
20831
20832 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20833
20834         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
20835         * dwarf2out.c (add_data_member_location_attribute): Check for
20836         TREE_BINFO.
20837         * tree.c (tree_node_kinds): Add "binfos".
20838         (binfo_lang_slots): New.
20839         (make_node_stat): Add TREE_BINFO.
20840         (make_tree_binfo_stat): New.
20841         (tree_node_structure): Add TREE_BINFO.
20842         * tree.def (TREE_BINFO): New.
20843         * tree.h (REC_OR_UNION_CHECK): Rename to ...
20844         (RECORD_OR_UNION_CHECK): ... here.
20845         (NOT_RECORD_OR_UNION_CHECK): New.
20846         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
20847         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
20848         RECORD_OR_UNION_CHECK.
20849         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
20850         (TYPE_LANG_SLOT_1): New.
20851         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
20852         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
20853         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
20854         (BINFO_ELTS): Remove.
20855         (BINFO_LANG_SLOT): New.
20856         (struct tree_binfo): New.
20857         (binfo_lang_slots): Declare.
20858         (enum tree_node_structure_enum): Add TS_BINFO.
20859         (union tree_node): Add binfo.
20860         (make_tree_binfo_stat): Declare.
20861         (make_tree_binfo): New.
20862         (enum tree_node_kind): Add binfo_kind.
20863
20864         * objc/objc-act.c (start_class, objc_declare_protocols,
20865         start_protocols): Use TYPE_LANG_SLOT_1.
20866         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
20867         to ...
20868         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
20869         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
20870         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
20871         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
20872
20873 2004-07-05  Steven Bosscher  <stevenb@suse.de>
20874
20875         * rtl.h (struct rtx_def): Remove the integrated flag.
20876         Use the return_val flag for MEM_SCALAR_P.
20877         Reshuffle and update flags in CLEAR_RTX_FLAGS.
20878
20879 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
20880
20881         PR target/16357
20882         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
20883         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
20884         move_by_pieces.
20885
20886 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
20887
20888         * var-tracking.c: Fix some comments.
20889         (frame_stack_adjust): New.
20890         (vt_stack_adjustments): Init stack_adjust of entry block to
20891         minus stack adjustment of function prologue.
20892         (adjust_stack_reference): Do not adjust if adjustment == 0.
20893         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
20894         (emit_notes_in_bb): Likewise.
20895         (vt_add_function_parameters): Do not adjust locations of
20896         function arguments.
20897         (vt_initialize): Compute the stack adjustment of function
20898         prologue and offset the initial "location" of frame_base_decl
20899         from the stack pointer after prologue.
20900
20901 2004-07-04  Richard Henderson  <rth@redhat.com>
20902
20903         * function.c (struct assign_parm_data_all): New.
20904         (struct assign_parm_data_one): New.
20905         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
20906         assign_parm_find_data_types, assign_parms_setup_varargs,
20907         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
20908         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
20909         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
20910         assign_parm_setup_block, assign_parm_setup_reg,
20911         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
20912         (assign_parms): ... here.
20913
20914 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
20915
20916         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
20917         now are bitmap_set_t's.
20918         (bitmap_insert_into_set): No point in inserting the value if
20919         it's invariant.
20920         (bitmap_set_contains): New function.
20921         (bitmap_set_replace_value): Add comment on why we do it
20922         this way.
20923         (set_contains): Removed.
20924         (bitmap_set_subtract_from_value_set): New name of
20925         set_subtract now that it's arguments are two different
20926         types of sets.
20927         Update callers.
20928         (bitmap_find_leader): Change algorithm used.
20929         (find_or_generate_expression): Update use of functions for new
20930         bitmap sets.
20931         (create_expression_by_pieces): Ditto.
20932         (insert_aux): Ditto.
20933         (insert): Ditto.
20934         (add_to_sets): Ditto.
20935         (init_pre): Ditto.
20936         (execute_pre): Ditto.
20937         (compute_avail): Ditto.
20938         Also ignore virtual phis.
20939
20940 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
20941
20942         * combine.c (simplify_comparison): Fix comment typo.
20943
20944 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
20945
20946         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
20947         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
20948         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
20949         (output_restore): Change parameter from 'insn' to 'pat'.
20950         (output_return): Adjust call to output_restore.
20951         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
20952         Adjust call to output_restore.
20953
20954 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
20955
20956         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
20957         and assert system is bsd.
20958
20959 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
20960
20961         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
20962         (TARGET_SWITCHES): Remove -mdebugc.
20963         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
20964         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
20965         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
20966         (sle_[sd]i_reg): Delete.
20967
20968 2004-07-04  Steven Bosscher  <stevenb@suse.de>
20969
20970         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
20971         Define.
20972         * config/iq2000/iq2000.md: Translate old pipeline description to an
20973         equivalent new one.
20974
20975 2004-07-04  Roger Sayle  <roger@eyesopen.com>
20976
20977         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
20978         Ensure the replacement rhs is valid gimple before performing
20979         the substitution.  Return false if these sanity checks fail.
20980         (fold_stmt): Only set changed to true, if set_rhs returns true.
20981         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
20982         succeeds.
20983
20984 2004-07-04  Richard Henderson  <rth@redhat.com>
20985
20986         PR c/16348
20987         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
20988
20989 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
20990
20991         * configure.ac (ranlib_flags): New variable.
20992         * Makefile.in (RANLIB_FLAGS): New variable.
20993         (libbackend.a): Use it.
20994         * configure: Regenerated.
20995
20996 2004-07-04  Roger Sayle  <roger@eyesopen.com>
20997
20998         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
20999         a "sign mask" instead of using ashr_optab directly.
21000
21001 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
21002
21003         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
21004         * doc/cppopts.texi: Clarify processing of command-line defines.
21005
21006 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
21007
21008         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
21009
21010 2004-07-04  Richard Henderson  <rth@redhat.com>
21011
21012         * rtl.def (ADDRESSOF): Remove.
21013         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
21014         (find_base_term, memrefs_conflict_p): Likewise.
21015         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
21016         (fold_rtx, cse_insn, set_live_p): Likewise.
21017         * dwarf2out.c (mem_loc_descriptor): Likewise.
21018         (add_location_or_const_value_attribute): Likewise.
21019         * emit-rtl.c (copy_insn_1): Likewise.
21020         * explow.c (memory_address): Likewise.
21021         * expmed.c (store_split_bit_field): Likewise.
21022         * expr.c (expand_expr_real_1): Likewise.
21023         * function.c (instantiate_decl
21024         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
21025         * genrecog.c (preds, validate_pattern): Likewise.
21026         * integrate.c (copy_rtx_and_substitute): Likewise.
21027         * recog.c (general_operand, register_operand): Likewise.
21028         (memory_address_p): Likwise.
21029         * reload1.c (eliminate_regs, elimination_effects): Likewise.
21030         * rtl.c (copy_rtx): Likewise.
21031         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
21032         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
21033         * rtlhooks.c (gen_lowpart_general): Likewise.
21034         * stmt.c (expand_asm_operands): Likewise.
21035         * web.c (entry_register, replace_ref, web_main): Likewise.
21036         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
21037         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
21038         * config/arm/arm.c (thumb_rtx_costs): Likewise.
21039         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
21040         * config/frv/frv.c (move_destination_operand, move_source_operand,
21041         condexec_dest_operand, condexec_source_operand,
21042         condexec_memory_operand): Likewise.
21043         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
21044         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
21045         (destination_xfmode_operand): Likewise.
21046         * config/mips/mips.h (PREDICATE_CODES): Likewise.
21047         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
21048         * config/s390/s390.c (general_s_operand): Likewise.
21049         * config/s390/s390.md (mov*): Likewise.
21050         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
21051
21052         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
21053         * expr.c (expand_expr_real_1): Likewise.
21054         * stmt.c (expand_decl): Likewise.
21055         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
21056
21057         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
21058         postponed_insns, put_var_into_stack, put_reg_into_stack,
21059         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
21060         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
21061         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
21062         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
21063         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
21064         purge_bitfield_addressof_replacements, purge_addressof_replacements,
21065         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
21066         struct insns_for_mem_walk_info, insns_for_mem_walk,
21067         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
21068         setjmp_protect_args): Remove.
21069         (push_function_context_to): Don't handle var_refs_queue.
21070         (pop_function_context_from, free_after_compilation): Likewise.
21071         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
21072         (assign_parms, allocate_struct_function): Likewise.
21073         (use_register_for_decl): New.
21074         (expand_function_end): Don't setjmp_protect.
21075         * function.h (struct emit_status): Update commentary.
21076         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
21077         (max_parm_reg, parm_reg_stack_loc): Remove.
21078         * passes.c (DFI_addressof): Remove.
21079         (dump_file_info): Remove addressof.
21080         (rest_of_handle_addressof): Remove.
21081         (rest_of_compilation): Don't call it.
21082         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
21083         * stmt.c (expand_decl): Use use_register_for_decl.
21084         * tree.h: Update decls.
21085         * web.c (mark_addressof): Remove.
21086         * doc/invoke.texi (-dF): Remove.
21087
21088 2004-07-03  Richard Henderson  <rth@redhat.com>
21089
21090         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
21091         instead of gen_mem_addressof.
21092         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
21093         TImode output register.
21094
21095 2004-07-03  Richard Henderson  <rth@redhat.com>
21096
21097         PR tree-optimization/16341
21098         * tree-sra.c (sra_walk_function): Increment to next stmt before
21099         processing the current stmt.
21100         (sra_insert_after): Always use BSI_SAME_STMT.
21101
21102 2004-07-03  Richard Henderson  <rth@redhat.com>
21103
21104         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
21105         fp plus with minus.
21106
21107 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
21108
21109         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
21110         with tree_int_cst_equal.
21111
21112 2004-07-03  Andreas Schwab  <schwab@suse.de>
21113
21114         * config/ia64/ia64.md: Define new attribute "empty".
21115         (prologue_use, nop_x, insn_group_barrier): Set it.
21116
21117         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
21118         skip over "empty" insns.
21119
21120 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21121
21122         * tree-inline.c (initialize_inlined_parameters): Pass proper function
21123         context to gimplify_body.
21124         (walk_tree): Don't walk into types twice.
21125         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
21126
21127         * tree-sra.c (generate_element_init): Remove any useless conversions.
21128
21129         * gimplify.c (gimplify_conversion): Remove stripping useless
21130         conversions from here.
21131         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
21132         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
21133         Unshare before substituting PLACEHOLDER_EXPR.
21134         (gimplify_modify_expr_to_memset): Likewise.
21135         Pass address of TO to memset, not TO itself.
21136         (gimplify_init_constructor): Make copy of OBJECT so we have it each
21137         time we make an expression (to match a PLACEHOLDER_EXPR).
21138
21139         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
21140         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
21141         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
21142         * tree-ssa-dom.c (local_fold): Likewise.
21143
21144         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
21145         * langhooks.h (strct lang_hooks): New field type_max_size.
21146         * function.c (assign_temp): Call it.
21147
21148 2004-07-03  Steven Bosscher  <stevenb@suse.de>
21149
21150         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
21151         * config/sh/sh.md: Convert the SH1 pipeline description to
21152         a DFA model.
21153
21154 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
21155
21156         * c-decl.c (struct c_binding): Remove contour field; add
21157         depth, invisible, nested fields.
21158         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
21159         (B_IN_EXTERNAL_SCOPE): New convenience macros.
21160         (bind): Add invisible and nested arguments. Initialize
21161         new fields of struct c_binding; adjust loop scanning for
21162         insertion point.
21163         (free_binding_and_advance): Clear structure with memset.
21164         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
21165         in file scope, even if it's in external scope too.
21166         (pushdecl): Adjust to match.  Create invisible file-scope
21167         declarations for block-scope forward declarations of static functions.
21168         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
21169         (undeclared_variable, lookup_label, declare_label, define_label)
21170         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
21171         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
21172         (store_parm_decls_oldstyle): Adjust to match.
21173         (diagnose_mismatched_decls): Correct handling of linkage clashes.
21174         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
21175
21176         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
21177         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
21178
21179 2004-07-02  Richard Henderson  <rth@redhat.com>
21180
21181         * c-decl.c (grokdeclarator): Don't frob current_function_decl
21182         around variable_size.
21183         (set_decl_nonlocal): Remove.
21184         (store_parm_decls): Add stmts for pending sizes.
21185         * calls.c (calls_function, calls_function_1): Remove.
21186         (precompute_arguments): Don't call it.
21187         * cfgexpand.c (set_save_expr_context): Remove.
21188         (tree_expand_cfg): Don't call it.
21189         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
21190         (dwarf2out_finish): Likewise.
21191         * expr.c (emit_block_move): Adjust addresses to BLKmode.
21192         (store_constructor): Don't pre-evaluate SAVE_EXPR.
21193         (safe_from_p): Don't queue SAVE_EXPRs.
21194         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
21195         or build plain VAR_DECLs.
21196         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
21197         (fold): Likewise.
21198         (fold_checksum_tree): Don't special-case SAVE_EXPR.
21199         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
21200         (put_var_into_stack): Don't handle SAVE_EXPR.
21201         (gen_mem_addressof): Likewise.
21202         * function.h (struct function): Remove x_save_expr_regs.
21203         (save_expr_regs): Remove.
21204         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
21205         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
21206         * stor-layout.c (variable_size): Don't set it.
21207         (force_type_save_exprs, force_type_save_exprs_1): Remove.
21208         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
21209         all callers.  Don't set SAVE_EXPR_CONTEXT.
21210         * tree-inline.h (remap_save_expr): Update decl.
21211         * tree.c (save_expr): Update build size.
21212         (first_rtl_op): Don't handle SAVE_EXPR.
21213         (unsave_expr_1, contains_placeholder_p): Likewise.
21214         (decl_function_context): Likewise.
21215         * tree.def (SAVE_EXPR): Remove args 1 and 2.
21216         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
21217         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
21218
21219 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
21220
21221         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
21222         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
21223         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
21224         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
21225         some first-person references and patronizing comments.  Based on
21226         printed manual.
21227         * doc/invoke.texi: Don't reference fortran@gnu.org.
21228         * doc/trouble.texi (Warning when a non-void function value is
21229         ignored): Rewrite.  From Russ Allbery and Chris Devers.
21230
21231 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
21232
21233         * tree-ssa-pre.c (bitmap_set_t): New.
21234         (bb_value_sets): avail_out is now a bitmap_set_t.
21235         (bitmap_find_leader): New function.
21236         (bitmap_value_insert_into_set): Ditto.
21237         (bitmap_set_copy): Ditto.
21238         (bitmap_value_replace_in_set): Ditto.
21239         (bitmap_set_contains_value): Ditto.
21240         (bitmap_set_new): Ditto.
21241         (bitmap_set_pool): New pool.
21242         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
21243         (insert_aux): Ditto.
21244         (add_to_sets): Ditto.
21245         (compute_avail): Ditto
21246         (eliminate): Ditto.
21247         (init_pre): Ditto.
21248         (fini_pre): Ditto.
21249         (execute_pre): Ditto.
21250
21251 2004-07-02  Roger Sayle  <roger@eyesopen.com>
21252
21253         * config/rs6000/rs6000.c (struct processor_costs): New structure
21254         used to hold instruction latencies/sizes for processor types.
21255         (rs6000_cost): New global variable pointing to current CPU's costs.
21256         (rs6000_override_options): Initialize rs6000_cost to point to the
21257         appropriate cost table based upon rs6000_cpu and optimize_size.
21258         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
21259         timings inline.
21260
21261 2004-07-02  Richard Henderson  <rth@redhat.com>
21262
21263         * expmed.c (make_tree): Don't use SET_DECL_RTL.
21264
21265 2004-07-02  Steven Bosscher  <stevenb@suse.de>
21266
21267         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
21268
21269 2004-07-01  Richard Henderson  <rth@redhat.com>
21270
21271         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
21272         (alpha_gp_save_rtx): Use assign_stack_local instead of
21273         gen_mem_addressof.
21274
21275 2004-07-01  Richard Henderson  <rth@redhat.com>
21276
21277         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
21278         (alpha_rtx_cost_data): Update to match.
21279         (alpha_rtx_cost_size): New.
21280         (alpha_rtx_costs): Honor optimize_size.
21281
21282 2004-07-01  Richard Henderson  <rth@redhat.com>
21283
21284         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
21285         * cfgexpand.c (tree_expand_cfg): Do it here.
21286         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
21287         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
21288         * config/mips/mips.c (mips_output_mi_thunk): And here.
21289         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
21290         * config/sh/sh.c (sh_output_mi_thunk): And here.
21291         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
21292
21293 2004-07-01  Richard Henderson  <rth@redhat.com>
21294
21295         * tree.def (RTL_EXPR): Remove.
21296         * c-typeck.c (lvalue_p): Don't handle it.
21297         * expr.c (safe_from_p): Likewise.
21298         (expand_expr_real_1): Likewise.
21299         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
21300         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
21301         * gengtype.c (adjust_field_tree_exp): Likewise.
21302         * stmt.c (warn_if_unused_value): Likewise.
21303         * tree-gimple.c (recalculate_side_effects): Likewise.
21304         * tree-pretty-print.c (dump_generic_node): Likewise.
21305         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
21306         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
21307         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
21308
21309         * stmt.c (struct stmt_status): Remove x_last_expr_type,
21310         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
21311         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
21312         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
21313         all the bits that tracked last_expr.
21314         (expand_end_bindings): Don't track last_expr.
21315         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
21316         (clear_last_expr): Remove.
21317         (expand_asm): Don't call it.
21318         (expand_asm_operands, expand_end_cond): Likewise.
21319         (expand_naked_return, expand_null_return_1): Likewise.
21320         * c-typeck.c (c_begin_compound_stmt): Likewise.
21321         * cfgexpand.c (expand_block): Use expand_expr_stmt.
21322         * expr.c (expand_expr_real_1): Likewise.
21323         * tree.h: Update prototypes.
21324
21325         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
21326         (struct emit_status): Remove sequence_rtl_expr.
21327         (struct function): Remove x_rtl_expr_chain.
21328         (seq_rtl_expr, rtl_expr_chain): Remove.
21329         * function.c (struct temp_slot): Remove rtl_expr.
21330         (assign_stack_temp_for_type): Don't set it.
21331         (free_temp_slots, pop_temp_slots): Don't check it.
21332         (free_after_compilation): Don't clear x_rtl_expr_chain.
21333         (fixup_var_refs): Don't search it.
21334         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
21335         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
21336         or seq_rtl_expr.
21337         (push_topmost_sequence): Likewise.
21338         (end_sequence, init_emit): Likewise.
21339         (start_sequence_for_rtl_expr): Remove.
21340         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
21341         * rtl.h (preserve_rtl_expr_result): Remove.
21342
21343 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
21344
21345         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
21346         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
21347         typos.
21348
21349 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
21350
21351         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
21352         (STANDARD_STARTFILE_PREFIX_2): Define.
21353         (standard_startfile_prefix_1): Initialize to
21354         STANDARD_STARTFILE_PREFIX_1.
21355         (standard_startfile_prefix_2): Initialize to
21356         STANDARD_STARTFILE_PREFIX_2.
21357         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
21358         (STANDARD_STARTFILE_PREFIX_1): Define.
21359         (STANDARD_STARTFILE_PREFIX_2): Define.
21360         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
21361         (STANDARD_STARTFILE_PREFIX_2): Document.
21362
21363 2004-07-01  Richard Henderson  <rth@redhat.com>
21364
21365         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
21366         in order to disable scalarization.  Instead set a flag and wait
21367         for a candidate decl.
21368
21369 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
21370
21371         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
21372         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
21373         Use terminology "testsuite" and "enumerated".
21374
21375 2004-07-01  Richard Henderson  <rth@redhat.com>
21376
21377         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
21378         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
21379         (initial_return_save): Likewise.
21380         (flush_queued_reg_saves): Remap register numbers.
21381         (dwarf2out_return_reg): Likewise.
21382
21383 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21384
21385         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
21386
21387         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
21388         access functions for lower bound and element size and only output
21389         if lower bound nonzero or element size not same as that of type.
21390         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
21391
21392 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
21393
21394         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
21395
21396 2004-07-01  Per Bothner  <per@bothner.com>
21397
21398         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
21399
21400 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
21401
21402         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
21403         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
21404         first operand.  Don't optimize if the bitfield is volatile.
21405
21406 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
21407
21408         * c-pretty-print.c (pp_c_postfix_expression): Handle
21409         floating-point comparison operators.
21410         (pp_c_expression): Pass floating-point comparison
21411         operators to pp_c_postfix_expression.
21412
21413 2004-07-01  Roger Sayle  <roger@eyesopen.com>
21414
21415         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
21416         rtx_cost instead of "had_mult" to determine whether the transformed
21417         expression is cheaper than the original.
21418
21419 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
21420
21421         * alias.c (get_alias_set, canon_rtx, get_addr,
21422         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
21423         Use MEM_P.
21424         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
21425         expand_builtin): Likewise.
21426         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
21427         Likewise.
21428         * combine.c (can_combine_p, combinable_i3pat, try_combine,
21429         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
21430         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
21431         record_dead_and_set_regs_1, get_last_value_validate,
21432         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
21433         * cse.c (check_dependence, canon_hash, equiv_constant,
21434         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
21435         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
21436         count_reg_usage): Likewise.
21437         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
21438         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
21439         cselib_record_sets): Likewise.
21440         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
21441         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
21442         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
21443         * df.c (df_uses_record): Likewise.
21444         * dojump (do_jump): Likewise.
21445         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
21446         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
21447         decl_start_label): Likewise.
21448         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
21449         operand_subword, change_address_1, make_safe_from): Likewise.
21450         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
21451         stabilize, force_not_mem): Likewise.
21452         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
21453         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
21454         * expr.c (convert_move, convert_modes, emit_block_move,
21455         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
21456         emit_move_insn_1, expand_assignment, store_expr,
21457         store_constructor_field, store_constructor, store_field,
21458         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
21459         Likewise.
21460         * final.c (cleanup_subreg_operands, alter_subreg,
21461         get_mem_expr_from_op): Likewise.
21462         * flow.c (notice_stack_pointer_modification_1,
21463         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
21464         Likewise.
21465         * function.c (mark_temp_addr_taken, preserve_temp_slots,
21466         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
21467         optimize_bit_field, flush_addressof, purge_addressof_1,
21468         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
21469         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
21470         keep_stack_depressed): Likewise.
21471         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
21472         noce_process_if_block, find_memory): Likewise.
21473         * integrate.c (subst_constants, allocate_initial_values): Likewise.
21474         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
21475         update_equiv_regs): Likewise.
21476         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
21477         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
21478         * optabs.c (expand_abs, emit_unop_insn): Likewise.
21479         * passes.c (rest_of_handle_final): Likewise.
21480         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
21481         move2add_note_store): Likewise.
21482         * ra-build.c (detect_remat_webs): Likewise.
21483         * ra-debug.c (dump_static_insn_cost): Likewise.
21484         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
21485         * recog.c (validate_change, apply_change_group, cancel_changes,
21486         validate_replace_rtx_1, general_operand, register_operand,
21487         nonmemory_operand, push_operand, pop_operand, memory_operand,
21488         indirect_operand, asm_operand_ok, offsettable_memref_p,
21489         offsettable_nonstrict_memref_p, constrain_operands,
21490         store_data_bypass_p): Likewise.
21491         * reg-stack.c (subst_stack_regs_pat): Likewise.
21492         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
21493         copy_cost, reg_scan_mark_refs): Likewise.
21494         * regmove.c (optimize_reg_copy_3, stack_memref_p,
21495         combine_stack_adjustments_for_block): Likewise.
21496         * regrename.c (copyprop_hardreg_forward_1): Likewise.
21497         * reload.c (can_reload_into, push_reload, decompose, immune_p,
21498         find_reloads, find_reloads_address, find_reloads_address_1,
21499         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
21500         find_equiv_reg): Likewise.
21501         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
21502         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
21503         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
21504         delete_address_reloads): Likewise.
21505         * resource.c (mark_referenced_resources): Likewise.
21506         * rtlanal.c (get_jump_table_offset, count_occurrences,
21507         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
21508         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
21509         num_sign_bit_copies1): Likewise.
21510         * rtlhooks.c (gen_lowpart_general): Likewise.
21511         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
21512         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
21513         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
21514         sdbout_global_decl): Likewise.
21515         * simplify-rtx.c (simplify_subreg): Likewise.
21516         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
21517         expand_anon_union_decl, expand_end_case_type): Likewise.
21518         * unroll.c (calculate_giv_inc): Likewise.
21519         * var-tracking.c (stack_adjust_offset_pre_post,
21520         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
21521         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
21522         vt_add_function_parameters): Likewise.
21523         * varasm.c (make_var_volatile, notice_global_symbol,
21524         assemble_external, decode_addr_const, mark_weak,
21525         default_encode_section_info): Likewise.
21526
21527 2004-07-01  Steven Bosscher  <stevenb@suse.de>
21528
21529         * stmt.c (check_seenlabel): Remove.
21530         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
21531
21532 2004-07-01  Richard Henderson  <rth@redhat.com>
21533
21534         * function.h (struct function): Remove x_function_call_count.
21535         (function_call_count): Remove.
21536         * calls.c (expand_call): Don't set it.
21537         * integrate.c (copy_rtx_and_substitute): Likewise.
21538
21539         * function.h (struct function): Remove x_cleanup_label.
21540         (cleanup_label): Remove.
21541         * stmt.c (expand_value_return): Don't use it.
21542         * function.c (free_after_compilation): Don't set it.
21543         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
21544         * cfgexpand.c (tree_expand_cfg): Update call.
21545         * tree.h (expand_function_start): Update decl.
21546
21547 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
21548
21549         PR c/1027
21550         * c-lang.c (c_initialize_diagnostics): Move from here ...
21551         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
21552         (c_tree_printer): Use pretty-printer to format %T.
21553         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
21554         before '*' if not C++.
21555         (pp_c_direct_abstract_declarator): Don't try to print array upper
21556         bound for flexible array members.
21557         * c-tree.h: Include "diagnostic.h".
21558         (c_initialize_diagnostics): Declare.
21559         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
21560         * c-format.c (format_type_warning): New function.  Improve
21561         diagnostics for incorrect format argument types.
21562         (check_format_types): Use it.  Add two parameters.  Use the
21563         TYPE_MAIN_VARIANT of wanted_type.
21564         (check_format_info_main): Pass new parameters to
21565         check_format_types.
21566         (struct format_wanted_type): Update comment.
21567
21568 2004-07-01  Nick Clifton  <nickc@redhat.com>
21569
21570         * target.h (struct gcc_target): Add new field to struct cxx:
21571         import_export_class.
21572         * target-def.h (TARGET_CXX): Initialise the new field.
21573         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
21574         the new field.
21575         * doc/tm.texi: Document the new target hook.
21576
21577 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
21578
21579         * builtins.c (fold_builtin_classify): Fix typo.
21580
21581 2004-07-01  Richard Henderson  <rth@redhat.com>
21582
21583         * function.c (identify_blocks, identify_blocks_1): Remove.
21584         * function.h (identify_blocks): Remove.
21585         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
21586
21587 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
21588
21589         * builtins.c (fold_builtin_classify): New.
21590         (fold_builtin_unordered_cmp): Fix commentary.
21591         (fold_builtin): Use it.
21592         * builtins.def: Define builtins for isnan,
21593         isnanf, isnanl, finite, finitef, finitel,
21594         isinf, isinff, isinfl.
21595
21596 2004-07-01  Richard Henderson  <rth@redhat.com>
21597
21598         * function.h (struct function): Remove dont_emit_block_notes.
21599         * gimple-low.c (lower_function_body): Don't set it.
21600         * cfgexpand.c (expand_block): Don't check it.
21601         * cfglayout.c (insn_locators_initialize): Likewise.
21602         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
21603         * passes.c (rest_of_compilation): Likewise.
21604         * stmt.c (expand_start_bindings_and_block): Likewise.
21605         (expand_end_bindings): Likewise.
21606
21607 2004-07-01  Richard Henderson  <rth@redhat.com>
21608
21609         * cgraph.h (cgraph_build_static_cdtor): Declare.
21610         * cgraphunit.c (cgraph_build_static_cdtor): New.
21611         * c-objc-common.c (build_cdtor): Use it.
21612         * coverage.c (create_coverage): Likewise.
21613         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
21614         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
21615
21616 See ChangeLog.11 for earlier changes.