OSDN Git Service

c6a5746cae0ec7a451bf3f3fcc7a973014a95b0f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-12-14  Richard Henderson  <rth@redhat.com>
2
3         PR target/17990
4         * config/i386/i386.c (x86_use_bt): New.
5         (ix86_expand_unary_operator): Use MEM_P.
6         (ix86_expand_fp_absneg_operator): New.
7         * config/i386/i386.h (x86_use_bt): Declare.
8         (TARGET_USE_BT): New.
9         * config/i386/i386-protos.h: Update.
10         * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator.
11         (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise.
12         (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs,
13         negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if,
14         abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs,
15         absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove.
16         (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed,
17         absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New.  Merge all
18         neg and abs splitters.  Handle DFmode in general regs in 64-bit mode.
19         (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math.
20         (btsq, btrq, btcq): New.  Add peepholes as well.
21         (movv4sf_internal splitter): Postpone til after reload.
22         (movv2di_internal splitter): Likewise.
23         * config/i386/predicates.md (const_0_to_63_operand): New.
24         (absneg_operator): New.
25
26 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27
28         * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P):
29         Check register number and that reg_renumber is nonzero before using it.
30
31 2004-12-14  Steve Ellcey  <sje@cup.hp.com>
32
33         * doc/invoke.texi (IA-64 options): Add existing options that
34         weren't already listed.
35
36 2004-12-14  Jeff Law  <law@redhat.com>
37
38         * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target
39         partition to conflict_graph_merge_regs.
40
41 2004-12-14  Uttam Pawar  <uttamp@us.ibm.com>
42             Janis Johnson  <janis187@us.ibm.com>
43
44         * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors
45         for vector types with invalid component types.
46
47 2004-12-14  Jakub Jelinek  <jakub@redhat.com>
48
49         PR middle-end/18951
50         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2,
51         expand_builtin_mathfn_3): Avoid using arguments passed to
52         save_expr after that call.
53
54         * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend
55         LOAD_EXTEND_OP is not defined.
56         (fold): Likewise.  If flag_syntax_only, don't depend on BITS_PER_WORD.
57
58 2004-12-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
59
60         * tree.def, doc/c-tree.texi: Correctly document restrictions on the
61         shift width.
62
63 2004-12-14  Kazu Hirata  <kazu@cs.umass.edu>
64
65         * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1.
66
67 2004-12-14  Richard Earnshaw  <rearnsha@arm.com>
68
69         PR target/18973
70         arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs)
71         (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling
72         property to flags.
73
74 2004-12-14  Diego Novillo  <dnovillo@redhat.com>
75
76         * tree-gimple.c (get_base_address): Update documentation.
77
78 2004-12-13  Richard Henderson  <rth@redhat.com>
79
80         PR middle-end/17930
81         * passes.c (rest_of_clean_state): Fix computation of
82         preferred_incoming_stack_boundary.
83
84 2004-12-13  Wolfgang Bangerth <bangerth@dealii.org>
85
86         * reload.h: Remove struct needs and its only use.
87
88 2004-12-13  Roger Sayle  <roger@eyesopen.com>
89
90         PR rtl-optimization/18928
91         * simplify_rtx.c (plus_minus_operand_p): New function to encode
92         the test for suitable operands for calls to simplify_plus_minus.
93         Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P.
94         (simplify_binary_operation): Use plus_minus_operand_p.
95
96 2004-12-13  Alexandre Oliva  <aoliva@redhat.com>
97
98         PR tree-opt/16951
99         * tree-inline.c (setup_one_parameter): Don't directly map a
100         parameter to the address of another variable of the same
101         function.
102
103 2004-13-12  Steven Bosscher  <stevenb@suse.de>
104
105         * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we
106         can never create autoinc insns after reload.
107
108 2004-12-13  Jeff Law  <law@redhat.com>
109             Kazu Hirata  <kazu@cs.umass.edu>
110
111         * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a
112         PHI argument is set from a PHI_RESULT in the same block and the
113         PHI argument is not the same as the PHI result.
114
115 2004-12-13  David Edelsohn  <edelsohn@gnu.org>
116
117         * xcoffout.c (xcoffout_declare_function): Always strip storage
118         class encoding.
119
120 2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
121
122         PR target/18964
123         * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic
124         problem, adding a space at the end of the string before concatenation.
125
126 2004-12-13  Kazu Hirata  <kazu@cs.umass.edu>
127
128         * c-common.c (fname_as_string): Free namep if we are returning
129         cstr.text.
130
131         * tree-ssa-dom.c (record_edge_info): Fix memory leak.
132
133 2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
134
135         * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND.
136
137 2004-12-13  Kazu Hirata  <kazu@cs.umass.edu>
138
139         * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by
140         doing a pointer comparison.
141
142         * tree-ssa-dom.c (record_equivalences_from_phis): Add a
143         comment.
144
145         * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment
146         typos.
147
148 2004-12-13  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
149
150         * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to
151         the list rather than replacing the existing value.
152
153 2004-12-13  Richard Henderson  <rth@redhat.com>
154
155         * cfg.c (dump_flow_info): Don't dump pseudo info after reload.
156
157 2004-12-13  Richard Henderson  <rth@redhat.com>
158
159         * Makefile.in (insn-preds.o): Depend on REGS_H.
160         * genpreds.c (write_insn_preds_c): Include regs.h.
161         * config/i386/predicates.md (index_register_operand): Use
162         REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P.
163
164         * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'.
165         * config/i386/i386.md (lea_general_1, lea_general_1_zext,
166         lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext,
167         adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea,
168         ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea,
169         ashlqi3_1_lea): Use 'l' for index register operand.
170         (ashldi3_1_rex64 splitter): Use index_register_operand.
171         (ashlsi3_1 splitter): Be more careful with modes.
172
173 2004-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
174
175         PR target/18459
176         * defaults.h (TARGET_USE_JCR_SECTION): New macro.
177         * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it.
178         * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override
179         default.
180
181 2004-12-13 Uros Bizjak <uros@kss-loka.si>
182
183         PR target/14941
184         PR target/18503
185         * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd):
186         Fix wrong vec_merge selector bitmask.
187
188 2004-12-12  Richard Henderson  <rth@redhat.com>
189
190         PR rtl-opt/17186
191         * reg-stack.c (move_nan_for_stack_reg): New.
192         (subst_stack_regs_pat): Use it.
193         (move_for_stack_reg): Handle source register not live with a nan.
194
195 2004-12-12  Richard Henderson  <rth@redhat.com>
196
197         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch
198         errors across operations.
199
200 2004-12-12  Di-an Jan  <dianj@freeshell.org>  
201
202         * doc/passes.texi (Pass Manager): Correct list of source files.
203
204 2004-12-12  Richard Henderson  <rth@redhat.com>
205
206         * expr.c (emit_move_change_mode): New.
207         (emit_move_via_alt_mode): Use it.
208
209 2004-12-12  Nathanael Nerode  <neroden@gcc.gnu.org>
210             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
211
212         PR middle-end/17564
213         * dojump.c (do_compare_and_jump): Only canonicalize function pointers
214         in a comparison if both sides are function pointers.
215
216 2004-12-12  Richard Henderson  <rth@redhat.com>
217
218         PR target/18932
219         * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
220         and compare_operator to propagate the input CC mode to the output.
221         * config/i386/predicates.md (compare_operator): New.
222
223 2004-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
224
225         PR tree-opt/18040
226         * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR,
227         CONVERT_EXPR cases.
228         (handled_component_p): Likewise.
229
230 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
231
232         * reg-stack.c (convert_regs_2): Free stack.
233
234         * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix
235         comment typos.
236
237 2004-12-12  Daniel Berlin  <dberlin@dberlin.org>
238
239         * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null.
240         * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real
241         inner loop.
242
243 2004-12-12  Diego Novillo  <dnovillo@redhat.com>
244
245         * tree-gimple.c (get_base_address): Update documentation.
246
247 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
248
249         * lcm.c (optimize_mode_switching): Free ptr even when mode_set
250         is NULL_RTX.
251
252 2004-12-12  Roger Sayle  <roger@eyesopen.com>
253
254         * reg-stack.c (change_stack): Avoid placing the new top-of-stack in
255         its correct location during popping if we need to permute the stack
256         afterwards.  Attempt to preserve the original stack ordering.
257
258 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
259
260         * lcm.c (optimize_mode_switching): Free insert and delete in
261         the "for" loop.
262
263 2004-12-11  David Edelsohn  <edelsohn@gnu.org>
264             Ulrich Weigand  <uweigand@de.ibm.com>
265
266         PR target/18641
267         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all
268         constants into all register classes intersecting with FLOAT_REGS
269         via memory.
270         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same.
271         * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when
272         choosing register preferences.
273         (movdi_internal64): Same.
274
275 2004-12-11  Kazu Hirata  <kazu@cs.umass.edu>
276
277         * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX
278         before we release an SSA_NAME.
279
280 2004-12-11  Roger Sayle  <roger@eyesopen.com>
281
282         PR middle-end/18921
283         * fold-const.c (fold_unwidened_comparison): Use omit_one_operand
284         instead of constant_boolean_node as arg0 may have side-effects.
285
286 2004-12-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
287
288         * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH
289         file to anonymous private map.
290
291 2004-12-10  Roger Sayle  <roger@eyesopen.com>
292
293         PR target/18002
294         PR middle-end/18424
295         * dojump.c (do_jump): When attempting to reverse the effects of
296         fold_single_bit_test, we need to STRIP_NOPS and narrowing type
297         conversions, and handle BIT_XOR_EXPR that's used to invert the
298         sense of the single bit test.
299
300 2004-12-10  Devang Patel  <dpatel@apple.com>
301
302         PR 18732
303         * gcc.c (main): Do not break out of loop when error is reported while
304         processing one source file.
305         
306 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
307
308         * tree-into-ssa.c (REWRITE_THIS_STMT): Define.
309         (mark_def_sites): Clear REWRITE_THIS_STMT for statements that
310         don't need any operands rewritten.
311         (rewrite_stmt): Ignore statements that don't need to be
312         rewritten.
313         (rewrite_operand): Validate that an existing SSA_NAME is
314         identical to the current reaching definition of the operand.
315
316 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
317
318         * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function.
319         * tree-vectorizer.c (vectorizable_load): Call it.
320         * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare.
321         * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming.
322
323 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
324
325         * regmove.c (combine_stack_adjustments_for_block): Free
326         memlist if it hasn't been freed.
327
328 2004-12-10  Ziemowit Laski  <zlaski@apple.com>
329
330         * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC
331         pointer field is set before dereferencing it.
332
333 2004-12-10  Andrew Pinski  <pinskia@physics.uc.edu>
334
335         PR middle-end/18903
336         * tree-cfg.c (remove_bb): Put the moved label at the beginning
337         of the basic block.
338
339 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
340
341         * tree-data-ref.c (free_data_refs): Free each data_reference
342         object.
343
344         * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a
345         call to is_gimple_min_invariant if we know the result.
346
347 2004-12-10  Jeff Law  <law@redhat.com>
348
349         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
350         redundant test of v_ann->mem_tag_kind.
351
352         * tree-ssa-operands.c (get_indirect_ref_operands): Remove
353         redundant conditional clearing opf_kill_def.
354
355 2004-12-10  Richard Sandiford  <rsandifo@redhat.com>
356
357         * config/frv/frv-modes.def: Fix comment typos.
358         (CC_NZ): Define new mode.
359         * config/frv/frv-protos.h (frv_select_cc_mode): Declare.
360         (condexec_intop_cmp_operator): Delete.
361         * config/frv/frv.c (comparison_string): New function.
362         (frv_print_operand): Use it to handle 'c' and 'C'.
363         (relational_operator): Redefine in terms of integer_relational_operator
364         and float_relational_operator.
365         (signed_relational_operator, unsigned_relational_operator): Delete.
366         (integer_relational_operator): New predicate, combining the above.
367         Check the mode of the first operand but leave frv.md to check the rest.
368         (float_relational_operator): Just check the mode of the first operand
369         and leave frv.md to check the rest.
370         (intop_compare_operator): Assume the result is compared with zero
371         in mode CC_NZmode.  Allow PLUS and MINUS.  Leave frv.md to check
372         the operand predicates.
373         (condexec_intop_cmp_operator): Delete.
374         (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests)
375         (frv_hard_regno_mode_ok): Handle CC_NZmode.
376         (frv_select_cc_mode): New function.
377         * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode.
378         (REVERSIBLE_CC_MODE): Include CC_NZmode.
379         (PREDICATE_CODES): Replace entries for signed_relational_operand and
380         unsigned_relational_operator with one for integer_relational_operator.
381         Delete entry for condexec_intop_cmp_operator.
382         * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz)
383         (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns.
384         (*combo_intop_compare2, *combo_intop_compare4): Delete.
385         (*combo_intop_compare1): Change mode to CC_NZ.
386         (*combo_intop_compare2): Likewise.  Renamed from *combo_intop_compare3.
387         (branch_{un,}signed_true, branch_{un,}signed_false)
388         (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed)
389         (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed)
390         (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed)
391         (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed)
392         (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed)
393         (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these
394         pattern pairs.  Use integer_relational_operator.  Remove mode from
395         icc_operand.
396
397 2004-12-10  Mark Dettinger  <dettinge@de.ibm.com>
398
399         * config/s390/s390.c (struct processor_costs): New fields ml,
400         sqdbr, sqebr.
401         (s390_rtx_costs): Added the missing handling of multiply & add,
402         square root, and umulsidi.
403
404 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
405
406         * expmed.c (synth_mult): Initialize new_limit.latency before
407         making a recursive call.
408
409 2004-12-10  Nick Clifton  <nickc@redhat.com>
410
411         * config/mn10300/mn10300.c (legitimate_address_p): Reject address
412         whose index is itself the sum of two other parts.
413
414 2004-12-10  Alan Modra  <amodra@bigpond.net.au>
415
416         * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink.
417
418 2004-12-10  Uros Bizjak  <uros@kss-loka.si>
419
420         * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi".
421
422 2004-12-09  Richard Henderson  <rth@redhat.com>
423
424         PR c/18282
425         * attribs.c (decl_attributes): Use relayout_decl.
426         * c-common.c (handle_mode_attribute): Copy all relevant type
427         parameters from the new underlying integral type.
428
429 2004-12-09  Richard Henderson  <rth@redhat.com>
430
431         * c-common.c (shorten_compare): Don't special-case min/maxval
432         for C enumerations.
433
434 2004-12-09  Richard Sandiford  <rsandifo@redhat.com>
435
436         * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether
437         the request subreg is entirely contained in the requested component.
438         (simplify_gen_subreg): Return null for CONCATs that are rejected
439         by simplify_subreg.
440         * expmed.c (store_bit_field): Create a temporary when changing the
441         value to an integer mode.
442
443 2004-12-09  David Edelsohn  <edelsohn@gnu.org>
444
445         * real.c (ibm_extended): Correct comment.
446
447 2004-12-09  Stan Shebs  <shebs@apple.com>
448
449         * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros
450         formerly in darwin-tramp.asm.
451         * config/rs6000/darwin-tramp.asm: Include darwin-asm.h.
452         * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros.
453         * config/rs6000/t-darwin: Add dependencies.
454
455 2004-12-09  Richard Henderson  <rth@redhat.com>
456
457         PR target/17025
458         * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
459         (test_qi_1, andqi_2): Do not promote to simode.
460
461 2004-12-09  Andrew Pinski  <pinskia@physics.uc.edu>
462
463         PR tree-opt/18904
464         * tree-chrec.c (chrec_convert): Use fold_convert
465         instead of convert.
466
467 2004-12-09  Matt Rice  <ratmice@yahoo.com>
468
469         PR preprocessor/18102
470         * c-incpath.c (remove_duplicates): Check for construct
471         equality.
472
473 2004-12-09  Dorit Naishlos  <dorit@il.ibm.com>
474
475         * genopinit.c (vec_realign_store_optab): Initialization removed.
476         * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed.
477         * optabs.h (optab_index): OTI_vec_realign_store Removed.
478         (vec_realign_store_optab): Removed.
479         * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed.
480         * target.h (builtin_mask_for_store): Removed.
481         * tree.def (REALIGN_STORE_EXPR): Removed.
482         * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed.
483         (altivec_builtin_mask_for_store): Removed.
484         (altivec_init_builtins): Removed initialization of
485         altivec_builtin_mask_for_store.
486
487         * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
488         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New.
489
490 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
491
492         * tree.def (SET_TYPE): Remove.
493         (CONSTRUCTOR): Update description.
494         * builtins.c (type_to_class) Remove SET_TYPE case.
495         * dbxout.c (dbxout_type): Likewise.
496         * dwarf2out.c (is_base_type): Likewise.
497         (gen_set_type_die): Remove.
498         (gen_type_die): Remove SET_TYPE case.
499         * expr.c (count_type_elements): Likewise.
500         (mostly_zeroes_p): Likewise.
501         (store_constructor): Likewise.
502         * print_tree.c (print_node): Likewise.
503         * stor-layout.c (layout_type): Likewise.
504         * tree-browser.c (browse_tree): Likewise.
505         * tree-inline.c (remap_type): Likewise.
506         * tree-pretty-print.c (dump_generic_node): Likewise.
507         * tree.c (type_contains_plaeholder_1, type_hash_eq,
508         variably_modified_type_p, initializer_zerop): Likewise.
509         * tree.h (SET_OR_ARRAY_CHECK): Remove.
510         (AGGREGATE_TYPE_P): Remove SET_TYPE check.
511         (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
512         * typeclass.h (enum type_class): Remove set_type_class.
513         * varasm.c (const_hash_1): Remove SET_TYPE case.
514         (compare_constant, copy_constant, output_constant): Likewise.
515         * config/i386/i386.c (classify_argument): Likewise.
516         * config/ia64/ia64.c (hfa_element_mode): Likewise.
517         * config/sparc/sparc.c (sparc_type_code): Likewise.
518
519         PR c++/16681
520         * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case.
521
522 2004-12-08  Richard Henderson  <rth@redhat.com>
523
524         * config/i386/i386.md: Use FLAGS_REG everywhere.
525
526 2004-12-08  Eric Christopher  <echristo@redhat.com>
527
528         * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
529         to avoid call to default function.
530
531 2004-12-08  Zack Weinberg  <zack@codesourcery.com>
532
533         PR 17982
534         * varasm.c (pending_assemble_externals): New static.
535         (assemble_external_real): Meat of assemble_external split out
536         to this new function.
537         (process_pending_assemble_externals): New function.
538         (assemble_external): Use gcc_assert.  If flag_unit_at_a_time
539         is true and the basic test passes, merely cons the decl onto
540         the pending list to be handled later.
541         * tree.h: Declare process_pending_assemble_externals.
542         * cgraphunit.c (cgraph_optimize): Call it.
543
544         * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL.
545
546 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
547
548         * cfgloopmanip.c (create_preheader): Speed up by "unrolling"
549         and simplifying FOR_EACH_EDGE.
550
551 2004-12-08  Richard Sandiford  <rsandifo@redhat.com>
552
553         * config/frv/frv.c (frv_sort_insn_group): Always initialize
554         packet_group->nop.
555
556 2004-12-08  Nathan Sidwell  <nathan@codesourcery.com>
557
558         PR c++/18672
559         * gimplify.c (canonicalize_addr_expr): Cope with array of
560         incomplete type.
561         (gimplify_conversion): Remove redundant checks.
562
563         * doc/trouble.texi (Non-bugs): Clarify empty loop removal.
564
565 2004-12-08  Uros Bizjak  <uros@kss-loka.si>
566
567         * config/i386/i386.c (output_387_binary_op,
568         ix86_prepare_fp_compare_args): Fix is_sse condition.
569
570 2004-12-07  Uros Bizjak  <uros@kss-loka.si>
571
572         * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
573         argument.
574
575         * config/i386/i386.c (output_fp_compare): Fix is_sse condition.
576         Use EFLAGS_P only when fcomi insn should be used. Fix handling
577         of eflags_p variable. Change alt table accordingly. For non-fcomi
578         compare insn always use trailing fnstsw insn. Fix intmode
579         calculation for ficom insn.
580         (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call
581         ix86_free_from_memory when "pushed" is specified.
582         (ix86_expand_branch): Change call to ix86_split_fp_branch.
583
584         * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf):
585         Change eflags_p parameter in call to output_fp_compare.
586         (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
587         (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
588         *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf.  Change eflags_p
589         parameter in call to output_fp_compare.
590         (*cmpfp_2_u): Remove.
591         (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter
592         in call to output_fp_compare.
593         (*ficom_1): Remove insn definition and corresponding define_split.
594         (*cmpfp_si): New insn definition.
595         (*fp_jcc_8): New insn definition. Add new splitters for
596         "memory_operand" and "register_operand".
597         (define_split): Add new parameter in call to ix86_split_fp_branch.
598
599         config/i386/predicates.md (float_operator): New predicate.
600
601 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
602
603         * c-common.c (verify_tree): Don't check code length if we know
604         we are handling tcc_unary.
605         * print_tree.c (print_node): Remove code to handle RTL
606         appearing as a part of a tree node.
607         * tree-gimple.c (recalculate_side_effects): Rename fro as len.
608         * tree.c (build1_stat): Don't check TREE_CODE_LENGTH.
609         (PROCESS_ARG): Don't refer to fro.
610         (build2_stat, build3_stat, build4_stat): Don't compute fro.
611
612 2004-12-07  Roger Sayle  <roger@eyesopen.com>
613
614         PR middle-end/18293
615         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
616         (expand_mult): Special case powers of two to avoid synth_mult.
617         * loop.c (product_cheap_p): Handle case where expand_mult does
618         require/generate any instructions (i.e. multiplication by zero).
619
620 2004-12-07  Richard Henderson  <rth@redhat.com>
621
622         * tree-pretty-print.c (dump_array_domain): Split out from
623         dump_generic_node; fix off-by-one error on zero-based array bounds.
624         (dump_generic_node): Use it.
625         (print_declaration): Likewise.
626
627 2004-12-08  Richard Guenther <richard.guenther@uni-tuebingen.de>
628
629         * doc/invoke.texi: Adjust default values for
630         large-function-growth and inline-unit-growth to match
631         params.def.  Clarify used algorithm.
632
633 2004-12-07  David Mosberger  <davidm@hpl.hp.com>
634
635         PR target/18443
636         * config/ia64/ia64.c (ia64_assemble_integer): Add support for
637         emitting unaligned pointer-sized integers.
638
639 2004-12-07  Steven Bosscher  <stevenb@suse.de>
640
641         PR c/18867
642         * c-typeck.c (c_start_case): Set orig_type to error_mark_node
643         when the type of the controlling expression is not a valid type.
644
645 2004-12-07  Steven Bosscher  <stevenb@suse.de>
646
647         PR tree-optimization/17340
648         * tree-ssa-pre.c (compute_antic): Fix comment.
649         (compute_avail): Do not recurse, instead do a DFS using a stack
650         and a loop.
651         (execute_pre): Adjust.
652
653 2004-12-07  Ziemowit Laski  <zlaski@apple.com>
654
655         * c-tree.h (struct lang_type): Rename 'objc_protocols' field
656         to 'objc_info'.
657
658 2004-12-07  Eric Christopher  <echristo@redhat.com>
659
660         PR target/16317
661         * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define.
662
663 2004-12-07  Eric Christopher  <echristo@redhat.com>
664
665         * config/mips/mips-protos.h (mips_valid_pointer_mode): Move
666         prototype...
667         * config/mips/mips.c: ... here. Make static.
668
669 2004-12-07  Eric Christopher  <echristo@redhat.com>
670
671         PR target/18442
672         * config/mips/mips.c (mips_vector_mode_supported_p): New function.
673         (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above.
674
675 2004-12-07  Kazu Hirata  <kazu@cs.umass.edu>
676
677         * c-common.c, expr.c, fold-const.c, print-tree.c,
678         tree-gimple.c, tree-inline.c, tree-pretty-print.c,
679         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of
680         first_rtl_op with TREE_CODE_LENGTH.
681         * tree.c (first_rtl_op): Remove.
682         Replace uses of first_rtl_op with TREE_CODE_LENGTH.
683         * tree.h: Remove the prototype for first_rtl_op.
684
685 2004-12-07  David Edelsohn  <edelsohn@gnu.org>
686
687         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
688         Revert 2004-12-01 change.
689
690 2004-12-06  Ziemowit Laski  <zlaski@apple.com>
691
692         * c-tree.h (struct lang_type): Add 'objc_protocols' field.
693
694 2004-12-06  DJ Delorie  <dj@redhat.com>
695
696         * reload.c (find_valid_class): Fix logic to test inner mode as well.
697         (push_reload): Pass inner mode.
698
699 2004-12-06  Eric Christopher  <echristo@redhat.com>
700
701         * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document.
702
703 2004-12-06  Aldy Hernandez  <aldyh@redhat.com>
704
705         * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1.
706
707 2004-12-06  Zdenek Dvorak  <dvorakz@suse.cz>
708             Kazu Hirata  <kazu@cs.umass.edu>
709
710         PR tree-optimization/18601
711         * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed.
712         (tree_forwarder_block_p): Do not consider blocks that are its own
713         successors forwarders.
714         (cleanup_forwarder_blocks, remove_forwarder_block): New functions.
715         (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of
716         thread_jumps.
717         * tree-flow.h (bb_ann_d): Remove forwardable.
718
719 2004-12-06  Kazu Hirata  <kazu@cs.umass.edu>
720
721         * expr.c (expand_expr_real_1): Remove an "if" whose condition
722         is always false.
723
724 2004-12-06  Roger Sayle  <roger@eyesopen.com>
725
726         * c-gimplify.c (gimplify_c_loop): Improve initial implementations
727         for loops whose conditions are known at compile-time.
728         * gimplify.c (append_to_statement_list_1): Remove side_effects
729         parameter, this function should never be called if its false.
730         (append_to_statement_list): Only call append_to_statement_list_1
731         if t is non-NULL tree with side-effects.
732         (append_to_statement_list_force):  Likewise, if t is not NULL.
733
734 2004-12-06  J"orn Rennecke <joern.rennecke@st.com>
735
736         * bt-load.c (btr_def_s): New member own_end;
737         (add_btr_to_live_range): Add second parameter.  Changed caller.
738         (clear_btr_from_live_range): Clear btrs_live_at_end bit
739         for the register its definition basic block if own_end is set.
740         (augment_live_range): Also take btrs_live_at_end into account.
741         (combine_btr_defs): Don't bother with
742         other_def->other_btr_uses_after_use if it pertains to a different
743         register.
744         (move_btr_def): Set def->other_btr_uses_before_def after
745         calling combine_btr_defs."
746
747         * bt-load.c (augment_live_range): New argument full_range.
748         Changed all callers.
749
750         * bt-load.c (move_tr_def): Set other_tr_uses_before_def
751         taking new btr assignment into account.
752
753 2004-12-05  Daniel Berlin <dberlin@dberlin.org>
754
755         * tree-ssa-alias.c (create_global_var): Use void_type_node,
756         not size_type_node.
757
758 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
759
760         * expr.c (expand_expr_real_1): Abort on COND_EXPR of
761         VOID_TYPE.
762
763 2004-12-05  Richard Henderson  <rth@redhat.com>
764
765         PR target/18841
766         * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
767         (builtin_setjmp_receiver_er_sl_1): Use it.
768         (builtin_setjmp_receiver_er_1): Likewise.
769         (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
770         (builtin_setjmp_receiver): Don't split for explicit relocs until
771         after reload.
772         (exception_receiver): Likewise.
773
774 2004-12-05  Andrew Pinski  <pinskia@physics.uc.edu>
775
776         * mklibgcc.in (vis_hide): Add the prototype for the test.
777
778 2004-12-05  Roger Sayle  <roger@eyesopen.com>
779
780         * c-typeck.c (c_finish_loop): Improve initial implementations
781         for loops whose conditions are known at compile-time.
782
783 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
784
785         * builtins.c: Fix comment typos.
786
787 2004-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
788
789         PR middle-end/18730
790         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
791         the first/last insn is a sequence, return the first/last insn of the
792         sequence.
793
794         PR bootstrap/18804
795         * mklibgcc.in (vis_hide): Use implementation instead of declaration
796         for test function.
797
798 2004-12-04  Richard Henderson  <rth@redhat.com>
799
800         * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
801         use ofs in BWX two byte special case.
802         (alpha_expand_unaligned_store): Likewise.
803
804 2004-12-04  Kazu Hirata  <kazu@cs.umass.edu>
805
806         * gcse.c (gcse_main): Add a comment.
807
808 2004-12-04  Andrew  Pinski  <pinskia@physics.uc.edu>
809
810         PR middle-end/17909
811         * builtins.c (fold_builtin_next_arg): Export and return true
812         when there is a warning or an error.
813         (expand_builtin_va_start): When fold_builtin_next_arg returns true,
814         return const0_rtx.
815         (expand_builtin): Likewise.
816         * gimplify.c (gimplify_call_expr): Error out if there is not
817         enough arguments to va_start. Call fold_builtin_next_arg also
818         on the second argument.
819         * tree.h (fold_builtin_next_arg): Prototype.
820
821 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
822
823         * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.
824         Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK,
825         SHLIB_INSTALL, and SHLIBUNWIND_INSTALL.
826         * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of
827         shlib_dir and shlib_so_name.
828         * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise.
829         * config/t-libunwind-elf (SHLIB_NAME): Likewise.
830         * config/t-slibgcc-darwin (SHLIB_NAME): Likewise.
831         * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise.
832         * config/t-slibgcc-sld (SHLIB_NAME): Likewise.
833         (SHLIB_LINK): Don't use shlib_dir when creating symlink.
834
835 2004-12-03  Roger Sayle  <roger@eyesopen.com>
836
837         * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
838
839 2004-12-03  Richard Henderson  <rth@redhat.com>
840
841         * alias.c (component_uses_parent_alias_set): Rename from
842         can_address_p.  Return bool.  Reverse the sense of the result.
843         Reinstate the check for alias set zero.
844         (get_alias_set): Update to match.
845         * alias.h (component_uses_parent_alias_set): Likewise.
846         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
847         * expr.c (expand_assignment): Likewise.
848         * expr.h: Remove commented out prototypes that were moved to alias.h.
849
850 2004-12-03  Richard Henderson  <rth@redhat.com>
851
852         * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New.
853         (TARGET_CANNOT_FORCE_CONST_MEM): New.
854
855 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
856
857         PR middle end/18718
858         * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are
859         in pairs.
860         * sched-ebb.c (schedule_ebb): Likewise.
861
862 2004-12-03  Andreas Schwab  <schwab@suse.de>
863
864         * Makefile.in (HOSTHOOKS_DEF_H): Define.
865         (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H).
866         (host-default.o): Likewise.
867
868 2004-12-03  Eric Christopher  <echristo@redhat.com>
869
870         * config/stormy16/stormy16.md (pushqi, popqi, pushhi,
871         pophi): Add number of arguments to name so that the
872         pattern is recognized as a named pattern.
873
874 2004-12-03  Janis Johnson  <janis187@us.ibm.com>
875
876         * doc/extend.texi (AltiVec Builtins): Fix info about signedness.
877
878 2004-12-03  Andreas Tobler  <a.tobler@schweiz.ch>
879
880         * config/rs6000/rs6000.c (rs6000_override_options): Protect
881         darwin_one_byte_bool with #if.
882
883 2004-12-03  Paolo Bonzini  <bonzini@gnu.org>
884
885         * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN.
886
887 2004-12-03  H.J. Lu  <hongjiu.lu@intel.com>
888
889         * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.
890
891 2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
892
893         * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
894         Set libstdcxx_incdir directly.
895         * configure: Regenerate.
896
897 2004-12-03  Kazu Hirata  <kazu@cs.umass.edu>
898
899         * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
900         "if" whose condition is always true.
901
902         * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
903         INSN_P.
904
905 2004-12-02  Stan Shebs  <shebs@apple.com>
906
907         * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
908         Darwin default to one-byte bools.
909
910 2004-12-02  Richard Henderson  <rth@redhat.com>
911
912         PR 18774
913         * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
914
915 2004-12-03  Ben Elliston  <bje@au.ibm.com>
916
917         * doc/cfg.texi (Edges): Update. Document the edge_iterator data
918         type and its methods.
919
920 2004-12-02  Richard Henderson  <rth@redhat.com>
921
922         * expr.c (write_complex_part): Use simplify_gen_subreg when the
923         submode is at least as large as a word.
924         (read_complex_part): Likewise.
925
926 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
927
928         PR bootstrap/18532
929         * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
930         multilib at a time. Don't build the default set. Don't add
931         EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
932         filter for shared libunwind and libgcc.
933
934 2004-12-02  Roger Sayle  <roger@eyesopen.com>
935
936         PR target/18759
937         * config/i386/i386.c (override_options): If -fomit-frame-pointer has
938         already been specified, ignore the -momit-leaf-frame-pointer option.
939
940 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
941
942         * varasm.c (make_decl_rtl): Add the missing `;'.
943
944 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
945
946         * tree.c (is_attribute_p): Split out to ..
947         (is_attribute_with_length_p): Here.  Use IDENTIFIER_LENGTH instead
948         of strlen and compare the string lengths before calling strcmp.
949         (lookup_attribute): Call is_attribute_with_length_p instead of
950         is_attribute_p.
951
952 2004-12-02  Devang Patel  <dpatel@apple.com>
953
954         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
955         * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
956         * config/i386/darwin.h (CC1_SPEC): Same.
957
958 2004-12-02  Richard Henderson  <rth@redhat.com>
959
960         * optabs.c (lowpart_subreg_maybe_copy): New.
961         (expand_unop, expand_abs_nojump): Use it.
962
963 2004-12-02  J"orn Rennecke <joern.rennecke@st.com>
964
965         * sh.md (extv, extzv): Add pattern predicate.
966
967 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
968
969         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
970         is not null.
971
972         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
973         is not null.
974
975         * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
976
977 2004-12-02  Jeff Law  <law@redhat.com>
978
979         * tree-eh.c: Revert yesterday's change.
980
981 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
982
983         * varasm.c (decode_reg_name): Revert change to check for zero
984         length strings.
985         (make_decl_rtl): Make sure that we call decode_reg_name only
986         when needed.
987
988 2004-12-02  Dorit Naishlos  <dorit@il.ibm.com>
989
990         PR tree-opt/18716
991         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
992         then and else labels.
993
994 2004-12-02  Andreas Schwab  <schwab@suse.de>
995
996         * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
997         (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
998         (STAGE2_FLAGS_TO_PASS): Likewise.
999
1000         * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
1001
1002 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
1003
1004         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.  Remove
1005         now-redundant AC_SUBSTs.
1006         * aclocal.m4: Include ../config/gcc-version.m4.
1007         * configure: Regenerate.
1008
1009 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
1010
1011         * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
1012         #ifdef RELOCATABLE_NEEDS_FIXUP.
1013
1014 2004-12-01  Roger Sayle  <roger@eyesopen.com>
1015
1016         PR target/9908
1017         * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
1018         Intel assembler syntax by using %A1 instead of %*%1.
1019
1020 2004-12-01  Richard Henderson  <rth@redhat.com>
1021
1022         * expr.c (expand_assignment): Handle CONCAT both as a final
1023         destination and as a middle point.
1024
1025 2004-12-01  Jeff Law  <law@redhat.com>
1026
1027         * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
1028         (honor_protect_cleanup_actions): Only create save_eptr and
1029         save_filt if they do not already exist.
1030         (lower_eh_constructs): Wipe all knowledge of save_eptr and
1031         save_filt before returning.
1032
1033 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
1034
1035         * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
1036
1037 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
1038
1039         PR target/16952
1040         * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
1041         #ifdef RELOCATABLE_NEEDS_FIXUP with if.
1042         * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
1043         of target_flags_explicit.
1044         * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
1045         case.  Define as 0 for non-biarch.
1046
1047 2004-12-01  Zack Weinberg  <zack@codesourcery.com>
1048
1049         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
1050         Change temporary file tag from a prefix to an infix.
1051
1052 2004-12-02  Andreas Schwab  <schwab@suse.de>
1053
1054         * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
1055
1056 2004-12-01  Andrew Pinski  <pinskia@physics.uc.edu>
1057
1058         PR tree-opt/18763
1059         PR tree-opt/18746
1060         * tree-ssa-alias.c (init_alias_info): Get statement operands for all
1061         the statements if aliases_computed_p is true.
1062
1063 2004-12-01  Mark Mitchell  <mark@codesourcery.com>
1064
1065         * Makefile.in (WERROR): New variable.
1066         (STRICT2_WARN): Use it.
1067         (STAGE2_FLAGS_TO_PASS): Likewise.
1068         * config/i386/x-mingw32 (WERROR): Add -Wno-format.
1069
1070 2004-12-01  Richard Henderson  <rth@redhat.com>
1071
1072         * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
1073         offsetting.
1074
1075 2004-12-01  Diego Novillo  <dnovillo@redhat.com>
1076
1077         PR tree-optimization/18291
1078         * tree-ssa-copy.c (merge_alias_info): Fix merging of
1079         flow-sensitive alias information.  If the new pointer has no
1080         name tag, copy it from the original pointer.  Otherwise, make
1081         sure that the pointed-to sets have a common intersection.
1082
1083 2004-12-01  Richard Henderson  <rth@redhat.com>
1084
1085         PR rtl-opt/15289
1086         * emit-rtl.c (gen_complex_constant_part): Remove.
1087         (gen_realpart, gen_imagpart): Remove.
1088         * rtl.h (gen_realpart, gen_imagpart): Remove.
1089         * expmed.c (extract_bit_field): Remove CONCAT hack catering to
1090         gen_realpart/gen_imagpart.
1091         * expr.c (write_complex_part, read_complex_part): New.
1092         (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
1093         emit_move_complex_push, emit_move_complex, emit_move_ccmode,
1094         emit_move_multi_word): Split out from ...
1095         (emit_move_insn_1): ... here.
1096         (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
1097         <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
1098         * function.c (assign_parm_setup_reg): Hard-code transformations
1099         instead of using gen_realpart/gen_imagpart.
1100
1101         * expr.c (optimize_bitfield_assignment_op): Split out from ...
1102         (expand_assignment): ... here.  Use handled_component_p to gate
1103         get_inner_reference code.  Simplify MEM handling.  Special case
1104         CONCAT destinations.
1105
1106         * expmed.c (store_bit_field): Use simplify_gen_subreg instead
1107         of gen_rtx_SUBREG directly.
1108
1109 2004-12-01  David Edelsohn  <edelsohn@gnu.org>
1110             Nathan Sidwell  <nathan@codesourcery.com>
1111
1112         PR target/17107
1113         * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
1114         (sgt): Same.
1115         (sle): Same.
1116         (slt): Same.
1117
1118 2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
1119
1120         PR middle-end/18667
1121         * params.c (set_param_value): Add range check.
1122         * params.def: Add min and max values. Reformat long strings.
1123         * params.h (struct param_info): Add min and max fields.
1124         (enum compiler_param): Adjust DEFPARAM.
1125         * toplev.c (lang_independent_params): Likewise.
1126
1127 2004-12-01  Alan Modra  <amodra@bigpond.net.au>
1128
1129         PR target/12817
1130         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
1131
1132 2004-12-01  Joseph S. Myers  <joseph@codesourcery.com>
1133
1134         * doc/standards.texi: Update for C99 TC2.
1135
1136 2004-11-30  Jeff Law  <law@redhat.com>
1137
1138         * sbitmap.c (sbitmap_any_common_bits): New function.
1139         * sbitmap.h (sbitmap_any_common_bits): Prototype.
1140         * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
1141         No longer allocate/free "psp", "pss" sbitmaps.
1142         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
1143         the "res" sbitmap.
1144         (group_aliases): Similarly.
1145
1146 2004-11-30  Nathan Sidwell  <nathan@codesourcery.com>
1147
1148         * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
1149         uninitialized variable.
1150
1151 2004-11-30  Eric Christopher  <echristo@redhat.com>
1152
1153         * fold-const.c (fold_widened_comparison): Make sure that we're
1154         passing an INTEGER_TYPE to int_fits_type_p.
1155         (fold): Clean up comment.
1156
1157 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
1158
1159         * mklibgcc.in: Correct calculation of libgcc_s_soname and
1160         libunwind_soname.  Use $out, not $outS, in commands for
1161         no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
1162         library build rules, make $libunwind_so and $libgcc_s_so
1163         depend on them in the normal fashion, and filter those objects
1164         out of @shlib_objs@.
1165
1166 2004-11-30  Janis Johnson  <janis187@us.ibm.com>
1167
1168         * config/rs6000/altivec.h (vec_step_help): Support const vector types.
1169
1170 2004-11-30  Andrew Pinski  <pinskia@physics.uc.edu>
1171
1172         PR tree-opt/18298
1173         * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
1174         pass right after fold builtins.
1175
1176 2004-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
1177
1178         * config/s390/s390-modes.def: Added cc modes documentation.
1179         * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
1180         s390_expand_addcc): Added cc mode comments.
1181         * config/s390/s390.md: Removed old cc mode documentation.
1182
1183 2004-11-30  Mark Dettinger  <dettinge@de.ibm.com>
1184
1185         * config/s390/s390.c (struct processor_costs): New data type.
1186         (s390_cost, z900_cost, z990_cost): New global variables.
1187         (override_options): Initialize s390_cost.
1188         (s390_rtx_costs): Reimplement.
1189
1190 2004-11-29  Daniel Berlin  <dberlin@dberlin.org>
1191
1192         Fix PR tree-optimization/18673
1193
1194         * tree-ssa-pre.c: Remove splay-tree.h include.
1195         (bitmap_value_replace_in_set): Fix to add if it does not exist.
1196         (find_or_generate_expression): Remove now-wrong condition.
1197         (create_expression_by_pieces): Fix condition and comment reason
1198         for it.
1199         (insert_aux): Fix condition and comment reasons for it.
1200         Factor insertion code from here.
1201         (insert_into_preds_of_block): To here.  Fix conditions in factored
1202         function and comment reasons for them.
1203
1204 2004-11-30  Ira Rosen  <irar@il.ibm.com>
1205
1206         PR tree-opt/18607
1207         * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
1208         variable for data_reference when looking for memtag.
1209
1210 2004-11-30  Jakub Jelinek  <jakub@redhat.com>
1211
1212         * c-opts.c (check_deps_environment_vars): If spec != NULL, set
1213         deps_seen.
1214
1215 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
1216
1217         * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
1218         tree_low_cst instead of TREE_INT_CST_LOW.
1219
1220 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
1221
1222         PR target/18173
1223         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
1224         decls that are assembled before vectorization takes place.
1225         (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
1226
1227 2004-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
1228
1229         * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
1230         if local_alloc modified jumps.
1231
1232 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
1233
1234         * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
1235         on TLS symbols.
1236         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
1237         check.
1238
1239 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
1240
1241         * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
1242         * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
1243
1244         * mklibgcc.in: Drastic restructure for comprehensibility.
1245         Remove the old hidden-directive hack.
1246         Eliminate support for .txt files in LIB2ADD etc (never used).
1247         Eliminate support for assembly source files in LIB2ADDEH* and
1248         LIBUNWIND (also never used).
1249         Build up dependency lists for libraries incrementally.
1250         If we have SHLIB_LINK, compile each file twice, once for the
1251         static and once for the shared library; also probe for
1252         -fvisibility=hidden in the generated libgcc.mk.  If found,
1253         pass that and -DHIDE_EXPORTS to the compilation of every C
1254         source file going into the static library.  If found, generate
1255         hidden-directive lists for every assembly source file going
1256         into the static library, but incorporate them with -include
1257         instead of ld -r.
1258         Write comments into generated libgcc.mk to facilitate debugging.
1259         * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
1260         * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
1261
1262         * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
1263         -Zdynamiclib case.
1264
1265 2004-11-29  Richard Henderson  <rth@redhat.com>
1266
1267         * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
1268         (handled_component_p): Likewise.
1269         * alias.c (can_address_p): Reformat and simplify.  Handle
1270         REAL/IMAGPART_EXPR.  Do not disable addressability based on
1271         alias set zero.
1272         * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
1273         check for REAL/IMAGPART_EXPR.
1274         * gimplify.c (gimplify_compound_lval): Likewise.
1275         * tree-cfg.c (verify_expr): Likewise.
1276         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
1277         * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
1278         (convert_local_reference): Likewise.
1279         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
1280
1281 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
1282
1283         * expr.c (emit_group_load_1): Don't die on const_int orig_src.
1284
1285 2004-11-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1286
1287         PR pch/14940
1288         * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
1289         * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
1290         and host_xmake_file using new host configuration files.
1291
1292 2004-11-29  Roger Sayle  <roger@eyesopen.com>
1293
1294         * reg-stack.c (change_stack): Improve algorithm used to pop regs
1295         off the stack to maximize ffreep usage and reduce fxch count.
1296
1297 2004-11-30  James A. Morrison  <phython@gcc.gnu.org>
1298
1299         PR middle-end/18596
1300         * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
1301         on errors.
1302
1303 2004-11-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1304
1305         * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
1306         REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
1307
1308 2004-11-30  Ben Elliston  <bje@au.ibm.com>
1309
1310         * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
1311
1312 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
1313
1314         PR c/18479
1315         * c-common.c (handle_visibility_attribute): When the type decl
1316         is really a identifier node, warn about being ignored and return.
1317
1318 2004-11-29  Richard Henderson  <rth@redhat.com>
1319
1320         * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
1321
1322 2004-11-29  Steven Bosscher  <stevenb@suse.de>
1323
1324         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
1325         Remove CASE_DROPS_THROUGH checks, it is never defined.
1326         * cfglyout.c (fixup_reorder_chain): Likewise.
1327         * cfgrtl.c (rtl_verify_flow_info): Likewise.
1328         * stmt.c (expand_case): Likewise.
1329         * cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
1330         it is now always 0.
1331         * system.h (CASE_DROPS_THROUGH): Poison.
1332         * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
1333         * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
1334
1335         * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
1336
1337 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
1338
1339         PR middle-end/18725
1340         * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
1341         shared always.
1342
1343 2004-11-29  Diego Novillo  <dnovillo@redhat.com>
1344
1345         PR tree-optimization/18712
1346         * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
1347         WORK_STACK by reference.
1348         Call VEC_safe_push instead of VEC_quick_push.
1349         Update all users.
1350
1351 2004-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
1352
1353         PR c/7544
1354         * Makefile.in (c-lang.o): Update dependencies.
1355         * c-lang.c: Include "c-pragma.h".
1356         (finish_file): Call maybe_apply_pending_pragma_weaks.
1357         * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
1358         * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
1359
1360 2004-11-29  Richard Henderson  <rth@redhat.com>
1361
1362         PR target/17224
1363         * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
1364         outside the referenced object.
1365
1366 2004-11-29  Kazu Hirata  <kazu@cs.umass.edu>
1367
1368         * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
1369         EDGE_PRED instead of PHI_ARG_EDGE.
1370         * tree-ssa-live.c: Likewise.
1371         * tree-ssa-loop-manip.c: Likewise.
1372         * tree-ssa.c: Likewise.
1373
1374         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
1375         simplifying edge manipulation.
1376
1377         * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
1378         EDGE_COUNT.
1379
1380         * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
1381         only when needed.
1382
1383         * cfg.c (flow_obstack): Remove.
1384         (flow_firstobj): Likewise.
1385         (init_flow): Remove all uses of flow_obstack.
1386
1387 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
1388
1389         * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
1390         to named_section.
1391
1392 2004-11-29  Nathan Sidwell  <nathan@codesourcery.com>
1393
1394         * opts.c (decode_options): Do not set max-inline-insns-rtl.
1395         (common_handle_option): Likewise.
1396         * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
1397         * params.h (MAX_INLINE_INSNS_RTL): Remove.
1398         * doc/invoke.texi (max-inline-insns-rtl): Remove.
1399
1400 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
1401
1402         PR target/9571
1403         * varasm.c (default_elf_select_section_1): Pass decl to named_section.
1404
1405 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
1406
1407         PR middle-end/18164
1408         * gimplify.c (gimplify_asm_expr): If the length of an output operand
1409         is zero, do not process it, just let it go through.
1410
1411 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1412             Diego Novillo  <dnovillo@redhat.com>
1413
1414         PR/18662, also backported from tree-cleanup-branch.
1415         * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
1416         always call maybe_clean_eh_stmt and modify_stmt.
1417
1418 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1419
1420         PR/18664
1421         * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
1422         Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
1423         * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
1424         add an inverse VIEW_CONVERT_EXPR to const_val.
1425
1426         PR/18657
1427         * tree-nested.c (check_for_nested_with_variably_modified): New.
1428         (create_nesting_tree): Call it.
1429
1430         * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
1431         special code for assigning to non-pointer.
1432         (is_escape_site): If RHS is a conversion between pointer and integer
1433         types,  this is an escape site.
1434
1435         * gcse.c (insert_store): Error if try to insert store on abnormal edge.
1436         (store_motion): Don't move store if any edge we'd want to move it
1437         to is abnormal.
1438
1439         * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
1440         non-zero lower bound.
1441
1442         * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
1443
1444 2004-11-28  Matt Kraai  <kraai@alumni.cmu.edu>
1445
1446         PR diagnostic/17594
1447         * opts.c (find_opt): Require that the input match a switch exactly
1448         or that the switch take a joined option to be interpreted as a
1449         match for another language.
1450
1451 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
1452
1453         * timevar.def (TV_TREE_REDPHI): New timevar.
1454         * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
1455
1456 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
1457
1458         PR preprocessor/17651
1459         * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
1460         flag_no_line_commands.
1461         * c-ppoutput.c (pp_file_change): Remove now-redundant check of
1462         flag_no_output.
1463
1464 2004-11-28  Theodore A. Roth  <troth@openavr.org>
1465
1466         * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
1467         warning if the function name does not begin with "__vector" and the
1468         function has either the 'signal' or 'interrupt' attribute.
1469
1470 2004-11-28  Theodore A. Roth  <troth@openavr.org>
1471
1472         * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
1473         atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
1474         atmega325, atmega3250, atmega645 and atmega6450.
1475         * config/avr/avr.h (LINK_SPEC): Ditto.
1476         (LIB_SPEC): Ditto.
1477         (LIBGCC_SPEC): Ditto.
1478         (CRT_BINUTILS_SPECS): Ditto.
1479         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
1480
1481 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
1482
1483         PR preprocessor/17610
1484         * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
1485
1486 2004-11-28  Jeff Law  <law@redhat.com>
1487
1488         * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
1489         (pass_maybe_create_global_var): New.
1490         * tree-pass.h (pass_maybe_create_global_var): Declare.
1491         * tree-optimize.c (init_tree_optimization_passes): Link in
1492         pass_maybe_create_global_var.
1493
1494 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1495
1496         * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
1497
1498 2004-11-28  Ulrich Weigand  <uweigand@de.ibm.com>
1499
1500         PR rtl-optimization/18420
1501         * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
1502
1503 2004-11-28  Steven Bosscher  <stevenb@suse.de>
1504             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1505
1506         * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
1507         * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
1508         that the case is in range, to make sure the casesi insn is always
1509         in range and never falls through.
1510         (casesi1): Add comment to explain why casesi never falls through.
1511         Remove the unnamed special case casesi pattern.
1512
1513 2004-11-28  Hans-Peter Nilsson  <hp@bitrange.com>
1514
1515         PR target/18331
1516         * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
1517         "*movdicc_real".  Only match reversible comparisons.
1518         ("*movdicc_real_nonreversible"): New pattern, split from
1519         "*movdicc_real".  Match only nonreversible comparisons.  Exclude
1520         reversed alternatives.
1521         ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
1522         Similar.
1523
1524 2004-11-27  Richard Henderson  <rth@redhat.com>
1525
1526         * config/ia64/ia64.md: Move all define_predicate's ...
1527         * config/ia64/predicates.md: ... here.  New file.
1528
1529 2004-11-27  Per Bothner  <per@bothner.com>
1530
1531         PR bootstrap/18142
1532         Re-applied following, with two modifications: add a URL for the
1533         fixed cctools; only exit if $build = $target.
1534
1535         2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
1536         * configure.ac (powerpc-*-darwin*): Require assembler to support
1537         .machine directive.
1538         * configure: Regenerate.
1539
1540 2004-11-28  David Edelsohn  <edelsohn@gnu.org>
1541
1542         PR target/16800
1543         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
1544         EQ, GTU, and LTU costs.  Add costs for GT, LT, and UNORDERED.
1545         Distinguish between SImode and DImode CONST_INT.
1546
1547 2004-11-28  Andreas Fischer <a_fisch@gmx.de>
1548             Alan Modra  <amodra@bigpond.net.au>
1549
1550         PR target/16343
1551         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
1552         functions, strings and thread-local vars.
1553
1554 2004-11-28  Alan Modra  <amodra@bigpond.net.au>
1555
1556         * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
1557         * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
1558         * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
1559         to allow non-darwin ABIs to optimize away code.
1560         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
1561
1562 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
1563
1564         * tree.c (operand_equal_for_phi_arg_p): New.
1565         * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
1566         * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
1567         Replace operand_equal_p with operand_for_phi_arg_p
1568         appropriately.
1569
1570         * bb-reorder.c (find_traces_1_round): Speed up by using
1571         EDGE_COUNT instead of FOR_EACH_EDGE.
1572
1573         * fold-const.c, config/i386/linux64.h: Fix comment typos.
1574
1575 2004-11-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1576
1577         PR pch/14940
1578         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
1579
1580 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
1581
1582         * config/i386/linux.h: Fix a comment typo.
1583         * doc/extend.texi: Fix a typo.
1584
1585 2004-11-27  Jeff Law  <law@redhat.com>
1586
1587         * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
1588         are merged.
1589
1590 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
1591
1592         * config/i386/linux64.h (REG_NAME): Define.
1593
1594 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
1595
1596         * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
1597         unsigned and type signed, build ABS_EXPR with signed_type (ctype)
1598         and only afterwards convert to ctype.
1599
1600 2004-11-27  Richard Sandiford  <rsandifo@redhat.com>
1601
1602         * config/mips/mips-protos.h (function_arg_boundary): Declare.
1603         * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
1604         (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
1605         (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
1606         * config/mips/mips.c (function_arg_boundary): New function.
1607         Impose a maximum alignment of STACK_BOUNDARY.
1608
1609 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
1610
1611         PR rtl-optimization/17825
1612         * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
1613         or not.
1614
1615 2004-11-27  Alan Modra  <amodra@bigpond.net.au>
1616
1617         PR target/12769
1618         * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
1619         from rs6000_default_long_calls for libcalls.
1620
1621 2004-11-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1622
1623         * expmed.c (extract_bit_field): When extracting from non-integer mode,
1624         force a SUBREG into a register because we may be taking a further
1625         SUBREG of it.
1626
1627 2004-11-27  Di-an Jan  <dianj@freeshell.org>
1628
1629         * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
1630
1631 2004-11-26  Robert Millan  <robertmh@gnu.org>
1632
1633         Changes for k*bsd-gnu support.
1634         * config/i386/linux.h: Define REG_NAME to allow overriding of
1635         register names in sc structure.
1636         * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
1637         of sc->reg.
1638         * config.gcc: Detect x86_64-k*bsd-gnu systems.
1639
1640 2004-11-26  Jeff Law  <law@redhat.com>
1641
1642         * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
1643         retrieve annotations or pointer info before it's necessary.
1644         Reorder tests for early continue of the loop.  Manually CSE
1645         SSA_NAME_VAR.
1646
1647 2004-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
1648
1649         * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
1650         * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
1651         (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
1652         * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
1653         to a fixed reg if the source is the Return Address register.
1654         Implement new Rule 15.
1655         * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
1656         * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
1657         sparc_dwarf_handle_frame_unspec.
1658         (gen_save_register_window): New function.
1659         (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
1660         (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
1661         (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
1662         Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
1663         (sparc_asm_function_prologue): Do not emit call frame debugging info.
1664         (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
1665         (sparc_expand_epilogue): Likewise.
1666         (sparc_dwarf_handle_frame_unspec): New function.
1667         * config/sparc/sparc.md (save_register_window): Remove.
1668         (save_register_windowdi): Rewrite modelled on the callframe debug info.
1669         (save_register_windowsi): Likewise.
1670
1671 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
1672
1673         * config/frv/frv-protos.h: Guard ifcvt functions declarations with
1674         BB_HEAD, not BLOCK_HEAD.
1675
1676 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
1677
1678         * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
1679         scratch insns that set a register live at the join point.
1680
1681 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
1682
1683         * cse.c, tree-ssa-operands.c: Fix comment typos.
1684
1685         * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
1686
1687 2004-11-26  James A. Morrison  <phython@gcc.gnu.org>
1688
1689         PR target/18510
1690         * doc/extend.texi (SPARC VIS Built-in Functions): New section.
1691
1692 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
1693
1694         * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
1695         check that tests if all edges go to the same destination.
1696
1697         * bitmap.c (bitmap_find_bit): Speed up by traversing from
1698         head->first if that seems profitable.
1699
1700 2004-11-25  Jeff Law  <law@redhat.com>
1701
1702         * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
1703         * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
1704         (pass_loop_done): Use TV_TREE_LOOP_FINI.
1705
1706 2004-11-26  Alan Modra  <amodra@bigpond.net.au>
1707
1708         PR rtl-optimization/16356
1709         * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
1710         separate output register and one less jump.  Enable for powerpc64.
1711         (floatdisf2): Adjust for above.
1712
1713 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
1714
1715         * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
1716         (GCC_DRIVER_HOST_INITIALIZATION): Define.
1717
1718 2004-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
1719
1720         PR middle-end/17957
1721         * tree-complex.c (vector_inner_type): New variable moved from
1722         build_word_mode_vector_type.
1723         (vector_last_type): Likewise.
1724         (vector_last_nunits): Likewise.
1725         (build_word_mode_vector_type): Use the new variables.
1726         * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
1727         (GTFILES): Add tree-complex.c.
1728         (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
1729
1730 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
1731
1732         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
1733         __XTENSA_WINDOWED_ABI__.
1734
1735 2004-11-25  Richard Henderson  <rth@redhat.com>
1736
1737         * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument.  Save
1738         args_size adjustments for calls even with cfa as stack pointer.
1739         Search calls for stack adjustments after the insn is issued.
1740         (dwarf2out_frame_debug): Add after_p argument; pass it on.
1741         * dwarf2out.h (dwarf2out_frame_debug): Update to match.
1742         * final.c (final_start_function, final_scan_insn): Likewise.
1743
1744 2004-11-25  Richard Henderson  <rth@redhat.com>
1745
1746         PR c++/6764
1747         * reload1.c (set_initial_eh_label_offset): New.
1748         (set_initial_label_offsets): Use it.
1749
1750 2004-11-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1751
1752         * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
1753         before calling life_analysis and release them after.
1754
1755 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
1756
1757         * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
1758         duplicate code.
1759
1760 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
1761
1762         * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
1763         BITMAP_OBSTACK_ALLOC.
1764         (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
1765
1766 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
1767
1768         parts of PR rtl-opt/18463, rtl-opt/17647
1769         * cse.c (canon_for_address): New function.
1770         (find_best_addr): Call canon_for_address before getting the
1771         address's cost when checking if we should take that address.
1772
1773 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
1774
1775         * tree-phinodes.c (add_phi_arg): Take "tree" instead of
1776         "tree *" as the first argument.
1777         * tree-flow.h: Update the prototype of add_phi_arg.
1778         * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
1779         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
1780         tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
1781         tree-vectorizer.c: Update all call sites of add_phi_arg.
1782
1783 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1784
1785         * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
1786         * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
1787         (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
1788         (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
1789
1790 2004-11-25  Andrew MacLeod  <amacleod@redhat.com>
1791
1792         PR tree-optimization/18587
1793         * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
1794         call clobbered caches as invalid.
1795         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New.  Flag
1796         indicating whether the call clobbered operand cache is valid.
1797         (ssa_ro_call_cache_valid): New.  Flag indicating whether the
1798         pure/const call operand cache is valid.
1799         (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New.  Cached
1800         list of operands for cached call virtual operands.
1801         (clobbered_aliased_loads, clobbered_aliased_stores,
1802         ro_call_aliased_load): New.  flags caching whether alias bits are
1803         to be set in call stmt's.
1804         (fini_ssa_operands): Remove call operand caches if present.
1805         (get_expr_operands, get_asm_expr_operands,
1806         get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
1807         (get_call_expr_operands): Add call clobbered variables first.
1808         (add_stmt_operand): Take stmt annotation rather than stmt as a param.
1809         (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
1810         if it is valid, otherise fill the cache.
1811         * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
1812         * tree-flow.h (struct var_ann_d): Add in_vuse_list and
1813         in_v_may_def_list bits.
1814         * tree-ssa-operands.c (cleanup_v_may_defs): New.  Clear the
1815         in_list bits for the v_may_def elements and empty the operand
1816         build array
1817         (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
1818         VUSES by checking the in_v_may_def_list bit.
1819         (append_v_may_def, append_vuse): Use the in_list bit rather than
1820         scanning the array for duplicates.
1821
1822 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
1823
1824         * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
1825         displacements are not short.
1826
1827 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
1828
1829         * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
1830         to load addresses.
1831
1832 2004-11-25  Mark Mitchell  <mark@codesourcery.com>
1833
1834         PR c++/18001
1835         * c-common.h (lvalue_use): Move here from c-ctypeck.c.
1836         (lvalue_or_else): Declare.
1837         * c-common.c (lvalue_or_else): Move here from c-typeck.c.
1838         * c-typeck.c (lvalue_use): Remove.
1839         (lvalue_or_else): Remove.
1840
1841         PR c++/18556
1842         * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
1843         unemitted variables with static storage duration.
1844
1845 2004-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
1846
1847         * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
1848         message with \n.
1849
1850 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1851
1852         * config/rs6000/altivec.md (VIshort): New mode macro.
1853         (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
1854         with ...
1855         (altivec_vaddu<VI_char>s): ... this.
1856         (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
1857         with ...
1858         (altivec_vadds<VI_char>s): ... this.
1859         (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
1860         with ...
1861         (altivec_vsubu<VI_char>s): ... this.
1862         (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
1863         with ...
1864         (altivec_vsubs<VI_char>s): ... this.
1865         (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
1866         with ...
1867         (altivec_vavgu<VI_char>): ... this.
1868         (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
1869         with ...
1870         (altivec_vavgs<VI_char>): ... this.
1871         (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
1872         (altivec_vmsumu<VI_char>m): ... this.
1873         (altivec_vmsummbm, altivec_vmsummhm): Replace
1874         with ...
1875         (altivec_vmsumm<VI_char>m): ... this.
1876         (altivec_vandc): Remove.
1877         (*andc<mode>3): Renamed to ...
1878         (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
1879         (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
1880         with ...
1881         (altivec_vrl<VI_char>): ... this.
1882         (altivec_vslb, altivec_vslh, altivec_vslw): Replace
1883         with ...
1884         (altivec_vsl<VI_char>): ... this.
1885         (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
1886         with ...
1887         (altivec_vsr<VI_char>): ... this.
1888         (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
1889         with ...
1890         (altivec_vsra<VI_char>): ... this.
1891         (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
1892         (altivec_vsum4s<VI_char>s): ... this.
1893         (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
1894         with ...
1895         (altivec_vperm_<mode>): ... this.
1896         (altivec_vsel_4sf): Rename to ...
1897         (altivec_vsel_v4sf): ... here.
1898         (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
1899         with ...
1900         (altivec_vsel_<mode>): ... this.
1901         (altivec_vsldoi_4si, altivec_vsldoi_8hi,
1902         altivec_vsldoi_16qi): Rename to ...
1903         (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
1904         altivec_vsldoi_v16qi): ... here.
1905         (altivec_vsldoi_4sf): Rename to ...
1906         (altivec_vsldoi_v4sf): ... here.
1907         (altivec_predicate_v4si, altivec_predicate_v8hi,
1908         altivec_predicate_v16qi): Replace with ...
1909         (altivec_predicate_<mode>): ... this.
1910         (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
1911         with ...
1912         (altivec_lve<VI_char>x): ... this.
1913         (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
1914         with ...
1915         (altivec_stve<VI_char>x): ... this.
1916         (absv16qi2, absv8hi2, absv4si2): Replace
1917         with ...
1918         (abs<mode>2): ... this.
1919         (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
1920         with ...
1921         (altivec_abss_<mode>): ... this.
1922         (vec_realign_load_v16qi, vec_realign_load_v8hi,
1923         vec_realign_load_v4si): Replace with ...
1924         (vec_realign_load_<mode>): ... this.
1925         * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
1926         insn names.
1927         (rs6000_expand_ternop_builtin): Likewise.
1928
1929 2004-11-25  Andrew Haley  <aph@redhat.com>
1930
1931         * gcc.c (process_command): Don't supply -v to linker.
1932
1933 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1934
1935         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
1936         instead of `%s' in diagnostic.
1937
1938 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1939
1940         * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
1941         (FREE_REG_SET): Adjust.
1942         * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
1943         * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
1944         (BITMAP_ALLOC): ... here.
1945         (BITMAP_OBSTACK_FREE): Rename to ...
1946         (BITMAP_FREE): Don't check for NULL bitmap here.
1947         * tree-ssa-pre.c (value_insert_into_set_bitmap,
1948         bitmap_set_new): Use new names.
1949
1950         * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
1951         * df.c (df_free): Likewise.
1952         * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
1953         * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
1954
1955         * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
1956         (ALLOC_REG_SET): ... here.
1957         (FREE_REG_SET): Adjust.
1958         (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
1959         * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
1960         * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
1961         * cfgrtl.c (rtl_split_block, rtl_split_edge,
1962         safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
1963         * flow.c (update_life_info, calculate_global_regs_live,
1964         allocate_bb_life_data, init_propagate_block_info): Adjust.
1965         * global.c (build_insn_chain): Adjust.
1966         * ifcvt.c (dead_or_predicable): Adjust.
1967         * loop-iv.c (simplify_using_initial_values): Adjust.
1968         * recog.c (peephole2_optimize): Adjust.
1969         * sched-deps.c (init_deps_global): Adjust.
1970
1971 2004-11-25  Ralf Corsepius <ralf.corsepius@rtems.org>
1972
1973         * config.gcc (avr-*-rtems*): Fix typo.
1974
1975 2004-11-25  J"orn Rennecke <joern.rennecke@st.com>
1976
1977         * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
1978
1979 2004-11-24  Jeff Law  <law@redhat.com>
1980
1981         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
1982         the number of queries to random elements in the ai->written_vars
1983         bitmap.
1984
1985 2004-11-24  Roger Sayle  <roger@eyesopen.com>
1986
1987         * config/i386/i386.c (override_options): Disable x87 fancy math
1988         intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
1989
1990 2004-11-24  Roger Sayle  <roger@eyesopen.com>
1991
1992         * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
1993         system header conflict on AIX 5.2.
1994         * configure: Regenerate.
1995
1996 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
1997
1998         * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
1999         instead of calling phi_arg_from_edge.
2000
2001         * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
2002         with e->dest_idx.
2003
2004 2004-11-24  Ben Elliston  <bje@au.ibm.com>
2005
2006         * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
2007         * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
2008         * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
2009         Likewise.
2010
2011 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2012
2013         * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
2014
2015         * tree-inline.c (copy_body_r): Explicitly copy a constant if the
2016         type will be remapped.
2017
2018 2004-11-24  Steven Bosscher  <stevenb@suse.de>
2019
2020         * c-opts.c (c_common_post_options): Don't clear
2021         flag_inline_functions.
2022         * dojump.c (clear_pending_stack_adjust): Remove check on
2023         flag_inline_functions, it's always true.
2024         * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
2025         that can never trigger.
2026         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
2027         flag_inline_trees, now that flag_inline_functions is never
2028         cleared.
2029         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
2030         flag_inline_functions at optimization levels greater than
2031         or equal to 3.  This is already done by default.
2032
2033 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
2034
2035         * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
2036         instead to find the PHI argument.  Do not take I as an
2037         argument.
2038         (eliminate_phi): Adjust the call to eliminate_build.  Do not
2039         take I as an argument.
2040         (rewrite_trees): Adjust the call to eliminate_phi.
2041
2042 2004-11-24  Richard Sandiford  <rsandifo@redhat.com>
2043
2044         * optabs.h (force_expand_binop): Declare.
2045         * optabs.c (force_expand_binop): Export.
2046         * stmt.c (shift_return_value): Delete.
2047         (expand_return): Don't call it.
2048         * expr.h (shift_return_value): Declare.
2049         * calls.c (shift_returned_value): Delete in favor of...
2050         (shift_return_value): ...this new function.  Leave the caller to check
2051         for non-BLKmode values passed in the msb of a register.  Take said mode
2052         and a shift direction as argument.  Operate on the hard function value,
2053         not a pseudo.
2054         (expand_call): Adjust accordingly.
2055         * function.c (expand_function_start): If a non-BLKmode return value
2056         is padded at the last significant end of the return register, use the
2057         return value's natural mode for the DECL_RESULT, not the mode of the
2058         padded register.
2059         (expand_function_end): Shift the same sort of return values left by
2060         the appropriate amount.
2061
2062 2004-11-24  Matt Austern  <austern@apple.com>
2063
2064         * recog.c (recog_memoized_1): Remove.
2065         * recog.h (recog_memoized_1): Remove declaration.
2066         (recog_memoized): Change from macro to inline function.
2067
2068 2004-11-24  Devang Patel  <dpatel@apple.com>
2069
2070         PR/18555
2071         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
2072         * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
2073
2074 2004-11-24  Devang Patel  <dpatel@apple.com>
2075
2076         * gcc.c (process_command): Supply -v to linker.
2077
2078 2004-11-24  David Edelsohn  <edelsohn@gnu.org>
2079             Paolo Bonzini  <bonzini@gnu.org>
2080
2081         * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
2082         vector modes without ALTIVEC_ABI.  Use GCC vector instead of
2083         synthetic vector.
2084         (rs6000_pass_by_reference): Split conditional into pieces.  Use
2085         GCC vector instead of synthetic vector.
2086
2087 2004-11-24  Aldy Hernandez  <aldyh@redhat.com>
2088
2089         * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
2090         thread-local variable is invariant.
2091
2092 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2093
2094         * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
2095         Handle TYPE_REF_CAN_ALIAS_ALL.
2096         (print_declaration): Print array dimensions like dump_generic_node.
2097
2098         * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and
2099         ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them.
2100
2101 2004-11-24  Nathan Sidwell  <nathan@codesourcery.com>
2102
2103         * bitmap.c (INLINE): Do not define.
2104         (bitmap_elem_to_freelist, bitmap_element_free,
2105         bitmap_element_allocate, bitmap_clear, bitmap_element_zerop,
2106         bitmap_element_link, bitmap_find_bit): Use inline keyword/macro.
2107
2108 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
2109
2110         * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to
2111         find the index of a PHI argument.  Use e->dest_idx instead.
2112         Replace hint with index.
2113
2114         * tree-ssa-dom.c (cprop_into_successor_phis): Replace index
2115         with indx.
2116
2117 2004-11-24  Diego Novillo  <dnovillo@redhat.com>
2118
2119         * tree-ssa-alias.c (merge_pointed_to_info): Fix comment
2120         regarding PT_MALLOC.
2121
2122 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
2123
2124         * config/i386/i386.c (optimization_options): Use
2125         SUBTARGET_OPTIMIZATION_OPTIONS.
2126         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define.
2127         (TARGET_SUBTARGET_DEFAULT): Don't include
2128         MASK_OMIT_LEAF_FRAME_POINTER.
2129
2130 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
2131
2132         * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE):
2133         Define to false.
2134
2135 2004-11-24  Joseph Myers  <joseph@codesourcery.com>
2136
2137         * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES):
2138         Use amd64 instead of 64.
2139
2140 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
2141             Joseph Myers  <joseph@codesourcery.com>
2142
2143         * crtstuff.c (IN_LIBGCC2): Define it.
2144         (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
2145         instead of HAVE_LD_RO_RW_SECTION_MIXING.
2146         * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
2147         * dwarf2out.c (named_section_eh_frame_section): Check
2148         EH_TABLES_CAN_BE_READ_ONLY.
2149         * except.c (default_exception_section): Likewise.
2150         * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
2151         * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.
2152
2153 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
2154
2155         * tree-ssa-pre.c (phi_translate): Use find_edge to find the
2156         index of a PHI argument.
2157
2158         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use
2159         find_edge to find the index of a PHI argument.
2160
2161 2004-11-24  Steven Bosscher  <stevenb@suse.de>
2162
2163         * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
2164         and LABELED_BLOCK_EXPR.
2165         * gimplify.c (gimplify_labeled_block_expr): Remove.
2166         (gimplify_exit_block_expr): Remove.
2167         (gimplify_expr): Don't call them.
2168         * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
2169         and LABELED_BLOCK_EXPR.
2170         (estimate_num_insns_1): Likewise.
2171         (walk_tree): Likewise.
2172         * tree-pretty-print.c (dump_generic_node): Don't handle
2173         EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
2174         * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
2175         (LABELED_BLOCK_EXPR): Likewise.
2176         * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
2177         (LABELED_BLOCK_BODY): Likewise.
2178         (EXIT_BLOCK_LABELED_BLOCK): Likewise.
2179         (EXIT_BLOCK_RETURN): Removed.
2180
2181 2004-11-24  Steven Bosscher  <stevenb@suse.de>
2182
2183         * cfgrtl.c (rtl_delete_block): Fix comment.
2184         * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG
2185         or BLOCK_END insn notes.
2186         * jump.c (squeeze_notes): Likewise.
2187         * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and
2188         EH_REGION_END notes, we never have them to begin with.
2189         * sched-deps.c (sched_analyze_insn): When updating loop notes,
2190         verify that we have indeed only recorded loop notes.
2191         (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes.
2192         Only record loop notes.
2193
2194         * cfgexpand.c (tree_expand_cfg): Fix comment.
2195
2196         * passes.c (rest_of_compilation): Don't do a second call to
2197         convert_from_eh_region_ranges from here, it's already called
2198         from cfgexpand.c.
2199         * except.c (resolve_fixup_regions): Remove.
2200         (remove_fixup_regions): Remove.
2201         (convert_from_eh_region_ranges_1): Remove.
2202         (convert_from_eh_region_ranges): Remove the case where EH is
2203         not already lowered at the tree level.  We always lower there.
2204
2205 2004-11-24  Paolo Bonzini  <bonzini@gnu.org>
2206
2207         PR c++/16882
2208         * tree.c (make_vector_type): Move qualifiers to the vector type,
2209         use the inner type's main variant and build a main variant for
2210         the vector type if necessary.
2211         (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS.
2212
2213 2004-11-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2214
2215         * target.h (late_rtl_prologue_epilogue): Remove.
2216         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
2217         * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
2218         * passes.c (rest_of_handle_prologue_epilogue): Remove and move
2219         remaining bits to...
2220         (rest_of_handle_flow2): ...here.
2221         (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
2222         * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
2223
2224 2004-11-23  Mark Mitchell  <mark@codesourcery.com>
2225
2226         * hwint.h (HOST_LONG_LONG_FORMAT): New macro.  Use it throughout.
2227         * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define.
2228         * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document.
2229
2230 2004-11-24  Daniel Jacobowitz  <dan@codesourcery.com>
2231
2232         * config/i386/i386.c (override_options): Move
2233         SUBTARGET_OVERRIDE_OPTIONS before defaulting
2234         flag_omit_frame_pointer.
2235
2236 2004-11-23  Richard Henderson  <rth@redhat.com>
2237
2238         * rtl.h (validate_subreg): Declare.
2239         * emit-rtl.c (validate_subreg): New.
2240         (gen_rtx_SUBREG): Use it.
2241         * simplify-rtx.c (simplify_subreg): Likewise.
2242         (simplify_gen_subreg): Likewise.  Remove duplicate asserts.
2243         * expr.c (emit_move_insn_1): Tidy complex move code.  Use memory
2244         fallback whenever gen_realpart/gen_imagpart would not be able to
2245         create SUBREGs.
2246
2247 2004-11-23  Richard Henderson  <rth@redhat.com>
2248
2249         * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of
2250         hard-coding avoiding calls to gen_rtx_SUBREG.  Split complex return
2251         modes to CONCAT.
2252
2253 2004-11-23  Diego Novillo  <dnovillo@redhat.com>
2254
2255         PR tree-optimization/18618
2256         * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare.
2257         (insert_phi_nodes_for): Change third argument to VEC(basic_block).
2258         * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap).
2259         Update all users.
2260         (stmts_to_rescan): Likewise.
2261         (const_and_copies_stack): Likewise.
2262         (nonzero_vars_stack): Likewise.
2263         (vrp_variables_stack): Likewise.
2264
2265 2004-11-23  Richard Henderson  <rth@redhat.com>
2266
2267         * cse.c (record_jump_cond_subreg): New.
2268         (record_jump_cond): Use it instead of gen_lowpart.
2269
2270 2004-11-23  Daniel Jacobowitz  <dan@codesourcery.com>
2271             Joseph Myers  <joseph@codesourcery.com>
2272
2273         * config/sol2-c.c (solaris_register_pragmas): Use
2274         c_register_pragma_with_expansion.
2275         * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define.
2276         * c-pragma.c (c_register_pragma): Update call to
2277         cpp_register_pragma.
2278         (c_register_pragma_with_expansion): New function.
2279         (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION.
2280         * c-pragma.h (c_register_pragma_with_expansion): New prototype.
2281         * doc/extend.texi (Solaris Pragmas): Mention macro expansion for
2282         #pragma align.
2283         * doc/tm.texi (c_register_pragma_with_expansion,
2284         HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document.
2285
2286 2004-11-23  Richard Henderson  <rth@redhat.com>
2287
2288         * combine.c (gen_lowpart_for_combine): Factor out mode of x as well
2289         as mode sizes into local temporaries.  Unify failure path.
2290
2291 2004-11-23  Richard Henderson  <rth@redhat.com>
2292
2293         * emit-rtl.c, rtl.h (subreg_hard_regno): Remove.
2294         * caller-save.c (mark_set_regs): Use subreg_regno instead.
2295         * final.c (alter_subreg): Likewise.
2296         * local-alloc.c (reg_is_born): Likewise.
2297
2298 2004-11-23  Richard Henderson  <rth@redhat.com>
2299
2300         * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly
2301         instead of using a SUBREG temporary.
2302
2303 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
2304
2305         * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering
2306         two checks.
2307
2308 2004-11-23  Zack Weinberg  <zack@codesourcery.com>
2309
2310         * function.h (struct function): Remove calls_longjmp.
2311         (current_function_calls_longjmp): Delete.
2312         * tree.h (ECF_LONGJMP): Delete.
2313         (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN)
2314         (ECF_LIBCALL_BLOCK): Everybody slide down one.
2315         (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments.
2316         * builtins.c (expand_builtin_longjmp): Don't set
2317         current_function_calls_longjmp.
2318         * calls.c (special_function_p): Mark longjmp and siglongjmp
2319         with ECF_NORETURN, not ECF_LONGJMP.
2320         (emit_call_1, expand_call, emit_library_call_value_1):
2321         Don't check for ECF_LONGJMP.
2322         * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt)
2323         (need_fake_edge_p): Likewise.
2324
2325         * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP.
2326         * system.h: Poison NON_SAVING_SETJMP.
2327         * function.c (use_register_for_decl)
2328         * gcse.c (compute_hash_table_work, compute_store_table)
2329         * postreload-gcse.c (record_opr_changes)
2330         * reload.c (find_equiv_reg)
2331         * reload1.c (reload)
2332         * config/i386/i386.c (ix86_can_use_return_insn_p):
2333         Remove code conditional on NON_SAVING_SETJMP.
2334         * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP.
2335
2336         * config/i386/sysv3.h: Delete file.
2337         * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete.
2338
2339 2004-11-23  Dorit Naishlos  <dorit@il.ibm.com>
2340
2341         * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
2342         the vectorization factor is greater than the iteration count.
2343         (vect_gen_niters_for_prolog_loop): No need to calculate min if the
2344         iteration count is known.
2345
2346         (vect_build_symbol_bound): Removed. Its functionality moved to
2347         vect_generate_tmps_on_preheader.
2348         (vect_generate_tmps_on_preheader): Moved content of
2349         vect_build_symbol_bound here instead of calling it.  Changed some
2350         variables names.
2351
2352         (vect_build_loop_niters): We don't expect a new_bb to be generated -
2353         use gcc_assert.
2354         (vect_gen_niters_for_prolog_loop): Likewise.
2355         (vect_gen_niters_for_prolog_loo): Likewise.
2356
2357         (slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
2358         (slpeel_add_loop_guard): Likewise.
2359         (slpeel_tree_peel_loop_to_edge): Likewise.
2360         (vect_do_peeling_for_alignment): Likewise.
2361
2362         (vect_get_first_index): Missing space.
2363
2364 2004-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
2365
2366         * config/s390/s390.md ("*iordi3"): Mark commutative.
2367         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2368
2369 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
2370
2371         * tree-phinode.c (resize_phi_node): Abort when LEN is strictly
2372         greater than PHI_ARG_CAPACITY.
2373         (reserve_phi_args_for_new_edge): Initialize the new PHI
2374         argument to NULL_TREE.  Increment PHI_NUM_ARGS.
2375         (add_phi_arg): Add a PHI argument to the slot given by
2376         E->dest_idx.
2377         (remove_phi_arg_num): Do not write to PHI_ARG_EDGE.
2378         * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx.
2379         * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI
2380         argument by looking at PHI_ARG_DEF.
2381         (verify_phi_args): Check for a missing PHI argument.  Remove
2382         the check for duplicate PHI arguments.
2383         * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
2384         (phi_arg_d): Remove e.
2385
2386         * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
2387         by restricting to the case with two outgoing edges.
2388
2389 2004-11-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2390
2391         * config/s390/s390.c (s390_backchain_string): Removed.
2392         (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info)
2393         (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg):
2394         Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and
2395         TARGET_KERNEL_BACKCHAIN to reflect the new options.
2396         * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros.
2397         (TARGET_KERNEL_BACKCHAIN): Removed.
2398         (TARGET_BACKCHAIN): Former triple state option change to a target flag.
2399         (TARGET_PACKED_STACK): New macro.
2400         (TARGET_SWITCHES): New switches added.
2401         (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain"
2402         removed.
2403         (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK.
2404         * config/s390/s390.md ("allocate_stack", "restore_stack_block")
2405         ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect
2406         the change in target switch semantics.
2407         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed.
2408         (TARGET_DEFAULT): MASK_BACKCHAIN added.
2409         * doc/invoke.texi: Added documentation for the new/changed options.
2410
2411 2004-11-23  Uros Bizjak  <uros@kss-loka.si>
2412
2413         PR rtl-optimization/18614
2414         * simplify-rtx.c (simplify_binary_operation): Do not
2415         simplify inner elements of constant arguments of
2416         VEC_CONCAT insn.
2417
2418 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2419
2420         * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use
2421         0 instead of NULL.
2422
2423 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
2424
2425         * tree-phinode.c (make_phi_node): Use a new variable,
2426         capacity, to receive the return value of ideal_phi_node_len.
2427
2428 2004-11-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2429
2430         * gthr-solaris.h (__gthread_recursive_mutex_t): New type.
2431         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
2432         __gthread_recursive_mutex_init_function.
2433         (__gthread_key_create): Properly cast -1.
2434         (__gthread_recursive_mutex_init_function): New function.
2435         (__gthread_recursive_mutex_lock): Rewrite.
2436         (__gthread_recursive_mutex_trylock): Likewise.
2437         (__gthread_recursive_mutex_unlock): Likewise.
2438
2439 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
2440
2441         * config/c4x/t-rtems: New.
2442         * config.gcc: Reflect having added c4x/t-rtems.
2443
2444 2004-11-23  Dorit Naishlos <dorit@il.ibm.com>
2445
2446         PR tree-opt/18403
2447         PR tree-opt/18505
2448         * tree-vectorizer.c (vect_create_data_ref_ptr): Use
2449         lang_hooks.types.type_for_size instead of integer_type_node for the
2450         type of ptr_update.
2451
2452 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
2453
2454         * config.gcc (h8300-*-rtems*): Use h8300/t-rtems.
2455
2456 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
2457
2458         * config/arm/t-rtems: New.
2459         * config.gcc: Reflect having added arm/t-rtems.
2460
2461 2004-11-23  Kazu Hirata  <kazu@cs.umass.edu>
2462
2463         * tree-cfg.c (tree_execute_on_growing_pred): New.
2464         (tree_cfg_hooks): Add tree_execute_on_growing_pred.
2465         * tree-flow.h: Add a prototype for
2466         reserve_phi_args_for_new_edge.
2467         * tree-phinodes.c (reserve_phi_args_for_new_edge): New.
2468         (add_phi_arg): Don't resize a PHI array.
2469
2470 2004-11-23  Ralf Corsepius <ralf.corsepius@rtems.org>
2471
2472         * config.gcc: Add avr-*-rtems*.
2473         * config/avr/t-rtems: New.
2474         * config/avr/rtems.h: New.
2475
2476 2004-11-22  Daniel Berlin  <dberlin@dberlin.org>
2477
2478         * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's
2479         always the same as op1.  Use bitmap_ior_into and bitmap_and_into.
2480         Add comment to function.
2481
2482 2004-11-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2483
2484         PR pch/14940
2485         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__.
2486
2487         PR rtl-optimization/14838
2488         * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
2489         note.
2490         (get_last_nonnote_insn): Don't assume last insn is a note.
2491
2492 2004-11-22  Roger Sayle  <roger@eyesopen.com>
2493
2494         * fold-const.c (nondestructive_fold_binary_to_constant): Rename
2495         to fold_binary_to_constant.
2496         (nondestructive_fold_unary_to_constant): Likewise, rename to
2497         fold_unary_to_constant.
2498         (fold_relational_hi_lo): Update call to fold_binary_to_constant.
2499         * tree.h (nondestructive_fold_binary_to_constant): Update prototype.
2500         (nondestructive_fold_unary_to_constant): Likewise.
2501         * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant
2502         and fold_binary_to_constant.
2503         * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
2504         (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY
2505         and EXEC_UNARY with calls to fold_*nary_to_constant.
2506         * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
2507         (idx_find_step): Replace uses of EXEC_BINARY with calls to
2508         fold_binary_to_constant.
2509
2510 2004-11-22  Nick Clifton  <nickc@redhat.com>
2511
2512         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
2513         initialisation of 'e'.
2514
2515 2004-11-22  Roger Sayle  <roger@eyesopen.com>
2516
2517         * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro.
2518         * config/i386/i386.c (override_options):  Set MASK_NO_FANCY_MATH_387
2519         automatically for targets without TARGET_80387.
2520         * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2,
2521         sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2,
2522         *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3,
2523         fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2,
2524         *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2,
2525         *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3,
2526         *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2,
2527         atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2,
2528         atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2,
2529         acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2,
2530         log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2,
2531         fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2,
2532         logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2,
2533         expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2,
2534         exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2,
2535         rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2,
2536         floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2,
2537         frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2,
2538         frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2):
2539         Simplify conditionals using TARGET_USE_FANCY_MATH_387.
2540
2541 2004-11-22  Dale Johannesen  <dalej@apple.com>
2542
2543         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Conditionalize
2544         properly and comment.
2545
2546 2004-11-22  James A. Morrison  <phython@gcc.gnu.org
2547
2548         * config/sparc/sparc.c: Include insn-codes.h and langhooks.h.
2549         (sparc_init_builtins): New function.
2550         (sparc_init_vis_builtins): Create builtin functions for VIS
2551         instructions.
2552         (sparc_expand_builtin): Expand builtin functions for VIS instructions.
2553         (TARGET_INIT_BUILTINS): Define to sparc_init_builtins.
2554         (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin.
2555         (def_builtin): New macro for creating builtin functions.
2556         (P): New mode macro for pointer types.
2557         (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND,
2558         UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL,
2559         UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants.
2560         (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis,
2561         fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
2562         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis,
2563         faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns.
2564
2565 2004-11-22  Devang Patel  <dpatel@apple.com>
2566
2567         * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks.
2568
2569 2004-11-22  Devang Patel  <dpatel@apple.com>
2570
2571         * tree-if-conv.c (if_convertable_phi_p): Rename to ...
2572         (if_convertible_phi_p): ... new name.
2573         (if_convertable_modify_expr_p): Rename to ...
2574         (if_convertible_modify_expr_p): ... new name.
2575         (if_convertable_stmt_p): Rename to ...
2576         (if_convertible_stmt_p): ... new name.
2577         (if_convertable_bb_p): Rename to ...
2578         (if_convertible_bb_p): ... new name.
2579         (if_convertable_loop_p): Rename to ...
2580         (if_convertible_loop_p): ... new name.
2581
2582 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2583
2584         PR target/18444
2585         * configure.ac (threading): Accept 'posix95'.
2586         * configure: Regenerate.
2587         * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6,
2588         include sol26.h and default to posix95 threads if have_pthread_h.
2589         (sparc-*-solaris2*): Likewise.
2590         * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined.
2591         * gthr-posix95.h: New file.
2592         * config/sol26.h: New file.
2593         * doc/install.texi (--enable-threads): Document 'posix95'.
2594
2595 2004-11-23  Ben Elliston  <bje@au.ibm.com>
2596
2597         * pointer-set.h (pointer_set_contains): Remove.
2598         * pointer-set.c (pointer_set_contains): Likewise.
2599
2600 2004-11-22  Dale Johannesen  <dalej@apple.com>
2601
2602         * calls.c (expand_call): Do not call preserve_temp_slots.
2603
2604 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
2605
2606         * tree-flow.h: Remove the prototype for remove_phi_arg.
2607         Add a prototype for remove_phi_args.
2608         * tree-phinodes.c (remove_phi_arg): Remove.
2609         (remove_phi_args): New.
2610         * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead
2611         of remove_phi_arg.
2612
2613         * cfg.c (unchecked_make_edge): Call execute_on_growing_pred
2614         after making an edge.
2615         (remove_edge): Call execute_on_shrinking_pred before removing
2616         an edge.
2617         (redirect_edge_succ): Call execute_on_growing_pred and
2618         execute_on_shrinking_pred.
2619         * cfghooks.c (execute_on_growing_pred): New.
2620         (execute_on_shrinking_pred): Likewise.
2621         * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and
2622         execute_on_shrinking_pred.
2623         Add prototypes for execute_on_growing_pred and
2624         execute_on_shrinking_pred.
2625         * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to
2626         execute_on_growing_pred and execute_on_shrinking_pred.
2627         (cfg_layout_rtl_cfg_hook): Likewise.
2628         * tree-cfg.c (tree_cfg_hooks): Likewise.
2629
2630         * tree-cfg.c (tree_execute_on_shrinking_pred): New.
2631         (tree_cfg_hooks): Use it.
2632         * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
2633         (ssa_redirect_edge): Don't call remove_phi_arg_num.
2634
2635         * tree-phinodes.c (remove_phi_arg_num): Make it static.
2636         * tree-flow.h: Remove the corresponding prototype.
2637
2638         * tree-ssa.c (ssa_remove_edge): Remove.
2639         * tree-flow.h: Remove the corresponding prototype.
2640         * tree-cfg.c: Replace ssa_remove_edge with remove_edge.
2641         * basic-block.h: Likewise.
2642         * tree-if-conv.c: Likewise.
2643         * tree-ssa-threadupdate.c: Likewise.
2644
2645 2004-11-23  Ben Elliston  <bje@au.ibm.com>
2646
2647         * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of
2648         @table to list the BSI methods.  Use individual @findex directives
2649         instead of one with a comma-separated list of index entries.
2650
2651 2004-11-22  Zdenek Dvorak  <dvorakz@suse.cz>
2652
2653         PR tree-optimization/18529
2654         * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function.
2655         (simple_operand_p): Use STRIP_NOPS.  Consider SSA names simple.
2656         (fold): Call fold_to_nonsharp_ineq_using_bound.
2657         * tree-ssa-loop-niter.c (simplify_replace_tree): New function.
2658         (number_of_iterations_cond): Fold the expressions before futher
2659         processing.
2660         (tree_simplify_using_condition): Handle case when cond or expr is
2661         an EQ_EXPR specially.
2662
2663 2004-11-22 Daniel Berlin  <dberlin@dberlin.org>
2664
2665         * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be
2666         SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes.
2667
2668 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
2669             Fariborz Jahanian  <fjahanian@apple.com>
2670
2671         * config/rs6000/rs6000.c (rs6000_return_in_memory): Test
2672         TARGET_ALTIVEC_ABI.
2673         (function_arg_boundary): Align 8 to 16 byte vectors like SPE.
2674         Align 16 byte and larger vectors like Altivec.
2675         (function_arg_advance): Pass any 16 byte vector like Altivec vector.
2676         (function_arg): Same.
2677         (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI.
2678
2679 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2680
2681         PR tree-opt/18572
2682         * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying
2683         it.
2684
2685 2004-11-22  Richard Henderson  <rth@redhat.com>
2686
2687         * function.c (assign_parm_setup_block): Revert 11-13 change to
2688         forcably re-mode a (possibly BLKmode) hard register.
2689
2690 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2691
2692         * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN.
2693
2694 2004-11-22  David Edelsohn  <edelsohn@gnu.org>
2695
2696         * config/rs6000/power4.md: Remove delay between dispatch and issue
2697         associated with dispatch group slots 3 and 4.
2698         * config/rs6000/power5.md: Same.
2699
2700 2004-11-21  Jeff Law  <law@redhat.com>
2701
2702         * cfg.c (cached_make_edge): Use find_edge rather than an inlined
2703         variant.
2704         * cfgbuild.c (make_edges): Likewise.
2705         * cfghooks.c (can_duplicate_block_p): Likewise.
2706         * cfgloop.c (loop_latch_edge): Likewise.
2707         * cfgloopmanip.c (force_single_succ_latches): Likewise.
2708         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2709         * predict.c (predict_loops, propagate_freq): Likewise.
2710         * tracer.c (tail_duplicate): Likewise.
2711         * tree-cfg.c (disband_implicit_edges): Likewise.
2712         (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise.
2713
2714 2004-11-22  Nick Clifton  <nickc@redhat.com>
2715
2716         * sbitmap.c (sbitmap_union_of_preds): Remove redundant
2717         initialisation of 'e'.
2718
2719 2004-11-22  Kazu Hirata  <kazu@cs.umass.edu>
2720
2721         PR rtl-optimization/18599
2722         * regrename.c (copyprop_hardreg_forward): Speed up by putting
2723         BB_VISITED flags on basic blocks as we process them.
2724
2725 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
2726
2727         PR target/18531
2728         * config/rs6000/altivec.md (VI_char): New mode attribute.
2729         (addv16qi3, addv8hi3, addv4ai3): Replace with ...
2730         (add<mode>3): ... this.
2731         (subv16qi3, subv8hi3, subv4ai3): Replace with ...
2732         (sub<mode>3): ... this.
2733         (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ...
2734         (smax<mode>3): ... this.
2735         (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ...
2736         (smin<mode>3): ... this.
2737         (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ...
2738         (umax<mode>3): ... this.
2739         (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ...
2740         (umin<mode>3): ... this.
2741         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
2742         (and<mode>3): ... this.
2743         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
2744         (ior<mode>3): ... this.
2745         (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ...
2746         (xor<mode>3): ... this.
2747         (andv16qi3, andv8hi3, andv4ai3): Replace with ...
2748         (and<mode>3): ... this.
2749         (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
2750         (ior<mode>3): ... this.
2751         (altivec_vnor): Replace with ...
2752         (altivec_nor<mode>): ... this.
2753         (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ...
2754         (one_cmpl<mode>2): ... this.
2755         (altivec_vandc): New expander.
2756         (*andc<mode>3): New insn.
2757         * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names.
2758
2759 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
2760
2761         PR tree-opt/18536
2762         * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when
2763         creating iv instead of integer_type.
2764         (vect_build_loop_niters): Remove redundant code.
2765         (vect_transform_loop_bound): Removed (duplicates functionality of
2766         make_loop_iterate_ntimes.
2767         (vect_gen_niters_for_prolog_loop): Add documentation. Call
2768         lang_hooks.types.type_for_size to create a type of the required size.
2769         Use that type instead of integer_type. Remove redundant code.
2770         (vect_update_niters_after_peeling): Use type of niters instead of
2771         integer_type.
2772         (vect_transform_loop): Unify handling of known and unknown loop bound
2773         cases. Call make_loop_iterate_ntimes instead of
2774         vect_transform_loop_bound.
2775
2776 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
2777
2778         PR target/18217
2779         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to
2780         (LIB2ADDEH): Here.
2781
2782 2004-11-22  Dorit Naishlos  <dorit@il.ibm.com>
2783
2784         PR tree-opt/18544
2785         * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
2786
2787 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2788
2789         * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
2790         m32r*linux.
2791         * config/m32r/t-linux (SHLIB_MAPFILES): Override to use
2792         m32r/libgcc-glibc.ver.
2793         * config/m32r/libgcc-glibc.ver: Add New file.
2794
2795 2004-11-22  Nathan Sidwell  <nathan@codesourcery.com>
2796
2797         * bitmap.h (struct bitmap_obstack): New obstack type.
2798         (struct bitmap_head_def): Replace using_obstack with obstack
2799         pointer.
2800         (bitmap_default_obstack): New.
2801         (bitmap_initialize): Make inline, does not do allocation.
2802         (bitmap_release_memory): Remove.
2803         (bitmap_obstack_initialize, bitmap_obstack_release): Declare.
2804         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
2805         bitmap_obstack_free, bitmap_malloc_free): Declare.
2806         (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
2807         (BITMAP_FREE): Replace with ...
2808         (BITMAP_OBSTACK_FREE): ... this.
2809         (BITMAP_XFREE): Adjust.
2810         (BITMAP_INIT_ONCE): Remove.
2811         * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
2812         (bitmap_default_obstack): New.
2813         (bitmap_elem_to_freelist): Adjust.
2814         (bitmap_element_allocate): Adjust. Break initialization into ...
2815         (bitmap_obstack_initialize): ... here.
2816         (bitmap_release_memory): Replace with ...
2817         (bitmap_obstack_release): ... this.
2818         (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
2819         bitmap_obstack_free, bitmap_malloc_free): New.
2820         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
2821         bitmap_initialize.
2822         (bitmap_initialize): Move to bitmap.h.
2823         * gengtype.c (open_base_files): Add obstack.h to ifiles.
2824         * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
2825         * basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
2826         (INITIALIZE_REG_SET): Remove.
2827         (FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
2828         (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
2829         (flow_obstack): Do not declare.
2830         (reg_obstack): Declare.
2831         * regs.h: Include obstack.h.
2832         * tree-optimize.c (tree_rest_of_compilation): Initialize and
2833         release bitmap obstack here.
2834         * bb-reorder.c: #include regs, not basic-block.
2835         (fix_crossing_conditional_branches): Allocate regsets from
2836         reg_obstack.
2837         * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
2838         obstack.h.
2839         * caller-save.c: Include regs.h earlier.
2840         * cfg.c: Do not include basic-block.h or obstack.h.
2841         (reg_obstack): Define.
2842         * cfganal.c: Include obstack.h
2843         * cfgcleanyp.c: Do not include basic-block.h. Include regs.h
2844         earlier.
2845         * cfglayout.c: Do not include obstack.h.
2846         (flow_obstack): Remove declaration.
2847         (cfg_layout_duplicate_bb): Use reg_obstack.
2848         * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
2849         * cfgrtl.c (rtl_split_block): Use reg_obstack.
2850         (force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
2851         (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
2852         (cfg_layout_split_edge): Use reg_obstack.
2853         * cse.c: Include regs.h earlier.
2854         * ddg.c: Do not include basic-block.h.
2855         * dominance.c: Inlude obstack.h.
2856         * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
2857         (calculate_global_regs_live): Likewise.
2858         (allocate_bb_life_data): Use reg_obstack.
2859         (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
2860         * global.c: Do not include basic-block.h.
2861         (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
2862         * graph.c: Include obstack.h.
2863         * haifa-sched.c: Do not include basic-block.h.
2864         * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
2865         * local-alloc.c: Do not include basic-block.h.
2866         * loop-init.c, loop-invariant.c: Include obstack.h.
2867         * loop-iv.c: Likewise.
2868         (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
2869         adjust.
2870         * loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
2871         * modulo-sched.c: Do not include basic-block.h.
2872         * passes.c (rest_of_handle_final): Do not call
2873         regset_release_memory.
2874         * ra-debug.c: Include regs.h earlier. Do not include
2875         basic-block.h.
2876         * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
2877         * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
2878         (allocate_reg_info): Do not call MAX_REGNO_REG_SET.
2879         (regset_release_memory): Remove.
2880         * resource.c: Do not include basic-block.h.
2881         * rtlanal.c: Do not include basic-block.h.
2882         * sbitmap.c: Include obstack.h.
2883         * sched-deps.c: Do not include basic-block.h.
2884         (reg_pending_sets_head, reg_pending_clobbers_head,
2885         reg_pending_uses_head): Remove.
2886         (init_deps_global): Use OBSTACK_ALLOC_REG_SET.
2887         * sched-ebb.c: Do not include basic-block.h.
2888         * sched-rgn.c: Likewise.
2889         * tree-if-conv.c (get_loop_body_in_if_conv_order): Use
2890         BITMAP_XFREE.
2891         * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
2892         * tree-sra.c (decide_instantiations): Adjust bitmap
2893         initialization.
2894         * tree-ssa-dce.c: Include obstack.h.
2895         * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
2896         (value_insert_into_set_bitmap): Remove useless bitmap_clear.
2897         (bitmap_set_new): Likewise.
2898         (init_pre): Initialize bitmap obstack.
2899         (fini_pre): Release bitmap obstack.
2900         * tree-ssanames.c (ssa_names_to_rewrite): Make static.
2901         (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
2902         (mark_for_rewrite, unmark_for_rewrite): Likewise.
2903         (marked_ssa_names): Likewise.
2904         (init_ssanames): Use BITMAP_XMALLOC.
2905         (fini_ssanames): Use BITMAP_XFREE.
2906         * web.c: Include obstack.h
2907
2908 2004-11-22  Nick Clifton  <nickc@redhat.com>
2909
2910         * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge
2911         predecessor in the first for-loop.
2912
2913 2004-11-21  Stan Shebs  <shebs@apple.com>
2914
2915         * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add
2916         UNION_TYPE case.
2917         (function_arg): Move darwin test up, sniff mode first for
2918         efficiency, test for union type.
2919
2920 2004-11-21  Dale Johannesen  <dalej@apple.com>
2921
2922         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION):  Define.
2923
2924 2004-11-21  Jeff Law  <law@redhat.com>
2925
2926         * tree-ssa.c (verify_use): Fix comment.
2927         (verify_phi_args): Check that the number of incoming edges matches
2928         the number of PHI arguments.  Check that each PHI argument is
2929         either an SSA_NAME or an invariant.  Coalesce tests for PHIs for
2930         dead or duplicated edges.  Clear e->aux earlier and avoid separate
2931         loop to clear e->aux and test for missed edges.
2932         (verify_ssa): Remove first walk over statements.  Move checking
2933         of PHI args into verify_phi_args.  Move checking of statements
2934         with aliased stores and V_MAY_DEFS into the remaining loop over
2935         the statements.  Register defs by walking through the formal
2936         SSA_NAME table.
2937
2938 2004-11-21  Roger Sayle  <roger@eyesopen.com>
2939
2940         PR middle-end/18520
2941         * dojump.c (compare_from_rtx): Clarify mode argument in function
2942         description.  Correct order of mode/cmp_mode arguments in call to
2943         simplify_relational_operation.  Check "tem" for COMPARISON_P.
2944
2945 2004-11-21  Paolo Bonzini  <bonzini@gnu.org>
2946             David Edelsohn  <edelsohn@gnu.org>
2947
2948         PR target/17836
2949         * config/rs6000/rs6000.c (rs6000_return_in_memory): Return
2950         synthetic vectors in memory.
2951         (function_arg_boundary): Align large synthetic vectors.
2952         (rs6000_pass_by_reference): Pass synthetic vectors in memory.
2953
2954 2004-11-21  Jeff Law  <law@redhat.com>
2955
2956         * cfg.c (update_bb_profile_for_threading): Do not rescale the
2957         successor probabilities if they are not going to change.  Pull
2958         division out of loop if we do need to rescale successor probabilities.
2959
2960         * tree-ssa-threadupdate.c (redirection_data_hash): Use the
2961         index of the destination block for the hash value rather than
2962         hashing a pointer.
2963
2964 2004-11-20  Joseph S. Myers  <joseph@codesourcery.com>
2965
2966         * c-typeck.c (build_array_ref): Don't check for index == 0.  Make
2967         checks for neither argument being an array or pointer (swapping
2968         the arguments if necessary), the array argument being a pointer to
2969         or array of functions and for -Wchar-subscripts warnings upfront.
2970
2971 2004-11-20  Jeff Law  <law@redhat.com>
2972
2973         * regrename.c (copyprop_hardreg_forward): Only search for a
2974         previously processed block if the current block only has one
2975         predecessor.
2976
2977 2004-11-20  Kazu Hirata  <kazu@cs.umass.edu>
2978
2979         * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment
2980         typos.
2981         * config/arm/arm.c: Follow spelling conventions.
2982
2983 2004-11-20  Richard Earnshaw  <rearnsha@arm.com>
2984
2985         * arm.c (arm_override_options): Use arm_ld_sched rather than testing
2986         a bit in tune_flags.
2987         (const_double_needs_minipool): Likewise.  Split most of the code out
2988         into ...
2989         (arm_const_double_inline_cost): ... new function here.
2990         * arm-protos.h (arm_const_double_inline_cost): Add prototype.
2991         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double-
2992         word constants of length 2, 3 and 4 insns respectively.
2993         (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint.
2994         * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc]
2995         constraints.  Set insn lenghts accordingly.
2996
2997 2004-11-19  Jeff Law  <law@redhat.com>
2998
2999         * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with
3000         a hash table.  Extensive modifications throughout to support
3001         that change.
3002         (struct el): New.
3003         (struct local_info): New.
3004         (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE
3005         fields.
3006         (redirection_data): Now a hashtable.
3007         (redirection_data_hash, redirection_data_eq): New.
3008         (lookup_redirection_data, create_duplicates): New.
3009         (create_edge_and_update_destionation_phis): New.
3010         (fixup_template_block, redirect_edges): New.
3011         (thread_block): Use hash table traversals instead of loops over
3012         varray entries or incoming edge vectors.
3013
3014 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
3015
3016         * basic-block.h (edge_def): Add dest_idx.
3017         * cfg.c (unchecked_make_edge): Initialize dest_idx.
3018         (remove_edge): Simplify the disconnection of an edge from its
3019         destination.
3020         (redirect_edge_succ): Likewise.
3021         * cfghooks.c (verify_flow_info): Check the consistency of
3022         dest_idx for each edge.
3023
3024 2004-11-19  Aldy Hernandez  <aldyh@redhat.com>
3025
3026         * simplify-rtx.c (simplify_ternary_operation): Use
3027         gen_int_mode.
3028
3029 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
3030
3031         * tree-cfg.c (reinstall_phi_args): New.
3032         (tree_split_edge): Use it after redirecting an edge.  Don't
3033         modify PHI_ARG_EDGE.
3034
3035 2004-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
3036
3037         * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
3038         if checking is enabled.
3039
3040 2004-11-19  Joseph S. Myers  <joseph@codesourcery.com>
3041
3042         * c-decl.c (push_scope): Remove "\n" from end of diagnostic for
3043         too many nested scopes.
3044
3045 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
3046
3047         PR tree-opt/18181
3048         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme
3049         changed to suppoer uses-after-loop and to void creating flow paths
3050         that shouldn't exist.
3051         (slpeel_update_phi_nodes_for_guard): Takes additional two arguments.
3052         Modified to fit the new peeling scheme. Avoid quadratic behavior.
3053         (slpeel_add_loop_guard): Takes additional argument.
3054         (slpeel_verify_cfg_after_peeling): New function.
3055         (vect_update_ivs_after_vectorizer): Takes additional argument. Updated
3056         documentation. Use 'exit-bb' instead of creating 'new-bb'.
3057         (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit
3058         the new peeling scheme.
3059         (copy_phi_nodes): Function removed. Its functionality moved to
3060         update_phis_for_duplicate_loop.
3061         (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes
3062         moved here. Added documentation. Modified to fit the new peeling scheme.
3063         (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not
3064         needed - done in slpeel_tree_peel_loop_to_edge.
3065         (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted.
3066         (vect_do_peeling_for_loop_bound): Add documentation. Call
3067         slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer
3068         with additional argument.
3069         (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling.
3070
3071         (vect_finish_stmt_generation): Avoid 80 column oveflow.
3072
3073 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
3074
3075         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two
3076         arguments removed.
3077         (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes
3078         without last two arguments. Update single_exit of loops.
3079         (vect_update_niters_after_peeling): Removed. Its functionality was
3080         moved to vect_do_peeling_for_alignment.
3081         (vect_do_peeling_for_loop_bound): New name for function previously
3082         called vect_transform_for_unknown_loop_bound.
3083         (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes
3084         instead of code that duplicates the same functionality.
3085         (vect_do_peeling_for_alignment): Functionality of
3086         vect_update_niters_after_peeling moved here.
3087         (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound -
3088         previously named vect_transform_for_unknown_loop_bound - for both known
3089         and unknown loop bound cases.
3090
3091 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
3092
3093         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function
3094         previously called verify_loop_for_duplication. All conditions compacted
3095         into one compound condition. Removed debug dumps.
3096         (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the
3097         functionality moved to vect_can_advance_ivs_p, and some to
3098         vect_analyze_loop_form.
3099         (vect_can_advance_ivs_p): New function. Contains functionality that was
3100         taken out of vect_analyze_loop_with_symbolic_num_of_iters.
3101         (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p.
3102         (vect_analyze_operations): Call vect_can_advance_ivs_p and
3103         slpeel_can_duplicate_loop_p.
3104         (vect_get_loop_niters): Added documentation.
3105         (vect_analyze_loop_form): Check the loop entry always - not only in case
3106         of unknown loop bound. Create preheader and exit bb if necessary. Apply
3107         a check that used to take place in
3108         vect_analyze_loop_with_symbolic_num_of_iters.
3109         (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING.
3110         Remove redundant call to rewrite_into_loop_closed_ssa.
3111         (vect_compute_data_refs_alignment): Removed obsolete comment.
3112
3113 2004-11-19  Dorit Naishlos  <dorit@il.ibm.com>
3114
3115         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for
3116         function previously called tree_duplicate_loop_to_edge.
3117         (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function
3118         previously called tree_duplicate_loop_to_edge_cfg.
3119         (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to
3120         function name.
3121         (slpeel_update_phi_nodes_for_guard): Likewise.
3122         (slpeel_make_loop_iterate_ntimes): Likewise.
3123         (slpeel_add_loop_guard): Likewise.
3124         (allocate_new_names, free_new_names): Function declaration moved to top
3125         of file.
3126         (rename_use_op, rename_def_op): Likewise.
3127         (rename_variables_in_bb, rename_variables_in_loop): Likewise.
3128         (vect_generate_tmps_on_preheader): Function declaration moved.
3129         (vect_transform_for_unknown_loop_bound): Added missing function
3130         declaration.
3131
3132 2004-11-19  Andrew Pinski  <pinskia@physics.uc.edu>
3133
3134         PR tree-opt/18507
3135         * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree).
3136         Define a VEC(tree_on_heap) for head.
3137         (register_new_def): Change second argument to be a VEC(tree_on_heap).
3138         * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap).
3139         (tree_ssa_dominator_optimize): Initialize block_defs_stack with
3140         the VEC(tree_on_heap) function.  Also free it before returning.
3141         (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
3142         for block_defs_stack.
3143         (restore_currdefs_to_original_value): Use VEC_length instead of
3144         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
3145         (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
3146         for block_defs_stack.
3147         * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap).
3148         (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
3149         for block_defs_stack.
3150         (ssa_register_new_def): Likewise.
3151         (ssa_rewrite_initialize_block): Likewise.
3152         (rewrite_finalize_block): Use VEC_length instead of
3153         VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
3154         (ssa_rewrite_finalize_block): Likewise.
3155         (register_new_def): Change second argument to be a VEC(tree_on_heap).
3156         Use VEC_safe_push instead of VARRAY_PUSH_TREE.
3157         (rewrite_blocks): Initialize block_defs_stack with
3158         the VEC(tree_on_heap) function.  Also free it before returning.
3159         (rewrite_ssa_into_ssa): Likewise.
3160
3161 2004-11-19  Fariborz Jahanian <fjahanian@apple.com>
3162
3163         * config/darwin.c (machopic_data_defined_p): return 1 for
3164         MACHOPIC_DEFINED_FUNCTION.
3165
3166 2004-11-19  Jeff Law  <law@redhat.com>
3167
3168         * tree-ssa.c (verify_ssa): Remove redundant checking of PHI
3169         arguments.
3170
3171 2004-11-19  Paul Brook  <paul@codesourcery.com>
3172
3173         PR target/17735
3174         * varasm.c (default_assemble_integer): Allow pointer-sized values.
3175         Expand comment.
3176
3177 2004-11-19  Nick Clifton  <nickc@redhat.com>
3178
3179         * config/stormy16/stormy16.c (combine_bnp): Add code to handle
3180         zero_extension and lshiftrt insns.
3181         Replace uses of XEXP(...) with either SET_DEST() or SET_SRC()
3182         where appropriate.
3183         * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns
3184         to handle bp and bn insn patterns with a zero_extend rtx
3185         inside them.
3186
3187 2004-11-19  Ian Lance Taylor  <ian@wasabisystems.com>
3188
3189         * config/arm/arm.md (generic_sched): Make const.
3190
3191 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
3192
3193         * emit-rtl.c (classify_insn): Make it static.
3194         * rtl.h: Remove the corresponding prototype.
3195
3196         * integrate.c (has_func_hard_reg_initial_val,
3197         get_func_hard_reg_initial_val): Make them static.
3198         * integrate.h: Remove the corresponding prototypes.
3199
3200 2004-11-19  Ben Elliston  <bje@au.ibm.com>
3201
3202         * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0.
3203         (dw2_asm_output_delta_sleb128): Likewise.
3204         * dwarf2asm.c (dw2_asm_output_pcrel): Likewise.
3205         (dw2_asm_output_delta_sleb128): Likewise.
3206
3207 2004-11-19  Adam Nemet  <anemet@lnxw.com>
3208
3209         * tree-ssa-alias.c: Fix comment.
3210
3211 2004-11-19  Kazu Hirata  <kazu@cs.umass.edu>
3212
3213         * tree-outof-ssa.c: Fix a comment typo.
3214
3215 2004-11-19  Ben Elliston  <bje@au.ibm.com>
3216
3217         * predict.h (predict_insn): Remove extern declaration.
3218         * predict.c (predict_insn): Make static.
3219
3220 2004-11-19  Alan Modra  <amodra@bigpond.net.au>
3221
3222         * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs.
3223
3224 2004-11-18  Nicolas Pitre <nico@cam.org>
3225
3226         * config/arm/arm.c (const_double_needs_minipool): New function to
3227         determine if a CONST_DOUBLE should be pushed to the minipool.
3228         (note_invalid_constants): Use it.
3229
3230 2004-11-18  Paul Brook  <paul@codesourcery.com>
3231
3232         * config/arm/arm.c (target_float_switch): New variable..
3233         (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and
3234         target_float_switch.
3235         * config/arm/arm.h (target_float_switch): Declare.
3236         (ARM_FLAG_SOFT_FLOAT): Remove.
3237         (TARGET_SWITCHES): Remove hard-float and soft-float.
3238         (TARGET_OPTIONS): Add hard-float and soft-float.
3239         (TARGET_DEFAULT_FLOAT_ABI): Define.
3240         * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define
3241         (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT.
3242         * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT.
3243         * config/arm/netbsd-elf.h: Ditto.
3244         * config/arm/netbsd.h: Ditto.
3245         * config/arm/pe.h: Ditto.
3246         * config/arm/unknown-elf.h: Ditto.
3247         * config/arm/wince-pe.h: Ditto.
3248         * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3249         * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3250         * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3251
3252 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
3253
3254         * config/rs6000/altivec.md (VI, VF, V): New mode macros.
3255         (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi,
3256         altivec_lvx_4sf): Rename and replace with ...
3257         (altivec_lvx_<mode>): ... mode macro version.
3258         (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi,
3259         altivec_stvx_4sf): Rename and replace with ...
3260         (altivec_stvx_<mode>): ... mode macro version.
3261         (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ...
3262         (mov<mode>): ... mode macro version.
3263         (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1,
3264         *movv4sf_internal1): Replace with ...
3265         (*mov<mode>_internal): ... mode macro version.
3266         (get_vrsave_internal, *set_vrsave_internal, *save_world,
3267         *restore_world): Unquote output statements.
3268         * config/rs6000/rs6000.c (altivec_expand_ld_builtin,
3269         altivec_expand_st_builtin): Adjust insn names.
3270
3271 2004-11-18  Aldy Hernandez  <aldyh@redhat.com>
3272
3273         * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert
3274         previous change.
3275         (rs6000_override_options): Likewise.
3276         (spe_build_register_parallel): Handle complex doubles on e500v2.
3277         (rs6000_spe_function_arg): Likewise.
3278         (function_arg): Likewise.
3279         (rs6000_function_value): Likewise.
3280         (rs6000_libcall_value): Likewise.
3281
3282 2004-11-18  Andrew Pinski  <pinskia@physics.uc.edu>
3283
3284         * ifcvt.c (find_if_block): Move the check for the number of edges
3285         above the loops checking for complex edges.
3286         Remove the counting of edges as we use EDGE_COUNT now.
3287
3288 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
3289
3290         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
3291         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3
3292
3293 2004-11-18  Andreas Schwab  <schwab@suse.de>
3294
3295         * config/i386/i386.md (define_peephole2): Revert last change.
3296
3297 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
3298
3299         * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
3300         TARGET_ASM_FILE_END to file_end_indicate_exec_stack.
3301
3302 2004-11-18  Diego Novillo  <dnovillo@redhat.com>
3303
3304         * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead
3305         of FOR_EACH_BB.
3306
3307 2004-11-18  Jon Grimm <jgrimm2@us.ibm.com>
3308
3309         * Makefile.in (macro_list): Depend on s-macro_list.
3310         (s-macro_list): New target.
3311
3312 2004-11-18  Nathan Sidwell  <nathan@codesourcery.com>
3313
3314         PR target/17107
3315         * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
3316         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
3317         (fold_range_test): Adjust.
3318         (fold_truthop): Use it.
3319         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
3320         (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
3321
3322 2004-11-18  Uros Bizjak  <uros@kss-loka.si>
3323
3324         * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to
3325         insn split constraint.
3326         (define_peephole2): Remove unneeded "&& 1" from peephole2
3327         constraints.
3328
3329 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3330
3331         * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item
3332         element for bsi_prev; use @findex instead.
3333
3334 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3335
3336         * opts.h (add_input_filename): Remove extern declaration.
3337         * opts.c (add_input_filename): Make static.
3338
3339 2004-11-17  Mark Mitchell  <mark@codesourcery.com>
3340
3341         * config/i386/i386.c (i386_solaris_elf_named_section): Mark with
3342         ATTRIBUTE_UNUSED.
3343
3344 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
3345
3346         * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN.
3347         * system.h: Poison it.
3348         * doc/tm.texi: Delete its documentation.
3349
3350 2004-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
3351             Mark Mitchell  <mark@codesourcery.com>
3352
3353         * config/i386/sol2-10.h, config/i386/t-sol2-10: New files.
3354         * config/i386/i386.c (i386_solaris_elf_named_section): New
3355         function.
3356         * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10.
3357         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle
3358         64-bit.
3359         (ASM_QUAD): Don't undefine for biarch targets.
3360         * config/i386/t-sol2: Introduce multilib support.
3361
3362 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3363
3364         * cgraphunit.c: Replace "it's" with "its" and fix a typo.
3365
3366 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3367
3368         * cgraph.h: Replace "it's" with "its" throughout.
3369
3370 2004-11-18  Ben Elliston  <bje@au.ibm.com>
3371
3372         * doc/rtl.texi (Flags): Grammar fix.
3373
3374 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
3375
3376         * expmed.c (alg_code): Add alg_unknown.
3377         (alg_hash_entry): New.
3378         (NUM_ALG_HASH_ENTRIES): Likewise.
3379         (alg_hash): Likewise.
3380         (synth_mult): Cache the result into alg_hash.
3381
3382 2004-11-17  Zack Weinberg  <zack@codesourcery.com>
3383
3384         * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with
3385         config/rs6000/libgcc-ppc64.ver.
3386
3387 2004-11-17  Kazu Hirata  <kazu@cs.umass.edu>
3388
3389         * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when
3390         checking if an unconditional return is followed by a barrier.
3391
3392         * jump.c (condjump_p): Remove unreachable code.
3393
3394         * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h,
3395         tree-chrec.h, tree-flow.h, tree-scalar-evolution.h,
3396         tree-ssa-live.h, tree.h: Remove unused prototypes.
3397
3398 2004-11-17  Jeff Law  <law@redhat.com>
3399
3400         * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader.
3401         (edge_to_cases_elt): Renamed from edge_to_case_leader.
3402         (edge_to_cases_hash): Renamed from edge_to_case_leader_hash.
3403         (edge_to_cases_eq): Renamed from edge_to_case_leader_eq.
3404         (edge_to_cases_cleanup, recording_case_labels_p): New functions.
3405         (get_cases_for_edge): New function.
3406         (start_recording_case_labels, end_recording_case_labels): Similarly.
3407         (record_switch_edge): Don't muck with the CASE_LABEL.  Instead
3408         chain equivalent CASE_LABEL_EXPRs together.
3409         (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill.
3410         (make_switch_expr_edges): Do not record edge/cases here.
3411         (cleanup_tree_cfg): Record cases around the call to thread_jumps.
3412         (split_critical_edges): Record cases around the edge splitting code.
3413         (cleanup_dead_labels): Use CASE_LABEL again.
3414         (tree_redirect_edge_and_branch): If we have a mapping from edge
3415         to cases, use it to handle redirections.  Else do it the slow way.
3416         * tree.h (CASE_LEADER_OR_LABEL): Kill.
3417         (CASE_LABEL): Revert to just looking at the tree's second operand.
3418         * tree.c (get_case_label): Kill.
3419
3420 2004-11-17  Diego Novillo  <dnovillo@redhat.com>
3421
3422         PR tree-optimization/18307
3423         * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and
3424         'orig' are the same node.
3425         (collect_points_to_info_r): Do not call merge_pointed_to_info
3426         when the PHI argument is identical to the LHS.
3427
3428 2004-11-17  Steven Bosscher  <stevenb@suse.de>
3429
3430         * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying
3431         to insert the exit or entry block.
3432         (ssa_prop_init): Use add_control_edge to seed the algorithm.
3433
3434 2004-11-16  Zack Weinberg  <zack@codesourcery.com>
3435
3436         * mkmap-flat.awk, mkmap-symver.awk: If the last version
3437         assigned to a symbol was '%exclude', do not emit it anywhere.
3438         If leading_underscore is true, prefix all symbols from the
3439         version scripts with a leading underscore before comparing
3440         them with nm output or emitting them.  Remove support for dot
3441         symbols.
3442         * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk.
3443         (SHLIB_MAPFILES): Use libgcc-std.ver.
3444         (SHLIB_MKMAP_OPTS): Enable leading-underscore mode.
3445         (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP).
3446         * config/sh/t-linux: Use the normal libgcc-std.ver, plus
3447         libgcc-excl.ver and libgcc-glibc.ver.
3448
3449         * config/sh/libgcc-excl.ver: New file.
3450         * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete.
3451
3452 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
3453
3454         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap
3455         the test when the edge has the opposite meaning, not when
3456         the first argument is invariant.
3457
3458 2004-11-16  Aldy Hernandez  <aldyh@redhat.com>
3459
3460         * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2
3461         doubles.
3462         (rs6000_complex_function_value): Handle e500 v2 variant.
3463
3464 2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
3465
3466         Fix PR tree-optimization/18519
3467
3468         * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg.
3469         * tree-pass.h: Add TODO_cleanup_cfg.
3470         * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg.
3471         (ccp_finalize): Remove call to cleanup_cfg.
3472         * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func.
3473         (pass_cd_dce): Ditto.
3474         (perform_tree_ssa_dce): Remove call to cleanup_cfg,
3475         dump_function_to_file.
3476         * tree-ssa-loop-ch.c (copy_loop_headers): Remove call
3477         to cleanup_cfg.
3478         (pass_ch): Add TODO_cleanup_cfg.
3479         * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to
3480         cleanup_cfg.
3481         (pass_loop_done): Add TODO_cleanup_cfg.
3482         * tree-ssa-phiopt.c (pass_phiopt): Ditto.
3483         (tree_ssa_phiopt): Remove call to cleanup_cfg.
3484
3485 2004-11-16  Devang Patel  <dpatel@apple.com>
3486
3487         * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use.
3488
3489 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
3490
3491         * expmed.c, ra-colorize.c: Fix comment typos.
3492
3493         * doc/tm.texi: Fix typos.
3494
3495 2004-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
3496             Mark Mitchell  <mark@codesourcery.com>
3497
3498         PR target/6123
3499         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and
3500         __pic__ if PIC.
3501
3502 2004-11-16  Ulrich Weigand  <uweigand@de.ibm.com>
3503
3504         * regmove.c (regmove_optimize): Use lowpart_subreg instead of
3505         gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG.
3506
3507 2004-11-16  Devang Patel  <dpatel@apple.com>
3508
3509         * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check.
3510
3511 2004-11-16  Eric Christopher  <echristo@redhat.com>
3512
3513         * config/mips/mips.c: Use rtl _P predicates.
3514         * config/mips/mips.h: Ditto.
3515         * config/mips/mips.md: Ditto.
3516
3517 2004-11-16  Fariborz Jahanian <fjahanian@apple.com>
3518
3519         * config/rs6000/altivec.md (altivec_vandc): Canonicalize
3520         the pattern.
3521
3522 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
3523
3524         * config/s390/s390.c (s390_cc_modes_compatible): New function.
3525         (TARGET_CC_MODES_COMPATIBLE): Target macro defined.
3526
3527 2004-11-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3528
3529         PR target/18447
3530         * config/sh/sh.c (prepare_move_operands): Emit blockage insns
3531         before and after the insns for getting GOT address in non-PIC
3532         TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling
3533         is enabled.
3534
3535 2004-11-16  Andreas Krebbel  <krebbel1@de.ibm.com>
3536
3537         * gcc/cse.c (struct change_cc_mode_args): New structure.
3538         (cse_change_cc_mode_insn): New function.
3539         (cse_change_cc_mode): Use validate_change to perfom changes.
3540         (cse_change_cc_mode_insns, cse_condition_code_reg):
3541         Call cse_change_cc_mode_insn.
3542
3543 2004-11-16  Steven Bosscher  <stevenb@suse.de>
3544
3545         * stack.h: Remove.
3546
3547 2004-11-16  Steven Bosscher  <stevenb@suse.de>
3548
3549         * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8.
3550
3551 2004-11-15  Dale Johannesen  <dalej@apple.com>
3552
3553         * tree-flow.h (add_referenced_temp_var):  Remove name from prototype.
3554
3555 2004-11-15  Dale Johannesen  <dalej@apple.com>
3556
3557         * profile.c (compute_branch_probabilities):  Prevent
3558         crash with EH in RTL-based profiling.
3559
3560 2004-11-16  Kazu Hirata  <kazu@cs.umass.edu>
3561
3562         * tree-cfg.c (verify_expr): Replace TREE_OPERAND with
3563         COND_EXPR_COND.
3564         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
3565         * tree-ssa-dom.c (thread_across_edge): Likewise.
3566         * tree-vectorizer.c (vect_transform_loop_bound): Replace
3567         TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or
3568         COND_EXPR_ELSE.
3569
3570         * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument.
3571         (tree_flow_call_edges_add): Update the call to
3572         bsi_commit_edge_inserts.
3573         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
3574         * profile.c (branch_prob): Likewise.
3575         * tree-mudflap.c (mf_decl_cache_locals): Likewise.
3576         * tree-sra.c (scalarize_function): Likewise.
3577         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
3578         * tree-ssa-pre.c (fini_pre): Likewise.
3579         * tree-flow.h: Update the prototype for
3580         bsi_commit_edge_inserts.
3581
3582 2004-11-15  Eric Christopher  <echristo@redhat.com>
3583
3584         * sched-deps.c (set_sched_group_p): Delete.
3585         (delete_all_dependencies): New function.
3586         (fixup_sched_groups): Use. New function.
3587         (sched_analyze_insn): Use.
3588
3589 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
3590
3591         * c-common.c (binary_op_error): Don't allow LROTATE_EXPR,
3592         RROTATE_EXPR or unknown code.
3593         * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR,
3594         LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR,
3595         UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR
3596         or unknown code.
3597
3598 2004-11-15  Joseph S. Myers  <joseph@codesourcery.com>
3599
3600         PR c/18498
3601         * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width
3602         after processing the declarator.
3603
3604 2004-11-15  Aldy Hernandez  <aldyh@redhat.com>
3605
3606         * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with
3607         vec_duplicate.
3608         (altivec_vspltb): Same.
3609         (altivec_vspltw): Same.
3610         (altivec_vspltisb): Same.
3611         (altivec_vspltish): Same.
3612         (altivec_vspltisw): Same.
3613         (altivec_vspltisw_v4sf): Same.
3614         (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW,
3615         UNSPEC_VSPLTISH.
3616         Move "End of vector xor's" comment to the right place.
3617
3618 2004-11-15  Steve Ellcey  <sje@cup.hp.com>
3619
3620         * config/ia64/ia64.md (*movtf_internal):  Use destination_operand
3621         instead of nonimmediate_operand.
3622
3623 2004-11-15  Mark Mitchell <mark@codesourcery.com>
3624
3625         * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand.
3626         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise.
3627         * config/sol2.c (solaris_output_init_fini): Update calls to
3628         ASM_OUTPUT_CALL.  Include "rtl.h".
3629
3630 2004-11-15  Mark Mitchell <mark@codesourcery.com>
3631
3632         * config/sol2-c.c (cmn_err_char_table): Add "p".
3633
3634 2004-11-15  Mark Mitchell <mark@codesourcery.com>
3635
3636         * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove.
3637         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here.
3638
3639 2004-11-15  Mark Mitchell <mark@codesourcery.com>
3640
3641         * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely
3642         within the multilib directory.
3643
3644 2004-11-15  Nick Clifton  <nickc@redhat.com>
3645
3646         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add
3647         builtin assert of cpu=xstormy16.
3648
3649 2004-11-15  Nathan Sidwell  <nathan@codesourcery.com>
3650
3651         * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized
3652         variable.
3653
3654 2004-11-14  Richard Henderson  <rth@redhat.com>
3655
3656         PR 18480
3657         * calls.c (struct arg_data): Add parallel_value.
3658         (precompute_register_parameters): Set it.
3659         (load_register_parameters): Use it.
3660         (store_one_arg): Also set it here.
3661
3662 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
3663
3664         PR tree-optimization/18431
3665         * fold-const.c (associate_trees): Do not produce x + 0.
3666         (fold_widened_comparison, fold_sign_changed_comparison): New functions.
3667         (fold): Use them.
3668         * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type):
3669         Moved ...
3670         * tree.c (upper_bound_in_type, lower_bound_in_type): Here.
3671         * tree.h (upper_bound_in_type, lower_bound_in_type): Declare.
3672
3673 2004-11-14  Eric Botcazou <ebotcazou@libertysurf.fr>
3674
3675         * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example.
3676
3677 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
3678
3679         * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c,
3680         value-prof.c: Fix comment typos.
3681
3682 2004-11-14  Stan Shebs  <shebs@apple.com>
3683
3684         Basic ABI changes for passing structs by value in 64-bit Darwin.
3685         * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag.
3686         (rs6000_override_options): Set it for 64-bit Darwin.
3687         (rs6000_parse_abi_options): Add testing options to change it.
3688         (rs6000_return_in_memory): Test whether the type is one
3689         that can be passed in registers.
3690         (darwin64_function_arg_advance): New.
3691         (function_arg_advance): Call it, plus add recursion depth
3692         argument and test when counting off arguments.
3693         (rs6000_darwin64_function_arg): New.
3694         (function_arg): Call it.
3695         (setup_incoming_varargs): Add argument to function_arg_advance.
3696         (rs6000_darwin64_function_value): New.
3697         (rs6000_function_value): Call it.
3698         * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg.
3699         * config/rs6000/rs6000-protos.h: Update decl of
3700         function_arg_advance.
3701
3702 2004-11-14  Andrew Pinski  <pinskia@physics.uc.edu>
3703
3704         PR c/17279
3705         * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we
3706         support TImode before adding __int128_t and __uint128_t types.
3707
3708 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
3709
3710         PR tree-opt/18400
3711         * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations.
3712         (vect_transform_loop_bound): Set loop->nb_iterations.
3713
3714 2004-11-14  Dorit Naishlos  <dorit@il.ibm.com>
3715             Andrew Pinski  <pinskia@physics.uc.edu>
3716
3717         PR tree-opt/18425
3718         * tree-vectorize.c (vect_build_loop_niters): Do not insert
3719         NULL into the instruction stream. Initialize new_bb to NULL.
3720         (vect_update_ivs_after_vectorizer): Likewise.
3721         (vect_gen_niters_for_prolog_loop): Likewise.
3722
3723 2004-11-14  Zdenek Dvorak  <dvorakz@suse.cz>
3724
3725         PR tree-optimization/18431
3726         * tree-flow.h (stmt_references_memory_p): Declare.
3727         * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p.
3728         * tree-ssa.c (stmt_references_memory_p): New function.
3729
3730 2004-11-14  Andreas Schwab  <schwab@suse.de>
3731
3732         * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on
3733         $(EXPR_H).
3734
3735 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
3736
3737         * c-common.c (walk_stmt_tree): Remove.
3738         * c-common.h: Remove the corresponding prototype.
3739
3740         * emit-rtl.c (push_to_full_sequence): Remove.
3741         * rtl.h: Remove the corresponding prototype.
3742
3743         * cselib.c, expr.c: Fix comment typos.
3744
3745 2004-11-13  Richard Henderson  <rth@redhat.com>
3746
3747         * calls.c (precompute_register_parameters): Force all PARALLELs
3748         into pseudo registers.
3749         (load_register_parameters): Copy PARALLELs into hard registers.
3750         * function.c (assign_parm_setup_block): Copy PARALLELS into
3751         pseudo registers.  Do emit_group_store in conversion_insns.
3752         * expr.c (emit_group_load_1): Rename from emit_group_load, take
3753         tmps as an argument.  Move final copy loop ...
3754         (emit_group_load): ... here.  New function.
3755         (emit_group_load_into_temps, emit_group_move_into_temps): New.
3756         * expr.h: Declare them.
3757
3758 2004-11-14  Kazu Hirata  <kazu@cs.umass.edu>
3759
3760         * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c,
3761         tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN
3762         with PHI_CHAIN where appropriate.
3763
3764 2004-11-13  Dale Johannesen  <dalej@apple.com>
3765
3766         * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype.
3767         (tree_block_label): Ditto.
3768         (flush_pending_stmts): Ditto.
3769         (insert_edge_copies): Ditto.
3770         (expr_invariant_in_loop_p): Ditto.
3771         (TDF_USE_OPS): Parenthesize definition.
3772         (TDF_USE_VOPS): Ditto.
3773
3774 2004-11-13  David Edelsohn  <edelsohn@gnu.org>
3775
3776         * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5.
3777         * config/rs6000/aix52.h (ASM_CPU_SPEC): Same.
3778         (atoll): Declare.
3779         * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define.
3780
3781 2004-11-14  Joseph Myers  <joseph@codesourcery.com>
3782
3783         * config/i386/i386.c (override_options): Move loop to set default
3784         tuning to correct place.
3785
3786 2004-11-13  Zak Kipling  <zak@transversal.com>
3787
3788         PR target/18300
3789         * config/i386/i386.c (classify_argument): Fix infinite loop when
3790         passing object with 3 or more base classes by value.
3791
3792 2004-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3793
3794         * doc/md.texi (constraints) <% modifier>: Mention that it is
3795         useless when the two alternatives are strictly identical.
3796
3797 2004-11-13  Richard Henderson  <rth@redhat.com>
3798
3799         * expmed.c (extract_split_bit_field): Temporarily disable call to
3800         extract_force_align_mem_bit_field.
3801
3802 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3803
3804         * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment
3805         formatting.
3806
3807         * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c,
3808         lambda-code.c, postreload.c, predict.c, tree-sra.c,
3809         tree-ssa-loop-manip.c, tree.c: Fix comment typos.
3810
3811 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
3812
3813         * doc/install.texi (automake): Correctly document that everything now
3814         will use automake 1.9.3.
3815
3816 2004-11-13  Hans-Peter Nilsson  <hp@bitrange.com>
3817
3818         PR target/18347
3819         * config/mmix/mmix.c (mmix_function_outgoing_value): Handle
3820         TImode.  Sorry for other non-complex larger-than-64-bit modes.
3821         * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define.
3822
3823 2004-11-13  Kelley Cook  <kcook@gcc.gnu.org>
3824
3825         * doc/install.texi (automake): Document that everything now uses 1.9.
3826
3827 2004-11-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3828
3829         * cse.c (cse_insn): Stores in a libcall sequence can invalidate
3830         previous loads.
3831
3832 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3833
3834         * tree.h: Fix comment typos.
3835
3836 2004-11-13  Steven Bosscher  <stevenb@suse.de>
3837
3838         * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and
3839         HARD_REGISTER_NUM_P.
3840
3841         * cselib.c (new_cselib_val): Make comment correct and more detailed.
3842         * flow.c (mark_set_1): Likewise.
3843
3844         * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
3845         duplicate_eh_regions): Remove.
3846         * except.h (duplicate_eh_regions): Remove prototype.
3847         * integrate.c (get_label_from_map, copy_rtx_and_substitute,
3848         global_const_equiv_varray): Remove.
3849         * integrate.h (get_label_from_map, copy_rtx_and_substitute,
3850         global_const_equiv_varray, set_label_in_map): Remove prototypes,
3851         extern declaration, and #define.
3852         (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove.
3853         (struct inline_remap): Remove.
3854         * varray.c (struct element): Remove entry for const_equiv_data.
3855         * varray.h (struct const_equiv_data): Remove.
3856         (enum varray_data_enum) <VARRAY_DATA_CONST_EQUIV>: Remove.
3857         (union varray_data_tag) <const_equiv>: Remove.
3858         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV,
3859         VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove.
3860
3861         * regstack.c (record_label_references): Remove unused function.
3862
3863         * rtl.def (VALUE): Update comment.
3864         (LABEL_REF): Remove unused operand 2.
3865         * rtl.h (struct rtx_def): Update for removed accessor macros.
3866         (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN,
3867         REG_LOOP_TEST_P): Remove.
3868         (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments.
3869         * web.c (entry_register): Don't copy REG_LOOP_TEST_P.
3870         * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove.
3871
3872 2004-11-13  James A. Morrison  <phython@gcc.gnu.org>
3873             Eric Botcazou  <ebotcazou@libertysurf.fr>
3874
3875         PR target/18230
3876         * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector
3877         patterns.
3878         * config/sparc/sparc.md (V64I): New macro for 64-bit modes.
3879         (V32I): New macro for 32-bit modes.
3880         (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64,
3881         iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64,
3882         xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter,
3883         xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32,
3884         one_cmpldi_sp64): Use V64I instead of DI.
3885         (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si,
3886         xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI.
3887         (addv2si3, addv4hi3, addv2hi3): Remove % modifier.
3888         (nandv64i_vis, nandv32i_vis): New patterns.
3889
3890 2004-11-12  Mike Stump  <mrs@apple.com>
3891
3892         * Makefile.in: Add html support.
3893         * java/Make-lang.in: Likewise.
3894         * fortran/Make-lang.in: Likewise.
3895         * treelang/Make-lang.in: Likewise.
3896         * doc/install.texi: Likewise.
3897         * doc/makefile.texi: Likewise.
3898         * doc/sourcebuild.texi: Likewise.
3899
3900 2004-11-13  Kazu Hirata  <kazu@cs.umass.edu>
3901
3902         * tree-ssa-loop-manip.c: Fix a comment typo.
3903
3904 2004-11-12  Mike Stump  <mrs@apple.com>
3905
3906         * doc/cppinternals.texi (Index): Fix html generation with makeinfo by
3907         renaming this node to Concept Index.
3908         * doc/gccint.texi (Index): Likewise.  Also minor formatting tweaks
3909         to more closely match gcc.texi.
3910
3911 2004-11-12  Jeff Law  <law@redhat.com>
3912
3913         * tree-cfg.c (hashtab.h): Include.
3914         (struct edge_to_case_leader_elt): New structure.
3915         (edge_to_case_leader): New.
3916         (edge_to_case_leader_hash): New hashtable hasing function.
3917         (edge_to_case_leader_eq): New hashtable equality function.
3918         (record_switch_edge): New function.
3919         (get_case_leader_for_edge, get_case_leader_for_edge): New functions.
3920         (make_switch_expr_edges): Build the edge-to-case-leader
3921         hash table.  Tear down the hash table when we're done.
3922         (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of
3923         CASE_LABEL.
3924         (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes.
3925         (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update
3926         to use new concept of case leaders to reduce overhead of
3927         redirecting outgoing edges from switch statements.
3928         * tree.c (get_case_label): New function.
3929         * tree.h (CASE_LABEL): Define in terms of get_case_label.
3930         (CASE_LEADER_OR_LABEL): Define.
3931
3932 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
3933
3934         * varasm.c (output_addressed_constants): For CONST_DECLs,
3935         output the initializer if present.
3936
3937 2004-11-12  Ziemowit Laski  <zlaski@apple.com>
3938
3939         * config/rs6000/darwin.h: Fix confusing typo in comment.
3940
3941 2004-11-12  Devang Patel  <dpatel@apple.com>
3942
3943         * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P.
3944
3945 2004-11-12  Devang Patel  <dpatel@apple.com>
3946
3947         * tree-if-conv.c (clean_predicate_lists): Use loop header
3948         and latch directly.
3949
3950 2004-11-12  Richard Henderson  <rth@redhat.com>
3951
3952         PR 17778
3953         * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New.
3954         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
3955         (TARGET_96_ROUND_53_LONG_DOUBLE): New.
3956         * config/i386/i386-modes.def (XF): Use it.
3957
3958 2004-11-11  Geoffrey Keating  <geoffk@apple.com>
3959
3960         * Makefile.in (macro_list): Use move-if-change to avoid spurious
3961         rebuilds.
3962
3963 2004-11-12  Mark Mitchell  <mark@codesourcery.com>
3964
3965         PR c++/18416
3966         * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL
3967         when deciding whether to pass a variable to
3968         cgraph_varpool_finalize_decl or assemble_variable.
3969         * toplev.c (check_global_declarations): Do not clear DECL_RTL.
3970
3971 2004-11-12  Kazu Hirata  <kazu@cs.umass.edu>
3972
3973         * tree-vectorizer.c: Fix a comment typo.
3974
3975 2004-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
3976
3977         * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref.
3978
3979 2004-11-12  Diego Novillo  <dnovillo@redhat.com>
3980
3981         * tree-scalar-evolution.c (analyzable_condition): Remove
3982         superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs.
3983
3984 2004-11-12  Ralf Corsepius  <ralf.corsepius@rtems.org>
3985
3986         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3987         Remove m505/roe multilib variant.
3988
3989 2004-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3990
3991         * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
3992         to load from the stack.
3993
3994 2004-11-12  Richard Henderson  <rth@redhat.com>
3995
3996         * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI.
3997         (exact_log2): Rename from exact_log2_wide, use CTZ_HWI.
3998         * toplev.h (FL2T__): Remove.
3999         (CLZ_HWI): Rename from FL2T_CLZ__.
4000         (CTZ_HWI): New.
4001         (floor_log2): Simplify.
4002         (exact_log2): New.
4003
4004 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
4005
4006         * tree-data-ref.c (analyze_subscript_affine_affine): Correctly
4007         compute the first overlapping iterations.
4008
4009 2004-11-12  Sebastian Pop  <pop@cri.ensmp.fr>
4010
4011         PR middle-end/18005
4012         * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure
4013         that arguments of EXACT_DIV_EXPR are INTEGER_CST.
4014
4015 2004-11-12  Steven Bosscher  <stevenb@suse.de>
4016
4017         PR tree-optimization/18419
4018         * tree-ssa.c (walk_use_def_chains_1): Make the visited map a
4019         pointer set instead of a bitmap.
4020         (walk_use_def_chains): Create, pass and clean up that pointer_set.
4021
4022         * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited
4023         field an sbitmap.
4024         (init_alias_info): Allocate and zero it here.
4025         (delete_alias_info): Delete it here.
4026         (collect_points_to_info_for): Use it.
4027
4028 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
4029
4030         * alias.c (record_alias_subset, addr_side_effect_eval):
4031         Make them static.
4032         * alias.h: Remove the prototype for record_alias_subset.
4033         * expr.h: Remove the commented-out prototype for
4034         record_alias_subset.
4035         * rtl.h: Remove the prototype for addr_side_effect_eval.
4036
4037         * cfglayout.c (choose_inner_scope): Make it static.
4038         * rtl.h: Remove the corresponding prototype.
4039
4040         * cfgloopmanip.c (update_single_exits_after_duplication,
4041         unloop): Make them static.
4042         * cfgloop.h: Remove the corresponding prototypes.
4043
4044         * c-typeck.c (c_size_in_bytes, record_maybe_used_decl):
4045         Make them static.
4046         * c-tree.h: Remove the corresponding prototypes.
4047
4048         * explow.c (round_push): Make it static.
4049         * expr.h: Remove the corresponding prototype.
4050
4051         * varasm.c (get_named_section_flags, decl_tls_model): Make
4052         them static.
4053         * output.h: Remove the prototype for get_named_section_flags.
4054         * tree.h: Remove the prototype for decl_tls_model.
4055
4056 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
4057
4058         * function.c (expand_function_end): Remove an "if" statement
4059         that always triggers.
4060         * stmt.c (expand_null_return_1): Likewise.
4061
4062 2004-11-11  James E. Wilson  <wilson@specifixinc.com>
4063
4064         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode.
4065         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED,
4066         CLASS_MAX_NREGS): Likewise.
4067
4068 2004-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
4069
4070         PR tree-optimization/17742
4071         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle
4072         MINUS_EXPR correctly.
4073
4074 2004-11-11  Sebastian Pop  <pop@cri.ensmp.fr>
4075
4076         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4077         Give up as soon as the evolution is known not computable.
4078
4079 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
4080
4081         PR target/16457
4082         * config/rs6000/rs6000.c (mask64_2_operand): Stub to call
4083         mask64_1or2_operand.
4084         (mask64_1or2_operand): Broken out of mask64_2_operand, add flag
4085         to spot rlwinm opportunities.
4086         (and64_2_operand): Use mask_1or2_operand.
4087         * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible.
4088
4089 2004-11-11  Dorit Naishlos  <dorit@il.ibm.com>
4090
4091         * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis.
4092         (vect_update_ivs_after_vectorizer): Update function documentation.
4093         Avoid quadratic behavior and direct write to PHI_ARG_DEF.
4094
4095 2004-11-11  Kazu Hirata  <kazu@cs.umass.edu>
4096
4097         * config/arm/arm.c: Fix a comment typo.
4098
4099 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
4100
4101         * bitmap.h (nBITMAP_WORD_BITS): Remove.
4102         (BITMAP_WORD_BITS): Force unsigned by use of 1u.
4103         (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove
4104         unnecessary casts.
4105         (bitmap_first_set_bit): Return unsigned, use ctzl.
4106         (bitmap_last_set_bit): Remove.
4107         * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator
4108         unsigned.
4109         (bitmap_first_set_bit): Return unsigned, require non-empty bitmap,
4110         remove special case code for two word elements.
4111         (bitmap_last_set_bit): Remove.
4112         * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of
4113         bitmap_first_set_bit with bitmap_empty_p.
4114         * tree-outof-ssa.c (analyze_edges_for_bb): Likewise.
4115         * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than
4116         bitmap_last_bit_set.
4117
4118 2004-11-11  Nathan Sidwell  <nathan@codesourcery.com>
4119
4120         PR target/16796
4121         * config/rs6000/rs6000.md: Add DF & SF reg move peepholes.
4122
4123         PR target/16458
4124         * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an
4125         unsigned equality compare when we know the operands are unsigned.
4126
4127 2004-11-10  Peter S. Mazinger  <ps.m@gmx.net>
4128
4129         * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define
4130         __PIC__ and __pic__ only if TARGET_ABICALLS.
4131         (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__.
4132         (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass
4133         -KPIC only if not -mno-abicalls.
4134
4135         * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h
4136         * config/sparc/linux.h, config/sparc/linux64.h
4137         (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic.
4138
4139         * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__.
4140         * config/pa/pa/linux.h (CPP_SPEC): Likewise.
4141         * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise.
4142         * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise.
4143
4144 2004-11-11  Paul Brook  <paul@codesourcery.com>
4145
4146         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC
4147         register if current_function_uses_pic_offset_table is set.
4148
4149 2004-11-10  David Edelsohn  <edelsohn@gnu.org>
4150
4151         * config/rs6000/rs6000.md (define_attr "type"): Add two and three.
4152         Change multi-instruction sequences to new attribute.
4153         * config/rs6000/{40x.md,440.md,603.md,6xx.md,
4154         7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md,
4155         rios1.md,rios2.md,rs64.md}: Add descriptions for two and three.
4156
4157 2004-11-10  Daniel Berlin  <dberlin@dberlin.org>
4158
4159         * tree-data-ref.c (build_classic_dist_vector): If either loop
4160         is outside of the nest we asked about, the dependence can't
4161         matter.
4162         (build_classic_dir_vector): Ditto.
4163
4164 2004-11-10  Zdenek Dvorak  <dvorakz@suse.cz>
4165
4166         * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in
4167         right order.
4168         (force_var_cost): Determine cost of addition and multiplication more
4169         precisely.
4170         (get_computation_cost_at): Add cost for computing address elements to
4171         the final cost.
4172
4173         * fold-const.c (fold): Attempt to use ptr_difference_const whenever
4174         one of the arguments of MINUS_EXPR is an address.
4175         (split_address_to_core_and_offset): New function.
4176         (ptr_difference_const): Handle case when one of the operands is a
4177         pointer.
4178         * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr.
4179         (ptr_difference_cost): Pass addresses instead of objects to
4180         ptr_difference_const.
4181
4182 2004-11-10  Nathan Sidwell  <nathan@codesourcery.com>
4183
4184         * tree.c (tree_check_failed): Emit general error if the list of
4185         node types is empty.
4186
4187 2004-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4188
4189         * config/sparc/sparc.c (function_arg_union_value): New 'slotno'
4190         argument.  When the union is passed in the 6th slot, build a
4191         PARALLEL with only one element.
4192         (function_arg): Adjust call to function_arg_union_value.
4193         (function_value): Likewise.
4194
4195 2004-11-10  Fariborz Jahanian <fjahanian@apple.com>
4196
4197         PR tree-optimization/17892
4198         * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for
4199         MINUS_EXPR operator.
4200
4201 2004-11-10  James A. Morrison  <phython@gcc.gnu.org>
4202
4203         PR target/18230
4204         config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute.
4205         (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns.
4206
4207 2004-11-10  Steven Bosscher  <stevenb@suse.de>
4208
4209         * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New.
4210         (struct basic_block_def): Remove local_set and cond_local_set
4211         fields.  Update comment for global_live_at_start.
4212         * flow.c (calculate_global_regs_live): Allocate local_sets and
4213         cond_local_sets here as arrays of bitmaps previously stored in
4214         bb->local_set and bb->cond_local_set.  Use xmalloc instead of
4215         obstack allocated bitmaps.
4216
4217 2004-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4218
4219         PR target/18380
4220         * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it
4221         hidden.
4222
4223         * unwind-dw2.c (_Unwind_FindTableEntry): Removed.
4224
4225 2004-11-09  Jeff Law  <law@redhat.com>
4226
4227         * cfganal.c (flow_dfs_compute_reverse_execute): Accept new
4228         argument holding last unvisited block.  Start search for
4229         unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK.
4230         (connect_infinite_loops_to_exit): Supply last unvisited block
4231         to flow_dfs_compute_reverse_execute.
4232
4233 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
4234
4235         * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500
4236         doubles.
4237         (floatunssidf2): Same.
4238         (floatsidf2): Same.
4239         ("extendsfdf2"): New expander.
4240         (*extendsfdf2_fpr): Rename.
4241         (*truncdfsf2_fpr): Same.
4242         (*negdf2_fpr): Same.
4243         (*absdf2_fpr): Same.
4244         (*nabsdf2_fpr): Same.
4245         (*adddf3_fpr): Same.
4246         (*subdf3_fpr): Same.
4247         (*muldf3_fpr): Same.
4248         (*divdf3_fpr): Same.
4249
4250         * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment.
4251         ("spe_fix_truncdfsi2"): Same.
4252         (spe_floatunssidf2): Same.
4253         (spe_floatsidf2): Same.
4254
4255 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
4256
4257         PR c/18322
4258         * c-common.c (fname_decl): Don't use line number of decl in
4259         diagnostic.
4260
4261 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
4262
4263         * config/s390/s390-protos.h (s390_pool_operand): Remove.
4264         * config/s390/s390.c (s390_pool_operand): Likewise.
4265         (s390_extra_constraint_str): Handle 'B' constraints.
4266         * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints.
4267         * config/s390/s390.md: Document 'B' constraints.
4268         ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of
4269         s390_pool_operand to prevent insns with two literal pool
4270         references.  Make pattern commutative.
4271         ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use
4272         'B' constraint instead of s390_pool_operand.
4273
4274 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4275
4276         * tree-cfg.c (create_bb): Remove unnecessary memset.
4277
4278 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4279
4280         * tree-ssa-threadupdate.c (copy_phis_to_block): Remove.
4281         (thread_block): Call flush_pending_stmt instead of
4282         copy_phis_to_block.
4283
4284 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4285
4286         * loop-iv.c (iv_number_of_iterations): Make it static.
4287         * cfgloop.h: Remove the corresponding prototype.
4288
4289 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4290
4291         * function.c (combine_temp_slots, assign_parms,
4292         expand_pending_sizes): Make them static.
4293         * tree.h: Remove the corresponding prototypes.
4294
4295 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4296
4297         * emit-rtl.c (copy_most_rtx): Remove.
4298         * rtl.h: Remove the corresponding prototype.
4299
4300 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4301
4302         * cfgloop.c (flow_loops_update): Remove.
4303         * cfgloop.h: Remove the corresponding prototype.
4304
4305 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4306
4307         * conflict.c (mark_reg, conflict_graph_compute): Remove.
4308         * basic-block.h: Remove the prototype for
4309         conflict_graph_compute.
4310
4311 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4312
4313         * tree-if-conv.c (add_to_dst_predicate_list): Change the
4314         second argument to basic_block.
4315         (tree_if_convert_cond_expr): Update call sites.
4316
4317 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4318
4319         * fold-const.c (pedantic_non_lvalue): Make it static.
4320         * tree.h: Remove the corresponding prototype.
4321
4322 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4323
4324         * optabs.c (prepare_operand): Make it static.
4325         * optabs.h: Remove the corresponding prototype.
4326
4327 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4328
4329         * reload1.c (reloads_conflict, gen_reload): Make them static.
4330         * reload.h: Remove the corresponding prototypes.
4331
4332 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4333
4334         * reload.c (refers_to_mem_for_reload_p,
4335         refers_to_regno_for_reload_p): Make them static.
4336         * reload.h: Remove the corresponding prototypes.
4337
4338 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
4339             Eric Botcazou  <ebotcazou@libertysurf.fr>
4340
4341         PR target/18230
4342         * doc/md.texi (SPARC constraints): Document 'Y' constraint.
4343         * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes.
4344         * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function.
4345         (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p.
4346         (fp_zero_operand): Accept MODE_VECTOR_INT modes.
4347         (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes.
4348         (sparc_cannot_force_const_mem): Return false for CONST_VECTOR.
4349         (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for
4350         MODE_VECTOR_INT modes.
4351         (sparc_extra_constraint_check): Add new constraint 'Y'.
4352         * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS.
4353         * config/sparc/sparc.md (V32): New mode macro for 32-bit modes.
4354         (V64): New mode macro for 64-bit modes.
4355         (movsf): Use V32 for mode instead of SF.
4356         (movsf_insn_vis): Use V32 for mode instead of SF.  Add 'Y' constraint
4357         alongside 'G' constraint.
4358         (movdf): Use V64 for mode instead of DF.
4359         (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead
4360         of DF.  Add 'Y' constraint alongside 'G' constraint.
4361         (multi-isn and misaligned mems DFmode splitters): Use V64 for mode
4362         instead of DF.
4363
4364 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
4365
4366         * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for
4367         integer NEG and ABS.
4368         * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute.
4369         ("*negdi2_31"): Reimplement using a splitter.
4370         ("*negdi2_cc", "*negdi2_cconly"): New insns.
4371         ("*negdi2_sign", "*negdi2_sign_cc"): Likewise.
4372         ("*negsi2_cc", "*negsi2_cconly"): Likewise.
4373         ("*negdf2_cc", "*negdf2_cconly"): Likewise.
4374         ("*negsf2_cc", "*negsf2_cconly"): Likewise.
4375         ("*absdi2_cc", "*absdi2_cconly"): New insns.
4376         ("*absdi2_sign", "*absdi2_sign_cc"): Likewise.
4377         ("*abssi2_cc", "*abssi2_cconly"): Likewise.
4378         ("*absdf2_cc", "*absdf2_cconly"): Likewise.
4379         ("*abssf2_cc", "*abssf2_cconly"): Likewise.
4380         ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns.
4381         ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise.
4382         ("*negabssi2_cc", "*negabssi2_cconly"): Likewise.
4383         ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise.
4384         ("*negabssf2_cc", "*negabssf2_cconly"): Likewise.
4385
4386 2004-11-09  Ulrich Weigand  <uweigand@de.ibm.com>
4387
4388         * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition
4389         when eliminating an UNSPEC_CMPINT.
4390         (s390_secondary_input_reload_class): Fix test for CC register reload.
4391         (s390_secondary_output_reload_class): Likewise.
4392         (s390_expand_cmpmem): Swap operands.  Use gen_cmpint.
4393         * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove.
4394         ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New
4395         insn patterns with splitters.
4396
4397 2004-11-09  David Edelsohn  <edelsohn@gnu.org>
4398
4399         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU.
4400         * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns.
4401
4402 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4403
4404         * tree-phinodes.c (phi_reverse): New.
4405         * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb):
4406         Use it.
4407         * tree-flow.h: Add a prototype for phi_reverse.
4408
4409 2004-11-09  Kazu Hirata  <kazu@cs.umass.edu>
4410
4411         * tree-ssa-loop-ivopts.c: Fix a comment typo.
4412
4413 2004-11-09  James A. Morrison  <phython@gcc.gnu.org>
4414
4415         PR pch/14940
4416         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__
4417         definitions.
4418
4419 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
4420
4421         * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument"
4422         instead of "arg" in diagnostics.
4423
4424 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
4425
4426         * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
4427         c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
4428         gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
4429         tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
4430         config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
4431         config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
4432         config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
4433         config/iq2000/iq2000.c, config/m32r/m32r.c,
4434         config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
4435         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
4436         config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
4437         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
4438         config/sh/symbian.c, config/stormy16/stormy16.c,
4439         config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
4440         and %> as appropriate.  Use %' as apostrophe in diagnostics where
4441         applicable.  Use %< and %> in place of '' quotes where applicable.
4442         Use %qs in place of %<%s%>.  Consistently quote __builtin function
4443         names.
4444
4445 2004-11-09  Hans-Peter Nilsson  <hp@bitrange.com>
4446
4447         * gdbinit.in (pbb, pbm): New macros.
4448
4449 2004-11-08 Jeff Law  <law@redhat.com>
4450
4451         * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than
4452         implementing it inline.
4453
4454         * cfganal.c (find_edge): Search pred->succs or succ->preds,
4455         whichever is shorter.
4456
4457 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4458
4459         * passes.c (rest_of_handle_jump): Remove dead code.
4460
4461 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4462
4463         * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to
4464         the last used element in the worklist.
4465
4466 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4467
4468         * tree-inline.c (remap_save_expr): Make it static.
4469         * tree-inline.h: Remove the corresponding prototype.
4470
4471 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4472
4473         * tree-ssa-loop-niter.c (upper_bound_in_type,
4474         lower_bound_in_type): Make them static.
4475         * tree.h: Remove the corresponding prototypes.
4476
4477 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4478
4479         * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them
4480         static.
4481         * tree-ssa-live.h: Remove the corresponding prototypes.
4482
4483 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4484
4485         * tree-if-conv.c (tree_if_conversion): Make it static.
4486         * tree-flow.h: Remove the corresponding prototype.
4487
4488 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4489
4490         * tree-ssa-operands.c (build_ssa_operands): Make it static.
4491         * tree-flow.h: Remove the corresponding prototype.
4492
4493 2004-11-08  Andrew Pinski  <pinskia@physics.uc.edu>
4494
4495         PR tree-opt/18299
4496         * tree-inline.c (copy_body_r): Change "t = t" to empty
4497         statement instead of "t".
4498
4499 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4500
4501         * modulo-sched.c (create_partial_schedule,
4502         free_partial_schedule, reset_partial_schedule,
4503         ps_add_node_check_conflicts, rotate_partial_schedule): Make
4504         them static.
4505
4506 2004-11-08  Richard Henderson  <rth@redhat.com>
4507
4508         * expmed.c (extract_force_align_mem_bit_field): Correct handling at
4509         the end of a page.
4510
4511 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4512
4513         * sched-deps.c (add_insn_mem_dependence): Make it static.
4514         * sched-int.h: Remove the corresponding prototypes.
4515
4516 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4517
4518         * flow.c (allocate_bb_life_data): Make it static.
4519         * basic-block.h: Remove the corresponding prototype.
4520
4521 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4522
4523         * calls.c (split_complex_values, split_complex_types): Make
4524         them static.
4525         * expr.h: Remove the corresponding prototypes.
4526
4527 2004-11-08  Richard Earnshaw  <rearnsha@arm.com>
4528
4529         * arm.c (arm_handle_notshared_attribute): Wrap declaration and use
4530         with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES.
4531
4532 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4533
4534         * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if"
4535         statements that always trigger.
4536
4537 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
4538
4539         * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
4540         tree-scalar-evolution.c, tree-ssa-loop-im.c,
4541         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
4542         tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
4543         appropriate.
4544
4545 2004-11-08  Ben Elliston  <bje@au.ibm.com>
4546
4547         * cgraph.h (cgraph_calls_p): Remove.
4548         * cgraph.c (cgraph_calls_p): Likewise.
4549
4550         * varray.h (varray_copy): Remove.
4551         * varray.c (varray_copy): Likewise.
4552
4553 2004-11-07  Andrew Pinski  <pinskia@physics.uc.edu>
4554
4555         PR target/18269
4556         * config/darwin.c (machopic_indirect_data_reference):
4557         Call gen_macho_high and gen_macho_low instead of
4558         checking the mode and calling gen_macho_high_di directly.
4559         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
4560         * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns
4561         to darwin.md.
4562         (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic,
4563         load_macho_picbase, macho_low, macho_high): Removed.
4564         (builtin_setjmp_receiver): Call gen_macho_high and
4565         gen_macho_low instead of checking the mode and calling
4566         gen_macho_high_di directly.
4567         * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant.
4568         (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st):
4569         Moved from rs6000.md.
4570         (macho_high): New expander.
4571         (macho_high_si): Renamed version of macho_high from rs6000.md.
4572         (macho_low): New expander.
4573         (macho_low_si): Renamed version of macho_low from rs6000.md.
4574         (load_macho_picbase): New expander.
4575         (load_macho_picbase_si): Renamed version of load_macho_picbase
4576         from rs6000.md.
4577         (macho_correct_pic): New expander.
4578         (macho_correct_pic_si): Renamed version of macho_correct_pic
4579         from rs6000.md.
4580
4581 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
4582
4583         * c-decl.c (finish_struct): Use complete sentences for diagnostic
4584         for structures or unions with no members or named members.
4585
4586 2004-11-07  Joseph S. Myers  <joseph@codesourcery.com>
4587
4588         * c-typeck.c (build_unary_op): Replace unreachable diagnostic for
4589         taking address of bit-field by assertion.
4590
4591 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
4592
4593         * config/s390/s390.md (attribute "op_type"): Default to "NN".
4594         (attribute "atype"): Default to "agen".
4595         (attribute "length"): Default to 6.
4596         (define_asm_attibutes): Remove.
4597         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
4598         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf",
4599         "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"):
4600         Do not set type attribute to "cs" where already default.
4601         ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm",
4602         "*negdi2_31"):
4603         Do not set type attribute to "other" where already default.
4604         ("movti", "*movdi_64", "*movdi_31", "*movdf_31",
4605         "*strlendi", "*strlensi",
4606         "*movmem_long_64", "*movmem_long_31",
4607         "*clrmem_long_64", "*clrmem_long_31",
4608         "*cmpmem_long_64", "*cmpmem_long_31",
4609         "*cmpint_si", "*cmpint_di",
4610         "addti3", "*adddi3_31z", "*adddi3_31",
4611         "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31",
4612         "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg",
4613         "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm",
4614         "*pool_entry", "pool_align", "pool_section_start",
4615         "pool_section_end", "main_pool", "reload_base_31", "pool"):
4616         Do not set op_type attribute to "NN" where already default.
4617         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
4618         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
4619         "fix_truncdfsi2_ibm", "floatsidf2_ibm"):
4620         Do not set atype attribute to "agen" where already default.
4621         ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type.
4622
4623 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
4624
4625         * config/mips/t-iris6 (tp-bit.c): Fix target filename.
4626
4627 2004-11-06  Richard Sandiford  <rsandifo@redhat.com>
4628
4629         PR target/16830
4630         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the
4631         R3000 and R4000 macros on IRIX.
4632
4633 2004-11-06  Andreas Schwab  <schwab@suse.de>
4634
4635         PR target/16286
4636         * config/rs6000/altivec.h: Replace bool by __bool and pixel by
4637         __pixel.
4638
4639 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4640
4641         * tree-ssa-copyrename.c (rename_ssa_copies): Make it static.
4642
4643 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
4644
4645         * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
4646         matches no insns already matched by other reservations.
4647         * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition
4648         matches no insns already matched by other reservations.
4649         ("x_ss"): Remove, replace by ...
4650         ("x_cs"): ... this new reservation.  Check type instead of op_type.
4651         Update bypasses to use x_cs instead of x_ss.
4652         ("x_nn"): Remove, replace by ...
4653         ("x_other"): ... this new reservation.  Check type instead of op_type.
4654         Add x_other and x_branch to bypasses.
4655         ("x_vs"): New reservation.
4656         * config/s390/s390.md (attribute "type"): Default according to op_type.
4657         ("*execute"): Set type to "cs".
4658
4659 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4660
4661         * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR
4662         if we are in GIMPLE.
4663
4664 2004-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
4665
4666         PR rtl-optimization/17933
4667         * rtlanal.c (dead_or_set_regno_p): Break out common code to...
4668         (covers_regno_p): New function.  Handle SETs of PARALLEL,
4669         and defer the rest to...
4670         (covers_regno_no_parallel_p): New function.
4671
4672 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4673
4674         * config/sparc/sparc.c (function_arg_record_value_1): Skip
4675         fields with zero length.
4676         (function_arg_record_value_2): Likewise.
4677         (function_arg_record_value_3): Use smallest_mode_for_size
4678         instead of mode_for_size.
4679         (function_arg_union_value): Return naked register for unions
4680         with zero length.
4681
4682 2004-11-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4683
4684         * config/sparc/sparc.c (scan_record_type): Handle vector types.
4685         (function_arg_slotno): Handle vector types specially.
4686         (function_arg_record_value_1): Split fields with vector type and
4687         BLKmode into their subparts.
4688         (function_arg_record_value_2): Likewise.  Be prepared to handle
4689         more than 2 registers per field.
4690         (function_arg_union_value): Increment regno inside the loop.
4691         (function_arg_vector_value): New function.
4692         (function_arg): Use it to split fields with vector type and
4693         BLKmode into their subparts and build a PARALLEL.  Treat
4694         other vector types like floats.
4695         (function_value): Likewise.
4696         (sparc_pass_by_reference): Handle vector types.
4697         (sparc_return_in_memory): Likewise.
4698
4699 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4700
4701         * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if"
4702         statement that never triggers.
4703
4704 2004-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
4705
4706         * config/s390/2064.md ("z_o2", "z_o3"): Remove.
4707         * config/s390/2084.md ("x_o2", "x_o3"): Remove.
4708         ("x_fdivd"): Use also for fsqrtd type.
4709         ("x_fdivs"): Use also for fsqrts type.
4710         * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types.
4711         ("fix_truncdfsi2_ieee"): Set type to "ftoi".
4712         ("fix_truncdfsi2_ibm"): Set type to "other".
4713         ("floatdidf2", "floatdisf2"): Do not clobber CC.
4714         ("floatsidf2", "floatsidf2_ieee"): Likewise.
4715         ("floatsisf2", "floatsisf2_ieee"): Likewise.
4716         ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand".
4717         ("truncdfsf2_ibm"): Only allow "nonimmediate_operand".  Use LER
4718         instead of LRER.
4719         ("extendsfdf2_ibm"): Do not set atype.  Set type to "floads".
4720         ("sqrtdf2"): Set type to "fsqrtd".
4721         ("sqrtsf2"): Set type to "fsqrts".
4722
4723 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4724
4725         * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a
4726         pointer to the last PHI node in the new PHI chain.
4727
4728 2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
4729
4730         * config/sh/sh.c (prepare_move_operands): Emit a use of r12
4731         for non-PIC TLS_MODEL_INITIAL_EXEC case.
4732
4733 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4734
4735         * expmed.c: Fix a comment typo.
4736
4737 2004-11-06  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4738
4739         PR target/18106
4740         * config/i386/cygming.h
4741         [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined.
4742
4743 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4744
4745         * config/sh/sh4a.md: Fix copyright.
4746
4747 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
4748
4749         * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC
4750         with GCC.
4751
4752 2004-11-05  David Edelsohn  <edelsohn@gnu.org>
4753
4754         * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf
4755         when carry not used.  Suggested by Torbjorn Granlund.
4756
4757         * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg
4758         operand[1] unnecessarily.  Suggested by Eric Christopher.
4759         (rs6000_adjust_cost): Increase latency of store to wider load.
4760         (rs6000_rtx_costs): mulli only allows 16-bit constants.
4761
4762 2004-11-05  Stan Shebs  <shebs@apple.com>
4763
4764         * config/rs6000/rs6000.c (machopic_output_stub): Output
4765         ldu instead of lwzu for 64-bit stubs.
4766
4767 2004-11-05  Richard Henderson  <rth@redhat.com>
4768
4769         * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case
4770         size 2 with BWX.
4771         (alpha_expand_unaligned_store): Likewise.
4772
4773 2004-11-05  Richard Henderson  <rth@redhat.com>
4774
4775         * expmed.c (extract_force_align_mem_bit_field): New.
4776         (extract_split_bit_field): Call it.
4777
4778 2004-11-05  Richard Henderson  <rth@redhat.com>
4779
4780         * ia64.md (UNSPEC_SHRP): New.
4781         (dshift_count_operand): New.
4782         (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New.
4783         * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP.
4784
4785 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4786
4787         * c-typeck.c (output_init_element): Return early if value is
4788         error_mark_node.
4789
4790 2004-11-05  James E Wilson  <wilson@specifixinc.com>
4791
4792         * invoke.texi (-fno-guess-branch-probability): Rewrite.
4793
4794         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change
4795         1 to UNSPEC_GR_SPILL.
4796
4797 2004-11-05  Andreas Krebbel  <krebbel1@de.ibm.com>
4798
4799         * config/s390/s390.c (s390_fixed_condition_code_regs): New function.
4800         (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined.
4801
4802 2004-11-05  Nathan Sidwell  <nathan@codesourcery.com>
4803
4804         * bitmap.h (enum bitmap_bits): Remove.
4805         (bitmap_operation): Remove.
4806         (bitmap_and, bitmap_and_into, bitmap_and_compl,
4807         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
4808         bitmap_xor_into): Prototype.
4809         * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New.
4810         (bitmap_operation): Remove.
4811         (bitmap_and, bitmap_and_into, bitmap_and_compl,
4812         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
4813         bitmap_xor_into): New.
4814         (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust.
4815
4816         PR tree-optimization/18307
4817         * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST
4818         and ORIG being the same node.
4819
4820 2004-11-04  Geoffrey Keating  <geoffk@apple.com>
4821
4822         * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory.
4823         (install-mkheaders): Install the version built for the
4824         host, not for the build machine.
4825         * configure.ac: Always run fixincludes.
4826         (all_outputs): Remove mkheaders.
4827         * configure: Regenerate.
4828         * fixinc.in: Move to fixincludes/.
4829         * mkfixinc.sh: Likewise.
4830         * mkheaders.in: Likewise.
4831         * README-fixinc: Likewise.
4832
4833 2004-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
4834
4835         PR target/18263
4836         * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the
4837         equivalent on the A4.
4838
4839 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4840
4841         * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi,
4842         doc/cppopts.texi, doc/extend.texi, doc/fragments.texi,
4843         doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi,
4844         doc/implement-c.texi, doc/install.texi, doc/invoke.texi,
4845         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
4846         doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi,
4847         doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi,
4848         doc/trouble.texi: Correct end-of-sentence markup and markup of
4849         "etc.", "e.g." and "i.e.".  Use @code in various places where
4850         appropriate.
4851
4852 2004-11-05  Joseph S. Myers  <joseph@codesourcery.com>
4853
4854         * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi,
4855         doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi,
4856         doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing
4857         whitespace.
4858
4859 2004-11-04  Mark Mitchell  <mark@codesourcery.com>
4860
4861         * config/arm/arm.c (arm_handle_notshared_attribute): New function.
4862         * doc/extend.texi: Document "notshared" attribute.
4863
4864 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4865
4866         * tree-phinodes.c (make_phi_node): Make it static.
4867         * tree.h: Remove the prototypes for make_phi_node.
4868
4869 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4870
4871         * stmt.c (expand_asm, expand_asm_operands): Make them static.
4872         * tree.h: Remove the prototypes for expand_asm and
4873         expand_asm_operands.
4874
4875 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4876
4877         * passes.c (rest_of_compilation): Make it static.
4878         * toplev.h: Remove the prototype for rest_of_compilation.
4879
4880 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4881
4882         * jump.c (cleanup_barriers): Use delete_insn instead of
4883         delete_barrier.
4884         (delete_barrier): Remove.
4885         * rtl.h: Remove the corresponding prototype.
4886
4887 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4888
4889         * expr.c (mostly_zero_p): Make it static.
4890         * tree.h: Remove the prototype for mostly_zeros_p.
4891
4892 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4893
4894         * cfgrtl.c (force_nonfallthru_and_redirect): Make it static.
4895
4896 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4897
4898         * builtins.c (expand_builtin_return_addr,
4899         expand_builtin_longjmp, expand_builtin_trap): Make them static.
4900         * expr.h: Remove the prototypes for expand_builtin_longjmp and
4901         expand_builtin_trap.
4902         * tree.h: Remove the prototype for expand_builtin_return_addr.
4903
4904 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4905
4906         * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
4907         * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
4908         with VAL being NULL.
4909
4910 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4911
4912         * cfghooks.c (delete_basic_block): Remove code to truncate
4913         edge vectors.
4914
4915 2004-11-04  Andrew Pinski  <pinskia@physics.uc.edu>
4916
4917         * flow.c (init_propagate_block_info): Change the type of i to
4918         unsigned.
4919
4920 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
4921
4922         PR tree-optimization/18184
4923         * c-typeck.c (comptypes): Do not treat pointers of different
4924         modes or alias-all flags as equivalent.
4925         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise.
4926
4927 2004-11-04  Joseph S. Myers  <joseph@codesourcery.com>
4928
4929         * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't
4930         reference specific C parser files in examples.
4931
4932 2004-11-04  Richard Sandiford  <rsandifo@redhat.com>
4933
4934         PR target/15342
4935         * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs
4936         as OP_INOUT if the instruction is predicated.
4937
4938 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4939
4940         * bitmap.h: Fix a comment typo.  Follow spelling conventions.
4941         * tree-vectorizer.c: Fix a comment typo.
4942
4943 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
4944
4945         * sdbout.c (SDB_GENERATE_FAKE): Remove.
4946         (gen_fake_label): Don't use SDB_GENERATE_FAKE.
4947         * system.h: Poison SDB_GENERATE_FAKE.
4948         * doc/tm.texi (SDB_GENERATE_FAKE): Remove.
4949
4950 2004-11-04  Ulrich Weigand  <uweigand@de.ibm.com>
4951
4952         * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL.
4953
4954 2004-11-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4955
4956         PR other/18277
4957         * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert
4958         2004-10-29 patch
4959
4960 2004-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4961
4962         * predict.c (propagate_freq): Make bitno unsigned. Move
4963         npredecessors update out of loop.
4964
4965         * bitmap.h (bitmap_iterator): Remove word_bit and bit
4966         fields. Rename others.
4967         (bmp_iter_common_next_1, bmp_iter_single_next_1,
4968         bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next,
4969         bmp_iter_and_not_next_1, bmp_iter_and_not_init,
4970         bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init,
4971         bmp_iter_and_next): Remove.
4972         (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init,
4973         bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl):
4974         New.
4975         (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP,
4976         EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust.
4977
4978         * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove.
4979         * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior,
4980         bitmap_and_into, bitmap_ior_into as appropriate.
4981         * except.c (remove_eh_handler): Likewise.
4982         * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise.
4983         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
4984         * tree-ssa-alias.c (merge_pointed_to_info): Likewise.
4985         * tree-ssa-live.h (live_merge_and_clear): Likewise.
4986         * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for):
4987         Likewise.
4988
4989         * bitmap.c (bitmap_print): Make bitno unsigned.
4990         * bt-load.c (clear_btr_from_live_range,
4991         btr_def_live_range): Likewise.
4992         * caller-save.c (save_call_clobbered_regs): Likewise.
4993         * cfganal.c (compute_dominance_frontiers_1): Likewise.
4994         * cfgcleanup.c (thread_jump): Likewise.
4995         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
4996         * conflict.c (conflict_graph_compute): Likewise.
4997         * ddg.c (add_deps_for_use): Likewise.
4998         * df.c (df_refs_update): Likewise.
4999         * except.c (remove_eh_handler): Likewise.
5000         * flow.c (verify_local_live_at_start, update_life_info,
5001         initialize_uninitialized_subregs, propagate_one_insn,
5002         free_propagate_block_info, propagate_block, find_use_as_address,
5003         reg_set_to_hard_reg_set): Likewise.
5004         * gcse.c (clear_modify_mem_tables): Likewise.
5005         * global.c (global_conflicts, build_insn_chain): Likewise.
5006         * ifcvt.c (dead_or_predicable): Likewise.
5007         * local-alloc.c (update_equiv_regs): Likewise.
5008         * loop.c (load_mems): Likewise.
5009         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs):
5010         Likewise.
5011         * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill):
5012         Likewise.
5013         * reload1.c (order_regs_for_reload, finish_spills): Likewise.
5014         * sched-deps.c (sched_analyze_insn, free_deps): Likewise.
5015         * sched-rgn.c (propagate_deps
5016         * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise.
5017         * tree-dfa.c (dump_dfa_stats
5018         tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
5019         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags):
5020         Likewise.
5021         * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars,
5022         free_temp_expr_table, find_replaceable_exprs): Likewise.
5023         * tree-sra.c (scan_function, scalarize_parms): Likewise.
5024         * tree-ssa-alias.c (init_alias_info,
5025         compute_points_to_and_addr_escape,
5026         compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise.
5027         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise.
5028         * tree-ssa-live.c (new_tree_live_info, live_worklist,
5029         calculate_live_on_entry, calculate_live_on_exit, compare_pairs,
5030         sort_coalesce_list, build_tree_conflict_graph, dump_live_info
5031         tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
5032         tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
5033         add_call_read_ops): Likewise.
5034         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise.
5035         * tree-ssa-live.h (num_var_partitions): Return unsigned.
5036
5037 2004-11-03  Dorit Naishlos  <dorit@il.ibm.com>
5038
5039         PR tree-optimization/18009
5040         * tree-vectorizer.h (enum dr_alignment_support): New type.
5041         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed.
5042         (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a
5043         single data_reference (instead of a varray of references).
5044         * tree-vectorizer.c (new_loop_vec_info): Likewise.
5045         (vect_gen_niters_for_prolog_loop): Likewise.
5046         (vect_update_inits_of_drs): Likewise.
5047
5048         (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to
5049         vect_enhance_data_refs_alignment.
5050         (vect_do_peeling_for_alignment): Likewise.
5051         (vect_enhance_data_refs_alignment): Decide if and by how much to peel;
5052         this functionality used to be in vect_analyze_data_refs_alignment.
5053         Also update DR_MISALIGNMENT due to peeling; this functionality used to
5054         be in vect_update_inits_of_drs and vect_do_peeling_for_alignment).
5055         (vect_analyze_data_refs_alignment): Decision on whether and by how much
5056         to peel moved to vect_enhance_data_refs_alignment. Call
5057         vect_supportable_dr_alignment.
5058
5059         (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE.
5060         (vect_compute_data_refs_alignment): Return bool. Consider return value
5061         of vect_compute_data_ref_alignment and return true/false accordingly.
5062         (vect_enhance_data_refs_alignment): Consider return value of
5063         vect_compute_data_refs_alignment and return true/false accordingly.
5064
5065         (vect_supportable_dr_alignment): New function.
5066         (vectorizable_store): Call vect_supportable_dr_alignment.
5067         (vectorizable_load): Call vect_supportable_dr_alignment. Alignment
5068         support checks moved from here to vect_supportable_dr_alignment.
5069
5070         (vect_transform_loop): Avoid 80 columns overflow.
5071
5072 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
5073
5074         * timevar.c (timevar_enable): Change from
5075         static.
5076         (timevar_push): Rename to ...
5077         (timevar_push_1): this and remove the
5078         enabled check.
5079         (timevar_pop): Rename to ...
5080         (timevar_pop_1): this and remove the
5081         enabled check.
5082         * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops.
5083         (timevar_pop): New macro.
5084         (timevar_push): New macro.
5085         (timevar_enable): Declare.
5086
5087 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
5088
5089         * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared
5090         libgcc for shared libraries.
5091
5092 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
5093
5094         * config/s390/s390-protos.h (s390_split_access_reg): Add prototype.
5095         * config/s390/s390.c (s390_split_access_reg): New function.
5096         (regclass_map): Add access registers.
5097         (get_thread_pointer): Use access register instead of UNSPEC_TP.
5098         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38.
5099         (ACCESS_REGNO_P, ACCESS_REG_P): New macros.
5100         (TP_REGNUM): New define.
5101         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
5102         REG_ALLOC_ORDER): Add access registers.
5103         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
5104         CANNOT_CHANGE_MODE_CLASS): Support access registers.
5105         (enum reg_class): Add ACCESS_REGS.
5106         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
5107         (REG_CLASS_FROM_LETTER): Add 't' constraint.
5108         (REGISTER_NAMES): Add access registers.
5109         * config/s390/s390.md (UNSPEC_TP): Remove.
5110         ("*movdi_64"): Add access register alternatives.  Provide splitters
5111         to split DImode access register <-> GPR moves into SImode moves.
5112         ("*movsi_zarch", "*movsi_esa"): Add access register alternatives.
5113         ("movstrictsi"): Likewise.
5114         ("get_tp_64", "get_tp_31"): Reimplement using access registers.
5115         ("set_tp_64", "set_tp_31"): Likewise.
5116         ("*set_tp"): New insn.
5117
5118 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
5119
5120         * tree-phinodes.c (resize_phi_node): Copy only a portion of
5121         the PHI node currently in use.
5122
5123 2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
5124
5125         PR tree-opt/18231
5126         * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
5127         also.
5128
5129 2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
5130
5131         PR tree-optimization/18270
5132         * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
5133         abnormal edges, commit all pending stmts on incoming edges.
5134
5135 2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
5136
5137         * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
5138         cause extra costs.  Generate canonical RTL.
5139
5140 2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
5141
5142         * lambda-code.c (lambda_compute_auxillary_space): Update comments.
5143         (lambda_compute_target_space). Ditto.
5144         * lambda.h (lambda_trans_matrix): Ditto.
5145         (lambda_linear_expression): Ditto.
5146         (lambda_body_vector): Ditto.
5147         (lambda_loopnest): Ditto.
5148         * tree-loop-linear.c (gather_interchange_stats): Combine tests,
5149         update comments, and remove pointless addition of 0.
5150         (linear_transform_loops): Update comments.
5151
5152 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
5153
5154         * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of
5155         CEIL_MOD_EXPR.
5156
5157 2004-11-03 Jeff Law  <law@redhat.com>
5158
5159         * predict.c (struct block_info_def): Kill "tovisit" field.
5160         (propagate_freq): Accept new "tovisit" parameter.  Change
5161         read/write access methods for "tovisit" to check the "tovisit"
5162         bitmap instead of a bit in block_info_def.
5163         (estimate_loops_at_level): Allocate "tovisit" bitmap.  Pass
5164         it to propagate_freq.
5165
5166         * stmt.c (expand_case): Speed up code to detect duplicate case
5167         label targets and count unique case label targets.
5168
5169 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
5170
5171         * cppdefault.c, cppdefault.h, timevar.h: Update copyright.
5172
5173 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
5174
5175         * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting.
5176
5177 2004-11-03  Kazu Hirata  <kazu@cs.umass.edu>
5178
5179         * tree-cfg.c (find_taken_edge): Abort if we are given a
5180         statement that is neither COND_EXPR nor SWITCH_EXPR.
5181
5182 2004-11-02  Zdenek Dvorak  <dvorakz@suse.cz>
5183
5184         * fold-const.c (fold): Reassociate also (x - mult) + mult and
5185         (mult - x) + mult.  Cast operands of expression after applying
5186         distributive law to the correct types.  Apply distributive law
5187         to a * c - b * c for all non-float types.
5188
5189 2004-11-02  Geoffrey Keating  <geoffk@apple.com>
5190
5191         * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just
5192         because we don't want to run them now; instead, set them to
5193         stmp-install-fixproto or stmp-install-fixinc.
5194         * Makefile.in (stmp-install-fixproto): New.
5195         (stmp-install-fixinc): New.
5196         * configure: Regenerate.
5197
5198 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
5199
5200         * flow.c (init_propagate_block_info): Use bitmap_empty_p on result
5201         of bitmap_xor.
5202
5203 2004-11-02  Ziemowit Laski  <zlaski@apple.com>
5204
5205         * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
5206         (c_types_compatible_p): Move function definition...
5207         * c-objc-common.c (c_types_compatible_p): ...here.
5208         * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
5209         c-lang.c.
5210
5211 2004-11-02  Steven Bosscher  <stevenb@suse.de>
5212
5213         * cfgloop.h (struct loop): Update comment.
5214         * cse.c (cse_main): Remove obsolete comment.
5215
5216         * expr.h (gen_cond_trap): Move prototype under functions provided
5217         by optabs.c.
5218         (canonicalize_condition, get_condition): Move to...
5219         * rtl.h (canonicalize_condition, get_condition): ...here.
5220         (branch_target_load_optimize): Add comment that this function is
5221         in bt-load.c.
5222         * loop.c (canonicalize_condition, get_condition): Move to...
5223         * rtlanal.c (canonicalize_condition, get_condition): ...here.
5224         * sched-deps.c (get_condition): Rename to sched_get_condition.
5225         (add_dependence): Update this caller.
5226
5227 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
5228
5229         PR tree-opt/16808
5230         * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure
5231         that the vops get marked for renaming.
5232
5233 2004-11-02  Andreas Krebbel  <krebbel1@de.ibm.com>
5234
5235         * config/s390/s390.md ("movcc"): Set type attribute.
5236
5237 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
5238
5239         * tree-phinodes.c (add_phi_arg): Add an assertion that the
5240         edge already exists.
5241
5242 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
5243
5244         * tree-phinodes.c (remove_phi_arg_num): Do not zero the
5245         element that's being removed.
5246
5247 2004-11-02  Kazu Hirata  <kazu@cs.umass.edu>
5248
5249         * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI
5250         arguments using PENDING_STMT.
5251         (thread_block): Call copy_phis_to_block after redirecting an
5252         edge.
5253
5254 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
5255
5256         * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl,
5257         bitmap_and_compl_into, bitmap_ior, bitmap_iot_into,
5258         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void.
5259         (bitmap_ior_and_compl_into): Produce bool.
5260         (bitmap_union_of_diff): Rename to ...
5261         (bitmap_ior_and_compl): ... here. Produce bool.
5262         * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use
5263         bitmap_operation directly.
5264         (bitmap_union_of_diff): Rename to ...
5265         (bitmap_ior_and_compl): ... here. Return bool, use
5266         bitmap_operation directly.
5267         * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl.
5268         (df_ru_transfer_function, df_lr_transfer_function): Likewise.
5269         * global.c (modify_bb_reg_pav): Likewise.
5270
5271         * bitmap.h (bitmap_equal_p): Return bool.
5272         (bitmap_intersect_p, bitmap_intersect_compl_p): Declare.
5273         * bitmap.c (bitmap_equal_p): Return bool. Compare directly.
5274         (bitmap_intersect_p, bitmap_intersect_compl_p): New.
5275         * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and
5276         bitmap_intersect_compl_p.
5277         * ifcvt (dead_or_predicable): Likewise.
5278
5279 2004-11-02  Nathan Sidwell  <nathan@codesourcery.com>
5280
5281         PR rtl-optimization/17104
5282         * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small
5283         loads in zero_extend.
5284
5285 2004-11-02  Danny Smith  <dannysmith@users.sourceforge.net>
5286
5287         PR debug/18242
5288         * toplev.c (debug_type_names): Remove "dwarf-1".
5289
5290 2004-11-02  Ben Elliston  <bje@au.ibm.com>
5291
5292         * timevar.h (timevar_get): Remove.
5293         * timevar.c (timevar_get): Remove unused function.
5294
5295 2004-11-02  Joseph S. Myers  <joseph@codesourcery.com>
5296
5297         * doc/include/texinfo.tex: Update from Texinfo CVS.
5298
5299 2004-11-02  Ben Elliston  <bje@au.ibm.com>
5300
5301         * cppdefault.h (cpp_SYSROOT): Remove.
5302         * cppdefault.c (cpp_SYSROOT): Likewise.
5303
5304 2004-11-01  Andrew MacLeod  <amacleod@redhat.com>
5305
5306         PR tree-optimization/16447
5307         * tree-cfg.c (bsi_commit_one_edge_insert): Rename from
5308         bsi_commit_edge_inserts_1, and make funtion external.  Return new block.
5309         (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert.
5310         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing.
5311         * tree-flow.h (bsi_commit_one_edge_insert): Extern decl.
5312         * tree-outof-ssa.c (rewrite_trees): Don't commit edges here.
5313         (same_stmt_list_p): New.  Return TRUE if edge is to be forwarded.
5314         (identical_copies_p): New.  Return true is two copies are the same.
5315         (identical_stmt_lists_p): New.  Return true if stmt lists are the same.
5316         (analyze_edges_for_bb): New.  Determine how best to insert edge stmts
5317         for a basic block.
5318         (perform_edge_inserts): New.  Determine what to do with all stmts that
5319         have been inserted on edges.
5320         (remove_ssa_form):  Analyze and commit edges from here.
5321
5322 2004-11-01  Andrew Pinski  <pinskia@physics.uc.edu>
5323
5324         PR bootstrap/18232
5325         * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct.
5326         (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p.
5327         (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise.
5328         (EXECUTE_IF_AND_IN_BITMAP): Likewise.
5329
5330 2004-11-01  Joseph S. Myers  <joseph@codesourcery.com>
5331
5332         PR c/18239
5333         * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst
5334         parameter declarations.
5335
5336 2004-11-01  Andreas Krebbel  <krebbel1@de.ibm.com>
5337
5338         * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group.
5339         (s390_secondary_input_reload_class)
5340         (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc
5341         register.
5342         (s390_expand_cmpmem): Enable cmpmem implementation.
5343         * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
5344         Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS.
5345         (REG_CLASS_FROM_LETTER): New constraint 'c' added.
5346         * config/s390/s390.md ("movcc"): New insn pattern.
5347         * doc/md.texi: Document 'c' constraint for s390.
5348
5349 2004-11-01  Nathan Sidwell  <nathan@codesourcery.com>
5350
5351         PR c++/18064
5352         * doc/extend.texi (Deprecated Features): Deprecate G++ covariant
5353         extension.
5354
5355 2004-10-16  Daniel Berlin  <dberlin@dberlin.org>
5356
5357         Fix PR tree-optimization/17672
5358         Fix PR tree-optimization/18168
5359
5360         * lambda-code.c (lambda_lattice_compute_base): Fix reversed
5361         assert test.
5362         (gcc_tree_to_linear_expression): Add extra to existing constant.
5363         (depth_of_nest): Factor out function used in various places.
5364         (gcc_loop_to_lambda_loop): Clean up code a little bit. No
5365         functional changes.
5366         (find_induction_var_from_exit_cond): Stop guessing, and just
5367         get the right answer :).
5368         (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation.
5369         Print out message about result of attempt to create perfect nest.
5370         (lbv_to_gcc_expression): Add type argument, use it to do math
5371         and induction variable creation.
5372         (lle_to_gcc_expression): Ditto.
5373         (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as
5374         oldiv. Pass type argument to lle_to_gcc_expression and
5375         lbv_to_gcc_expression.
5376         Reset number of iterations after transformation.
5377         (perfect_nestify): Remove useless pre-allocation, and cleanup
5378         a small amount.
5379
5380         * tree-data-ref.c (build_classic_dist_vector): Return false for
5381         dependences completely outside of the loop nest we asked about.
5382         (build_classic_dir_vector): Ditto.
5383         (compute_data_dependences_for_loop): Only add dependence relations
5384         inside the loop we asked about.
5385
5386         * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT.
5387         Compute immediate uses.
5388
5389         * tree-optimize.c: Move linear_transform_loops to before ivcanon.
5390
5391 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
5392
5393         * tree-cfg.c (thread_jumps): Fix a comment typo.
5394
5395 2004-11-01  Kazu Hirata  <kazu@cs.umass.edu>
5396
5397         * tree-cfg.c (thread_jumps): Fix a comment typo.
5398
5399 2004-10-31  Nicolas Pitre <nico@cam.org>
5400
5401         * config/arm/ieee754-sf.S (floatdisf): Fix regression with
5402         values smaller than 2^32.
5403
5404 2004-10-31 Jeff Law  <law@redhat.com>
5405
5406         * cfgloop.h (struct loop): Remove unused "nodes" field.
5407         * timevar.def (TV_TREE_LOOP_BOUNDS): New.
5408         * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body
5409         instead of calling flow_bb_inside_loop_p for every basic block
5410         in the function.
5411         * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS.
5412
5413 2004-10-31  Graham Stott <graham.stott@btinternet.com>
5414
5415         * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo.  Use
5416         INT_5_BITS instead of VAL_5_BITS_P.
5417
5418 2004-10-31  Roger Sayle  <roger@eyesopen.com>
5419
5420         PR middle-end/14521
5421         * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F'
5422         for consistent quoting in diagnostic messages.
5423         (expand_call_inline): Likewise.
5424         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5425         * tree-ssa.c (warn_uninitialized_var): Likewise.
5426         (warn_uninitialized_phi): Likewise.
5427
5428 2004-10-31  Richard Sandiford  <rsandifo@redhat.com>
5429
5430         * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter
5431         mode check.
5432
5433 2004-10-31  Kazu Hirata  <kazu@cs.umass.edu>
5434
5435         * c-common.c: Fix a comment typo.
5436
5437 2004-10-31  Jason Merrill  <jason@redhat.com>
5438
5439         PR middle-end/17526
5440         * tree-gimple.c (is_gimple_mem_rhs): Also require a val for
5441         aggregate types that are not BLKmode.
5442
5443 2004-10-30  Ziemowit Laski  <zlaski@apple.com>
5444
5445         * c-common.h (objc_lookup_ivar): Add second parameter to
5446         prototype.
5447         * c-typeck.c (build_external_ref): After looking up symbol,
5448         pass it to objc_lookup_ivar() to decide whether it or the
5449         ivar should be used, rather than deciding the issue locally.
5450         * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
5451         which is simply returned in the non-ObjC case.
5452
5453 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
5454
5455         * sdbout.c (sdbout_symbol): Do not output type .def statements
5456         for builtin types.
5457
5458 2004-10-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5459
5460         * c-common.c (catenate_strings): New.
5461         (c_parse_error): Use it.  Don't over-escape.
5462
5463 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5464
5465         * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and
5466         modify the for loop expressions for it.  Remove unnecessary casts.
5467         (sh_expand_prologue): Declare reg as unsigned.
5468         (sh_gimplify_va_arg_expr): Initinalize lab_over.
5469         (sh_handle_sp_switch_attribute): Add const qualifier appropriately.
5470
5471 2004-10-30  Geoffrey Keating  <geoffk@apple.com>
5472
5473         * doc/invoke.texi (Darwin Options): Improve description of
5474         how the subtype is chosen.
5475
5476 2004-10-30  Roger Sayle  <roger@eyesopen.com>
5477
5478         PR middle-end/18096
5479         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that
5480         the stack adjustment, "size", is valid for Pmode.  If the stack
5481         frame is too large, generate a trap insn and issue a warning.
5482
5483 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
5484
5485         * tree-ssa-dom.c: Fix comment typos.
5486
5487 2004-10-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5488
5489         * config/sh/sh.c (prepare_move_operands): Use operands[0]
5490         for the output rtl if no_new_pseudos is set.  Remove redundant
5491         line.
5492
5493 2004-10-30  Joseph S. Myers  <joseph@codesourcery.com>
5494
5495         PR c/16666
5496         * c-decl.c (start_function): Don't check for DECL_BUILT_IN when
5497         determining whether to copy parameter types from a previous
5498         prototype declaration.
5499
5500 2004-10-29  Roger Sayle  <roger@eyesopen.com>
5501
5502         PR rtl-optimization/17581
5503         * cselib.c (cselib_process_insn): The last instruction of a libcall
5504         block, with the REG_RETVAL note, should be considered in the libcall.
5505         * gcse.c (do_local_cprop): Allow constants to be propagated outside
5506         of libcall blocks.
5507         (adjust_libcall_notes): Use simplify_replace_rtx instead of
5508         replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.
5509
5510 2004-10-30  Kazu Hirata  <kazu@cs.umass.edu>
5511
5512         * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN.
5513
5514 2004-10-29 Jeff Law  <law@redhat.com>
5515
5516         * tree-ssa-dom.c (struct edge_info): New structure holding
5517         edge equivalences and edge redirection information.
5518         (get_eq_expr_value, record_dominating_conditions): Kill.
5519         (propagate_to_outgoing_edges): Renamed from cprop_into_phis.
5520         Call record_edge_info.
5521         (allocate_edge_info, free_edge_info): New.
5522         (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges
5523         rather than cprop_into_phis.  Free all edge infos before threading
5524         jumps.
5525         (thread_across_edge): Allocate new edge info structures as needed
5526         and store the redirection target into the edge info structure
5527         instead of the edge's AUX field.
5528         (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED.
5529         (record_equivalence_from_incoming_edge): Lose unnecessary argument.
5530         Revamp code which finds and records equivalences associated with
5531         edges to use saved data in the edge_info structure.
5532         (record_equivalencs_from_phis): Similarly.
5533         (dom_opt_finalize_block): Revamp code which finds and records
5534         equivalences associated with edges to use saved data in the
5535         edge_info structure.
5536         (build_and_record_new_cond): New function.
5537         (record_conditions): Use build_and_record_new_cond to record
5538         dominating conditions.
5539         (record_edge_info): New function.
5540         (record_range): Tighten test for conditions which create
5541         useful range records.
5542
5543 2004-10-29  Geoffrey Keating  <geoffk@apple.com>
5544
5545         * config/i386/darwin.h (ASM_SPEC): Simplify.
5546         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
5547         * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New.
5548         (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec.
5549         * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here.
5550         (LINK_SPEC): Do pass -arch here.  Handle -force_cpusubtype_ALL
5551         in all cases.  Pass the right -arch or -arch_only based on -mcpu.
5552         (ASM_SPEC): Handle -force_cpusubtype_ALL.
5553         * doc/invoke.texi (Darwin Options): Improve documentation for
5554         Darwin linker (and libtool) switches.
5555
5556         * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>.
5557
5558 2004-10-29  Stan Shebs  <shebs@apple.com>
5559
5560         * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly.
5561
5562 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
5563
5564         * tree-phinodes.c (allocate_phi_node): New.
5565         (make_phi_node, resize_phi_node): Use it.
5566
5567 2004-10-29  David Edelsohn  <edelsohn@gnu.org>
5568
5569         * config/rs6000/sysv4.h (TARGET_POWER): Define as 0.
5570         * config/rs6000/darwin.h (TARGET_POWER): Define as 0.
5571
5572 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
5573
5574         * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero
5575         the whole PHI node.
5576         * tree.h (tree_phi_node): Tell the garbage collector to chase
5577         num_args arguments.
5578
5579 2004-10-29  Richard Earnshaw  <rearnsha@arm.com>
5580
5581         * opts.c (decode_options): Lower the crossjump threshold for -Os.
5582
5583 2004-10-29  Diego Novillo  <dnovillo@redhat.com>
5584
5585         * tree.h (struct tree_ssa_name): Remove field 'equiv'.
5586
5587 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5588
5589         * bitmap.h (bitmap_empty_p): New.
5590         (bitmap_and, bitmap_and_into, bitmap_and_compl,
5591         bitmap_and_compl_into, bitmap_ior, bitmap_ior_into,
5592         bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap
5593         operation macros.
5594         (bitmap_ior_and_compl): Rename to ...
5595         (bitmap_ior_and_compl_into): ... here.
5596         * bitmap.c (bitmap_equal_p): Use bitmap_xor.
5597         (bitmap_ior_and_compl): Rename to ...
5598         (bitmap_ior_and_compl_into): ... here. Adjust. Return changed
5599         flag.
5600         (bitmap_union_of_diff): Use renamed bitmap functions.
5601         * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET,
5602         XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise.
5603         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
5604         * df.c (df_bb_rd_local_compute)
5605         * flow.c (calculate_global_regs_live,
5606         init_propagate_block_info): Likewise.
5607         * ifcvt.c (find_if_case_1, find_if_case_2,
5608         dead_or_predicable): Likewise.
5609         * ra-build.c (union_web_part_roots, livethrough_conflicts_bb,
5610         reset_conflicts, conflicts_between_webs): Likewise.
5611         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
5612         detect_web_parts_to_rebuild): Likewise.
5613         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
5614         * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise.
5615         * tree-sra.c (decide_instantiations): Likewise.
5616         * tree-ssa-alias.c (create_name_tags,
5617         merge_pointed_to_info): Likewise.
5618         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
5619         * tree-ssa-loop-im.c (move_computations): Likewise.
5620         * tree-ssa-operands.c (get_call_expr_operands): Likewise.
5621         * tree-ssa-pre.c (fini_pre): Likewise.
5622         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
5623         * tree-ssanames.c (any_marked_for_rewrite_p): Likewise.
5624         * tree-vectorizer.c (vectorize_loops): Likewise.
5625
5626 2004-10-29  Nick Clifton  <nickc@redhat.com>
5627
5628         config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When
5629         adding the PIC register to the fixed_regs array, also add it
5630         to the call_used_regs array.
5631
5632 2004-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
5633
5634         * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard
5635         with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs.
5636
5637 2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
5638
5639         * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
5640         (rewrite_blocks): Modify argument, and use it to decide which
5641         function to call.
5642         (rewrite_def_def_chains): Call rewrite_blocks with true here.
5643         (rewrite_into_ssa): and call it with false here.
5644
5645 2004-10-29  Kazu Hirata  <kazu@cs.umass.edu>
5646
5647         * tree-phinodes.c (add_phi_arg): Turn an "if" that always
5648         triggers into gcc_assert.
5649
5650 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
5651
5652         PR tree-optimization/16728
5653         * tree-flow.h (get_ptr_info): Declare.
5654         * tree-ssa-alias.c (get_ptr_info): Make extern.
5655         * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive
5656         alias information.
5657
5658 2004-10-28  Stan Shebs  <shebs@apple.com>
5659
5660         * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64.
5661         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64
5662         case.
5663
5664 2004-10-28  Frank Ch. Eigler  <fche@redhat.com>
5665
5666         * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to
5667         prevent their later unnecessary registration.
5668         (mf_build_check_statement_for): Remove "addr" argument, and
5669         related "__mf_value" generated code.  Update callers.
5670         (mf_decl_eligible_p): New function, factored from mx_register_decls.
5671         (mx_register_decls): Call it.
5672         (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases
5673         to restore support for complex nested expressions.
5674         (mudflap_enqueue_decl): Simplify.  Move registration call emission
5675         out ...
5676         (mudflap_finish_file): ... to here.
5677         (mudflap_enqueue_constant): Remove dump code.
5678
5679 2004-10-28  Zack Weinberg  <zack@codesourcery.com>
5680
5681         PR 18199
5682         * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function.
5683         (DBX_FINISH_STABS): Add (unused by default) SYM parameter.
5684         (dbxout_finish_complex_stabs): Update to match.
5685         (dbxout_symbol_location): Call emit_pending_bincls_if_required
5686         and FORCE_TEXT before DBX_STATIC_BLOCK_START.  Use
5687         dbxout_begin_complex_stabs_noforcetext.
5688         * xcoffout.h (DBX_FINISH_STABS): Restore special case for
5689         N_GSYM, using new SYM parameter.  Correct logic for special
5690         cases for N_FUN.
5691
5692         * varasm.c (function_section): If DECL is NULL_TREE, don't try
5693         to do anything else.  Do not call get_insns if cfun or
5694         cfun->emit are NULL.
5695
5696 2004-10-28  Adam Nemet  <anemet@lnxw.com>
5697
5698         PR middle-end/18160
5699         * c-typeck.c (c_mark_addressable): Issue error if address of a
5700         register variable is taken.  Use "%qD" to print DECL_NAME.
5701
5702 2004-10-28  Diego Novillo  <dnovillo@redhat.com>
5703
5704         * opts.c (decode_options): Don't run PRE at -Os.
5705
5706 2004-10-28  Richard Henderson  <rth@redhat.com>
5707
5708         * config/alpha/alpha.md (movqicc_internal): Allow exactly one
5709         zero in the conditional.
5710         (movhicc_internal, movsicc_internal, movdicc_internal): Likewise.
5711
5712 2004-10-28  Richard Henderson  <rth@redhat.com>
5713
5714         * cse.c (memory_extend_rtx): Remove.
5715         (cse_main): Don't set it.
5716         (cse_insn): Use a local buffer instead.
5717
5718 2004-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5719
5720         * profile.c (branch_prob): Call to init_edge_profiler added.
5721         * rtl-profile.c (rtl_init_edge_profiler): New function.
5722         (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
5723         call to safe_insert_insn_on_edge.
5724         (rtl_profile_hooks): rtl_init_edge_profiler added.
5725         * tree-profile.c (tree_init_edge_profiler): New function.
5726         (tree_profile_hooks): tree_init_edge_profiler added.
5727         * value-prof.h (profile_hooks) init_edge_profiler prototype added.
5728
5729 2004-10-28  Nick Clifton  <nickc@redhat.com>
5730
5731         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use
5732         emit_jump_insn() to generate the return instruction.
5733
5734 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5735
5736         * tree-phinodes.c: Remove trailing whitespace.
5737
5738 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5739
5740         * tree-ssa-loop-ivopts.c: Fix a comment typo.
5741         * doc/invoke.texi: Fix a typo.
5742
5743 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5744
5745         * Makefile.in (OBJS-common): Remove duplicates.
5746
5747 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5748
5749         * lambda-code.c (nestify_update_pending_stmts): Remove.
5750         (perfect_nestify): Use flush_pending_stmts instead of
5751         nestify_update_pending_stmts.
5752         * tree-cfg.c (tree_make_forwarder_block): Use
5753         flush_pending_stmts.
5754         * tree-flow.h: Add a prototype for flush_pending_stmts.
5755         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
5756         Use flush_pending_stmts.
5757         (lv_update_pending_stmts): Remove.
5758         (tree_ssa_loop_version): Use flush_pending_stmts instead of
5759         lv_update_pending_stmts.
5760         * tree-ssa.c (flush_pending_stmts): New.
5761
5762 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
5763
5764         PR target/15286
5765         * final.c (alter_subreg): Compute correct offset to use with
5766         paradoxical SUBREGs of memory operands.
5767         * recog.c (general_operand): Allow paradoxical SUBREGs of
5768         memory operands after reload.
5769         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
5770         has failed when passed a hard register.
5771
5772 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
5773
5774         * function.c (assign_parm_setup_block): Handle parallels correctly.
5775
5776 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5777
5778         * final.c (shorten_branches): Initialize flags structure.
5779
5780 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5781
5782         * tree.c (int_cst_node, int_cst_hash_table): New variables.
5783         (init_ttree): Initialize them.
5784         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
5785         (build_int_cst_wide): Use hash table for oversized integers.
5786
5787 2004-10-28  Nick Clifton  <nickc@redhat.com>
5788
5789         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
5790         begin_label.
5791
5792 2004-10-27  Richard Henderson  <rth@redhat.com>
5793
5794         PR middle-end/18163
5795         * expr.c (emit_group_load): Don't go force temporary for memory
5796         or concat source.
5797         (emit_group_store): Similarly.
5798
5799 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
5800
5801         PR other/18186
5802         * common.opt (--param): Fix spelling of parameter.
5803
5804 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
5805
5806         PR tree-opt/17529
5807         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
5808         Don't fold statement.
5809         <case ASM_EXPR>: Fold the statement.
5810
5811 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
5812
5813         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
5814         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
5815
5816 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5817
5818         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
5819         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
5820         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
5821         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
5822
5823 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5824
5825         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
5826         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
5827         punctuation outside quotes.
5828
5829 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
5830             James E Wilson  <wilson@specifixinc.com>
5831
5832         PR target/13158
5833         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
5834         sibcall alloc instruction.
5835         (process_set): Handle sibcall alloc instruction.
5836
5837 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
5838
5839         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
5840         SUBTARGET_ATTRIBUTE_TABLE.
5841         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
5842         (SUBTARGET_ATTRIBUTE_TABLE): Define.
5843         * config/darwin.c (darwin_handle_weak_import_attribute): New.
5844         (HAVE_DEAD_STRIP): Delete.
5845         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
5846         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
5847         Prototype.
5848
5849         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
5850
5851         * config/darwin.h (GTHREAD_USE_WEAK): Define.
5852
5853 2004-10-28  Ben Elliston  <bje@au.ibm.com>
5854
5855         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
5856         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
5857         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
5858         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
5859         * tree-sra.c: Include "params.h".
5860         (decide_block_copy): Use new parameters.
5861         * doc/invoke.texi (Optimize Options): Document new SRA pass
5862         parameters sra-max-structure-size and sra-field-structure-ratio.
5863
5864 2004-10-27  Nicolas Pitre <nico@cam.org>
5865
5866         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
5867
5868 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
5869
5870         PR tree-optimization/18048
5871         * fold-const.c (try_move_mult_to_index): New function.
5872         (fold): Use try_move_mult_to_index.
5873         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
5874         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
5875         an all-ones unsigned constant without extra bits.
5876         * tree.c (build_low_bits_mask): New function.
5877         * tree.h (build_low_bits_mask): Declare.
5878
5879 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
5880
5881         PR target/17956
5882         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
5883         final condition.
5884         (minsf3): Same.
5885         (maxdf3): Same.
5886         (mindf3): Same.
5887
5888 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5889
5890         * tree-cfg.c (thread_jumps): Speed up by reordering the two
5891         conditions for entering basic blocks into worklist.
5892
5893 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5894
5895         * tree-cfg.c (thread_jumps): Speed up by pretending to have
5896         ENTRY_BLOCK_PTR in worklist.
5897
5898 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
5899
5900         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
5901         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
5902
5903 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
5904
5905         Fix PR tree-optimization/17133
5906
5907         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
5908         def kill operand.
5909
5910         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
5911         (get_v_must_def_result_ptr): Modify for new structure of
5912         v_must_defs array.
5913         (get_v_must_def_kill_ptr): New.
5914         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
5915         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
5916         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
5917         (op_iter_init): Initialize new mustu members.
5918         (op_iter_next_mustdef): New function.
5919         (op_iter_init_mustdef): Ditto.
5920
5921         * tree-flow.h (rewrite_def_def_chains): New function.
5922
5923         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
5924         (ssa_mark_def_sites): Ditto.
5925         (rewrite_stmt): Ditto.
5926         (ssa_rewrite_stmt): Ditto.
5927         (rewrite_blocks): Factor out from rewrite_into_ssa.
5928         (mark_def_block_sites): Ditto.
5929         (rewrite_def_def_chains): New function, just rewrites def-def
5930         chains without phi node insertion.
5931
5932         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
5933
5934         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
5935
5936         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
5937         they include the rhs now.
5938
5939         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
5940         V_MUST_DEF_RESULT.
5941
5942         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
5943         Update callers.
5944         (mark_really_necessary_kill_operand_phis): New function.
5945         (perform_tree_ssa_dce): Call it.
5946         (pass_dce): Add TODO_fix_def_def_chains.
5947         (pass_cd_dce): Ditto.
5948
5949         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
5950         well.
5951         (rewrite_mem_refs): Ditto.
5952
5953         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
5954         as well.
5955
5956         * tree-ssa-operands.c (allocate_v_may_def_optype):
5957         v_may_def_operand_type_t became v_def_use_operand_type_t.
5958         (allocate_v_must_def_optype) Ditto.
5959         (finalize_ssa_v_must_defs): Update for new operand type, as well
5960         as setting the use portion as well.
5961         (copy_virtual_operands): Copy the kill operand as well.
5962         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
5963         V_MUST_DEF_RESULT.
5964
5965         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
5966         v_def_use_operand_type.
5967         (v_must_def_optype_d): Use v_def_use_operand_type.
5968         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
5969         (V_MUST_DEF_KILL_*): New macros.
5970         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
5971         members.
5972         Rename existing must_i and num_v_must members to mustd_i and
5973         num_v_mustd.
5974         (SSA_OP_VMUSTDEFKILL): New flag.
5975         (SSA_OP_VIRTUAL_KILLS): New flag.
5976         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
5977         (SSA_OP_ALL_KILLS): New flag.
5978         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
5979
5980         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
5981
5982         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
5983         became V_MUST_DEF_RESULT.
5984         (rename_variables_in_bb): Rename kill pointer as well.
5985
5986         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
5987         immediate uses.
5988
5989 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
5990
5991         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
5992         the block that needs it.
5993
5994 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
5995
5996         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
5997         ATTRIBUTE_UNUSED.
5998
5999 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
6000
6001         * c-lex.c (cb_def_pragma): Clean up code for making location
6002         palatable to diagnostic.c.
6003
6004 2004-10-27  Steven Bosscher  <stevenb@suse.de>
6005
6006         PR tree-optimization/17757
6007         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
6008         without any PHI arguments left.  Make sure the argument that
6009         we're supposed to remove exists at all.
6010
6011 2004-10-27  Paul Brook  <paul@codesourcery.com>
6012
6013         * configure.ac: Don't test for [build] __cxa_atexit when building a
6014         cross compiler.
6015         * configure: Regenerate.
6016
6017 2004-10-27  Paul Brook  <paul@codeosurcery.com>
6018
6019         * configure.ac: Use build_exeext not host_exeext when lookin for
6020         target tools.
6021         * configure: Regenerate.
6022
6023 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6024
6025         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
6026
6027 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6028             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
6029
6030         PR middle-end/14684
6031         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
6032         to match -fprofile-use.
6033
6034 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
6035
6036         * config/rs6000/rs6000.c: Fix a comment typo.
6037
6038 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
6039
6040         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
6041         counter.
6042
6043 2004-10-27  Andreas Schwab  <schwab@suse.de>
6044
6045         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
6046         unused.
6047         (default_stabs_asm_out_constructor): Likewise.
6048
6049 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
6050
6051         * builtins.c (fold_builtin_unordered_cmp): Always bring both
6052         operands to the same type.
6053
6054 2004-10-26  James E Wilson  <wilson@specifixinc.com>
6055
6056         PR target/18010
6057         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
6058
6059 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
6060
6061         * dbxout.c: Include obstack.h.
6062         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
6063         default definition.
6064         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
6065         Default-define here.
6066         (DBX_CONTIN_LENGTH): Move definition with others.
6067         (DBX_FINISH_STABS): New target macro.
6068         (current_sym_code, current_sym_value, current_sym_addr)
6069         (current_sym_nchars, CHARS, dbxout_continue)
6070         (print_int_cst_octal, print_octal, print_wide_int)
6071         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
6072         (stabstr_ob, stabstr_last_contin_point): New variables.
6073         (NUMBER_FMT_LOOP): New improper macro.
6074         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
6075         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
6076         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
6077         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
6078         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
6079         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
6080         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
6081         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
6082         New functions and/or proper function-like macros.
6083         (CONTIN): Use stabstr_continue, unconditionally.
6084         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
6085         (dbxout_init): Initialize stabstr_ob.  Check
6086         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
6087         if it was used.  Use the new interfaces.
6088         (dbxout_source_file): Remove file argument; always write to
6089         asm_out_file.  Use the new interfaces.
6090         (dbxout_type_method_1): Remove second argument which is always
6091         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
6092         (dbxout_type_methods): Remove write-only variables.  Use the
6093         new interfaces.
6094         (dbxout_parms): Refactor to remove code duplicated in each of
6095         several successive if-else-if blocks.  Use the new interfaces.
6096         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
6097         (dbxout_source_line, dbxout_finish, dbxout_type_index)
6098         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
6099         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
6100         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
6101         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
6102         Use the new interfaces.
6103         * Makefile.in (dbxout.o): Update dependencies.
6104
6105         * defaults.h: Don't define ASM_STABD_OP.
6106         * output.h: Prototype new dbxout_* interfaces.
6107         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
6108         * varasm.c: Don't define ASM_STABS_OP.
6109         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
6110         Use the new dbxout.c interfaces.  Call sorry if neither
6111         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
6112
6113         * xcoffout.h: Don't define ASM_STABS_OP.
6114         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
6115         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
6116         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
6117         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
6118         do { ... } while (0) idiom.
6119
6120         * config/alpha/alpha.c (num_source_filenames): Export.
6121         * config/alpha/alpha.h (num_source_filenames): Declare.
6122         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
6123         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
6124         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
6125         Always use .debugsym.  Update commentary.
6126         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
6127         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
6128         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
6129         Use new interfaces.
6130         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
6131         (macho_branch_islands): Use new interfaces.
6132
6133         * doc/tm.texi: Update.
6134
6135 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
6136
6137         * expr.c (emit_group_store): Do not treat floats as BLKmode.
6138         (emit_group_load): Same.
6139
6140 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
6141
6142         * c-parse.in (datadef): Use pedwarn rather than error and warning
6143         for diagnostic in case of no declaration specifiers.
6144
6145 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
6146
6147         PR bootstrap/15747
6148         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
6149         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
6150         can be used to work around this.
6151
6152 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
6153
6154         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
6155         doubles.
6156
6157 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
6158
6159         * stmt.c (expand_case): Update a comment.
6160
6161 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
6162
6163         * stmt.c (expand_case): Put an assertion that index_expr is
6164         never INTEGER_CST.  Don't special case for constant
6165         index_expr.
6166
6167 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
6168
6169         PR 18162
6170         * c-parse.in (designator): Finish with a semi-colon.
6171
6172 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
6173
6174         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
6175         into rotlsi3.
6176
6177 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
6178
6179         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
6180         a default case only.
6181
6182 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
6183
6184         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
6185         e500 doubles.
6186         (spe_build_register_parallel): New.
6187         (rs6000_spe_function_arg): Handle e500 doubles.
6188         (function_arg): Same.
6189         (spe_func_has_64bit_regs_p): Same.
6190         (rs6000_function_value): Same.
6191         (rs6000_libcall_value): Same.
6192         (legitimate_lo_sum_address_p): Return false for e500 doubles.
6193
6194         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
6195         doubles.
6196         (DATA_ALIGNMENT): Same.
6197         (CANNOT_CHANGE_MODE_CLASS): Same.
6198
6199 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
6200
6201         * expr.c (emit_group_load): Handle floats.
6202         (emit_group_store): Same.
6203
6204 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
6205
6206         * c-lex.c (get_nonpadding_token): Remove.
6207         (c_lex_with_flags): Push timevar and eat padding here.  Improve
6208         stray token diagnostic.
6209         (lex_string): Replace logic with switch statement, eat padding
6210         token here.
6211
6212 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
6213
6214         PR 18149
6215         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
6216
6217 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
6218
6219         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
6220         to 'non-weak'.
6221         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
6222         (ASM_MAKE_LABEL_LINKONCE): Delete.
6223         (ASM_WEAKEN_DECL): New.
6224         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
6225         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6226         (TEXT_SECTION_ASM_OP): Add a tab.
6227         (DATA_SECTION_ASM_OP): Likewise.
6228         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
6229         data_section on every section change.
6230         (EXTRA_SECTIONS): Add a bunch of new extra sections.
6231         (EXTRA_SECTION_FUNCTIONS): Likewise.
6232         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
6233         (JCR_SECTION_NAME): Define.
6234         (TARGET_SECTION_TYPE_FLAGS): Don't define.
6235         * config/darwin.c (darwin_encode_section_info): A symbol is defined
6236         in this file if it is not weak.
6237         (textcoal_section): Delete.
6238         (datacoal_section): Delete.
6239         (darwin_make_decl_one_only): Delete.
6240         (machopic_select_section): Handle functions.
6241         (darwin_asm_named_section): Add a tab.
6242         (darwin_section_type_flags): Delete.
6243         (darwin_unique_section): Delete contents.
6244         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
6245         DECL_WEAK is set.
6246         * config/darwin-protos.h (darwin_section_type_flags): Delete.
6247         (darwin_make_decl_one_only): Delete.
6248         (text_coal_section): New.
6249         (text_unlikely_section): New.
6250         (text_unlikely_coal_section): New.
6251         (const_coal_section): New.
6252         (data_coal_section): New.
6253         (const_data_coal_section): New.
6254         * varasm.c (function_section): Honour
6255         USE_SELECT_SECTION_FOR_FUNCTIONS.
6256         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
6257         TARGET_USES_WEAK_UNWIND_INFO is in effect.
6258         * dbxout.c (dbxout_source_file): Don't change sections while
6259         a function is being output.
6260
6261 2004-10-25  David Ayers  <d.ayers@inode.at>
6262
6263         * c-common.h: Remove RID_ID.
6264         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
6265         (typespec_reserved_attr): Add rule for TYPENAME
6266         non_empty_protocolrefs.
6267         (yylexname): Remove special handling of RID_ID.
6268
6269 2004-10-25  James E Wilson  <wilson@specifixinc.com>
6270
6271         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
6272
6273 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
6274
6275         PR c/16667
6276         * c-parse.in (array_designator): New.
6277         (designator): Use it.
6278         (initelt): Only permit array_designator without '=', not ".foo".
6279
6280 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
6281         * gcc/Makefile.in: removed ggc for cgraphunit.
6282         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
6283         * gcc/cgraph.h: removed static var analysis data structures and calls.
6284         * gcc/cgraphunit.c:
6285         cgraph_mark_local_and_external_functions:changed name to
6286                 cgraph_mark_local_functions
6287         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
6288         cgraph_reset_static_var_maps,get_global_static_vars_info,
6289         get_global_statics_not_read,get_global_statics_not_written,searchc,
6290         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
6291         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
6292         scan_for_static_refs,cgraph_characterize_statics_local,
6293         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
6294         removed.
6295         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
6296         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
6297         analysis
6298         * gcc/tree-flow.h static_vars_info: removed
6299         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
6300         removed calls to static vars analysis.
6301         get_call_expr_operands: removed callee variable.
6302
6303 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
6304
6305         * cfg.c (unchecked_make_edge, redirect_edge_succ,
6306         redirect_edge_pred): Use VEC_safe_push instead of
6307         VEC_safe_insert.
6308         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6309
6310 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
6311
6312         * cfgloopmanip.c (loopify): Take two more arguments true_edge
6313         and false_edge.
6314         * cfgloop.h: Adjust the corresponding prototype.
6315         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
6316         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
6317
6318 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
6319
6320         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
6321         DECL_INCOMING_RTL is NULL.
6322
6323 2004-10-25  Steven Bosscher  <stevenb@suse.de>
6324
6325         * timevar.def (TV_FIND_REFERENCED_VARS): New.
6326         * tree-dfa.c (pass_referenced_var): Use it.
6327
6328 2004-10-25  Roger Sayle  <roger@eyesopen.com>
6329             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6330
6331         * cse.c: Change encoding of quantity numbers to avoid undefined
6332         pointer arithmetic on qty_table.
6333         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
6334         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
6335         (new_basic_block): Assign "real" quantity numbers from zero.
6336         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
6337         REG_QTY to its unique negative value.
6338         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
6339         (cse_main): Don't include max_reg when determining max_qty.
6340         (cse_basic_block): Avoid subtracting a large offset from qty_table,
6341         which causes undefined C99 behaviour.  Only allocate needed memory.
6342
6343 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
6344
6345         * stmt.c (expand_case): Remove an obsolete comment.
6346
6347 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
6348
6349         PR middle-end/17407
6350         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
6351         layout_type as it is already done by build_array_type.
6352         * tree.c (build_array_type): Layout the type even
6353
6354 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
6355
6356         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
6357
6358 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
6359
6360         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
6361         with wider-than-32-bit HOST_WIDE_INTs.
6362
6363 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
6364
6365         * config/mips/mips.c(mips_output_filename): Remove unused
6366         array ltext_label_name
6367
6368 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
6369
6370         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
6371
6372 2004-10-25  Ben Elliston  <bje@au.ibm.com>
6373
6374         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
6375
6376 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
6377
6378         * predict.c (predict_loops): Call scev_finalize instead of
6379         scev_reset.
6380
6381 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
6382
6383         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
6384         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
6385         config/sh/ushmedia.h, config/sparc/elf.h,
6386         config/sparc/sp64-elf.h: Update copyright.
6387
6388 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
6389
6390         * stmt.c (expand_case): Handle the default label outside of
6391         the for loop.  Remove code to handle a missing default label.
6392
6393 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
6394
6395         * dbxout.c (dbxout_function_decl): Don't use
6396         DBX_OUTPUT_FUNCTION_END.
6397         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
6398         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
6399
6400 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
6401
6402         PR middle-end/17967
6403         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
6404
6405 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
6406
6407         * tree-ssa-dom.c (record_equality): Use loop depth to determine
6408         which way to record the equality as well.
6409         (loop_depth_of_name): New function.
6410
6411 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
6412
6413         PR middle-end/17793
6414         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
6415         through the operand if it is a useless type conversion.
6416
6417 2004-10-23  Ben Elliston  <bje@au.ibm.com>
6418
6419         * cfg.c (remove_edge): Use VEC_unordered_remove.
6420         (redirect_edge_succ): Likewise.
6421         (redirect_edge_pred): Likewise.
6422         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6423
6424 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6425
6426         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
6427         beyond its end.
6428
6429 2004-10-22  Eric Christopher  <echristo@redhat.com>
6430
6431         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
6432         saves.
6433
6434 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
6435
6436         * config/rs6000/spe.md (spe_extendsfdf2): New.
6437         (movdf_e500_double): New.
6438         (spe_truncdfsf2): New.
6439         (spe_absdf2): New.
6440         (spe_nabsdf2): New.
6441         (spe_negdf2): New.
6442         (sub_adddf3): New.
6443         (spe_subdf3): New.
6444         (spe_muldf3): New.
6445         (spe_floatsidf2): New.
6446         (spe_floatunssidf2): New.
6447         (fix_truncdfsi2): New.
6448         (spe_fixuns_truncdfsi2): New.
6449
6450         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
6451         (fpr_truncdfsf2): New.
6452         (negdf2): Change to expander.
6453         (fpr_negdf2): New.
6454         (fpr_nabsdf2): Name pattern.
6455         (adddf3): Change to expander.
6456         (fpr_adddf3): Nem.
6457         (subdf3): Change to expander.
6458         (fpr_subdf3): New.
6459         (muldf3): Change to expander.
6460         (fpr_muldf3): New.
6461         (divdf3): Change to expander.
6462         (fpr_divdf3): New.
6463         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
6464         (cmpdf): Allow for TARGET_E500_DOUBLE.
6465
6466 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6467
6468         * c-semantics.c (re_push_stmt_list): Remove.
6469         * c-common.h: Remove the corresponding prototype.
6470
6471 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6472
6473         * stmt.c (asm_op_is_mem_input): Remove.
6474         * tree.h: Remove the corresponding prototype.
6475
6476 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6477
6478         * tree-gimple.c (is_gimple_constructor_elt): Remove.
6479         * tree-gimple.h: Remove the corresponding prototype.
6480
6481 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6482
6483         * varasm.c (get_pool_mode_for_function, get_pool_offset):
6484         Remove.
6485         * rtl.h: Remove the corresponding prototypes.
6486
6487 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6488
6489         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
6490         edge information when we commit ourselves to threading a
6491         particular jump.
6492
6493 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6494
6495         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
6496         into worklist instead of their indexes.
6497
6498 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6499
6500         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
6501         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
6502         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
6503         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
6504         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
6505         tree-scalar-evolution.c, tree-ssa-dom.c,
6506         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
6507         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
6508         tree-vectorizer.c, vec.h: Fix comment formatting.
6509
6510 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6511
6512         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
6513         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
6514
6515 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
6516
6517         * config/ptx4.h, config/mcore/mcore-pe.h,
6518         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
6519
6520 2004-10-22  Peter Barada <peter@the-baradas.com>
6521
6522         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
6523         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
6524         renaming of non-live registers in interrupt functions.
6525         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
6526
6527 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
6528
6529         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
6530         Use integer for loop counter.
6531         (num_ending_zeros): New function.
6532         (number_of_iterations_cond): Use num_ending_zeros.
6533
6534 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
6535
6536         * config.gcc: Add support for --enable-e500_double.
6537
6538         * config/rs6000/e500-double.h: New file.
6539
6540         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
6541         TARGET_E500_DOUBLE.
6542
6543         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
6544         TARGET_E500_DOUBLE.
6545
6546         * config/rs6000/linuxspe.h: Same.
6547
6548         * doc/invoke.texi (Option Summary): Document new options for
6549         mfloat-gprs.
6550         (RS/6000 and PowerPC Options): Same.
6551
6552         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
6553         function.
6554         (rs6000_override_options): Use it.  Use
6555         SUB3TARGET_OVERRIDE_OPTIONS.
6556         Add 8548 to processor_target_table.
6557         (rs6000_legitimate_address): Handle e500 doubles.
6558         (rs6000_legitimize_address): Same.
6559         (rs6000_legitimize_reload_address): Same.
6560         (rs6000_hard_regno_nregs): Same.
6561         (spe_func_has_64bit_regs_p): Same.
6562         (emit_frame_save): Same.
6563         (gen_frame_mem_offset): Same.
6564         (rs6000_dwarf_register_span): Same.
6565         (rs6000_generate_compare): Same.
6566         (easy_fp_constant): Same.
6567         (legitimate_offset_address_p): Same.
6568
6569         * config/rs6000/spe.md: (cmdfeq_gpr): New.
6570         (tstdfeq_gpr): New.
6571         (cmpdfgt_gpr): New.
6572         (tstdfgt_gpr): New.
6573         (tstdfgt_gpr): New.
6574         (cmpdflt_gpr): New.
6575         (tstdflt_gpr): New.
6576         Add new constants.
6577
6578 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6579
6580         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
6581
6582 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
6583
6584         * dbxout.c: Remove unnecessary #undefs.
6585         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
6586         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
6587         definition into use sites.
6588         (cwd): Make local to dbxout_init.
6589         (dbxout_init): Restructure cwd-using logic for clarity.  Use
6590         IS_DIR_SEPARATOR.
6591         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
6592         STABS_GCC_MARKER folded in here.
6593         * system.h: Poison now-unused macros.
6594         * doc/tm.texi: Remove documentation of now-unused macros.
6595
6596 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
6597
6598         PR c/17538
6599         * c-opts.c (push_command_line_include): Use the current file
6600         name instead of the main one.
6601
6602 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
6603
6604         PR objc/17923
6605         * tree.c (staticp): A CONST_DECL has static storage if either
6606         TREE_STATIC or DECL_EXTERNAL is set.
6607         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
6608         have null names.
6609
6610 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
6611
6612         * expr.c (store_expr): Remove dont_store_target.
6613
6614 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
6615
6616         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
6617
6618 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
6619
6620         * tree-cfg.c (thread_jumps): Move a part of it to ...
6621         (thread_jumps_from_bb): ... here.
6622
6623 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
6624
6625         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
6626         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
6627
6628 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
6629
6630         * expr.c (store_expr): Clean up by renaming want_value to
6631         call_param_p.
6632
6633 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
6634
6635         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
6636         fixup pc here.
6637
6638 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
6639
6640         PR 18004.
6641         * expmed.c (store_bit_field): Pass original 'value' before
6642         recursing.
6643
6644 2004-10-21  Nicolas Pitre <nico@cam.org>
6645
6646         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
6647         * config/arm/ieee754-df.S: Ditto.
6648
6649 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
6650
6651         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
6652         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
6653         Default to 0.
6654         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
6655         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
6656         an internal label and an N_SLINE .stabn whose value is the
6657         difference between that label and the function entry label.
6658         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
6659         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
6660         label and an N_SO stab with an empty string referring to it.
6661         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
6662         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
6663         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
6664         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
6665         macro is never defined.
6666         * sdbout.c (sdbout_source_line_counter): Delete.
6667         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
6668         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
6669         only two arguments.
6670         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
6671
6672         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
6673         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
6674         definitions (identical to default).
6675         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
6676         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
6677         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
6678         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
6679         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
6680         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
6681         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
6682         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
6683         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
6684         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
6685         (sym_lineno): Delete.
6686         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
6687         now-unused variable.
6688         (alpha_output_lineno): Delete.
6689         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
6690         * config/mips/mips.c (mips_output_filename): Don't use
6691         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
6692         (mips_output_lineno): Delete.
6693         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
6694         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
6695         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
6696         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
6697         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
6698         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
6699         * config/mmix/mmix.h: Likewise.
6700         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
6701         * config/mmix/mmix-protos.h: Don't prototype it.
6702         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
6703         no need to #undef ASM_OUTPUT_SOURCE_LINE.
6704         * config/arm/aout.h: Remove RISCiX-specific definition of
6705         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
6706         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
6707         ASM_OUTPUT_SOURCE_LINE.
6708         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
6709         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
6710         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
6711
6712         * doc/tm.texi: Update.
6713
6714 2004-10-20  Richard Henderson  <rth@redhat.com>
6715
6716         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
6717
6718 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
6719
6720         * configure.ac: Revert my previous patch.
6721         * configure: Regenerate.
6722
6723 2004-10-20  Ben Elliston  <bje@au.ibm.com>
6724
6725         * config/rs6000/rs6000.c
6726         (rs6000_va_start): Use build_va_arg_indirect_ref.
6727         (rs6000_gimplify_va_arg): Likewise.
6728
6729 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
6730
6731         PR java/15575
6732         * configure.ac: Declare AM_LANGINFO_CODESET.
6733         * aclocal.m4: Define AM_LANGINFO_CODESET.
6734         * configure, config.in: Rebuilt.
6735
6736 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6737
6738         * expr.c (store_expr): Remove code that is run when
6739         want_value & 1 is nonzero.
6740
6741 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
6742
6743         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
6744         from function pointer to void *.
6745
6746 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6747
6748         PR target/18032
6749         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
6750         the frame pointer adjustment when exception handling is enabled.
6751
6752 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6753
6754         * stor-layout.c: Fix a comment typo.
6755
6756 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
6757
6758         * expr.c (store_field): Remove two arguments value_mode and
6759         unsignedp.
6760         (expand_assignment, store_constructor_field,
6761         expand_expr_real_1): Adjust calls to store_field.
6762
6763 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
6764
6765         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
6766
6767         PR target/17317
6768         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
6769         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
6770         base and index register for loads.
6771
6772         * config/arc/t-arc: Fix multilib handling.
6773
6774 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
6775
6776         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
6777         don't inspect BLOCK_FOR_INSN for barriers.
6778         * emit-rtl.c (emit_barrier_before): Revert last change.
6779         (emit_barrier_after, emit_barrier): Ditto.
6780
6781         * doc/extend.texi (Extended Asm): Warn and provide example
6782         solution for using a call-clobbered asm register.
6783         (Local Reg Vars): Similar.  Cross-reference example.
6784
6785 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
6786
6787         * tree-cfg.c (group_case_labels): Look at the second to last
6788         case statement for combing with the default case.
6789
6790 2004-10-19  Richard Hendeson  <rth@redhat.com>
6791
6792         PR 17962
6793         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
6794
6795 2004-10-19  Richard Hendeson  <rth@redhat.com>
6796
6797         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
6798         succeeds, only expand the result.
6799
6800 2004-10-19  Richard Hendeson  <rth@redhat.com>
6801
6802         PR middle-end/17885
6803         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
6804         of INDIRECT_REF.
6805
6806 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6807
6808         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
6809         loop with goto.
6810
6811 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6812
6813         * expr.c (expand_assignment): Remove the last argument.
6814         Change the return type to void.
6815         * expr.h: Update the prototype of expand_assignment.
6816         * function.c (assign_parm_setup_reg): Update a call to
6817         expand_assignment.
6818         * stmt.c (expand_asm_expr): Likewise.
6819
6820 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
6821
6822         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
6823         unnecessary assignments to temp.  Return const0_rtx.
6824
6825 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
6826
6827         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
6828
6829 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
6830
6831         * configure.ac (powerpc-*-darwin*): Require assembler to support
6832         .machine directive.
6833         * configure: Regenerate.
6834
6835 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6836
6837         * reload1.c (ior_hard_reg_set): Remove.
6838         (finish_spills): Use IOR_HARD_REG_SET instead of
6839         ior_hard_reg_set.
6840
6841 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6842
6843         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
6844         the currently visited word to right.
6845
6846 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6847
6848         PR middle-end/18045
6849         * expmed.c (expand_smod_pow2): Handle modes whose size
6850         is greater than that of HOST_WIDE_INT.
6851
6852 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
6853
6854         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
6855
6856 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
6857             Roger Sayle  <roger@eyesopen.com>
6858
6859         PR middle-end/17813
6860         * dojump.c (discard_pending_stack_adjust): New function.
6861         (clear_pending_stack_adjust): Call it.
6862         * expr.h (discard_pending_stack_adjust): Declare it.
6863         * explow.c (emit_stack_save): Emit pending stack adjustments
6864         before saving the stack pointer.
6865         (emit_stack_restore): Discard pending stack adjustments before
6866         restoring the stack pointer.
6867
6868 2004-10-18  Richard Henderson  <rth@redhat.com>
6869
6870         * c-common.c (handle_mode_attribute): Allow scalar->vector
6871         type changes yet.
6872
6873 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6874
6875         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
6876         value to expand_assignment.
6877
6878 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6879
6880         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
6881         thread_jumps.
6882         (thread_jumps): Iterate until no new forwarder block arises.
6883
6884 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6885
6886         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
6887         (thread_jumps): Use forwardable as cache of
6888         tree_forwarder_block_p throughout the function.
6889
6890 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
6891
6892         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
6893
6894 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
6895
6896         PR middle-end/15014
6897         PR middle-end/16973
6898         * tree-cfg.c (remove_bb): If we have a label expression in the
6899         basic block and the label we have taken the address, move the
6900         label expression to the basic block which is previous in the
6901         linked list.
6902         (tree_verify_flow_info): Fix printing out the label name of the
6903         problematic label expression.
6904
6905 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
6906
6907         PR rtl-optimization/18002
6908         * simplify-rtx.c (mode_signbit_p): Externalize function...
6909         * rtl.h (mode_signbit_p): ... to here.
6910         * combine.c (simplify_shift_const): Recognize PLUS signbit as
6911         canonical form of XOR signbit and move to outer op.
6912
6913 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
6914
6915         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
6916         Update all callers.
6917         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
6918         Don't call fold_stmt more than once, use bsi_replace.
6919
6920 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
6921
6922         PR tree-optimization/17656
6923         * tree-ssa.c (replace_immediate_uses): When replacing a
6924         constant, if the call to fold_stmt produced a different
6925         statement, get an appropriate statement pointer by scanning
6926         STMT's basic block.
6927
6928 2004-10-18  Richard Henderson  <rth@redhat.com>
6929
6930         * pointer-set.c (hash1): Don't use libm functions in fallback case.
6931
6932 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
6933
6934         PR bootstrap/17684
6935         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
6936         (stage1-start): Remove and copy libunwind.a and
6937         libunwind*$(SHLIB_EXT) instead of libunwind*.
6938         (stage2-start): Likewise.
6939         (stage3-start): Likewise.
6940         (stage4-start): Likewise.
6941         (stageprofile-start): Likewise.
6942         (stagefeedback-start): Likewise.
6943
6944         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
6945         the shared library to be created and don't remove the existing
6946         shared library.
6947         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
6948         * config/i386/t-nwld (SHLIB_LINK): Likewise.
6949         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
6950         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
6951         * config/sh/t-linux (SHLIB_LINK): Likewise.
6952         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
6953         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
6954         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
6955         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
6956
6957         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
6958         files.
6959
6960 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6961
6962         * basic-block.h (reg_set_iterator): New.
6963         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
6964         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
6965         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
6966         * caller-save.c (save_call_clobbered_regs): Adjust to the new
6967         style.
6968         * cfgcleanup.c (thread_jump): Likewise.
6969         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
6970         * conflict.c (conflict_graph_compute): Likewise.
6971         * flow.c (verify_local_live_at_start, update_life_info,
6972         initialize_uninitialized_subregs, propagate_one_insn,
6973         init_propagate_block_info, free_propagate_block_info,
6974         propagate_block, dump_regset): Likewise.
6975         * global.c (global_conflicts): Likewise.
6976         * graph.c (start_bb): Likewise.
6977         * local-alloc.c (update_equiv_regs): Likewise.
6978         * loop.c (load_mems): Likewise.
6979         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
6980         find_reg, finish_spills): Likewise.
6981         * resource.c (mark_target_live_regs): Likewise.
6982         * sched-deps.c (sched_analyze_insn): Likewise.
6983         * sched-rgn.c (sched-rgn.c): Likewise.
6984         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
6985
6986 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
6987
6988         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
6989         operand 1 instead of 2
6990
6991 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
6992
6993         * loop-unroll.c: Fix comment typos.
6994
6995 2004-10-18  Revital Eres  <eres@il.ibm.com>
6996
6997         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
6998         * loop-unroll.c: Include varray.h.
6999         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
7000         opt_info and expand it to support variable expansion.
7001         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
7002         expand it to support variable expansion.
7003         (pt_info_start_duplication): Rename si_info_start_duplication.
7004         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
7005         to the variable expansion optimization.
7006         (free_opt_info): Rename free_si_info.
7007         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
7008         expand_var_during_unrolling, insert_var_expansion_initialization,
7009         combine_var_copies_in_loop_exit, release_var_copies,
7010         get_expansion): New functions.
7011         (peel_loop_completely, unroll_loop_constant_iterations,
7012         unroll_loop_runtime_iterations, peel_loop_simple,
7013         unroll_loop_stupid): Change uses of struct si_info
7014         to struct opt_info
7015         and add uses of fvariable-expansion-in-unroller flag.
7016         * params.def: Add parameter to restrict the number of expansions.
7017         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
7018         the number of expansions.
7019         * common.opt: (fvariable-expansion-in-unroller): New flag.
7020         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
7021
7022 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
7023
7024         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
7025         __GXX_MERGED_TYPEINFO_NAMES to 0.
7026
7027 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
7028
7029         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
7030         handle barriers in a bb by checking that it points to a NULL bb.
7031         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
7032         (emit_barrier_after, emit_barrier): Ditto.
7033
7034 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
7035
7036         * doc/extend.texi (Attribute Syntax): Clarify details of
7037         attributes on parameters.
7038
7039 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
7040
7041         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
7042         loop.
7043
7044 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
7045
7046         Revert:
7047         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
7048
7049         * c-typeck.c (default_function_array_conversion): Always create
7050         &a[0] for array types.
7051         (build_unary_op): Do not fold &a[x] into a + x.
7052
7053 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
7054
7055         PR middle-end/17925
7056         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
7057         block if there is a goto with a locus.
7058
7059 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
7060
7061         * config/elfos.h, config/gofast.h, config/interix.h,
7062         config/netbsd.h, config/svr3.h, config/vxworks.h,
7063         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
7064         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
7065         config/alpha/netbsd.h, config/arm/arm-modes.def,
7066         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
7067         config/cris/aout.h, config/frv/frv-modes.def,
7068         config/i386/beos-elf.h, config/i386/gas.h,
7069         config/i386/i386-coff.h, config/i386/i386-modes.def,
7070         config/i386/linux.h, config/i386/linux64.h,
7071         config/i386/mingw32.h, config/i386/netbsd-elf.h,
7072         config/i386/netbsd64.h, config/i386/sco5.h,
7073         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
7074         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
7075         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
7076         config/mips/mips-modes.def, config/mips/sdb.h,
7077         config/mips/vr.h, config/mips/vxworks.h,
7078         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
7079         config/pa/pa32-linux.h, config/rs6000/40x.md,
7080         config/rs6000/7450.md, config/rs6000/8540.md,
7081         config/rs6000/linuxspe.h, config/rs6000/power4.md,
7082         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
7083         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
7084         config/s390/s390-modes.def, config/sh/elf.h,
7085         config/sh/sh-modes.def, config/sh/sh64.h,
7086         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
7087         config/stormy16/stormy16.md, config/v850/v850-protos.h,
7088         config/vax/vax.md: Update copyright.
7089
7090 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
7091
7092         * expr.c (expand_expr_real_1): Remove an obsolete comment.
7093
7094 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
7095
7096         * c-typeck.c (default_function_array_conversion): Always create
7097         &a[0] for array types.
7098         (build_unary_op): Do not fold &a[x] into a + x.
7099
7100 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
7101
7102         * pointer-set.c (hash1): Use integer part of 2^64 / phi
7103         instead 2^32 / phi if long is 64-bit.
7104
7105 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
7106
7107         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
7108         RID_PTRVALUE.
7109         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
7110         declarations.
7111         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
7112         __ptrextent__, __ptrvalue and __ptrvalue__.
7113         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
7114         entries.
7115
7116 2004-10-16  Dale Johannesen  <dalej@apple.com>
7117
7118         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
7119
7120 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
7121
7122         PR tree-optimization/17766
7123         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
7124         (dom_info_available_p): Declare.
7125         * cfghooks.c (split_block, make_forwarder_block): Use
7126         dom_info_available_p.
7127         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
7128         free_dominance_info, verify_dominators): Ditto.
7129         (dom_info_available_p): New function.
7130         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
7131         (thread_jumps): Use dom_info_available_p.
7132         * tree-complex.c (expand_complex_div_wide): Ditto.
7133         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
7134
7135 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
7136
7137         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
7138         (find_best_candidate): Take also important candidates into account.
7139         (find_optimal_iv_set): Initialize important_candidates bitmap.
7140
7141 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
7142
7143         PR tree-optimization/17560
7144         * predict.c (tree_estimate_probability): Mark irreducible
7145         loops.
7146
7147 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
7148
7149         PR rtl-optimization/17723
7150         * cfgcleanup.c (merge_memattrs): Handle case when
7151         MEM_SIZE == NULL_RTX.
7152
7153 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
7154
7155         * toplev.c (dump_file_name): Change type to be const.
7156
7157 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
7158
7159         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
7160         non_lvalue to stop something being a null pointer constant.
7161
7162 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
7163
7164         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
7165         available for TARGET_FPRS.
7166         (FUNCTION_VALUE_REGNO_P): Same.
7167
7168 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
7169
7170         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7171         -maltivec in same style as other ISA options.
7172
7173 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
7174
7175         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
7176         definition.
7177
7178 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
7179
7180         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
7181         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
7182         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
7183         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
7184         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
7185         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
7186         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
7187         predict.def, predict.h, protoize.c, reload.h, resource.h,
7188         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
7189         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
7190         unwind-sjlj.c, value-prof.h: Update copyright.
7191
7192 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
7193
7194         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
7195
7196 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
7197
7198         * tree-optimize.c (execute_one_pass): Stop timer right after
7199         executing the pass.
7200
7201 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7202
7203         Revert:
7204         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7205         PR middle-end/17967
7206         Revert:
7207                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
7208                 (remove_useless_stmts_1):  Fold trees we know how to fold.
7209
7210 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
7211
7212         * configure.ac: Add .machine power4 directive when testing for
7213         mfcr field.
7214         * configure: Regenerate.
7215
7216 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
7217
7218         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
7219
7220 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7221
7222         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
7223         always.
7224
7225 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
7226
7227         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
7228         for 'f' if !TARGET_FPRS.
7229
7230 2004-10-14  Richard Henderson  <rth@redhat.com>
7231
7232         PR debug/14492
7233         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
7234
7235 2004-10-14  Richard Henderson  <rth@redhat.com>
7236
7237         PR c/17023
7238         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
7239         as error_mark_node.
7240         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
7241         instaed of current_function_decl non-null.
7242
7243 2004-10-14  Matt Austern  <austern@apple.com>
7244
7245         * pointer-set.c: New file, special-purpose hash table.
7246         * pointer-set.h: New file.
7247         * tree.h (struct pointer_set_t): Declare as opaque type.
7248         (tree_walk): Last argument is pointer_set_t* now.
7249         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
7250         (walk_type_fields):
7251         (walk_tree): Convert from htab_t to pointer_set_t for keeping
7252         track of which nodes have already been visited.
7253         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
7254         * cgraphunit.c (cgraph_create_edges): Likewise.
7255         (cgraph_characterize_statics_local): Likewise.
7256         * tree-dfa.c (collect_dfa_stats): Likewise.
7257         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
7258         pointer_set_t* now.
7259         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
7260         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
7261         of walk_subtrees is pointer_set_t* now.
7262         * Makefile.in (OBJS-common): add pointer-set.o
7263         (tree-inline.o): Depends on pointer-set.h
7264         (tree-dfa.o): Likewise
7265         (cgraphunit.o): Likewise
7266
7267 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
7268
7269         * config/rs6000/darwin.h (ASM_SPEC): Delete.
7270         (TARGET_ASM_FILE_START): Define.
7271         * config/darwin.h (ASM_SPEC): Define.
7272         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
7273         -mlong-double-128, it's the default.  Update comment about reason
7274         for force_cpusubtype_ALL.
7275         * config/rs6000/darwin-vecsave.asm: Supply .machine.
7276         * config/rs6000/darwin-world.asm: Likewise.
7277         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
7278         (symbolic_operand): Delete #if 0ed code.
7279
7280 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7281
7282         * stmt.c (add_case_node): Make sure that we have integer
7283         constant before calling tree_int_cst_compare.
7284
7285 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
7286
7287         PR middle-end/17967
7288         Revert:
7289                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
7290                 (remove_useless_stmts_1):  Fold trees we know how to fold.
7291
7292 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
7293
7294         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
7295         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
7296         -m64.
7297
7298 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
7299
7300         * reload.c (find_reloads): When reloading a PLUS with constant
7301         operand, make sure the constant is pushed to the constant pool
7302         if required.
7303         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
7304         reload bug workaround.
7305         (s390_expand_plus_operand): Likewise.
7306
7307 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
7308
7309         * opts.c (common_handle_option): Do not enable
7310         flag_speculative_prefetching for -fprofile-generate/use.
7311
7312 2004-10-14  Devang Patel  <dpatel@apple.com>
7313
7314         PR 17635
7315         * tree-if-conv.c (process_phi_nodes): Process latch block.
7316         (combine_blocks): Process latch block and update loop structure.
7317
7318 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
7319
7320         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
7321         (vect_update_ivs_after_vectorizer):
7322         (vect_transform_for_unknown_loop_bound):
7323         (tree_duplicate_loop_to_edge):
7324         (allocate_new_names):
7325         (rename_use_op):
7326         (rename_def_op):
7327         (rename_variables_in_bb):
7328         (free_new_names):
7329         (rename_variables_in_loop):
7330         (copy_phi_nodes):
7331         (update_phis_for_duplicate_loop):
7332         (update_phi_nodes_for_guard):
7333         (make_loop_iterate_ntimes):
7334         (tree_duplicate_loop_to_edge_cfg):
7335         (add_loop_guard):
7336         (vect_analyze_loop_with_symbolic_num_of_iters):
7337         (verify_loop_for_duplication):
7338         (vect_gen_niters_for_prolog_loop):
7339         (vect_update_niters_after_peeling):
7340         (vect_update_inits_of_dr):
7341         (vect_update_inits_of_drs):
7342         (vect_build_loop_niters):
7343         (vect_do_peeling_for_alignment): New functions.
7344         (vect_transform_loop): Add unknown and known but indivisible loop
7345         bound support; add peeling for unalignment support.
7346         (vect_analyze_loop_form): Support symbolic number of iterations.
7347         (vect_transform_loop_bound): New input parameter.
7348         (vect_get_loop_niters): Change input parameter type.
7349         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
7350         (vectorizable_store): Allow unaligned access.
7351         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
7352         (vect_analyze_data_refs_alignment): Allowed one unaligned
7353         store.
7354         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
7355         to use tree.
7356         (LOOP_VINFO_INT_NITERS): New macro.
7357         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
7358         (do_peeling_for_alignment):
7359         (unaligned_drs): New members of _loop_vec_info.
7360         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
7361
7362 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
7363
7364         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
7365         (struct tree_string): Remove "const" qualifier for "str".
7366
7367 2004-10-14  Ira Rosen  <irar@il.ibm.com>
7368
7369         * tree-vectorizer.c (vect_analyze_data_refs): Call
7370         vect_get_base_and_bit_offset to get memory tag for array ref.
7371         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
7372
7373 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
7374
7375         * configure.ac: Use $LN_S for creating symlinks (not $LN).
7376         * configure: Regenerate.
7377
7378 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7379
7380         * doc/install.texi (*-*-solaris2*): Update with info about kernel
7381         patches to solve spurious testsuite failures.
7382
7383 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
7384
7385         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
7386         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
7387         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
7388         gcc_assert under ENABLE_CHECKING.
7389         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
7390         get_vectype_for_scalar_type).
7391
7392         (vect_get_vec_def_for_operand): Remove redundant variables.
7393         (vect_transform_loop): Likewise.
7394
7395 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
7396
7397         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
7398         global for -mcaller-super-interworking.
7399         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
7400         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
7401         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
7402         not need a frame pointer.
7403         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
7404         the soft frame pointer offset.
7405         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
7406         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
7407         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
7408         the stack.  Use frame_pointer_needed to choose between them.
7409         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
7410         (interwork_with_frame): New macro.
7411         (interwork): Add _interwork_{r7,r11}_call_via_rN().
7412
7413 2004-10-14  Ben Elliston  <bje@au.ibm.com>
7414
7415         PR other/17900
7416         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
7417         up the filename looking for a previous directory separator.
7418
7419 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7420
7421         * c-tree.h (enum c_typespec_kind, struct c_typespec,
7422         parser_xref_tag): New.
7423         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
7424         typedef_p.
7425         (declspecs_add_type): Adjust prototypes.
7426         * c-parse.in (%union): Add tstype.
7427         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
7428         typespec_reserved_attr, typespec_nonreserved_nonattr,
7429         structsp_attr, structsp_nonattr): Change to tstype.  Update
7430         actions.
7431         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
7432         (declspecs_add_type): Update to take struct c_typespec argument.
7433         Set tag_defined_p and typedef_p as appropriate.
7434         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
7435         Update to return struct c_typespec.
7436         (shadow_tag_warned): Don't let empty declarations with qualifiers
7437         or storage class specifiers redeclare a tag if a previous
7438         declaration is visible.
7439
7440 2004-10-13  Richard Henderson  <rth@redhat.com>
7441
7442         PR debug/15860
7443         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
7444         for DECL_INCOMING_RTL.
7445
7446 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
7447
7448         PR target/17984
7449         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
7450         trunc_int_for_mode for constants used in shortened mode.
7451
7452 2004-10-13  Richard Henderson  <rth@redhat.com>
7453
7454         PR c/17384
7455         * c-common.c (handle_mode_attribute): Disallow mode changes that
7456         alter the CODE of the top-level type.
7457
7458         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
7459         integer from internal limits macros.
7460         * config/i386/mm3dnow.h (__v2sf): Fix base type.
7461
7462 2004-10-13  Richard Henderson  <rth@redhat.com>
7463
7464         PR debug/13841
7465         * function.c (instantiate_decl): Recurse for CONCAT.
7466
7467 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
7468
7469         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
7470         andi./andis.
7471         (anddi3): Same.
7472         (extzvdi_internal1): Add attribute "compare".
7473         (extzvdi_internal2): Same.
7474
7475 2004-10-12  Tom Tromey  <tromey@redhat.com>
7476
7477         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
7478
7479 2004-10-13  Dale Johannesen  <dalej@apple.com>
7480
7481         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
7482
7483 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
7484
7485         * toplev.c (compile_file): Call mudflap_finish_file from here ...
7486         * c-decl.c (c_write_global_declarations): ... instead of here ...
7487         * cp/decl.c (cp_finish_file): ... and here.
7488         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
7489
7490 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
7491
7492         * tree-ssa-dom.c (record_range): Free the element if we are not
7493         going to use it.
7494
7495 2004-10-13  Tom Tromey  <tromey@redhat.com>
7496
7497         PR java/15578:
7498         * gcc.c (option_map): Added --extdirs and --encoding.
7499
7500 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7501
7502         PR target/14454
7503         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
7504         sparc_can_output_mi_thunk.
7505         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
7506         handling of vcall offset.
7507         (sparc_can_output_mi_thunk): New predicate.
7508         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
7509         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
7510         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
7511
7512         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
7513
7514         * config/sparc/sparc.md (movdi): Remove redundant test.
7515
7516 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
7517
7518         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
7519         TDF_IPA from -fdump-tree-*-all.
7520
7521 2004-10-13  Paul Brook  <paul@codesourcery.com>
7522
7523         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
7524         * config/arm/arm.c (thumb_find_work_register): Update comments.
7525         (arm_load_pic_register): Add argument for scratch register.
7526         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
7527         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
7528
7529 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
7530
7531         * tree-data-ref.c: Fix comment typos.
7532
7533 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
7534             Zdenek Dvorak  <dvorakz@suse.cz>
7535
7536         PR tree-optimization/17724
7537         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
7538
7539 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
7540
7541         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
7542         (altivec_builtin_mask_for_store): Likewise.
7543         (altivec_init_builtins): Use lang_hooks.builtin_function to
7544         create the decls for builtin_altivec_mask_for_load/store.
7545
7546 2004-10-13  Nick Clifton  <nickc@redhat.com>
7547
7548         * config/c4x/c4x.c: Remove inclusion of loop.h.
7549
7550 2004-10-12  Ben Elliston  <bje@au.ibm.com>
7551
7552         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
7553         (ei_container): New; renamed.
7554         (ei_start, ei_last): New macros.
7555         (ei_start_1, ei_last_1): Renamed from ei_start.
7556         (ei_last_1, ei_end_p): Use ei_container() where applicable.
7557         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
7558         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
7559
7560 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
7561
7562         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
7563         * cfgloop.c (initialize_loops_parallel_p): New.
7564         (flow_loops_find): Initialize the parallel_p field to true for all
7565         the loops.
7566         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
7567         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
7568         the size of the data accessed in the loop.
7569         (struct nb_iter_bound): Moved...
7570         * cfgloop.h (struct nb_iter_bound): ... here.
7571         (estimated_nb_iterations, parallel_p): New fields in struct loop.
7572         (record_estimate): Declare extern here.
7573         * tree-chrec.c: Fix comments.
7574         (nb_vars_in_chrec): New function.
7575         * tree-chrec.h (nb_vars_in_chrec): Declared here.
7576         * tree-data-ref.c: Don't include lambda.h, that is already included
7577         in tree-data-ref.h.
7578         (tree_fold_divides_p): Don't check for integer_onep.
7579         (tree_fold_bezout): Removed.
7580         (gcd): New static duplicated function.
7581         (int_divides_p, dump_subscript): New.
7582         (dump_data_dependence_relation): Use dump_subscript.
7583         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
7584         estimate_niter_from_size_of_data): New.
7585         (analyze_array_indexes, analyze_array): Call
7586         estimate_niter_from_size_of_data during the detection of array
7587         references.  Pass in a pointer to the statement that contains the
7588         array reference.
7589         (all_chrecs_equal_p): New.
7590         (compute_distance_vector): Renamed compute_subscript_distance.
7591         Deal with multivariate conflict functions.
7592         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
7593         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
7594         (non_affine_dependence_relation): New.
7595         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
7596         analyze_siv_subscript, analyze_miv_subscript,
7597         analyze_overlapping_iterations, subscript_dependence_tester):
7598         Initialize and return last_conflicts function.
7599         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
7600         compute_overlap_steps_for_affine_1_2): New.
7601         (analyze_siv_subscript_affine_cst): Removed.
7602         (analyze_subscript_affine_affine): Disprove dependences based on the
7603         iteration domains.  Solve the univariate dependence case as before,
7604         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
7605         Implement the multivariate case of 2 versus 1 variables.
7606         (build_classic_dist_vector, build_classic_dir_vector): Implement some
7607         unhandled cases.
7608         (find_data_references_in_loop): Compute and initialize
7609         loop->estimated_nb_iterations and loop->parallel_p.
7610         (analyze_all_data_dependences): Modify the debug dump order.
7611         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
7612         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
7613         (SUB_LAST_CONFLICT, subscript->last_conflict,
7614         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
7615         DDR_AFFINE_P, DDR_SIZE_VECT): New.
7616         (find_data_references_in_loop, initialize_data_dependence_relation,
7617         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
7618
7619 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
7620
7621         * configure: Regenerate.
7622
7623 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
7624
7625         PR 17892
7626         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
7627         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
7628         and constant folding of floating point MULT_EXPR/PLUS_EXPR
7629         expressions.
7630
7631 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
7632
7633         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
7634         (s390_gimplify_va_arg): Likewise.
7635
7636 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
7637
7638         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
7639         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
7640         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
7641         * regclass.c (record_address_regs): Remove ifdef.  Use
7642         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
7643         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
7644         definition.
7645         (scan_rtx_address, replace_oldest_value_addr): Use
7646         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
7647         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
7648         unnecessary definitions.
7649         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
7650         and MODE_BASE_REG_REG_CLASS.
7651         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
7652         (MODE_BASE_REG_REG_CLASS): Define.
7653         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
7654         (REG_MODE_OK_FOR_REG_BASE_P): Define.
7655         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
7656         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
7657
7658 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
7659
7660         * tree-ssa-alias.c (verify_name_tags): New function.
7661         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
7662         (verify_alias_info): Call verify_name_tags.
7663
7664 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
7665
7666         PR rtl-optimization/17931
7667         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
7668         ZERO_EXTRACT in it.
7669
7670 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
7671
7672         * arm.c (arm_print_operand): Use output_operand_lossage where possible
7673         rather than aborting.
7674
7675 2004-10-12  Paul Brook  <paul@coudesourcery.com>
7676
7677         * config.gcc: Add armv6{k,z,zk}
7678         * config/arm/arm-cores.def: Add arm1176 and mpcore.
7679         * config/arm/tune.md: Regenerate.
7680         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
7681         Define.
7682         (all_architectures): Add armv6k, armv6z, armv6zk.
7683         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
7684         * doc/invoke.texi: Document new arch and cpu values.
7685
7686 2004-10-12  Paul Brook  <paul@coodesourcery.com>
7687
7688         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
7689         meabi=4.
7690
7691 2004-10-12  Paul Brook  <paul@codesourcery.com>
7692
7693         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
7694         Handle negative constants.
7695
7696 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
7697
7698         PR c/17301
7699         * c-typeck.c (convert_arguments): Return error_mark_node if there
7700         are too few arguments.
7701         (build_function_call): Handle error_mark_node return from
7702         convert_arguments.
7703
7704 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
7705
7706         * configure.ac (symbolic_link): Replace with $LN_S.
7707         (Assembler/Linker): Hard link from gas and binutils trees.
7708         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
7709         * configure: Regenerate.
7710
7711 2004-10-12  Paul Brook  <paul@codesourcery.com>
7712
7713         * configure.ac: Don't look for host assembler when building a canadian
7714         cross.
7715         * configure: Regenerate.
7716
7717 2004-10-11  Roger Sayle  <roger@eyesopen.com>
7718
7719         PR other/17361
7720         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
7721         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
7722         line options for "-lang-asm" and if found allow any of the C-family
7723         front-end options.
7724         (c_common_handle_option): Remove last use of permit_fortran_options.
7725
7726 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7727
7728         * config/s390/s390.c (print_operand): Support 'S' format flag.
7729         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
7730         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
7731         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
7732         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
7733         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
7734         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
7735         ("*movstricthi"): Likewise.
7736         ("*load_multiple_di", "*load_multiple_si"): Likewise.
7737         ("*store_multiple_di", "*store_multiple_si"): Likewise.
7738         ("*sethiqisi", "*sethihisi"): Likewise.
7739         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
7740         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
7741         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
7742         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
7743         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
7744
7745         ("*tmhi_full"): Fix incorrect op_type attribute.
7746
7747         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
7748         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
7749         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
7750         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
7751
7752 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
7753
7754         PR middle-end/16266
7755         * function.c (temp_slots_at_level): Fix typo which creates too
7756         many temp stack slots levels.
7757
7758 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7759
7760         * config/s390/s390.c (s390_trampoline_template): Generate shorter
7761         trampoline code.
7762         (s390_trampoline_instantiate): Adapt.
7763         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
7764
7765 2004-10-11  Roger Sayle  <roger@eyesopen.com>
7766
7767         PR middle-end/17657
7768         * stmt.c (add_case_node): Add additional type argument.  Declare
7769         as static to match prototype.  Convert the upper and lower bounds
7770         to the specified index type.  Optimize away case ranges/values
7771         that are outside the index type's bounds.  Truncate case ranges
7772         that span the index type's bounds.
7773         (expand_case): Avoid unnessary computation and memory allocation
7774         when index type is error_mark_node.  Pass index_type as required
7775         by change to add_case_node API.  No need to convert case range
7776         bounds to index_type, this is now done by add_case_node.
7777
7778 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
7779
7780         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
7781         * config/s390/s390.c (s390_offset_p): New function.
7782         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
7783         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
7784         transform Q->Q alternatives to *clc pattern.
7785         ("*clc"): Move.
7786         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
7787         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
7788         to transform Q->Q alternatives to *mvc pattern.
7789         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
7790         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
7791         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
7792         transform Q->Q alternatives to *nc pattern.
7793         ("*nc"): New insn.  New peephole to merge adjacent NCs.
7794         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
7795         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
7796         transform Q->Q alternatives to *oc pattern.
7797         ("*oc"): New insn.  New peephole to merge adjacent OCs.
7798         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
7799         transform Q->Q alternatives to *xc pattern.
7800         ("*xc"): New insn.  New peephole to merge adjacent XCs.
7801         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
7802
7803 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
7804
7805         * gimplify.c (gimple_push_condition): Make sure that we don't
7806         have any saved condition cleanup if we were at the top level.
7807
7808 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
7809
7810         * config/frv/frv.md (*adddi3_internal): Change name to...
7811         (adddi3): ...replacing the exisiting define_expand.  Combine
7812         alternatives.  Fix the range of the constant constraints ('J' instead
7813         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
7814         to extract the lower and upper halves of the DImode operands.
7815         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
7816         (adddi3_lower): Fix the range of the constant constraints and
7817         remove the bogus operands[2] check.
7818         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
7819         operand 2.  Use addxi to handle constant operands.
7820         (subdi3_lower, subdi3_upper): Don't handle constant operands.
7821
7822 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
7823
7824         * gengtype-lex.l: Add commented } & ) characters to unconfuse
7825         editor's paren matching. Allow #define inside a struct.
7826
7827 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
7828
7829         PR middle-end/17703
7830         part of PR c++/17657
7831         * fold-const.c (fold_build_cleanup_point_expr): New function.
7832         * tree.h (fold_build_cleanup_point_expr): Prototype.
7833
7834 2004-10-10  Eric Christopher  <echristo@redhat.com>
7835
7836         * dwarf2out.c: Move attribute to subprogram declaration
7837         instead of subroutine type.
7838
7839 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
7840
7841         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
7842         hoist_insn_after, and hoist_insn_to_edge.
7843         * rtl.h: Remove the prototypes for reg_referenced_between_p,
7844         no_jumps_between_p, and insn_dependent_p.
7845         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
7846         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
7847         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
7848         hoist_insn_to_edge): Remove.
7849
7850 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7851
7852         PR c/17881
7853         * c-decl.c (grokparms): Don't warn for parameters of incomplete
7854         type in declarations that are not definitions except for the case
7855         of parameters of void type.
7856
7857 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
7858
7859         * tree-cfg.c: Fix comment typos.
7860
7861 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7862
7863         PR c/17301
7864         * builtins.c (expand_builtin_va_start): Check for too few
7865         arguments to va_start.
7866
7867 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
7868
7869         PR c/17189
7870         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
7871         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
7872         pedantic.
7873         * c-parse.in (component_decl): Don't pedwarn here for unnamed
7874         fields.
7875
7876 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
7877
7878         PR tree-optimization/17906
7879         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
7880         copy non-gimple reg arguments.
7881
7882 2004-10-09  Roger Sayle  <roger@eyesopen.com>
7883
7884         PR rtl-optimization/17853
7885         * simplify-rtx.c (simplify_relational_operation): Correct comment.
7886         Reorganize handling of comparison operations with floating point
7887         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
7888         Likewise, introduce support for comparison operations with vector
7889         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
7890
7891         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
7892         * doc/tm.texi: Likewise.
7893
7894 2004-10-09  Steven Bosscher  <stevenb@suse.de>
7895
7896         * regs.h (struct reg_info_def): Remove the last_node_uid and
7897         changes_mode fields.
7898         (REGNO_LAST_NOTE_UID): Don't define.
7899         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
7900         * regmove.c (copy_src_to_dest): Likewise.
7901
7902 2004-10-09  Roger Sayle  <roger@eyesopen.com>
7903
7904         PR middle-end/17894
7905         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
7906         relational comparison operator op needs to be swapped/reversed when
7907         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
7908
7909 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
7910
7911         PR tree-opt/17902
7912         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
7913         instead of bsi_start.
7914         (value_replacement): Likewise.
7915         (abs_replacement): Likewise
7916
7917 2004-10-09  Steven Bosscher  <stevenb@suse.de>
7918
7919         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
7920         (expand_gimple_cond_expr, expand_gimple_tailcall,
7921         expand_gimple_basic_block): Use it to dump RTL for each stmt.
7922         (tree_expand_cfg): Announce full RTL function dump.
7923         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
7924         not the graph version.
7925         * tree-pretty-print.c (dump_generic_node): Allow empty statements
7926         in the arms of a COND_EXPR for lowered nodes.
7927
7928 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
7929
7930         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
7931         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
7932         strtoufix16, strtoufix32, strtoufix64): Declare.
7933
7934 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7935
7936         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
7937         for an out-of-range floating point constant.
7938         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
7939         warning if the target format does not support infinities.
7940
7941 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7942
7943         * emit-rtl.c (last_label_num, base_label_num): Remove.
7944         (max_label_num): Always return label_num.
7945         (set_new_last_label_num, restore_emit_status): Remove.
7946         (init_emit): Don't initialize last_label_num.
7947         * function.c (pop_function_context_from): Don't call
7948         restore_emit_status.
7949         * function.h: Remove the prototype for restore_emit_status.
7950         * rtl.h: Remove the prototype for set_new_last_label_num.
7951
7952 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7953
7954         * stmt.c (expand_decl_init): Remove.
7955         * tree.h: Remove the corresponding prototype.
7956
7957 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7958
7959         * integrate.c (try_constants, subst_constants, mark_stores):
7960         Remove.
7961         * integrate.h: Remove the prototype for try_constants.
7962
7963 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7964
7965         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
7966         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
7967         comments about its relevance to errors.
7968         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
7969
7970 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
7971
7972         PR c/16999
7973         * c-ppoutput.c (cb_ident): Don't quote string as it is already
7974         quoted.
7975
7976 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
7977
7978         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
7979         reference_node_pool.
7980
7981 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
7982
7983         * tree-cfg.c: Fix a comment typo.
7984
7985 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
7986
7987         * config/s390/s390.c (s390_register_info): Don't save fprs for
7988         -msoft-float.
7989         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
7990
7991 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
7992
7993         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
7994         (TARGET_DEFAULT): Use symbolic values.
7995         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
7996         (TARGET_DEFAULT): Use symbolic values.
7997         * config/s390/s390.c (s390_backchain_string): Initialize to
7998         TARGET_DEFAULT_BACKCHAIN.
7999
8000 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8001
8002         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
8003         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
8004         code.
8005         (expand_builtin_strcat): Accept a type parameter.
8006         (fold_builtin_mempcpy): Accept a type and endp parameter.
8007
8008         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
8009         Accept an `exp' instead of an `arglist'.
8010
8011 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
8012
8013         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
8014         reverting my 2004-09-07 patch to use build_int_cst.
8015
8016 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
8017
8018         PR target/17245
8019         * config/sparc/sparc.c (input_operand): Remove redundant code
8020         for handling LO_SUM.
8021         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
8022         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
8023         Otherwise only accept it for TFmode if quad move insns are available.
8024
8025 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
8026
8027         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
8028         common cases will be caught earlier than others.
8029
8030 2004-10-08  Michael Matz  <matz@suse.de>
8031
8032         * loop-doloop.c (doloop_optimize): Extend count.
8033
8034 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8035
8036         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
8037         (prefetch): Convert to expander.
8038
8039 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8040
8041         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
8042         first argument of CALL.
8043         (tls_local_dynamic): Likewise.
8044
8045 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
8046
8047         * c-typeck.c (enum impl_conv): New.
8048         (convert_for_assignment): Use it.  Take tree for function called
8049         instead of its name.  Handle ObjC selectors for diagnostics at
8050         start of function.  Select diagnostic text within the function
8051         using full sentences for diagnsotics.  Use %qE to name functions
8052         in diagnostics.
8053         (convert_arguments, build_modify_expr,
8054         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
8055         callers to convert_for_assignment.
8056         (warn_for_assignment): Remove.
8057
8058 2004-10-08  Nick Clifton  <nickc@redhat.com>
8059
8060         * config/sh/symbian.c (symbian_possibly_export_base_class):
8061         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
8062         TYPE_CONTAINS_VPTR_P.
8063
8064 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
8065
8066         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
8067         fixed registers form all_used_regs. Update call_really_used_regs.
8068         (CALL_REALLY_USED_REGISTERS): Define.
8069         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
8070         with call_really_used_regs.
8071
8072 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
8073
8074         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
8075         for -profile as well as -p and -pg.
8076
8077 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
8078
8079         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
8080
8081 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
8082
8083         * tree-cfg.c (tree_block_forwards_to): Remove.
8084         * tree-flow.h: Remove the corresponding prototype.
8085
8086 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
8087
8088         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
8089         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
8090
8091 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
8092
8093         Radar 3813796
8094         * config/rs6000/rs6000.c (rs6000_generate_compare): When
8095         flag_trapping_math is in effect, don't generate subtract
8096         instructions.
8097
8098 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
8099
8100         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
8101         * config/s390/s390.c (s390_narrow_logical_operator): New function.
8102         (s390_extra_constraint_str): Add 'A' constraints.
8103         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
8104         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
8105         (CONSTRAINT_LEN): Likewise.
8106         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
8107         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
8108         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
8109         ("*iordi3"): Add OI alternative and splitter.
8110         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
8111         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
8112         ("*xordi3"): Add XI alternative and splitter.
8113         ("*xorsi3", "*xorhi3"): Likewise.
8114
8115 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
8116
8117         * config/mips/mips.c (mips_function_rodata_section): New function.
8118         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
8119
8120 2004-10-07  Devang Patel  <dpatel@apple.com>
8121
8122         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
8123         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
8124         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
8125         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
8126         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
8127         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
8128         UNSPEC_VCONDU_V16QI): New constant defines.
8129         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
8130         vconduv16qi): New patterns.
8131         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
8132         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
8133         (get_vec_cmp_insn): Same.
8134         (get_vsel_insn): Same.
8135         (rs6000_emit_vector_compare): Same.
8136         (rs6000_emit_vector_select): Same.
8137         (INSN_NOT_AVAILABLE): New.
8138
8139 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
8140
8141         PR tree-optimization/17749
8142         * tree-tailcall.c (find_tail_calls): Check that parameter is
8143         a gimple_reg.
8144
8145 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
8146
8147         * config/ia64/ia64.c: Fix a comment typo.
8148
8149 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
8150
8151         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
8152
8153 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8154
8155         PR c++/17115
8156         * tree-inline.c (expand_call_inline): Do not warn for functions
8157         marked with attribute noinline.
8158
8159 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
8160
8161         PR target/17862
8162         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
8163         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
8164
8165         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
8166         of 0 as 4th argument to pass_by_reference.
8167         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
8168
8169 2004-10-06  Eric Christopher  <echristo@redhat.com>
8170
8171         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
8172         attribute.
8173
8174 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
8175
8176         PR target/17770
8177         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
8178
8179 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
8180
8181         PR rtl-optimization/17791
8182         * loop-doloop.c (doloop_modify): Take number of iterations as
8183         argument.
8184         (doloop_optimize): Extend or shorten the number of iterations
8185         when changing mode of counter register.
8186         * loop-iv.c (lowpart_subreg): Export.
8187         * rtl.h (lowpart_subreg): Declare.
8188
8189 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
8190
8191         PR tree-optimization/17806
8192         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
8193         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
8194         flags moved to split_edge.
8195
8196 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
8197
8198         PR middle-end/17835
8199         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
8200         before tentatively building the conditional move sequence.
8201
8202 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
8203
8204         PR target/16815
8205         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
8206         check.
8207         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
8208         function_arg_padding.
8209
8210 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
8211
8212         PR bootstrap/17857
8213         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
8214
8215 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
8216
8217         * hooks.c (hook_int_void_1, hook_void_int): Remove.
8218         * hooks.h: Remove the corresponding prototypes.
8219
8220 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
8221
8222         PR middle-end/17849
8223         * tree-nested.c (walk_stmt_info): Add changed field.
8224         (convert_nonlocal_reference): Set changed to when we
8225         change a decl to unnested decl.
8226         <case ADDR_EXPR>: Instead of checking if the immediate part
8227         of the ADDR_EXPR changed, check the field changed.
8228         Use recompute_tree_invarant_for_addr_expr instead of unsetting
8229         TREE_INVARIANT.
8230         (convert_local_reference):  Set changed to when we
8231         change a decl to unnested decl.
8232         <case ADDR_EXPR>: Instead of checking if the immediate part
8233         of the ADDR_EXPR changed, check the field changed.
8234         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
8235
8236 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
8237
8238         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
8239         * dwarf2out.c (dwarf2out_init): Remove references to
8240         DWARF2_GENERATE_TEXT_SECTION_LABEL.
8241         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
8242         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
8243
8244 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
8245
8246         * c-typeck.c (convert_arguments): Take expression for called
8247         function rather than its name.  Handle ObjC selectors directly
8248         rather than relying on warn_for_assignment to do so.  Call warning
8249         directly rather than warn_for_assignment.  Use %qE in diagnostics.
8250         Say "argument" rather than "arg" in diagnostics.
8251         (build_function_call): Update call to convert_arguments.
8252
8253 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
8254
8255         PR debug/17787
8256         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
8257         ENUMs specially instead of just saying we do.
8258
8259 2004-10-06  Eric Christopher  <echristo@redhat.com>
8260
8261         * dwarf2.h: Sync with include/elf/dwarf2.h
8262
8263 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
8264
8265         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
8266         and TREE_VEC nodes.
8267
8268 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
8269
8270         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
8271         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
8272
8273 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
8274
8275         * lambda-code.c (compute_nest_using_fourier_motzkin): New
8276         function.
8277         (lambda_compute_auxillary_space): Split from here.
8278
8279 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
8280
8281         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
8282         * tree-flow.h: Add prototype.
8283         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
8284         expr_invariant_in_loop.
8285
8286 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
8287
8288         * tree-cfg.c (thread_jumps): Remove a duplicate check for
8289         EXIT_BLOCK_PTR.
8290
8291 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
8292
8293         * config/s390/s390-protos.h (s_imm_operand): Remove.
8294         (s390_pool_operand): Add prototype.
8295         * config/s390/s390.c (general_s_operand): Remove.
8296         (s_imm_operand): Remove.
8297         (s_operand): Merge contents of general_s_operand.
8298         (s390_pool_operand): New function.
8299         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
8300         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
8301         ("*cmpdi_ccu"): Merge Q->Q alternative.
8302         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
8303         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
8304         ("*cli"): Remove.
8305         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
8306         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
8307         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
8308
8309 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
8310
8311         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
8312         call ia64_function_arg_boundary.
8313         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
8314         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
8315         (ia64_function_arg_advance): Do not put 128 bit floats into
8316         FP registers.
8317
8318 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8319
8320         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
8321         Accept an expression instead of an arglist.
8322         (expand_builtin_stpcpy): Accept an expression instead of an
8323         arglist.
8324
8325 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
8326
8327         PR target/16007
8328         * doc/install.texi (*-*-solaris2*): Mention potential problem
8329         with Sun assembler + GNU linker and C++ programs.
8330         Document status of binutils 2.15 release.
8331
8332 2004-10-06  Jan Hubicka  <jh@suse.cz>
8333
8334         * cse.c (cse_main): Kill push/pop context.
8335
8336 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
8337
8338         * pretty-print.c: Include tree.h.
8339         (pp_base_prepare_to_format): New function, logic from
8340         text_specifies_location.
8341         (pp_base_format_text): Use gcc_assert.
8342         * pretty-print.h (pp_prepare_to_format): New macro.
8343         (pp_base_prepare_to_format): Prototype.
8344         * diagnostic.c (text_specifies_location): Delete.
8345         (bug_report_request): Delete.
8346         (diagnostic_set_info): Don't call text_specifies_location.
8347         (diagnostic_action_after_output): Put text from
8348         bug_report_request inline here.  Use gcc_unreachable.
8349         (diagnostic_report_current_function): Fix comment.
8350         (diagnostic_report_diagnostic): Clarify logic for error recursion.
8351         Call pp_prepare_to_format before diagnostic_starter.
8352         (trim_filename): Use IS_DIR_SEPARATOR.
8353         (fatal_error, internal_error): Use gcc_unreachable.
8354         (error_recursion): Call diagnostic_action_after_output to
8355         issue the bug_report_request message and exit.
8356         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
8357
8358         * c-parse.in: Add list of diagnostic messages to insulate
8359         translation template from version of yacc/bison used to
8360         compile the grammar.
8361
8362 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
8363
8364         PR 16406
8365         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
8366
8367 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8368
8369         * basic-block.h: Remove the prototype for
8370         flow_preorder_transversal_compute.
8371         * cfganal.c (dfst_node): Remove.
8372         (flow_preorder_transversal_compute): Likewise.
8373         * rtl.h: Remove the prototype for get_jump_table_offset.
8374         * rtlanal.c (get_jump_table_offset): Remove.
8375
8376 2004-10-05  Richard Henderson  <rth@redhat.com>
8377
8378         PR 17756
8379         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
8380
8381 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
8382
8383         PR bootstrap/17817
8384         * Makefile.in: Stage the build directory too.
8385
8386 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
8387
8388         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
8389
8390         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
8391         (frv_emit_move): Same.
8392
8393         * config/frv/frv.c (frv_emit_move): New.
8394         (frv_legitimize_address): New.
8395
8396         * config/frv/frv.md ("movsi"): Call frv_emit_move.
8397         ("movqi"): Same.
8398         ("movhi"): Same.
8399         ("movdi"): Same.
8400         ("movsf"): Same.
8401         ("movdf"): Same.
8402
8403 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8404
8405         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
8406         system headers.
8407
8408 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8409
8410         * c-decl.c (pushdecl): When an extern declaration at block scope
8411         refers to a visible entity with internal linkage, use the old DECL
8412         rather than the new one.
8413
8414 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8415
8416         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
8417         comments.
8418
8419 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8420
8421         * tree-cfg.c (thread_jumps): Remove a duplicate check for
8422         an infinite loop.
8423
8424 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8425
8426         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
8427         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
8428         blocks.
8429
8430 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8431
8432         * tree-cfg.c (cleanup_tree_cfg): Don't call
8433         delete_unreachable_blosk() after thread_jumps().
8434         (thread_jumps): Always remove basic blocks as they become
8435         unreachable.
8436
8437 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
8438
8439         * tree-cfg.c (cleanup_tree_cfg): Remove variable
8440         something_changed.  Simplify the while loop.
8441
8442 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8443
8444         * builtins.c (expand_builtin_memmove): Delete duplicate code
8445         and accept a tree type for the result.
8446         (expand_builtin_bcopy): Accept a tree type for the result.
8447         (fold_builtin_memmove): Accept an arglist and tree type for
8448         the result.
8449
8450 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
8451
8452         * config/s390/s390.c (s390_dump_pool): Remove return value.
8453         Use gen_pool_align, gen_pool_section_start/end instead of
8454         gen_pool_start/end_31/64.
8455         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
8456         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
8457         ("pool_start_31", "pool_end_31"): Remove.
8458         ("pool_start_64", "pool_end_64"): Likewise.
8459         ("pool_align", "pool_section_start", "pool_section_end": New insns.
8460
8461         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
8462         (TARGET_CANNOT_COPY_INSN_P): Define.
8463         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
8464         (struct constant_pool): New member 'execute'.
8465         (s390_add_execute, s390_find_execute): New functions.
8466         (s390_execute_label, s390_execute_target): Likewise.
8467         (s390_dump_pool): Output in-pool execute target templates.
8468         (s390_dump_execute): New function.
8469         (s390_alloc_pool, s390_free_pool): Handle execute templates.
8470         (s390_mainpool_start, s390_mainpool_finish): Likewise.
8471         (s390_chunkify_start, s390_chunkify_finish): Likewise.
8472         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
8473         ("*execute"): New insn pattern.
8474         ("movmem_short", "*movmem_short"): Use splitters to generate
8475         explicit execute pattern, remove embedded execute.
8476         ("clrmem_short", "*clrmem_short"): Likewise.
8477         ("cmpmem_short", "*cmpmem_short"): Likewise.
8478
8479 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
8480
8481         * tree-ssa.c (verify_ssa): Verify phi arguments only
8482         contain renamed names.
8483
8484 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
8485
8486         * config/rs6000/linux.h: Formatting, whitespace.
8487         * config/rs6000/linux64.h: Likewise.
8488         * config/rs6000/rs6000-protos.h: Likewise.
8489         * config/rs6000/rs6000.c: Likewise.
8490         (easy_vector_splat_const): Add fall thru comments.
8491         (output_vec_const_move): Likewise.
8492
8493 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
8494
8495         * Makefile.in: Update -Wno-error exceptions for move to build dir.
8496
8497 2004-10-05  Chao-Ying Fu  <fu@mips.com>
8498             Richard Sandiford  <rsandifo@redhat.com>
8499
8500         * doc/invoke.texi (-mpaired-single): Link to the new description of the
8501         built-in functions.  Document dependencies.
8502         (-mips3d): Add link here too.
8503         * doc/extend.texi (MIPS Paired-Single Support): New section.
8504
8505 2004-10-04  Chao-ying Fu  <fu@mips.com>
8506
8507         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
8508
8509 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
8510
8511         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
8512         Initialize OPT_STATS to 0.
8513
8514 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
8515
8516         * tree-data-ref.c: Fix comment typos.
8517
8518 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
8519
8520         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
8521         the predicate cannot be computed, don't initialize the result to
8522         false.
8523
8524 2004-10-01  Eric Christopher  <echristo@redhat.com>
8525
8526         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
8527         locally defined enum.
8528         * dwarf2out.c (add_calling_convention_attribute): Don't
8529         emit DW_CC_normal.
8530
8531 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
8532
8533         PR c/17178, PR c/17820
8534         * c-decl.c (pop_scope): Do not warn about unused static
8535         variables as they warned in the middle-end.
8536
8537 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8538
8539         * builtins.c (expand_builtin_memcpy): Delete duplicate code
8540         and make the first parameter the expression not the arglist.
8541
8542 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
8543
8544         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
8545         as valid modes to expand address expressions.
8546
8547 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
8548
8549         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
8550         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
8551         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
8552         code formatting conventions.
8553
8554 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
8555
8556         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
8557
8558 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
8559
8560         PR tree-optimization/16632
8561         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
8562         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
8563         where | is used instead of &.
8564
8565 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
8566
8567         * ginclude/stddef.h: Fix a comment typo.
8568
8569 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8570
8571         PR target/17443
8572         * config.gcc (i?86-*-solaris2*): Restore correct logic
8573         for --enable-threads option.
8574         (sparc64-*-solaris2*): Likewise.
8575         (sparc-*-solaris2*): Likewise.
8576
8577 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
8578
8579         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
8580         (OS_MISSING_POWERPC64): Move, and comment.
8581         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
8582         (OS_MISSING_POWERPC64): Move, and comment.
8583
8584 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
8585
8586         * arm.c (output_call_mem): Add missing \t.
8587
8588 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8589
8590         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
8591         expand_builtin_strncmp): Delete duplicate code.
8592
8593 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
8594
8595         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
8596         take check-base and -limit arguments.
8597         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
8598         check ranges for ARRAY_REF and COMPONENT_REF.
8599         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
8600         instrumentation.
8601
8602 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
8603
8604         * c-objc-common.c (c_tree_printer): Correct description of %E.
8605         Don't fall through after printing an expression.
8606
8607 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
8608
8609         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
8610
8611 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
8612
8613         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
8614         delete_unrechable_blocks() only when necessary.
8615
8616 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
8617
8618         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
8619         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
8620         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
8621         __gthread_recursive_mutex_unlock): New functions.
8622
8623 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
8624
8625         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
8626         * config/s390/tpf-eh.c: Remove file.
8627         * config/s390/tpf-unwind.h: New file.
8628         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
8629         (MD_UNWIND_SUPPORT): Define.
8630
8631 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
8632
8633         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
8634
8635 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
8636
8637         * config/s390/s390-protos.h (s390_comparison): Add prototype.
8638         * config/s390/s390.c (s390_comparison): New function.
8639         (s390_branch_condition_mask): Return -1 for invalid comparisons.
8640         (s390_branch_condition_mnemonic): Assert valid comparison.
8641         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
8642         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
8643         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
8644         s390_comparison instead of comparison_operator.
8645
8646         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
8647         ("cmpmemdi"): Remove.
8648         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
8649         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
8650         ("cmpint_si"): Rename to ...
8651         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
8652         ("cmpint_di", "*cmpint_di"): Likewise.
8653         * config/s390/s390.c (s390_canonicalize_comparison): Remove
8654         redundant UNSPEC_CMPINT conversions.
8655         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
8656
8657 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
8658
8659         * collect2.c (COLLECT_PARSE_FLAG): Remove.
8660         (main): Remove a reference to COLLECT_PARSE_FLAG
8661         * system.h: Poison COLLECT_PARSE_FLAG.
8662         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
8663
8664 2004-10-01  Paul Brook  <paul@codesourcery.com>
8665
8666         * config/arm/crti.asm: Give _init and _fini function type.
8667
8668 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
8669
8670         * common.opt (ftree-loop-ivcanon): Enable by default.
8671         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
8672         Enable complete loop unrolling.
8673         (canonicalize_induction_variables, tree_unroll_loops_completely):
8674         Reset scev info.
8675
8676 2004-10-01  Paul Brook  <paul@codesourcery.com>
8677
8678         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
8679         not register number.
8680         (thumb_find_work_register): Search full register range.
8681
8682 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
8683
8684         PR tree-opt/17343
8685         * tree-cfg.c (group_case_labels): Get the label and not
8686         the case expr for the default case.
8687         When the label we looking at is the default, decrement the
8688         new_size.
8689
8690 2004-10-01  Jan Hubicka  <jh@suse.cz>
8691
8692         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
8693         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8694         * toplev.h (tree_rest_of_compilation): Update prototype.
8695         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
8696
8697 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
8698
8699         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
8700         cleanup_control_flow() out of the while loop.
8701
8702 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
8703
8704         * tree-vectorizer.c (vectorizable_operation): Fail unless
8705         the mode for the vector type is indeed a vector mode.
8706
8707 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
8708
8709         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
8710         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
8711         of convert.
8712         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
8713         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
8714         follow_ssa_edge_in_rhs): Ditto.
8715         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
8716         (dump_iv): Dump base_object.
8717         (dump_use, dump_cand): Use dump_iv.
8718         (determine_base_object): New function.
8719         (alloc_iv): Initialize base_object field.
8720         (record_use): Clear the ssa_name field of iv.
8721         (get_computation_cost_at): Do not use difference of addresses of
8722         two different objects.
8723         (may_eliminate_iv): Do not require the loop to have just single exit.
8724         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
8725         (nonzero_p): New function.
8726         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
8727         tree_simplify_using_condition, simplify_using_initial_conditions,
8728         loop_niter_by_eval, find_loop_niter_by_eval,
8729         estimate_numbers_of_iterations_loop, compare_trees,
8730         upper_bound_in_type, lower_bound_in_type,
8731         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
8732         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
8733         instead of integer_(non)zerop.
8734
8735 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
8736
8737         Revert
8738         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
8739
8740         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
8741         and TI_VA_LIST_FPR_COUNTER_FIELD.
8742         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
8743         * tree-pass.h (pass_stdarg): Add.
8744         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
8745         * tree-stdarg.c: New file.
8746         * Makefile.in (OBJS-common): Add tree-stdarg.o.
8747         (tree-stdarg.o): Add dependencies.
8748         * function.h (struct function): Add va_list_gpr_size and
8749         va_list_fpr_size fields.
8750         * function.c (allocate_struct_function): Initialize them.
8751
8752         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
8753         va_list_{g,f}pr_counter_field.
8754         (ix86_setup_incoming_varargs): Don't do anything if reg_save
8755         area will not be used.  Only save registers that tree-stdarg.c
8756         detected they need saving.
8757         (ix86_va_start): Don't set up fields that won't be used.
8758
8759         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
8760         va_list_{g,f}pr_counter_field.
8761         (setup_incoming_varargs): Don't do anything if reg_save
8762         area will not be used.  Only save registers that tree-stdarg.c
8763         detected they need saving.
8764         (rs6000_va_start): Don't set up fields that won't be used.
8765
8766 2004-09-30  Eric Christopher  <echristo@redhat.com>
8767
8768         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
8769         sh abi.
8770         * dwarf2out.c (add_calling_convention_attribute): New function.
8771         (gen_subroutine_type_die): Use.
8772         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
8773         * target.h (gcc_target): Add dwarf_calling_convention.
8774         * hooks.c (hook_int_tree_0): New function.
8775         * hooks.h: Prototype.
8776         * config/sh/sh.c: Include dwarf2.h.
8777         (sh_dwarf_calling_convention): New function.
8778         (TARGET_DWARF_CALLING_CONVENTION): Use.
8779         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
8780
8781 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8782
8783         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8784         expand_builtin_strrchr, expand_builtin_strpbrk,
8785         expand_builtin_strncat, expand_builtin_strspn,
8786         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
8787         code.
8788
8789 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8790
8791         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
8792         prototype.
8793         (s390_logical_operator_ok_p): Likewise.
8794         * config/s390/s390.c (s390_expand_logical_operator): New function.
8795         (s390_logical_operator_ok_p): Likewise.
8796         * config/s390/s390.md ("anddi3"): New expander.
8797         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
8798         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
8799         ("andsi3"): Use s390_expand_logical_operator.
8800         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
8801         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
8802         ("andhi3"): New expander.
8803         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
8804         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
8805         ("andqi3"): New expander.
8806         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
8807         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
8808         ("iordi3"): New expander.
8809         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
8810         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
8811         ("iorsi3"): Use s390_expand_logical_operator.
8812         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
8813         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
8814         ("iorhi3"): New expiorer.
8815         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
8816         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
8817         ("iorqi3"): New expiorer.
8818         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
8819         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
8820         ("xordi3"): New expander.
8821         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
8822         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
8823         ("xorsi3"): New expander.
8824         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
8825         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
8826         ("xorhi3"): New expander.
8827         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
8828         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
8829         ("xorqi3"): New expander.
8830         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
8831         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
8832
8833 2004-09-30  Roger Sayle  <roger@eyesopen.com>
8834
8835         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
8836         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
8837         machine mode as the result.
8838
8839 2004-09-30  Ben Elliston  <bje@au.ibm.com>
8840
8841         PR bootstrap/17761
8842         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
8843         FOR_EACH_EDGE macros.
8844
8845 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8846
8847         * c-tree.h (readonly_error): Remove.
8848         * c-typeck (enum lvalue_use): New.
8849         (lvalue_or_else, readonly_error): Use it.  All callers changed.
8850         (readonly_error): Make static.
8851
8852 2004-09-30  Jan Hubicka  <jh@suse.cz>
8853
8854         PR debug/13974
8855         * cfgrtl.c (try_redirect_by_replacing_jump,
8856         force_nonfallthru_and_redirect, commit_one_edge_insertion,
8857         cfg_layout_merge_blocks):  Do not attach any line number information
8858         to newly inserted instructions.
8859         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
8860         emit_insn_*_noloc.
8861         (emit_*insn_before, emit_insn*_after): New.
8862         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
8863         existing locators.
8864         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
8865         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
8866
8867 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8868
8869         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
8870         (s390_return_address_offset): Remove.
8871         (s390_can_eliminate): Add prototype.
8872         (s390_initial_elimination_offset): Add prototype.
8873         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
8874         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
8875         * config/s390/s390.c (s390_arg_frame_offset): Remove.
8876         (s390_return_address_offset): Remove.
8877         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
8878         (struct machine_function): New member split_branches_pending_p.
8879         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
8880         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
8881         (s390_optimize_prologue): Remove base_used argument.  Call
8882         s390_update_frame_layout instead of s390_register_info.  Handle
8883         prologue/epilogue insns that touch only RETURN_REGNUM.
8884         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
8885         (s390_register_info): Remove base_used and return_addr_used
8886         arguments, compute special register usage inline.  Return live
8887         register data to caller.
8888         (s390_frame_info): Remove arguments, do not call s390_register_info.
8889         (s390_init_frame_layout): New function.
8890         (s390_update_frame_layout): Likewise.
8891         (s390_emit_prologue): Call s390_update_frame_layout; some code
8892         move to there.  Do not emit pool placeholder insn if unnecessary.
8893
8894 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
8895
8896         * config/s390/s390.c (legitimate_reload_constant_p): Remove
8897         floating point constant workaround.
8898         (s390_secondary_input_reload_class): Handle PLUS reloads
8899         with too-large constant.
8900         (s390_expand_plus_operand): Likewise.
8901         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
8902         ("movsi"): Likewise.  Also, remove workaround for non-general
8903         operands.
8904         ("movdf"): Do not call force_const_mem.
8905         ("movsf"): Likewise.  Merge expander with *movsf insn.
8906         ("*movsf"): Remove, merge with movsf expander.
8907
8908 2004-09-30  Paul Brook  <paul@codesourcery.com>
8909
8910         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
8911         (ENDFILE_SPEC): Define.
8912         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
8913
8914 2004-09-30  Richard Henderson  <rth@redhat.com>
8915
8916         * config/alpha/qrnnd.asm: Mark for noexecstack.
8917
8918 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
8919
8920         * protoize.c, tree-cfg.c: Fix comment typos.
8921
8922 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8923
8924         PR c/17730
8925         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
8926
8927 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
8928
8929         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
8930         expressions...
8931         (add_pointed_to_expr): ... here.
8932         Call add_pointed_to_expr for variables with DECL_INITIAL set.
8933         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
8934         pointer variable, if set.
8935
8936 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
8937
8938         * config/sh/sh.c: Follow spelling conventions.
8939
8940 2004-09-29  Richard Henderson  <rth@redhat.com>
8941
8942         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
8943         * doc/tm.texi (DWARF_ZERO_REG): New.
8944
8945         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
8946         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
8947         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
8948
8949 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
8950
8951         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
8952         with a PLUS as source operand.
8953         (expand_movstr): Likewise.
8954         (expand_builtin_stpcpy): Likewise.
8955
8956 2004-09-29  Richard Henderson  <rth@redhat.com>
8957
8958         PR 17739
8959         * tree-gimple.c (is_gimple_reg): Reject hard registers.
8960         (is_gimple_asm_val): New.
8961         * tree-gimple.h (is_gimple_asm_val): Declare.
8962         * gimplify.c (gimplify_asm_expr): Use it.
8963         * tree-pretty-print.c (print_declaration): Dump hard regs.
8964         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
8965         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
8966         * tree-ssa-pre.c (is_undefined_value): Likewise.
8967         * tree-ssa-copy.c (may_propagate_copy): Likewise.
8968         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
8969         * tree-ssa.c (warn_uninit): Likewise.
8970         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
8971
8972 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
8973
8974         * c-decl.c (merge_decls): Use comptype when comparing
8975         types to decide on DECL_SIZE save of olddecl.
8976
8977 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
8978
8979         * tree.h (INDIRECT_REF_P): New macro.
8980         * alias.c (get_alias_set): Use it
8981         (nonoverlapping_memrefs_p): Ditto.
8982         * emit-rtl.c (mem_expr_equal_p): Ditto.
8983         (set_mem_attributes_minus_bitpos): Ditto.
8984         (is_gimple_addressable): Ditto.
8985         (get_base_address): Ditto.
8986         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
8987         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
8988         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
8989         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
8990         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
8991         (add_address_candidates): Ditto.
8992         (rewrite_address_base): Ditto.
8993
8994 2004-09-30  Ben Elliston  <bje@au.ibm.com>
8995
8996         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
8997         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
8998         (rewrite_ssa_into_ssa): Likewise.
8999         * tree-phinodes.c (create_phi_node): Access the number of
9000         predecessor edges using EDGE_COUNT() and not num_preds.
9001
9002 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
9003
9004         PR c/7425
9005         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
9006
9007 2004-09-29  Eric Christopher  <echristo@redhat.com>
9008
9009         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
9010
9011 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
9012
9013         * config/cris/cris.md (moverside, movemside): With MEM, make sure
9014         the address is (plus reg mem).
9015
9016 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
9017
9018         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
9019
9020 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
9021
9022         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
9023         cascaded if ... else if with a switch.
9024
9025 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9026
9027         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
9028
9029 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
9030
9031         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
9032         and TI_VA_LIST_FPR_COUNTER_FIELD.
9033         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
9034         * tree-pass.h (pass_stdarg): Add.
9035         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
9036         * tree-stdarg.c: New file.
9037         * Makefile.in (OBJS-common): Add tree-stdarg.o.
9038         (tree-stdarg.o): Add dependencies.
9039         * function.h (struct function): Add va_list_gpr_size and
9040         va_list_fpr_size fields.
9041         * function.c (allocate_struct_function): Initialize them.
9042
9043         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
9044         va_list_{g,f}pr_counter_field.
9045         (ix86_setup_incoming_varargs): Don't do anything if reg_save
9046         area will not be used.  Only save registers that tree-stdarg.c
9047         detected they need saving.
9048         (ix86_va_start): Don't set up fields that won't be used.
9049
9050         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
9051         va_list_{g,f}pr_counter_field.
9052         (setup_incoming_varargs): Don't do anything if reg_save
9053         area will not be used.  Only save registers that tree-stdarg.c
9054         detected they need saving.
9055         (rs6000_va_start): Don't set up fields that won't be used.
9056
9057 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
9058
9059         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
9060         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
9061         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
9062         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
9063         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
9064         ATTR_NONNULL_1_4): New.
9065
9066 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
9067
9068         PR tree-optimization/17697
9069         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
9070         cfg if needed.
9071
9072 2004-09-28  Per Bothner  <per@bothner.com>
9073
9074         * profile.c (branch_prob): Pass correct value to output_location,
9075         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
9076
9077 2004-09-28  Richard Henderson  <rth@redhat.com>
9078
9079         PR 15089
9080         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
9081         * tree-flow.h (may_propagate_copy_into_asm): Declare.
9082         * tree-ssa-ccp.c (replace_uses_in): Use it.
9083         * tree-ssa-dom.c (cprop_operand): Likewise.
9084
9085 2004-09-28 Jeff Law  <law@redhat.com>
9086
9087         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
9088         that no outgoing edges be left in the duplicate block.  Do no
9089         update information on outgoing edges or PHI nodes in target
9090         blocks here.
9091         (remove_ctrl_stmt_and_useless_edges): Renamed from
9092         remove_last_stmt_and_useless_edges.  Handle case where the
9093         block is empty or has no control statements.  Do not update edge
9094         flags here.
9095         (thread_block): Create a template block rather than copying the
9096         original block every time.  Create outgoing edges from the
9097         duplicate blocks and update PHIs at the target of the outgoing
9098         edges here.  Fix edge flags for the original block if necessary.
9099         * cfghooks (duplicate_block): No longer assert that the original
9100         block has incoming edges.
9101
9102 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
9103
9104         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
9105         Reg Vars to enforce register allocation with general constraints.
9106         (Explicit Reg Vars): Clarify relation to asm statements.
9107         (Local Reg Vars): Similar.
9108
9109 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
9110
9111         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
9112         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
9113         build_control_flow, new_edge): Remove.
9114         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
9115         (bitlst, bitlst_table_last, bitlst_table): Remove.
9116         (bblst): Store basic_block pointer instead of block index.
9117         (bblst_table): Likewise.
9118         (edgelst): Store edge pointer instead of edge index.
9119         (edgelst_table, edgelst_last): New variables.
9120         (extract_bitlst): Rename to ...
9121         (extract_edgelst): ... this.  Return edge pointers, not indices.
9122         (split_edges): Update call.
9123         (rgn_edges): Store edge pointers instead of indices.
9124         (edge_to_bit): Remove.
9125         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
9126         (SET_EDGE_TO_BIT): New macro.
9127         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
9128         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
9129         data structures instead of haifa_edge et al.  Use edge pointers
9130         instead of edge indices everywhere.
9131         (compute_dom_prob_ps): Use standard CFG data structures.  Account
9132         for exit edges.
9133         (compute_trg_info): Likewise.
9134         (propagate_deps): Likewise.
9135         (debug_candidate): Account for bblst data structure change.
9136         (check_live_1, update_live_1, is_pfree): Likewise.
9137         (IS_REACHABLE): Use standard CFG data structures.
9138         (init_ready_list): Update bblst_table/edgelst_table allocation.
9139         (schedule_region): Update alloc/cleanup code to data structure
9140         changes.  Use edge->aux to store per-region edge index.
9141         (init_regions): No longer call build_control_flow.  Do not
9142         create edge list any more.
9143
9144 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
9145
9146         * cse.c (cse_insn): Avoid creating direct non-local jumps.
9147         * combine.c (can_combine_p): Likewise.
9148         * local-alloc. (update_equiv_regs): Likewise.
9149
9150 2004-09-28  Richard Henderson  <rth@redhat.com>
9151
9152         PR 17531
9153         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
9154         Don't check VOIDmode here.  Force PLUS operands to common type.
9155         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
9156         Pmode if given a non pointer type.
9157
9158 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9159
9160         PR 17531
9161         * optabs.c (expand_binop): Force constants to the correct mode.
9162
9163 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
9164
9165         * config/s390/s390.c (s390_adjust_cost): Remove.
9166         (TARGET_SCHED_ADJUST_COST): Do not redefine.
9167         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
9168         * config/s390/s390.md ("main_pool"): Use "larl" type
9169         attribute if TARGET_CPU_ZARCH.
9170
9171 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
9172
9173         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
9174         variable.
9175
9176 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
9177
9178         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
9179         name to the pass.
9180
9181 2004-09-28  Steven Bosscher  <stevenb@suse.de>
9182
9183         * common.opt (flag_gcse_sm): Disable by default.
9184         (flag_gcse_las): Likewise.
9185         (flag_web): Likewise.  Create from this file.
9186         * flags.h: Remove flag_web declaration.
9187         * toplev.c (flag_web): Likewise.
9188         (process_options): Never set flag_web.
9189
9190 2004-09-28  Steven Bosscher  <stevenb@suse.de>
9191
9192         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
9193         * tree-ssa-propagate.c: Include vec.h.
9194         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
9195         instead of varrays.
9196         (cfg_blocks_add): Assert the block is not already in the worklist.
9197         Update uses of interesting_ssa_edges and varying_ssa_edges.
9198         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
9199         ssa_propagate): Likewise.
9200
9201 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
9202
9203         PR c/16409
9204         * c-decl.c (start_decl): Check for initializing incomplete array
9205         of VLAs.
9206         (build_compound_literal): Check for TYPE being error_mark_node.
9207         * c-parse.in (primary): Check for VLA compound literals.
9208
9209 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
9210
9211         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
9212         with --disable-checking.
9213
9214 2004-09-28  Devang Patel  <dpatel@apple.com>
9215
9216         * tree-pretty-print.c (dump_generic_node): Print vector types.
9217
9218 2004-09-28  Nick Clifton  <nickc@redhat.com>
9219
9220         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
9221         invocation of the function sh_init_cumulative_args.
9222         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
9223         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
9224         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
9225         * config/sh/sh.c (sh_init_cumulative_args): New function based
9226         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
9227         heuristic added to determine the setting of force_mem when a
9228         library function is being called.
9229
9230 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
9231
9232         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
9233         Skip constant arguments.
9234
9235 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
9236
9237         * tree-ssa-alias.c (create_name_tags): If PTR points to a
9238         volatile type, mark the tag volatile.
9239         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
9240         volatile.
9241
9242 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
9243
9244         * tree.def (vec_cond_expr): Fix. Change 'e'
9245         to tcc_expression.
9246
9247 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
9248
9249         * basic-block.h: Fix a comment typo.
9250
9251 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
9252
9253         * optabs.c, optabs.h: Fix comment typos.
9254
9255 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
9256
9257         * config/sparc/sparc.md (call_address_struct_value_sp32):
9258         Properly mask the immediate field of the 'unimp' instruction.
9259         (call_symbolic_struct_value_sp32): Likewise.
9260
9261 2004-09-28  Ben Elliston  <bje@au.ibm.com>
9262             Steven Bosscher  <stevenb@suse.de>
9263             Andrew Pinski  <pinskia@physics.uc.edu>
9264
9265         Merge from edge-vector-branch:
9266         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
9267         (struct edge_def): Remove pred_next, succ_next members.
9268         (struct basic_block_def): Remove pred, succ members.  Add preds
9269         and succs members of type VEC(edge).
9270         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
9271         (BRANCH_EDGE): Likewise.
9272         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
9273         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
9274         (edge_iterator): New.
9275         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
9276         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
9277         (FOR_EACH_EDGE): New.
9278         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
9279         where applicable.
9280         (rotate_loop): Likewise.
9281         (find_traces_1_route): Likewise.
9282         (bb_to_key): Likewise.
9283         (connect_traces): Likewise.
9284         (copy_bb_p): Likewise.
9285         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
9286         (add_labels_and_missing_jumps): Likewise.
9287         (fix_up_fall_thru_edges): Likewise.
9288         (find_jump_block): Likewise.
9289         (fix_crossing_conditional_branches): Likewise.
9290         (fix_crossing_unconditional_branches): Likewise.
9291         (add_reg_crossing_jump_notes): Likewise.
9292         * bt-load.c (augment_live_range): Likewise.
9293         * cfg.c (clear_edges): Likewise.
9294         (unchecked_make_edge): Likewise.
9295         (cached_make_edge): Likewise.
9296         (make_single_succ_edge): Likewise.
9297         (remove_edge): Likewise.
9298         (redirect_edge_succ_nodup): Likewise.
9299         (check_bb_profile): Likewise.
9300         (dump_flow_info): Likewise.
9301         (alloc_aux_for_edges): Likewise.
9302         (clear_aux_for_edges): Likewise.
9303         (dump_cfg_bb_info): Likewise.
9304         * cfganal.c (forwarder_block_p): Likewise.
9305         (can_fallthru): Likewise.
9306         (could_fall_through): Likewise.
9307         (mark_dfs_back_edges): Likewise.
9308         (set_edge_can_fallthru_flag): Likewise.
9309         (find_unreachable_blocks): Likewise.
9310         (create_edge_list): Likewise.
9311         (verify_edge_list): Likewise.
9312         (add_noreturn_fake_exit_edges): Likewise.
9313         (connect_infinite_loops_to_exit): Likewise.
9314         (flow_reverse_top_sort_order_compute): Likewise.
9315         (flow_depth_first_order_compute): Likewise.
9316         (flow_preorder_transversal_compute): Likewise.
9317         (flow_dfs_compute_reverse_execute): Likewise.
9318         (dfs_enumerate_from): Likewise.
9319         (compute_dominance_frontiers_1): Likewise.
9320         * cfgbuild.c (make_edges): Likewise.
9321         (compute_outgoing_frequencies): Likewise.
9322         (find_many_sub_basic_blocks): Likewise.
9323         (find_sub_basic_blocks): Likewise.
9324         * cfgcleanup.c (try_simplify_condjump): Likewise.
9325         (thread_jump): Likewise.
9326         (try_forward_edges): Likewise.
9327         (merge_blocks_move): Likewise.
9328         (outgoing_edges_match): Likewise.
9329         (try_crossjump_to_edge): Likewise.
9330         (try_crossjump_bb): Likewise.
9331         (try_optimize_cfg): Likewise.
9332         (merge_seq_blocks): Likewise.
9333         * cfgexpand.c (expand_gimple_tailcall): Likewise.
9334         (expand_gimple_basic_block): Likewise.
9335         (construct_init_block): Likewise.
9336         (construct_exit_block): Likewise.
9337         * cfghooks.c (verify_flow_info): Likewise.
9338         (dump_bb): Likewise.
9339         (delete_basic_block): Likewise.
9340         (split_edge): Likewise.
9341         (merge_blocks): Likewise.
9342         (make_forwarder_block): Likewise.
9343         (tidy_fallthru_edges): Likewise.
9344         (can_duplicate_block_p): Likewise.
9345         (duplicate_block): Likewise.
9346         * cfglayout.c (fixup_reorder_chain): Likewise.
9347         (fixup_fallthru_exit_predecessor): Likewise.
9348         (can_copy_bbs_p): Likewise.
9349         (copy_bbs): Likewise.
9350         * cfgloop.c (flow_loops_cfg_dump): Likewise.
9351         (flow_loop_entry_edges_find): Likewise.
9352         (flow_loop_exit_edges_find): Likewise.
9353         (flow_loop_nodes_find): Likewise.
9354         (mark_single_exit_loops): Likewise.
9355         (flow_loop_pre_header_scan): Likewise.
9356         (flow_loop_pre_header_find): Likewise.
9357         (update_latch_info): Likewise.
9358         (canonicalize_loop_headers): Likewise.
9359         (flow_loops_find): Likewise.
9360         (get_loop_body_in_bfs_order): Likewise.
9361         (get_loop_exit_edges): Likewise.
9362         (num_loop_branches): Likewise.
9363         (verify_loop_structure): Likewise.
9364         (loop_latch_edge): Likewise.
9365         (loop_preheader_edge): Likewise.
9366         * cfgloopanal.c (mark_irreducible_loops): Likewise.
9367         (expected_loop_iterations): Likewise.
9368         * cfgloopmanip.c (remove_bbs): Likewise.
9369         (fix_bb_placement): Likewise.
9370         (fix_irreducible_loops): Likewise.
9371         (remove_path): Likewise.
9372         (scale_bbs_frequencies): Likewise.
9373         (loopify): Likewise.
9374         (unloop): Likewise.
9375         (fix_loop_placement): Likewise.
9376         (loop_delete_branch_edge): Likewise.
9377         (duplicate_loop_to_header_edge): Likewise.
9378         (mfb_keep_just): Likewise.
9379         (create_preheader): Likewise.
9380         (force_single_succ_latches): Likewise.
9381         (loop_split_edge_with): Likewise.
9382         (create_loop_notes): Likewise.
9383         * cfgrtl.c (rtl_split_block): Likewise.
9384         (rtl_merge_blocks): Likewise.
9385         (rtl_can_merge_blocks): Likewise.
9386         (try_redirect_by_replacing_jump): Likewise.
9387         (force_nonfallthru_and_redirect): Likewise.
9388         (rtl_tidy_fallthru_edge): Likewise.
9389         (commit_one_edge_insertion): Likewise.
9390         (commit_edge_insertions): Likewise.
9391         (commit_edge_insertions_watch_calls): Likewise.
9392         (rtl_verify_flow_info_1): Likewise.
9393         (rtl_verify_flow_info): Likewise.
9394         (purge_dead_edges): Likewise.
9395         (cfg_layout_redirect_edge_and_branch): Likewise.
9396         (cfg_layout_can_merge_blocks_p): Likewise.
9397         (rtl_flow_call_edges_add): Likewise.
9398         * cse.c (cse_cc_succs): Likewise.
9399         * df.c (hybrid_search): Likewise.
9400         * dominance.c (calc_dfs_tree_nonrec): Likewise.
9401         (calc_dfs_tree): Likewise.
9402         (calc_idoms): Likewise.
9403         (recount_dominator): Likewise.
9404         * domwalk.c (walk_dominator_tree): Likewise.
9405         * except.c (emit_to_new_bb_before): Likewise.
9406         (connect_post_landing_pads): Likewise.
9407         (sjlj_emit_function_enter): Likewise.
9408         (sjlj_emit_function_exit): Likewise.
9409         (finish_eh_generation): Likewise.
9410         * final.c (compute_alignments): Likewise.
9411         * flow.c (calculate_global_regs_live): Likewise.
9412         (initialize_uninitialized_subregs): Likewise.
9413         (init_propagate_block_info): Likewise.
9414         * function.c (thread_prologue_and_epilogue_insns): Likewise.
9415         * gcse.c (find_implicit_sets): Likewise.
9416         (bypass_block): Likewise.
9417         (bypass_conditional_jumps): Likewise.
9418         (compute_pre_data): Likewise.
9419         (insert_insn_end_bb): Likewise.
9420         (insert_store): Likewise.
9421         (remove_reachable_equiv_notes): Likewise.
9422         * global.c (global_conflicts): Likewise.
9423         (calculate_reg_pav): Likewise.
9424         * graph.c (print_rtl_graph_with_bb): Likewise.
9425         * ifcvt.c (mark_loop_exit_edges): Likewise.
9426         (merge_if_block): Likewise.
9427         (find_if_header): Likewise.
9428         (block_jumps_and_fallthru_p): Likewise.
9429         (find_if_block): Likewise.
9430         (find_cond_trap): Likewise.
9431         (block_has_only_trap): Likewise.
9432         (find_if_case1): Likewise.
9433         (find_if_case_2): Likewise.
9434         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
9435         (perfect_nestify): Likewise.
9436         * lcm.c (compute_antinout_edge): Likewise.
9437         (compute_laterin): Likewise.
9438         (compute_available): Likewise.
9439         (compute_nearerout): Likewise.
9440         * loop-doloop.c (doloop_modify): Likewise.
9441         * loop-init.c (loop_optimizer_init): Likewise.
9442         * loop-invariant.c (find_exits): Likewise.
9443         * loop-iv.c (simplify_using_initial_values): Likewise.
9444         (check_simple_exit): Likewise.
9445         (find_simple_exit): Likewise.
9446         * loop-unroll.c (peel_loop_completely): Likewise.
9447         (unroll_loop_constant_iterations): Likewise.
9448         (unroll_loop_runtime_iterations): Likewise.
9449         * loop-unswitch.c (may_unswitch_on): Likewise.
9450         (unswitch_loop): Likewise.
9451         * modulo-sched.c (generate_prolog_epilog): Likewise.
9452         (sms_schedule): Likewise.
9453         * postreload-gcse.c (eliminate_partially_redundant_load):
9454         Likewise.
9455         * predict.c (can_predict_insn_p): Likewise.
9456         (set_even_probabilities): Likewise.
9457         (combine_predictions_for_bb): Likewise.
9458         (predict_loops): Likewise.
9459         (estimate_probability): Likewise.
9460         (tree_predict_by_opcode): Likewise.
9461         (tree_estimate_probability): Likewise.
9462         (last_basic_block_p): Likewise.
9463         (propagate_freq): Likewise.
9464         (estimate_loops_at_level): Likewise.
9465         (estimate_bb_frequencies): Likewise.
9466         * profile.c (instrument_edges): Likewise.
9467         (get_exec_counts): Likewise.
9468         (compute_branch_probabilities): Likewise.
9469         (branch_prob): Likewise.
9470         * ra-build.c (live_in): Likewise.
9471         * ra-rewrite.c (rewrite_program2): Likewise.
9472         * ra.c (reg_alloc): Likewise.
9473         * reg-stack.c (reg_to_stack): Likewise.
9474         (convert_regs_entry): Likewise.
9475         (compensate_edge): Likewise.
9476         (convert_regs_1): Likewise,
9477         (convert_regs_2): Likewise.
9478         (convert_regs): Likewise.
9479         * regrename.c (copyprop_hardreg_forward): Likewise.
9480         * reload1.c (fixup_abnormal_edges): Likewise.
9481         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
9482         (sbitmap_insersection_of_preds): Likewise.
9483         (sbitmap_union_of_succs): Likewise.
9484         (sbitmap_union_of_preds): Likewise.
9485         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
9486         (fix_basic_block_boundaries): Likewise.
9487         (sched_ebbs): Likewise.
9488         * sched-rgn.c (build_control_flow): Likewise.
9489         (find_rgns): Likewise.
9490         * tracer.c (find_best_successor): Likewise.
9491         (find_best_predecessor): Likewise.
9492         (tail_duplicate): Likewise.
9493         * tree-cfg.c (make_edges): Likewise.
9494         (make_ctrl_stmt_edges): Likewise.
9495         (make_goto_expr_edges): Likewise.
9496         (tree_can_merge_blocks_p): Likewise.
9497         (tree_merge_blocks): Likewise.
9498         (cfg_remove_useless_stmts_bb): Likewise.
9499         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
9500         (tree_block_forwards_to): Likewise.
9501         (cleanup_control_expr_graph): Likewise.
9502         (find_taken_edge): Likewise.
9503         (dump_cfg_stats): Likewise.
9504         (tree_cfg2vcg): Likewise.
9505         (disband_implicit_edges): Likewise.
9506         (tree_find_edge_insert_loc): Likewise.
9507         (bsi_commit_edge_inserts): Likewise.
9508         (tree_split_edge): Likewise.
9509         (tree_verify_flow_info): Likewise.
9510         (tree_make_forwarder_block): Likewise.
9511         (tree_forwarder_block_p): Likewise.
9512         (thread_jumps): Likewise.
9513         (tree_try_redirect_by_replacing_jump): Likewise.
9514         (tree_split_block): Likewise.
9515         (add_phi_args_after_copy_bb): Likewise.
9516         (rewrite_to_new_ssa_names_bb): Likewise.
9517         (dump_function_to_file): Likewise.
9518         (print_pred_bbs): Likewise.
9519         (print_loop): Likewise.
9520         (tree_flow_call_edges_add): Likewise.
9521         (split_critical_edges): Likewise.
9522         (execute_warn_function_return): Likewise.
9523         (extract_true_false_edges_from_block): Likewise.
9524         * tree-if-conv.c (tree_if_conversion): Likewise.
9525         (if_convertable_bb_p): Likewise.
9526         (find_phi_replacement_condition): Likewise.
9527         (combine_blocks): Likewise.
9528         * tree-into-ssa.c (compute_global_livein): Likewise.
9529         (ssa_mark_phi_uses): Likewise.
9530         (ssa_rewrite_initialize_block): Likewise.
9531         (rewrite_add_phi_arguments): Likewise.
9532         (ssa_rewrite_phi_arguments): Likewise.
9533         (insert_phi_nodes_for): Likewise.
9534         (rewrite_into_ssa): Likewise.
9535         (rewrite_ssa_into_ssa): Likewise.
9536         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
9537         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
9538         (rewrite_trees): Likewise.
9539         * tree-pretty-print.c (dump_bb_header): Likewise.
9540         (dump_implicit_edges): Likewise.
9541         * tree-sra.c (insert_edge_copies): Likewise.
9542         (find_obviously_necessary_stmts): Likewise.
9543         (remove_data_stmt): Likewise.
9544         * tree-ssa-dom.c (thread_across_edge): Likewise.
9545         (dom_opt_finalize_block): Likewise.
9546         (single_incoming_edge_ignoring_loop_edges): Likewise.
9547         (record_equivalences_from_incoming_edges): Likewise.
9548         (cprop_into_successor_phis): Likewise.
9549         * tree-ssa-live.c (live_worklist): Likewise.
9550         (calculate_live_on_entry): Likewise.
9551         (calculate_live_on_exit): Likewise.
9552         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
9553         (copy_loop_headers): Likewise.
9554         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
9555         (fill_always_executed_in): Likewise.
9556         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
9557         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
9558         (compute_phi_arg_on_exit): Likewise.
9559         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
9560         (get_loops_exit): Likewise.
9561         (split_loop_exit_edge): Likewise.
9562         (ip_normal_pos): Likewise.
9563         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
9564         Likewise.
9565         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
9566         (replace_phi_with_stmt): Likewise.
9567         (value_replacement): Likewise.
9568         * tree-ssa-pre.c (compute_antic_aux): Likewise.
9569         (insert_aux): Likewise.
9570         (init_pre): Likewise.
9571         * tree-ssa-propagate.c (simulate_stmt): Likewise.
9572         (simulate_block): Likewise.
9573         (ssa_prop_init): Likewise.
9574         * tree-ssa-threadupdate.c (thread_block): Likewise.
9575         (create_block_for_threading): Likewise.
9576         (remove_last_stmt_and_useless_edges): Likewise.
9577         * tree-ssa.c (verify_phi_args): Likewise.
9578         (verify_ssa): Likewise.
9579         * tree_tailcall.c (independent_of_stmt_p): Likewise.
9580         (find_tail_calls): Likewise.
9581         (eliminate_tail_call): Likewise.
9582         (tree_optimize_tail_calls_1): Likewise.
9583         * tree-vectorizer.c (vect_transform_loop): Likewise.
9584         * var-tracking.c (prologue_stack_adjust): Likewise.
9585         (vt_stack_adjustments): Likewise.
9586         (vt_find_locations): Likewise.
9587         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
9588         * config/i386/i386.c (ix86_pad_returns): Likewise.
9589         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
9590         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
9591
9592 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
9593
9594         PR target/16532
9595         * config/sparc/sparc.c (struct machine_function): New field
9596         'leaf_function_p' and 'prologue_data_valid_p'.
9597         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
9598         to conveniently access the above fields.
9599         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
9600         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
9601         of the generic flavor 'current_function_uses_only_leaf_regs'.
9602         (eligible_for_sibcall_delay): Likewise.
9603         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
9604         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
9605         (sparc_asm_function_prologue): Add sanity check for the assumption
9606         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
9607         (sparc_can_use_return_insn_p): New function.
9608         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
9609         (output_restore): Likewise.
9610         (output_sibcall): Likewise.
9611         (sparc_output_mi_thunk): Likewise.
9612         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
9613         * config/sparc/sparc.md (return): New expander.
9614
9615         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
9616
9617 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
9618
9619         PR c++/17642
9620         * stor-layout.c (layout_decl): Use fold_convert, not convert.
9621         (bit_from_pos): Likewise.
9622         (byte_from_pos): Likewise.
9623         (pos_from_bit): Likewise.
9624         (normalize_offset): Likewise.
9625         (place_field): Likewise.
9626         (finalize_type_size): Likewise.
9627         (layout_type): Likewise.
9628         * tree.c (build_index_type): Likewise.
9629
9630 2004-09-27  Devang Patel  <dpatel@apple.com>
9631
9632         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
9633         * genopinit.c (optabs): New entry for vcond_gen_code and
9634         vcondu_gen_code.
9635         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
9636         (get_rtx_code): New function.
9637         (vector_compare_rtx): New function.
9638         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
9639         (expand_vec_cond_expr_p): New function.
9640         (expand_vec_cond_expr): New function.
9641         (get_vcond_icode): New function.
9642         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
9643         (vcond_gen_code, vcondu_gen_code): Same.
9644
9645 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
9646
9647         * Makefile.in (STAGESTUFF): Split into ...
9648         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
9649         (mostlyclean): Update.
9650         (stage1-start, stage2-start, stage3-start, stage4-start,
9651         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
9652         Move the STAGEMOVESTUFF.
9653
9654 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9655
9656         * system.h (getpagesize): Return 'int' instead of 'long'.
9657
9658 2004-09-27  Michael Matz <matz@suse.de>
9659
9660         PR bootstrap/17698
9661         PR bootstrap/17702
9662         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
9663         bmp_iter_and_init): Shift by bit_in_word.
9664
9665 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
9666
9667         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
9668         * configure.ac: Don't sinclude it here.
9669         * configure: Regenerate.
9670
9671 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
9672
9673         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
9674         Handle AND pattern
9675
9676 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
9677
9678         PR c/13804
9679         * c-typeck.c (build_component_ref): Name type involved in
9680         diagnostic for structure or union without a member of the given
9681         name.
9682
9683 2004-09-27  DJ Delorie  <dj@redhat.com>
9684
9685         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
9686         .comm alignment is bytes, not bits.
9687
9688 2004-09-27  Devang Patel  <dpatel@apple.com>
9689
9690         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
9691         (print_call_name): Do not print VEC_COND_EXPR.
9692
9693 2004-09-27  Devang Patel  <dpatel@apple.com>
9694
9695         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
9696
9697 2004-09-27  Jan Hubicka  <jh@suse.cz>
9698
9699         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
9700
9701 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
9702
9703         * bitmap.h: Fix a comment typo.
9704
9705 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9706
9707         * libgcc2.c (getpagesize): Change type of return value to int.
9708
9709 2004-09-26  Matt Austern  <austern@apple.com>
9710
9711         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
9712         using mmap.
9713
9714 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9715
9716         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
9717         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
9718         (bitmap_iterator): New type.
9719         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
9720         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
9721         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
9722         bmp_iter_and_init, bmp_iter_and_next): New functions.
9723         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
9724         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
9725         use iterator-style EXECUTE_IF_IN_BITMAP macros.
9726         * bitmap.c (bitmap_print): Ditto.
9727         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
9728         btr_def_live_range): Ditto.
9729         * cfganal.c (compute_dominance_frontiers_1) Ditto.
9730         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
9731         Ditto.
9732         * ddg.c (build_inter_loop_deps): Ditto.
9733         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
9734         Ditto.
9735         * except.c (remove_eh_handler): Ditto.
9736         * flow.c (reg_set_to_hard_reg_set): Ditto.
9737         * gcse.c (clear_modify_mem_tables): Ditto.
9738         * global.c (build_insn_chain): Ditto.
9739         * ifcvt.c (dead_or_predicable): Ditto.
9740         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
9741         Ditto.
9742         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
9743         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
9744         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
9745         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
9746         tree_purge_all_dead_eh_edges): Ditto.
9747         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
9748         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
9749         rewrite_ssa_into_ssa): Ditto.
9750         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
9751         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
9752         Ditto.
9753         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
9754         compute_flow_sensitive_aliasing, maybe_create_global_var,
9755         dump_points_to_info_for): Ditto.
9756         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
9757         * tree-ssa-dse.c (dse_finalize_block): Ditto.
9758         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
9759         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
9760         Ditto.
9761         * tree-ssa-loop-ivopts.c (find_induction_variables,
9762         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
9763         determine_use_iv_costs, determine_set_costs, find_best_candidate,
9764         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
9765         Ditto.
9766         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
9767         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
9768         add_call_read_ops): Ditto.
9769         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
9770
9771 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9772
9773         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
9774         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
9775
9776 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
9777
9778         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
9779         reflect size of memory regions being compared.
9780
9781 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
9782
9783         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
9784         expressions.  Always clear MEM_SIZE and alias set.
9785
9786 2004-09-26  Roger Sayle  <roger@eyesopen.com>
9787             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9788
9789         PR middle-end/17112
9790         * stor-layout.c (compute_record_mode): For records with a single
9791         field, only use the field's mode if its size matches what we'd
9792         have choosen for the record ourselves.  This forces the use of
9793         BLKmode for packed records that don't completely fill a mode.
9794
9795 2004-09-26  Roger Sayle  <roger@eyesopen.com>
9796
9797         PR middle-end/17151
9798         * combine.c (force_to_mode): Remove dubious early return test that
9799         inhibits further optimization.
9800
9801 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
9802
9803         * profile.c: Fix a comment typo.
9804
9805 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9806
9807         PR bootstrap/17591
9808         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
9809         with varying offset.
9810         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
9811         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
9812         ARRAY_REFS.
9813         (expr_invariant_in_loop_p): New function.
9814         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
9815         component_ref_field_offset for COMPONENT_REFs.  Do not allow
9816         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
9817         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
9818         MISALIGNED_INDIRECT_REFs.
9819         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
9820         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
9821         MISALIGNED_INDIRECT_REFs.
9822
9823 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
9824
9825         PR c/11459
9826         * gcc.c (cpp_options, cc1_options): Preserve relative order of
9827         -std and -ansi options.
9828
9829 2004-09-26  Jan Hubicka  <jh@suse.cz>
9830
9831         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
9832         for nested functions whose proper parent has not been output.
9833
9834         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
9835         when re-constructing profile previously invalidated by loop.
9836
9837 2004-09-25  Dale Johannesen  <dalej@apple.com>
9838
9839         * tree-gimple.c:  Move GIMPLE definition...
9840         * doc/tree-ssa.texi:  here.
9841
9842 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9843
9844         * tree-vectorizer.c: Fix a comment typo.
9845
9846 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9847
9848         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
9849         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
9850         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
9851         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
9852
9853 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9854
9855         * tree-ssa-loop-unswitch.c: Fix a comment typo.
9856
9857 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
9858
9859         * doc/passes.texi: Fix a typo.
9860
9861 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9862
9863         * tree-optimize.c (init_tree_optimization_passes): Add
9864         pass_record_bounds.
9865         * tree-pass.h (pass_record_bounds): Declare.
9866         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
9867         New pass.
9868
9869 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9870
9871         PR tree-optimization/17474
9872         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
9873         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
9874
9875 2004-09-25  Jan Hubicka  <jh@suse.cz>
9876
9877         * predict.c (counts_to_freqs): Make global.
9878         * predict.h (counts_to_freqa): Declare.
9879         * profile.c (compute_branch_probabilities): Compute frequencies
9880         * tree-profile.c (do_tree_profiling): Refine conditional on when
9881         tree profiling pass is needed.
9882
9883         * passes.c (rest_of_handle_cfg): Disable const/pure function
9884         detection when doing tree based profiling.
9885
9886         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
9887         conditional.
9888
9889 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
9890
9891         * config/mips/mips.h (struct mips_args): Clarify comments.
9892         * config/mips/mips.c (struct mips_arg_info): Likewise.
9893         (mips_arg_info): Don't allow fpr_p to affect the register or
9894         stack alignment.  Remove o64 silliness.
9895         (function_arg): Deal with the o32 float,float case specially.
9896
9897 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
9898
9899         * config/mips/mips.md (loadx, storex): Define for V2SF.
9900
9901 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
9902
9903         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
9904         * config/s390/s390.c (s390_back_chain_rtx): New function.
9905         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
9906         Call anti_adjust_stack.
9907         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
9908         only if compiling with back chain.
9909         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
9910         back chain only if back chain enabled.  Use s390_back_chain_rtx.
9911
9912 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9913
9914         * doc/trouble.texi: Remove obsolete information.  Update
9915         information on how to regenerate fixincluded headers.
9916
9917 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
9918
9919         PR c/12951
9920         * doc/invoke.texi: Document that
9921         -Wno-error-implicit-function-declaration is not accepted.
9922
9923 2004-09-24  Richard Henderson  <rth@redhat.com>
9924
9925         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
9926         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
9927         on TARGET_MAX.
9928         (alpha_expand_mov): Allow unaligned vectors.
9929         (alpha_expand_unaligned_store): Use CONST0_RTX.
9930         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
9931
9932 2004-09-24 Jeff Law  <law@redhat.com>
9933
9934         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
9935         aliasing rules.
9936         (simplify_cond_and_lookup_avail_expr): Likewise.
9937
9938 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9939
9940         PR c/12802
9941         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
9942         title.  Document interaction with -fms-extensions.
9943         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
9944         section.
9945
9946 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9947
9948         PR c/12713
9949         * doc/extend.texi: Document interaction of attribute noreturn and
9950         longjmp.
9951
9952 2004-09-24  Richard Henderson  <rth@redhat.com>
9953
9954         PR rtl-opt/17503
9955         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
9956         (som_hash, som_eq): New.
9957         (init_subregs_of_mode, record_subregs_of_mode): New.
9958         (cannot_change_mode_set_regs): Rewrite for htab implementation.
9959         (invalid_mode_change_p): Likewise.
9960         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
9961         * flow.c (mark_used_regs): Likewise.
9962         (life_analysis): Use init_subregs_of_mode.
9963         * regs.h (subregs_of_mode): Remove.
9964         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
9965
9966 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9967
9968         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
9969         type with the copy of the conditional.
9970
9971 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
9972
9973         PR tree-opt/16954
9974         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9975         Prevent renaming if the aliasing sets of the type which the
9976         pointer points to are different.
9977
9978 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9979
9980         PR c/17188
9981         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
9982         declarations of enumerators.
9983         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
9984         for redefinition.  Check for nested redefinition.
9985         (finish_struct): Don't check for nested redefinition.
9986         (start_enum): Check for nested redefinition.
9987
9988 2004-09-24  Devang Patel  <dpatel@apple.com>
9989
9990         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
9991         only when necesssary.
9992         (combine_blocks): Combine loop header and exit block.
9993
9994 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
9995
9996         * hooks.c (hook_tree_tree_bool_null): New.
9997         * hooks.h (hook_tree_tree_bool_null): Declare it.
9998         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
9999         * targhooks.c (default_fold_builtin): Remove.
10000         * targhooks.h (default_fold_builtin): Remove.
10001
10002 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10003
10004         PR rtl-optimization/17625
10005         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
10006
10007 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
10008
10009         PR tree-opt/17624
10010         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
10011         Reject if any of the operands occur in an abnormal PHI.
10012
10013 2004-09-24  Andreas Schwab  <schwab@suse.de>
10014
10015         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
10016         rules.
10017
10018 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
10019
10020         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
10021         if the GNU assembler is used.
10022         (sparc-*-solaris2*): Likewise.
10023         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
10024         (dbxout_function_end): Protect N_ENSYM with it.
10025         (dbxout_begin_prologue): Protect N_BNSYM with it.
10026         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
10027         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
10028         * config/sparc/sol2-gas.h: New file.
10029
10030 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
10031
10032         PR bootstrap/17369
10033         * Makefile.in (@set_gcc_lib_path@): Added.
10034
10035         * configure.ac: Include ../config/gcc-lib-path.m4. Use
10036         TL_AC_GNU_MAKE_GCC_LIB_PATH.
10037         * configure: Regenerated.
10038
10039 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
10040
10041         PR c/6980
10042         * c-typeck.c (build_c_cast): Improve wording of
10043         -Wbad-function-cast diagnostic.
10044
10045 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
10046
10047         PR target/17626
10048         * config/cris/cris.md (moverside, movemside): Rename variable
10049         "reg" to "otherop".  To generate canonical RTX, check that otherop
10050         isn't constant instead of checking that operand 1 is a register.
10051
10052 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
10053
10054         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
10055
10056 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
10057             Jakub Jelinek  <jakub@redhat.com>
10058
10059         * tree-flow.h (find_new_referenced_vars): Add prototype.
10060         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
10061         Move to...
10062         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
10063         ... here.
10064         (mark_new_vars_to_rename): Walk through all operands.
10065         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
10066         (execute_fold_all_builtins): Use it.
10067         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
10068
10069 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
10070
10071         * gthr-tpf.h: New file.
10072         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
10073         * gthr.h: Use gthr-tpf.h on TPF OS.
10074
10075 2004-09-23 Jeff Law  <law@redhat.com>
10076
10077         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
10078         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
10079         (substitute_and_fold):  Likewise.
10080         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
10081         except invariants from SSA_NAME_VALUE.
10082         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
10083         and SET_SSA_NAME_EQUIV.
10084         (restore_vars_to_original_value, record_const_or_copy): Likewise.
10085         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
10086         (record_equality, cprop_into_successor_phis): Likewise.
10087         (record_equivalences_from_stmt, cprop_operand): Likewise.
10088         (lookup_avail_expr): Likewise.
10089         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
10090         from SSA_NAME_VALUE.
10091         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
10092         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
10093         annotation from the VALUE_HANDLE field.
10094
10095 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
10096
10097         PR c++/13989
10098         PR c++/9844
10099         * tree.c (reconstruct_complex_type): Remove extra "this".
10100         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
10101         Add V4SFmode to case statement.
10102
10103 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
10104
10105         PR c/16833
10106         * doc/extend.texi, doc/invoke.texi: Document interaction of
10107         -fno-builtin with format checks.  Note that built-in functions
10108         have effects beyond generating code that avoids calls to those
10109         functions.
10110
10111 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
10112
10113         PR tree-optimization/17533
10114         * dominance.c (verify_dominators): Tolerate even more incorrect
10115         dominance data during error message printing.
10116         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
10117         and edges more correctly.
10118
10119 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
10120
10121         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
10122         New tree-codes.
10123         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
10124         MISALIGNED_INDIRECT_REF.
10125         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
10126         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
10127         Likewise.
10128         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
10129         (find_interesting_uses_address): Likewise.
10130         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
10131         (build_fold_addr_expr_with_type): Likewise.
10132         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
10133         * print-rtl.c (print_mem_expr): Likewise.
10134         * tree-dump.c (dequeue_and_dump): Likewise.
10135         * tree-eh.c (tree_could_trap_p): Likewise.
10136         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
10137         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
10138         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
10139         Likewise.
10140         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
10141         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
10142         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
10143         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
10144         (add_address_candidates, rewrite_address_base): Likewise.
10145         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
10146         Likewise.
10147         * tree.c (staticp, build1_stat): Likewise.
10148
10149         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
10150         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
10151         * tree-ssa-operands.c (get_expr_operands): Likewise.
10152         * expr.c (expand_expr_real_1): Likewise.
10153
10154         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
10155         optabs.
10156         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
10157         for the new optabs.
10158         (expand_ternary_op): New function.
10159         * genopinit.c (optabs): Handle the new optabs.
10160         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
10161         (init_optabs): Initialize vec_realign_load_optab.
10162         (expand_ternary_op): New functions.
10163
10164         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
10165         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
10166         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
10167         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
10168         * target.h (struct vectorize): New member for struct gcc_target.
10169         (misaligned_mem_ok): New member for targetm.vectorize.
10170         (builtin_mask_for_load): Likewise.
10171         (builtin_mask_for_store): Likewise.
10172         * targethooks.c (default_vect_misaligned_mem_ok): New function.
10173         * targethooks.h (default_vect_misaligned_mem_ok): New function.
10174
10175         * config/rs6000/altivec.md (build_vector_mask_for_load): New
10176         define_expand.
10177         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
10178         (vec_realign_load_v16qi): New define_insn.
10179         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
10180         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
10181         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
10182         (altivec_builtin_mask_for_store): New variables.
10183         (rs6000_builtin_mask_for_load): New function. Implements
10184         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
10185         (rs6000_builtin_mask_for_store): New function. Implements
10186         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
10187         (rs6000_expand_builtin): Expand the target builtins
10188         builtin_mask_for_load and builtin_mask_for_store.
10189         (altivec_init_builtins): Initialize the new target builtins.
10190         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
10191         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
10192
10193         * tree-vectorizer.c (vect_create_data_ref): Renamed to
10194         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
10195         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
10196         (vectorizable_store): Call vect_create_data_ref_ptr with additional
10197         arguments, and create an indirect_ref with its return value data_ref.
10198         Check aligned_access_p.
10199         (vectorizable_load): Handle misaligned loads, using software-pipelined
10200         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
10201         vec_realign_load_optab is supported, or using a scheme without
10202         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
10203         misaligned_mem_ok is supported.
10204
10205         (vect_finish_stmt_generation): Typo.
10206         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
10207         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
10208         presence of misaligned loads.
10209         (vect_analyze_data_ref_access): Add check for constant init.
10210         (vect_get_symbl_and_dr): Remove duplicate line.
10211         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
10212
10213 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
10214
10215         * builtins.c: Fix a comment typo.
10216
10217 2004-09-23  Jan Hubicka  <jh@suse.cz>
10218
10219         * profile.c (branch_prob): Do not verify flow info in the middle of the
10220         pass.
10221
10222 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10223
10224         * cfgloop.h (update_single_exits_after_duplication): Declare.
10225         (loopify, split_loop_bb): Declaration changed.
10226         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
10227         of rtx.
10228         (loopify): Added redirect_all_edges argument.
10229         (update_single_exits_after_duplication): Export.
10230         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
10231         * tree-flow.h (tree_duplicate_loop_to_header_edge,
10232         tree_ssa_loop_version): Declare.
10233         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
10234         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
10235         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
10236         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
10237
10238         * tree-ssa-loop-unswitch.c: New file.
10239         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
10240         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
10241         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
10242         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
10243         * tree-pass.h (pass_unswitch): Declare.
10244         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
10245         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
10246         * doc/passes.texi: Documen tree level loop unswitching.
10247
10248 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
10249
10250         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
10251
10252 2004-09-22  Eric Christopher  <echristo@redhat.com>
10253
10254         * builtins.c (simplify_builtin_va_start): Remove.
10255         (simplify_builtin): Ditto.
10256         (fold_builtin_strchr): Ditto.
10257         (simplify_builtin_*): Rename remainders to fold_builtin_*.
10258         (expand_builtin): Fix up for above changes.
10259         (fold_builtin_1): Add new folders. Change for above.
10260         (expand_builtin_va_start): Call fold_builtin_next_arg.
10261         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
10262         * tree.h: Remove prototype for simplify_builtin.
10263
10264 2004-09-23  Jan Hubicka  <jh@suse.cz>
10265
10266         PR debug/17389
10267         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
10268         of fully inlined functions.
10269         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
10270         inlined.
10271
10272         * cfgexpand.c (add_reg_br_prob_note): New function.
10273         (expand_gimple_cond_expr): Use it.
10274         (tree_expand_cfg): No longer kill the profile.
10275         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
10276         only if it is present.
10277         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
10278         * predict.c (combine_predictions_for_insn): Set the probabilities
10279         based on REG_BR_PROB note if present.
10280         * predict.c (branch_prob): Profile is read only with
10281         flag_branch_probabilities.
10282
10283 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
10284
10285         * aclocal.m4: Add in gettext's m4 includes.
10286         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
10287         * configure.ac: Add in check for iconv.h
10288         * configure: Regenerate.
10289
10290 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
10291
10292         * aclocal.m4: Update for rename of gettext-sister.m4.
10293
10294 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
10295
10296         Fix PR tree-optimization/17587
10297         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
10298         (insert_aux): Instead of here.
10299
10300 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
10301
10302         PR tree-optimization/16721
10303         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
10304         * tree-ssa-alias.c (create_memory_tag): Move setting of
10305         TREE_THIS_VOLATILE ...
10306         (get_tmt_for): ... here.
10307
10308 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10309
10310         * config/sparc/sparc.md (cmove splitter): Fix formatting.
10311         (conditional_trap expander): Reject inappropriate CCmodes.
10312         (conditional trap insn): Use V9 syntax if possible.
10313
10314 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10315
10316         PR c/16566
10317         * c-typeck.c (build_component_ref): Don't special-case
10318         COMPOUND_EXPR.
10319
10320 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
10321
10322         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
10323         returns NULL.
10324
10325 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
10326
10327         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
10328         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
10329         TRUTH_XOR_EXPR): Mention the restriction on types.
10330
10331 2004-09-22  Matt Austern  <austern@apple.com>
10332
10333         * config/darwin.c (darwin_make_decl_one_only):
10334         Allow coalesced symbol to appear in static archive's table of contents
10335
10336 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
10337
10338         PR tree-optimization/17512
10339         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
10340         special cases.
10341
10342 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
10343
10344         * dbxout.c (get_lang_number): Do not define if
10345         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
10346
10347 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
10348
10349         PR target/15583
10350         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
10351         builtin_define ("__USE_INIT_FINI__").
10352
10353 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
10354
10355         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
10356         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
10357         * config/s390/s390.h (TARGET_TPF): New macro.
10358         * config/s390/s390.md ("eh_return"): New expander.
10359         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
10360         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
10361         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
10362         * config/s390/tpf.h (TARGET_TPF): Define to 1.
10363         (STACK_POINTER_OFFSET): Increase to 448.
10364         (TARGET_DEFAULT): Set -mtpf-trace on as default.
10365         (TPF_LOC_DIFF_OFFSET): New macro.
10366         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
10367         encoding.
10368         (__isPATrange): Add prototype.
10369         (MD_FALLBACK_FRAME_STATE_FOR): Define.
10370         * config/s390/tpf-eh.c: New file.
10371
10372 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
10373
10374         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
10375         operands in an integer comparison.
10376         * tree-cfg.c (find_taken_edge): Call fold() to determine
10377         whether the predicate is known.
10378
10379 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
10380
10381         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
10382         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
10383         Create build and doc directories along with the language directories.
10384         Don't create doc directory separately.
10385         * configure: Regenerate.
10386         * Makefile.in: Create all object and executables files built
10387         with the build compiler in a build/ directory.
10388         (genobjnames): Add missing build objects.
10389         (STAGESTUFF): Don't stage the gen* programs.
10390         (ggc-none.o): Define dependencies for the target compiler.
10391         (build-print-rtl.o): Rename to build/print-rtl.o.
10392         (build-errors.o): Rename to build/errors.o.
10393         (build-varray.o): Rename to build/varray.o.
10394         (maintainerclean): Delete the contents of the build directory.
10395         ($(genobjs): %.o): Explicitly use -o.
10396         (build/insn-conditions.o): Delete specfic rule to use generic rule.
10397         (build/gengtype-lex.o): Likewise.
10398         (build/gengtype-yacc.o): Likewise.
10399         (build/gcov-iov.o): Likewise.
10400
10401 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
10402
10403         * vec.h (VEC_space): Return true if there _is_ space.
10404         (VEC_reserve): Adjust.
10405
10406 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
10407
10408         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
10409         use FPRs for scalar, complex and vector types only.
10410
10411 2004-09-21 Jeff Law  <law@redhat.com>
10412
10413         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
10414         the opt_stats_d structure.
10415         (vrp_data): Change from a varray into a hash table.
10416         (vrp_hash_elt): New structure for elements in the vrp hash table.
10417         (vrp_hash, vrp_eq):New functions for hashing and testing equality
10418         in the vrp hash table.
10419         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
10420         initialization slightly to make it easier to read.  No longer need
10421         to grow/clear the varray.  Instead empty and delete the hash table.
10422         (dom_opt_finalize_block): Update due to change of VRP_DATA from
10423         a varray to a hash table.
10424         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
10425
10426         * tree-ssa-ccp.c (get_default_value): If we have a constant
10427         value recorded for an SSA_NAME, then use that constant as
10428         the initial lattice value.
10429         (substitute_and_fold): Transfer equivalences discovered into
10430         SSA_NAME_EQUIV.
10431
10432         * tree.h (SSA_NAME_EQUIV): Add comments.
10433         (SET_SSA_NAME_EQUIV): Similarly.
10434
10435 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
10436
10437         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
10438
10439         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
10440
10441 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
10442
10443         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
10444         (finish_decl): Likewise.
10445
10446 2004-09-21  Devang Patel  <dpatel@apple.com>
10447
10448         * tree.def (VEC_COND_EXPR): New tree node.
10449         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
10450
10451 2004-09-21  Stan Shebs  <shebs@apple.com>
10452
10453         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
10454         * config/rs6000/darwin-world.asm: Likewise.
10455
10456 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
10457
10458         * tree-ssa.c (verify_def): Use print_generic_stmt,
10459         not debug_generic_stmt.
10460         (verify_use): Ditto.
10461         (verify_phi_args): Ditto.
10462         (verify_ssa): Ditto.
10463
10464 2004-09-21  Paul Brook  <paul@codesourcery.com>
10465
10466         * varasm.c (default_assemble_integer): Return false for values wider
10467         than the target word size.  Works around GAS bug.
10468
10469 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
10470
10471         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
10472         gets value 0.
10473         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
10474         if it has value 0.
10475
10476 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
10477
10478         * c-typeck.c (build_function_call): Give name of object
10479         we are attempting to call in error message.
10480         * c-objc-common.c (c_tree_printer): Call pp_expression,
10481         not return false, for 'E' case.
10482
10483 2004-09-21  Steven Bosscher  <stevenb@suse.de>
10484
10485         PR rtl-optimization/17482
10486         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
10487         load_killed_in_block_p): Clarify comments.
10488         (record_last_reg_set_info): Make static inline.
10489         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
10490         (record_opr_changes): New function to replace the above.
10491         (compute_hash_table): Clarify comments.  Use record_opr_changes.
10492         (reg_set_between_after_reload_p): Clean up.
10493         (reg_used_between_after_reload_p): Likewise.
10494         (eliminate_partially_redundant_load): Clarify comments.
10495
10496 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
10497
10498         PR rtl-optimization/17266
10499         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
10500
10501 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
10502
10503         PR rtl-optimization/14851
10504         * rtlanal.c (commutative_operand_precedence): Calculate
10505         precedence of stripped constant.
10506
10507 2004-09-20 Jeff Law  <law@redhat.com>
10508            Jan Hubicka  <jh@suse.cz>
10509
10510         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
10511         initialize key elements here.
10512         (release_ssa_name): Zero the released SSA_NAME here.
10513         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
10514         (struct tree_ssa_name): Add new "equiv" field.
10515         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
10516         (tree_ssa_dominator_optimize): No longer allocate, resize or
10517         clear CONST_AND_COPIES.
10518         (get_value_for, set_value_for): Kill.
10519         (thread_across_edge): Get/set the equivalency using
10520         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
10521         (restore_vars_to_original_value): Likewise.
10522         (record_equivalences_from_phis): Likewise.
10523         (record_dominating_conditions): Likewise.
10524         (record_const_or_copy, record_equality): Likewise.
10525         (lookup_avail_expr): Likewise.
10526         (record_equivalences_from_stmt, cprop_operand): Likewise.
10527         (cprop_into_successor_phis): No longer need to pass around
10528         CONST_AND_COPIES.  Callers updated. Get equivalences via
10529         SSA_NAME_EQUIV.
10530         (cprop_into_phis): Likewise.
10531
10532 2004-09-20  Matt Austern <austern@apple.com>
10533             Zack Weinberg  <zack@codesourcery.com>
10534
10535         * c-common.c (fix_string_type): Build the unqualified array
10536         type unconditionally, then use c_build_qualified_type to get
10537         the proper const-qualified variant, and set its
10538         TYPE_MAIN_VARIANT to refer to the unqualified type.
10539         * c-lex.c (c_lex_return_raw_string): New global.
10540         (c_lex_with_flags): Honor it.
10541         * c-pragma.h: Declare it.
10542
10543 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
10544
10545         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
10546
10547 2004-09-21  Jan Hubicka  <jh@suse.cz>
10548
10549         PR middle-end/17126
10550         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
10551         (tree_rest_of_compilation): Cleanup.
10552
10553 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
10554
10555         * config/s390/s390.c (s390_select_rtx_section): Remove.
10556         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
10557
10558 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10559
10560         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
10561         note to pretend a direct save from the original register when an
10562         intermediate register is used for the save.
10563
10564 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10565
10566         * tsystem.h (alloca): Provide a default definition.
10567
10568         Revert:
10569         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10570             * unwind-dw2.c: Call __builtin_alloca, not alloca.
10571
10572 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
10573
10574         PR tree-opt/17558
10575         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
10576         aliasing sets are the same rather than just conflicting.
10577
10578 2004-09-20  Jan Hubicka  <jh@suse.cz>
10579
10580         PR middle-end/16460
10581
10582         * cgraph.c (cgraph_unnest_node): New function.
10583         (c_finalize): Rename to ....
10584         (c_warn_unused_result_recursivly): ... this one; do only the warning
10585         (finish_function): Finalize the toplevel function; do not lower nested tree.
10586         * cgraph.h (cgraph_unnest_node): Declare.
10587         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
10588         nestedness datastructure.
10589         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
10590         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
10591         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
10592
10593 2004-09-20  Richard Henderson  <rth@redhat.com>
10594
10595         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
10596         from some_small_symbolic_operand_1; export.
10597         (some_small_symbolic_operand): Remove.
10598         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
10599         extra C check.
10600         * config/alpha/predicates.md (some_small_symbolic_operand): New.
10601
10602 2004-09-20  Jan Hubicka  <jh@suse.cz>
10603
10604         * predict.c (return_prediction): New function.
10605         (apply_return_prediction): Likewise.
10606         (tree_bb_level_predictions): Likewise.
10607         (tree_estimate_probability): Add noreturn exit edges; call
10608         bb_level_predictions; fix logic of return heuristics.
10609         (predict_paths_leading_to):  Rescuesce from old CVS version of
10610         process_note_prediction function.
10611         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
10612
10613 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
10614
10615         * config/s390/s390.c (s390_frame_info): Added alignment statement for
10616         floating point register area on stack.
10617
10618 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
10619
10620         * predict.c (expr_expected_value): Use *_CLASS_P macros.
10621
10622 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
10623
10624         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
10625         generating useless garbage.
10626
10627 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
10628
10629         * builtins.c (fold_builtin): Call the new omonymous
10630         target hook for machine-dependent built-ins.
10631         * target-def.h (TARGET_FOLD_BUILTIN): New.
10632         * target.h (struct gcc_target): Add the fold_builtin hook.
10633         * targhooks.c (default_fold_builtin): New.
10634         * targhooks.h (default_fold_builtin): Declare it.
10635
10636 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
10637
10638         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
10639         comment typos.
10640
10641 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
10642
10643         PR target/17565
10644         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
10645
10646 2004-09-20  Jan Hubicka  <jh@suse.cz>
10647
10648         * predict.c (estimate_probability): Remove unnecesary code.
10649
10650 2004-09-19  Ira Rosen  <irar@il.ibm.com>
10651
10652         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
10653         (STMT_VINFO_VECT_DR_BASE): Declare.
10654         (VECT_SMODULO): Declare.
10655         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
10656         (vect_compute_array_base_alignment): New function.
10657         (vect_analyze_data_ref_access): Check array indices. Remove one
10658         dimensional arrays restriction.
10659         (vect_get_ptr_offset): New function.
10660         (vect_get_symbl_and_dr): New function.
10661         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
10662         (former name vect_get_base_decl_and_bit_offset).
10663         (vect_create_index_for_array_ref): Removed.
10664         (vect_create_index_for_vector_ref): New function.
10665         (vect_create_addr_base_for_vector_ref): New function.
10666         (vect_create_data_ref): Handle additional data refs. Call
10667         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
10668         (vect_compute_data_ref_alignment): Support the changes. Call
10669         vect_get_base_and_bit_offset.
10670         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
10671         data refs. Store vect_dr_base.
10672         (vect_analyze_data_ref_accesses): Support nonconstant init.
10673         (new_stmt_vec_info): Initialize vect_dr_base field.
10674         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
10675         (get_vectype_for_scalar_type): Check for BLKmode.
10676         * tree-chrec.h (initial_condition_in_loop_num): Declare.
10677         * tree-chrec.c (initial_condition_in_loop_num): New function.
10678         (chrec_component_in_loop_num): New function.
10679         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
10680         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
10681         to be pointer to varray_type.
10682
10683 2004-09-19  Jan Hubicka  <jh@suse.cz>
10684
10685         * basic-block.h (update_bb_profile_after_threading): Declare.
10686         * cfg.c (update_bb_profile_after_threading): Break out from ...
10687         * cfgcleanup.c (try_forward_edges): ... here; use it.
10688         * tree-ssa-dom.c (thread_across_edge): Use it.
10689         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
10690         profile of the new BB.
10691
10692 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
10693
10694         * tree-ssa-pre.c (insert_into_set): Don't put
10695         is_gimple_min_invariant values into the set.
10696
10697 2004-09-19  Andreas Jaeger  <aj@suse.de>
10698
10699         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
10700         prototype.
10701
10702 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10703
10704         * config/cris/cris.h: Preserve the original spelling in a
10705         quote.
10706
10707 2004-09-18 Jeff Law  <law@redhat.com>
10708
10709         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
10710         global varrays to replace the block local varrays.
10711         (struct dom_walk_block_data): Remove, no longer used.
10712         (get_eq_expr_value): No longer need to pass around pointers to local
10713         varrays.  Callers updated.  Unused markers added to unused parameters.
10714         (record_range, record_equivalences_from_stmt): Likewise.
10715         (record_equivalences_from_incoming_edge): Likewise.
10716         (record_var_is_nonzero): Likewise.  Update now that we have a
10717         single global varray of SSA_NAMEs that need restoring.
10718         (dom_opt_initialize_block_local_data): Kill, no longer used.
10719         (tree_ssa_dominator_optimize): Initialize new global varrays.
10720         Update callbacks in dominator walker structure.
10721         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
10722         VRP_VARIABLES_STACK.
10723         (restore_nonzero_vars_to_original_value): Update now that we have
10724         a single global varray of SSA_NAMEs that need restoring.
10725         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
10726         Remove unused variables.
10727         (optimize_stmt): Remove unused variable.
10728
10729 2004-09-18  Jan Hubicka  <jh@suse.cz>
10730
10731         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
10732
10733         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
10734         verify_cgraph call.
10735
10736 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10737
10738         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
10739         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
10740         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
10741         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
10742         tree-ssa-operands.c, tree-ssa-phiopt.c,
10743         tree-ssa-threadupdate.c: Fix comment typos.
10744
10745 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
10746
10747         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
10748         config/arm/README-interworking, config/arm/arm-cores.def,
10749         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
10750         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
10751         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
10752         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
10753         config/frv/frv.md, config/i386/winnt.c,
10754         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
10755         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
10756         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
10757         config/mcore/mcore.c, config/mips/mips.h,
10758         config/mn10300/mn10300.md, config/pa/pa.c,
10759         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
10760         config/rs6000/rs6000.c, config/sh/symbian.c,
10761         config/sparc/sparc.h: Fix comment typos.  Follow spelling
10762         conventions.
10763
10764 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10765
10766         PR c/17424
10767         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
10768
10769 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
10770
10771         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
10772         remove TREE_ADDRESSABLE from RESULT_DECL.
10773
10774 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
10775
10776         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
10777
10778 2004-09-18  Jan Hubicka  <jh@suse.cz>
10779
10780         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
10781         NULL.
10782         * tree-ssa-alias.c (init_alias_info): Likewise.
10783         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
10784         (verify_ssa): Likewise.
10785         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
10786
10787 2004-09-18  Jan Hubicka  <jh@suse.cz>
10788
10789         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
10790         huge offset.
10791
10792 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10793
10794         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
10795         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10796         DW_EH_PE_sdata* for data.
10797         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
10798
10799 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
10800
10801         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
10802         shared anyway.
10803
10804         PR pch/13361
10805         * c-typeck.c (constructor_asmspec): Delete.
10806         (struct initializer_stack): Delete field 'asmspec'.
10807         (start_init): Delete saving of asmspec.
10808         (finish_init): Don't update constructor_asmspec.
10809         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10810         * stmt.c (expand_asm): Duplicate strings from tree.
10811         (expand_asm_operands): Likewise.
10812         * tree.c (tree_size): Update computation of size of STRING_CST.
10813         (make_node): Don't make STRING_CST nodes.
10814         (build_string): Allocate string with tree node.
10815         (tree_code_size): Clean up assertions, don't allow requests
10816         for "the size of a STRING_CST".
10817         * tree.def (STRING_CST): Update comment.
10818         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10819         (tree_string): Place contents of string in tree node.
10820         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10821         from tree.
10822
10823 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
10824
10825         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
10826         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
10827
10828 2004-09-17  Jones Desougi  <jones@ingate.com>
10829
10830         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
10831         * configure, config.in: Regenerate.
10832
10833 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
10834
10835         * tree.c, tree.h (tree_class_strings): Make array const.
10836         Reindent per coding convention.  Move asterisk to proper place
10837         per coding convention.
10838
10839 2004-09-18  Andreas Schwab  <schwab@suse.de>
10840
10841         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
10842         (tree-vectorizer.o): Likewise.
10843         (targhooks.o): Likewise.
10844
10845 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
10846             Zack Weinberg  <zack@codesourcery.com>
10847
10848         * alias.c (find_base_decl): Remove unreachable case '3' block.
10849         * expr.c (safe_from_p): Abort if passed a type.
10850         * tree-gimple.c (recalculate_side_effects): Abort if passed
10851         anything other than an expression.
10852         * tree-ssa-pre.c (phi_translate): Return expr immediately if
10853         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
10854         Abort on un-handled tree classes.
10855         (valid_in_set): Likewise.
10856         * tree.c (tree_code_class_strings): New static data.
10857
10858         * tree.h (enum tree_code_class): New.
10859         (tree_code_class_strings): Declare.
10860         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
10861         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
10862         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
10863         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
10864         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
10865
10866         * tree.def, c-common.def, objc/objc-tree.def: Use
10867         tree_code_class enumeration constants instead of code letters.
10868
10869         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
10870         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
10871         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
10872         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
10873         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
10874         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
10875         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
10876         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
10877         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
10878         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
10879         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
10880         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
10881         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
10882         Update to match.
10883
10884         * LANGUAGES: Add note about change.
10885
10886 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
10887
10888         PR tree-optimization/17319
10889         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
10890         examine pointers on the LHS of an assignment.
10891         (collect_points_to_info_r): Handle RETURN_EXPR.
10892
10893 2004-09-17 Jeff Law  <law@redhat.com>
10894
10895         * tree-ssa-dom.c (const_and_copies_stack): New.
10896         (dom_walk_block_data): Remove const_and_copies field.
10897         (record_const_or_copy): No longer need to pass in varray_type *.
10898         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
10899         Callers updated.
10900         (record_equality): Similarly.
10901         (restore_vars_to_original_value): Similarly.  Revamp to use new
10902         single global stack rather than per-block stacks.
10903         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
10904         (thread_across_edge): Remove now unused parameters.
10905         (dom_opt_initialize_block_local_data): No longer test the block
10906         local CONST_AND_COPIES.
10907         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
10908
10909 2004-09-17  Jan Hubicka  <jh@suse.cz>
10910
10911         PR tree-optimization/17509
10912         * tree-optimize.c (update_inlined_to_pointers): New function.
10913         (tree_rest_of_compilation): Use it.
10914
10915 2004-09-17  Devang Patel  <dpatel@apple.com>
10916
10917         * dbxout.c (get_lang_number): New.
10918         (dbxout_init): Include lang number in N_SO  stab.
10919         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
10920         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
10921
10922 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
10923
10924         PR tree-optimization/17273
10925         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
10926         replacement is a constant.
10927
10928 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
10929
10930         * c-tree.h (enum c_typespec_keyword): New.
10931         (struct c_declspecs): Adjust description of "type".  Remove
10932         specbits, explicit_int_p and explicit_char_p.  Rename
10933         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
10934         short_p, signed_p, unsigned_p and complex_p.
10935         (finish_declspecs): New.
10936         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
10937         typename): Call finish_declspecs.
10938         * c-decl.c (finish_declspecs): New.
10939         (declspecs_add_type): Check for combinations which cannot occur in
10940         valid specifier lists.  Update comments.
10941         (shadow_tag_warned): Remove checks done in finish_declspecs.
10942         Don't report useless type name if type defaulted to int.
10943         (grokdeclarator): Remove checks and actions done in
10944         finish_declspecs.  Don't allow for type being NULL.  Update for
10945         datastructures changes.  Initialize decl_attr.
10946         (build_null_declspecs, quals_from_declspecs): Update for
10947         datastructures changes.
10948
10949 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
10950
10951         * doc/extend.texi: Fix duplicated word.
10952
10953 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
10954
10955         * doc/invoke.texi: Remove stray explanation on
10956         -freduce-all-givs and -fmove-all-movables.
10957
10958 2004-09-17  James Morrison  <phython@gcc.gnu.org>
10959
10960         * doc/cfg.texi: Use @smallexample.
10961         * doc/md.texi: Likewise.
10962         * doc/tree-ssa.texi: Likewise.
10963         * doc/extend.texi: Likewise.  Use @r{} in comments.
10964         * doc/trouble.texi: Use @r{} in comments.
10965
10966 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
10967
10968         * configure.ac (gcc_cv_gld_version): Handle whitespace before
10969         "VERSION=".
10970         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
10971         * configure: Regenerate.
10972
10973 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
10974
10975         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
10976         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
10977         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
10978         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
10979         slashes in substitutions.
10980         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
10981
10982 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
10983
10984         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
10985         gimplify.c, lambda-code.c, optabs.c, predict.c,
10986         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
10987         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
10988         conventions.
10989
10990 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
10991
10992         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
10993         doc/extend.texi, doc/install.texi, doc/invoke.texi,
10994         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
10995         doc/trouble.texi: Use @option around options.
10996
10997 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
10998
10999         * Makefile.in (gen-protos.o): Depend on errors.h.
11000
11001 2004-09-17  Steven Bosscher  <stevenb@suse.de>
11002
11003         PR tree-optimization/17513
11004         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
11005         for successors of the entry block.
11006
11007 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
11008
11009         PR rtl-optimization/15187
11010         * ifcvt.c (noce_try_cmove_arith): Exit early if total
11011         insn_rtx_cost of both branches > BRANCH_COST
11012
11013 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
11014
11015         PR tree-optimization/17528
11016         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
11017         erase the may-alias set for a tag when merging it with
11018         another.
11019
11020 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11021
11022         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
11023         for 32-bit TARGET_SHMEDIA.
11024         (call_value): Likewise.
11025
11026 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
11027
11028         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
11029         test apply only to TREE_STATIC and DECL_EXTERNAL.
11030
11031 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11032
11033         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
11034         * basic-block.h (get_dominated_by_region): Declare.
11035         * dominance.c (get_dominated_by_region): New function.
11036         * tree-cfg.c: Include cfglayout.h.
11037         (tree_duplicate_bb): Duplicate also phi nodes.
11038         (struct ssa_name_map_entry): New type.
11039         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
11040         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
11041         allocate_ssa_names, rewrite_to_new_ssa_names_def,
11042         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
11043         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
11044         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
11045         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
11046         rewrite_to_new_ssa_names, allocate_ssa_names,
11047         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
11048         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
11049         (copy_loop_headers): Use tree_duplicate_sese_region.
11050
11051 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
11052
11053         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
11054
11055 2004-09-16 Jeff Law  <law@redhat.com>
11056
11057         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
11058         (rewrite_block_data): Remove, no longer used.
11059         (rewrite_initialize_block_local_data): Remove, no longer used.
11060         (rewrite_initialize_block): Mark parameters as unused as needed.
11061         Change references to the block local block_defs to be block_defs_stack.
11062         Push a marker onto the block_defs_stack.
11063         (ssa_rewrite_initialize_block): Similarly.
11064         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
11065         (ssa_register_new_def): No longer needs varray argument.  Use
11066         block_defs_stack instead.  No longer handle possibly null block_defs
11067         varray.  Reverse order of items we push on the stack to make it
11068         easier to identify our marker.
11069         (register_new_def): No longer handle possibly null block_defs
11070         varray.
11071         (rewrite_finalize_block): Revamp to look for markers in the global
11072         block_defs_stack varray rather than wiping a block local varray.
11073         Mark arguments as unused as needed.
11074         (ssa_rewrite_finalize_block): Similarly.
11075         (rewrite_into_ssa): Update initialization of dom walker structure
11076         to reflect that we don't need block local data anymore.  Initialize
11077         the block_defs_stack varray.
11078         (rewrite_ssa_into_ssa): Similarly.
11079         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
11080         (struct dom_walk_data): Kill block_defs field.
11081         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
11082         (thread_across_edge): Use the global block_defs_stack instead of
11083         the old block_defs varray.
11084         (dom_opt_initialize_block_local_data): Update now that we don't have
11085         block_defs field to check anymore.
11086         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
11087         (restore_currdefs_to_original_value): Use the new block_defs_stack
11088         instead of a block local varray.
11089         (dom_opt_finalize_block): Similarly.
11090         (record_equivalencs_from_phis): Similarly.
11091         (optimize_stmt, register_definitions_for_stmt): Similarly.
11092
11093 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
11094
11095         PR tree-optimization/17517
11096         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11097         coalesce same-root variables without checking for abnormal PHI usage.
11098
11099 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
11100
11101         * cfgloop.h (duplicate_loop):  Add prototype.
11102         * cfgloopmanip.c (duplicate_loop): Make non-static.
11103         * lambda-code.c (perfect_nestify): Factor out test whether
11104         we can handle this loop into separate function.
11105         Call it.
11106         (can_convert_to_perfect_nest): New function.
11107         (replace_uses_of_x_with_y): Add modify_stmt call.
11108         * tree-loop-linear.c (linear_transform_loops): Call
11109         rewrite_into_loop_closed_ssa and free_df.
11110
11111 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
11112
11113         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
11114         loop invariant as well.
11115         (perfect_nestify): new function.
11116         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
11117         upper bounds, and steps.
11118         Set outerinductionvar properly.
11119         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
11120         parameters.
11121         Return NULL if we need a perfect loop and can't make one.
11122         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
11123         (not_interesting_stmt): New function.
11124         (phi_loop_edge_uses_def): Ditto.
11125         (stmt_uses_phi_result): Ditto.
11126         (stmt_is_bumper_for_loop): Ditto.
11127         (perfect_nest_p): Ditto.
11128         (nestify_update_pending_stmts): Ditto.
11129         (replace_uses_of_x_with_y): Ditto.
11130         (stmt_uses_op): Ditto.
11131         (perfect_nestify): Ditto.
11132         * lambda-mat.c (lambda_matrix_id_p): New function.
11133         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
11134         * lambda.h: Update prototypes.
11135         * tree-loop-linear (linear_transform_loop): Use new
11136         perfect_nest_p. Detect and ignore identity transform.
11137         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
11138
11139 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
11140
11141         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
11142         Gather also strides of accessed data.  Pass in the data references
11143         array.
11144         (try_interchange_loops): Add a new heuristic for handling the temporal
11145         locality.  Pass in the data references array.
11146         (linear_transform_loops): Pass the data references array to
11147         try_interchange_loops.
11148
11149 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
11150
11151         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
11152
11153 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
11154
11155         * doc/c-tree.texi (Classes): Remove index entries for
11156         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
11157
11158 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11159
11160         * fold-const.c (fold): Fold difference of addresses.
11161         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
11162         get_inner_reference.
11163         * tree-ssa-loop-ivopts.c (peel_address): Removed.
11164         (ptr_difference_const): Moved to fold-const.c.
11165         (split_address_cost): Use get_inner_reference instead of peel_address.
11166         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
11167         * tree.h (ptr_difference_const): Export.
11168
11169         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
11170         variable type to the dump.  Fix indentation.
11171         (idx_find_step): Handle nonconstant array_ref_element_size and
11172         array_ref_low_bound.
11173         (idx_record_use): Handle array_ref_element_size and
11174         array_ref_low_bound.
11175         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
11176         statements correctly.
11177         (get_computation_at, iv_value): Do not unshare expressions here.
11178         (rewrite_use_outer): Unshare the expression before it is emitted
11179         to code.
11180         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
11181         Moved to tree.c.
11182         * tree.c (unsigned_type_for, signed_type_for): Moved from
11183         tree-ssa-loop-niter.c.  Use langhooks.
11184         * tree.h (signed_type_for): Export.
11185
11186 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
11187
11188         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
11189         prototype.
11190
11191 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
11192
11193         PR target/11572
11194         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
11195         Add two parameters to extra_includes.
11196         (C_INCPATH_INIT): Remove.
11197         * c-incpath.c (register_include_chains): Call extra_pre_includes
11198         before adding the standard include directory.
11199         Update call to extra_includes.
11200         (!defined TARGET_EXTRA_INCLUDES): Update
11201         hook_void_charptr_charptr_int and add !define
11202         TARGET_EXTRA_PRE_INCLUDES.
11203         (!define TARGET_EXTRA_INCLUDES): Define as
11204         hook_void_charptr_charptr_int.
11205         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
11206         (target_c_incpath): Always declare.
11207         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
11208         empty function.
11209         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
11210         * config/darwin.h: (darwin_register_frameworks): Update for
11211         the two new parameters.
11212         (darwin_register_objc_includes): Add prototype.
11213         (TARGET_EXTRA_PRE_INCLUDES): Define.
11214         * config/darwin-c.c (darwin_register_objc_includes): New function.
11215         (darwin_register_frameworks): Update for the two new parameters.
11216         (target_c_incpath): Remove.
11217         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
11218         the compile line.
11219         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
11220         parameters.
11221         (TARGET_EXTRA_PRE_INCLUDES): Document.
11222
11223         * gcc.c (spec_function): Add replace-outfile.
11224         (replace_outfile_spec_function): New function.
11225         * config/darwin.h (LINK_SPEC): Add replace
11226         -lobjc with -lobjc-gnu if -fgnu-runtime is
11227         supplied.
11228         * invoke.texi (replace-outfile): Document.
11229
11230 2004-09-13  Jan Hubicka  <jh@suse.cz>
11231
11232         * predict.c (expr_expected_value, strip_builtin_expect): New function.
11233         (tree_predict_by_opcode): Use it.
11234         (tree_estimate_probability): Add, for now disabled,
11235         strip_builtin_expect call.
11236
11237 2004-09-15  James E Wilson  <wilson@specifixinc.com>
11238
11239         PR target/17455
11240         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
11241         if current_function_decl is a sibcall.
11242
11243 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
11244
11245         * varasm.c (default_function_rdodata_section): Make sure to pass
11246         along a decl for a link-once section.
11247
11248 2004-09-15  Richard Henderson  <rth@redhat.com>
11249
11250         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
11251         warning with code disable.  Fix formatting.
11252
11253 2004-09-15  Steven Bosscher  <stevenb@suse.de>
11254
11255         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
11256         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
11257         after propagating into an ADDR_EXPR.
11258
11259 2004-09-15  Andrew Pinski  <apinski@apple.com>
11260
11261         PR rtl-opt/17427
11262         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
11263         Move it out of gcc_assert.
11264
11265 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
11266
11267         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
11268         except.c, fold-const.c, function.c, langhooks.c, params.c,
11269         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
11270         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
11271         for quoting in diagnostics going through pretty-print.c.  Use ''
11272         for quoting in other diagnostic text.
11273         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
11274         translation.
11275         * Makefile.in (langhooks.o): Update dependencies.
11276         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
11277         formats.
11278
11279 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
11280
11281         * configure.ac: Check for COMDAT support.  Robustify check for
11282         SHF_MERGE support.
11283         * configure: Regenerated.
11284         * config.in: Likewise.
11285         * langhooks-def.h (lhd_comdat_group): New function.
11286         (LANG_HOOKS_COMDAT_GROUP): New macro.
11287         (LANG_HOOKS_DECLS): Use it.
11288         * langhooks.c (lhd_comdat_group): Define.
11289         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
11290         * output.h (named_section_flags): Make it a macro.
11291         (named_section_real): New function.
11292         (default_no_named_section): Add decl parameter.
11293         (default_elf_asm_named_section): Likewise.
11294         (default_coff_asm_named_section): Likewise.
11295         (default_pe_asm_named_section): Likewise.
11296         * target.h (gcc_target): Adjust type of named_section.
11297         * varasm.c (named_section_flags): Rename to named_section_real.
11298         Add decl parameter.
11299         (default_no_named_section): Add decl parameter.
11300         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
11301         with the case that ASM_COMMENT_START is "@".
11302         (default_coff_asm_named_section): Add decl parameter.
11303         (default_pe_asm_named_section): Likewise.
11304         * config/alpha/alpha.c (vms_asm_named_section): Add decl
11305         parameter.
11306         (unicosmk_asm_named_section): Likewise.
11307         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
11308         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
11309         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
11310         * config/cris/cris-protos.h (cris_target_asm_named_section):
11311         Likewise.
11312         * config/cris/cris.c (cris_target_asm_named_section):
11313         Likewise.
11314         * config/darwin/darwin-protos.h (darwin_asm_named_section):
11315         Likewise.
11316         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
11317         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
11318         * config/i386/i386-protos.h (i386_pe_asm_named_section):
11319         Likewise.
11320         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
11321         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
11322         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
11323         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
11324         Likewise.
11325         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
11326         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
11327         * cp/cp-tree.h (cxx_comdat_group): Declare.
11328         * cp/decl.c (cxx_comdat_group): New function.
11329
11330 2004-09-15  Jan Hubicka  <jh@suse.cz>
11331
11332         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
11333         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
11334
11335         * tree-cfg.c (remove_bb): Release SSA defs.
11336
11337 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
11338
11339         * doc/tm.texi: Follow spelling conventions.
11340
11341 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
11342
11343         * tree-ssa-dom.c: Fix comment typos.
11344
11345 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
11346
11347         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
11348         include ccr.
11349         (ppc_fallback_frame_state): Save location of CR.
11350
11351 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
11352
11353         * expr.c (string_constant): Handle also read-only variables
11354         initialized to string literals.
11355
11356         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
11357         into memcpy (x, y, 1) if memcpy can be expanded inline.
11358
11359 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11360
11361         PR tree-optimization/17468
11362         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
11363         definition inside a block precede uses.
11364         * tree-tailcall.c (adjust_return_value): Emit statements in the
11365         correct order.
11366
11367 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
11368
11369         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
11370
11371 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
11372
11373         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
11374
11375 2004-09-14 Jeff Law  <law@redhat.com>
11376
11377         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
11378         (struct dom_walk_block_data): Remove avail_exprs member.
11379         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
11380         (lookup_avail_expr): No longer need to pass in address of
11381         the block local available exprs stack.  All callers changed.
11382         (simplify_cond_and_lookup_avail_expr): Similarly.
11383         (simplify_switch_and_lookup_avail_expr): Similarly.
11384         (get_eq_expr_value, record_cond): Likewise.
11385         (record_dominating_conditions): Likewise.
11386         (update_rhs_and_lookup_avail_expr): Likewise.
11387         (record_equivalences_from_stmt): Likewise.
11388         (dom_opt_initialize_block_local_data): No longer test state of
11389         block local avail_exprs.
11390         (dom_opt_initialize_block): Mark unwind point in the global
11391         avail_expr stack.
11392         (remove_expressions_from_table): Update to unwind to the
11393         most recent unwind marker in the global avail_expr stack.
11394         All callers changed.
11395         (dom_opt_finalize_block): Mark unwind point in the global
11396         avail_expr stack as needed.
11397         (record_cond): Push elements into the global avail_exprs stack.
11398
11399         * tree-dfa.c (free_df_for_stmt): No longer static.
11400         (free_df): Update comments.
11401         * tree-flow.h (free_df_for_stmt): Prototype.
11402         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
11403         call release_defs.
11404
11405 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
11406
11407         PR tree-optimization/17252
11408         * tree-ssa-alias.c (may_alias_p): Don't assume that a
11409         pointer may not point to itself when using relaxed
11410         aliasing rules.
11411
11412 2004-09-14  Richard Henderson  <rth@redhat.com>
11413
11414         PR middle-end/17397
11415         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
11416         while folding <ADDR_EXPR <INDIRECT_REF X>>.
11417
11418 2004-09-14  Andrew Pinski  <apinski@apple.com>
11419
11420         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
11421         sets of the pointers but the aliasing sets of what they point to.
11422
11423 2004-09-14  Roger Sayle  <roger@eyesopen.com>
11424
11425         PR rtl-optimization/9771
11426         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
11427         conditional compilation in init_reg_sets_1.
11428         (init_reg_sets_1): Let global_regs[i] take priority over the frame
11429         (but not stack) pointer exceptions to regs_invalidated_by_call.
11430         (globalize_reg): Globalizing a fixed register may need to update
11431         regs_invalidated_by_call.
11432
11433 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
11434
11435         PR tree-optimization/15262
11436         * tree-dfa.c (dump_variable): Also print the type of the
11437         variable.
11438         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
11439         memory tags are of conflicting alias sets but have no aliased
11440         symbols in common, add one tag to the alias set of the other.
11441         (setup_pointers_and_addressables): Remove hack to deal with
11442         programs with no aliased symbols.
11443         (may_alias_p): Don't special case aggregate types.
11444
11445 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11446
11447         PR c/15498
11448         * doc/invoke.texi (Environment Variables): Correct example locale.
11449
11450 2004-09-14  Jan Hubicka  <jh@suse.cz>
11451
11452         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
11453
11454 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
11455
11456         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
11457
11458 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11459
11460         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
11461         restrict_p.
11462         (struct c_declarator): Change u.array.quals and pointer_quals to
11463         int.  Add u.array.attrs.
11464         (quals_from_declspecs): New.
11465         * c-decl.c (quals_from_declspecs): New.
11466         (shadow_tag_warned): Give more specific message for useless type
11467         qualifiers.
11468         (build_array_declarator, set_array_declarator_inner,
11469         grokdeclarator, make_pointer_declarator, build_null_declspecs,
11470         declspecs_add_qual): Update for changed structures.
11471
11472 2004-09-14  Jeff Law  <law@redhat.com>
11473
11474         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
11475         to a global varray.
11476         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
11477         (dom_opt_initialize_block_local_data): No longer test state
11478         of stmts_to_rescan.
11479         (dom_opt_finalize_block): Update due to change in scope of
11480         stmts_to_rescan.
11481         (optimize_stmt): Similarly.
11482
11483 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
11484
11485         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
11486         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
11487         comment typos.  Follow spelling conventions.
11488
11489 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
11490
11491         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
11492         config/i386/predicates.md, config/sparc/sparc.c: Follow
11493         spelling conventions.
11494
11495 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11496             Steven Bosscher  <stevenb@suse.de>
11497
11498         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
11499         * basic-block.h (struct reorder_block_def): Add copy_number field.
11500         * cfgloop.h (biv_p): Declare.
11501         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
11502         * common.opt (fsplit-ivs-in-unroller): New flag.
11503         * loop-iv.c (biv_p): New function.
11504         * loop-unroll.c: Include hashtab.h and recog.h.
11505         (struct iv_to_split, struct split_ivs_info): New types.
11506         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
11507         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
11508         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
11509         insert_base_initialization, split_iv): New functions.
11510         (peel_loop_completely, unroll_loop_constant_iterations,
11511         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
11512         Use them.
11513         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
11514
11515 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11516
11517         * tree-cfg.c (thread_jumps): Update dominators correctly in
11518         case destination of threaded edge dominates its source.
11519
11520 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11521
11522         * unroll.c: Removed.
11523         * loop.h: Removed.
11524         * Makefile.in (LOOP_H, unroll.o): Removed.
11525         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
11526         dependency.
11527         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
11528         reference.
11529         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
11530         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
11531         * loop.c: Do not include loop.h.
11532         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
11533         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
11534         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
11535         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
11536         struct loop_regs, struct loop_movables, struct loop_info): Moved
11537         from loop.h.
11538         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
11539         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
11540         find_common_reg_term, loop_iterations, final_giv_value): Moved
11541         from unroll.c.
11542         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
11543         loop_dump_stream, for_each_insn_in_loop, express_from,
11544         extend_value_for_giv, loop_iv_add_mult_emit_before,
11545         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
11546         loop_insn_first_p, get_condition_for_loop,
11547         loop_insn_emit_before, loop_insn_hoist,
11548         loop_insn_sink): Made static.
11549         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
11550         reference.
11551         (strength_reduce): Do not call unroller.
11552         (record_giv): Do not initialize unrolled field.
11553         (prescan_loop): Do not set loop_info->preconditioned.
11554         * passes.c: Do not include loop.h.
11555         (rest_of_handle_loop_optimize): Do not call unroller.
11556         * predict.c: Do not include loop.h.
11557         * rtl.h (NOTE_PRECONDITIONED): Removed.
11558         * stmt.c: Do not include loop.h.
11559         * toplev.c: Do not include loop.h.
11560         (process_options): Do not handle flag_old_unroll_loops.
11561
11562         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
11563         Documentation removed.
11564         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
11565
11566 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
11567
11568         * Makefile.in (STAGE1_CHECKING): New variable.
11569         (stage1_build): Use it.
11570         * tree-ssa.c (verify_ssa): Preserve state of dominance
11571         information.
11572
11573 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
11574
11575         * config/i386/i386.c (output_fp_compare): Add generation
11576         of ftst instruction.
11577         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
11578         Use output_fp_compare () function.
11579         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
11580         (fix_truncdi_memory): Remove operands[5] copy.
11581
11582 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
11583
11584         * config/m32r/m32r.md, config/m68k/m68kelf.h,
11585         config/mcore/mcore.md, config/rs6000/linux64.h,
11586         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
11587         typos.
11588
11589 2004-09-13  James E Wilson  <wilson@specifixinc.com>
11590
11591         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
11592         * gen-protos.c: Include errors.h.
11593         (progname): Delete.
11594
11595 2004-09-14  Jan Hubicka  <jh@suse.cz>
11596
11597         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
11598         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
11599         (predict_loops): Use number_of_iterations_exit to predict
11600         number of iterations on trees.
11601
11602 2004-09-13  Dale Johannesen  <dalej@apple.com>
11603
11604         PR 17408
11605         PR 17409
11606         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
11607         objects declared extern.
11608
11609 2004-09-14  Paul Brook  <paul@codesourcery.com>
11610
11611         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
11612         HOST_WIDE_INT.
11613
11614 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
11615
11616         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
11617         Only use TYPE_BINFO for aggregates.
11618
11619 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
11620
11621         * expmed.c (synth_mult): Initialize latency.  Check cost before
11622         checking ops count.
11623
11624 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
11625
11626         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
11627         add_call_clobber_ops and add_call_read_ops.
11628         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
11629         the number of vdefs and vuses inserted based on analysis of global
11630         variables across calls.  * tree-dfa.c (find_referenced_vars):
11631         Needed to reset static var maps before each function is compiled.
11632         * cgraphunit.c:
11633         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
11634         static_vars_info,functions_to_static_vars_info,module_statics_escape,
11635         all_module_statics,searchc_env,dfs_info): New fields to support
11636         analysis of static global variables.
11637         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
11638         cgraph_reset_static_var_maps, get_global_static_vars_info,
11639         get_global_statics_not_read, get_global_statics_not_written,
11640         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
11641         check_rhs_var, check_lhs_var, get_asm_expr_operands,
11642         process_call_for_static_vars, scan_for_static_refs,
11643         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
11644         clear_static_vars_maps, cgraph_propagate_bits,
11645         cgraph_characterize_statics): New. Functions to support analysis
11646         of static global variables.
11647         (cgraph_mark_local_and_external_functions): Renamed from:
11648         (cgraph_mark_local_functions)
11649         (cgraph_expand_all_functions): Remove call to
11650         cgraph_mark_local_and_external_functions.
11651         (cgraph_optimize): Added driver to analyze static variables whose
11652         scope is within the compilation unit.  * cgraph.h (struct
11653         cgraph_local_info, GTY): Added statics_read, statics_written,
11654         local, calls_read_all, calls_write_all, for_functions_valid.
11655         (struct cgraph_node): Added next_cycle.  * cgraph.c
11656         (dump_cgraph_node): Added print routines for new fields.  *
11657         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
11658         list.
11659
11660 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
11661
11662         * c-decl.c (grokdeclarator): Correct comments about where storage
11663         class specifiers are rejected by grammar and add corresponding
11664         asserts.  Diagnose typedefs and parameters declared inline.
11665         Change warning for inline main to a pedwarn.  Only diagnose inline
11666         main if hosted.
11667         (declspecs_add_scspec): Allow duplicate "inline".
11668
11669 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
11670
11671         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
11672         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
11673
11674 2004-09-13  Richard Henderson  <rth@redhat.com>
11675
11676         PR 17436
11677         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
11678         (tree_type): Replace spare with contains_placeholder_bits.
11679         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
11680         make static.  Remove seen_types list.
11681         (type_contains_placeholder_p): New.
11682
11683 2004-09-13  James E Wilson  <wilson@specifixinc.com>
11684
11685         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
11686         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
11687         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
11688         bdesc_arrays instead of mips_bdesc.
11689         (mips_init_builtins): Likewise.
11690         * config/mips/mips.h (TARGET_SB1): New.
11691         (HAVE_SQRT_P): Delete.
11692         * config/mips/mips.md (divide_condition): Support V2SF.
11693         (sqrt_condition, recip_condition): New.
11694         (div<mode>3): Use ANYF instead of SCALARF.
11695         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
11696         MODE.
11697         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
11698         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
11699         instead of MODE.
11700         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
11701         instead of SCALARF.  Use UNITMODE instead of MODE.
11702
11703 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
11704
11705         * config.in: Regenerate after removal of libbanshee.
11706
11707 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
11708
11709         PR tree-optimization/17400
11710         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11711         coalesce partitions when one occurs in an abnormal PHI.
11712
11713 2004-09-13  Andrew Pinski  <apinski@apple.com>
11714
11715         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
11716         name to _new_size.
11717
11718 2004-09-13  Richard Henderson  <rth@redhat.com>
11719
11720         PR inline-asm/6806
11721         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
11722         (cselib_invalidate_rtx_note_stores): New.
11723         (cselib_record_sets, cselib_process_insn): Update to match.
11724         * cselib.h (cselib_invalidate_rtx): Declare.
11725         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
11726
11727 2004-09-13  Richard Henderson  <rth@redhat.com>
11728
11729         PR tree-opt/10528
11730         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
11731         after copying its argument.
11732
11733 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
11734
11735         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
11736         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
11737         in diagnostics.  Use %' for English apostrophes.
11738         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
11739         (pedwarn_c90, pedwarn_c99): Use it.
11740         * c-decl.c (lookup_label): Quote label name in diagnostic.
11741         * c-parse.in (yyprint): Use ' instead of ` for left quote.
11742         * c-typeck.c (warn_for_assignment): Likewise.
11743
11744 2004-09-13  Jan Hubicka  <jh@suse.cz>
11745
11746         * i386.c (x86_schedule): New global variable.
11747         (override_options): Disable scheduling when not supported.
11748         * i386.h (x86_schedule): Declare.
11749         (TARGET_SCHEDULE): New macro.
11750
11751 2004-09-12  Richard Henderson  <rth@redhat.com>
11752
11753         PR c++/16254
11754         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
11755         * tree.c, tree.h (has_cleanups): Remove.
11756
11757 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11758
11759         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
11760         arguments of the phi nodes correctly.
11761
11762 2004-09-12  Jan Hubicka  <jh@suse.cz>
11763
11764         * ggc-common.c (cmp_statistics): Fix sorting.
11765
11766 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
11767
11768         PR target/16795
11769         * expmed.c (expand_divmod): If cheap power of 2 divide is
11770         available, use it for negative constant as well.
11771
11772 2004-09-12  Andrew Pinski  <apinski@apple.com>
11773
11774         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
11775         size of 0.
11776
11777         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
11778
11779 2004-09-12  Richard Henderson  <rth@redhat.com>
11780
11781         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
11782         or minus one.
11783         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
11784         post-reload, and scratch NULL.
11785         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
11786         (x86_shift_adj_2): Use ix86_expand_clear.
11787         (ashldi3): Remove CMOVE expansion difference.
11788         (ashldi3_1): Remove.
11789         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
11790         add constraints for immediates.  New peephole for split-with-temp.
11791         Run splitter after peep2 pass.
11792         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
11793         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
11794         (setcc_2): Rename with *.
11795         * config/i386/predicates.md (reg_or_pm1_operand): New.
11796         (ashldi_input_operand): New.
11797
11798 2004-09-12  Richard Henderson  <rth@redhat.com
11799
11800         * print-rtl.c (print_decl_name): New.
11801         (print_mem_expr): Use it.
11802
11803 2004-09-12  Richard Henderson  <rth@redhat.com
11804
11805         PR 17186, part deux
11806         * except.c (sjlj_emit_function_exit): Fix logic locating
11807         sjlj_exit_after in final block.
11808
11809 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
11810
11811         * common.opt: Remove flags -fmove-all-movables and
11812         -freduce-all-givs.
11813         * loop-invariant.c (find_invariants_to_move):
11814         Remove all uses of flag_move_all_movables.
11815         * loop.c (move_movables): Remove all uses of
11816         flag_move_all_movables.
11817         (strength_reduce): Remove all uses of
11818         flag_reduce_all_givs.
11819         * doc/invoke.texi: Remove documentation of flags
11820         -fremove-all-movables and -freduce-all-givs.
11821
11822 2004-09-11  Roger Sayle  <roger@eyesopen.com>
11823
11824         PR middle-end/17411
11825         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
11826         change. elt->type may be a floating point type, so use fold_convert.
11827
11828 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
11829
11830         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
11831         the thing referenced as used, not the stub itself.
11832
11833 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11834
11835         * c-tree.h (enum c_storage_class): New.
11836         (struct c_declspecs): Add storage_class, inline_p and thread_p.
11837         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
11838         declarations and "auto" or "register" in file scope empty
11839         declarations.  Give more specific warnings for other cases of
11840         storage class specifiers in empty declarations.
11841         (grokdeclarator): Update for new structures.  Don't check for
11842         multiple storage classes.  Diagnose file-scope "register" if
11843         pedantic.
11844         (build_null_declspecs): Update.
11845         (declspecs_add_scspec): Update.  Diagnose multiple storage class
11846         specifiers and invalid uses of "__thread".
11847
11848 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
11849
11850         * tree.c (tree_code_size): New function, bulk of code from tree_size.
11851         (tree_size, make_node): Use it.
11852         * tree-ssa-pre.c (init_pre): Use it.
11853         * tree.h: Prototype it.
11854
11855 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11856
11857         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
11858         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
11859         redirect_immediate_use): Use PHI_DF.
11860         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
11861         (bb_for_stmt): Use PHI_BB.
11862         (get_immediate_uses): Use PHI_DF.
11863         * tree-ssa-dse.c (max_stmt_uid): New variable.
11864         (get_stmt_uid): New function.
11865         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
11866         node annotations.
11867         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
11868         (max_uid): Renamed to max_stmt_uid.
11869         (get_stmt_uid): New function.
11870         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
11871         phi node annotations.
11872         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
11873         * tree.h (PHI_BB, PHI_DF): New accessor functions.
11874         (struct tree_phi_node): Add bb and df fields.
11875
11876 2004-09-11  Richard Henderson  <rth@redhat.com>
11877
11878         PR middle-end/17416
11879         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
11880         in conflict loop.
11881
11882 2004-09-11  Jan Hubicka  <jh@suse.cz>
11883
11884         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
11885         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
11886         * i386.md (i387_cw): Add 'uninitialized' mode.
11887
11888         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
11889         (output_location): Break out from ....
11890         (branch_prob): ... here; handle gcov output on trees.
11891         * toplev.c (process_options): No longer be sorry about coverage for
11892         trees.
11893
11894 2004-09-11  Steven Bosscher  <stevenb@suse.de>
11895
11896         PR c++/17412
11897         * fold-const.c (fold): Do not try to fold the operand of a
11898         CLEANUP_POINT_EXPR if that operand does itself not have any
11899         operands.
11900
11901         PR middle-end/17417
11902         * langhooks.c (lhd_decl_printable_name): Make sure that this
11903         function is called with is a decl node that has an identifier.
11904         * tree-pretty-print.c (dump_function_name): New function to
11905         wrap PRINT_FUNCTION_NAME and dump_decl_name.
11906         (print_call_name): Use it.
11907
11908 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
11909
11910         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
11911         "config.h" if not.
11912
11913 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
11914
11915         * tree-ssa-alias.c (collect_points_to_info_r): Handle
11916         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
11917         to OFFSET.
11918
11919 2004-09-11  Richard Henderson  <rth@redhat.com>
11920
11921         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
11922         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
11923         operand of the ADDR_EXPR.
11924         (expand_expr_real_1): Update to match.
11925
11926 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
11927
11928         PR target/17277
11929         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
11930         choose 64-bit version.
11931
11932 2004-09-11  Richard Henderson  <rth@redhat.com>
11933
11934         PR c/17396
11935         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
11936
11937 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
11938
11939         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
11940         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
11941         Insert @: after i.e. or e.g.
11942
11943 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11944
11945         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
11946         D.xxx rather than <Dxxx>.
11947
11948 2004-09-10  Adam Nemet  <anemet@lnxw.com>
11949
11950         * configure.ac (AC_MSG_CHECKING(what linker to use)):
11951         in_tree_ld_is_elf should be true for LynxOS.
11952         * configure: Regenerate.
11953
11954 2004-09-10  Adam Nemet  <anemet@lnxw.com>
11955
11956         * Makefile.in (all.cross): Add srcextra.
11957
11958 2004-09-10  Roger Sayle  <roger@eyesopen.com>
11959
11960         PR middle-end/17024
11961         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
11962         floating point comparison operators.  Change aborts to gcc_asserts.
11963
11964 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
11965
11966         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
11967
11968 2004-09-10  James E Wilson  <wilson@specifixinc.com>
11969
11970         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
11971         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
11972
11973         * convert.c (convert_to_vector): Replace recursive call with
11974         error_mark_node.
11975
11976         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
11977         Add integer argument named constant.  Use const_tiny_rtx instead of
11978         CONST0_RTX.
11979         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
11980         and CONST1_RTX.
11981         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
11982         vector types.
11983         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
11984         of gen_rtx_raw_CONST_VECTOR.
11985
11986 2004-09-10  Eric Christopher  <echristo@redhat.com>
11987
11988         PR c/16046
11989         * c-parse.in (attribute): Add NULL_TREE for error case
11990         for error recovery.
11991
11992 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
11993
11994         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
11995         (extract_interface_info): Delete prototype.
11996         * c-decl.c (extract_interface_info): Delete stub.
11997         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
11998         it's not already been done ...
11999         (init_c_lex): ... not here.
12000         (fe_file_change): Don't call extract_interface_info.
12001
12002 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12003
12004         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
12005         typedef_p and typedef_signed_p.
12006         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
12007         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
12008         Check typedef_p and typedef_signed_p, not typedef_decl.
12009         (grokfield): Check typedef_p, not typedef_decl.
12010         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
12011         not typedef_decl.
12012         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
12013         typedef_decl.
12014
12015 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
12016
12017         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
12018
12019 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
12020
12021         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
12022         temporary variables.
12023
12024         * dbxout.c (dbxout_block): Update for
12025         current_function_func_begin_label a string.
12026         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
12027         * except.c (dw2_output_call_site_table): Likewise.
12028         * toplev.c (current_function_func_begin_label): Likewise.
12029         * tree.h (current_function_func_begin_label): Likewise.
12030         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
12031
12032         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
12033         loop.
12034
12035         * config/darwin.c: Include target.h.
12036         (struct machopic_indirection): Make ptr_name a string.
12037         (machopic_indirection_hash): Update for ptr_name a string.
12038         (machopic_indirection_eq): Likewise.
12039         (machopic_indirection_name): Likewise.
12040         (machopic_output_indirection): Likewise.
12041         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
12042         string.  Don't expect stub names to be in the identifier hash table.
12043         Do call strip_name_encoding before looking up entry in ID hash table.
12044         * config/t-darwin (darwin.o): Add target.h to dependencies.
12045
12046         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
12047         of fprintf for register names.
12048
12049         * output.h (unlikely_section_label): Delete declaration.
12050         (unlikely_text_section_name): Likewise.
12051         * varasm.c (unlikely_section_label_printed): Make static.
12052         (unlikely_section_label): Likewise.
12053         (unlikely_text_section_name): Likewise.
12054         (assemble_start_function): Use reconcat.
12055
12056         * rtl.def (REG): Add comment to describe third field.
12057
12058 2004-09-10  Andrew Pinski  <apinski@apple.com>
12059
12060         * config/darwin.c (machopic_mcount_stub_name): Call
12061         machopic_indirection_name instead of making the string
12062         ourselves.
12063
12064 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
12065
12066         Revert
12067
12068         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
12069
12070             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
12071             memory tag is call clobbered, so are its aliases.
12072             (group_aliases): When two memory tags being grouped, if one is
12073             call clobbered, so are the other and its aliases.
12074             (add_may_alias): Remove call-clobbering stuff.
12075             (replace_may_alias): Likewise.
12076             (merge_pointed_to_info): Merge pt_global_mem
12077
12078 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
12079
12080         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
12081         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
12082         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
12083         tree-scalar-evolution.c, tree-ssa-copyrename.c,
12084         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
12085
12086 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
12087
12088         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
12089         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
12090         pair.  Remove match_dup from inputs.  Remove masaccs handling.
12091         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
12092         (masaccs, mdasaccs): Turn into define_insns.
12093
12094 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
12095
12096         * tree-tailcall.c (process_assignment): Only do accumulator transforms
12097         for floating-point types if flag_unsafe_math_optimizations.
12098
12099 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
12100
12101         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
12102         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
12103         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
12104         config/h8300/h8300.md, config/i386/gmm_malloc.h,
12105         config/ia64/ia64.md, config/ip2k/libgcc.S,
12106         config/mips/mips-ps-3d.md, config/mips/mips.c,
12107         config/rs6000/rs6000.c, config/s390/s390.c,
12108         config/sh/symbian.c: Fix comment typos.
12109
12110 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12111
12112         * config/s390/s390.c (s390_emit_prologue): Added missing
12113         "{}" brackets.
12114
12115 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
12116
12117         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
12118         typos.  Follow spelling conventions.
12119
12120 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
12121
12122         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
12123         in diagnostic.  Don't dereference NULL TYPE_NAME.
12124
12125 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
12126
12127         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
12128         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
12129         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
12130         value-prof.c: Fix comment typos.  Follow spelling conventions.
12131
12132 2004-09-10  Jan Hubicka  <jh@suse.cz>
12133
12134         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
12135         * tree-split_edge.c (tree_split_edge): Likewise.
12136         (thread_jumps): Likewise.
12137
12138 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
12139
12140         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
12141         typos.
12142
12143 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
12144
12145         * cgraph.h (cgraph_dump_file): Do not declare.
12146         * cgraphunit.c (cgraph_dump_file): Declare as static.
12147         (init_cgraph): New.
12148         * toplev.c (cgraph_dump_file): Do not declare.
12149         (compile_file): Call init_cgraph.
12150         * tree-dump.c (dump_files): Add IPA dump file, remove
12151         XML dump of call graph.
12152         (get_dump_file_name): Support IPA dump file naming scheme.
12153         * tree.h (enum tree_dump_index): Add IPA dump file, remove
12154         XML dump of call graph.
12155         * doc/invoke.texi (Debugging Options): Document the new options.
12156
12157 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
12158
12159         * doc/extend.texi: Document the FR-V built-in functions.
12160
12161 2004-09-09  James E Wilson  <wilson@specifixinc.com>
12162
12163         * doc/sourcebuild.texi: Delete libbanshee reference.
12164
12165 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
12166
12167         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
12168
12169 2004-09-09  James E Wilson  <wilson@specifixinc.com>
12170
12171         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
12172         before calling vector_types_convertible_p.
12173         (digest_init): Check that inside_init has VECTOR_TYPE before calling
12174         vector_types_convertible_p.  Don't give another error if
12175         convert_for_assignment returns error_mark_node.
12176
12177 2004-09-09  Roger Sayle  <roger@eyesopen.com>
12178
12179         PR middle-end/17055
12180         * fold-const.c (build_zero_vector): New function to construct a
12181         vector (either floating point or integer) of zeros.
12182         (fold_convert): Internally, enable conversions of integer zero
12183         to arbitrary vector types, using the new build_zero_vector.
12184
12185 2004-09-09  Roger Sayle  <roger@eyesopen.com>
12186
12187         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
12188         expand a left shift by an immediate constant as either an ashl or
12189         a sequence of additions.
12190         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
12191         instead of calling gen_ashlsi3 with a constant directly.
12192
12193 2004-09-09  Roger Sayle  <roger@eyesopen.com>
12194
12195         * config/i386/i386.c (ix86_split_long_move): When optimizing for
12196         size, and the low and high parts of a DImode constant are equal,
12197         copy one register to another instead of loading the same immediate
12198         value twice.
12199
12200 2004-09-09  Richard Henderson  <rth@redhat.com>
12201
12202         PR middle-end/17367
12203         * function.c (assign_parm_setup_block): Only put PARALLELs into
12204         a register if use_register_for_decl.
12205
12206 2004-09-09  Eric Christopher  <echristo@redhat.com>
12207
12208         * ra-colorize.c (reset_lists): Move variable declaration inside
12209         ENABLE_CHECKING to avoid unused variable warnings when
12210         not --enable-checking.
12211         (check_colors): Ditto.
12212
12213 2004-09-09  Mike Stump  <mrs@apple.com>
12214
12215         * version.c (version_string): Bump to 4.0.0.
12216         * doc/include/gcc-common.texi (version-GCC): Likewise.
12217
12218 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
12219
12220         * doc/extend.texi (nothrow attribute): The attribute is not
12221         implemented in 3.2 and earlier.
12222
12223 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
12224
12225         * genrecog.c (compute_predicate_codes): Use op0_codes
12226         instead of codes.
12227
12228 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
12229
12230         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
12231         implementation changes.
12232
12233 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
12234
12235         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
12236         a PARALLEL instead of a SET due to added clobbers.
12237
12238 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
12239
12240         * reload.c (find_reloads_address): Pass correct operand to
12241         maybe_memory_address_p.
12242
12243 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
12244
12245         * Makefile.in: Remove libbanshee, tree-alias-*.
12246         Remove tree-alias-common.h dependencies.
12247         * common.opt: Remove -ftree-points-to.
12248         * configure.ac: Remove libbanshee.
12249         * flags.h: Remove pta_type, flag_tree_points_to.
12250         * gengtype.c (open_base_files): Remove tree-alias-type.h.
12251         * opts.c (OPT_ftree_points_to): Remove.
12252         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
12253         * tree-dfa.c: Remove tree-alias-common.h
12254         * tree-into-ssa.c: Ditto.
12255         * tree-outof-ssa.c: Ditto.
12256         * tree-ssa-copyrename.c: Ditto.
12257         * tree-ssa-live.c: Ditto.
12258         * tree-optimize.c: Ditto.
12259         * tree-ssa.c: Ditto.
12260         Remove pass_build_pta, pass_del_pta.
12261         * tree-pass.h: Ditto.
12262         * tree-ssa-alias.c: Remove tree-alias-common.h.
12263         (struct alias_stats_d): Remove pta_queries, pta_resolved.
12264         (pass_may_alias): Remove PROP_pta requirement.
12265         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
12266         (get_tmt_for): Ditto.
12267         (dump_alias_stats): Ditto.
12268         * doc/passes.texi: Remove blurb about points-to analysis.
12269         * fortran/Make-lang.in: Remove tree-alias-*.o.
12270
12271 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
12272
12273         * genattrtab.c (write_insn_cases): New function, split out from
12274         write_attr_case.  Correctly handle define_peepholes when printing
12275         the instruction name.
12276         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
12277
12278 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
12279
12280         PR target/17377
12281         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
12282         * config/cris/cris.c (cris_return_address_on_stack): New function.
12283         * config/cris/cris.md ("return"): For location of return address,
12284         also check cris_return_address_on_stack.
12285
12286 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
12287
12288         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
12289         calling phi_ssa_name_p.
12290
12291 2004-09-09  Richard Henderson  <rth@redhat.com>
12292
12293         PR c/17322
12294         * c-typeck.c (valid_compound_expr_initializer): Use only
12295         initializer_constant_valid_p, and not TREE_CONSTANT.
12296         (digest_init): Likewise.
12297         (output_init_element): Likewise.
12298
12299 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
12300
12301         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
12302         live_out_1, prune_hardregs_for_mode, init_one_web_common,
12303         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
12304         record_conflict, compare_and_free_webs, init_webs_defs_uses,
12305         parts_to_webs_1, parts_to_webs, reset_conflicts,
12306         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
12307         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
12308         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
12309         put_move, remove_move, combine, select_spill, colorize_one_web,
12310         try_recolor_web, insert_coalesced_conflicts, check_colors,
12311         break_precolored_alias, restore_conflicts_from_coalesce,
12312         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
12313         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
12314         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
12315         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
12316         check_df): Likewise.
12317         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
12318         real_arithmetic, real_compare, real_exponent, real_ldexp,
12319         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
12320         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
12321         real_digit, real_nan, real_maxval, round_for_format, real_convert,
12322         real_to_target, real_from_target, real_hash, encode_ieee_single,
12323         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
12324         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
12325         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
12326         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
12327         extract_insn, peep2_next_insn, peep2_reg_dead_p,
12328         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
12329         if_test_bypass_p): Likewise.
12330         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
12331         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
12332         emit_swap_insn, swap_to_top, move_for_stack_reg,
12333         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
12334         compensate_edge, convert_regs_1): Likewise.
12335         * regclass.c (init_reg_sets, init_reg_sets_1,
12336         memory_move_secondary_cost): Likewise.
12337         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
12338         Likewise.
12339         * reload.c (push_secondary_reload, find_valid_class, push_reload,
12340         operands_match_p, decompose, immune_p, find_reloads,
12341         find_reloads_toplev, find_reloads_address_1, subst_reloads,
12342         copy_replacements, refers_to_regno_for_reload_p,
12343         reg_overlap_mentioned_for_reload_p): Likewise.
12344         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
12345         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
12346         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
12347         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
12348         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
12349         do_output_reload, fixup_abnormal_edges): Likewise.
12350         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
12351         fill_slots_from_thread, relax_delay_slots): Likewise.
12352         * resource.c (mark_referenced_resources, mark_set_resources):
12353         Likewise.
12354         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
12355         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
12356         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
12357         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
12358         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
12359         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
12360         * rtlhooks.c (gen_lowpart_general): Likewise.
12361         * sbitmap.c (sbitmap_difference): Likewise.
12362         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
12363         sched_analyze, add_forward_dependence): Likewise.
12364         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
12365         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
12366         schedule_insns): Likewise.
12367         * sched-vis.c (print_pattern): Likewise.
12368         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
12369         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
12370         simplify_const_relational_operation, simplify_ternary_operation,
12371         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
12372         Likewise.
12373         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
12374         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
12375         resolve_operand_name_1, expand_return, expand_decl,
12376         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
12377         * stor-layout.c (put_pending_size, smallest_mode_for_size,
12378         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
12379         set_sizetype, get_mode_bounds): Likewise.
12380
12381 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
12382
12383         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
12384         * config/arm/pecoff.h, config/i386/beos-elf.h
12385         * config/i386/cygming.h, config/i386/i386-interix.h:
12386         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
12387         comment cloned from manual.
12388         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
12389
12390 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
12391
12392         * builtins.c (build_va_arg_indirect_ref): New function.
12393         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
12394         build_fold_indirect_ref.
12395         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
12396         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
12397         * tree.h: Declare new function.
12398
12399 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12400
12401         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
12402         dumping for development builds.
12403         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
12404         development builds only.
12405         * genattrtab.c (write_eligible_delay): Fix typo in previous
12406         commit.
12407         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
12408         gcc_assert.
12409
12410 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12411
12412         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
12413         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
12414         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
12415         hoist_code, extract_mentioned_regs_helper, compute_store_table,
12416         insert_store): Use gcc_assert and gcc_unreachable.
12417         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
12418         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
12419         ggc_record_overhead): Likewise.
12420         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
12421         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
12422         ggc_pop_context, clear_marks, validate_free_objects,
12423         ggc_pch_read): Likewise.
12424         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
12425         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
12426         ggc_push_context, check_cookies, ggc_collect,
12427         ggc_print_statistics): Likewise.
12428         * gimple-low.c (lower_function_body, lower_stmt,
12429         lower_bind_expr): Likewise.
12430         * gimplify.c (gimple_tree_eq, push_gimplify_context,
12431         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
12432         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
12433         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
12434         gimplify_case_label_expr, gimplify_exit_block_expr,
12435         canonicalize_component_ref, gimplify_compound_lval,
12436         gimplify_self_mod_expr, gimplify_call_expr,
12437         gimplify_init_ctor_eval, gimplify_init_constructor,
12438         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
12439         gimplify_expr, check_pointer_types_r,
12440         force_gimple_operand): Likewise.
12441         * global.c (global_alloc, build_insn_chain): Likewise.
12442         * graph.c (clean_graph_dump_file,
12443         finish_graph_dump_file): Likewise.
12444         gcov-io.c (gcov_open): Use GCOV_CHECK.
12445
12446 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
12447
12448         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
12449
12450 2004-09-09  Jan Hubicka  <jh@suse.cz>
12451
12452         middle-end/17128
12453         * tree-inline.c (expand_call_inline): Make overactive sanity check
12454         happy.
12455
12456 2004-09-09  Jan Hubicka  <jh@suse.cz>
12457
12458         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
12459         VIEW_CONVERT_EXPR.
12460
12461 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12462
12463         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
12464         (gengtype.o): Depend on errors.h.
12465         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
12466         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
12467         attr_alt_subset_p, attr_alt_subset_of_compl_p,
12468         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
12469         write_test_expr, write_attr_value, write_eligible_delay,
12470         make_internal_attr, make_numeric_value): Likewise.
12471         * genautomata.c (regexp_name, get_str_vect,
12472         gen_presence_absence_set, automaton_decl_hash,
12473         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
12474         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
12475         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
12476         test_unit_reserv, it_is_empty_reserv_sets,
12477         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
12478         reserv_sets_and, output_cycle_reservs, get_free_state,
12479         intersected_state_reservs_p, states_union, remove_arc,
12480         copy_insn_regexp, transform_1, transform_2, transform_3,
12481         regexp_transform_func, store_alt_unit_usage,
12482         check_regexp_units_distribution, process_seq_for_forming_states,
12483         process_alts_for_forming_states, make_automaton,
12484         form_arcs_marked_by_insn, create_composed_state,
12485         set_out_arc_insns_equiv_num, partition_equiv_class,
12486         process_insn_equiv_class, set_insn_equiv_classes,
12487         units_to_automata_heuristic_distr, form_regexp,
12488         longest_path_length, output_dfa_max_issue_rate, add_vect,
12489         out_state_arcs_num, add_vect_el, output_trans_table,
12490         output_state_alts_table, output_dead_lock_vect,
12491         output_max_insn_queue_index_def,
12492         output_min_insn_conflict_delay_func,
12493         output_internal_insn_latency_func, output_print_reservation_func,
12494         output_cpu_unit_reservation_p, output_state_arcs,
12495         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
12496         make_default_insn_latency_attr,
12497         form_important_insn_automata_lists): Likewise.
12498         * genemit.c (gen_exp, output_add_clobbers,
12499         output_added_clobbers_hard_reg_p): Likewise.
12500         * genextract.c (print_path, main): Likewise.
12501         * genflags.c (gen_macro): Likewise.
12502         * gengenrtl.c: Include errors.h
12503         (type_from_format, accessor_from_format): Likewise.
12504         * gengtype.c (get_file_basename, output_mangled_typename,
12505         walk_type, write_types_process_field,
12506         write_types_local_process_field): Likewise.
12507         * genmodes.c (complete_mode): Likewise.
12508         * genopinit.c (gen_insn): Likewise.
12509         * genoutput.c (output_insn_data, check_constraint_len,
12510         constraint_len): Likewise.
12511         * genpreds.c (add_mode_tests):Likewise.
12512         * gen-protos.c (add_hash): Likewise.
12513         * genrecog.c (find_operand, find_matching_operand,
12514         validate_pattern, add_to_sequence, maybe_both_true,
12515         nodes_identical_1, merge_trees, write_switch, write_cond,
12516         write_action, is_unconditional, make_insn_sequence,
12517         debug_decision_2): Likewise.
12518         * gensupport.c (is_predicable, collect_insn_data,
12519         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
12520
12521 2004-09-09  Jan Hubicka  <jh@suse.cz>
12522
12523         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
12524         * cfgbuild.c (compute_outgoing_frequencies): When probability is
12525         missing, guess it.
12526         (find_many_sub_basic_blocks): Do update profile only when it is
12527         present.
12528         * predict.c (set_even_probabilities): Break out from ...
12529         (combine_predictions_for_insn): ... here; deal with
12530         !can_predict_insn_p insns.
12531         (combine_predictions_for_bb): Use set_even_probabilities.
12532         (bb_estimate_probability_locally): Break out from ....
12533         (estimate_probability): ... here.
12534         (guess_outgoing_edge_probabilities): New entry point.
12535
12536 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12537
12538         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
12539         handle_braces, process_brace_body, main, used_arg,
12540         set_multilib_dir, print_multilib_info): Use fatal, not abort.
12541
12542         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
12543
12544         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
12545         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
12546         Morgan's theorem in last checkin.
12547
12548 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
12549             Nathan Sidwell  <nathan@codesourcery.com>
12550
12551         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
12552         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
12553         * timevar.c (timevar_push, timevar_pop, timevar_start,
12554         timevar_stop): Likewise.
12555         * toplev.c (default_pch_valid_p): Likewise.
12556         * tracer.c (tail_duplicate): Likewise.
12557         * tree-alias-common.c (get_alias_var_decl,
12558         get_values_from_constructor, create_alias_var, delete_alias_vars,
12559         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
12560         Likewise.
12561         * tree.c (tree_size, make_node_stat, copy_node_stat,
12562         build_int_cst_wide, integer_all_onesp, list_length, chainon,
12563         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
12564         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
12565         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
12566         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
12567         build_method_type_directly, decl_type_context, get_callee_fndecl,
12568         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
12569         tree_fold_gcd): Likewise.
12570         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
12571         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
12572         cleanup_control_expr_graph, find_taken_edge,
12573         find_taken_edge_switch_expr, phi_alternatives_equal,
12574         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
12575         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
12576         tree_split_edge, tree_verify_flow_info, thread_jumps,
12577         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
12578         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
12579         chrec_fold_multiply_poly_poly): Likewise.
12580         * tree-complex.c (extract_component, expand_complex_division,
12581         expand_complex_comparison, expand_complex_operations_1,
12582         build_replicated_const, expand_vector_operations_1): Likewise.
12583         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
12584         build_classic_dir_vector): Likewise.
12585         * tree-dfa.c (compute_immediate_uses_for_phi,
12586         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
12587         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
12588         * tree-dump.c (dequeue_and_dump): Likewise.
12589         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
12590         record_in_finally_tree, replace_goto_queue_1,
12591         maybe_record_in_goto_queue, verify_norecord_switch_expr,
12592         do_return_redirection): Likewise.
12593         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
12594         add_to_dst_predicate_list, find_phi_replacement_condition,
12595         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
12596         Likewise.
12597         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
12598         initialize_inlined_parameters, declare_return_variable,
12599         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
12600         optimize_inline_calls, copy_tree_r): Likewise.
12601         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
12602         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
12603         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
12604         tsi_split_statement_list_after, tsi_split_statement_list_before):
12605         Likewise.
12606         * tree-mudflap.c (mf_varname_tree): Likewise.
12607         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
12608         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
12609         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12610         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
12611         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
12612         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
12613         Likewise.
12614         * tree-phinodes.c (resize_phi_node, add_phi_arg,
12615         remove_all_phi_nodes_for): Likewise.
12616         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
12617         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
12618         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
12619         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
12620         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
12621         generate_one_element_ref, generate_element_copy,
12622         generate_element_zero, scalarize_copy, scalarize_init,
12623         scalarize_ldst): Likewise.
12624         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
12625         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
12626         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
12627         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
12628         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
12629         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
12630         widen_bitfield, ccp_fold_builtin): Likewise.
12631         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
12632         replace_exp_1, propagate_tree_value): Likewise.
12633         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
12634         * tree-ssa-dce.c (set_control_dependence_map_bit,
12635         find_control_dependence, find_pdom, mark_operand_necessary,
12636         mark_stmt_if_obviously_necessary,
12637         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
12638         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
12639         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
12640         eliminate_redundant_computations, avail_expr_eq): Likewise.
12641         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
12642         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
12643         duplicate_blocks): Likewise.
12644         * tree-ssa-loop-im.c (for_each_index, set_level,
12645         is_call_clobbered_ref): Likewise.
12646         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
12647         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
12648         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
12649         peel_address, ptr_difference_cost, may_replace_final_value,
12650         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
12651         rewrite_use, rewrite_uses): Likewise.
12652         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
12653         check_loop_closed_ssa_use): Likewise.
12654         * tree-ssanames.c (make_ssa_name): Likewise.
12655         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
12656         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
12657         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
12658         get_indirect_ref_operands, add_stmt_operand): Likewise.
12659         * tree-ssa-pre.c (value_exists_in_set_bitmap,
12660         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
12661         phi_translate, valid_in_set, compute_antic,
12662         find_or_generate_expression, create_expression_by_pieces, insert_aux,
12663         create_value_expr_from, eliminate): Likewise.
12664         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
12665         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
12666         Likewise.
12667         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
12668         eliminate_tail_call): Likewise.
12669         * tree-vectorizer.c (vect_create_index_for_array_ref,
12670         vect_align_data_ref, vect_create_data_ref,
12671         vect_create_destination_var, vect_get_vec_def_for_operand,
12672         vect_finish_stmt_generation, vect_transform_stmt,
12673         vect_transform_loop_bound, vect_transform_loop,
12674         vect_analyze_operations): Likewise.
12675         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
12676         Likewise.
12677         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
12678         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
12679         bsi_after_labels, bsi_last): Likewise.
12680         * tree-ssa-live.c (var_union, change_partition_var,
12681         create_ssa_var_map, calculate_live_on_entry, root_var_init,
12682         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
12683         Likewise.
12684         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
12685         tpa_find_tree): Likewise.
12686         (register_ssa_partition_check): Declare.
12687         (register_ssa_partition): use it.
12688         * tree-ssa-live.c: Include errors.h.
12689         (register_ssa_partition_check): New.
12690         * tree-ssa-operands.c: Include errors.h.
12691         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
12692
12693 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
12694             Catherine Moore  <clm@redhat.com>
12695
12696         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
12697         (FRV_CPU_FR405): New processor enums.
12698         (frv_issue_rate, frv_acc_group): Declare.
12699         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
12700         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
12701         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
12702         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
12703         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
12704         handled by CPP_SPEC.
12705         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
12706         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
12707         (ACC_MASK): New macro.
12708         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
12709         (TARGET_MEDIA_FR450): New macro.
12710         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
12711         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
12712         (LABEL_ALIGN_AFTER_BARRIER): Define.
12713         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
12714         (IACC_FIRST, IACC_LAST): New pair of SPRs.
12715         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
12716         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
12717         (REGISTER_NAMES): Add entries for new registers.
12718         (REG_CLASS_CONTENTS): Update for new register ranges.
12719         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
12720         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
12721         (PACKING_FLAG_USED_P): Delete.
12722         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
12723         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
12724         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
12725         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
12726         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
12727         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
12728         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
12729         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
12730         (CPU_UNITS_QUERY): Define to 1.
12731         * config/frv/frv.c: Include gt-frv.h
12732         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
12733         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
12734         (frv_insn_group): New enumeration.
12735         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
12736         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
12737         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
12738         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
12739         gap left by REGSTATE_LIVE.
12740         (regstate_t): New typedef.
12741         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12742         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
12743         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
12744         Initialize frv_unit_codes[] and frv_type_to_unit[].
12745         (frv_conditional_register_usage): Remove redundant fixing of
12746         accumulator registers.
12747         (frv_insn_packing_flag): Update specification.
12748         (frv_function_prologue): Don't set frv_insn_packing_flag here.
12749         Zero out frv_nops[].
12750         (frv_expand_epilogue): Remove comments about the no-longer-present
12751         SIBCALL_P argument.
12752         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
12753         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
12754         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
12755         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
12756         packing is disabled and if INSN can only issue to M1.
12757         (call_operand): Check TARGET_LONG_CALLS.
12758         (acc_operand, even_acc_operand, quad_acc_operand)
12759         (accg_operand): Simplify.  Don't accept pseudo registers.
12760         (output_move_single): Handle SPR<-zero moves.
12761         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
12762         (frv_registers_update, frv_registers_used_p): Delete.
12763         (frv_registers_set_p): Delete.
12764         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
12765         (frv_issues_to_branch_unit_p): New function.
12766         (frv_packet): New structure.
12767         (frv_cond_flags, frv_regstate_conflict_p): New functions.
12768         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
12769         (frv_registers_update_1, frv_registers_update): New functions.
12770         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
12771         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
12772         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
12773         (frv_sort_insn_group, frv_reorder_packet): New functions.
12774         (frv_pack_insns): Use frv_reorder_packet.
12775         (frv_packet_address): New variable.
12776         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
12777         (frv_register_nop, frv_reorg): New functions.
12778         (bdesc_1arg): Add __SCUTSS.
12779         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
12780         __SUBSS, __SLASS and __SCAN.
12781         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
12782         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
12783         (frv_init_builtins): Register the above builtins.
12784         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
12785         registers.  Turn the referenced accumulators into global registers.
12786         (frv_read_iacc_argument): New function.
12787         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
12788         (frv_split_iacc_move): New function.
12789         (frv_expand_builtin): Handle the new builtins.
12790         * config/frv/frv.md: Replace old schedulers with new order-independent
12791         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
12792         packing algorithm.
12793         (cpu): Add fr550, fr450 and fr405.
12794         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
12795         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
12796         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
12797         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
12798         (fnop, mnop): New patterns.
12799         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
12800         New constants.
12801         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
12802         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
12803         registers.
12804         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
12805         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
12806         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
12807         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
12808         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
12809         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
12810         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
12811         (frv_prefetch0, frv_prefetch): New patterns.
12812         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
12813         -mcpu=simple.  Add -mcpu=fr550.
12814         (MULTILIB_DIRNAMES): Update accordingly.
12815         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
12816         -mcpu=fr450.
12817         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
12818         -mlong-calls and -malign-labels options for FR-V.
12819
12820 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12821
12822         PR c/8420
12823         * c-tree.h (struct c_declspecs): New.
12824         (struct c_declarator, struct c_type_name, struct c_parm): Update
12825         element types.
12826         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
12827         start_function, start_decl, build_c_parm,
12828         make_pointer_declarator): Update prototypes.
12829         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
12830         declspecs_add_scspec, declspecs_add_attrs): New.
12831         (split_specs_attrs): Remove.
12832         * c-parse.in (%union): Add dsptype.
12833         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
12834         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
12835         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
12836         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
12837         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
12838         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
12839         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
12840         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
12841         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
12842         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
12843         maybe_type_quals_attrs): Change to dsptype.
12844         (struct c_declspec_stack): New.
12845         (current_declspecs, declspec_stack): Change type.
12846         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
12847         structures.
12848         (extdefs): Likewise.
12849         (setspecs): Likewise.
12850         (fndef): Use current_declspecs for empty declspecs list.
12851         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
12852         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
12853         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
12854         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
12855         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
12856         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
12857         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
12858         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
12859         structures and helper functions.  Update comments.
12860         (typespec_nonattr): Correct comment.
12861         (maybe_type_quals_attrs, typename): Update to new structures.
12862         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
12863         shadow_tag, shadow_tag_warned, start_function, start_decl,
12864         build_c_parm, make_pointer_declarator,
12865         set_array_declarator_inner, groktypename): Update to new
12866         structures.
12867         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
12868         declspecs_add_scspec, declspecs_add_attrs): New.
12869         (split_specs_attrs): Remove.
12870         (shadow_tag_warned): Make warning for useless type names a
12871         pedwarn.  Give hard error for long, short, signed, unsigned or
12872         _Complex used with struct, union or enum in empty declaration.
12873         Make found_tag a bool.
12874         (grokdeclarator): Remove checks now done at parse time.
12875
12876 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12877
12878         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
12879         c_declarator, struct c_type_name, struct c_parm): New.
12880         (build_array_declarator, set_array_declarator_inner,
12881         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
12882         start_function, start_decl, build_c_parm, build_attrs_declarator,
12883         build_function_declarator, make_pointer_declarator, c_cast_expr,
12884         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
12885         (build_id_declarator): New.
12886         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
12887         structures.
12888         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
12889         ARG_INFO_OTHERS): Remove.
12890         (build_id_declarator): New.
12891         (build_array_declarator, set_array_declarator_inner, groktypename,
12892         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
12893         grokfield, start_function, store_parm_decls_newstyle,
12894         store_parm_decls_oldstyle, store_parm_decls,
12895         build_c_parm, build_attrs_declarator, build_function_declarator,
12896         make_pointer_declarator, grokdeclarator): Update to new
12897         structures.
12898         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
12899         parmtype.
12900         (declarator, notype_declarator, after_type_declarator,
12901         parm_declarator, parm_declarator_starttypename,
12902         parm_declarator_nostarttypename, array_declarator, typename,
12903         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
12904         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
12905         parmlist_1, parmlist_2, parmlist_or_identifiers,
12906         parmlist_or_identifiers_1): Use these types.
12907         (primary, after_type_declarator, parm_declarator_starttypename,
12908         notype_declarator, component_decl, component_declarator,
12909         component_notype_declarator, typename, absdcl,
12910         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
12911         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
12912
12913 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12914
12915         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
12916         in_typeof, record_maybe_used_decl, pop_maybe_used,
12917         c_expr_sizeof_expr, c_expr_sizeof_type): New.
12918         * c-decl.c (parser_obstack): New.
12919         (c_init_decl_processing): Initialize parser_obstack.
12920         (c_write_global_declarations_1): Check for used but undefined
12921         static functions.
12922         * c-parse.in (%union): Add otype.
12923         (save_obstack_position): New.
12924         (extdefs): Use it.
12925         (unary_expr): Update in_sizeof and in_alignof.  Use
12926         c_expr_sizeof_expr and c_expr_sizeof_type.
12927         (sizeof): Update in_sizeof.
12928         (alignof): Update in_alignof.
12929         (typeof): Update in_typeof.
12930         (typespec_nonreserved_nonattr): Call pop_maybe_used.
12931         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
12932         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
12933         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
12934         (build_external_ref): Set C_DECL_USED or call
12935         record_maybe_used_decl if appropriate.
12936         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
12937
12938 2004-09-08  Eric Christopher  <echristo@redhat.com>
12939
12940         * builtins.c: Fix prototype for fold_builtin_atan.
12941
12942 2004-09-08  Eric Christopher  <echristo@redhat.com>
12943
12944         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
12945         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
12946         fold_builtin_atan): New functions. Migrate function bodies...
12947         (fold_builtin_1): ... from here.
12948
12949 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
12950
12951         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
12952         save_size.
12953
12954 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
12955
12956         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
12957         * config/rs6000/power5.md (power5-lmul): Same.
12958
12959 2004-09-08  Richard Henderson  <rth@redhat.com>
12960
12961         PR rtl-opt/17186
12962         * function.c (expand_function_end): Have fall-off-the-end
12963         return path jump around return register setup.
12964
12965 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
12966
12967         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
12968         (output_return): Do not test for the presence of the 'unimp' insn.
12969         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
12970         as predicates instead of custom ones.  Return raw strings when
12971         possible.
12972         (output_sibcall): Likewise.  Concatenate strings.
12973         (output_ubranch): Remove kludge for TurboSPARC.
12974         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
12975         (output_v9branch): Likewise.
12976         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
12977         <#>: Set sparc_indent_opcode if the delay slot is filled.
12978         <(>: Likewise.
12979         <)>: New operand to emit the displacement from the saved PC on return.
12980         <@>: Remove.
12981         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
12982         (ASM_OUTPUT_OPCODE): New macro.
12983         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
12984         * config/sparc/sparc.md (normal_branch, inverted_branch,
12985         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
12986         inverted_fpe_branch): Adjust call to output_cbranch.
12987         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
12988         call to output_v9branch.
12989         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
12990         (output_v9branch): Likewise.
12991
12992 2004-09-08  Devang Patel  <dpatel@apple.com>
12993
12994         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
12995         -segs_read_only_addr and -segs_read_write_addr.
12996         (WORD_SWITCH_TAKES_ARG): Same.
12997         (LINK_SPEC): Same.
12998         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
12999         -segs_read_write_addr.
13000
13001 2004-09-08  Richard Henderson  <rth@redhat.com>
13002
13003         * function.c (reference_callee_copied): New.
13004         (assign_parm_setup_reg): Use it.
13005         * calls.c (initialize_argument_information): Likewise.
13006         (emit_library_call_value_1): Likewise.
13007         * function.h (reference_callee_copied): Declare.
13008
13009         * target.h (struct gcc_target): Add callee_copies.
13010         * target-def.h (TARGET_CALLEE_COPIES): New.
13011         (TARGET_PASS_BY_REFERENCE): Update default.
13012         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13013         * targhooks.c (hook_callee_copies_named): New.
13014         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
13015         hook_pass_by_reference_false.
13016         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
13017         * targhooks.h: Update decls.
13018         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
13019         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13020         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
13021         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
13022         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13023         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
13024         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13025         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
13026         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13027         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
13028         (mips_callee_copies): New.
13029         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13030         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
13031         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13032         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
13033         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13034         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
13035         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13036         * config/sh/sh.c (sh_callee_copies): New.
13037         (TARGET_CALLEE_COPIES): New.
13038         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13039         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
13040         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
13041         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
13042         for FUNCTION_ARG_CALLEE_COPIES.
13043         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
13044
13045 2004-09-08  Devang Patel  <dpatel@apple.com>
13046
13047         * tree-if-conv.c (find_phi_replacement_condition): Return true
13048         edge block.
13049         (replace_phi_with_cond_modify_expr): Select conditional expr args
13050         based on true edge basic block.
13051
13052 2004-09-08  Jan Hubicka  <jh@suse.cz>
13053
13054         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
13055         variables being alias set.
13056
13057 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
13058
13059         * final.c (shorten_branches, final, get_insn_template,
13060         output_alternate_entry_point, final_scan_insn, alter_subreg,
13061         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
13062         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
13063         * fix-header.c (lookup_std_proto): Likewise.
13064         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
13065         verify_local_live_at_start, update_life_info, mark_reg,
13066         calculate_global_regs_live, allocate_reg_life_data,
13067         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
13068         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
13069         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
13070         * fold-const.c (force_fit_type, div_and_round_double,
13071         may_negate_without_overflow_p, int_const_binop, const_binop,
13072         size_binop, size_diffop, fold_convert_const, fold_convert,
13073         invert_tree_comparison, swap_tree_comparison,
13074         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
13075         range_binop, make_range, fold_cond_expr_with_comparison,
13076         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
13077         fold_abs_const, fold_not_const, fold_relational_const, round_up,
13078         round_down): Likewise.
13079         * function.c (find_function_data, assign_stack_temp_for_type,
13080         instantiate_virtual_regs_lossage, aggregate_value_p,
13081         assign_parm_find_entry_rtl, assign_parm_setup_block,
13082         expand_function_start, expand_function_end, keep_stack_depressed,
13083         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
13084
13085 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
13086
13087         * Makefile.in (tree-loop-linear.o): Added.
13088         (OBJS-common): Add tree-loop-linear.o
13089         * common.opt: New flag, ftree-loop-linear.
13090         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
13091         * tree-flow.h: Add prototype for linear_transform_loops.
13092         * tree-optimize.c: Add linear transform after vectorization.
13093         * tree-pass.h: Add struct pass_linear_transform.
13094         * tree-ssa-loop.c: Add pass_linear_transform.
13095         * tree-loop-linear.c: New file.
13096         * lambda-code.c: gcc_assertify.
13097         (gcc_loop_to_lambda_loop): Handle all exit tests.
13098         Handle case where we have (invariant >= induction var).
13099         (find_induction_var_from_exit_cond): Ditto.
13100
13101 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
13102
13103         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
13104         memory tag is call clobbered, so are its aliases.
13105         (group_aliases): When two memory tags being grouped, if one is
13106         call clobbered, so are the other and its aliases.
13107         (add_may_alias): Remove call-clobbering stuff.
13108         (replace_may_alias): Likewise.
13109         (merge_pointed_to_info): Merge pt_global_mem
13110
13111 2004-09-08  Jan Hubicka  <jh@suse.cz>
13112
13113         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
13114         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
13115         (cgraph_expand_function): Remove stale cgraph edges of currently
13116         compiled function; fix non-unit-at-a-time code copying function
13117         node for later reuse.
13118
13119 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
13120
13121         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
13122         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
13123         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
13124         (vec_gc_free, vec_heap_free): New.
13125         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
13126         (DEF_VEC_P): Add allocator argument. Adjust.
13127         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
13128         (DEF_VEC_O): Add allocator argument. Adjust.
13129         (VEC(free)): New.
13130
13131         * tree.h (tree): Define a GC'd vector.
13132         * lamba-code.c (lambda_loop): Likewise.
13133         * value-prof.h (histogram_value): Likewise.
13134
13135 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
13136
13137         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
13138         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
13139         gen_lowpart_common, gen_highpart, gen_highpart_mode,
13140         subreg_highpart_offset, operand_subword, operand_subword_force,
13141         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
13142         set_mem_alias_set, change_address_1, verify_rtx_sharing,
13143         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
13144         try_split, add_insn_after, add_insn_before, remove_insn,
13145         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
13146         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
13147         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
13148         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
13149         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
13150         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
13151         record_path_before_1, check_path_after_1, check_path_after): Likewise.
13152         * except.c (gen_eh_region, resolve_one_fixup_region,
13153         remove_unreachable_regions, convert_from_eh_region_ranges_1,
13154         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
13155         connect_post_landing_pads, sjlj_emit_function_exit,
13156         remove_exception_handler_label, remove_eh_handler,
13157         reachable_next_level, collect_one_action_chain,
13158         output_function_exception_table): Likewise.
13159         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
13160         optimize_save_area_alloca, allocate_dynamic_stack_space,
13161         probe_stack_range, hard_function_value): Likewise.
13162         * expmed.c (mode_for_extraction, store_bit_field,
13163         store_fixed_bit_field, extract_bit_field, expand_shift,
13164         expand_mult_const, expand_mult, choose_multiplier,
13165         expand_mult_highpart, expand_divmod, emit_store_flag,
13166         do_cmp_and_jump): Likewise.
13167         * expr.c (convert_move, convert_modes, move_by_pieces,
13168         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
13169         move_block_from_reg, gen_group_rtx, emit_group_load,
13170         emit_group_move, emit_group_store, use_reg, use_regs,
13171         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
13172         emit_move_insn, emit_move_insn_1, emit_push_insn,
13173         expand_assignment, store_expr, count_type_elements,
13174         store_constructor, store_field, safe_from_p, expand_var,
13175         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
13176
13177 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
13178
13179         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
13180         gcc_assert and gcc_unreachable.
13181         * ddg.c (create_ddg_dependence, add_deps_for_def,
13182         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
13183         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
13184         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
13185         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
13186         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
13187         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
13188         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
13189         dataflow_set_copy, hybrid_search, diagnostic.c,
13190         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
13191         * dojump.c (do_jump): Likewise.
13192         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
13193         compute_dom_fast_query, calculate_dominance_info,
13194         free_dominance_info, get_immediate_dominator,
13195         set_immediate_dominator, get_dominated_by,
13196         redirect_immediate_dominators, nearest_common_dominator,
13197         dominated_by_p, verify_dominators, recount_dominator,
13198         iterate_fix_dominators, add_to_dominance_info,
13199         delete_from_dominance_info): Likewise.
13200         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
13201         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
13202         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
13203         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
13204         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
13205         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
13206         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
13207         output_call_frame_info, output_loc_operands, build_cfa_loc,
13208         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
13209         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
13210         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
13211         splice_child_die, attr_checksum, same_dw_val_p,
13212         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
13213         unmark_dies, value_format, output_loc_list, output_die,
13214         output_pubnames, output_aranges, base_type_die, is_base_type,
13215         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
13216         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
13217         field_byte_offset, add_data_member_location_attribute,
13218         add_const_value_attribute, rtl_for_decl_location,
13219         add_location_or_const_value_attribute, add_byte_size_attribute,
13220         add_bit_offset_attribute, add_bit_size_attribute,
13221         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
13222         decl_start_label, gen_formal_parameter_die,
13223         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
13224         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
13225         force_decl_die, force_type_die, gen_decl_die,
13226         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
13227         dwarf2out_finish): Likewise.
13228
13229 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
13230
13231         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
13232         * builtins.c: Include tree-mudflap.h.
13233
13234 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
13235
13236         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
13237         force operand 0.0 into register in XFmode. Also do not force
13238         operand 0.0 into register if !TARGET_CMOVE.
13239         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
13240         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
13241         implement ftst x87 instruction.
13242         (*fp_jcc_7): New insn pattern. Change corresponding split
13243         pattern to handle "general_operand" instead of
13244         "nonimmediate_operand".
13245
13246 2004-09-08  Ben Elliston  <bje@au.ibm.com>
13247
13248         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
13249
13250 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
13251
13252         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
13253         generated from standard va_arg expansion.
13254         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
13255         marked nodes.
13256         (mf_varname_tree, mf_file_function_line_tree): Add some support
13257         for column numbers if compiled with USE_MAPPED_LOCATION.
13258
13259 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
13260
13261         * c-decl.c (groktypename_in_parm_context): Remove function.
13262         * c-tree.h (groktypename_in_parm_context): Remove prototype.
13263
13264 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
13265
13266         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
13267         * c-parse.in: Include c-common.h instead of objc-act.h.
13268         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
13269         myparms, myparm): Remove %type declarations.
13270         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
13271         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
13272         declarations.
13273         (objc_inherit_code, objc_public_flag): Remove.
13274         (typespec_nonreserved_nonattr): Call
13275         objc_get_protocol_qualified_type() instead of get_static_reference()
13276         and get_protocol_reference().
13277         (stmt_nocomp): Call grokparm() on @catch parameter.
13278         (objcdef): Move semantic action to objc_finish_implementation().
13279         (classdef): Move semantic action to objc_start_class_interface(),
13280         objc_continue_interface(), objc_finish_interface(),
13281         objc_start_class_implementation(), objc_continue_implementation(),
13282         objc_start_category_interface() and
13283         objc_start_category_implementation().
13284         (protocoldef): Move semantic actions to objc_start_protocol() and
13285         objc_finish_interface().
13286         (ivar_decl_list): Remove nonterminal.
13287         (visibility_spec): Move semantic actions to objc_set_visibility().
13288         (ivar_decls): Remove assignment to $$.
13289         (ivar_decl): Rephrase in terms of component_decl; call
13290         objc_add_instance_variable().
13291         (ivars, ivar_declarator): Remove nonterminals.
13292         (opt_semi): New nonterminal.
13293         (methodtype): Remove semantic actions.
13294         (methoddef): Move semantic actions to objc_set_method_type(),
13295         objc_start_method_definition() and objc_finish_method_definition().
13296         (methodproto): Move semantic actions to objc_set_method_type() and
13297         objc_add_method_declaration().
13298         (methoddecl): Use objc_typename instead of typename; move semantic
13299         actions to objc_build_method_signature().
13300         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
13301         (optparmlist): Express in terms of optparms and optellipsis.
13302         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
13303         nonterminals.
13304         (keyworddecl): Use objc_typename instead of typename.
13305         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
13306         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
13307
13308 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
13309
13310         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
13311         (MD_FALLBACK_FRAME_STATE_FOR): Update.
13312         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
13313         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
13314         (MD_FROB_UPDATE_CONTEXT): Remove default.
13315         (uw_update_context_1): Instead #ifdef invocation.
13316         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
13317         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
13318         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
13319         (MD_UNWIND_SUPPORT): Undefine this instead.
13320         * config/i386/gnu.h: Likewise.
13321         * config/alpha/linux-unwind.h: New file, macro converted to
13322         function, extracted from..
13323         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
13324         (MD_UNWIND_SUPPORT): Define.
13325         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
13326         * config/i386/linux-unwind.h, config/i386/linux.h,
13327         config/i386/linux64.h: Likewise.
13328         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
13329         MD_HANDLE_UNWABI too.
13330         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
13331         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
13332         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
13333         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
13334         * config/sparc/linux-unwind.h, config/sparc/linux.h,
13335         config/sparc/linux64.h: Likewise.
13336         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
13337         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
13338         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
13339         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
13340         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
13341
13342 2004-09-07  Jan Hubicka  <jh@suse.cz>
13343
13344         * cse.c (fold_rtx):  Avoid building of
13345         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
13346
13347         * tree-ssa-pre.c (grand_bitmap_obstack): New.
13348         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
13349         (init_pre): Initialize obstack.
13350         (fini_pre): Free obstack.
13351
13352 2004-09-07  David Daney  <ddaney@avtrex.com>
13353
13354         * config.gcc: Added support for --with-divide=[breaks|traps] for
13355         mips targets.
13356         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
13357         (TARGET_DIVIDE_TRAPS): New macro.
13358         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
13359         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
13360         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
13361         GENERATE_DIVIDE_TRAPS.
13362         (mips_output_division): Emit conditional trap if
13363         GENERATE_DIVIDE_TRAPS is set.
13364         * doc/install.texi: Document --with-divide.
13365         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
13366
13367 2004-09-07  Caroline Tice  <ctice@apple.com>
13368
13369         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
13370         EDGE_CROSSING, to flags test case.
13371
13372 2004-09-07  Jan Hubicka  <jh@suse.cz>
13373
13374         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
13375         class too.
13376
13377 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
13378
13379         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
13380         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
13381         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
13382         or gcc_unreachable.
13383         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
13384         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
13385         alloc_aux_for_edges, free_aux_for_edges): Likewise.
13386         * cfgcleanup.c (try_forward_edges,
13387         merge_blocks_move_predecessor_nojumps,
13388         merge_blocks_move_successor_nojumps): Likewise.
13389         * cfgexpand.c (expand_gimple_cond_expr,
13390         expand_gimple_tailcall): Likewise.
13391         * cfghooks.c (duplicate_block): Likewise.
13392         * cfglayout.c (record_effective_endpoints,
13393         insn_locators_initialize, change_scope, fixup_reorder_chain,
13394         verify_insn_chain, fixup_fallthru_exit_predecessor,
13395         duplicate_insn_chain, cfg_layout_finalize): Likewise.
13396         * cfgloopanal.c (check_irred): Likewise.
13397         * cfgloop.c (superloop_at_depth, flow_loops_free,
13398         flow_loop_entry_edges_find, flow_loops_find,
13399         flow_loop_outside_edge_p, get_loop_body,
13400         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
13401         get_loop_exit_edges, num_loop_branches, cancel_loop,
13402         verify_loop_structure): Likewise.
13403         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
13404         duplicate_loop_to_header_edge, create_preheader,
13405         create_loop_notes): Likewise.
13406         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
13407         edirect_branch_edge, force_nonfallthru_and_redirect,
13408         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
13409         commit_edge_insertions, commit_edge_insertions_watch_calls,
13410         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
13411         cfg_layout_redirect_edge_and_branch_force,
13412         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
13413         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
13414         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
13415         cgraph_varpool_node): Likewise.
13416         * cgraphunit.c (cgraph_finalize_function,
13417         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
13418         cgraph_expand_function, cgraph_remove_unreachable_nodes,
13419         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
13420         cgraph_mark_inline, cgraph_expand_all_functions,
13421         cgraph_build_static_cdtor): Likewise.
13422         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
13423         simplify_logical, distribute_notes, insn_cuid): Likewise.
13424         * conflict.c (conflict_graph_add, print_conflict): Likewise.
13425         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
13426         coverage_checksum_string): Likewise.
13427         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
13428         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
13429         cse_cc_succs, cse_condition_code_reg): Likewise.
13430         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
13431         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
13432         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
13433         cselib_record_set): Likewise.
13434
13435 2004-09-07  Jan Hubicka  <jh@suse.cz>
13436
13437         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
13438
13439 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
13440
13441         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
13442         fold_convert.
13443         (fold_builtin_strpbrk): Likewise.
13444         * expr.c (array_ref_low_bound): Likewise.
13445         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
13446         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
13447         * tree-sra.c (generate_element_zero): Likewise.
13448         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
13449         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
13450         add_old_iv_candidates, add_iv_candidates): Likewise.
13451         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
13452
13453 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
13454
13455         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
13456         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
13457         c_expand_expr, boolean_increment, nonnull_check_p,
13458         check_function_arguments_recurse, fold_offsetof_1): Likewise.
13459         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
13460         builtin_define_type_max): Likewise.
13461         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
13462         implicit_decl_warning, builtin_function, build_compound_literal,
13463         complete_array_type, grokdeclarator, get_parm_info,
13464         start_function, store_parm_decls_oldstyle,
13465         c_write_global_declarations): Likewise.
13466         * c-format.c (get_constant, decode_format_attr,
13467         maybe_read_dollar_number, get_flag_spec, check_format_arg,
13468         check_format_types, format_type_warning,
13469         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
13470         init_dynamic_diag_info, handle_format_attribute): Likewise.
13471         * c-gimplify.c (push_context, pop_context, finish_bc_block):
13472         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
13473         * c-objc-common.c (c_tree_printer): Likewise.
13474         * c-pch.c (pch_init): Likewise.
13475         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
13476         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
13477         * c-typeck.c (c_incomplete_type_error, composite_type,
13478         common_pointer_type, common_type, same_translation_unit_p,
13479         tagged_types_tu_compatible_p, finish_init, pop_init_level,
13480         set_designator, set_nonincremental_init_from_string,
13481         process_init_element, c_finish_if_stmt): Likewise.
13482         * caller-save.c (init_caller_save, save_call_clobbered_regs,
13483         insert_restore, insert_save, insert_one_insn): Likewise.
13484         * calls.c (emit_call_1, compute_argument_block_size,
13485         precompute_arguments, expand_call, emit_library_call_value_1,
13486         store_one_arg): Likewise.
13487
13488 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
13489
13490         * configure.ac (enable-checking): Add release option. Reorganize
13491         to avoid repetition.
13492         * configure: Rebuilt.
13493         * doc/install.texi (enable-checking): Amend documentation.
13494
13495 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13496
13497         PR bootstrap/17313
13498         * Makefile.in (specs.ready): Depend on cc1$(exeext).
13499
13500 2004-09-06  James E Wilson  <wilson@specifixinc.com>
13501
13502         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
13503         movdf_hardfloat_32bit): Split fG into two alternatives.
13504         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
13505
13506         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
13507
13508 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
13509
13510         * final.c (output_in_slot): Delete.
13511         (final_scan_insn): Revert 2004-09-03 change.
13512         (output_asm_insn): Likewise.
13513         * config/sparc/sparc.c (output_return): Likewise.
13514         (output_sibcall): Likewise.
13515
13516 2004-09-06  Jan Hubicka  <jh@suse.cz>
13517
13518         * loop.c (loop_dump_aux): Do not print RTL when not available.
13519         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
13520         frontend specific type nodes.
13521         (produce_memory_decl_rtl): Break out from ...
13522         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
13523         (get_computation_at): Avoid random tree sharing.
13524         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
13525
13526 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
13527
13528         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
13529         unnecessary commands.
13530
13531 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
13532
13533         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
13534         (bitmap.o): Likewise.
13535
13536 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
13537
13538         Unify the management of RTL and tree-level dump files.
13539
13540         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
13541         Don't print function name to the dump file, the pass manager
13542         would do this for us. Add code from the top of
13543         rest_of_compilation, up to the initial RTL dump.
13544         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
13545         close the DFI_sibling dump file.
13546         (rest_of_compilation): Don't do that here.  Remove code up to the
13547         initial RTL dump.
13548         (init_optimization_passes): Remove.
13549         (pass_rest_of_compilation): Change pass name to NULL.
13550         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
13551         Do not call init_optimization_passes.
13552         * toplev.h (init_optimization_passes): Remove.
13553
13554         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
13555         finish_graph_dump_file): Remove SUFFIX parameter.
13556         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
13557         finish_graph_dump_file): Likewise.
13558
13559         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
13560         * cfgexpand.c (pass_expand): Adjust.
13561         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
13562         * passes.c (pass_rest_of_compilation): Adjust.
13563         * predict.c (pass_profile): Adjust.
13564         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
13565         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
13566         pass_split_crit_edges, pass_warn_function_return): Adjust.
13567         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
13568         * tree-dfa.c (pass_referenced_vars): Adjust.
13569         * tree-eh.c (pass_lower_eh): Adjust.
13570         * tree-if-conv.c (pass_build_ssa): Adjust.
13571         * tree-into-ssa.c (pass_build_ssa): Adjust.
13572         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
13573         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
13574         * tree-nrv.c (pass_nrv): Adjust.
13575         * tree-optimize.c (pass_gimple, pass_all_optimizations,
13576         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
13577         pass_init_datastructures): Adjust.
13578         * tree-outof-ssa.c (pass_del_ssa): Adjust.
13579         * tree-profile.c (pass_tree_profile): Adjust.
13580         * tree-sra.c (pass_sra): Adjust.
13581         * tree-ssa-alias.c (pass_may_alias): Adjust.
13582         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
13583         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
13584         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
13585         * tree-ssa-dom.c (pass_dominator): Adjust.
13586         * tree-ssa-dse.c (pass_dse): Adjust.
13587         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
13588         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
13589         * tree-ssa-loop-ch.c (pass_ch): Adjust.
13590         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
13591         pass_loop_done, pass_complete_unroll, pass_iv_canon,
13592         pass_iv_optimize, pass_vectorize): Adjust.
13593         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
13594         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
13595         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
13596         pass_late_warn_uninnitialized): Adjust.
13597         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
13598
13599         * Makefile.in (tree-dump.o): Add new dependencies.
13600         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
13601         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
13602         Likewise.
13603         * toplev.c (dump_file_name): New.
13604         * tree-dump.c (dump_enable_all): Add LETTER parameter.
13605         (struct dump_file_info): Add NUM and LETTER fields.
13606         (dump_files): Adjust and add RTL dump files.
13607         (dump_register): Add NUM and LETTER fields.
13608         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
13609         (dump_begin): Use get_dump_file_name.
13610         (dump_switch_p_1): Adjust call to dump_enable_all.
13611         * tree-dump.h (dump_register): Adjust prototype.
13612         * tree-optimize.c (register_one_dump_file): Take dump file index.
13613         Support flags for RTL dumps.
13614         (register_dump_files): Fill in NUM field of struct dump_file_info.
13615         Track properties both when the gate is executed and when it is not.
13616         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
13617         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
13618         dumps of RTL.
13619         * tree-pass.h (dump_file_name): New.
13620         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
13621         New.
13622
13623         * Makefile.in (passes.o): Add new dependencies.
13624         * passes.c (struct dump_file_info, enum dump_file_index,
13625         dump_file_tbl, init_optimization_passes): Remove.
13626         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
13627         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
13628         dump_enabled_p.
13629         (finish_optimization_passes): Update finish_graph_dump_file loop.
13630         (enable_rtl_dump_file): Remove.
13631         * tree-dump.c (dump_files): Adjust and add RTL dump files.
13632         (enable_rtl_dump_file): Add here.
13633         * tree.h (enum tree_dump_index): Add RTL dump file indices.
13634         * doc/invoke.texi (Debugging options): Document new RTL debugging
13635         options.  Update.
13636
13637 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
13638
13639         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
13640         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
13641         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
13642         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
13643         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
13644         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
13645         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
13646         vec.h: Fix comment formatting.
13647
13648 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
13649
13650         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
13651         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
13652         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
13653         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
13654         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
13655         tree-ssa-loop-niter.c, tree-ssa-operands.c,
13656         tree-ssa-operands.h, tree-ssa-propagate.c,
13657         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
13658         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
13659
13660 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
13661
13662         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
13663         vectorizer is enabled.
13664
13665 2004-09-05  Andreas Jaeger  <aj@suse.de>
13666
13667         * tree-if-conv.c: Spell check comments and clean up whitespace.
13668
13669 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13670
13671         * tree-ssa-loop-ivopts.c: New file.
13672         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
13673         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
13674         target_pres_cost, target_spill_cost): Declare.
13675         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
13676         spill_cost): Renamed to ...
13677         (target_avail_regs, target_res_regs, target_small_cost,
13678         target_pres_cost, target_spill_cost): ... and exported.
13679         (init_set_costs, global_cost_for_size): Work with renamed variables.
13680         * common.opt (flag_ivopts): New flag.
13681         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
13682         REF_ORIGINAL.
13683         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
13684         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
13685         generating SSA form.
13686         (force_gimple_operand): New function.
13687         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
13688         * tree-cfg.c (stmt_bsi): New function.
13689         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
13690         PARAM_IV_MAX_CONSIDERED_USES): New.
13691         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
13692         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
13693         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
13694         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
13695         * tree-nested.c (build_addr): Export.
13696         * tree-optimize.c (init_tree_optimization_passes): Add
13697         pass_iv_optimize.
13698         * tree-pass.h (pass_iv_optimize): Declare.
13699         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
13700         IMAGPART_EXPR.
13701         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
13702         as a phi node argument.
13703         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
13704         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
13705         functions.
13706         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
13707         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
13708         pass_iv_optimize): New pass.
13709         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
13710         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
13711         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
13712         * tree.h (REF_ORIGINAL): New macro.
13713         (build_int_cst_type, unsigned_type_for, zero_p,
13714         cst_and_fits_in_hwi, build_addr): Declare.
13715         * doc/invoke.texi (-fivopts): Document.
13716         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
13717         PARAM_IV_MAX_CONSIDERED_USES): Document.
13718         * doc/passes.texi: Document induction variable optimizations pass.
13719
13720 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13721
13722         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
13723         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
13724         * c-common.c (c_common_attribute_table): Accept parameters to
13725         sentinel attribute.
13726         (check_function_sentinel, handle_sentinel_attribute): Likewise.
13727         * doc/extend.texi: Update accordingly.
13728
13729 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13730
13731         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
13732         New.
13733         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
13734         attribute.
13735         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
13736         New functions.
13737         (c_common_attribute_table): Add `sentinel' attribute.
13738         (check_function_arguments): Handle `sentinel' attribute.
13739         * doc/extend.texi: Document `sentinel' attribute.
13740
13741 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
13742
13743         * configure: Regenerated.
13744
13745 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13746
13747         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
13748
13749         * tree.c (save_expr): No longer TREE_READONLY.
13750
13751 2004-09-04  Jan Hubicka  <jh@suse.cz>
13752
13753         * passes.c (rest_of_clean_state):  Fix merge conflict made during
13754         commiting the patch.
13755
13756 2004-09-04  Jan Hubicka  <jh@suse.cz>
13757
13758         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
13759
13760 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13761
13762         * doc/md.texi (shift patterns): New anchor.  Add reference to
13763         TARGET_SHIFT_TRUNCATION_MASK.
13764         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
13765         * target.h (shift_truncation_mask): New target hook.
13766         * targhook.h (default_shift_truncation_mask): Declare.
13767         * targhook.c (default_shift_truncation_mask): Define.
13768         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
13769         (TARGET_INITIALIZER): Include it.
13770         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
13771         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
13772         reject all out-of-range values.  Fix sign-extension code for modes
13773         whose width is smaller than HOST_BITS_PER_WIDE_INT.
13774         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
13775         (expand_superword_shift, expand_subword_shift): Likewise.
13776         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
13777         (expand_binop): Use them to implement double-word shifts.
13778         * config/arm/arm.c (arm_shift_truncation_mask): New function.
13779         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13780
13781 2004-09-04  Jan Hubicka  <jh@suse.cz>
13782
13783         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
13784         (mix): New macro copied from hashtab.c
13785         (iterative_hash_hashval_t, iterative_hash_pointer,
13786         iterative_hash_host_wide_int): New functions based on hashtab.c
13787         implementation.
13788
13789 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13790
13791         * config/mips/mips.md (mask): New mode attribute.
13792         (zero_extendsidi2): Add memory alternative.
13793         (*zero_extendsidi2_mem): Delete.
13794         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
13795         memory_operand in the TARGET_MIPS16 check.
13796         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
13797         Redefine using :GPR and :SHORT.
13798         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
13799
13800 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
13801
13802         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
13803         using rint_optab.
13804         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
13805         expand_builtin_mathfn.
13806         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
13807         btrunc?f patterns for btrunc_optab. Implement rint_optab using
13808         rint?f patterns.
13809         * optabs.c (init_optabs): Initialize rint_optab.
13810         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
13811         Add new OTI_rint.
13812         (btrunc_optab): Rename macro from trunc_optab.
13813         (rint_optab): Define corresponding macro.
13814
13815         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
13816         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
13817
13818         * config/i386/i386-protos.h (emit_i387_cw_initialization):
13819         Change prototype. Add new int parameter.
13820         * config/i386/i386.c (emit_i387_cw_initialization):
13821         Handle new rounding modes.
13822
13823         * config/i386/i386.h (enum fp_cw_mode): Delete.
13824         (MODE_NEEDED): Handle new rounding modes.
13825         (EMIT_MODE_SET): Change condition to handle new rounding modes.
13826
13827         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
13828         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
13829         represent different rounding modes of frndint insn.
13830         (type): Add frndint type.
13831         (i387, length, memory): Handle this type.
13832         (i387_cw): New attribute definition.
13833         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
13834         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
13835         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
13836         Add "i387_cw" attribute defined to "trunc".
13837         (x86_fnstcw_1): Remove comment.
13838         (*frndintxf2): Rename insn definition to frndintxf2. Move
13839         insn definition near rint?f2 expanders.
13840         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
13841         rintf and rintl built-ins as inline x87 intrinsics.
13842         (frndintxf2_floor): New pattern to implement floor rounding
13843         mode with frndint x87 instruction.
13844         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
13845         floorf and floorl built-ins as inline x87 intrinsics.
13846         (frndintxf2_ceil): New pattern to implement ceil rounding
13847         mode with frndint x87 instruction.
13848         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
13849         ceilf and ceill built-ins as inline x87 intrinsics.
13850         (frndintxf2_trunc): New pattern to implement trunc rounding
13851         mode with frndint x87 instruction.
13852         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
13853         truncf and truncl built-ins as inline x87 intrinsics.
13854         (frndintxf2_mask_pm): New pattern to implement rounding
13855         mode with exceptions with frndint x87 instruction.
13856         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
13857         implement nearbyint, nearbyintf and nearbyintl built-ins as
13858         inline x87 intrinsics.
13859
13860 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
13861
13862         * config/mips/mips.md (SHORT): New mode macro.
13863         (size): New mode attribute.
13864         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
13865         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
13866         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
13867         !ISA_HAS_SEB_SEH.
13868         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
13869         *extend[qh]isi2_hw patterns and extending them to di.
13870         (extendqihi2): Implement as define_insn_and_split that produces
13871         extendqisi2 after reload.
13872
13873 2004-09-03  Devang Patel  <dpatel@apple.com>
13874
13875         * Makefile.in (OBJS-common): Add tree-if-conv.o
13876         (tree-if-conv.o): New rule.
13877         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
13878         (get_loop_body_in_bfs_order): New.
13879         * cfgloop.h (get_loop_body_in_bfs_order): New.
13880         * tree-flow.h (enum move_pos): Move here from ..
13881         * tree-ssa-loop-im.c (enum move_pos): here.
13882         (movement_possibility): Make externally visible.
13883         * tree-optimize.c (init_tree_optimization_passes): New entry for
13884         if conversion pass.
13885         * tree-pass.h (pass_if_conversion): New.
13886         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
13887         * tree-if-conv.c: New file.
13888         * doc/passes.texi: Document tree if-conversion pass.
13889         * doc/tree-ssa.texi: Same.
13890
13891 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
13892
13893         PR target/14925:
13894         Makefile.in (LIB2ADDEHSTATIC): New.
13895         (LIB2ADDEHSHARED): New.
13896         (LIBUNWIND): New.
13897         (LIBUNWINDDEP): New.
13898         (SHLIBUNWIND_LINK): New.
13899         (SHLIBUNWIND_INSTALL): New.
13900         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
13901         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
13902         (clean): Remove libunwind*
13903         (stage1-start): Remove and copy stage1/libunwind*.
13904         (stage2-start): Remove and copy stage2/libunwind*.
13905         (stage3-start): Remove and copy stage3/libunwind*.
13906         (stage4-start): Remove and copy stage4/libunwind*.
13907         (stageprofile-start): Remove and copy stageprofile/libunwind*.
13908         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
13909
13910         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
13911         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
13912         tmake_file if --with-system-libunwind isn't used.
13913
13914         * config/ia64/t-glibc-libunwind: New file.
13915         * config/t-libunwind-elf: Likewise.
13916         * unwind-compat.c: Likewise.
13917         * unwind-compat.h: Likewise.
13918         * unwind-dw2-fde-compat.c: Likewise.
13919
13920         * config/ia64/t-glibc (LIB2ADDEH): Updated.
13921         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
13922
13923         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
13924         aliases if needed.
13925         * unwind-dw2-fde-glibc.c: Likewise.
13926         * unwind-dw2.c: Likewise.
13927
13928         * config/t-libunwind (LIB2ADDEH): Updated.
13929         (LIB2ADDEHSTATIC): New.
13930         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
13931         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
13932
13933         * configure.ac: Change --enable-libunwind-exceptions to
13934         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
13935         * configure: Regenerated.
13936         * config.in: Updated.
13937
13938         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
13939         above and mention --with-system-libunwind.
13940         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
13941         removed in gcc 3.4.3 and later.
13942
13943         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
13944         USE_LIBUNWIND_EXCEPTIONS is defined.
13945
13946         * mklibgcc.in: Support libunwind.
13947
13948 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
13949
13950         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
13951         m_NOCONA.
13952
13953 2004-09-03  Richard Henderson  <rth@redhat.com>
13954
13955         PR middle-end/9997
13956         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
13957         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
13958         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
13959         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
13960         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
13961         resize_stack_vars_conflict, add_stack_var_conflict,
13962         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
13963         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
13964         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
13965         expand_one_static_var, expand_one_hard_reg_var,
13966         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
13967         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
13968         (expand_used_vars): Rewrite.
13969         * Makefile.in (cfgexpand.o): Update dependencies.
13970
13971 2004-09-04  Jan Hubicka  <jh@suse.cz>
13972
13973         * cfg.c (free_edge): Use ggc_free.
13974         (expunge_block): Use ggc_free.
13975         * passes.c (rest_of_clean_state): Free after compilation.
13976         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
13977         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
13978
13979 2004-09-03  James E Wilson  <wilson@specifixinc.com>
13980
13981         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
13982         DECL_EXTERNAL check.
13983
13984 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13985
13986         * final.c (output_in_slot): New global variable.
13987         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
13988         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
13989         'output_in_slot' before invoking output_asm_insn.
13990         (output_asm_insn): Add a space after the tab if 'output_in_slot'
13991         is set.
13992         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
13993         final_scan_insn.
13994         (output_sibcall): Likewise.
13995
13996 2004-09-03  Jan Hubicka  <jh@suse.cz>
13997
13998         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
13999         * tree-ssanames (init_ssanames): Likewise.
14000
14001 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
14002
14003         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
14004         objc_declare_protocols, objc_start_protocol,
14005         objc_start_class_interface, objc_start_category_interface,
14006         objc_continue_interface, objc_finish_interface,
14007         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
14008         objc_start_class_implementation, objc_start_category_implementation,
14009         objc_continue_implementation, objc_finish_implementation,
14010         objc_add_method_declaration, objc_start_method_definition,
14011         objc_finish_method_definition, objc_build_keyword_decl,
14012         objc_build_method_signature, objc_build_encode_expr,
14013         objc_build_protocol_expr, objc_build_selector_expr,
14014         objc_build_message_expr, objc_build_string_object,
14015         objc_get_class_reference, objc_get_protocol_qualified_type,
14016         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
14017
14018 2004-09-03  James E Wilson  <wilson@specifixinc.com>
14019
14020         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
14021
14022         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
14023         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
14024         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
14025         (mips_recip1_<fmt>): Use frdiv1 type.
14026         (mips_recip2_<fmt>): Use frdiv2 type.
14027         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
14028         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
14029         and frsqrt1.
14030         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
14031
14032 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
14033
14034         * reload.c (find_reloads): Swap operand_loc pointers for
14035         find_dummy_reload if we have swapped two operands.
14036
14037 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
14038
14039         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
14040         to get the tablejump-insn before the jump-table label.
14041
14042 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
14043
14044         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
14045         objc_declare_protocols, objc_build_message_expr,
14046         objc_finish_message_expr, objc_build_selector_expr,
14047         objc_build_protocol_expr, objc_build_encode_expr,
14048         objc_build_string_object, objc_get_protocol_qualified_type,
14049         objc_get_class_reference, objc_get_class_ivars,
14050         objc_start_class_interface, objc_start_category_interface,
14051         objc_start_protocol, objc_continue_interface, objc_finish_interface,
14052         objc_start_class_implementation, objc_start_category_implementation,
14053         objc_continue_implementation, objc_finish_implementation,
14054         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
14055         objc_add_method_declaration, objc_start_method_definition,
14056         objc_finish_method_definition, objc_add_instance_variable,
14057         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
14058         objc_finish_try_stmt, objc_begin_catch_clause,
14059         objc_finish_catch_clause, objc_build_finally_clause,
14060         objc_build_synchronized, objc_static_init_needed_p,
14061         objc_generate_static_init_call): New prototypes.
14062
14063 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
14064
14065         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
14066         is only one reg.
14067         (ia64_function_value): Ditto.
14068
14069 2004-09-03  Jan Beulich  <jbeulich@novell.com>
14070
14071         * config.gcc: Resurrect NetWare as a target. Handle special case of
14072         Novell linker to be used (specified through --with-ld=) and threading
14073         model of either Posix (default) or NKS.
14074         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
14075         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
14076         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
14077         * config/i386/netware.c, config/i386/netware.h: New.
14078         * config/i386/nwld.c, config/i386/nwld.h: New.
14079         * config/i386/netware-crt0.c: New.
14080         * config/i386/netware-libgcc.c: New.
14081         * config/i386/netware-libgcc.def: New.
14082         * config/i386/netware-libgcc.exp: New.
14083         * config/i386/t-netware, config/i386/t-nwld: New.
14084         * gthr-nks.h: New.
14085         * doc/install.texi: Document NKS threading model.
14086
14087 2004-09-03  Jan Beulich  <jbeulich@novell.com>
14088
14089         PR c/7054
14090         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
14091         * tree.h (initial_max_fld_align): Declare
14092         * stor-layout.c (initial_max_fld_align): Define and initialize.
14093         (maximum_field_alignment): Initialize to the same value.
14094         * common.opt: Add -fpack-struct= variant of switch.
14095         * opts.c: Handle -fpack-struct= variant of switch.
14096         * c-pragma.c: Change #pragma pack() handling so that it becomes
14097         compatible to other compilers: accept individual 'push' argument,
14098         make final pop restore (command line) default, correct interaction
14099         of push/pop and sole specification of a new alignment (so that the
14100         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
14101         to #pragma pack(push, <n>).
14102         * doc/extend.texi: New node "Structure-Packing Pragmas" under
14103         "Pragmas", describing #pragma pack.
14104         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
14105         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
14106         Document new TARGET_DEFAULT_PACK_STRUCT.
14107
14108 2004-09-03  Devang Patel  <dpatel@apple.com>
14109
14110         * dwarf2out.c (gen_field_die). Equate decl number to die.
14111
14112 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
14113
14114         PR target/15832
14115         * global.c (modify_reg_pav): New function.
14116         (make_accurate_live_analysis): Call the new function.  Move pavin
14117         modification by earlyclobber set into the new function.
14118
14119 2004-09-03  Andreas Schwab  <schwab@suse.de>
14120
14121         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
14122         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
14123         extended.
14124
14125 2004-09-02  Jan Beulich  <jbeulich@novell.com>
14126
14127         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
14128         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
14129         not unwind code specific ones.
14130         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
14131         Remove unwind code specific dependencies.
14132         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
14133         Remove gbl-ctors.h.
14134         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
14135         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
14136         * tsystem.h: Declare memcpy and memset when inhibit_libc.
14137
14138 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
14139
14140         * combine.c (try_combine): Delay modifying of insns which cannot
14141         be easily undone.
14142
14143 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
14144
14145         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
14146         tree-loop-im.
14147         * gcc/tree-ssa-loop.c: Ditto
14148         * gcc/tree-ssa-loop-ivcanon.c: Ditto
14149         * gcc/doc/invoke.texi: Ditto.
14150
14151 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
14152
14153         * c-decl.c (store_parm_decls_newstyle): Make static.
14154         (store_parm_decls_from): New function.
14155         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
14156         (store_parm_decls_from): New prototype.
14157
14158 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
14159
14160         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
14161         HImode with STRICT_ALIGNMENT.
14162
14163 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
14164
14165         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
14166         (TARGET_OS_CPP_BUILTINS): Likewise.
14167         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
14168         TARGET_BPABI_CPP_BUILTINS.
14169
14170 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
14171
14172         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
14173
14174 2004-09-02  Eric Christopher  <echristo@redhat.com>
14175
14176         * builtins.c (expand_builtin_cabs): Delete.
14177         (expand_builtin): If unable to fold the values do a normal
14178         library call for builtin_cab*.
14179         (fold_builtin_cabs): Depend on optimize and optimize_size.
14180         * optabs.c (expand_cmplxdiv_straight): Delete.
14181         (expand_cmplxdiv_wide): Ditto.
14182         (expand_vector_binop): Ditto.
14183         (expand_vector_unop): Ditto.
14184         (expand_complex_abs): Delete.
14185         (expand_binop): Remove calls to above functions.
14186         Remove open coding of complex arithmetic.
14187         (expand_unop): Ditto.
14188         * optabs.h: Remove prototypes.
14189
14190 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
14191
14192         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
14193         * c-tree.h (store_parm_decls_newstyle): New prototype.
14194
14195 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
14196
14197         * config/rs6000/rs6000.c (expand_block_clear): Use vector
14198         instructions if available.
14199         (expand_block_move): Likewise.
14200
14201 2004-09-03  Jan Hubicka  <jh@suse.cz>
14202
14203         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
14204
14205 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
14206
14207         * config/arm/symbian.h (LIB_SPEC): Define to empty.
14208         * config/arm/t-symbian (SHLIB_LC): Likewise.
14209
14210 2004-09-02  Paul Brook  <paul@codesourcery.com>
14211
14212         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
14213
14214 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
14215
14216         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
14217         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
14218         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
14219         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
14220         (mips_issue_rate): Remove unreachable abort.
14221         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
14222         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
14223         (mips_block_move_straight, print_operand_address, mips_file_start)
14224         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
14225         (mips_output_conditional_branch, mips_expand_builtin_direct)
14226         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
14227         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
14228         with gcc_assert.
14229
14230 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
14231
14232         * config/mips/mips.md (*lea_high64): Change split condition to
14233         flow2_completed.  Add a peephole2 to generate a more parallel version.
14234
14235 2004-09-02  Jan Hubicka  <jh@suse.cz>
14236
14237         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
14238         GGC.
14239
14240         * ggc-page.c: include tree-flow.h.
14241         (extra_order_size_table): Add stmt_ann_d.
14242         (STAT_LABEL): Rename from ....
14243         (LABEL): ... this one.
14244         * Makefile.in (ggc-page.o): Add dependency.
14245
14246         * ggc-common.c (ggc_force_collect): New global variable.
14247         (loc_description): Add fields "freed", "collected"
14248         (ptr_hash): New static hash
14249         (ptr_hash_entry): New structure.
14250         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
14251         (ggc_record_overhead): Take ptr argument, record it
14252         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
14253         (cmp_statistics): Imrove sorting.
14254         (dump_ggc_loc_statistics): Output newly collected statistics
14255         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
14256         (ggc_free): Call ggc_free_overhead.
14257         (ggc_collect): Force collection when asked to be forced.
14258         (ggc_collect): Call ggc_prune_overhead_list.
14259         * ggc.h (ggc_force_collect): Declare
14260         (ggc_record_overhead): Update prototype.
14261         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
14262
14263 2004-09-02  James E Wilson  <wilson@specifixinc.com>
14264
14265         * common.opt (ftrapping-math): Default to on.
14266
14267 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
14268
14269         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
14270
14271 2004-09-02  Denis Chertykov  <denisc@overta.ru>
14272
14273         PR target/16884
14274         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
14275         match_scratch.
14276         (*movmemqi_insn): Likewise.
14277         (*movmemhi): Likewise.
14278         (clrmemhi): Likewise.
14279         (*clrmemqi): Likewise.
14280         (*clrmemhi): Likewise.
14281
14282 2004-09-02  Paul Brook  <paul@codesourcery.com>
14283
14284         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
14285         default_use_cxa_atexit=yes.
14286
14287 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
14288
14289         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
14290         (struct kernel_old_ucontext): Delete.
14291         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
14292         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
14293         when IN_LIGGCC2.
14294
14295 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
14296
14297         * toplev.c (process_options): Fix typo.
14298
14299 2004-09-01  Richard Henderson  <rth@redhat.com>
14300
14301         PR middle-end/17258
14302         * calls.c (initialize_argument_information): Tighten pass-through
14303         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
14304         Use build_fold_addr_expr.
14305         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
14306         that assumes ADDR_EXPR allocates stack space.
14307         * fold-const.c (build_fold_addr_expr_with_type): Look through
14308         WITH_SIZE_EXPR.
14309
14310 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
14311
14312         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
14313         * ggc.h (ggc_alloc_rtx): Delete.
14314
14315 2004-09-01  Roger Sayle  <roger@eyesopen.com>
14316
14317         * expmed.c (enum alg_code): Remove long unused enumeration values.
14318         (struct mult_cost): New structure to hold the "score" of a synthetic
14319         multiply sequence, including both a rtx_cost and a latency field.
14320         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
14321         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
14322         (struct algorithm): Change type of cost field to be mult_cost.
14323         (synth_mult): Change type of cost_limit argument to be a
14324         pointer to a mult_cost.  Update all cost comparisons to use the
14325         new mult_cost infrastructure.  For alg_add_factor and
14326         alg_sub_factor operations, latency is lower than the rtx_cost.
14327         (choose_mult_variant):  Update calls to synth_mult.  Perform
14328         cost comparisons using the new mult_cost infrastructure.
14329         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
14330         to optain the total rtx_cost of a synth_mult "algorithm".
14331
14332 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
14333
14334         * config/rs6000/power4.md: Increase store latency to 12.
14335         * config/rs6000/power5.md: Same.
14336
14337 2004-09-01  James E Wilson  <wilson@specifixinc.com>
14338
14339         PR target/14064
14340         * config/avr/avr.c (avr_unique_section): Delete prototype and
14341         definition.
14342         (TARGET_ASM_UNIQUE_SECTION): Delete.
14343
14344 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
14345
14346         * c-parse.in (primary): Call objc_build_message_expr(),
14347         objc_build_selector_expr(), objc_build_protocol_expr(),
14348         objc_build_encode_expr() and objc_build_string_object() instead of
14349         build_message_expr(), build_selector_expr(), build_protocol_expr(),
14350         build_encode_expr() and build_objc_string_object(), respectively.
14351         (component_decl_list2): Call objc_get_class_ivars() instead of
14352         get_class_ivars_from_name().
14353         (keyworddecl): Call objc_build_keyword_decl() instead of
14354         build_keyword_decl().
14355         (receiver): Call objc_get_class_reference() instead of
14356         get_class_reference().
14357         (reswords): Add blank line before @@ifobjc section, for clarity.
14358
14359 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
14360
14361         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
14362         to Altivec vetors.
14363
14364 2004-09-01  Wu Yongwei  <adah@sh163.net>
14365             Danny Smith  <dannysmith@users.sourceforge.net>
14366
14367         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
14368         not Windows 'DWORD'.
14369         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
14370         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
14371         (__gthr_win32_recursive_mutex_init_function): Add prototype for
14372         __GTHREAD_HIDE_WIN32API case..
14373         (__gthr_win32_recursive_mutex_lock): Likewise.
14374         (__gthr_win32_recursive_mutex_trylock): Likewise.
14375         (__gthr_win32_recursive_mutex_unlock): Likewise.
14376         (__gthread_recursive_mutex_init_function); Add definition for
14377         __GTHREAD_HIDE_WIN32API case.
14378         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
14379         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
14380         call to InterlockedDecrement.
14381
14382 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14383
14384         * tree-tailcall.c (find_tail_calls): Also fail is statement has
14385         volatile operands.
14386
14387         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
14388
14389         * doc/c-tree.texi: Document new operands for ARRAY_REF and
14390         COMPONENT_REF.
14391
14392 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14393
14394         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
14395         * common.opt (fspeculative-prefetching): New.
14396         * flags.h (flag_speculative_prefetching_set): Declare.
14397         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
14398         values.
14399         * opts.c (flag_sepculative_prefetching_set): New variable.
14400         (common_handle_option): Handle -fspeculative-prefetching.
14401         * passes.c (rest_of_compilation): Ditto.
14402         * profile.c (instrument_values, compute_value_histograms, branch_prob):
14403         Use vectors instead of arrays.
14404         * toplev.c (process_options): Handle -fspeculative-prefetching.
14405         * rtl-profile.c: Include ggc.h.
14406         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
14407         rtl_gen_one_value_profiler_no_edge_manipulation,
14408         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
14409         argument changed.
14410         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
14411         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
14412         argument changed.
14413         * value-prof.c: Include ggc.h.
14414         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
14415         macros.
14416         (insn_prefetch_values_to_profile, find_mem_reference_1,
14417         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
14418         speculative_prefetching_transform): New.
14419         (value_profile_transformations): Call speculative_prefetching_transform.
14420         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
14421         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
14422         tree_find_values_to_profile, find_values to profile): Use vectors
14423         instead of arrays.
14424         (free_profiled_values): Removed.
14425         * value-prof.h (struct histogram_value): Renamed to
14426         struct histogram_value_t.
14427         (histogram_value, histogram_values): New types.
14428         (find_values_to_profile): Declaration changed.
14429         (free_profiled_values): Removed.
14430         (struct profile_hooks): Type of argument of the hooks changed to
14431         histogram_value.
14432         * doc/invoke.texi (-fspeculative-prefetching): Document.
14433
14434 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14435
14436         PR rtl-optimization/16408
14437         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
14438
14439 2004-09-01  Richard Henderson  <rth@redhat.com>
14440
14441         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
14442         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
14443
14444 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
14445
14446         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
14447
14448 2004-09-01  Mike Stump  <mrs@apple.com>
14449
14450         * config/darwin.c (machopic_symbol_defined_p): In addition to
14451         being SYMBOL_REF_LOCAL_P, a symbol must also be
14452         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
14453         defined in this output file, or translation unit in the case
14454         of IMA not being used.
14455         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
14456         never need .indirect_symbol when indirecting.
14457
14458 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
14459
14460         * Makefile.in (bb-reorder.o): Add several dependencies.
14461
14462 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
14463
14464         * fold-const.c (operand_equal_p): Require equal sign also for
14465         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
14466
14467 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
14468
14469         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
14470         for use in configargs.h.  Put the cname in a separate variable.  Use
14471         that to set target_cpu_default2.
14472
14473 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
14474             Nick Clifton  <nickc@redhat.com>
14475
14476         * config/sh/sh.md ("length"): Increase branch length when
14477         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
14478         constant, 2 byte for aligning the constant.
14479
14480 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
14481
14482         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
14483         CPU.
14484         (arm7tdmi-s): New CPU name.
14485         * arm/arm.c (ARM_CORE): Update for new format.
14486         * arm/arm.h (ARM_CORE): Likewise.
14487         * arm/gentune.sh: Update for extra field.
14488         * config.gcc: Likewise.
14489         * arm/arm-tune.md: Regenerate.
14490         * doc/invoke.texi: Document the real processor names for ARM cpus.
14491
14492 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
14493
14494         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
14495         (floatdidf): New functions.
14496         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
14497         (floatdisf): New functions.
14498         * t-arm-elf: Use them.
14499
14500 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
14501
14502         * c-common.h (lookup_interface): Remove prototype.
14503         (is_class_name): Rename to objc_is_class_name.
14504         (lookup_objc_ivar): Rename to objc_lookup_ivar.
14505         (get_current_scope): Rename to objc_get_current_scope.
14506         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
14507         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
14508         (yylexname): Call objc_is_class_name() instead of is_class_name().
14509         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
14510         instead of lookup_objc_ivar().
14511         * stub-objc.c (lookup_interface): Remove stub.
14512         (is_class_name): Rename to objc_is_class_name.
14513         (lookup_objc_ivar): Rename to objc_lookup_ivar.
14514
14515 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
14516
14517         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
14518         * config/arm/lib1funcs.asm: Do not include supplemental .S files
14519         when compiling for Symbian.
14520         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
14521         (TARGET_OS_CPP_BUILTINS): Likewise.
14522         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
14523
14524 2004-08-31  Stan Shebs  <shebs@apple.com>
14525
14526         * toplev.c (process_options): Ensure debug_hooks is initialized.
14527
14528 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
14529
14530         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
14531         * target.h (cxx): Add export_class_data.
14532         * config/arm/arm.c (arm_cxx_export_class_data): New function.
14533         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
14534         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
14535
14536 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
14537
14538         * config/sh/sh.c (output_branch): Check the insn length possibly
14539         in the delayed slot.
14540
14541 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14542
14543         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
14544         blank after ')'.
14545         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
14546
14547         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
14548         (c_sizeof_of_alignof_type): Likewise.
14549         * expr.c (array_ref_element_size): Likewise.
14550         (highest_pow2_factor_for_target): Likewise.
14551         * gimplify.c (canonicalize_addr_expr): Likewise.
14552         (gimplify_compound_lval): Likewise.
14553         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
14554         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
14555         * varasm.c (assemble_variable): Likewise.
14556         (output_constant_def_contents): Alignments are unsigned.
14557
14558 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14559             Jeff Law  <law@redhat.com>
14560
14561         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
14562         gets modified.
14563
14564 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
14565
14566         * hooks.c (hook_bool_void_true): New function.
14567         * hooks.h (hook_bool_void_true): Declare.
14568         * target-def.h (TARGET_CXX): Add
14569         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
14570         * target.h (struct cxx): Add key_method_may_be_inline.
14571         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
14572         function.
14573         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
14574         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
14575         __THUMB_INTERWORK.
14576
14577 2004-08-31  Denis Chertykov  <denisc@overta.ru>
14578
14579         PR target/15417
14580         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
14581         frame pointer register only in Pmode while reload in progress.
14582
14583 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
14584
14585         PR target/15334
14586         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
14587         because it breaks the 32-bit shift patterns that rely on a match_dup.
14588
14589 2004-08-31  Matt Austern  <austern@apple.com>
14590
14591         * config/darwin.c (darwin_make_decl_one_only): Allocate section
14592         names once per compilation, instead of once per symbol.
14593
14594 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
14595
14596         * Makefile.in (build_subdir): New substitution.
14597         (fixinc.sh): Simplify heavily since fixincludes is already built.
14598         (stmp-fixinc): Depend on specs.ready.
14599         (install-mkheaders): Use new location of fixincludes.
14600         (clean): Do not descend into fixinc.
14601         (FORBUILD): Replace with ../$(build_subdir).
14602         * configure.ac (build_subdir): Substitute.
14603         (FORBUILD): Do not set.
14604         (all_outputs): Remove fixinc/Makefile.
14605         (default commands): Do not create links in fixinc.
14606         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
14607         the fixincludes configuration steps and substituting
14608         @FIXINCL@ in fixinc.in.
14609         * fixinc.in: New, from fixinc/fixincl.sh.
14610
14611         * fixinc/*: Removed.
14612
14613 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
14614
14615         * attribs.c (strip_attrs): Remove.
14616         (split_specs_attrs): Move ...
14617         * c-decl.c: ... to here.
14618         * tree.h (split_specs_attrs, strip_attrs): Remove.
14619         * c-tree.h (split_specs_attrs): Declare.
14620
14621 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
14622
14623         * read-rtl.c: Disable RTL checking.
14624         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
14625
14626 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
14627
14628         * config/mips/mips.md (fcond): New code macro and attribute.
14629         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
14630         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
14631         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
14632
14633 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
14634
14635         Revert:
14636         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
14637         PR rtl-optimization/16590
14638         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
14639
14640 2004-08-30  Andrew Pinski  <apinski@apple.com>
14641
14642         * hard-reg-set.h:
14643         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
14644         * ChangeLog: Fix previous ChangeLog entry.
14645
14646         PR rtl-opt/13987
14647         * config.host (use_long_long_for_widest_fast_int): New, default is
14648         off.
14649         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
14650         * configure.ac: If use_long_long_for_widest_fast_int, then
14651         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
14652         * configure: Regenerate.
14653         * config.in: Regenerate.
14654         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
14655         New: widest integer type supported efficiently in hardware for the
14656         host.
14657         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
14658         HOST_BITS_PER_WIDEST_FAST_INT.
14659         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
14660         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
14661         HOST_WIDEST_FAST_INT
14662         instead of HOST_WIDE_INT.
14663         (HARD_REG_SET_LONGS): Likewise.
14664         (UHOST_BITS_PER_WIDE_INT): Likewise.
14665         Change the checks for the fast cases to be based on
14666         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
14667
14668 2004-08-30  Steven Bosscher  <stevenb@suse.de>
14669
14670         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
14671         not the pointers.
14672
14673 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
14674
14675         PR 12738
14676         PR 17205
14677         Radar 3460526
14678         Radar 3775729
14679         * c-decl.c (grokdeclarator): Produce error for 'static' on local
14680         function declaration.
14681
14682 2004-08-30  Richard Henderson  <rth@redhat.com>
14683
14684         * expr.c (array_ref_element_size): Force aligned_size back to
14685         sizetype.
14686         (component_ref_field_offset): Similarly for aligned_offset.
14687         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
14688         low-bound, element-size, field-offset fields rather than
14689         computed values.
14690
14691 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
14692
14693         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
14694         redundant code.
14695
14696 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
14697
14698         * c-tree.h (struct language_function): Add arg_info element.
14699         * c-decl.c (current_function_arg_info): New.
14700         (grokdeclarator, store_parm_decls): Use it instead of
14701         DECL_ARGUMENTS.
14702         (c_push_function_context, c_pop_function_context): Save and
14703         restore it.
14704
14705 2004-08-30  Richard Henderson  <rth@redhat.com>
14706
14707         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
14708         COMPONENT_REF to pointer arithmetic.
14709         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
14710         constant "c" as a valid constant initializer.  Allow narrowing of
14711         differences against the same base object, for any base object.
14712
14713 2004-08-30  Richard Henderson  <rth@redhat.com>
14714
14715         * expr.c (expand_expr_addr_expr): New.
14716         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
14717
14718 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
14719
14720         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
14721         (mips_fp_condition): New enum.
14722         (mips_fp_conditions): New array.
14723         (print_fcc_operand): Delete.
14724         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
14725         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
14726         (builtin_description): Add "cond" field.
14727         (DIRECT_BUILTIN): Initialize it.
14728         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
14729         into INSN and CODE.  Initialize the "cond" field.
14730         (CMP_BUILTINS): Update accordingly.
14731         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
14732         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
14733         mips_fp_condition as argument.  Make it the final operand of the
14734         comparison instruction.
14735         (mips_expand_builtin): Update accordingly.
14736         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
14737         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
14738         the gaps.
14739         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
14740         Don't use the 'Q' operand prefix; just print the operand normally.
14741         (mips_cabs_*, mips_c_*): Delete, replacing with...
14742         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
14743         patterns.  Split the 4s versions into 2 ps patterns after reload.
14744
14745 2004-08-30  Richard Henderson  <rth@redhat.com>
14746
14747         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
14748         assuming an ADDR_EXPR is non-null.
14749
14750 2004-08-30  Jason Merrill  <jason@redhat.com>
14751
14752         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
14753
14754 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14755
14756         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
14757         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
14758         gcc_assert and gcc_unreachable instead of abort.
14759         * alloc-pool.c (abort, fancy_abort): Remove.
14760         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
14761         gcc_assert or gcc_unreachable.
14762         * attribs.c (init_attributes, decl_attributes): Likewise.
14763         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
14764         mark_bb_for_unlikely_executed_section,
14765         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
14766         fix_crossing_unconditional_branches):  Likewise.
14767         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
14768         bitmap_operation):  Likewise.
14769         * bt-load.c (insn_sets_btr_p, augment_live_range,
14770         move_btr_def):  Likewise.
14771         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
14772         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
14773         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
14774         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
14775         expand_builtin_memcmp, expand_builtin_args_info,
14776         std_gimplify_va_arg_expr, expand_builtin_unop,
14777         expand_builtin_fputs, expand_builtin_profile_func,
14778         expand_builtin_fork_or_exec, fold_builtin_bitop,
14779         fold_builtin_classify, fold_builtin_fputs): Likewise.
14780
14781 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14782
14783         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
14784         * gcov.c (abort): Remove undef.
14785
14786         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
14787         (struct tree_binfo): Remove primary field.
14788
14789 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
14790
14791         * fixinc/Makefile.in (machname.h): Remove.
14792         (fixincl.x): Do not pass $@ to genfixes.
14793         * fixinc/genfixes: Remove code to produce machname.h.
14794         * fixinc/fixincl.sh: Move it here instead.
14795         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
14796         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
14797         return a bool indicating whether pz_mn_name_pat is NULL.
14798         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
14799         Declare extern C variables for the ENV_TABLE.
14800         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
14801         instead use the result of mn_get_regexps.
14802         * fixinc/fixtests.c: Likewise.
14803
14804 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
14805
14806         * configure.ac: Do not run fixincludes after stage1 during
14807         toplevel bootstrap.
14808         * configure: Regenerate.
14809
14810 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
14811
14812         * sched-deps.c (get_condition): Partially revert previous, by never
14813         trying to extract the condition from a condjump.
14814
14815 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
14816
14817         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
14818         (handle_visibility_attribute, c_determine_visibility): Likewise.
14819         * c-common.h (my_friendly_assert): Remove.
14820
14821 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
14822
14823         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
14824         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
14825         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
14826         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
14827         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
14828
14829 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
14830
14831         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
14832         in COMPONENT_REF nodes.
14833
14834 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
14835
14836         PR c++/15378
14837         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
14838         global_dc->warning_as_error_requested.
14839         * diagnostic.c (diagnostic_initialize): Tidy.
14840         * diagnostic.h (diagnostic_context::x_data): Remove
14841         (diagnostic_context::issue_warnings_are_errors_message): Rename
14842         from warnings_are_errors_message.
14843         (diagnostic_context::warning_as_error_requested): New.
14844
14845 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
14846
14847         * sched-deps.c (get_condition): Fix breakage in previous patch.
14848
14849 2004-08-30  Paul Brook  <paul@codesourcery.com>
14850
14851         * doc/install.texi: Fix broken mpfr link.
14852
14853 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
14854
14855         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
14856         other FreeBSD platforms.
14857
14858 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14859
14860         * arm.h (REVERSE_CONDITION): Define.
14861         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
14862
14863 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14864
14865         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
14866         just the codes, call reversed_comparison_code ().
14867         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
14868         (not_reg_cond): Use reversed_comparison_code.
14869         (and_reg_cond): Likewise.
14870         * ifcvt.c (cond_exec_process_if_block): Likewise.
14871         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
14872
14873 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
14874
14875         * sched-deps.c (get_condition): Rewrite using jump support functions.
14876         Use reversed_comparison_code.
14877         (conditions_mutex_p): Use reversed_comparison_code.
14878
14879 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14880
14881         * config/mips/mips.c (override_options): Disable hot/cold partitioning
14882         for MIPS16.
14883
14884 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14885
14886         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
14887         (mips_function_type): Move to mips.c.
14888         * config/mips/mips.c (mips_builtin_type): New enum.
14889         (builtin_description): Replace code and ftype with builtin_type
14890         and function_type.
14891         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
14892         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
14893         (CODE_FOR_mips_abs_ps): Define.
14894         (mips_bdesc): Use new macros.
14895         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
14896         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
14897         (mips_expand_builtin_direct): New function.
14898         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
14899         builtin.  Replace boolean parameter with builtin_type.
14900         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
14901         (mips_expand_4s_compare_builtin): Delete, replacing with...
14902         (mips_expand_builtin_compare): ...this new function.
14903
14904 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
14905
14906         PR rtl-optimization/16590
14907         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
14908
14909 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
14910
14911         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
14912         * tree-ssa-propagate.c: Fix documentation.
14913
14914 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14915
14916         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
14917         (mov[sd]fcc): Likewise.
14918
14919 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14920
14921         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
14922
14923 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14924
14925         * config/mips/mips.md (divide_condition): New mode attribute.
14926         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
14927         (sqrt[sd]f3): Redefine using SCALARF.
14928         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
14929         patterns.
14930
14931 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14932
14933         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
14934         (loadx, storex, fmt, UNITMODE): New mode attributes.
14935         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
14936         (mul[sd]f3): Redefine using :SCALARF.
14937         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
14938         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
14939         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
14940         Check TARGET_FUSED_MADD for V2SF too.
14941         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
14942         were already named.
14943         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
14944         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
14945
14946 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14947
14948         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
14949         V2SF_type_node if it will be needed.
14950
14951 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14952
14953         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
14954         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
14955         (mips_prepare_builtin_target): New function.
14956         (mips_expand_builtin): Use them.  Update calls to subroutines.
14957         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
14958         cmp_choice with a boolean argument to select between movt and movf.
14959         Take the comparison's icode as an argument, not the function's fcode.
14960         (mips_expand_compare_builtin): New function.  Rename existing function
14961         to mips_expand_scalar_compare_builtin.
14962         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
14963         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
14964         comparison's icode as an argument, not the builtin's fcode.
14965
14966 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14967
14968         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
14969         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
14970         registers are false and -1 if all registers are true.
14971         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
14972         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
14973         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
14974         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
14975         (bc1any2t, bc1any2f): Likewise CCV2.
14976         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
14977
14978 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
14979
14980         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
14981         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
14982         UNSPEC rather than an IF_THEN_ELSE.
14983         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
14984         mips_cond_move_tf_ps by name.
14985
14986 2004-08-29  Chao-ying Fu  <fu@mips.com>
14987             James E Wilson  <wilson@specifixinc.com>
14988
14989         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
14990         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
14991         * config/mips/mips-ps-3d.md: New file.
14992         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
14993         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
14994         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
14995         (mips_output_move): Emit "mov.ps" for V2SFmode.
14996         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
14997         MODE_VECTOR_FLOAT.
14998         (override_options): Check if TARGET_MIPS3D and there was an explicit
14999         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
15000         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
15001         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
15002         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
15003         and allow CCV2 and CCV4 to occupy two and four CC registers.
15004         (print_fcc_operand): New function.
15005         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
15006         %Z to call print_fcc_operand.
15007         (mips_function_value): Handle MODE_VECTOR_FLOAT.
15008         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
15009         (mips_vector_mode_supported_p): New function.
15010         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
15011         (builtin_description): New struct.
15012         (mips_bdesc): New array of struct builtin_description.
15013         (mips_expand_builtin, mips_init_builtins,
15014         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
15015         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
15016         functions.
15017         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
15018         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
15019         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
15020         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
15021         "-mips3d", and "-mno-mips3d".
15022         (ASM_SPEC): Map -mips3d to -mips3d in gas.
15023         (EXTRA_CONSTRAINT_Y): New macro.
15024         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
15025         multi-letter constraint 'Y'.
15026         (CONSTRAINT_LEN): New macro.
15027         (enum mips_builtins): New for MIPS builtin functions.
15028         (enum mips_function_type): New for the types of MIPS builtin functions.
15029         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
15030         * config/mips/mips.md: New constants for paired single and MIPS-3D
15031         instructions.  Include the new mips-ps-3d.md file.
15032         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
15033         movv2sf_hardfloat_64bit): New named patterns.
15034         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
15035         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
15036         sdxc1_v2sf_di): New unnamed patterns.
15037         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
15038         const_vector support.
15039         (const_0_or_1_operand): New predicate.
15040         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
15041
15042 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
15043
15044         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
15045         (tree-ssa-propagate.o): New rule.
15046         (GTFILES): Add tree-ssa-propagate.c.
15047         * tree-flow.h (struct stmt_ann_d): Remove field
15048         in_ccp_worklist.
15049         * tree-ssa-propagate.c: New file.
15050         * tree-ssa-propagate.h: New file.
15051         * tree-ssa-ccp.c: Re-write to use the routines from
15052         tree-ssa-propagate.c.
15053
15054 2004-08-28  Andrew Pinski  <apinski@apple.com>
15055
15056         * tree-ssa-loop.c: Remove extra include of basic-block.h.
15057
15058 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
15059
15060         * c-common.h: Update comments about ObjC/ObjC++ entry points.
15061         (objc_is_reserved_word): New prototype.
15062         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
15063         separate section; these are call-backs.
15064         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
15065         ObjC/ObjC++ "@" keywords.
15066         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
15067         prototypes; they already live in c-common.h.
15068         * stub-objc.c: Update copyright notice.
15069         (objc_is_reserved_word): New stub.
15070
15071 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
15072
15073         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
15074         even when not checking.
15075
15076 2004-08-27  Jason Merrill  <jason@redhat.com>
15077
15078         PR c++/13684
15079         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
15080         (gimple_push_cleanup): Add eh_only parm.
15081         (gimplify_target_expr): Pass it.
15082         * c.opt (-fno-threadsafe-statics): New option.
15083         * c-opts.c (c_common_handle_option): Handle it.
15084         * c-common.h (flag_threadsafe_statics): Declare it.
15085         * c-common.c (flag_threadsafe_statics): Record it.
15086         * doc/invoke.texi: Document it.
15087         * tsystem.h (_GNU_SOURCE): Define.
15088         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
15089         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
15090         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
15091         (__gthread_recursive_mutex_init_function): New fn.
15092         (__gthread_recursive_mutex_lock): New fn.
15093         (__gthread_recursive_mutex_trylock): New fn.
15094         (__gthread_recursive_mutex_unlock): New fn.
15095         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
15096         * gthr-win32.h, gthr-vxworks.h: Likewise.
15097         * gthr.h: Document.
15098
15099 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
15100
15101         * config/rs6000/rs6000.c (rs6000_override_options): Increase
15102         maximum skip to 15.  Set function alignment, jump alignment, and
15103         loop alignment to 16 for processors that form dispatch groups.
15104         (rs6000_rtx_costs): outer_code is used.
15105
15106 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
15107
15108         * stor-layout.c (sizetype_set): Remove.
15109         (set_sizetype): Don't test or set it.
15110
15111         * tree.h (size_int_type): Remove.
15112         * fold-const.c: Do not #include gt-fold-const.h.
15113         (size_htab_hash, size_htab_eq): Remove.
15114         (size_int_kind): Use build_int_cst.
15115         (new_const, size_htab): Remove.
15116         (size_int_type): Remove.
15117         (round_up): Use build_int_cst.
15118         (round_down): Likewise. Remove spurious constant build.
15119
15120 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
15121
15122         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
15123         Add is_release variable, use it for --enable-werror and
15124         --enable-checking defaults.
15125         * system.h (gcc_assert, gcc_unreachable): New.
15126         * doc/install.texi (--enable-checking): Update.
15127         * configure, config.in: Rebuilt.
15128
15129 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
15130
15131         * rtl.h (read_rtx): Change prototype.
15132         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
15133         line number.  Return true on success.
15134         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
15135         callers accordingly.
15136
15137 2004-08-26  Richard Henderson  <rth@redhat.com>
15138
15139         * c-typeck.c (build_offsetof): Remove.
15140         * c-tree.h (build_offsetof): Remove.
15141         * c-common.c (fold_offsetof_1, fold_offsetof): New.
15142         * c-common.h (fold_offsetof): Declare.
15143         * c-parse.in (offsetof_base): New.
15144         (offsetof_member_designator): Use it.  Build references, not just
15145         a tree list.
15146         (primary): Use fold_offsetof, not build_offsetof.
15147
15148 2004-08-26  Richard Henderson  <rth@redhat.com>
15149
15150         * tree.c (staticp): Return the static object.
15151         * tree.h (staticp): Update decl.
15152         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
15153         * langhooks.c (lhd_staticp): Return NULL_TREE.
15154         * langhooks-def.h (lhd_staticp): Update decl.
15155         * c-common.c (c_staticp): Return the static object.
15156         * c-common.h (c_staticp): Update decl.
15157
15158 2004-08-26  Richard Henderson  <rth@redhat.com>
15159
15160         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
15161         modes.
15162
15163 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
15164
15165         PR c/13801
15166         * c-decl.c (struct c_binding): Add type and inner_comp fields.
15167         (bind): Set type and inner_comp fields.
15168         (pop_scope): Restore type of decl to the correct type from an
15169         outer scope.  Give error when popping file scope for incomplete
15170         arrays completed incompatibly with default initialization in an
15171         inner scope.
15172         (diagnose_mismatched_decls): Handle externs with initializers at
15173         block scope.
15174         (pushdecl): Set type of external declaration at block scope based
15175         only on the visible declarations.  Save type when changing the
15176         type of a declaration.  Merge an external declaration at block
15177         scope with a visible static declaration at file scope.
15178         (implicitly_declare): Give recycled old declaration the new type
15179         except for incompatible declarations of built-in functions, saving
15180         the old type.
15181
15182 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
15183
15184         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
15185
15186 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
15187
15188         * tree-alias-common.c (gate_pta): New function.
15189         (pass_build_pta): Use it.
15190         (pass_del_pta): Use it.
15191         (delete_alias_vars): Don't check flag_tree_points_to.
15192
15193 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
15194
15195         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
15196         TFmode as additional register mode cloberred by call.
15197
15198 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
15199
15200         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
15201         parallel pattern for library call returning DImode in
15202         mixed mode.
15203
15204 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
15205
15206         * config/rs6000/rs6000.c (function_arg): Generate parallel
15207         pattern for more split args.
15208
15209 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
15210
15211         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
15212         either gen_movdi_di_update or gen_movdi_si_update depending on
15213         target mode.
15214         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
15215         to generate two versions.
15216
15217 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
15218
15219         * Makefile.in (lambda-code.o): New.
15220         (lambda-trans.o): Ditto.
15221         (TREE_DATA_REF_H): Ditto.
15222         (LAMBDA_H): Ditto.
15223         (lambda-mat.o): Use LAMBDA_H.
15224         (tree-data-ref.o): Ditto.
15225         * lambda-code.c: New file.  Lambda code generation algorithm.
15226         * lambda-trans.c: Ditto. Lambda transformation matrix support.
15227         * lambda.h: Add lambda loop structures.
15228         Add lambda loopnest structures.
15229         Add lambda body vector structure.
15230         Add lambda linear expression structures.
15231         Add prototypes for functions in new files.
15232         * lambda-mat.c: Include tree.h
15233
15234 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
15235             Sebastian Pop  <pop@cri.ensmp.fr>
15236
15237         * tree-data-ref.h: Include lambda.h
15238         (free_dependence_relation): Declared here.
15239         (free_dependence_relations): Ditto.
15240         (free_data_refs): Ditto.
15241         * tree-data-ref.c (free_dependence_relation): New function.
15242         (free_dependence_relations): Ditto.
15243         (free_data_refs): Ditot.
15244         (analyze_all_data_dependences): Free datarefs and dependence_relations.
15245         (build_classic_dist_vector): Store in the dependence_relations the
15246         information. Each arc in the dependence_relations graph is labelled
15247         with the distance and direction vectors.
15248         (build_classic_dir_vector): Ditto.
15249         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
15250         Now computes again the whole dependence graph including read-read
15251         relations.
15252         (compute_data_dependences_for_loop): Now dependence_relations contains
15253         all the data, and thus it doesn't need to initialize the classic_dir
15254         and classic_dist vectors.
15255         (analyze_all_data_dependences): Adjusted for using the new interface of
15256         compute_data_dependences_for_loop.  Remove the statistics dump.
15257
15258 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
15259
15260         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
15261         (xtensa_expand_block_move): Update comment.
15262         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
15263
15264 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
15265
15266         PR target/13506
15267         * toplev.c (crash_signal): If we crashed while emitting
15268         a user asm, then die more gracefully.
15269
15270 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15271
15272         PR target/17119.
15273         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
15274         checking for a valid constant, regardless of sign.
15275
15276 2004-08-25  Richard Henderson  <rth@redhat.com>
15277
15278         PR target/16974
15279         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
15280         if the constant satisfies add_operand.
15281
15282 2004-08-25  Richard Henderson  <rth@redhat.com>
15283
15284         PR debug/10695
15285         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
15286         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
15287         unwind info for >16-bit frames.
15288
15289 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
15290
15291         PR target/17171
15292         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
15293
15294 2004-08-25  Richard Henderson  <rth@redhat.com>
15295
15296         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
15297         (TARGET_CANNOT_FORCE_CONST_MEM): New.
15298
15299 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
15300
15301         * doc/tree-ssa.texi: Document new operand iterator.
15302
15303 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
15304
15305         PR target/16480
15306         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
15307         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
15308         as PLUS base regs.
15309
15310 2005-08-28  Paul Brook  <paul@codesourcery.com>
15311
15312         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
15313         -mfpu=vfp -march=armv5t
15314         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
15315
15316 2004-08-25  Richard Henderson  <rth@redhat.com>
15317
15318         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
15319         * target.h (struct gcc_target): Add scalar_mode_supported_p.
15320         * targhooks.c (default_scalar_mode_supported_p): New.
15321         * targhooks.h (default_scalar_mode_supported_p): Declare.
15322         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
15323
15324         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
15325         before attempting to create types.  Tidy.
15326         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
15327
15328         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
15329         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
15330
15331 2004-08-25  Richard Henderson  <rth@redhat.com>
15332
15333         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
15334         set REAL_MODE_FORMAT for TFmode.
15335
15336 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
15337
15338         * c-decl.c (grokparm): New function.
15339         * c-tree.h (grokparm): New prototype.
15340
15341 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
15342
15343         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
15344         iterator controlling structure.
15345         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
15346         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
15347         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
15348         iterator flags.
15349         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
15350         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
15351         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
15352         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
15353         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
15354         Empty operand pointers.
15355         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
15356         (op_iter_next_use): New.  Return next use_operand_p.
15357         (op_iter_next_def): New.  Return next def_operand_p.
15358         (op_iter_next_tree): New.  Return next operands as a tree.
15359         (op_iter_init): New.  Initialize an iterator structure.
15360         (op_iter_init_use): New.  Initialize structure and get the first use.
15361         (op_iter_init_def): New.  Initialize structure and get the first def.
15362         (op_iter_init_tree): New.  Initialize structure and get the first tree.
15363         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
15364         (op_iter_init_maydef): New.  Initialize structure and get the first
15365         V_MAY_DEF operands.
15366         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
15367         * tree-dfa.c (compute_immediate_uses_for_stmt,
15368         redirect_immediate_uses): Use new operand iterator.
15369         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
15370         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
15371         operands instead of using *_disappeared_p routines.
15372         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
15373         ssa_rewrite_stmt): Use new operand iterator.
15374         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
15375         rewrite_trees): Use new operand iterator.
15376         * tree-pretty-print.c (dump_vops): Use new operand iterator.
15377         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
15378         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
15379         dump_points_to_info): Use new operand iterator.
15380         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
15381         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
15382         operand iterator.
15383         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
15384         propagate_necessity): Use new operand iterator.
15385         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
15386         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
15387         a parameter instead of a stmt_ann_t.
15388         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
15389         build_tree_conflict_graph): Use new operand iterator.
15390         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
15391         rewrite_mem_refs): Use new operand iterator.
15392         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
15393         check_loop_closed_ssa_use): Use new operand iterator.
15394         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
15395         * tree-ssanames.c (release_defs): Use new operand iterator.
15396         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
15397
15398 2004-08-25  Adam Nemet  <anemet@lnxw.com>
15399
15400         * tlink.c (initial_cwd): New variable.
15401         (tlink_init): Initialize it.
15402         (recompile_files): Use tlink_execute() instead of system().  Don't
15403         duplicate verbose output of collect_execute.  Restore initial_cwd.
15404         Update comment before the function.
15405
15406 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
15407
15408         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
15409         accept) a cast from one Objective-C pointer type to another.
15410
15411 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
15412
15413         * doc/install.texi: Document that libstdc++-v3 requires
15414         now automake 1.9.1.
15415
15416 2004-08-25  Caroline Tice  <ctice@apple.com>
15417
15418         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
15419         to comments at start of function.
15420         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
15421         comment.
15422         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
15423         merge_blocks_move_predecessor_nojumps,
15424         merge_blocks_move_successor_nojumps, merge_blocks_move,
15425         try_crossjump_to_edge, try_crossjump_bb): Likewise.
15426         * cfglayout.c (fixup_reorder_chain): Likewise.
15427         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
15428         cfg_layout_can_merge_blocks_p):  Likewise.
15429         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
15430         * passes.c (rest_of_compilation): Update comments for calling
15431         optimization that partitions hot/cold basic blocks.
15432         * doc/invoke.texi:  Update documentation of
15433         freorder-blocks-and-partition flag.
15434
15435 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
15436
15437         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
15438         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
15439
15440 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
15441
15442         * config/mips/mips.md (any_shift): New code macro.
15443         (optab, insn): New code attributes.
15444         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
15445         Use the standard rather than internal patterns for the MIPS16
15446         double-shift optimization.
15447         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
15448         Redefine using :GPR and any_shift.
15449         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
15450         to cover all three shifts.
15451         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
15452         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
15453         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
15454
15455 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
15456
15457         * gimplify.c (lookup_tmp_var): Separate temporaries when not
15458         optimizing.
15459
15460 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15461
15462         PR libstdc++/17005 (fix for HP-UX 11.11)
15463         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
15464         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
15465         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
15466         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
15467         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
15468         (LINK_SPEC): Handle march=1.0 option.
15469         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
15470         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
15471         (SUBTARGET_OPTIONS): New define.
15472         (LINK_SPEC): Handle march=1.0 option.
15473         (STARTFILE_SPEC): New define.
15474         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
15475         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
15476         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
15477         (SUBTARGET_OPTIONS): New define.
15478         (LINK_SPEC): Handle march=1.0 option.
15479         (STARTFILE_SPEC): New define.
15480         * config/pa/pa.c (override_options): Add code to process -munix= option.
15481         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
15482         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
15483         defines.
15484         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
15485         (SUBTARGET_OPTIONS): Provide default define.
15486         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
15487         STANDARD_STARTFILE_PREFIX_2): New defines.
15488         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
15489         (ENDFILE_SPEC): Use %O.
15490         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
15491         Mention issue caused by changing namespace and runtime to UNIX 95/98.
15492         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
15493         Document -munix=std option.
15494
15495 2004-08-25  Steven Bosscher  <stevenb@suse.de>
15496
15497         * cse.c (cse_around_loop, cse_check_loop_start,
15498         cse_set_around_loop): Remove.
15499         (cse_basic_block): Remove the around_loop argument.
15500         (cse_end_of_basic_block): Remove the after_loop argument.
15501         (cse_main): Likewise.
15502         * rtl.h (cse_main): Update prototype.
15503         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
15504         rest_of_handle_gcse): Update cse_main calls.
15505
15506 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
15507
15508         * tree.h  (build_int_cst): New, sign extended constant.
15509         (build_int_cstu): New, zero extended constant.
15510         (build_int_cst_wide): Renamed from build_int_cst.
15511         * tree.c (build_int_cst, build_int_cstu): New.
15512         (build_int_cst_wide): Renamed from build_int_cst.
15513         (make_vector_type, build_common_tree_nodes,
15514         build_common_tree_nodes_2): Adjust build_int_cst calls.
15515         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
15516         expand_builtin_strpbrk, expand_builtin_fputs,
15517         build_string_literal, expand_builtin_printf,
15518         expand_builtin_sprintf, fold_builtin_classify_type,
15519         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
15520         fold_builtin_toascii, fold_builtin_isdigit,
15521         simplify_builtin_strstr, simplify_builtin_strpbrk,
15522         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
15523         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
15524         DEF_ATTR_INT): Likewise.
15525         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
15526         Likewise.
15527         * c-lex.c (interpret_integer, lex_charconst): Likewise.
15528         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
15529         * c-pretty-print.c (pp_c_integer_constant): Likewise.
15530         * c-typeck.c (really_start_incremental_init, push_init_level,
15531         set_nonincremental_init_from_string): Likewise.
15532         * calls.c (load_register_parameters): Likewise.
15533         convert.c (convert_to_pointer): Likewise.
15534         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
15535         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
15536         build_gcov_info): Likewise.
15537         * except.c (init_eh, assign_filter_values): Likewise.
15538         * expmed.c (store_fixed_bit_field, extract_bit_field,
15539         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
15540         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
15541         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
15542         * expr.c (convert_move, emit_group_load, emit_group_store,
15543         expand_assignment, store_constructor, store_field,
15544         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
15545         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
15546         invert_truthvalue, optimize_bit_field_compare,
15547         decode_field_reference, all_ones_mask_p, constant_boolean_node,
15548         fold_div_compare, fold, fold_read_from_constant_string,
15549         fold_negate_const, fold_abs_const, fold_not_const, round_up,
15550         round_down): Likewise.
15551         * function.c (assign_parm_setup_block): Likewise.
15552         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
15553         Likewise.
15554         * stor-layout.c (layout_type, initialize_sizetypes,
15555         set_min_and_max_values_for_integral_type): Likewise.
15556         * tree-chrec.c (chrec_fold_multiply_poly_poly,
15557         reset_evolution_in_loop): Likewise.
15558         * tree-chrec.h (build_polynomial_chrec): Likewise.
15559         * tree-complex.c (build_replicated_const): Likewise.
15560         * tree-eh.c (honor_protect_cleanup_actions,
15561         lower_try_finally_onedest, lower_try_finally_copy,
15562         lower_try_finally_switch): Likewise.
15563         * tree-mudflap.c (mf_build_string, mx_register_decls,
15564         mudflap_register_call, mudflap_enqueue_constant): Likewise.
15565         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
15566         * tree-pretty-print.c (dump_generic_node): Likewise.
15567         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
15568         Likewise.
15569         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
15570         * tree-ssa-loop-niter.c (number_of_iterations_cond,
15571         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
15572         Likewise.
15573         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
15574         canonicalize_loop_induction_variables): Likewise.
15575         * tree-vectorizer.c (vect_create_index_for_array_ref,
15576         vect_transform_loop_bound, vect_compute_data_ref_alignment):
15577         Likewise.
15578
15579         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
15580         alpha_gimplify_va_arg_1): Likewise.
15581         * config/arm/arm.c (arm_get_cookie_size): Likewise.
15582         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
15583         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
15584         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
15585         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
15586         mips_gimplify_va_arg_expr): Likewise.
15587         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
15588         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
15589         add_compiler_branch_island): Likewise.
15590         * config/s390/s390.c (s390_va_start): Likewise.
15591         * config/sh/sh.c (sh_va_start): Likewise.
15592         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
15593         Likewise.
15594         * config/xtensa/xtensa.c (xtensa_va_start,
15595         xtensa_gimplify_va_arg_expr): Likewise.
15596
15597         * objc/objc-act.c (build_objc_string_object,
15598         build_objc_symtab_template, init_def_list, init_objc_symtab,
15599         init_module_descriptor, generate_static_references,
15600         build_selector_translation_table, get_proto_encoding,
15601         build_typed_selector_reference, build_selector_reference,
15602         build_next_objc_exception_stuff,
15603         build_method_prototype_list_template, generate_descriptor_table,
15604         generate_protocols, build_protocol_initializer,
15605         build_ivar_list_template, build_method_list_template,
15606         build_ivar_list_initializer, generate_ivars_list,
15607         generate_dispatch_table, generate_protocol_list,
15608         build_category_initializer, build_shared_structure_initializer,
15609         generate_shared_structures, handle_impent,
15610         generate_objc_image_info): Likewise.
15611
15612 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
15613
15614         * cfglayout.c (duplicate_insn_chain): Remove references to
15615         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
15616         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
15617         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
15618         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
15619         and NOTE_INSN_LOOP_CONT.
15620         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
15621         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
15622         and NOTE_INSN_LOOP_CONT.
15623         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
15624         check_dbra_loop, loop_dump_aux): Remove references to removed notes
15625         and fields.
15626         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
15627         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
15628         references to removed notes and fields.
15629         (subtract_reg_term, ujump_to_loop_cont): Remove.
15630
15631 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
15632
15633         * doc/install.texi: Document that libcpp does not require
15634         Automake any longer.  Document that Automake 1.9.1 should
15635         work everywhere.
15636
15637 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
15638
15639         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
15640         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
15641         DWARF_DEBUGGING_INFO from choice-of-definition chain;
15642         restructure using C89 features (#elif, #error).
15643         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
15644         * config/sh/sh.h: Remove references to DWARF_DEBUG.
15645         * doc/invoke.texi: Remove references to DWARF version 1;
15646         clarify why -gdwarf-2<n> doesn't work.
15647
15648 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
15649
15650         * basic-block.h (BB_SET_PARTITION): Clear old value first.
15651         * cfg.c (clear_bb_flags): Don't clear partition setting.
15652         * ifcvt.c (find_if_case_1): Remove ??? comment.
15653
15654 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
15655
15656         PR target/17052
15657         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
15658         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
15659         current_function_stdarg in place of sysv_varargs_p.
15660         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
15661         sysv_varargs_p.
15662
15663 2004-08-24  Richard Henderson  <rth@redhat.com>
15664
15665         PR target/16298
15666         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
15667         random codes within CONST.
15668
15669 2004-08-24  James E Wilson  <wilson@specifixinc.com>
15670
15671         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
15672         -freorder-blocks-and-partition.
15673
15674 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15675
15676         PR middle-end/17044
15677         * tree-ssa-threadupdate.c (redirection_data): Make static.
15678         (thread_block): Use ggc_alloc_cleared to allocate struct
15679         redirection_data.  Don't free elements in redirection_data.
15680
15681 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15682
15683         * config/mips/predicates.md (small_data_pattern): Match prefetches.
15684
15685 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15686
15687         PR tree-optimization/17016
15688         * tree-ssa-loop-niter.c (number_of_iterations_cond,
15689         number_of_iterations_exit): Use POINTER_TYPE_P instead
15690         of testing for POINTER_TYPE.
15691
15692 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15693
15694         * tree-ssa-loop-ivcanon.c: New file.
15695         * tree-ssa-loop-manip.c (create_iv): New function.
15696         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
15697         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
15698         * cfgloop.c (mark_single_exit_loops): New function.
15699         (verify_loop_structure): Verify single-exit loops.
15700         * cfgloop.h (struct loop): Add single_exit field.
15701         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
15702         (mark_single_exit_loops): Declare.
15703         (tree_num_loop_insns): Declare.
15704         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
15705         (duplicate_loop_to_header_edge): Use it.
15706         * common.opt (fivcanon): New flag.
15707         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
15708         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
15709         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
15710         (bsi_insert_on_edge_immediate): New function.
15711         * tree-flow.h (bsi_insert_on_edge_immediate,
15712         canonicalize_induction_variables, tree_unroll_loops_completely,
15713         create_iv): Declare.
15714         * tree-optimize.c (init_tree_optimization_passes): Add
15715         pass_iv_canon and pass_complete_unroll.
15716         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
15717         * tree-scalar-evolution.c (get_loop_exit_condition,
15718         get_exit_conditions_rec, number_of_iterations_in_loop,
15719         scev_initialize): Use single_exit information.
15720         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
15721         missing assumptions.
15722         (loop_niter_by_eval):  Return number of iterations as unsigned
15723         int.
15724         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
15725         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
15726         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
15727         New passes.
15728         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
15729         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
15730         the defining statement is ready.
15731         * tree-vectorizer.c (vect_create_iv_simple): Removed.
15732         (vect_create_index_for_array_ref, vect_transform_loop_bound):
15733         Use create_iv.
15734         (vect_transform_loop_bound): Use single_exit information.
15735         (vect_analyze_loop_form): Cleanup bogus tests.
15736         (vectorize_loops): Do not call flow_loop_scan.
15737         * tree.h (may_negate_without_overflow_p): Declare.
15738         * fold-const.c (may_negate_without_overflow_p): Split out from ...
15739         (negate_expr_p): ... this function.
15740         (tree_expr_nonzero_p): Handle overflowed constants correctly.
15741         * doc/invoke.texi (-fivcanon): Document.
15742         * doc/passes.texi: Document canonical induction variable creation.
15743
15744 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15745
15746         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
15747         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
15748         using the mode of the operand to decide between them.
15749         * config/mips/mips.md (MOVECC): New mode macro.
15750         (ccreg): New mode attribute.
15751         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
15752         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
15753         (mov[sd]icc): Redefine using :GPR.
15754
15755 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15756
15757         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
15758         (mips_prefetch_cookie): New function.
15759         * config/mips/mips.c (print_operand_address): Fix handling of
15760         ADDRESS_CONST_INT.
15761         (mips_emit_prefetch): Delete.
15762         (mips_prefetch_cookie): New function.
15763         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
15764         mode of QImode for the address_operand.  Use mips_prefetch_cookie
15765         to calculate the first "pref" operand.
15766         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
15767         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
15768
15769 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
15770
15771         * arm.md: Include predicates.md.
15772         * predicates.md: New file.
15773         * arm.c (s_register_operand, arm_hard_register_operand)
15774         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
15775         (arm_immediate_operand, arm_neg_immediate_operand)
15776         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
15777         (arm_add_operand, arm_addimm_operand, arm_not_operand)
15778         (offsettable_memory_operand, alignable_memory_operand)
15779         (arm_reload_memory_operand, arm_float_rhs_operand)
15780         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
15781         (index_operand, shiftable_operator, logical_binary_operator)
15782         (shift_operator, equality_operator, arm_comparison_operator)
15783         (minmax_operator, cc_register, dominant_cc_register)
15784         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
15785         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
15786         (const_shift_operand, load_multiple_operation)
15787         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
15788         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
15789         (cirrus_register_operand, cirrus_fp_register)
15790         (cirrus_shift_const): Delete, replaced with equivalents in
15791         predicates.md.
15792         (shift_op): Handle ROTATE.
15793         * arm-protos.h: Delete declarations for above.
15794         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
15795         * t-arm (MD_INCLUDES): Add predicates.md.
15796         (s-preds): Depends on MD_INCLUDES.
15797
15798 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15799
15800         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
15801         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
15802         patterns.  Redefine using :GPR.  Give the match_operator a mode.
15803         Use '%2' rather than '%z2' for operand 2.
15804
15805 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15806
15807         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
15808         attribute.
15809
15810 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15811
15812         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
15813         of internal patterns.
15814         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
15815         Redefine using :P.
15816         (tablejump): Use expand_binop to calculate address.  Adjust names
15817         of internal patterns.
15818         (tablejump[sd]i): Renamed from tablejump_internal[12].
15819         Redefine using :P.
15820         (tablejump_mips16[12]): Delete.
15821
15822 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15823
15824         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
15825         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
15826         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
15827         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
15828         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
15829
15830 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
15831
15832         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
15833         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
15834         using :GPR.
15835         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
15836         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
15837         (*branch_equality[sd]i_inverted): Likewise
15838         branch_equality{,_di}_inverted.
15839         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
15840         Redefine using :GPR.
15841
15842 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
15843
15844         * rtl.def: Reorganize, placing all codes used only in machine
15845         descriptions at the end.
15846
15847         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
15848         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
15849         rtx_name, rtx_format arrays by direct reference to rtl.def,
15850         first undefining GENERATOR_FILE.  Define enum insn_note and
15851         note_insn_name array by direct reference to insn-notes.def.
15852         (adjust_field_rtx_def): Remove local definition of rtx_name.
15853         Use symbolic names for insn notes.
15854         * Makefile.in (gengtype.o): Update dependencies.
15855
15856 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
15857
15858         * basic-block.h (struct basic_block_def): Reorder fields to
15859         eliminate interior padding.  Remove 'partition' field.
15860         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
15861         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
15862         (BB_COPY_PARTITION): New macros.
15863         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
15864         Replace all references to the 'partition' field of a basic
15865         block with new macros.
15866
15867         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
15868         * final.c (final_scan_insn): Don't handle it.
15869         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
15870         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
15871         * sched-rgn.c (sched_is_disabled_for_current_region_p):
15872         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
15873
15874 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15875
15876         * c-decl.c (c_init_decl_processing): Adjust
15877         build_common_tree_nodes call.
15878         * expmed.c (const_mult_add_overflow_p): Use
15879         build_distinct_type_copy.
15880         * stor-layout.c (early_type_list): Remove.
15881         (layout_type): Don't append to early_type_list.
15882         (initialize_sizetypes): Add signed_p argument.
15883         (set_sizetype): Overwrite the stub type nodes directly.
15884         * tree.c (copy_node_stat): Clear a type's value cache here ...
15885         (build_distinct_type): ... not here.
15886         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
15887         * tree.h (initialize_sizetypes): Add signed_p argument.
15888         (build_common_tree_nodes): Likewise.
15889
15890         * objc/objc-act.c (get_static_reference): Use
15891         build_variant_type_copy.
15892         (get_protocol_reference): Likewise.
15893         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
15894
15895 2004-08-24  Richard Henderson  <rth@redhat.com>
15896             Andrew Pinski  <apinski@apple.com>
15897
15898         * gimplify.c (gimplify_array_ref_to_plus): Delete.
15899         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
15900         for ARRAY_REF.
15901
15902         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
15903         ARRAY_REF also to get to the STRING_CST.
15904
15905 2004-08-24  Paul Brook  <paul@codesourcery.com>
15906
15907         * config/arm/arm.c (arm_override_options): Update error message.
15908         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
15909         TARGET_HARD_FLOAT_ABI.
15910         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
15911         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
15912
15913 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15914
15915         PR target/17093
15916         * config/m32r.md (movsi_sda): Add SI mode specification to
15917         UNSPEC.
15918
15919 2004-08-24  Nick Clifton  <nickc@redhat.com>
15920
15921         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
15922         of seth_add3_operand.
15923
15924 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
15925
15926         * Makefile.in (PROTO_OBJS): Add errors.o.
15927         * protoize.c (fancy_abort): Remove.
15928         * mips-tfile.c (fancy_abort): Add parameters.
15929
15930 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
15931
15932         * doc/trouble.texi (C++ misunderstandings): Fix example code.
15933
15934 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
15935
15936         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
15937         (host-default.o): Add dependency on HOOKS_H.
15938         * config/x-linux: Likewise.
15939         * config/x-solaris: Likewise.
15940         * config/i386/x-mingw32: Likewise.
15941         * config/rs6000/x-darwin: Likewise.
15942
15943 2004-08-23  James E Wilson  <wilson@specifixinc.com>
15944
15945         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
15946         DEF_REG_NOTE.
15947
15948 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
15949
15950         PR c/14492
15951         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
15952
15953 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
15954
15955         * cfg.c (check_bb_profile): Fix typos.
15956         * function.c (assign_parm_is_stack_parm): Likewise.
15957         * tree-nested.c: Likewise.
15958
15959 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
15960
15961         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
15962         Remove TYPECODE.
15963         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
15964
15965 2004-08-23  Eric Christopher  <echristo@redhat.com>
15966
15967         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
15968         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
15969         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
15970         * target.h: Ditto.
15971         * hooks.h: Include machmode.h.
15972         (hook_bool_mode_false): Declare.
15973         * hooks.c (hook_bool_mode_false): Define.
15974         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
15975         * stor-layout.c (layout_type): Ditto.
15976         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
15977         Define to target macro.
15978         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
15979         * config/arm/arm.c: Ditto. Use.
15980         * config/arm/arm.h: Ditto.
15981         * config/arm/arm-protos.h: Ditto.
15982         * config/i386/i386.c: Ditto.
15983         * config/i386/i386.h: Ditto.
15984         * config/rs6000/rs6000.c: Ditto.
15985         * config/rs6000/rs6000.h: Ditto.
15986         * config/sh/sh.c: Ditto.
15987         * config/sh/sh.h: Ditto.
15988         * config/sh/sh-protos.h: Ditto.
15989         * config/sh/sh.md: Use.
15990         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
15991         to TARGET_VECTOR_MODE_SUPPORTED_P.
15992
15993 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
15994
15995         * Makefile.in (BUILD_ERRORS): Set to build-errors.
15996         (errors.o): New target for host.
15997         (build-errors.o): New target for build.
15998         (genobjs): Replace errors.o with build-errors.
15999         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
16000         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
16001         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
16002         (fix-header.o): Add errors.h
16003         * collect2.c (fancy_abort): Add parameters.
16004         * collect2.h (fancy_abort): Don't declare.
16005         * errors.h (fancy_abort): Don't declare.
16006         * errors.c: Include either bconfig.h or config.h.
16007         (fancy_abort): Trim filename.
16008         * fix-header.c (v_fatal, fatal): Remove.
16009         (progname): Remove definition.
16010         (main): Set progname here.
16011         * gcc.c (fancy_abort): Add parameters.
16012         * gcc.h (fancy_abort): Remove declaration.
16013         * gcov.c (fancy_abort): Remove.
16014         * rtl.h (fancy_abort): Don't declare.
16015         (abort): Don't define.
16016         * tree.h (fancy_abort): Don't declare.
16017         (abort): Don't define.
16018         * system.h (fancy_abort): Declare.
16019         (abort): Define to fancy_abort.
16020         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
16021
16022         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
16023         (usize_type, ubitsizetype): Remove.
16024         * stor-layout.c (set_sizetype): Don't initialize usizetype,
16025         ubitsizetype.
16026         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
16027
16028         * tree.h (build_distinct_type_copy): New.
16029         (build_type_copy): ... here.  Rename to ...
16030         (build_variant_type_copy): ... here.
16031         * tree.c (build_qualified_type): Rename build_type_copy call.
16032         (build_distinct_type_copy): New, broken out of ...
16033         (build_type_copy): ... here.  Rename to ...
16034         (build_variant_type_copy): ... here.  Use
16035         build_distinct_type_copy.
16036         (build_common_tree_nodes_2): Rename build_type_copy call.
16037         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
16038         call.
16039         (handle_packed_attribute, handle_unused_attribute,
16040         handle_transparanet_union_attribute, handle_aligned_attribute,
16041         handle_deprecated_attribute): Likewise.
16042         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
16043         Likewise.
16044         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
16045         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
16046         build_distinct_type_copy.
16047
16048 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16049
16050         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
16051         attribute.
16052
16053 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16054
16055         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
16056         loads and stores.
16057         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
16058         formerly unnamed patterns.  Redefine using :P for the address.  Remove
16059         explicit length attributes.
16060
16061 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16062
16063         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
16064         New functions.
16065         (single_reachable_address): Use them.
16066         (schedule_sm): Add dump.
16067         (is_call_clobbered_ref): New function.
16068         (determine_lsm_reg): Check whether the reference is call clobbered.
16069         Only work for gimple_reg_type values.
16070
16071 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16072
16073         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
16074         $31 store insns.  Redefine using :GPR.
16075
16076 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16077
16078         * config/mips/mips.md (P): New mode macro.
16079         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
16080         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
16081         Add mode attributes.
16082
16083 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16084
16085         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
16086         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
16087         later constants to cover the gap.
16088         (load, store): New mode attributes.
16089         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
16090         Use new unspec constants.
16091
16092 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16093
16094         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
16095         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
16096         to use register_operand rather than uns_arith_operand as the predicate
16097         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
16098         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
16099         Redefine using :GPR.  Make same predicate change here.  Extend the
16100         commutativity of operands 1 and 2 from the SImode version to the
16101         DImode one.
16102         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
16103         but with no predicate changes.
16104         (*nor[sd]i3): Redefine using :GPR.
16105
16106 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16107
16108         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
16109         noreturn functions.
16110
16111 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16112
16113         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
16114         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
16115         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
16116         rather than "%z2" (with a fake const0_rtx for operand 2).
16117         (ffs[sd]i2): Redefine using :GPR.
16118         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
16119
16120 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16121
16122         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
16123
16124 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16125
16126         * config/mips/mips.md (any_extend): New code macro.
16127         (u, su): New code attributes.
16128         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
16129         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
16130         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
16131         (*{s,u}mul_acc_di): Redefine using any_extend.
16132         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
16133         to reflect real insn names.
16134         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
16135         with an any_extend template.
16136         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
16137         Add '*' to name.
16138
16139 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16140
16141         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
16142         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
16143         (mul[sd]i3_r4000): Redefine using :GPR.
16144         (mulsi3_mult3): Don't check TARGET_MAD separately.
16145         (muldi3_mult3): Moved after mulsi_mult3.
16146
16147 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16148
16149         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
16150         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
16151         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
16152         (TARGET_GAS, TARGET_MIPS_AS): Delete.
16153         (TARGET_GPWORD): Define to true for n32 on IRIX.
16154         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
16155         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
16156         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
16157         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
16158         (MDEBUG_ASM_SPEC): Delete, folding into...
16159         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
16160         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
16161         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
16162         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
16163         to define asm_abi_default_spec.
16164         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
16165         (TARGET_ASM_SELECT_SECTION): Delete.
16166         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
16167         for non-mips16 code, removing previous workaround for SGI assemblers.
16168         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
16169         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
16170         (override_options): Remove !TARGET_GAS and !have_named_sections code.
16171         (print_operand): Fold TARGET_GAS conditionals into asm strings.
16172         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
16173         ASM_STABS_OP and ASM_STABN_OP.
16174         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
16175         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
16176         (mips_output_function_prologue): Remove !TARGET_GAS code.
16177         (mips_select_rtx_section): Remove !have_named_sections code.
16178         (mips_select_section): Delete.
16179         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
16180         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
16181         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
16182         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
16183         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
16184         * config/mips/windiss.h (ASM_SPEC): Likewise.
16185
16186 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16187
16188         * read-rtl.c (map_value, mapping, macro_group): New structures.
16189         (BELLWETHER_CODE): New macro.
16190         (modes, codes, bellwether_codes): New variables.
16191         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
16192         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
16193         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
16194         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
16195         (add_map_value, initialize_macros): New functions.
16196         (def_hash, def_hash_eq_p): Generalize to anything that points to,
16197         or starts with, a char * field.
16198         (find_macro, read_mapping, check_code_macro): New functions.
16199         (read_rtx_1): New, split out from read_rtx.  Handle the new
16200         define_{mode,code}_{macro,attr} constructs.  Use find_macro
16201         to parse the name of a code or mode.  Use BELLWETHER_CODE to
16202         extract the format and to choose a suitable code for rtx_alloc.
16203         Modify recursive invocations to use read_rtx_1.
16204         (read_rtx): Call initialize_macros.  Apply code and mode macros
16205         to the rtx returned by read_rtx_1.  Cache everything after the
16206         first macro expansion for subsequent read_rtx calls.
16207         * doc/md.texi: Document new .md constructs.
16208         * config/mips/mips.md (GPR): New mode macro.
16209         (d, si8_di5): New mode attributes.
16210         (any_cond): New code macro.
16211         (add[sd]i3): Redefine using :GPR.
16212         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
16213         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
16214         previously unnamed MIPS16 patterns.
16215         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
16216         lines.  Don't match (plus (const_int 0) ...).
16217         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
16218         Use a define_split to generate the addition.
16219         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
16220         (subsi3_internal): Delete.
16221         (*subsi3_extended): Renamed from subsi3_internal_2.
16222         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
16223         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
16224         using an any_cond template.
16225
16226 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16227
16228         * read-rtl.c (read_rtx): Tidy use of format_ptr.
16229
16230 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
16231
16232         * read-rtl.c (string_obstack): New file-scope variable.
16233         (read_string, read_quoted_string, read_braced_string)
16234         (read_escape): Remove obstack parameter and use string_obstack instead.
16235         (read_rtx): Remove function-local rtl_obstack and initialize
16236         string_obstack instead.  Update call to read_string.
16237
16238 2004-08-22  Andrew Pinski  <apinski@apple.com>
16239
16240         PR c/15262
16241         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
16242         expression is not constant.
16243         (c_finish_return): Do not go through INDIRECT_REF when looking
16244         for the inner expression of an ADDR_EXPR for warning about.
16245
16246 2004-08-22  Richard Henderson  <rth@redhat.com>
16247
16248         PR 17075
16249         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
16250         create new blocks and fall through.
16251         (expand_gimple_basic_block): Update to match.
16252
16253 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
16254
16255         * reload.c (find_reloads_address): Make return value tri-state.
16256         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
16257         (find_reloads): Assume that reloaded addresses match 'o' or
16258         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
16259         returned 1 (not -1).  Omit optional reloads for address operands
16260         only if find_reloads_address returned 1 (not -1).
16261
16262         * config/s390/s390.c (legitimize_reload_address): New function.
16263         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
16264         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
16265         legitimize_reload_address.
16266
16267 2004-08-22  Richard Hendersion  <rth@redhat.com>
16268
16269         * tree.h (SAVE_EXPR_RESOLVED_P): New.
16270         * gimplify.c (gimplify_save_expr): Use it.
16271         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
16272         on the temporary variable.
16273
16274 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
16275
16276         * fold-const.c (rtl_expr_nonnegative_p): Delete.
16277         * tree.h (rtl_expr_nonnegative_p): Remove.
16278
16279 2004-08-22  Steven Bosscher  <stevenb@suse.de>
16280
16281         * config/i386/ppro.md (ppro_complex_insn): Add missing check
16282         for cpu==pentiumpro.
16283
16284         * combine.c (struct reg_stat): Fix comment typo.
16285
16286 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
16287
16288         * c-tree.h (c_sizeof_nowarn): Remove.
16289
16290 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
16291
16292         * c-decl.c (set_array_declarator_type): Rename to
16293         set_array_declarator_inner.
16294         (build_c_parm, build_attrs_declarator, build_function_declarator):
16295         New functions.
16296         (make_pointer_declarator): Call build_attrs_declarator.
16297         * c-tree.h (set_array_declarator_type): Rename to
16298         set_array_declarator_inner.
16299         (build_c_parm, build_attrs_declarator, build_function_declarator):
16300         New prototypes.
16301         * c-parse.in (after_type_declarator,
16302         parm_declarator_starttypename, parm_declarator_nostarttypename,
16303         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
16304         firstparm): Use these functions
16305
16306 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
16307
16308         * c-decl.c (build_array_declarator, set_array_declarator_type,
16309         start_decl, grokdeclarator, grokparms): Change boolean parameters
16310         to type bool.
16311         * c-tree.h (build_array_declarator, set_array_declarator_type,
16312         start_decl): Update prototypes.
16313         * c-decl.c, c-parse.in: All callers changed.
16314
16315 2004-08-21  Mike Stump  <mrs@apple.com>
16316
16317         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
16318         (darwin_fix_and_continue): Likewise.
16319         (darwin_fix_and_continue_switch): Likewise.
16320         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
16321         (darwin_fix_and_continue): Likewise.
16322         (darwin_fix_and_continue_switch): Likewise.
16323
16324 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
16325
16326         PR  c++/16030
16327         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
16328         Remove, merging into ...
16329         (gen_stdcall_or_fastcall_suffix): New function, returning tree
16330         rather than const char*, and accepting additional parameter.
16331         Don't add suffix to '*'-prefixed symbols or variadic functions.
16332         (i386_pe_encode_section_info): Adjust for call to new function.
16333         Call change_decl_assembler_name.
16334
16335 2004-08-20  Mike Stump  <mrs@apple.com>
16336
16337         * config/darwin.c (machopic_indirect_data_reference): Mark
16338         stubs as defined.
16339         * config/386/386.c (darwin_local_data_pic): Add.
16340         (legitimate_constant_p): Reorder so that PLUS handling runs
16341         before darwin_local_data_pic to match the ordering in
16342         legitimate_pic_address_disp_p and so that MINUS runs after
16343         darwin_local_data_pic as otherwise the darwin_local_data_pic
16344         logic can be skipped, which would be very bad.
16345         (legitimate_pic_address_disp_p): Move from from here to
16346         darwin_local_data_pic so it can be reused.
16347
16348 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
16349
16350         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
16351         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
16352         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
16353         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
16354         (RS6000_ABI_NAME): Define as "linux".
16355         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
16356         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
16357         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
16358         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
16359         * config/rs6000/rs6000.c (dot_symbols): New global var.
16360         (rs6000_output_function_entry): New function, modified for
16361         !DOT_SYMBOLS..
16362         (print_operand <case 'z'>): ..extracted from here.
16363         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
16364         (rs6000_output_function_epilogue): Likewise.
16365         (rs6000_elf_declare_function_name): Likewise.
16366         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
16367         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
16368         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
16369         * configure: Regenerate.
16370         * config.in: Regenerate.
16371
16372 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
16373
16374         * reload.c (find_reloads_address): Fix thinko in previous change.
16375
16376         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
16377         a CONST_INT.
16378
16379 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
16380
16381         PR rtl-optimization/17099
16382         * combine.c (force_to_mode): Check if inner_mask has any bits set
16383         outside of GET_MODE (x) instead of op_mode.
16384
16385 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
16386
16387         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
16388         fragment.
16389         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
16390         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
16391         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
16392         architecture.
16393         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
16394         configurations.
16395         * config/arm/t-symbian: New file.
16396
16397 2004-08-20  Andrew Pinski  <apinski@apple.com>
16398
16399         * regrename.c (kill_value_regno): ANSIfy.
16400
16401 2004-08-20  Dale Johannesen  <dalej@apple.com>
16402
16403         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
16404
16405 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
16406
16407         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
16408         (kill_value_regno): New function, derived from kill_value.
16409         (kill_value): Update.
16410         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
16411
16412 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
16413
16414         Fix PR tree-optimization/17111
16415         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
16416         of non-value_handles.
16417         (bitmap_set_contains): All constants are in every set.
16418
16419 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
16420
16421         * fold-const.c (round_up, round_down): Use build_int_cst.
16422         Optimize common case.
16423
16424 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
16425             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16426
16427         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
16428         one_only_data_section): Rename to som_readonly_data_section,
16429         som_one_only_readonly_data_section and som_one_only_data_section.
16430         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
16431         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
16432         conditional defines.
16433         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
16434         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
16435         string values.
16436         (pa_select_section): Use renamed section functions.
16437         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
16438         SOM_READONLY_DATA_SECTION_FUNCTION,
16439         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
16440         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
16441         Define here ...
16442         * config/pa/som.h: ... not here.
16443         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
16444         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
16445         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
16446         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
16447         (READONLY_DATA_SECTION): Use som_readonly_data_section.
16448
16449 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
16450
16451         * fold-const.c (int_const_binop): Don't generate non-overflowing
16452         size-types specially.
16453         (fold_convert_const): Likewise.
16454
16455         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
16456         clear cache on copied sizetype.
16457
16458 2004-08-20  Ben Elliston  <bje@au.ibm.com>
16459
16460         * configure.ac: Don't escape apostrophe in --enable-coverage help.
16461         * configure: Regenerate.
16462
16463 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
16464
16465         PR 5620
16466         * gcc.c (struct stat input_stat): Don't define if
16467         HOST_LACKS_INODE_NUMBERS
16468         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
16469         than stat to determine if temp file is same as input file.
16470         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
16471         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
16472
16473 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
16474
16475         * configure.ac (mips*-*-*): Print an error if not using GAS.
16476         * configure: Regenerated.
16477         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
16478         comments about buggy MIPSpro assemblers.
16479         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
16480         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
16481         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
16482         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
16483         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
16484         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
16485         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
16486         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
16487         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
16488         of more general IRIX 6 definitions.
16489         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
16490         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
16491         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
16492         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
16493         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
16494         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
16495         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
16496         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
16497         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
16498         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
16499         (LINK_SPEC): Move most of definition to iris.h.
16500         (SUBTARGET_LINK_SPEC): New macro.
16501         (IRIX_STARTFILE_SPEC): Fold into...
16502         (STARTFILE_SPEC): ...here.
16503         (IRIX_ENDFILE_SPEC): Fold into...
16504         (ENDFILE_SPEC): ...here.
16505         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
16506         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
16507         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
16508         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
16509         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
16510         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
16511         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
16512         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
16513         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
16514         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
16515         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
16516         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
16517         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
16518         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
16519         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
16520         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
16521         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
16522         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
16523         (TARGET_IRIX6): Define to 1.
16524         (DRIVER_SELF_SPECS): Define.
16525         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
16526         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
16527         (SUBTARGET_LINK_SPEC): New macro.
16528         (IRIX_STARTFILE_SPEC): Fold into...
16529         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
16530         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
16531         (LIB_SPEC, LIBGCC_SPEC): Use them.
16532         (LIB_SPEC): Remove !mabi=* case.
16533         (IRIX_ENDFILE_SPEC): Fold into...
16534         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
16535         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
16536         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
16537         (TARGET_IRIX6): New macro.
16538         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
16539         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
16540         (LABEL_AFTER_LOC): Delete.
16541         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
16542         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
16543         (mips_build_builtin_va_list): Check TARGET_IRIX6.
16544         (override_options): Remove TARGET_SGI_O32_AS-related code.
16545         (irix_output_external_libcall): Make static.
16546         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
16547         LABEL_AFTER_LOC.
16548         (mips_file_start): Tidy guard for ABI sections.  Remove use of
16549         ABICALLS_ASM_OP; use .abicalls instead.
16550         (mips_output_aligned_decl_common, mips_declare_object_name)
16551         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
16552         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
16553         .globl foo .text directives.
16554         (irix_asm_named_section_1, irix_asm_named_section)
16555         (irix_section_align_entry, irix_section_align_htab)
16556         (irix_orig_asm_out_file, irix_section_align_entry_eq)
16557         (irix_section_align_entry_hash, irix_asm_output_align)
16558         (irix_file_start, irix_section_align_1, copy_file_data)
16559         (irix_file_end, irix_section_type_flags): Delete.
16560         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
16561         Use standard section syntax.  Remove protective "jr $31".
16562         (__gcc_fini): Likewise .gcc_fini.
16563         * config/mips/irix-crtn.asm: Adjust sections accordingly.
16564         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
16565         iris5gas.h.
16566         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
16567         from t-irix-gld.
16568         (EXTRA_MULTILIB_PARTS): Define.
16569         * config/mips/t-iris6: Remove bogus comment.
16570         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
16571         * config/mips/iris5gas.h, config/mips/iris5gld.h,
16572         config/mips/iris6gas.h, config/mips/iris6gld.h,
16573         config/mips/t-iris5-as, config/mips/t-iris5-gas
16574         config/mips/t-irix-gld: Delete.
16575         * config/mips/iris.h: New file.
16576         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
16577
16578 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
16579
16580         * postreload.c (reload_cse_move2add): Allow any condjump, but check
16581         that the implicit set isn't clobbered in the jump insn.
16582
16583 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
16584
16585         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
16586         * optabs.c (init_optabs): Don't check it.
16587         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
16588         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
16589
16590 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
16591
16592         * config/s390/s390.md (s390_warn_framesize_string)
16593         (s390_warn_dynamic_string, s390_stack_size_string)
16594         (s390_stack_guard_string): New global string variables.
16595         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
16596         (s390_stack_guard): New global variables.
16597         (override_options): Added checks for the new options.
16598         (s390_emit_prologue): Emit stack check and trap code and perform
16599         compile time stack size checking.
16600
16601         * config/s390/s390.h (TARGET_OPTIONS): Added new options
16602         "warn-framesize", "warn-dynamicstack", "stack-size" and
16603         "stack-guard".
16604
16605         * doc/invoke.texi: Added documentation for the new options.
16606
16607 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
16608
16609         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
16610         to eliminate warning.
16611         (linear_search_fdes): Declare p as unsigned.
16612         (binary_search_mixed_encoding_fdes): Likewise.
16613         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
16614         to eliminate warning.
16615         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
16616         type cast.
16617
16618 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
16619
16620         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
16621         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
16622         instead of one.  Check for strictly legitimate address.
16623         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
16624         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
16625
16626 2004-08-19  Eric Christopher  <echristo@redhat.com>
16627
16628         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
16629         * langhooks.h (unsave_expr_now): Ditto.
16630         * tree.h (unsave_expr_1): Remove prototype.
16631         (lhd_unsave_expr_now): Rename to unsave_expr_now.
16632         * tree-inline.c (unsave_expr_1): Move here
16633         from tree.c. Make static.
16634         (unsave_expr_now): Rename from lhd_unsave_expr_now.
16635         * tree-sra.c: Fix up for rename.
16636         * tree-ssa-copy.c: Ditto.
16637         * tree-eh.c: Ditto.
16638         * tree.c (unsave_expr_1): Move to tree-inline.c.
16639
16640 2004-08-19  Caroline Tice  <ctice@apple.com>
16641
16642         * config/i386/cygming.h (switch_to_section):  Fix typo (change
16643         in_unlikely_text_section to in_unlikely_executed_text).
16644
16645 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
16646
16647         * vec.h (VEC_lower_bound): New macro.
16648
16649 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
16650
16651         PR target/16446
16652         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
16653         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
16654         treat each ABI separately.  Deal with n32/n64 complex float arguments.
16655         (function_arg): Add associated complex handling here.
16656
16657 2004-08-19  Richard Henderson  <rth@redhat.com>
16658
16659         * config/arm/arm.c (arm_gen_load_multiple): Use
16660         adjust_automodify_address.  Take base memory and offset instead
16661         of unchanging/struct/scalar bits.
16662         (arm_gen_store_multiple): Likewise.
16663         (arm_gen_movmemqi): Use adjust_automodify_address.
16664         * config/arm/arm-protos.h: Update decls.
16665         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
16666         (store_multiple): Similarly.
16667
16668 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
16669
16670         * regclass.c (globalize_reg): Update call_really_used_regs.
16671
16672 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
16673
16674         * doc/invoke.texi (integer-share-limit): Document.
16675
16676         * tree.h (TYPE_CACHED_VALUES_P): New.
16677         (TYPE_CACHED_VALUES): New.
16678         (TYPE_ORIG_SIZE_TYPE): Adjust.
16679         * tree.def (INTEGER_CST): Update documentation.
16680         * tree.c: Inlcude params.h.
16681         (build_int_cst): Cache small values.
16682         (build_type_copy): Do not copy the value cache.
16683         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
16684         unneeded zeroing.
16685         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
16686         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
16687         cache.
16688         * fold-const.c (force_fit_type): Copy value when setting
16689         overflows.
16690         (int_const_binop): Likewise.
16691         * stor-layout.c: Include params.h
16692         (set_sizetype): Create values cache.
16693         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
16694         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
16695         * params.h (INTEGER_SHARE_LIMIT): New.
16696         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
16697
16698 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
16699
16700         * gimplify.c (gimplify_minimax_expr): Remove.
16701         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
16702
16703 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
16704
16705         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
16706         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
16707
16708 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
16709
16710         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
16711
16712 2004-08-18  Andrew Pinski  <apinski@apple.com>
16713
16714         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
16715
16716 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
16717
16718         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
16719         (__aeabi_ul2f): Likewise.
16720
16721 2004-08-18  Richard Henderson  <rth@redhat.com>
16722
16723         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
16724         move to rtl completely.
16725         (struct meminsnbuf, xtensa_emit_block_move): Remove.
16726         (xtensa_find_mode_for_size): Remove.
16727         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
16728         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
16729
16730 2004-08-18  Richard Henderson  <rth@redhat.com>
16731
16732         * config/mcore/mcore.c (mode_from_align): Remove DImode.
16733         (block_move_sequence): Rewrite to use adjust_address.
16734         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
16735         Return boolean indicating success/failure.
16736         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
16737         * config/mcore/mcore.md (movmemsi): Update to match.
16738
16739 2004-08-18  Mike Stump  <mrs@apple.com>
16740
16741         * doc/invoke.texi (-mfix-and-continue): Add support for
16742         fast turn around debugging.
16743         (-ffix-and-continue): Likewise.
16744         (-mindirect-data): Likewise.
16745         (-findirect-data): Likewise.
16746         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
16747         (indirect_data): Likewise.
16748         (machopic_data_defined_p): Likewise.
16749         (machopic_output_indirection): Likewise.
16750         (darwin_encode_section_info): Likewise.
16751         (darwin_fix_and_continue): Likewise.
16752         (darwin_fix_and_continue_switch): Likewise.
16753         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
16754         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
16755         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
16756         (SUBTARGET_OPTIONS): Likewise.
16757         (darwin_fix_and_continue): Likewise.
16758         (darwin_fix_and_continue_switch): Likewise.
16759         (TARGET_FIX_AND_CONTINUE): Likewise.
16760         * config/rs6000.c (rs6000_emit_prologue): Likewise.
16761
16762 2004-08-19  Steven Bosscher  <stevenb@suse.de>
16763
16764         * basic-block.h (struct edge_def): Remove crossing_edge.
16765         (EDGE_CROSSING): New define.
16766         (EDGE_ALL_FLAGS): Update.
16767         * bb-reorder.c (find_traces_1_round, better_edge_p,
16768         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
16769         find_jump_block, fix_crossing_conditional_branches,
16770         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
16771         Replace all occurences of crossing_edge with an edge flag check
16772         or set/reset.
16773         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16774         try_crossjump_bb): Likewise.
16775         * cfglayout.c (fixup_reorder_chain): Likewise.
16776         * cfgrtl.c (force_nonfallthru_and_redirect,
16777         commit_one_edge_insertion): Likewise.
16778
16779         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
16780         * tree-flow.h (compute_dominance_frontiers): Move prototype...
16781         * basic-block.h:  ...here.
16782         * tree-cfg.c (compute_dominance_frontiers_1,
16783         compute_dominance_frontiers): Move from here...
16784         * cfganal.c: ...to here.  Include timevar.h.
16785
16786 2004-08-18  James E Wilson  <wilson@specifixinc.com>
16787
16788         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
16789         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
16790
16791         * config/mips/mips.md (type): Add frdiv.
16792         (divsf3+1, divsf3+2): Change type to frdiv.
16793         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
16794         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
16795
16796         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
16797         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
16798         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
16799         * config/mips/5000.md (r5k_fdiv_single): Likewise.
16800         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
16801         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
16802         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
16803         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
16804         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
16805         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
16806         Likewise.
16807         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
16808
16809 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
16810
16811         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
16812         get regression tester working again.
16813
16814 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16815
16816         * insn-notes.def, reg-notes.def: New files.
16817         * rtl.h: Use them to define enum insn_note and enum reg_note.
16818         * rtl.c: Use them to define note_insn_name and reg_note_name.
16819         * Makefile.in (RTL_BASE_H): Update.
16820
16821         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
16822         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
16823
16824 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
16825
16826         * arm.c (arm_size_rtx_costs): New function.
16827         (arm_override_options): Use it if optimizing for space.
16828
16829 2004-08-18  Richard Henderson  <rth@redhat.com>
16830
16831         * emit-rtl.c (gen_const_mem): New.
16832         * rtl.h (gen_const_mem): Declare.
16833         * expr.c (do_tablejump): Use it.
16834         * varasm.c (force_const_mem): Likewise.
16835         * config/darwin.c (machopic_indirect_data_reference): Likewise.
16836         (machopic_legitimize_pic_address): Likewise.
16837         * config/arm/arm.c (legitimize_pic_address): Likewise.
16838         * config/i386/i386.c (legitimize_pic_address): Likewise.
16839         (legitimize_tls_address): Likewise.
16840         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
16841         * config/ia64/ia64.md (load_fptr): Likewise.
16842         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
16843         * config/pa/pa.c (legitimize_pic_address): Likewise.
16844         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
16845         (rs6000_emit_move): Likewise.
16846         * config/s390/s390.c (legitimize_pic_address): Likewise.
16847         (legitimize_tls_address): Likewise.
16848         * config/s390/s390.md (casesi): Likewise.
16849         * config/sh/sh.c (sh_reorg): Likewise.
16850         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
16851         * config/v850/v850.md (casesi): Likewise.
16852
16853         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
16854         * config/sh/sh.c (prepare_move_operands): Remove incorrect
16855         use of MEM_READONLY_P.
16856
16857 2004-08-18  Steven Bosscher  <stevenb@suse.de>
16858
16859         * Makefile.in (OBJS-common): Add postreload-gcse.c.
16860         Add new postreload-gcse.o.
16861         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
16862         (lookup_as_function, insert, rehash_using_reg, use_related_value,
16863         equiv_constant): Use SAFE_HASH instead of safe_hash.
16864         (exp_equiv_p): Export.  Add for_gcse argument when comparing
16865         for GCSE.
16866         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
16867         find_comparison_args, fold_rtx, cse_insn): Update callers.
16868         (hash_rtx): New function derived from old canon_hash and bits
16869         from gcse.c hash_expr_1.
16870         (canon_hash_string): Rename to hash_rtx_string.
16871         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
16872         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
16873         (cselib_lookup): Update this caller.
16874         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
16875         Make static.
16876         (hash_expr): Call hash_rtx.
16877         (ldst_entry): Likewise.
16878         (expr_equiv_p): Call exp_equiv_p.
16879         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
16880         reg_used_on_edge, reg_set_between_after_reload_p,
16881         reg_used_between_after_reload_p, get_avail_load_store_reg,
16882         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
16883         get_bb_avail_insn, hash_scan_set_after_reload,
16884         compute_hash_table_after_reload,
16885         eliminate_partially_redundant_loads, gcse_after_reload,
16886         get_bb_avail_insn, gcse_after_reload_main): Remove.
16887         * postreload-gcse.c: New file, reincarnating most of the above.
16888         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
16889         (gcse_after_reload_main): Update prototype.
16890         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
16891         * passes.c (rest_of_handle_gcse2): Use it.
16892
16893 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
16894
16895         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
16896         (pass_loop_done): Likewise.
16897
16898 2004-08-18  Andrew Pinski  <apinski@apple.com>
16899
16900         * config/rs6000/darwin.md: Delete the altivec patterns which are
16901         handled differently now.
16902         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
16903         (macho_correct_pic_di): Likewise.
16904         (call_indirect_nonlocal_darwin64): Likewise.
16905         Delete the save world/saveFP/saveVec patterns.
16906
16907         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
16908         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
16909         * config/rs6000/rs6000.md: Include darwin.md.
16910         (builtin_setjmp_receiver): Add DImode case.
16911         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
16912         Darwin bits.
16913
16914 2004-08-18  Matt Austern  <austern@apple.com>
16915
16916         Dead code stripping
16917         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
16918         * darwin.c (darwin_file_end): Mark file as potentially strippable.
16919
16920 2004-08-18  Richard Henderson  <rth@redhat.com>
16921
16922         * alias.c (readonly_fields_p): Remove.
16923         (objects_must_conflict_p): Don't call it.
16924         * tree.h (readonly_fields_p): Remove.
16925         * langhooks.h (struct lang_hooks): Remove honor_readonly.
16926         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
16927
16928 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
16929
16930         * tree-dfa.c (add_referenced_var): Only global variables are
16931         call-clobbered.
16932         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
16933         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
16934         all pointers dereferenced if the statement dereferences them.
16935         (create_name_tags): Do not create memory tags for pointers
16936         that have PT_ANYTHING set.
16937         Also check if PT_VARS is not empty before creating a name tag.
16938         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
16939         variables that share the same alias set with a pointer that
16940         may point anywhere.
16941         (add_may_alias): Add FIXME comment to remove clobbering
16942         aliased variables and tags.
16943         (replace_may_alias): Likewise.
16944         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
16945         (merge_pointed_to_info): If the original variable has not
16946         points-to information, call set_pt_anything.
16947         (add_pointed_to_var): Do not prevent adding a pointed-to
16948         variable if the pointers is PT_ANYTHING.
16949         If the variable is a global, set PT_GLOBAL_MEM.
16950         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
16951         pointer type only come in PTR+OFFSET flavours.
16952         Always call merge_pointed_to_info on PHI arguments that are
16953         SSA_NAMEs.
16954         (get_nmt_for): Mark call-clobbered tags whose pointer points
16955         to global memory.
16956         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
16957         values.
16958         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
16959         FLAGS.
16960         (add_stmt_operand): Abort if the caller tried to add a killing
16961         definition for a memory tag.
16962         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
16963         unnecessary checks.
16964
16965 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
16966
16967         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
16968         from call_used_regs.  Update call_really_used_regs.
16969         (CALL_REALLY_USED_REGISTERS): Define.
16970         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
16971         Replace call_used_regs with call_really_used_regs.
16972         (calc_live_regs, sh_media_register_for_return): Likewise.
16973         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
16974         * sh.md (return_media): Likewise.
16975
16976 2004-08-18  Andrew Pinski  <apinski@apple.com>
16977
16978         * config/darwin.c (machopic_legitimize_pic_address): Only set
16979         MEM_READONLY_P in the non TARGET_TOC case.
16980
16981 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16982
16983         * rtl.def (NIL): Delete.
16984         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
16985         Tighten the syntax a little.
16986
16987         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
16988         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
16989         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
16990         * config/i386/predicates.md, config/m32r/m32r.h
16991         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
16992         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
16993         * config/sparc/sparc.h, doc/tm.texi:
16994         Replace all occurrences of NIL with UNKNOWN.
16995
16996 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
16997
16998         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
16999         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
17000         sequence inline.  Move drop_through_label code into this
17001         block, being the only place it is used.  Adjust comments.
17002
17003 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
17004
17005         * config/rs6000/altivec.md: Add new patterns for calls to
17006         save_world/rest_world functions.
17007
17008         * config/rs6000/rs6000-protos.h: (save_world_operation,
17009         restore_world_operation) new declarations.
17010
17011         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
17012         field added.
17013         (rs6000_stack_info): Set world_save_p field.
17014         (save_world_operation): New function.
17015         (restore_world_operation): New function.
17016         (compute_save_world_info): New function.
17017         (rs6000_stack_info): Call compute_save_world_info.
17018         (rs6000_emit_prologue): Check for world_save_p and generate
17019         pattern to call save_world for saving all non-volatile and
17020         special registers.
17021         (rs6000_emit_epilogue): Check for world_save_p and generate
17022         pattern to call rest_world to restore saved registers.
17023
17024         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
17025         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
17026         (rs6000_reg_names): New entries added for save_world_operation and
17027         restore_world_operation.
17028
17029 2004-08-18  Caroline Tice  <ctice@apple.com>
17030
17031         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
17032         "-freorder-blocks-and-partition" to the flags used in second
17033         stage of profiledbootstrap.
17034         * bb-reorder.c (push_to_next_round_p): Add new variable,
17035         next_round_is_last; set and use variable to make sure, when
17036         partitioning, that the last trace construction round consists
17037         of all (and only) cold basic blocks.
17038         (rotate_loop): Don't copy blocks that end in a section
17039         crossing jump.
17040         (copy_bb): Correctly initialize "partition" of duplicated bb.
17041         (add_unlikely_executed_notes): Add a comment.
17042         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
17043         to make sure, if function contains hot blocks, that the
17044         successors of ENTRY_BLOCK_PTR are hot; also, only look for
17045         crossing edges if the architecture supports named sections.
17046         (mark_bb_for_unlikely_executed_section): Modify to always
17047         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
17048         the basic block note insn.
17049         (fix_crossing_unconditional_branches): Remove extra space.
17050         (fix_edges_for_rarely_executed_code): Modify to only do
17051         partitioning work if the architecture supports named sections.
17052         (reorder_basic_blocks): Modify to only add
17053         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
17054         supports named sections.
17055         * c-common.c (handle_section_attribute): Initialize new global
17056         variable, user_defined_section_attribute, to true if user has
17057         specified one.
17058         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
17059         forward edges that cross section boundaries.
17060         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
17061         partitioning information if the architecture supports named
17062         sections.
17063         * cfgrtl.c (target.h): Add statement to include this.
17064         (rtl_split_block): Make sure newly created bb gets correct
17065         partition.
17066         (try_redirect_by_replacing_jump): Make sure redirection isn't
17067         attempting to cross section boundaries.
17068         (force_nonfallthru_and_redirect): Only do partition fix up if
17069         architecture supports named sections.
17070         (rtl_split_edge): Make sure newly created bb ends up in
17071         correct partition.
17072         (commit_one_edge_insertion): Remove code that incorrectly
17073         updated basic block partition; Make sure partition fix up only
17074         happens if architecture supports named sections and it's not
17075         already done.
17076         (rtl_verify_flow_info_1): Fix if-condition on test/error
17077         condition that fallthru edges are not allowed to cross section
17078         boundaries.
17079         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
17080         * final.c (final_scan_insn): Remove redundant test from if-statement;
17081         change calls to text_section into calls to function_section; add code
17082         to only to partitioning fix up if architecture supports named
17083         sections.
17084         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
17085         partition.
17086         (if_convert): Add targetm.have_named_sections to test.
17087         * output.h (unlikely_section_label): Extern declaration for new global
17088         variable.
17089         (unlikely_text_section_name): Likewise.
17090         * opts.c (decode_options): If both partitioning and DWARF debugging
17091         are turned on, issue a warning that this doesn't work, and change
17092         partitiong to basic block reordering (without hot/cold partitions).
17093         * passes.c (rest_of_handle_final): Re-set new global variable,
17094         user_defined_section_attribute, to false.
17095         (rest_of_compilation): Change options for calling partitioning
17096         function: Don't call if the user defined the section attribute, and
17097         don't call if DECL_ONE_ONLY is true for the current function.
17098         * predict.c (choose_function_section): Return immediately if we
17099         are doing hot/cold partitioning (i.e. let the basic block partitioning
17100         determine where the function belongs).
17101         * reg-stack.c (emit_swap_insn): Add condition to step over
17102         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
17103         * toplev.c (user_defined_section_attribute): New global variable.
17104         * toplev.h (user_defined_section_attribute): Extern declaration
17105         for new global variable.
17106         * varasm.c (unlikely_section_label): New global variable.
17107         (unlikely_text_section_name): New global variable.
17108         (unlikely_text_section): Add code to initialize
17109         unlikely_text_section_name if necessary; modify to use
17110         unlikely_text_section_name and unlikely_section_label; also to use
17111         named_section properly.
17112         (in_unlikely_text_section):  Modify to work correctly with
17113         named_section and to use unlikely_text_section_name.
17114         (named_section):  Add code to work properly with cold section.
17115         (function_section): Clean up if-statement.
17116         * config/darwin.c (darwin_asm_named_section): Return to original
17117         code, removing use of SECTION_FORMAT_STRING.
17118         * config/arm/pe.h (switch_to_section):  Add case for
17119         in_unlikely_executed_text to switch statement.
17120         * config/i386/cygming.h (switch_to_section): Likewise.
17121         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
17122         (SECTION_FORMAT_STRING): Likewise.
17123         * config/mcore/mcore.h (switch_to_section): Likewise.
17124         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
17125         (SECTION_FORMAT_STRING): Remove.
17126
17127 2004-08-18  Roger Sayle  <roger@eyesopen.com>
17128
17129         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
17130         -ffixed-reg safe, by preserving the meanings of zero and one.
17131         (CALL_USED_REGISTERS): Likewise.
17132         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
17133
17134 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
17135
17136         * config/sh/sh.c (split_branches): Check the result of
17137         next_active_insn.
17138         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
17139         Call rtl_register_cfg_hooks.
17140
17141 2004-08-18  Richard Henderson  <rth@redhat.com>
17142
17143         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
17144         * alias.c (true_dependence): Update to match new semantics.
17145         (canon_true_dependence, write_dependence_p): Likewise.
17146         (anti_dependence, output_dependence): Update write_dependence_p args.
17147         (unchanging_anti_dependence): Remove.
17148         * calls.c (purge_mem_unchanging_flag): Remove.
17149         (fixup_tail_calls): Don't call it.
17150         (expand_call): Don't add unchanging memory to function usage.
17151         * expr.c (emit_block_move_via_libcall): Likewise.
17152         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
17153         (get_subtarget): Don't use RTX_UNCHANGING_P.
17154         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
17155         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
17156         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
17157         * cse.c (insert): Don't use RTX_UNCHANGING_P.
17158         (cse_insn, canon_hash): Use MEM_READONLY_P.
17159         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
17160         instead of RTX_UNCHANGING_P.
17161         * explow.c (maybe_set_unchanging): Remove.
17162         * expr.h (maybe_set_unchanging): Remove.
17163         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
17164         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
17165         (assign_parm_setup_reg, expand_function_start): Likewise.
17166         * integrate.c (copy_rtx_and_substitute): Likewise.
17167         * ra-rewrite.c (emit_colors): Likewise.
17168         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
17169         (fixup_match_1): Likewise.
17170         * reload1.c (reload, alter_reg): Likewise.
17171         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
17172         not RTX_UNCHANGING_P.
17173         (equiv_init_varies_p): Likewise.
17174         * loop-invariant.c (check_maybe_invariant): Likewise.
17175         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
17176         * loop.c (note_addr_stored): Likewise.
17177         (prescan_loop): Likewise. Don't check function usage for clobbered
17178         unchanging memory.
17179         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
17180         not RTX_UNCHANGING_P.
17181         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
17182         * varasm.c (force_const_mem): Likewise.
17183         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
17184         * web.c (entry_register): Likewise.
17185         * tree-gimple.h (get_base_address): Move decl ...
17186         * tree.h: ... here.
17187         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
17188
17189         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
17190         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
17191         (alpha_set_memflags): Update to match.
17192
17193         * config/darwin.c (machopic_indirect_data_reference): Set
17194         MEM_READONLY_P instead of RTX_UNCHANGING_P.
17195         (machopic_indirect_call_target): Likewise.
17196         (machopic_legitimize_pic_address): Likewise.
17197         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
17198         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
17199         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
17200         * config/frv/frv.md (symGOT2reg): Likewise.
17201         * config/i386/i386.c (legitimize_pic_address,
17202         legitimize_tls_address, ix86_split_to_parts): Likewise.
17203         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
17204         * config/ia64/ia64.md (load_fptr): Likewise.
17205         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
17206         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
17207         * config/mcore/mcore.c (block_move_sequence): Likewise.
17208         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
17209         * config/pa/pa.c (legitimize_pic_address): Likewise.
17210         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
17211         (rs6000_emit_move): Likewise.
17212         * config/s390/s390.c (legitimize_pic_address): Likewise.
17213         (legitimize_tls_address): Likewise.
17214         * config/s390/s390.md (casesi): Likewise.
17215         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
17216         * config/sh/sh.md (symGOT2reg): Likewise.
17217         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
17218         * config/v850/v850.md (casesi): Likewise.
17219
17220         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
17221         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
17222         * config/mips/mips.c (mips_restore_gp): Likewise.
17223         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
17224         * config/sh/sh.c (sh_reorg): Likewise.
17225
17226 2004-08-18  Richard Henderson  <rth@redhat.com>
17227
17228         * tree.h (struct tree_decl): Add gimple_formal_temp.
17229         (DECL_GIMPLE_FORMAL_TEMP_P): New.
17230         * gimplify.c (pop_gimplify_context): Clear it.
17231         (lookup_tmp_var): Set it, if is_formal.
17232         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
17233         Use is_gimple_val for VECTOR.  Simplify return value.
17234         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
17235         (gimplify_expr): Likewise.
17236         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
17237         is_gimple_tmp_rhs for clarity.  Update all callers.
17238         (is_gimple_reg_rhs): Simplify logic.
17239         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
17240         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
17241         (is_gimple_formal_tmp_reg): Similarly.
17242         * tree-gimple.h: Update decls.
17243         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
17244         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
17245         * tree-ssa-live.c (var_union, type_var_init): Likewise.
17246
17247 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
17248
17249         * c4x.c (legitimize_operands): Remove calls to
17250         preserve_subexpressions_p.
17251
17252 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
17253
17254         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
17255         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
17256
17257 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
17258
17259         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
17260         Objective-C++ extensions.
17261         * gengtype.c (get_file_basename): Match entire subdirectory name
17262         ('cp', 'objc', 'objcp') rather than just its suffix.
17263         (get_base_file_bitmap): Allow for files to belong to more than one
17264         language.
17265         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
17266         used by more than one front-end.
17267
17268 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
17269
17270         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
17271         avoid use of preserve_subexpressions_p.
17272
17273 2004-08-17  Richard Henderson  <rth@redhat.com>
17274
17275         PR 17051
17276         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
17277
17278 2004-08-17  DJ Delorie  <dj@redhat.com>
17279
17280         * doc/extend.texi: Document new xstormy16 attribute.
17281
17282         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
17283         (xstormy16_splittable_below100_or_register): New.
17284         (combine_bnp): New.
17285         (xstormy16_reorg): New.
17286         (TARGET_MACHINE_DEPENDENT_REORG): Define.
17287
17288         * config/stormy16/stormy16.md (movqi_internal): Make name public.
17289         (movhi_internal): Likewise.
17290         (cbhranchhi): Likewise.
17291         (cbhranchhi_neg): Likewise.
17292         (andhi3): Only allow splittable below100 operands.
17293         (iorhi3): Likewise.
17294         (peephole2): New and/zero_extend->and peephole.
17295         (peephole2): New load/ior/save->set1 peephole.
17296         (peephole2): New load/and/save->clr1 peephole.
17297         (bclrx, bclrx2, bclr7, bclr15): New.
17298         (bsetx, bsetx2, bset7, bset15): New.
17299
17300         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
17301         liberal about acceptable 'B' masks.
17302
17303         * config/stormy16/stormy16-protos.h
17304         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
17305         xstormy16_below100_operand, xstormy16_below100_or_register,
17306         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
17307         (PREDICATE_CODES): Add new predicates.
17308
17309         * config/stormy16/stormy16.c
17310         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
17311         xstormy16_below100_operand, xstormy16_below100_or_register,
17312         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
17313         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
17314         (xstormy16_legitimate_address_p): Allow below100 symbols.
17315         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
17316         (xstormy16_expand_move): Leave below100 operands as-is.
17317         (xstormy16_encode_section_info): Encode below100 symbols.
17318         (xstormy16_strip_name_encoding): New.
17319         (xstormy16_print_operand): Print 'b' as shift mask.
17320         (xstormy16_attribute_table): Add below100 attributes.
17321         (xstormy16_handle_below100_attribute): New.
17322
17323         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
17324         (XSTORMY16_SECTION_FUNCTION): New.
17325         (EXTRA_SECTION_FUNCTIONS): Define using the above.
17326         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
17327         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
17328         (ASM_OUTPUT_LABELREF): Define.
17329
17330         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
17331         (movhi_internal): Add below100 support.
17332         (andhi3): Add below100 support.
17333         (iorhi3): Add below100 support.
17334         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
17335
17336 2004-08-17  James E Wilson  <wilson@specifixinc.com>
17337
17338         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
17339         of VOIDmode for comparison code mode.
17340         * config/mips/mips.md: For conditional move patterns, use mode of
17341         first compare operand for comparison mode, instead of VOIDmode.
17342
17343         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
17344         normal and -ffast-math code.
17345
17346 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
17347
17348         PR c++/15871
17349         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
17350
17351 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
17352
17353         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
17354
17355 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
17356
17357         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
17358         for non Darwin targets.
17359         (*call_value_nonlocal_darwin64): Likewise.
17360
17361 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
17362
17363         * config/rs6000/rs6000.c (rs6000_function_value): Check for
17364         altivec mode for altivec return register.
17365
17366 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
17367
17368         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
17369         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
17370         * config/rs6000/rs6000.md: Include darwin.md.
17371         (builtin_setjmp_receiver): Add DImode case.
17372         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
17373         Darwin bits.
17374
17375 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
17376
17377         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
17378         trees.
17379         * tree-vectorizer.h: New File: Same.
17380         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
17381         * common.opt (ftree-vectorize): New flag to enable vectorization.
17382         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
17383         vectorization pass.
17384         * tree-data-ref.h (init_data_ref): Additional argument.
17385         (array_base_name_differ_p): Moved to tree-data-ref.c.
17386         * tree-data-ref.c (array_base_name_differ_p): Revised.
17387         (initialize_data_dependence_relation): Call array_base_name_differ_p
17388         with an extra argument.
17389         (analyze_all_data_dependences): Same.
17390         (init_data_ref): Additional argument is_read to set DR_IS_READ.
17391         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
17392         file.
17393         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
17394         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
17395         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
17396         vectorization pass.
17397         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
17398         (tree_ssa_loop_done): Call scev_finalize.
17399         (tree_vectorize): Define the new vectorization pass.
17400         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
17401         size of the vector they support (until support for multiple vector
17402         sizes is added to the vectorizer).
17403         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
17404         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
17405         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
17406         documentation.
17407
17408 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
17409
17410         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
17411         usage.
17412         (generate_protocol_list, handle_impent): Likewise.
17413
17414 2004-08-17  Roger Sayle  <roger@eyesopen.com>
17415
17416         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
17417         ensure that call_used_regs is a superset of both fixed_regs and
17418         call_really_used_regs.
17419
17420 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
17421
17422         PR target/17019
17423         * arm.md (addsi3_cbranch_scratch): Correct case labels.
17424
17425 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
17426
17427         PR middle-end/17036
17428         * fold-const.c (fold): Check for integer operand when
17429         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
17430         Pinski  <pinskia@physics.uc.edu>.
17431
17432 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
17433
17434         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
17435         No need to check if in a cross configuration.
17436         * configure: Regenerate.
17437
17438         * calls.c (precompute_register_parameters):
17439         Inline preserve_subexpressions_p ().
17440         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
17441         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
17442         Likewise.
17443         * expr.c (get_subtarget): Likewise.
17444         * rtl.h (preserve_subexpressions_p): Remove.
17445         * stmt.c (preserve_subexpressions_p): Remove.
17446
17447         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
17448         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
17449         Abort on gimplified cases.
17450
17451 2004-08-16  James E Wilson  <wilson@specifixinc.com>
17452
17453         * tree.h (VECTOR_FLOAT_TYPE_P): New.
17454         (FLOAT_TYPE_P): Use it.
17455         * c-typeck.c (build_binary_op): After convert calls, check for
17456         check for ERROR_MARK operands.
17457
17458 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
17459
17460         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
17461         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
17462         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
17463         (genobjs static pattern rule): Remove %.c dependency.
17464         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
17465         Rename rules; delete commands; fix dependencies.
17466         (mostlyclean): Do not delete temporary source copies.
17467         * configure.ac: Delete all references to BUILD_PREFIX and
17468         BUILD_PREFIX_1.
17469         * configure: Regenerate.
17470
17471         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
17472         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
17473         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
17474         with #ifndef GENERATOR_FILE so that nothing from those headers
17475         is used.
17476
17477         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
17478
17479 2004-08-16  Adam Nemet  <anemet@lnxw.com>
17480
17481         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
17482
17483 2004-08-16  Andrew Pinski  <apinski@apple.com>
17484
17485         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
17486         extraneous semicolon.
17487
17488 2004-08-16  Devang Patel  <dpatel@apple.com>
17489
17490         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
17491         * print-tree.c (print_node): Print DECL_PRESERVE_P.
17492         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
17493         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
17494         * target.h (struct gcc_target): New member, mark_decl_preserved.
17495         * hooks.c (hook_void_charptr): Rename to ...
17496         (hook_void_constcharptr): ... new name.
17497         * hooks.h (hook_void_charptr): Rename to ..
17498         (hook_void_constcharptr): ... new name.
17499         * tree.h (DECL_PRESERVE_P): New #define.
17500         (struct tree_decl): New member, preserve_flag.
17501         * varasm.c (assemble_start_function): Mark decl preserved.
17502         (assemble_variable): Same.
17503         * darwin.c (darwin_mark_decl_preserved): New function.
17504         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
17505         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
17506         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
17507
17508 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
17509
17510         * c-decl.c (grokdeclarator): Allow for function definition where
17511         innermost declarator has attributes.
17512
17513 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
17514
17515         * except.c (get_exception_filter, build_post_landing_pads,
17516         dw2_build_landing_pads): Use target-specific mode for 'filter'.
17517         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
17518         * target.h (eh_return_filter_mode): New field added.
17519         * targhooks.c (default_eh_return_filter_mode): Defined.
17520         * targhooks.h (default_eh_return_filter_mode): Declared.
17521         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
17522
17523 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
17524
17525         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
17526         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
17527         * configure: Regenerate.
17528
17529 2004-08-16  Stan Shebs  <shebs@apple.com>
17530
17531         Basic support for 64-bit Darwin.
17532         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
17533         (machopic_legitimize_pic_address): Similarly, plus use Pmode
17534         instead of SImode.
17535         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
17536         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
17537         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
17538         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
17539         (PROCESSOR_DEFAULT64): Define.
17540         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
17541         Darwin.
17542         * config/rs6000/rs6000.md: Include darwin.md.
17543         (builtin_setjmp_receiver): Add DImode case.
17544         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
17545         Darwin.
17546         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
17547         (rs6000_emit_move): Add DImode case to Darwin bits.
17548         (machopic_output_stub): Use .quad if 64-bit.
17549         * invoke.texi: Document -m32 and -m64.
17550
17551 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
17552
17553         * doc/extend.texi (AltiVec builtins): Document additional differences
17554         from the Motorola AltiVec PIM.
17555
17556 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
17557
17558         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
17559         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
17560         (struct tree_common): Update public_flag documentation.
17561
17562 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
17563
17564         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
17565         Check for artificial variables, not is_gimple_tmp_var.
17566         * tree-ssa-live.c (var_union): Likewise.
17567
17568 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
17569
17570         * calls.c (load_register_parameters): Remove spurious FIXME token.
17571
17572 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
17573
17574         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
17575         (c-lang.o): Depend on c-objc-common.h.
17576         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
17577         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
17578         * c-lang.c: Include c-objc-common.h.
17579         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
17580         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
17581         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
17582         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
17583         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
17584         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
17585         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
17586         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
17587         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
17588         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
17589         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
17590         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
17591         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
17592         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
17593         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
17594         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
17595         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
17596         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
17597         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
17598         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
17599         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
17600         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
17601         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
17602         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
17603         Move to c-objc-common.h.
17604         * c-objc-common.c: Include c-objc-common.h.
17605         * c-objc-common.h: New file.
17606
17607 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
17608             Andrew Pinski  <pinskia@physics.uc.edu>
17609
17610         PR target/14931
17611         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
17612         style.
17613
17614 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
17615
17616         * tree.h (build_int_cst): New.
17617         (build_int_2): Remove.
17618         * tree.c (build_int_2): Remove.
17619         (build_int_cst): New.
17620         (make_vector_type, build_common_tree_nodes,
17621         build_common_tree_nodes_2): Use build_int_cst.
17622         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
17623         expand_builtin_strpbrk, expand_builtin_fputs,
17624         build_string_literal, expand_builtin_printf,
17625         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
17626         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
17627         fold_builtin_isdigit, simplify_builtin_strstr,
17628         simplify_builtin_strpbrk, fold_builtin_fputs,
17629         simplify_builtin_sprintf): Use build_int_cst.
17630         * c-common.c (start_fname_decls, fix_string_type,
17631         c_common_nodes_and_builtins, c_init_attributes,
17632         shorten_compare): Likewise.
17633         * c-decl.c (complete_array_type,
17634         check_bitfield_type_and_width): Likewise.
17635         * c-lex.c (interpret_integer, lex_charconst): Likewise.
17636         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
17637         * c-pretty-print.c (pp_c_integer_constant): Likewise.
17638         * c-typeck.c (really_start_incremental_init, push_init_level,
17639         set_nonincremental_init_from_string): Likewise.
17640         * calls.c (load_register_parameters): Likewise.
17641         * convert.c (convert_to_pointer): Likewise.
17642         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
17643         build_fn_info_type, build_ctr_info_value, build_gcov_info):
17644         Likewise.
17645         * except.c (init_eh, assign_filter_values, assign_filter_values):
17646         Likewise.
17647         * expmed.c (store_fixed_bit_field, extract_bit_field,
17648         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
17649         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
17650         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
17651         * expr.c (convert_move, emit_group_load, emit_group_store,
17652         expand_assignment, store_constructor, store_field,
17653         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
17654         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
17655         invert_truthvalue, optimize_bit_field_compare,
17656         decode_field_reference, all_ones_mask_p, constant_boolean_node,
17657         fold_div_compare, fold, fold_read_from_constant_string,
17658         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
17659         * function.c (assign_parm_setup_block): Likewise.
17660         * stmt.c (shift_return_value, expand_end_case_type,
17661         estimate_case_costs): Likewise.
17662         * stor-layout.c (layout_type, initialize_sizetypes,
17663         set_min_and_max_values_for_integral_type): Likewise.
17664         * tree-chrec.c (chrec_fold_multiply_poly_poly,
17665         reset_evolution_in_loop): Likewise.
17666         * tree-chrec.h (build_polynomial_chrec): Likewise.
17667         * tree-complex.c (build_replicated_const): Likewise.
17668         * tree-eh.c (honor_protect_cleanup_actions,
17669         lower_try_finally_onedest, lower_try_finally_copy,
17670         lower_try_finally_switch): Likewise.
17671         * tree-mudflap.c (mf_build_string, mx_register_decls,
17672         mudflap_register_call, mudflap_enqueue_constant): Likewise.
17673         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
17674         * tree-pretty-print.c (dump_generic_node): Likewise.
17675         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
17676         Likewise.
17677         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
17678         * tree-ssa-loop-niter.c (number_of_iterations_cond,
17679         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
17680         Likewise.
17681
17682         * config/alpha/alpha.c (alpha_initialize_trampoline,
17683         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
17684         * config/arm/arm.c (arm_get_cookie_size): Likewise.
17685         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
17686         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
17687         * config/i860/i860.c (i860_va_start): Likewise.
17688         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
17689         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
17690         mips_gimplify_va_arg_expr): Likewise.
17691         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
17692         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
17693         add_compiler_branch_island): Likewise.
17694         * config/s390/s390.c (s390_va_start): Likewise.
17695         * config/sh/sh.c (sh_va_start): Likewise.
17696         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
17697         Likewise.
17698         * config/xtensa/xtensa.c (xtensa_va_start,
17699         xtensa_gimplify_va_arg_expr): Likewise.
17700
17701         * objc/objc-act.c (build_objc_string_object,
17702         build_objc_symtab_template, init_def_list, init_objc_symtab,
17703         init_module_descriptor, generate_static_references,
17704         build_selector_translation_table, get_proto_encoding,
17705         build_typed_selector_reference, build_selector_reference,
17706         build_next_objc_exception_stuff,
17707         build_method_prototype_list_template, generate_descriptor_table,
17708         generate_protocols, build_protocol_initializer,
17709         build_ivar_list_template, build_method_list_template,
17710         build_ivar_list_initializer, generate_ivars_list,
17711         generate_dispatch_table, generate_protocol_list,
17712         build_category_initializer, build_shared_structure_initializer,
17713         generate_shared_structures, handle_impent,
17714         generate_objc_image_info): Use build_int_cst.
17715
17716 2004-08-15  Ben Elliston  <bje@au.ibm.com>
17717
17718         * vec.h: Comment improvements.
17719
17720 2004-08-14  Roger Sayle  <roger@eyesopen.com>
17721
17722         * c-common.c (shorten_compare, pointer_int_sum,
17723         c_common_truthvalue_conversion, boolean_increment): Replace calls
17724         to build with calls to buildN.
17725         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
17726         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
17727         gimplify_switch_stmt): Likewise.
17728         * c-typeck.c (default_function_array_conversion,
17729         build_component_ref, build_array_ref, build_function_call,
17730         pointer_diff, build_unary_op, build_conditional_expr,
17731         build_compound_expr, build_modify_expr, c_finish_goto_label,
17732         c_finish_goto_ptr, c_finish_return, c_finish_loop,
17733         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
17734         build_binary_op): Likewise.
17735
17736 2004-08-15  Steven Bosscher  <stevenb@suse.de>
17737
17738         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
17739
17740 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17741
17742         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
17743         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
17744         * fixinc/fixincl.x: Rebuilt.
17745
17746 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
17747
17748         * config/mips/mips-protos.h (mips_symbolic_constant_p)
17749         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
17750         (mips_small_data_pattern_p): Declare.
17751         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
17752         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
17753         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
17754         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
17755         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
17756         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
17757         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
17758         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
17759         (pc_or_label_operand, call_insn_operand, move_operand)
17760         (consttable_operand, symbolic_operand, general_symbolic_operand)
17761         (global_got_operand, local_got_operand, stack_operand)
17762         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
17763         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
17764         (mips_small_data_pattern_p): Replace previous small_data_pattern
17765         predicate.  Turn into a bool () (rtx) function.
17766         * config/mips/predicates.md: New file.
17767         * config/mips/mips.md: Include it.  Use the target-independent
17768         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
17769         trap_comparison_operator and equality_op to equality_operator.
17770         Replace uses of small_int with the equivalent const_arith_operand.
17771         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
17772         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
17773         to fcc_reload_operand.
17774         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
17775
17776 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17777
17778         PR libstdc++/17005 partial fix.
17779         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
17780         except when generating ANSI/C89 code.
17781
17782 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
17783
17784         * c-common.c (shorten_compare): Use force_fit_type directly.
17785
17786 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
17787             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
17788             Dave Korn  <dk@artimi.com>
17789
17790         * doc/install.texi (Building): Avoid duplicate reference to GNU
17791         make requirement.
17792         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
17793
17794 2004-08-14  Richard Henderson  <rth@redhat.com>
17795
17796         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
17797         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
17798
17799 2004-08-13  Richard Henderson  <rth@redhat.com>
17800
17801         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
17802         for constant_call_address_operand.
17803         (call_value_pop_1, call_value_1): Likewise.
17804         (sibcall_value_1, call_value_1_rex64): Likewise.
17805
17806 2004-08-13  James E Wilson  <wilson@specifixinc.com>
17807
17808         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
17809         Correct mode from SFmode to DFmode.
17810
17811 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
17812
17813         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
17814         __cstring_object and __image_info sections with the no_dead_strip
17815         attribute.
17816
17817 2004-08-13  Roger Sayle  <roger@eyesopen.com>
17818             David Billinghurst  <David.Billinghurst@riotinto.com>
17819
17820         PR libgfortran/15930
17821         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
17822         * fixinc/fixincl.x: Regenerate.
17823         * fixinc/tests/base/internal/math_core.h: New file.
17824
17825 2004-08-13  Richard Henderson  <rth@redhat.com>
17826
17827         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
17828         (dbxout_function_end): Remove ifdefs for it.
17829         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
17830
17831 2004-08-13  Richard Henderson  <rth@redhat.com>
17832
17833         * Makefile.in (insn-preds.o): Depend on TREE_H.
17834         * genpreds.c (write_insn_preds_c): Include tree.h.
17835         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
17836         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
17837         const48_operand, and_operand, or_operand, mode_width_operand,
17838         mode_mask_operand, mul8_operand, const0_operand,
17839         hard_fp_register_operand, hard_int_register_operand,
17840         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
17841         samegp_function_operand, direct_call_operand, small_symbolic_operand,
17842         global_symbolic_operand, call_operand, symbolic_operand,
17843         dtp16_symbolic_operand, dtp32_symbolic_operand,
17844         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
17845         gottp_symbolic_operand, alpha_comparison_operator,
17846         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
17847         signed_comparison_operator, alpha_fp_comparison_operator,
17848         divmod_operator, fix_operator, aligned_memory_operand,
17849         unaligned_memory_operand, reg_or_unaligned_mem_operand,
17850         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
17851         reg_no_subreg_operand, addition_operation): Move to predicates.md.
17852         (reg_or_const_int_operand): Remove.  Replace all users with
17853         reg_or_cint_operand.
17854         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
17855         (resolve_reload_operand): Split out of aligned_memory_operand.
17856         * config/alpha/alpha-protos.h: Update for exports.
17857         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
17858         * config/alpha/alpha.md: Include predicates.md.
17859         * config/alpha/predicates.md: New file.
17860
17861 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
17862
17863         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
17864         fields with a pointer to the instruction definition.
17865         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
17866         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
17867         (write_attr_case, write_const_num_delay_slots): Update accordingly.
17868         (write_attr_case, write_const_num_delay_slots): Write the name of
17869         an insn next to its case statement.
17870         * genoutput.c (data): Add a filename field.
17871         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
17872         (output_insn_data): Print the location of each insn definition.
17873         * genrecog.c (write_action): Print the name of an insn above
17874         the statement that returns its code.
17875
17876 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
17877
17878         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
17879         * config/libgloss.h: Likewise.
17880         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
17881         * c4x/c4x-modes.def: Likewise.
17882         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
17883         (c4x_rptb_nop_p): Likewise.
17884         (c4x_rptb_valid_p): Likewise.
17885         (c4x_rptb_insert): Likewise.
17886         (c4x_address_conflict): Likewise.
17887         * config/c4x/c4x.md: Likewise.
17888         * config/frv/frv.md: Likewise.
17889         * config/i386/athlon.md: Likewise.
17890         * config/i386/i386.md: Likewise.
17891         * config/i386/predicates.md: Likewise.
17892         * config/ia64/ia64.c: Likewise.
17893         * config/ia64/itanium1.md: Likewise.
17894         * config/ia64/itanium2.md: Likewise.
17895         * config/iq2000/iq2000.md: Likewise.
17896         * config/mcore/mcore.c: Likewise.
17897         * config/mips/mips.c: Likewise.
17898         * config/mips/r3900.h: Likewise.
17899         * config/mips/sb1.md: Likewise.
17900         * config/pa/milli64.S: Likewise.
17901         * config/pa/pa.c: Likewise.
17902         * config/pa/pa.h: Likewise.
17903         * config/rs6000/8540.md: Likewise.
17904
17905 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
17906
17907         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
17908
17909 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
17910
17911         * sh.md (cbranch define_delay) Use cond_delay_slot for
17912         non-anulled condition too.
17913
17914 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
17915
17916         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
17917         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
17918         any_parallel_operand, lmw_operation, stmw_operation,
17919         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
17920         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
17921         any_parallel_operand.
17922         (return_and_restore_fpregs_{si,di}): Same.
17923
17924 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
17925
17926         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
17927         if pred->singleton != PARALLEL, issue a warning and pretend it was.
17928         Also issue a warning for any predicate we don't know about.
17929
17930 2004-08-12  Richard Henderson  <rth@redhat.com>
17931
17932         * config/i386/i386.c (internal_label_prefix): Export.
17933         (internal_label_prefix_len, struct ix86_address,
17934         ix86_decompose_address, maybe_get_pool_constant,
17935         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
17936         memory_address_length): Export.
17937         (any_fp_register_operand, fp_register_operand,
17938         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
17939         x86_64_general_operand, x86_64_szext_general_operand,
17940         x86_64_nonmemory_operand, x86_64_movabs_operand,
17941         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
17942         x86_64_zext_immediate_operand, const_int_1_31_operand,
17943         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
17944         tls_symbolic_operand, global_dynamic_symbolic_operand,
17945         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
17946         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
17947         constant_call_address_operand, const0_operand, const1_operand,
17948         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
17949         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
17950         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
17951         general_no_elim_operand, nonmemory_no_elim_operand,
17952         index_register_operand, q_regs_operand, flags_reg_operand,
17953         non_q_regs_operand, zero_extended_scalar_load_operand,
17954         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
17955         ix86_comparison_operator, ix86_carry_flag_operator,
17956         fcmov_comparison_operator, promotable_binary_operator,
17957         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
17958         mult_operator, div_operator, arith_or_logical_operator,
17959         memory_displacement_operand, cmpsi_operand, long_memory_operand,
17960         aligned_operand): Move to predicates.md as define_predicates.
17961         (tls_symbolic_operand_1): Remove.
17962         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
17963         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
17964         (legitimize_address): Merge tls_symbolic_operand contents.
17965         (ix86_expand_move): Likewise.
17966         * config/i386/i386-protos.h: Update for exports.
17967         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
17968         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
17969         * config/i386/i386.md: Include predicates.md.
17970         * config/i386/predicates.md: New file.
17971
17972 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
17973
17974         PR c++/16924
17975         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
17976         SYMBOL_REF_DECL.
17977         (i386_pe_mark_dllimport): Likewise.
17978         (i386_pe_encode_section_info): Likewise, when overriding
17979         dllimport attribute.
17980
17981 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
17982
17983         * configure.ac: When testing for flex, nm, ar, and bison, check
17984         that they will actually be built.
17985         * configure: Regenerate.
17986
17987 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
17988
17989         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
17990         (MOVE_MAX_PIECES): Define.
17991
17992 2004-08-12  Devang patel  <dpatel@apple.com>
17993
17994         * dbxout.c (dbxout_begin_prologue): New function.
17995         (dbx_debug_hooks): Use new begin prologue hook.
17996         (dbxout_function_end): Emit N_ENSYM.
17997         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
17998
17999 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
18000
18001         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
18002         argument is float*.
18003
18004         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
18005         for vec_dss.
18006
18007         * doc/extend.texi (AltiVec builtins): Fix description for recent
18008         changes.  Update operation list to match current support.
18009
18010 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
18011
18012         * config/s390/s390.c (struct s390_frame_layout): New struct as element
18013         of struct machine_function.
18014         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
18015         changed all uses.
18016         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
18017         changed all uses.
18018         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
18019         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
18020         (s390_frame_area, s390_register_info): New functions.
18021         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
18022         for base register.
18023         (s390_return_addr_rtx, s390_return_address_offset)
18024         (s390_va_start, s390_gimplify_va_arg)
18025         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
18026         layouts.
18027         (s390_frame_info): Functionality partly moved to s390_register_info.
18028         Made adaptions for new stack layout.
18029         (save_gprs, restore_gprs): Changed meaning of second parameter and
18030         adapted all callers.
18031
18032         * config/s390/s390.h (s390_backchain_string): New global variable.
18033         (MASK_BACKCHAIN): Removed definition.
18034         (TARGET_BACKCHAIN): Changed check.
18035         (TARGET_KERNEL_BACKCHAIN): New macro.
18036         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
18037         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
18038         "kernel-backchain".
18039         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
18040
18041         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
18042         as condition.  Adjusted for new stack layout.
18043
18044         * doc/invoke.texi: Added documentation for new option
18045         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
18046         "-mno-backchain".
18047
18048 2004-08-12  Paul Brook  <paul@codesourcery.com>
18049
18050         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
18051         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
18052
18053 2004-08-12  David Daney  <ddaney@avtrex.com>
18054
18055         * java/gcj.texi:  Add subsection on signal usage.
18056
18057 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
18058
18059         * expr.c (move_by_pieces): Set alignment for move to minimum of
18060         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
18061         alignment, but not less than the original alignment.
18062         (move_by_pieces_ninsns): Same.
18063         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
18064         (store_by_pieces_1): Same.
18065
18066 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
18067
18068         PR tree-optimization/16867
18069         * tree.c (is_global_var): New function.
18070         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
18071         Call is_global_var.
18072         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
18073         Update all users.
18074         (is_global_var): Declare.
18075         * tree-dfa.c (dump_variable): Display global and addressable
18076         attributes.
18077         (add_referenced_var): Clarify documentation when marking
18078         variables call-clobbered.
18079         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
18080         instead of needs_to_live_in_memory.
18081         (mark_call_clobbered): If the variable is a tag, mark it
18082         DECL_EXTERNAL.
18083         * tree-gimple.c (is_gimple_reg): Don't check for
18084         TREE_ADDRESSABLE.
18085         (is_gimple_non_addressable): Likewise.
18086         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
18087         needs to be marked call-clobbered.
18088         (setup_pointers_and_addressables): Call is_global_var instead
18089         of needs_to_live_in_memory.
18090         * tree-ssa-dce.c (need_to_preserve_store): Remove.
18091         Update all users with is_global_var.
18092         (mark_stmt_if_obviously_necessary): Fix processing of aliased
18093         stores.  Don't check the virtual definitions.  Rather, check
18094         whether the store is going into global memory.
18095         (find_obviously_necessary_stmts): Get the symbol from the PHI
18096         result.
18097         * tree-ssa-operands.c (get_call_expr_operands): Do not add
18098         clobbering may-defs if the call does not have side effects.
18099
18100 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
18101
18102         PR c++/16276
18103         * output.h (default_function_rodata_section,
18104         default_no_function_rodata_section): New prototypes.
18105         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
18106         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
18107         (TARGET_ASM_OUT): Add it.
18108         * varasm.c (default_function_rodata_section,
18109         default_no_function_rodata_section): New functions.
18110         * final.c (final_scan_insn): Call
18111         targetm.asm_out.function_rodata_section instead of
18112         readonly_data_section.
18113         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
18114         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
18115         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
18116         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
18117         Likewise.
18118         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
18119         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
18120         Likewise.
18121         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
18122         Likewise.
18123         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
18124         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
18125         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
18126
18127 2004-08-12  Paul Brook  <paul@codesourcery.com>
18128
18129         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
18130         frame info.
18131         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
18132         DWARF2_UNWIND_INFO.
18133
18134 2004-08-12  Ben Elliston  <bje@au.ibm.com>
18135
18136         PR target/16286
18137         * config/rs6000/altivec.h: Change vector to __vector throughout.
18138         (Except for the `vector' macro itself).
18139
18140 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
18141
18142         * genpreds.c: Add capability to generate predicate bodies as
18143         well as function prototypes.  Write function prototypes for
18144         the generic predicates too.
18145         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
18146         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
18147         (write_match_code, write_predicate_expr, write_one_predicate_function)
18148         (parse_option): New functions.
18149         (output_predicate_decls): Delete.
18150         (main): Read the machine description, process DEFINE_PREDICATE or
18151         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
18152         as appropriate.
18153
18154         * genrecog.c (struct decision_test): Replace index with
18155         struct pred_data pointer.
18156         (next_index): Remove, unused.
18157         (pred_table, preds, special_mode_pred_table): Delete.
18158         (compute_predicate_codes, process_define_predicate): New functions.
18159         (validate_pattern, add_to_sequence, write_switch): Update for
18160         new data structures.
18161         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
18162         Check both error_count and have_error.
18163
18164         * gensupport.c (in_fname, first_predicate): New globals.
18165         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
18166         (predicate_table, last_predicate, old_pred_table)
18167         (old_special_pred_table): New statics.
18168         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
18169         (add_predicate, init_predicate_table): New functions.
18170         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
18171         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
18172         it or max_include_len.  Call init_predicate_table.
18173         (read_rtx): Run the predicate queue after the attribute queue
18174         but before all the others.
18175         * gensupport.h (in_fname, struct pred_data, first_predicate)
18176         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
18177         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
18178         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
18179         * dummy-conditions.c: Don't include bconfig.h, system.h,
18180         coretypes.h, tm.h, or system.h.  Do include stddef.h.
18181         Duplicate declaration of struct c_test from gensupport.h.
18182
18183         * Makefile.in (OBJS-common): Add insn-preds.o.
18184         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
18185         (insn-preds.c, insn-preds.o): New rules.
18186         (s-preds): Also generate insn-preds.c.
18187         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
18188         Update dependencies.
18189         (print-rtl.o, print-rtl1.o): Correct dependencies.
18190
18191         * recog.h: Delete prototypes of predicate functions.
18192
18193         * doc/md.texi (Predicates): New section with complete
18194         documentation of operand/operator predicates.  Remove some
18195         incomplete documentation of predicates from other places.
18196         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
18197         PREDICATE_CODES; indicate that both are deprecated in favor
18198         of define_predicate/define_special_predicate.
18199
18200         * config/ia64/ia64.c: All predicate function definitions moved
18201         to ia64.md, except
18202         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
18203         (ia64_expand_load_address, ia64_expand_move):
18204         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
18205
18206         * config/ia64/ia64.md: All predicates now defined here.
18207         (symbolic_operand): Is now a special predicate.
18208
18209         * config/ia64/ia64.h: Declare ia64_section_threshold.
18210         (PREDICATE_CODES): Delete.
18211
18212 2004-08-12  Richard Henderson  <rth@redhat.com>
18213
18214         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
18215         * c-semantics.c (add_stmt): Set it.
18216         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
18217         before instantiating a variable sized type.
18218
18219 2004-08-12  Richard Henderson  <rth@redhat.com>
18220
18221         * stor-layout.c (round_up, round_down): Move ...
18222         * fold-const.c (round_up, round_down): ... here.  Use
18223         multiple_of_p to avoid any arithmetic at all.
18224
18225 2004-08-12  Richard Henderson  <rth@redhat.com>
18226
18227         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
18228         (gimplify_init_ctor_preeval_1): New.
18229         (gimplify_init_ctor_preeval): New.
18230         (gimplify_init_ctor_eval): New.
18231         (gimplify_init_constructor): Use them.  Always gimplify the LHS
18232         object first.
18233
18234 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
18235
18236         (This patch is part of merge of objc-improvements-branch
18237         into mainline.)
18238
18239         * doc/frontends.texi: Mention Objective-C++ in addition to
18240         Objective-C.
18241         * doc/install.texi: Add 'obj-c++' to list of configurable
18242         languages.
18243         * doc/invoke.texi: Rename Objective-C option headings to
18244         indicate they also apply to Objective-C++.  List file
18245         extensions for Objective-C++ sources.  Mention that
18246         ObjC and ObjC++ compilations may also use C and C++ options,
18247         respectively.  Point users to doc/standards.texi for
18248         further info on ObjC and ObjC++.
18249         * doc/sourcebuild.texi: Mention the objcp/ directory and
18250         the Objective-C++ sources it contains.
18251         * doc/standards.texi: Update link to Apple ObjC site;
18252         add link to gcc readings.html WWW doc.
18253
18254 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
18255
18256         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
18257         and 2004-07-14 changes.
18258
18259 2004-08-12  Paul Brook  <paul@codesourcery.com>
18260
18261         * doc/invoke.texi: Fix typo.
18262
18263 2004-08-11 Devang Patel  <dpatel@apple.com>
18264
18265         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
18266         and -no_dead_strip_inits_and_terms.
18267         (LINK_SPEC): Same.
18268         * doc/invoke.texi (Darwin Options): Document -dead_strip and
18269         -no_dead_strip_inits_and_terms.
18270
18271 2004-08-11  Paul Brook  <paul@codesourcery.com>
18272
18273         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
18274         (arm_load_pic_register): ... to this.
18275         * config/arm/arm.c (arm_finalize_pic): Rename ...
18276         (arm_load_pic_register): ... to this.  Always output insns at the
18277         current location.  Load via low reg in thumb mode.
18278         (arm_expand_prologue): Call arm_load_pic_register.
18279         (thumb_expand_prologue): Ditto.
18280         * config/arm/arm.h (FINALIZE_PIC): Remove.
18281         * config/arm/arm.md (builtin_setjmp_receiver): Call
18282         arm_load_pic_register.
18283
18284 2004-08-11  Paul Brook  <paul@codesourcery.com>
18285
18286         * arm.c (thumb_force_lr_save): Add prototype.
18287         (thumb_compute_save_reg_mask): New function.
18288         (thumb_find_work_register): New function.
18289         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
18290         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
18291         Don't clobber r3 when removing pretend args.
18292         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
18293         (thumb_output_function_prologue): Use new functions.
18294         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
18295         * arm.h (THUMB_REG_PUSHED_P): Remove.
18296
18297 2004-08-11  James E Wilson  <wilson@specifixinc.com>
18298
18299         PR rtl-optimization/16490
18300         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
18301         global_live_at_end for new basic block if already set for other blocks.
18302
18303 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
18304
18305         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
18306
18307         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
18308         (mfcr rlwinm rlwinm patterns): Set length to 12.
18309
18310 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
18311
18312         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
18313         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
18314         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
18315         (start_ssa_stmt_operands): Delete.
18316         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
18317         struct stmt_operands_d.
18318         (build_ssa_operands): New extern entry point.
18319         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
18320         building code, replace with create_ssa_artficial_load_stmt().
18321         * tree-ssa-operands.c (struct voperands_d): Delete.
18322         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
18323         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
18324         (free_uses, free_defs, free_vuses, free_v_may_defs,
18325         free_v_must_defs): Remove dealloc parameter.
18326         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
18327         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
18328         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
18329         vector comparisons, ssa_name reuse, and allocations here.
18330         (verify_start_operands): Delete.
18331         (finalize_ssa_stmt_operands): Set new operands by calling finalize
18332         routines.
18333         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
18334         (append_def, append_usei): Simplify to simple accumulation.
18335         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
18336         duplicates and simple accumulation.
18337         (free_ssa_operands): Free vectors in a stmt_operand structure.
18338         (build_ssa_operands): New. Create a new stmt_operand structure from
18339         a stmt and an old set of stmt_operands.
18340         (get_stmt_operands): Simplify and call build_ssa_operands.
18341         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
18342         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
18343         add_call_read_ops): Don't pass prev_vops around anymore.
18344         (note_addressable): Return if no stmt annotation.
18345         (copy_virtual_operands): Access v_may_def operands through a struct.
18346         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
18347         hash tables without treating the stmt as a real stmt.
18348         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
18349         v_may_def def and use through a struct instead of 2 array elements.
18350         (struct v_may_def_optype_d): Use v_may_def_operand_type.
18351         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
18352
18353 2004-08-11  Nick Clifton  <nickc@redhat.com>
18354
18355         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
18356         this funciton's behaviour.  Return true when the current function
18357         has a section attribute and -mlong-calls is in effect.
18358         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
18359         short-call marker when -mlong-calls is in effect and the function
18360         has a section attribute.
18361
18362 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
18363
18364         * stmt.c (expand_return): If asked to return the RESULT_DECL,
18365         just call expand_value_return on result_rtl.
18366
18367 2004-08-10  Richard Henderson  <rth@redhat.com>
18368
18369         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
18370         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
18371         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
18372         (add_location_or_const_value_attribute): ... not here.  Use
18373         loc_descriptor_from_tree if possible.
18374         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
18375         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
18376         values specially.
18377         (loc_descriptor_from_tree): New.  Update callers.
18378         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
18379         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
18380         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
18381         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
18382         and BUILT_IN_STACK_RESTORE.
18383         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
18384         * stmt.c (expand_stack_alloc): Remove.
18385         * tree-mudflap.c (mx_register_decls): Don't look for
18386         BUILT_IN_STACK_ALLOC.
18387         * tree-nested.c (convert_local_reference): Likewise.
18388         * tree.h (DECL_VALUE_EXPR): New.
18389
18390 2004-08-10  Richard Henderson  <rth@redhat.com>
18391
18392         * stor-layout.c (round_up): Check for 0/1 before dividing.
18393         (round_down): Likewise.
18394
18395         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
18396
18397 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
18398
18399         * config.gcc (arm*-*-eabi*): New target.
18400         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
18401         (TARGET_LIB_INT_CMP_BIASED): Likewise.
18402         * expmed.c (expand_divmod): Try a two-valued divmod function as a
18403         last resort.
18404         * gthr.h: Remove bogus tokens at end of #pragma.
18405         * optabs.c (expand_twoval_binop_libfunc): New function.
18406         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
18407         (prepare_float_lib_cmp): Try reversing the condition.
18408         (debug_optab_libfuncs): New function.
18409         * optabs.h (expand_twoval_binop_libfunc): Declare.
18410         * config/arm/arm.c (arm_init_libfuncs): New function.
18411         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
18412         (TARGET_INIT_LIBFUNCS): Define it.
18413         * config/arm/arm.h (TARGET_BPABI): New macro.
18414         * config/arm/arm-protos.h
18415         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
18416         * config/arm/bpabi.S: New file.
18417         * config/arm/bpabi.c: Likewise.
18418         * config/arm/bpabi.h: Likewise.
18419         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
18420         (__aeabi_drsub): Likewise.
18421         (__aeabi_dsub): Likewise.
18422         (__aeabi_dadd): Likewise.
18423         (__aeabi_ui2d): Likewise.
18424         (__aeabi_i2d): Likewise.
18425         (__aeabi_f2d): Likewise.
18426         (__aeabi_dmul): Likewise.
18427         (__aeabi_ddiv): Likewise.
18428         (__aeabi_cdrcmple): Likewise.
18429         (__aeabi_cdcmpeq): Likewise.
18430         (__aeabi_cdcmple): Likewise.
18431         (__aeabi_dcmpeq): Likewise.
18432         (__aeabi_dcmplt): Likewise.
18433         (__aeabi_dcmple): Likewise.
18434         (__aeabi_dcmpge): Likewise.
18435         (__aeabi_dcmpgt): Likewise.
18436         (__aeabi_dcmpun): Likewise.
18437         (__aeabi_d2iz): Likewise.
18438         (__aeabi_d2uiz): Likewise.
18439         (__aeabi_d2f): Likewise.
18440         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
18441         (__aeabi_frsub): Likewise.
18442         (__aeabi_fsub): Likewise.
18443         (__aeabi_fadd): Likewise.
18444         (__aeabi_ui2f): Likewise.
18445         (__aeabi_i2f): Likewise.
18446         (__aeabi_fmul): Likewise.
18447         (__aeabi_fdiv): Likewise.
18448         (__aeabi_cfrcmple): Likewise.
18449         (__aeabi_cfcmpeq): Likewise.
18450         (__aeabi_cfcmple): Likewise.
18451         (__aeabi_fcmpeq): Likewise.
18452         (__aeabi_fcmplt): Likewise.
18453         (__aeabi_fcmple): Likewise.
18454         (__aeabi_fcmpge): Likewise.
18455         (__aeabi_fcmpgt): Likewise.
18456         (__aeabi_fcmpun): Likewise.
18457         (__aeabi_f2iz): Likewise.
18458         (__aeabi_f2uiz): Likewise.
18459         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
18460         (__aeabi_uidivmod): New function or alias.
18461         (__aeabi_idivmod): Likewise.
18462         (__aeabi_idiv0): Likewise.
18463         (__aeabi_ldiv0): Likewise.
18464         (__aeabi_llsr): Likewise.
18465         (__aeabi_lasr): Likewise.
18466         (__aeabi_llsl): Likewise.
18467         (bpabi.S): Include it.
18468         * config/arm/libgcc-bpabi.ver: New file.
18469         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
18470         (LINK_SPEC): Remove.
18471         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
18472         __aeabi_ulcmp.
18473         * config/arm/t-bpabi: New file.
18474         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
18475         (TARGET_LIB_INT_CMP_BIASED): Likewise.
18476
18477 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
18478
18479         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
18480         * config/rs6000/rs6000.md (clrmemsi): New pattern.
18481         * config/rs6000/rs6000.c (expand_block_clear): New function.
18482         (expand_block_move): Convert alignment to bits.  Use SImode and
18483         HImode for unaligned addresses if not STRICT_ALIGNMENT.
18484
18485 2004-08-10  Caroline Tice  <ctice@apple.com>
18486
18487         * varasm.c (unlikely_section_label): New global variable.
18488         (unlikely_text_section_name): New global variable.
18489         (text_section):  Remove alignment statement.
18490         (unlikely_text_section): Remove alignment statement; use
18491         unlikely_section_label rather than hard-coded string.
18492         (assemble_start_function): Initialize unlikely_section_label and
18493         unlikely_text_section_name;  make sure cold section is properly
18494         aligned at start of function; output unlikely_section_label if
18495         appropriate.
18496
18497 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
18498
18499         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
18500         * config/s390/s390.c (s390_canonicalize_comparison): New function.
18501         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
18502         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
18503         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
18504         ("*tmqi_mem"): Remove SUBREG from pattern.
18505         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
18506         ("*andsi3_cconly"): Likewise.
18507
18508 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
18509
18510         PR target/16909
18511         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
18512
18513 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
18514
18515         * doc/sourcebuild.texi (compat testing): Document available test
18516         framework commands.  Use the preferred spelling of DejaGnu.
18517
18518 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
18519
18520         * lambda.h: Add matrix type, and prototypes for remainder of
18521         matrix and vector functions.
18522         (lambda_vector_mult_const): New function.
18523         (lambda_vector_negate): Ditto.
18524         (lambda_vector_add): Ditto.
18525         (lambda_vector_add_mc): Ditto.
18526         (lambda_vector_copy): Ditto.
18527         (lambda_vector_zerop): Ditto.
18528         (lambda_vector_equal): Ditto.
18529         (lambda_vector_min_nz): Ditto.
18530         (lambda_vector_first_nz): Ditto.
18531         (lambda_vector_matrix_mult): Ditto.
18532         * lambda-mat.c: New file.
18533         * Makefile.in (lambda-mat.o): New.
18534
18535 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
18536
18537         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
18538         after linking stmt into the program.
18539         (bsi_remove): Don't call modify_stmt.
18540         * tree-complex.c (update_complex_assignment,
18541         expand_complex_comparison): Call modify_stmt after changing the stmt.
18542         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
18543         removing the stmt.
18544         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
18545         the stmt, and only if needed.
18546         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
18547         expression.
18548         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
18549         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
18550         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
18551         (eliminate_redundant_computations): Don't pass an annotation. Call
18552         modify_stmt rather than setting the annotation directly.
18553         (record_equivalences_from_stmt): Remove unused local 'j'.
18554         (cprop_operand): Take a stmt rather than an annotation as a parameter.
18555         Call modify_stmt.
18556         (cprop_into_stmt): Pass stmt rather than annotation.
18557         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
18558         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
18559         modify_stmt.
18560         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
18561
18562 2004-08-10  Jason Merrill  <jason@redhat.com>
18563
18564         PR middle-end/16948
18565         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
18566         the RESULT_DECL.
18567
18568 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
18569
18570         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
18571         hash function.
18572
18573 2004-08-10  Roger Sayle  <roger@eyesopen.com>
18574
18575         * config/mips/mips.md: New reciprocal square root patterns that
18576         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
18577
18578 2004-08-10  Paul Brook  <paul@codesourcery.com>
18579
18580         * config/arm/arm-protos.h (arm_set_return_address,
18581         thumb_set_return_address): Add prototypes.
18582         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
18583         * config/arm/arm.c (arm_compute_func_type,
18584         use_return_insn, arm_compute_save_reg0_reg12_mask,
18585         arm_compute_save_reg_mask, arm_output_function_prologue,
18586         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
18587         current_function_calls_eh_return.
18588         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
18589         old eh code.
18590         (arm_set_return_address, thumb_set_return_address): New functions.
18591         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
18592         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
18593         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
18594         (epilogue): Use the stackadj register.
18595         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
18596
18597 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
18598
18599         PR target/3144
18600         * expr.c (move_by_pieces_ninsns): Add max_size argument.
18601         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
18602         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
18603         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
18604         but using MOVE_RATIO.
18605         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
18606         (can_store_by_pieces): Change max_size type to unsigned int.
18607         (store_by_pieces_1): Likewise.  Pass max_size to
18608         move_by_pieces_ninsns.
18609         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
18610         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
18611         to move_by_pieces_ninsns.
18612         (STORE_BY_PIECES_P): Define.
18613         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
18614         to move_by_pieces_ninsns.
18615         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
18616
18617         * config/i386/i386.h (CLEAR_RATIO): Define.
18618
18619 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18620
18621         * expr.c (expand_expr_real_1): Add back code that was not dead.
18622
18623 2004-08-09  Andrew Pinski  <apinski@apple.com>
18624
18625         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
18626         which is found to be compatible before returning the aliasing set.
18627
18628 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
18629
18630         * ggc-zone.c (struct alloc_zone): Add statistics counters.
18631         (always_collect): New flag.
18632         (ggc_alloc_zone_1): Update statistics support.  Don't include
18633         overhead in allocated counter.
18634         (sweep_pages): Update allocated counter for large pages.  Don'y
18635         include overhead.
18636         (ggc_collect_1): Always collect.
18637         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
18638         whether to collect.
18639         (SCALE, LABEL): New macros.
18640         (ggc_print_statistics): Add statistics support.
18641
18642 2004-08-09  Roger Sayle  <roger@eyesopen.com>
18643
18644         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
18645         (init_expmed): Fix potential overrun problem with "all.reg".
18646         (expand_sdiv2_pow2): Add an alternate implementation for signed
18647         division, if the target provides a suitable conditional move insn.
18648
18649 2004-08-09  Paul Brook  <paul@codesourcery.com>
18650         Richard Henderson  <rth@redhat.com>
18651
18652         * unwind-dw2.c (uw_install_context_1): Update target saved stack
18653         pointer.
18654
18655 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
18656
18657         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
18658         Check DATA limit only if there's no AS limit.  Ignore insanely
18659         low DATA limits.
18660         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
18661         but take care that the AS limit isn't overrun.
18662         * doc/invoke.texi: Update documentation of min-heapsize parameter.
18663
18664 2004-08-09  Jeff Law  <law@redhat.com>
18665
18666         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
18667         (tree-ssa-threadupdate.o): Add dependencies.
18668         * tree-ssa-threadupdate.c: New file.
18669         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
18670         (rewrite_vars_out_of_ssa): Remove prototype.
18671         (cleanup_tree_cfg): Returns a bool.
18672         * tree.h (thread_through_all_blocks): Prototype.
18673         * tree-outof-ssa.c  (SSANORM_*): Move into here.
18674         (remove_ssa_form): Now static.
18675         (rewrite_vars_out_of_ssa): Kill.
18676         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
18677         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
18678         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
18679         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
18680         anything was changed.
18681         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
18682         from the PHI's annotation rather than the edge associated with
18683         the new argument.
18684         * tree-ssa-dom.c (redirection_edges): Kill.
18685         (redirect_edges_and_update_ssa_graph): Kill.
18686         (tree_ssa_dominator_optimize): Do not reset forwardable flag
18687         for blocks anymore.  Do not initialize redirection_edges.
18688         Call thread_through_all_blocks.  Simplify code for cleanup
18689         of the CFG and iterating.  No longer call cleanup_tree_cfg
18690         outside the iteration loop.
18691         (thread_across_edge): No longer mess with forwardable blocks.
18692
18693 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
18694
18695         * explow.c (memory_address): Use memory_address_p.
18696         * recog.c (general_operand): Likewise.
18697         * regrename.c: No need to define REG_OK_STRICT.
18698
18699 2004-08-09  Steven Bosscher  <stevenb@suse.de>
18700
18701         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
18702         New timers.
18703         * gcse.c: Include timevar.h.
18704         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
18705         and global_copy_prop_count.
18706         (local_const_prop_count, local_copy_prop_count): New static globals.
18707         (gcse_main): Set the right timevar for each pass.
18708         (cprop_jump): Increment global_const_prop_count when a constant is
18709         propagated.  Add "GLOBAL" to dump output.
18710         (cprop_insn): Increment global_const_prop_count when a constant is
18711         propagated, or global_copy_prop_count when a copy is propagated.
18712         (do_local_cprop): Likewise for local_const_prop_count and
18713         local_copy_prop_count.
18714         (one_cprop_pass): Initialize const/cprop counters to zero.
18715         Print out results of local and global const/cprop separately.
18716         (bypass_block): Break over-length line.
18717         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
18718         for bb-reorder.o and tracer.o.
18719
18720 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18721
18722         * Makefile.in (GTFILES): Remove stmt.c
18723         (stmt.o): Do not depend on gt-stmt.h.
18724         * emit-rtl.c (emit_line_note): Do not call
18725         set_file_and_line_for_stmt.
18726         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
18727         do everything.
18728         * function.c (free_after_parsing): Do not free STMT field.
18729         (allocate_struct_function): Do not call init_stmt_for_function.
18730         (assign_stack_temp_for_type): Do not accept values of keep
18731         other than 0 or 1.
18732         (init_temp_slots): Do not initialize removed variables.
18733         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
18734         and X_VAR_TEMP_SLOT_LEVEL fields.
18735         * rtl.h (set_file_and_line_for_stmt): Remove.
18736         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
18737         struct stmt_status, cond_stack, case_stack, nesting_stack,
18738         nesting_depth, emit_locus, set_file_and_line_for_stmt,
18739         same_case_target_p, init_stmt_for_function, emit_nop,
18740         expand_start_cond, expand_start_elseif, expand_start_else,
18741         expand_elseif, expand_end_cond): Remove.
18742         (preserve_subexpressions_p): Remove references to CFUN->STMT.
18743         (expand_start_case, expand_end_case_type): Remove, merge into...
18744         (expand_case): ... this one, including other bits from
18745         expand_expr_real_1.  Inline same_case_target_p.  Turn members
18746         of CASE_STACK into local variables.
18747         (emit_case_bit_tests): Inline same_case_target_p.
18748         (add_case_node): Add HEAD argument, return new head of the list,
18749         do not handle default label here.
18750         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
18751         expand_start_elseif, current_nesting_level, expand_start_case,
18752         expand_end_case_type, expand_end_case, add_case_node,
18753         init_stmt_for_function, expand_elseif): Remove prototypes.
18754         (expand_case): Add prototype.
18755
18756 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18757
18758         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
18759
18760 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
18761
18762         * expr.c (var_rtx): Remove.
18763         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
18764         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
18765         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
18766         Abort.
18767         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
18768         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
18769         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
18770
18771 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
18772         Ayal Zaks <zaks@il.ibm.com>
18773
18774         * common.opt (freschedule-modulo-scheduled-loops): New flag.
18775         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
18776         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
18777         when -freschedule-modulo-scheduled-loops flag is not specified.
18778         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
18779         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
18780         More accurate placing of insn in row of partial schedule.
18781         (ps_insn_find_column): New function.
18782         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
18783         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
18784         (schedule_region): Use sched_is_disabled_for_current_region_p.
18785         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
18786
18787 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
18788
18789         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
18790         change.
18791
18792 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
18793
18794         * config/i386/i386.c (ix86_expand_clrmem): Properly call
18795         gen_strset for 64bit target.
18796
18797 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
18798
18799         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
18800
18801 2004-08-07  Jason Merrill  <jason@redhat.com>
18802
18803         Make return in memory explicit.
18804         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
18805         (assign_parm_find_data_types): Remove code for old front end
18806         invisible reference handling.
18807         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
18808         (expand_function_end): Likewise.
18809         * gimplify.c (gimplify_return_expr): Handle a dereferenced
18810         RESULT_DECL.
18811         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
18812         (declare_return_variable): Handle DECL_BY_REFERENCE.
18813         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
18814         (cp_genericize_r): Use convert_from_reference.
18815         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
18816         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
18817
18818         * c-common.c (c_warn_unused_result): Check TREE_USED before
18819         warning about a CALL_EXPR with an unused value.
18820
18821 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
18822
18823         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
18824         to the compiler.  Use -fshort-wchar by default.
18825
18826 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
18827
18828         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
18829         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
18830         threshhold.
18831         * doc/invoke.texi (param): Document min-crossjump-insns.
18832
18833 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
18834
18835         PR c/13282
18836         * c.opt (Wmissing-field-initializers): New option.
18837         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
18838         * c-typeck.c (pop_init_level): Guard the missing field warning with
18839         warn_missing_field_initializers rather than extra_warnings.
18840         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
18841         some of the explanation from...
18842         (-Wextra): ...here.  Say that the missing field warning can be
18843         seperately controlled by -Wmissing-field-initializers.
18844
18845 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
18846
18847         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
18848         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
18849         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
18850         * tree.def (ENTRY_VALUE_EXPR): Remove.
18851
18852 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
18853
18854         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
18855         the places where it is actually needed.  Don't use repz; stosb
18856         for -Os with sufficiently small constant sizes.
18857         For sufficiently small repz; stos{l,q} repeat counts use a sequence
18858         of stos{l,q} instructions instead.
18859
18860 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18861
18862         PR tree-optimization/16807
18863         * loop-iv.c (dump_iv_info): Dump invariants correctly.
18864         (iv_subreg, iv_extend): Express value of invariant purely in
18865         base field.
18866
18867 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
18868
18869         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
18870         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
18871
18872 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
18873
18874         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
18875         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
18876         pre_dec_operand.
18877         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
18878         pattern until reload is finished to allow better code generation
18879         and split them completely into separate instrunctions.
18880         (*andsi3_split): New pattern.
18881
18882 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
18883
18884         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
18885         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
18886         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18887         * tree.h (handle_dll_attribute): Declare.  Test
18888         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18889         * c-common.h (c_determine_visibility): Declare.
18890         * c-common.c (c_determine_visibility): New function.
18891         * c-decl.c (finish_decl): Use it.
18892         (finish_function): Likewise.
18893         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
18894         zero, by default.  Use #if, not #ifdef, to test it.
18895         * config/arm/arm.c (arm_attribute_table): Use
18896         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
18897         #if.
18898         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
18899         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18900         to 1.
18901         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
18902         * config/i386/i386.c (ix86_attribute_table): Use
18903         handle_dll_attribute for dllimport/dllexport.  Test
18904         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
18905         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
18906         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18907         it to 1.
18908         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
18909         with #if.
18910         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
18911         it to 1.
18912         * doc/extend.texi (dllexport): Clarify and correct documentation.
18913         (dllimport): Likewise.
18914         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
18915         handle_dll_attribute.
18916
18917 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18918
18919         * tree-ssa-loop-manip.c: New file.
18920         * Makefile.in (tree-ssa-loop-manip.o): Add.
18921         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
18922         Declare.
18923         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
18924         form.
18925         (tree_ssa_loop_done): Verify loop closed ssa form.
18926         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
18927
18928 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18929
18930         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
18931         pa_asm_output_aligned_local): New functions.
18932         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
18933         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
18934         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
18935         pa_asm_output_aligned_common.
18936         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18937         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
18938         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
18939         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18940         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
18941         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
18942         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
18943         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
18944         common data.
18945
18946 2004-08-05  Andrew Pinski  <apinski@apple.com>
18947
18948         * objc/objc-act.c (build_objc_string_object): Mark the address
18949         expression as constant.
18950
18951 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
18952
18953         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
18954         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
18955         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
18956
18957 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18958
18959         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
18960         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
18961         out, and associated obsolete comments.
18962
18963 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
18964
18965         * tree.h (force_fit_type): Return a tree, take three flags.
18966         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
18967         TREE_CONSTANT_OVERFLOW here.
18968         (int_const_binop, const_binop): Adjust.
18969         (size_int_type): Do sign extension here.
18970         (fold_convert_const, optimize_bit_field_compare,
18971         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
18972         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
18973         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
18974
18975 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18976
18977         PR tree-optimization/16864
18978         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
18979         for ssa names without default_def.
18980
18981 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
18982
18983         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
18984         frame pointer, restore eax with an ebp-relative address.
18985
18986 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
18987
18988         PR 14516
18989         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
18990         * c-common.h (make_rtl_for_local_static): Delete.
18991         * c-decl.c (shadow_tag_warned): Clean up comment.
18992         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
18993         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
18994         * c-semantics.c (make_rtl_for_local_static): Delete.
18995         * expr.c (init_block_move_fn): Use set_user_assembler_name.
18996         (init_block_clear_fn): Likewise.
18997         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
18998         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
18999         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
19000         * tree.h (make_decl_rtl): Remove second parameter.
19001         (set_user_assembler_name): New.
19002         * varasm.c (set_user_assembler_name): New.
19003         (make_decl_rtl): Remove second parameter.  Update callers in many
19004         files.
19005
19006 2004-08-05  Adam Nemet  <anemet@lnxw.com>
19007
19008         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
19009         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
19010         to LynxOS 4.0.
19011         * gthr-lynx.h: New file.
19012         * config/lynx-ng.h: Remove file.
19013         * config/lynx.h: Update to LynxOS 4.0.
19014         * config/t-lynx: New file.
19015         * config/i386/lynx-ng.h: Remove file.
19016         * config/i386/lynx.h: Update to LynxOS 4.0.
19017         * config/rs6000/lynxbase.h: Remove file.
19018         * config/rs6000/lynx.h: Update to LynxOS 4.0.
19019         * config/rs6000/t-lynx: New file.
19020         * doc/install.texi (Options specification): Remove reference to
19021         LynxOS from systems where --with-gnu-as makes a difference.
19022
19023 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
19024
19025         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
19026         __UINTMAX_TYPE__.
19027         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
19028         __INTMAX_MAX__.
19029         (c_cpp_builtins): Call it.
19030         * doc/cpp.texi: Update.
19031
19032 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
19033
19034         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
19035         cost.
19036
19037 2004-08-04  Jan Hubicka  <jh@suse.cz>
19038
19039         * basic-block.h (profile_staus): New global variable.
19040         * cfg.c (profile_status): Declare.
19041         (check_bb_profile): Break out from ....; use profile_status
19042         (dump_flow_info): ... here.
19043         * cfgbuild.c (find_basic_blocks): Set profile_status.
19044         * cfgexpand.c (tree_expand_cfg): Likewise.
19045         * predict.c (estimate_probability): Likewise.
19046         * profile.c (branch_prob): Likewise.
19047         * tree-cfg.c (build_tree_cfg): Likewise.
19048         (dump_function_to_file): Use check_bb_profile.
19049         * tree-pretty-print (dump_bb_header): Likewise.
19050         * tree-profile.c (do_tree_profiling): Cleanup.
19051
19052 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
19053
19054         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
19055         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
19056         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
19057         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
19058         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
19059         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
19060         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
19061         (ggc-none.o, errors.o): Move rule to generators section;
19062         correct dependencies.
19063         (min-insn-modes.o): Move rule to generators section; remove
19064         unnecessary explicit command; correct dependencies.
19065         (print-rtl.o, print-rtl1.o): Correct dependencies.
19066         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
19067         (mostlyclean): Update.
19068
19069         * errors.c: Include bconfig.h not config.h.  Correct comment.
19070         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
19071         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
19072         * print-rtl.c: Don't include tm_p.h.
19073
19074         * rtl.h: Move forward-decl of struct function down where it's
19075         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
19076         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
19077
19078 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19079             Jeff Law  <law@redhat.com>
19080
19081         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
19082         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
19083         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
19084         manipulate the duplicated ssa names.
19085         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
19086         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
19087         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
19088         New functions.
19089         (release_ssa_name): Do not release ssa names that may have multiple
19090         definitions.
19091         * tree.h (release_ssa_name_force, mark_for_rewrite,
19092         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
19093         marked_ssa_names): Declare.
19094         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
19095         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
19096         Update call to rewrite_ssa_into_ssa.
19097
19098 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
19099
19100         * defaults.h (TARGET_DECLSPEC): New macro.
19101         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
19102         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
19103         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
19104         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
19105         __declspec support.
19106         (TARGET_DECLSPEC): Define.
19107         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
19108         __declspec support.
19109         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
19110         __declspec support.
19111         (TARGET_DECLSPEC): Define.
19112         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
19113         __declspec support.
19114         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
19115         support.
19116         * doc/tm.texi (TARGET_DECLSPEC): Document.
19117
19118         * doc/extend.texi: Fix typo in comment.
19119
19120 2004-08-04  Paul Brook  <paul@codesourcery.com>
19121
19122         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
19123         (TARGET_CXX): Use it.
19124         * target.h (struct gcc_target): Add cdtor_returns_this.
19125         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
19126         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
19127         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
19128
19129 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
19130
19131         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
19132         low/high pair. Do range checking directly.
19133         (interpret_integer): Adjust.
19134
19135 2004-08-04  Nick Clifton  <nickc@redhat.com>
19136
19137         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
19138         GCC ABI.
19139         * doc/invoke.texi: Document this new switch and also the -mrenesas
19140         switch.
19141
19142 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
19143
19144         * cfglayout.c (insn_locators_initialize): Update the current
19145         location before initializing a location.
19146
19147 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
19148
19149         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
19150         (dbxout_function_end): Return after emitting the "Lscope" symbol
19151         under the same conditions that this function formerly wasn't called.
19152         Add explanatory comments.
19153
19154         PR 14860
19155         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
19156         on the new decl.
19157
19158         PR 13956
19159         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
19160         functions, broken out of dbxout_block.
19161         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
19162         stabs too, if it contains symbols.  Use the begin_label and
19163         the Lscope label (emitted by dbxout_function_end) for the
19164         range of this block.
19165
19166 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
19167
19168         * doc/install.texi: Update autoconf version requirements.
19169
19170 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
19171
19172         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
19173         * recog.c (general_operand, immediate_operand, nonmemory_operand)
19174         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
19175         * regclass.c (record_reg_classes): Likewise.
19176         * reload.c (find_reloads): Likewise.
19177         * reload1.c (reload): Likewise.
19178
19179 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
19180
19181         * gensupport.c (init_md_reader_args_cb): Renamed from
19182         init_md_reader_args.  Add third option, callback function for
19183         parsing program-specific options.  Add diagnosis of incorrect
19184         number of input files.
19185         (init_md_reader): Fold into init_md_reader_args_cb.
19186         (init_md_reader_args): Now a thin wrapper around
19187         init_md_reader_args_cb.
19188         * gensupport.h: Update prototypes.
19189
19190         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
19191         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
19192         * genrecog.c: No need to diagnose lack of an input file;
19193         init_md_reader_args will handle it.
19194         * genconditions.c: Likewise, and use init_md_reader_args.
19195         * genconstants.c: Likewise, and no need to call read_md_rtx.
19196
19197 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
19198
19199         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
19200         declarations.
19201
19202 2004-08-03  Mike Stump  <mrs@apple.com>
19203
19204         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
19205         for frameworks.
19206         * doc/invoke.texi (Darwin Options): Update to reflect above.
19207
19208 2004-08-03  Roger Sayle  <roger@eyesopen.com>
19209
19210         PR middle-end/16790
19211         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
19212         truncations, not just global truncations.
19213
19214 2004-08-03  Andrew Pinski  <apinski@apple.com>
19215
19216         PR bootstrap/16865
19217         * loop-iv.c (simplify_using_assignment): Initialize lhs.
19218
19219 2004-08-03  Paul Brook  <paul@codesourcery.com>
19220
19221         * gcc/doc/install.texi: Document MPFR requirement.
19222
19223 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
19224
19225         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
19226         and mmap() explicitly instead of relying on preset autoconf cache
19227         variables.
19228         * configure: Regenerate.
19229
19230 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
19231
19232         PR target/16570
19233         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
19234         to tmake_file.
19235         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
19236         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
19237         to tmake_file.
19238
19239         * config/i386/t-gmm_malloc: New file.
19240         * config/i386/t-pmm_malloc: Likewise.
19241
19242         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
19243
19244 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
19245             Tanguy Fautrà <tfautre@pandora.be>
19246
19247         * config/i386/pmm_malloc.h: New file.
19248
19249 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
19250
19251         * config/i386/gmm_malloc.h: New file.
19252
19253 2004-08-03  Dale Johannesen  <dalej@apple.com>
19254
19255         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
19256         * c-common.c: Include opts.h.
19257         (c_common_get_alias_set): Fix check for a single input file.
19258         * toplev.c: Remove current_file_decl.
19259         * tree.h: Ditto.
19260
19261 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
19262
19263         * config.gcc (arm*-*-symbianelf*): New target.
19264         * config/arm/symbian.h: New file.
19265
19266         * gthr-gnat.c: Add visibility #pragmas.
19267         * gthr-gnat.h : Likewise.
19268         * gthr.h: Likewise.
19269         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
19270         (__ffsDI2): Likewise.
19271         (__clzSI2): Likewise.
19272         (__ctzSI2): Likewise.
19273         (__ctzDI2): Likewise.
19274         (__popcountSI2): Likewise.
19275         (__popcountDI2): Likewise.
19276         (__paritySI2): Likewise.
19277         (__parityDI2): Likewise.
19278         * libgcc2.h: Add visibility #pragmas.
19279         (__clzDI2): Add prototype.
19280         (__clzSI2): Likewise.
19281         (__ctzSI2): Likewise.
19282         (__ffsDI2): Likewise.
19283         (__ffsSI2): Likewise.
19284         (__ctzDI2): Likewise.
19285         (__popcountSI2): Likewise.
19286         (__popcountDI2): Likewise.
19287         (__paritySI2): Likewise.
19288         (__parityDI2): Likewise.
19289         * unwind-dw2-fde.h: Add visibility #pragmas.
19290         * unwind.h: Likewise.
19291
19292 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
19293             Dale Johannesen  <dalej@apple.com>
19294             Roger Sayle  <roger@eyesopen.com>
19295
19296         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
19297         constants more accurately.  Adjust costs for FMA instructions.
19298         Add cases for most logical and float operations.  Recurse into
19299         most operands.
19300
19301 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
19302
19303         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
19304
19305 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
19306
19307         * ra-build.c (conflicts_between_webs): For webs that cross a call add
19308         conflicts to regs_invalidated_by_call.
19309
19310 2004-08-03  Paul Brook  <paul@codesourcery.com>
19311
19312         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
19313
19314 2004-08-03  Jan Hubicka  <jh@suse.cz>
19315
19316         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
19317         ARRAY_REF argument.
19318
19319 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
19320
19321         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
19322         arm968es, arm10e, arm1020e, arm1022e.
19323         * invoke.texi: Update list of ARM cores.
19324         * arm-tune.md: Regenerate.
19325
19326 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
19327
19328         * arm/gentune.sh: New file.
19329         * arm/t-arm: New file.
19330         * arm/arm-tune.md: New file (autogenerated).
19331         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
19332         * arm.md (attribute tune): Delete.  Include arm-tune.md.
19333
19334 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
19335
19336         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
19337         penultimate parameter.  All callers adjusted.
19338         (struct prefix_list): Remove used_flag_ptr.
19339         (find_a_file): Do not set *pl->used_flag_ptr.
19340         (warn_B, warn_std_ptr): Remove.
19341
19342 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
19343             Mostafa Hagog <mustafa@il.ibm.com>
19344
19345         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
19346
19347 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
19348
19349         * dwarf2out.c (output_call_frame_info): Don't change data format
19350         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
19351         label.  Use 'true' not '1'.
19352         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
19353         required.
19354
19355 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19356
19357         * gdbinit.in: Reflect previous changes to rtunion_def.
19358
19359 2004-08-02  Roger Sayle  <roger@eyesopen.com>
19360
19361         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
19362         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
19363
19364 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19365
19366         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
19367         vec_p_reserve.
19368         * langhooks.h (lang_hooks::builtin_function): Rename parameter
19369         from "class" to "bt_class".
19370
19371 2004-08-02  Paul Brook  <paul@codesourcery.com>
19372
19373         PR rtl-optimization/15068
19374         * flow.c (init_propagate_block_info): Check condition is reversible.
19375
19376 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19377
19378         * gengtype.h (options::info): Change type to const char *.
19379         (enum gc_used_enum): Move out of struct type scope.
19380         * gengtype.c (create_option): Convert initializer for option::info to
19381         appropiate type.
19382         (adjust_field_type, walk_type, write_func_for_structure,
19383         write_root, write_roots): Remove pointless cast.
19384
19385 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
19386
19387         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
19388
19389 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19390
19391         * rtl.h (union rtunion_def): Have all members  start with the
19392         prefix "rt_".
19393         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
19394         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
19395         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
19396         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
19397         access.
19398         * gengtype.c (adjust_field_rtx_def): Likewise.
19399         * rtlanal.c (loc_mentioned_in_p): Likewise.
19400
19401 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
19402
19403         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
19404         Replace uses of mips/elf64.h with mips/elf.h
19405         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
19406         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
19407         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
19408         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
19409         (HANDLE_SYSV_PRAGMA): Delete.
19410         (ASM_OUTPUT_DEF): Fix formatting.
19411         * config/mips/elf64.h: Delete.
19412
19413 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
19414
19415         * config/ia64/ia64.c (got_symbolic_operand): Do require a
19416         symbol+offset operand to have its offset be zero mod 0x3fff
19417         when GOT entries are in use.  Clarify logic in SYMBOL_REF
19418         case.  Clarify comments.
19419         (ia64_expand_load_address): Split a symbol+offset load when
19420         the offset is nonzero mod 0x3fff, not 0x1fff.
19421
19422 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
19423
19424         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
19425         if trying to *store* to a non-offsettable address.
19426         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
19427         a nonoffsettable address.
19428         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
19429         Clean up.
19430         (movti_string): Don't move GPRs to a nonoffsettable address.
19431         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
19432
19433 2004-08-02  Ben Elliston  <bje@au.ibm.com>
19434
19435         PR target/16155
19436         * config/rs6000/altivec.h: Replace typeof with __typeof__.
19437
19438 2004-08-01  Richard Henderson  <rth@redhat.com>
19439
19440         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
19441         variable sized types.
19442
19443 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
19444
19445         * doc/invoke.texi: In the MIPS options section, remove the passage
19446         saying that -mexplicit-relocs is usually disabled for -mabicalls
19447         -fno-unit-at-a-time.
19448         * config/mips/mips.c (override_options): Remove the code that enforced
19449         this rule.
19450
19451 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
19452
19453         * config/mips/mips.md (cprestore): Provide two alternatives, one for
19454         an in-range offset and one for an out-of-range offset.  Wrap the latter
19455         in .set macro/.set nomacro if it's inside a .set nomacro block.
19456
19457 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
19458
19459         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
19460         (mips_restore_gp): Declare.
19461         * config/mips/mips.c (mips_add_offset): Add a scratch register
19462         argument.  Reimplement in rtl only, reusing MIPS16 logic from
19463         mips_output_mi_thunk.
19464         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
19465         to mips_add_offset.
19466         (mips_gp_save_slot): Delete.
19467         (mips_restore_gp): New function.
19468         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
19469         * config/mips/mips.md (exception_receiver): Turn into a
19470         define_insn_and_split.  Use mips_restore_gp to do the split.
19471         (call_internal, call_value_internal, call_value_multiple_internal): Use
19472         mips_restore_gp to restore $gp.
19473
19474 2004-07-31  Andrew Pinski  <apinski@apple.com>
19475
19476         PR other/16842
19477         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
19478
19479 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
19480
19481         * c-decl.c (diagnose_mismatched_decls): Give error for external
19482         redeclaration of identifier declared with no linkage, not just
19483         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
19484         error for redeclaration with no linkage.
19485
19486 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
19487             Fariborz Jahanian <fjahanian@apple.com>
19488
19489         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
19490         non-offsettable addresses even for DImode.
19491         (rs6000_split_multireg_move): Cope with non-offsettable addresses
19492         being moved into multiple GPRs.
19493
19494         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
19495         to 64.
19496         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
19497         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
19498         to 128.
19499         * config/rs6000/darwin-ldouble.c (isless): New macro.
19500         (inf): New macro.
19501         (nonfinite): New macro.
19502         (FPKINF): Delete.
19503         (_xlqadd): Completely rewrite.
19504         (_xlqmul): Correct overflow handling.
19505         (_xlqdiv): Correct overflow handling.
19506         * config/rs6000/darwin-ldouble-format: New file.
19507
19508 2004-07-30  Roger Sayle  <roger@eyesopen.com>
19509             Richard Henderson  <rth@redhat.com>
19510
19511         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
19512         9 into the equivalent lea instruction.
19513
19514 2004-07-30  Richard Henderson  <rth@redhat.com>
19515
19516         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
19517         with DECL_INITIAL if fb_lvalue.
19518         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
19519         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
19520         with <Cxxx>.
19521         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
19522
19523 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
19524
19525         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
19526         pointer escapes through a function call, assume that the
19527         callee will dereference it.
19528         (add_pointed_to_var): Assume that VALUE is always an
19529         ADDR_EXPR.
19530         (collect_points_to_info_r): Only call add_pointed_to_var if
19531         the value is an ADDR_EXPR.
19532
19533 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
19534
19535         * tree-ssa-alias.c (create_alias_map_for): Do not get the
19536         alias set of the inner type of ARRAY_TYPEs.
19537
19538 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
19539
19540         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
19541         setting a non-register to UNDEFINED right before the call to
19542         set_lattice_value.
19543
19544 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19545
19546         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
19547
19548 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
19549
19550         * tree-ssa.c (verify_flow_sensitive_alias_info): When
19551         comparing points-to sets of different pointers, make sure the
19552         second pointer is actually referenced in the code.
19553
19554 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
19555
19556         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
19557         (got_symbolic_operand): Remove unreachable code.
19558         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
19559         setjmp_operand; add entry for tls_symbolic_operand.
19560         * config/ia64/ia64-protos.h: Remove all prototypes of
19561         predicate functions.
19562
19563 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
19564
19565         * c-common.h (lang_post_pch_load): New variable.
19566         * c-pch.c (lang_post_pch_load): Define it.
19567         (c_common_read_pch): Use it.
19568         * cgraphunit.c (record_call_1): Give the front end a chance to
19569         record additional needed entities when a variable is marked as
19570         needed.
19571         * tlink.c (recompile_files): Robustify.
19572         (scan_linker_output): If a symbol is assigned to a file,
19573         but after recompilation is not present there, issue an error
19574         message.
19575
19576 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19577
19578         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
19579         Take orig_loop argument and pass it to set_level.
19580         (schedule_sm): Pass the correct orig_loop to force_move_till.
19581
19582 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19583
19584         * cfgloop.c (update_latch_info): Update dominator of the new block.
19585         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
19586         info.
19587         * dominance.c (verify_dominators): Check that the dominance tree is
19588         connected.
19589         (recount_dominator): Ignore unreachable blocks.
19590         (iterate_fix_dominators): Cleanup old dominance information before
19591         recomputing it.
19592
19593 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
19594
19595         * tree-ssa-operands.c (get_expr_operands): Revert changes
19596         to ADDR_EXPR processing introduced by:
19597             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19598             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
19599
19600 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
19601
19602         * doc/implement-c.texi: Add C90 subclause references.  Point to
19603         preprocessor documentation instead of duplicating it.  Add points
19604         only present in C90.  Fill in documentation for all points.
19605
19606 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19607
19608         * pa.c (output_movb): Correct typo.
19609
19610 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
19611
19612         * ra.h (single_reg_in_regclass): Declare.
19613         * ra.c (single_reg_in_regclass): Define.
19614         (first_hard_reg): New.
19615         (init_ra): Initialize single_reg_in_regclass.
19616         * ra-colorize.c (ok_class): New.
19617         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
19618
19619 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
19620
19621         * gcov-io.h: Allow zero tag as EOF indicator.
19622         (gcov_is_eof): Remove.
19623         (gcov_truncate): Remove.
19624         * gcov-io.c (gcov_seek): Always SEEK_SET.
19625         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
19626         EOF tag.
19627         * coverage.c (read_counts_file): Don't use gcov_is_eof.
19628         * gcov-dump.c (dump_file): Likewise.
19629         * gcov.c (read_graph_file, read_count_file): Likewise.
19630
19631         * c-decl.c (complete_array_type): Don't gratuitously copy
19632         maxindex.  Check it always has a type.
19633
19634 2004-07-29  Steven Bosscher  <stevenb@suse.de>
19635
19636         * rtl.c (currently_expanding_to_rtl): New.
19637         * rtl.h (currently_expanding_to_rtl): Export it.
19638         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
19639
19640         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
19641         inliner hack.
19642         * config/sh/sh.c: Replace rtx_equal_function_value_matters
19643         with currently_expanding_to_rtl.
19644         * config/sh/sh.md: Likewise.
19645         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
19646
19647 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
19648
19649         Introduce sh2a support.
19650         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
19651         * config.gcc: Build multilibs for sh2a and sh2a-single by
19652         default.
19653         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
19654         default.  Split their tests out of the corresponding SH4
19655         multilibs.
19656         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
19657         multilibs for SH2a.
19658         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
19659         * config.gcc: Handle sh2a multilibs and cpu selection.
19660         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
19661         * config/sh/t-mlib-sh2a: New.
19662         * config/sh/t-mlib-sh2a-nofpu: New.
19663         * config/sh/t-mlib-sh2a-single: New.
19664         * config/sh/t-mlib-sh2a-single-only: New.
19665         2004-07-09  Nick Clifton  <nickc@redhat.com>
19666         Issue 43400
19667         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
19668         -ml and -m2a are used together.
19669         2004-03-23  DJ Delorie  <dj@redhat.com>
19670         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
19671         when we have a double-sized FPU.
19672         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
19673         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
19674         is set.
19675         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
19676         -msh2a-single and -msh2a-single-only
19677         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
19678         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
19679         is set.
19680         2004-02-20  DJ Delorie  <dj@delorie.com>
19681         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
19682         2004-02-20  Fred Fish <fnf@redhat.com>,
19683         Corinna Vinschen <vinschen@redhat.com>
19684         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
19685         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
19686         2004-02-18  DJ Delorie  <dj@redhat.com>
19687         * config/sh/sh.c (broken_move): Add support for movi20.
19688         * config/sh/sh.h: Likewise.
19689         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
19690         * config/sh/sh.md (udivsi3_sh2a): New.
19691         (udivsi3): Call it.
19692         (divsi3_sh2a): New.
19693         (divsi3): Call it.
19694         (mul_r): New.
19695         (ashlsi3_sh2a): New.
19696         (ashrsi3_sh2a): New.
19697         (lshrsi3_sh2a): New.
19698         (movsi_i): Disable for sh2a.
19699         (movsi_ie): Add movi20.
19700         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
19701         sh2a, for -m2a-nofpu mode.
19702         2004-02-13  DJ Delorie  <dj@redhat.com>
19703         * config/sh/lib1funcs.asm: Handle double vs single better.
19704         * config/sh/sh.h: Likewise.
19705         2004-02-09  DJ Delorie  <dj@redhat.com>
19706         * config/sh/crt1.asm: Add support for sh2a.
19707         * config/sh/elf.h: Likewise.
19708         * config/sh/lib1funcs.asm: Likewise.
19709         * config/sh/sh.c: Likewise.
19710         * config/sh/sh.md: Likewise.
19711         * config/sh/sh.h: Likewise.
19712         * config/sh/t-sh: Likewise.
19713
19714 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
19715
19716         * config/frv/frv.md (movqi_internal, movhi_internal,
19717         movsi_internal): Add backup alternatives for memory inputs.
19718
19719 2004-07-28  Matt Austern  <austern@apple.com>
19720
19721         * config/darwin.c (darwin_one_byte_bool): New global variable.
19722         * config/darwin.h (darwin_one_byte_bool): Declare.
19723         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
19724         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
19725         value of darwin_one_byte_bool.
19726         * doc/invoke.texi: Document -mone-byte-bool flag.
19727
19728 2004-07-28  Eric Christopher  <echristo@redhat.com>
19729
19730         * c-common.c (c_common_unsafe_for_reeval): Delete.
19731         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
19732         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
19733         * calls.c (fix_unsafe_tree): Delete.
19734         (expand_call): Delete code which used above.
19735         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
19736         * expr.c (expand_expr_real_1): Ditto.
19737         * fold-const.c (non_lvalue): Ditto.
19738         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
19739         (lhd_unsafe_for_reeval): Ditto.
19740         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
19741         * langhooks.h (unsafe_for_reeval): Ditto.
19742         (unsave_expr_now): Adjust comment.
19743         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
19744         (estimate_num_insns_1): Ditto.
19745         * tree-pretty-print.c (dump_generic_node): Ditto.
19746         * tree.c (expr_align): Ditto.
19747         (unsave_expr): Delete.
19748         (unsafe_for_reeval): Ditto.
19749         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
19750         * tree.def (UNSAVE_EXPR): Delete.
19751         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
19752
19753 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
19754
19755         * tree.h (enum tls_model): Move ...
19756         * coretypes.h: ... here.
19757
19758 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
19759
19760         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
19761
19762 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
19763
19764         * cse.c (validate_canon_reg): New function, split out from...
19765         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
19766
19767 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19768
19769         * tree-ssa-alias.c (maybe_create_global_var): Don't just
19770         return if .GLOBAL_VAR has been created.
19771
19772 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19773
19774         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
19775         every variable that may have aliases, not just tags.
19776
19777 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
19778
19779         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
19780         move_from_CR_eq_bit.
19781         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
19782
19783
19784         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
19785         e500_flip_eq_bit.
19786
19787         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
19788         output_e500_flip_eq_bit.
19789
19790         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
19791         output_e500_flip_eq_bit.
19792         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
19793         output_e500_flip_eq_bit.
19794         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
19795         (print_operand): case D.  Get to EQ bit.
19796
19797 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
19798
19799         * gcov.c (function_summary): Add missing \n.
19800
19801 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
19802
19803         Introduce sh4a support.
19804         * config.gcc: Handle sh4a multilibs and cpu selection.
19805         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
19806         * config/sh/t-mlib-sh4a: New.
19807         * config/sh/t-mlib-sh4al: New.
19808         * config/sh/t-mlib-sh4a-nofpu: New.
19809         * config/sh/t-mlib-sh4a-single: New.
19810         * config/sh/t-mlib-sh4a-single-only: New.
19811         2004-02-20  DJ Delorie  <dj@redhat.com>
19812         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
19813         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
19814         2003-08-22  Eric Christopher  <echristo@redhat.com>
19815         * config/sh/sh4a.md: Update for chip errata.
19816         2003-08-07  Eric Christopher  <echristo@redhat.com>
19817         * config/sh/sh4a.md: New file. sh4a processor description.
19818         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
19819         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
19820         of -m4a-nofpu.
19821         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
19822         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
19823         * doc/invoke.texi (SH Options): Document -m4al.
19824         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
19825         * config/sh/sh.c (expand_block_move): Remove commented-out code
19826         checked in by mistake.
19827         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
19828         single elements from SFmode vectors.
19829         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
19830         register.
19831         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
19832         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
19833         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
19834         sh_fsca_int2sf): Remove variable declarations.
19835         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
19836         sh_fsca_int2sf): New functions.
19837         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
19838         sh_fsca_int2sf_rtx): New static variables.
19839         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
19840         sh_fsca_int2sf): Declare.
19841         * config/sh/sh.md: Adjust.
19842         * doc/invoke.texi (SH Options): Document new options.
19843         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
19844         compatibility from SH4 code.
19845         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
19846         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
19847         early.
19848         (memory_movsrc_operand): Renamed to...
19849         (unaligned_load_operand): ... this.  Simplified.
19850         * config/sh/sh.h (PREDICATE_CODES): Adjust.
19851         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
19852         input operand to SImode, and adjust the others.  Introduce
19853         post-increment by peephole.
19854         * config/sh/sh.c (expand_block_move): Give the target address the
19855         same mode as the temp reg.
19856         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
19857         copying.
19858         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
19859         Introduce support for SH4a.
19860         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
19861         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
19862         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
19863         sh_fsca_int2sf): New.
19864         (sh_init_builtins): Initialize them.
19865         (print_operand): Support `d'.
19866         (expand_block_move): Use movua if src is misaligned.
19867         (memory_movsrc_operand): New.
19868         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
19869         and one of the SH4 macros.
19870         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
19871         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
19872         SELECT_SH4A_SINGLE): New.
19873         (TARGET_NONE): Add SH4A_BIT.
19874         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
19875         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
19876         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
19877         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
19878         (enum processor_type): Added PROCESSOR_SH4A.
19879         (PREDICATE_CODES): Add memory_movsrc_operand.
19880         * config/sh/sh.md: Removed unused variables.
19881         (attr cpu): Add sh4a.
19882         (attr type): Add movua, fsrra and fsca.
19883         (prefetch): New, for SH4.
19884         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
19885         (toggle_sz): Set type to fp.
19886         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
19887         (movua, extv, extzv): New.
19888         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
19889         and 4a-single-only.
19890
19891 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19892
19893         * tree-optimize.c (init_tree_optimization_passes): Schedule
19894         pass_may_alias right after the program is renamed into SSA.
19895         * tree-pass.h (PROP_alias): Define.
19896         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
19897         * tree-sra.c (pass_sra): Likewise.
19898         * tree-ssa-ccp.c (pass_ccp): Likewise.
19899         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
19900         * tree-ssa-dce.c (pass_dce): Likewise.
19901         * tree-ssa-dom.c (pass_dominator): Likewise.
19902         * tree-ssa-dse.c (pass_dse): Likewise.
19903         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
19904         * tree-ssa-loop-ch.c (pass_ch): Likewise.
19905         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
19906         * tree-ssa-pre.c (pass_pre): Likewise.
19907         * tree-tailcall.c (pass_tail_recursion): Likewise.
19908         * tree-ssa.c (pass_redundant_phi): Likewise.
19909         * tree-ssa-alias.c (aliases_computed_p): Remove.
19910         Update all users.
19911         (init_alias_info): Do not mark all type tags for renaming
19912         unconditionally.
19913         Clear may_aliases from every symbol.
19914         (setup_pointers_and_addressables): If a pointer has not been
19915         dereferenced and it had a type tag, clear it and mark the old
19916         tag for renaming.
19917
19918 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
19919
19920         PR tree-optimization/16705
19921         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
19922         .GLOBAL_VAR.
19923
19924 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19925
19926         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
19927         check.
19928
19929         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
19930         don't make another one.
19931
19932         PR optimization/15077
19933         * function.h (struct function): Add field saved_static_chain_decl.
19934         Fix comment for static_chain_decl.
19935         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
19936         * tree-inline.h (save_body): Add new arg.
19937         * tree-optimize.c (tree_rest_of_compilation): Handle saving
19938         static_chain_decl.
19939
19940 2004-07-27  Richard Henderson  <rth@redhat.com>
19941
19942         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
19943         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
19944         is_gimple_addressable.
19945         * tree-gimple.c (is_gimple_addressable): Rename from
19946         is_gimple_addr_expr_arg; accept INDIRECT_REF.
19947         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
19948         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
19949         rename to is_gimple_addressable.
19950
19951 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
19952
19953         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
19954
19955 2004-07-27  Richard Henderson  <rth@redhat.com>
19956
19957         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
19958         before rounding.
19959
19960 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
19961
19962         * libgcc2.c: Change all conditionals testing
19963         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
19964         * libgcc2.h: Likewise.
19965         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
19966         TYPE_PRECISION of float80_type to 80.
19967         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
19968         of fpreg_type and float80_type to 80.
19969         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
19970         * config/m68k/netbsd-elf.h:
19971         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
19972         to evaluate to 80 whenever they would formerly have evaluated to 96.
19973         * config/i386/sco5.h: Remove unnecessary redefinition of
19974         LONG_DOUBLE_TYPE_SIZE.
19975         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
19976         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
19977         XFmode, with a bitsize of 80.  Update commentary.
19978         * config/ia64/ia64-modes.def: Likewise.
19979         * config/m68k/m68k-modes.def: Likewise.
19980
19981 2004-07-27  Steven Bosscher  <stevenb@suse.de>
19982
19983         * cfgexpand.c (tree_expand_cfg): Fix comment.
19984
19985         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
19986         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
19987         Remove.
19988         (prepare_function_start): Don't set rtx_equal_function_value_matters.
19989         * integrate.c (copy_rtx_and_substitute): Don't test for it.
19990         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
19991         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
19992         here again.  Update leading comment.
19993         * rtl.c (rtx_equal_function_value_matters): Remove.
19994         (rtx_equal_p): Don't test for it.
19995         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
19996         Likewise.
19997
19998         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
19999         * rtl.c (note_insn_name): Likewise.
20000         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
20001         * final.c (final_scan_insn): Likewise.
20002
20003         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
20004         * passes.c (rest_of_handle_eh): Do it here.
20005
20006         * stmt.c (struct nesting): Remove struct nesting block member.
20007         (struct stmt_status): Remove x_block_start_count field.
20008         (current_block_start_count): Remove.
20009
20010 2004-07-27  Brian Booth  <bbooth@redhat.com>
20011
20012         * tree-optimize.c (register_one_dump_file): Update condition that uses
20013         static_pass_number.
20014         (dup_pass_1): Replace with...
20015         (next_pass_1): This.
20016         (NEXT_PASS): Call next_pass_1.
20017         (DUP_PASS): Remove.
20018         (init_tree_optimization_passes): Remove uses of DUP_PASS.
20019         (execute_one_pass): Update condition that uses
20020         static_pass_number.
20021         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
20022         integer.
20023
20024 2004-07-27  Nick Clifton  <nickc@redhat.com>
20025
20026         * config/m32r/m32r.c: Include integrate.h in order to get the
20027         prototype for get_hard_reg_initial_val().
20028
20029         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
20030         and tidy up indentation.
20031         (final_presence_set): Use absence_set instead, so that if there is
20032         nothing in the "o" pipe the "s" pipe can be scheduled.
20033
20034 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
20035
20036         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
20037         don't have PT_VARS nor PT_MALLOC set.
20038         Clear name tag from pointers that have not been dereferenced.
20039         (set_pt_anything, set_pt_malloc): Forward declare.
20040         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
20041         not type compatibility when determining if a pointer can be
20042         copy propagated.
20043
20044 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
20045
20046         * expr.h (canonicalize_condition, get_condition): Add an int argument.
20047         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
20048         it to check whether the condition is still valid at the jump insn.
20049         * ifcvt.c (noce_get_condition): Likewise.
20050         (noce_get_alt_condition): Update call to canonicalize_condition.
20051         * loop-iv.c (simplify_using_initial_values): Update call to
20052         get_condition.  Remove FIXME.
20053         (check_simple_exit): Update call to get_condition.
20054         * loop-unswitch.c (may_unswitch_on): Likewise.
20055         * loop.c (check_dbra_loop): Likewise.
20056         (canonicalize_condition, get_condition): Add an argument to say whether
20057         the condition must still be valid at INSN.
20058         (get_condition_for_loop): Update call to get_condition.  Require that
20059         the condition be valid at INSN.
20060         * predict.c (estimate_probability): Update call to get_condition.
20061         Remove unused earliest parameter.
20062         (expected_value_to_br_prob): Update call to canonicalize_condition.
20063
20064 2004-07-26  Eric Christopher  <echristo@redhat.com>
20065
20066         * tree-dfa.c (add_referenced_var): Register initializers of global
20067         variables.
20068
20069 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
20070
20071         * config/i386/i386.c (function_arg): Always treat 8-
20072         and 16-byte wide vectors the same, even if MMX/SSE
20073         are disabled.
20074         (contains_128bit_aligned_vector_p): Add comment.
20075
20076 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
20077
20078         * ra.h (enum node_type): Rename to:
20079         (enum ra_node_type).
20080         * ra-colorize.c: Likewise.
20081
20082 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
20083
20084         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
20085         after simplifying the jump.
20086
20087 2004-06-26  Richard Henderson  <rth@redhat.com>
20088
20089         * calls.c (combine_pending_stack_adjustment_and_call): Make
20090         preferred_unit_stack_boundary argument unsigned.  Make
20091         unadjusted_alignment unsigned.
20092         (expand_call): Make preferred_stack_boundary and
20093         preferred_unit_stack_boundary variables unsigned.
20094         * function.c (assign_stack_local_1): Make alignment unsigned.
20095         * function.h (struct function): Make stack_alignment_needed,
20096         preferred_stack_boundary unsigned.
20097         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
20098         (ix86_compute_frame_layout): Make stack_alignment_needed,
20099         preferred_alignment variables unsigned.
20100         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
20101
20102 2004-07-26  Tom Tromey  <tromey@redhat.com>
20103
20104         * tree.h: Fix typo in comment.
20105
20106 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
20107
20108         PR bootstrap/12804
20109         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
20110         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
20111         (ggc_free): Remove incorrect freeing.
20112         (sweep_pages): Advance PP for large pages.  Fix indentation.
20113
20114 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
20115
20116         PR rtl-optimization/16643
20117         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
20118         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
20119         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
20120         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
20121         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
20122         * function.c (thread_prologue_and_epilogue_insns): Likewise.
20123         * rtl.h (tracer): Add a flags parameter.
20124         * tracer.c (tracer): Pass it to cfg_layout_initialise.
20125         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
20126         (rest_of_handle_reorder_blocks): Update calls to tracer and
20127         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
20128         (rest_of_handle_tracer): Pass 0 to tracer.
20129         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
20130
20131 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
20132
20133         PR target/16239
20134         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
20135         f->f.
20136
20137 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
20138
20139         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
20140         (BINFO_BASE_ACCESS): Adjust.
20141         (BINFO_BASE_ACCESS_APPEND): New.
20142         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
20143         * dbxout.c (dbxout_type): Adjust binfo access accessing.
20144         * dwarf2out.c (gen_member_die): Likewise.
20145         * tree-dump.c (deque_and_dump): Likewise.
20146
20147 2004-07-26  Falk Hueffner  <falk@debian.org>
20148
20149         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
20150         costs.
20151
20152 2004-07-25  Roger Sayle  <roger@eyesopen.com>
20153
20154         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
20155         value off of the stack if TARGET_USE_FFREEP.
20156
20157 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
20158
20159         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
20160         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
20161         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
20162         check on invocation of XRESIZEVEC ().
20163
20164 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
20165
20166         * c-common.c (disable_builtin_function): Rename variable n to
20167         new_disabled_builtin.
20168         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
20169         Rename local variable old to old_decl.
20170         * gensupport.c (shift_output_template): Rename parameter old to src.
20171         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
20172         old_rtx and newx to new_rtx.
20173
20174 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
20175
20176         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
20177         of c-pragma.h.
20178         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
20179         enum cpp_ttype.
20180         * c-lex.c: Likewise.
20181
20182 2004-07-25  Roger Sayle  <roger@eyesopen.com>
20183
20184         * fold-const.c (constant_boolean_node): Make extern.
20185         (make_range): Wrap long lines.
20186         (fold_cond_expr_with_comparison): Remove unnecessary call to
20187         pedantic_non_lvalue.  Add missing calls to fold_convert.
20188         (fold_truthop): Add missing calls to fold_convert.
20189         (fold): Likewise.
20190         * tree.h (constant_boolean_node): Add prototype here.
20191         * builtins.c (expand_builtin_strncmp): Add missing calls to
20192         fold_convert.
20193         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
20194         Call fold_convert and constant_boolean_node to correct types.
20195         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
20196         missing call to fold_convert to correct types.
20197
20198 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
20199             Brian Ryner  <bryner@brianryner.com>
20200
20201         PR c++/9283
20202         PR c++/15000
20203         * c-common.c (c_common_attribute_table): Allow
20204         handle_visibility_attribute to be called for types.
20205         (handle_visibility_attribute) When given a type, set the visibility
20206         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
20207         so that we can check later whether the attribute was present. Added
20208         warning if attribute applied to non class type.
20209         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
20210         decls and checking that they are consistent.
20211         * common.opt: Added -fvisibility.
20212         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
20213         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
20214         * flags.h, tree.h: Added assorted support defines for overall patch
20215         * opts.c: Added parsing support for -fvisibility.
20216         * tree.c (build_decl): Set visibility for all decls to be whatever
20217         is in force at that time.
20218         * varasm.c (default_binds_local_p_1): Reworked logic determining
20219         when to make a symbol locally bound.
20220         * doc/invoke.texi: Added documentation for -fvisibility and
20221         -fvisibility-inlines-hidden.
20222
20223 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20224
20225         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
20226         * c-common.c: Add missing casts from void * to other types.
20227         * c-decl.c: Likewise.
20228         * c-format.c: Likewise.
20229         * c-lex.c: Likewise.
20230         * c-pragma.c: Likewise.
20231         * c-typeck.c: Likewise.
20232         * defaults.h: Likewise.
20233         * genconstants.c: Likewise.
20234         * gengtype-lex.l: Likewise.
20235         * genmodes.c: Likewise.
20236         * read-rtl.c: Likewise.
20237         * rtl.c: Likewise.
20238
20239 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20240
20241         * bitmap.c: Use type-safe memory allocation macros from libiberty.
20242         * c-common.c: Likewise.
20243         * c-decl.c: Likewise.
20244         * c-lang.c: Likewise.
20245         * c-lex.c: Likewise.
20246         * c-opts.c: Likewise.
20247         * c-parse.in: Likewise.
20248         * c-typeck.c: Likewise.
20249         * genconditions.c: Likewise.
20250         * gengtype-lex.l: Likewise.
20251         * gengtype-yacc.y: Likewise.
20252         * gengtype.c: Likewise.
20253         * genmodes.c: Likewise.
20254         * gensupport.c: Likewise.
20255         * read-rtl.c: Likewise.
20256         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
20257         htab_find_slot().
20258
20259 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20260
20261         * c-decl.c (groktypename, groktypename_in_param_context): Rename
20262         variable typename to type_name.
20263         * c-lex.c (interpret_float): Likewise.
20264
20265 2004-07-25  Roger Sayle  <roger@eyesopen.com>
20266
20267         * convert.c (convert_to_real, convert_to_integer,
20268         convert_to_complex): Replace calls to build with calls to buildN.
20269         * coverage.c (tree_coverage_counter_ref): Likewise.
20270         * dojump.c (do_jump): Likewise.
20271         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
20272         * emit-rtl.c (component_ref_for_mem_expr,
20273         set_mem_attributes_minus_bitpos): Likewise.
20274         * explow.c (update_nonlocal_goto_save_area): Likewise.
20275         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
20276         expand_mult_add): Likewise.
20277         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
20278         store_constructor, get_inner_reference, expand_expr_real_1,
20279         try_casesi, try_tablejump): Likewise.
20280         * function.c (expand_function_start): Likewise.
20281         * stmt.c (emit_case_bit_tests, expand_end_case_type,
20282         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
20283         * stor-layout.c (place_union_field, layout_type): Likewise.
20284         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
20285         * varasm.c (copy_constant): Likewise.
20286
20287 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20288
20289         * c-common.c: Rename all identifiers named `new'.
20290         * c-decl.c: Likewise.
20291         * gensupport.c: Likewise.
20292         * simplify-rtx.c: Likewise.
20293         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
20294         with XNEW().
20295         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
20296         with XNEWVEC().
20297
20298 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
20299
20300         PR c/15360
20301         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
20302         declarations until after calling pushdecl.
20303         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
20304         "extern" and not on whether the declaration is initialized.
20305
20306 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
20307
20308         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
20309         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
20310         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
20311         "cpplib.h", "c-pragma.h", "c-common.h".
20312         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
20313         (solaris_register_pragmas): New functions.
20314         * config/sol2-protos.h: New file.
20315         * config/sol2.c: New file.
20316         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
20317         (REGISTER_TARGET_PRAGMAS): New macros.
20318         (solaris_pending_aligns, solaris_pending_inits)
20319         (solaris_pending_finis): New variables.
20320         * config/t-sol2 (sol2-c.o): Update dependencies.
20321         (sol2.o): New rule.
20322         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
20323         SUBTARGET_INSERT_ATTRIBUTES.
20324         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
20325         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
20326         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
20327         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
20328         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
20329         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
20330         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
20331         * config/sparc/sparc.c (sparc_attribute_table): New.
20332         (TARGET_INSERT_ATTRIBUTES): Define in terms of
20333         SUBTARGET_INSERT_ATTRIBUTES.
20334         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
20335         is defined.
20336         * doc/extend.texi (Solaris Pragmas): New section.
20337
20338 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20339
20340         * c-common.c: Rename all identifiers named `class' to `cl'.
20341         * c-common.h: Likewise.
20342         * c-parse.in: Likewise.
20343         * c-typeck.c: Likewise.
20344         * genmodes.c: Likewise.
20345         * real.c: Likewise.
20346         * real.h: Likewise.
20347         * recog.c: Likewise.
20348         * recog.h: Likewise.
20349         * regrename.c: Likewise.
20350         * tree.h: Likewise.
20351         * c-common.c (builtin_function_2): Change type of 5th parameter from
20352         int to enum built_in_function. Change type of 8th parameter from int
20353         to bool.
20354         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
20355         with GGC_CNEW().
20356         * c-typeck.c (convert_arguments): Change type of formal_prec from
20357         int to unsigned int.
20358         * genmodes.c (blank_mode): Make a few negative constants unsigned.
20359         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
20360         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
20361         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
20362         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
20363         iterator to for_all_modes () instead of an enum because enums can't
20364         be incremented in C++.
20365
20366
20367 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
20368
20369         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
20370         hard registers.
20371
20372 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20373
20374         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
20375         Handle ARRAY_RANGE_REF like ARRAY_REF.
20376
20377 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
20378
20379         * c-typeck.c (digest_init): Don't allow arrays of signed or
20380         unsigned variants of wchar_t to be initialized by wide string
20381         constants.  Do allow arrays of enumerated types compatible with
20382         wchar_t to be initialized by wide string constants.  Refine tests
20383         distinguishing wide and narrow strings and arrays.  Give specific
20384         error for arrays of other integer types initialized by string
20385         constants.
20386         (output_init_element, process_init_element): Check for
20387         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
20388         initializing with string constants.
20389
20390 2004-07-25  Richard Henderson  <rth@redhat.com>
20391
20392         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
20393         on the RESULT_DECL.
20394         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
20395         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
20396         DECL_IGNORED_P to new decl.
20397
20398 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
20399
20400         * config/ia64/ia64.c (general_xfmode_operand)
20401         (destination_xfmode_operand): Delete.
20402         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
20403         * config/ia64/ia64.md (*movxf_internal): Use general_operand
20404         and destination_operand.
20405
20406 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
20407
20408         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
20409         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
20410
20411 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
20412             Zack Weinberg  <zack@codesourcery.com
20413
20414         PR 16684
20415         * c-decl.c (diagnose_mismatched_decls): Don't issue a
20416         redundant-declaration warning the first time a builtin is
20417         declared explicitly.
20418
20419 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20420
20421         * tree.h (staticp): Change return type to bool.
20422
20423 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20424
20425         * c-common.c (c_staticp): Last episode of the staticp saga.
20426
20427 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20428
20429         * c-common.h (c_staticp): Change return type from int to bool.
20430         * tree.c (staticp): Likewise.
20431         * langhooks.h (staticp): Likewise.
20432
20433 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20434
20435         * langhooks-def.h (lhd_staticp): Change return type from int to
20436         bool in prototype to match definition.
20437
20438 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20439
20440         * system.h (bool, true, false): Don't redefine as preprocessor macros
20441         in C++.
20442
20443 2004-07-24  Roger Sayle  <roger@eyesopen.com>
20444
20445         * expmed.c (init_expmed): A signed modulus by a power of two is
20446         considered cheap if its less than or equal to four instructions.
20447
20448 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20449
20450         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
20451         GGC_CNEWVAR): New macros.
20452
20453 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
20454
20455         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
20456         lists.
20457         * c-decl.c: Likewise.
20458         * c-format.c: Likewise.
20459         * c-lex.c: Likewise.
20460         * c-opts.c: Likewise.
20461         * c-pragma.c: Likewise.
20462         * c-typeck.c: Likewise.
20463         * gencheck.c: Likewise.
20464         * genconditions.c: Likewise.
20465         * genconfig.c: Likewise.
20466         * genflags.c: Likewise.
20467         * gengtype.c: Likewise.
20468         * gensupport.c: Likewise.
20469         * ggc-none.c: Likewise.
20470         * langhooks.c: Likewise.
20471         * statistics.h: Likewise.
20472         * stub-objc.c: Likewise.
20473         * java/decl.c: Likewise.
20474
20475 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
20476
20477         * config/m68k/m68k.c (output_scc_di): Fix coding style.
20478         (symbolic_operand): Fix prototype.
20479         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
20480         * config/m68k/m68k.md: Add constants for registers a0 and sp and
20481         use them, change from the "{...}" syntax to the simpler {...}
20482         syntax.
20483         (*cfv4_extendqisi2): Fix destination predicate.
20484         * config/m68k/m68k-protos.h: Remove various declarations also
20485         generated via PREDICATE_CODES.
20486
20487 2004-07-23  Mike Stump  <mrs@apple.com>
20488
20489         * c-typeck.c (convert_for_assignment): Tightened up pointer
20490         converstions that differ in signedness.
20491
20492 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
20493
20494         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
20495
20496 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20497
20498         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
20499         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
20500
20501         * gimplify.c (gimplify_compound_lval): Check for no handled
20502         operations, rather than checking for explicit list of nodes.
20503         (is_gimple_addr_expr_arg_or_indirect): New function.
20504         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
20505         redundant setting of TREE_INVARIANT.
20506         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
20507         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
20508
20509 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
20510
20511         PR tree-optimization/16688
20512         PR tree-optimization/16689
20513         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
20514         unnecessary initialization of 'tag'.
20515         (get_tmt_for): Check that the new type tag has the same alias
20516         set as the pointed-to type.
20517         (group_aliases): Only regular variables need to be removed
20518         from the alias set of a name tag.
20519         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
20520         propagation if the two types are not compatible.
20521         (merge_alias_info): Rename from replace_ssa_names_ann.
20522         Add more checking.
20523         (replace_exp_1): If both arguments are SSA_NAMEs, check that
20524         the propagation can be done.
20525         Only call merge_alias_info on pointers.
20526         (propagate_value): Likewise.
20527         * tree-ssa-copyrename.c: Include langhooks.h.
20528         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
20529         to do the merging.
20530         Do not coalesce variables with incompatible types.
20531         (rename_ssa_copies): Call replace_ssa_name_symbol.
20532         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
20533         the same type as the underlying _DECL.
20534         * tree-ssanames.c (replace_ssa_name_symbol): New function.
20535         * tree.h (replace_ssa_name_symbol): Declare.
20536
20537 2004-07-23  Richard Henderson  <rth@redhat.com>
20538
20539         PR c++/16277
20540         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
20541         unshare it properly.
20542         (gimplify_modify_expr_rhs): Push assignment from a conditional into
20543         the conditional for all non-register types.
20544
20545 2004-07-23  Richard Henderson  <rth@redhat.com>
20546
20547         * expr.c (expand_expr_real_1): Don't handle non-local variables.
20548         * expr.h (fix_lexical_addr): Remove.
20549         * function.c (NEED_SEPARATE_AP): Remove.
20550         (fix_lexical_addr): Remove.
20551         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
20552         not null decl_function_context.
20553         (create_alias_vars): Likewise.
20554         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
20555         (simple_goto_p): Likewise.
20556         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
20557         * tree-ssa-ccp.c (get_default_value): Likewise.
20558         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
20559         * tree.c (needs_to_live_in_memory): Likewise.
20560         * tree-flow-inline.h (may_be_aliased): Move...
20561         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
20562         when TREE_STATIC variables may be addressable.
20563
20564 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
20565
20566         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
20567
20568 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
20569
20570         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
20571         bitmap contents if GENERATOR_FILE is defined.
20572         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
20573         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
20574
20575 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
20576
20577         * c-decl.c (start_function): Form composite type of function types
20578         rather than copying type from previous prototype declaration.
20579
20580 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
20581
20582         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
20583         the const qualifier for the second argument in the C++ functions.
20584
20585         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
20586         specific pointer types.
20587
20588         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
20589         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
20590         for vector bool and/or vector pixel, add C++ and C missing support.
20591         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
20592         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
20593         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
20594         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
20595         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
20596         missing C++ and C support for vector bool and/or vector pixel.
20597         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
20598         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
20599         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
20600         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
20601         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
20602         C++ and C types used for vector bool and/or vector pixel.
20603         (vec_st, vec_stl): Add C++ support for vector pixel.
20604         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
20605         (vec_all_ne): Add C++ support for vector pixel.
20606
20607         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
20608         (vec_vmulesb): Add missing C++ function.
20609         (vec_perm): Fix type of third argument in C++ function.
20610         (vec_vsum4shs): Fix C++ function name.
20611         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
20612         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
20613         argument passed to the error handler in C macro.
20614         (vec_nmsub): Remove extra parens around argument names in C macro.
20615         (vec_packpx): Add missing parens in C macro.
20616
20617 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
20618
20619         * machmode.def: Remove vector modes.
20620         * config/alpha/alpha-modes.def: Add supported vector modes.
20621         * config/arm/arm-modes.def: Likewise.
20622         * config/frv/frv-modes.def: Likewise.
20623         * config/i386/i386-modes.def: Likewise.
20624         * config/rs6000/rs6000-modes.def: Likewise.
20625         * config/sh/sh-modes.def: Likewise.
20626
20627 2004-07-23  Matthias Klose  <doko@debian.org>
20628
20629         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
20630         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
20631         * config.h: Regenerate.
20632         * configure: Likewise.
20633
20634 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
20635
20636         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
20637         generated SYMBOL_REFs for labels.
20638         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
20639         Change prototype.
20640         (machopic_stub_name): Remove.
20641         (machopic_indirection_name): New function.
20642         (machopic_mcount_stub_name): Likewise.
20643         (machopic_classify_name): Remove.
20644         (machopic_function_base_sym): New function.
20645         (machpoic_classify_symbol): Likewise.
20646         (machopic_classify_ident): Remove.
20647         (machopic_define_ident): Likewise.
20648         (machopic_define_name): Likewise.
20649         (machopic_name_defined_p): Likewise.
20650         (machopic_ident_defined_p): Likewise.
20651         (darwin_strip_name_encoding): Likewise.
20652         (machopic_define_symbol): New function.
20653         * config/darwin.c (hashtab.h): Include.
20654         (machopic_defined_list): Remove.
20655         (machopic_classify_ident): Likewise.
20656         (machopic_classify_name): Likewise.
20657         (machopic_ident_defined_p): Likewise.
20658         (machopic_define_ident): Likewise.
20659         (machopic_define_name): Likewise.
20660         (machopic_symbol_defined_p): New function.
20661         (machopic_classify_symbol): Likewise.
20662         (machopic_data_defined_p): Use machopic_classify_symbol.
20663         (machopic_define_symbol): New function.
20664         (machopic_function_base_sym): New function.
20665         (machopic_non_lazy_pointers): Remove.
20666         (machopic_non_lazy_ptr_name): Likewise.
20667         (machopic_stubs): Likewise.
20668         (machopic_stub_name): Likewise.
20669         (NON_LAZY_POINTER_SUFFIX): New macro.
20670         (STUB_SUFFIX): Likewise.
20671         (machopic_indirection): New structure.
20672         (machopic_indirections): New variable.
20673         (machopic_indirection_hash): New function.
20674         (machopic_indirection_eq): Likewise.
20675         (machopic_indirection_name): Likewise.
20676         (machopic_mcount_stub_name): New function.
20677         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
20678         hash table.
20679         (machopic_indirect_data_reference): Rework to use new functions.
20680         (machopic_indirect_call_target): Likewise.
20681         (machopic_legitimize_pic_address): Likewise.
20682         (machopic_output_indirection): New function.
20683         (machopic_finish): Use it.
20684         (machopic_operand_p): Rework to use new functions.
20685         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
20686         (darwin_strip_name_encoding): Remove.
20687         (update_non_lazy_ptrs): Remove.
20688         (update_stubs): Likewise.
20689         (darwin_non_lazy_pcrel): Use new functions.
20690         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
20691         (ASM_OUTPUT_LABELREF): Likewise.
20692         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
20693         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
20694         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
20695         (TARGET_STRIP_NAME_ENCODING): Do not use
20696         darwin_strip_name_encoding.
20697         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
20698         darwin_strip_name_encoding.
20699         * config/i386/darwin.h (FUNCTION_PROFILER): Use
20700         machopic_mcount_stub_name.
20701         * config/i386/i386.c (x86_output_mi_thunk): Use
20702         machopic_indirection_name, not machopic_stub_name.
20703         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
20704         machopic_function_base_sym.
20705         (print_operand): Use machopic_classify_symbol.
20706         (rs6000_emit_prologue): Use machopic_function_base_sym.
20707         (output_profile_hook): Do not use machopic_stub_name.
20708         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
20709
20710 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20711
20712         PR c/7284
20713         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
20714         as multiplication.
20715
20716 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20717
20718         * doc/implement-c.texi: New file.
20719         * doc/extend.texi (C Implementation): Move to there.
20720         * doc/gcc.texi: Include implement-c.texi.
20721         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
20722
20723 2004-07-22  Jason Merrill  <jason@redhat.com>
20724
20725         * integrate.c (copy_decl_for_inlining): Remove invisible reference
20726         handling.
20727         * tree-inline.c (setup_one_parameter): Likewise.
20728
20729 2004-07-22  Brian Booth  <bbooth@redhat.com>
20730
20731         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
20732         (substitute_and_fold): Propigate into VUSE operands when possible.
20733         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
20734         (cp_lattice_meet): Handle merging of latticevalues when
20735         UNKNOWN_VAL is present.
20736         (visit_stmt): Visit assignments with V_MUST_DEFs.
20737         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
20738         (ccp_fold): Deal with RHS' that are constant and virtual.
20739         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
20740         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
20741         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
20742         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
20743         computing immediate uses.
20744         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
20745         transition.
20746         (replace_vuse_in): New function.
20747         (likely_value): Add check of vuse operands.
20748         (get_default_value): Set the default value of virtually defined
20749         variables to UKNOWN_VAL instead of VARYING.
20750
20751 2004-07-22  Richard Henderson  <rth@redhat.com>
20752
20753         * expr.c (emit_push_insn): Don't use set_mem_attributes.
20754
20755 2004-07-22  Richard Henderson  <rth@redhat.com>
20756
20757         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
20758         variables due to conditional compilation.
20759
20760 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
20761
20762         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
20763         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
20764         Release SSA names that have been re-renamed.
20765         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
20766         variable.
20767         * tree-ssa-alias.c (init_alias_info): If aliases have been
20768         computed before, clear existing alias information.
20769         (create_name_tags): Do no fixup PT_ANYTHING pointers.
20770         If the new name tag for a pointer is different than the one it
20771         had before, mark the old tag for renaming.
20772         (replace_may_alias): New function.
20773         (group_aliases): Call it.
20774         (setup_pointers_and_addressables): Always call get_tmt_for.
20775         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
20776         once.
20777         (set_pt_anything): New local function.
20778         (set_pt_malloc): New local function.
20779         (merge_pointed_to_info): Don't merge pointed-to variables from
20780         the original pointer if the destination is pointing to an
20781         unknown location.
20782         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
20783         (add_pointed_to_var): Do not add a variable to the points-to
20784         set if the pointer is already pointing to anywhere.
20785         (collect_points_to_info_r): If the defining statement is a PHI
20786         node, only merge pointed-to information if the argument has
20787         already been visited.
20788         (get_tmt_for): Only create a new tag if the pointer didn't
20789         have one already.
20790         (dump_alias_info): Emit more information.
20791         (dump_points_to_info_for): Likewise.
20792         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
20793         try to get the annotation of an SSA_NAME.
20794         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
20795         alias sets when checking is enabled.
20796         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
20797         (eliminate): Mark basic blocks that will need
20798         EH information cleaned up.
20799         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
20800         predecessor.
20801         Initialize need_eh_cleanup.
20802         (fini_pre): Call tree_purge_all_dead_eh_edges and
20803         cleanup_tree_cfg if needed.
20804         Free need_eh_cleanup.
20805         * tree-ssa.c (verify_ssa_name): New function.
20806         (verify_def): Call it.
20807         Re-arrange to avoid printing too many error messages.
20808         (verify_use): Likewise.
20809         (verify_phi_args): Likewise.
20810         (verify_flow_insensitive_alias_info): New function.
20811         (verify_flow_sensitive_alias_info): New function.
20812         (verify_alias_info): New function.
20813         (verify_ssa): Call verify_alias_info.
20814         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
20815         program.
20816         Re-arrange to avoid printing too many error messages.
20817         * tree-ssanames.c (make_ssa_name): Clear
20818         SSA_NAME_IN_FREE_LIST.
20819         (release_ssa_name): Never release a default definition.
20820         (release_defs): New function.
20821         * tree.h: Declare it.
20822         * tree-ssa-dce.c (remove_dead_stmt): Call it.
20823
20824 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
20825
20826         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
20827         If true, do a depth-first search.  Do a breadht-first search,
20828         otherwise.
20829         (walk_use_def_chains): Add new argument IS_DFS.
20830         Update all users.
20831         * tree-flow.h (walk_use_def_chains): Update prototype.
20832
20833 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
20834
20835         * config/cris/cris.md: Tweak formatting.
20836         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
20837         (mover2side, moverside, movemside, movei, op3, andu): Replace
20838         live define_peephole:s with define_peephole2 near-equivalents.
20839         Delete the rest.
20840         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
20841         word-size modes.
20842         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
20843         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
20844         "*mov_sidesi_mem" respectively.
20845
20846 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
20847
20848         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
20849         (gimplify_build1): Move from tree-complex.c do_unop.
20850         (gimplify_build2): Move from tree-complex.c do_binop.
20851         (gimplify_build3): New.
20852         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
20853         Adjust throughout to call the functions above.
20854         * tree-flow.h: Declare the functions above.
20855         * tree-nested.c (gimplify_val): Rename to...
20856         (tsi_gimplify_val): ... this.
20857
20858         * Makefile.in (tree_complex.o): Update dependencies.
20859         (stor-layout.o): Depend on regs.h.
20860         * c-common.c (handle_vector_size_attribute): Update for
20861         vector types without corresponding vector modes.
20862         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
20863         a corresponding vector mode is not available.
20864         * print-tree.c (print_node): Print nunits for vector types
20865         * regclass.c (have_regs_of_mode): New.
20866         (init_reg_sets_1): Initialize it and use it instead
20867         of allocatable_regs_of_mode.
20868         * regs.h (have_regs_of_mode): Declare it.
20869         * stor-layout.c (layout_type): Pick a mode for vector types.
20870         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
20871         build_replicated_const, do_unop, do_binop, do_plus_minus,
20872         do_negate, expand_vector_piecewise, expand_vector_parallel,
20873         expand_vector_addition, expand_vector_operations_1,
20874         expand_vector_operations, tree_lower_operations,
20875         pass_lower_vector_ssa, pass_pre_expand): New.
20876         (expand_complex_operations, pass_lower_complex): Remove.
20877         * tree-optimize.c (init_tree_optimization_passes): Adjust
20878         pass ordering for changes in tree-complex.c.
20879         * tree-pass.h: Declare new passes.
20880         * tree.c (finish_vector_type): Remove.
20881         (make_vector_type): New.
20882         (build_vector_type_for_mode, build_vector_type): Rewritten.
20883         * tree.def (VECTOR_TYPE): Document where the number of
20884         subparts is stored.
20885         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
20886         (make_vector): Remove declaration.
20887
20888 2004-07-21  Richard Henderson  <rth@redhat.com>
20889
20890         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
20891         TREE_THIS_VOLATILE, may_aliases, or optimization level.
20892         (remove_useless_vars): Dump debugging info.
20893         (expand_used_vars): Move ...
20894         * cfgexpand.c (expand_used_vars): ... here.  Make static.
20895         * tree-flow-inline.h (set_is_used): New.
20896         (set_default_def): Use get_var_ann.
20897         * tree-flow.h: Update decls.
20898         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
20899         (create_ssa_var_map): Use it.
20900         * tree-ssa.c (set_is_used): Remove.
20901
20902 2004-07-22  Ben Elliston  <bje@au.ibm.com>
20903
20904         * gdbinit.in: Set a breakpoint on internal_error.
20905
20906 2004-07-21  Richard Henderson  <rth@redhat.com>
20907
20908         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
20909         to create a new basic block.
20910
20911 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20912
20913         PR c/15052
20914         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
20915         return type on function definitions.  Move other warnings for
20916         qualified return type to -Wreturn-type.  Do not condition any such
20917         warnings on -pedantic.  Update comments.
20918         (start_function): Only copy function type from previous prototype
20919         declaration if return types are compatible.
20920         * c-typeck.c (function_types_compatible_p): Don't condition
20921         warning for incompatibility of volatile qualifiers on the return
20922         type on -pedantic.  Update comment.
20923         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
20924
20925 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20926
20927         * c-typeck.c (set_init_index): Require designator to be of integer
20928         type.
20929
20930 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
20931
20932         PR c/11250
20933         * c-parse.in (init): Change to exprtype.
20934         (primary): Set original_code for STRING to STRING_CST.
20935         Call maybe_warn_string_init for compound literals.
20936         (initdcl, notype_initdcl): Call maybe_warn_string_init.
20937         (initval): Update.
20938         * c-tree.h (maybe_warn_string_init): New.
20939         (pop_init_level, process_init_element): Use struct c_expr.
20940         (struct c_expr): Update comment.
20941         * c-typeck.c (maybe_warn_string_init): New function.
20942         (digest_init): Call it.  Additional parameter strict_string.  All
20943         callers changed.
20944         (output_init_element): Likewise.
20945         (struct constructor_stack): Use struct c_expr for
20946         replacement_value.
20947         (really_start_incremental_init, push_init_level): Update.
20948         (pop_init_level): Update.  Return struct c_expr.
20949         (process_init_level): Update.  Take struct c_expr argument.
20950
20951 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
20952
20953         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
20954         commit.
20955
20956 2004-07-21  Eric Christopher  <echristo@redhat.com>
20957
20958         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
20959         removal.
20960         * c-decl.c (pop_scope): Ditto.
20961         * calls.c (expand_call): Remove call to current_nesting_level,
20962         update comment accordingly. Remove calls to expand_start_target_temps
20963         and expand_end_target_temps.
20964         * cfgexpand.c (construct_init_block): Remove call to
20965         expand_start_bindings_and_block.
20966         (construct_exit_block): Remove call to expand_end_bindings.
20967         * expr.c (safe_from_p): Remove BIND_EXPR handling.
20968         (expand_expr_real_1): Ditto. Fix formatting.
20969         (expand_vars): Delete.
20970         * stmt.c (POPSTACK): Remove block_stack.
20971         (stmt_status): Remove x_block_stack.
20972         (block_stack): Delete.
20973         (expand_start_bindings_and_block): Ditto.
20974         (expand_start_target_temps): Ditto.
20975         (expand_end_target_temps): Ditto.
20976         (current_nesting_level): Ditto.
20977         (warn_about_unused_variables): Ditto.
20978         (expand_end_bindings): Ditto.
20979         * tree.h: Remove declarations for above.
20980
20981 2004-07-21  Steven Bosscher  <stevenb@suse.de>
20982
20983         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
20984         * rtl.c (note_insn_name): Likewise.
20985         * print-rtl.c (print_rtx): Don't print it.
20986         * cfgrtl.h (can_delete_note_p): Don't handle it.
20987         (rtl_delete_block): Likewise.
20988         * passes.c (rest_of_handle_guess_branch_prob): Remove.
20989         (rest_of_compilation): Don't call it.
20990         * predict.c (process_note_predictions, process_note_prediction,
20991         note_prediction_to_br_prob): Remove.
20992         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
20993         * stmt.c (return_prediction): Remove.
20994         (expand_value_return): Don't call it.  Don't add prediction
20995         notes for return statements.
20996
20997 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
20998
20999         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
21000         once.
21001
21002 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
21003
21004         * c-common.c (vector_types_convertible_p): Use vector types'
21005         TYPE_SIZE and TREE_TYPE instead of their mode.
21006         * convert.c (convert_to_integer): Likewise.
21007         (convert_to_vector): Likewise.
21008         * fold-const.c (fold_convert): Likewise.
21009         * varasm.c (output_constant): Likewise.
21010         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
21011         Allow a VECTOR_TYPE initializer to be made of several vectors.
21012         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
21013         of cleared and need_to_clear, and use fold_convert.
21014         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
21015         integer vectors.
21016
21017 2004-07-20  Richard Henderson  <rth@redhat.com>
21018
21019         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
21020         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
21021
21022 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
21023
21024         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
21025         enormous cost if not TARGET_HARD_MUL.
21026
21027 2004-07-20  Andrew Pinski  <apinski@apple.com>
21028
21029         PR target/16557
21030         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
21031         (ASM_SPEC): here.
21032
21033 2004-07-21  Paul brook  <paul@codesourcery.com>
21034
21035         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
21036
21037 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21038
21039         * fold-const.c (operand_equal_p): Temporarily support NULL args.
21040         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
21041         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
21042
21043 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
21044
21045         * rtl.h (plus_constant): Delete.
21046         (plus_constant_wide): Rename to plus_constant.
21047         (plus_constant_for_output_wide): Delete vestigial prototype.
21048         (GEN_INT): Remove unnecessary cast.
21049         * tree.h (build_int_2, size_int_type): Delete.
21050         (build_int_2_wide): Rename to build_int_2.
21051         (size_int_wide): Rename to size_int_kind.
21052         (size_int_type_wide): Rename to size_int_type.
21053         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
21054         Remove unnecessary cast.
21055         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
21056         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
21057         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
21058         (size_int_type_wide): Rename size_int_type.
21059         (int_const_binop): Use size_int_type.
21060         * c-lex.c (interpret_integer): Use build_int_2.
21061         * final.c (split_double): Remove unnecessary casts.
21062         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
21063
21064 2004-07-20  Richard Henderson  <rth@redhat.com>
21065
21066         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
21067         (gimplify_compound_lval): Use is_gimple_tmp_reg.
21068         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
21069         (is_gimple_tmp_reg): New.
21070         * tree-gimple.h (is_gimple_tmp_reg): Declare.
21071
21072 2004-07-20  Richard Henderson  <rth@redhat.com>
21073
21074         * tree-pretty-print.c (dump_generic_node): Dump
21075         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
21076
21077 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
21078
21079         * tree-mudflap.c (mf_set_options_fndecl): New tree.
21080         (mudflap_init): Set it.
21081         (mudflap_register_call): Remove __mf_init call.
21082         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
21083         to pass "-ignore-reads" option to libmudflap if needed.
21084
21085 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
21086
21087         PR c++/14607
21088         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
21089         (MAKE_DECL_ONE_ONLY): Undefine.
21090         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
21091         readonly_data, one_only_data_section, forget_section): New prototypes.
21092         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
21093         functions.
21094         (pa_select_section): Add one-only (COMDAT) support.
21095         * pa.h (struct machine_function): Define.
21096         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
21097         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
21098         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
21099         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
21100         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
21101         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
21102         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
21103         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
21104         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
21105         for EXTRA_SECTION_FUNCTIONS.
21106         * doc/install.texi: Update binutils requirements.
21107
21108 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
21109
21110         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
21111         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
21112         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
21113         size_t.
21114         (struct VEC): Use unsigned for num and alloc.
21115         * vec.c (struct vec_prefix): Likewise.
21116         (vec_o_reserve): Adjust.
21117
21118         * dbxout.c (dbxout_type): Fix printf format.
21119
21120         * tree.h (binfo_member): Remove.
21121         * tree.c (binfo_member): Remove.
21122
21123 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
21124
21125         * tree.h: Include vec.h
21126         (DEF_VEC_P(tree)): New type.
21127         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
21128         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
21129         (BINFO_LANG_SLOT): Remove.
21130         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
21131         (struct tree_binfo): Turn base_binfos into a trailing
21132         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
21133         (binfo_lang_slots): Remove.
21134         * tree.c (binfo_lang_slots): Remove.
21135         (make_tree_binfo_stat): Take a base binfo count, not a
21136         lang slot count.  Adjust.
21137         * Makefile.in (TREE_H): Add vec.h
21138         * alias.c (record_component_aliases): Adjust BINFO access.
21139         * dbxout.c (dbxout_type): Likewise.
21140         * dwarf2out.c (gen_member_die): Likewise.
21141         * sdbout.c (sdbout_one_type): Likewise.
21142         * tree-dump.c (deque_and_dump): Likewise.
21143         * config/i386/i386.c (classify_argument,
21144         contains_128bit_aligned_vector_p): Likewise.
21145         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
21146         * doc/c-tree.texi (Classes): Update BINFO documentation.
21147
21148 2004-07-20  Steven Bosscher  <stevenb@suse.de>
21149
21150         * c-common.h (check_case_value): Remove prototype.
21151         (c_add_case_label): Adjust prototype.
21152         * c-common.c (check_case_value): Make static.
21153         (check_case_bounds): New function.
21154         (c_add_case_label): Use it.  Take new argument orig_type.
21155         * c-typeck.c (struct c_switch): New orig_type field.
21156         (c_start_case): Set it.
21157         (do_case): Pass it to c_add_case_label.
21158         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
21159         cases from here.  Add the labels in reverse order.
21160         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
21161         (add_case_node): Return nothing, don't check for duplicate cases.
21162         Insert new case nodes in a list, not in an AVL tree.
21163         (expand_end_case_type): Don't turn a case tree into a case list.
21164         (case_tree2list): Remove.
21165         * tree.h (add_case_node): Adjust prototype.
21166
21167 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
21168
21169         * genattr.c (struct range, struct function_unit,
21170         write_units, extend_range, init_range): Remove them.
21171         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
21172         Output "#define INSN_SCHEDULING" here.
21173         * genattrtab.c (struct range, struct function_unit_op,
21174         struct function_unit, struct dimension, enum operator,
21175         operate_exp, expand_units, simplify_knowing,
21176         encode_units_mask, simplify_by_exploding,
21177         find_and_mark_used_attributes, unmark_used_attributes,
21178         add_values_to_cover, increment_current_value,
21179         test_for_current_value, simplify_with_current_value,
21180         simplify_with_current_value_aux, gen_unit,
21181         write_unit_name, write_function_unit_info,
21182         write_complex_function, write_toplevel_expr,
21183         find_single_value, extend_range): Remove.
21184         (write_attr_get): Do not handle common_av->value
21185         being an FFS.
21186         (struct attr_desc): Remove func_units_p and blockage_p.
21187         (write_attr_valueq): Do not handle them.
21188         (find_attr): Do not clear them.
21189         (make_internal_attr): Do not initialize them.
21190         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
21191         * sched-vis.c (init_target_units, insn_print_units,
21192         init_block_visualization, print_block_visualization,
21193         visualize_scheduled_insns, visualize_no_unit,
21194         visualize_stall_cycles, visualize_alloc,
21195         visualize_free, target_units, get_visual_tbl_length,
21196         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
21197         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
21198         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
21199         * haifa-sched.c (blockage_range, clear_units,
21200         schedule_unit, actual_hazard, potential_hazard,
21201         insn_unit, unit_last_insn, unit_tick,
21202         actual_hazard_this_instance, potential_hazard,
21203         schedule_unit, max_insn_queue_index_value): Remove.
21204         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
21205         max_insn_queue_index.
21206         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
21207         * doc/md.texi (Processor pipeline description): Remove
21208         references to old pipeline descriptions.
21209         (Automaton pipeline description): Merge with the above.
21210         (Old pipeline description, Comparison of the two descriptions):
21211         Remove.
21212
21213         * bt-load.c (migrate_btr_def): Remove references to
21214         use_pipeline_interface.
21215         * haifa-sched.c (insn_cost, schedule_insn,
21216         schedule_block, advance_one_cycle, sched_init,
21217         queue_to_ready, sched_finish): Likewise.
21218         * modulo-sched.c (sms_schedule, advance_one_cycle,
21219         ps_has_conflicts): Likewise.
21220         * sched-rgn.c (init_ready): Likewise.
21221         (debug_dependencies): Likewise, and remove an "if (1)".
21222         * target.h (use_dfa_pipeline_interface): Remove.
21223         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21224         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21225         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21226         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21227         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21228         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21229         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21230         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21231         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21232         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21233         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21234         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21235         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21236         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21237         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21238         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21239         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21240         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21241         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
21242
21243 2004-07-19  Roger Sayle  <roger@eyesopen.com>
21244
21245         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
21246
21247 2004-07-19  Jeff Law  <law@redhat.com>
21248
21249         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
21250         (get_eq_expr_value): Use it.  Simplify slightly.
21251
21252 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
21253
21254         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
21255         (umulsidi3_32bit_r4000): Likewise.
21256
21257 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
21258
21259         * vec.h: Propagate location information properly.
21260         (VEC_T_iterate): Add result pointer parameter.
21261         (VEC_T_space): New.
21262         (VEC_T_reserve): Use it.
21263
21264 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
21265
21266         * Makefile.in (c-format.o): Depend on c-format.h.
21267         * c-format.h: New file.
21268         (struct format_char_info): Add CHAIN member.
21269         * c-format.c: Move some types and constants to c-format.h.
21270         (format_type_error): Set to -1.
21271         (struct function_format_info): Use an int for format_type.
21272         (decode_format_type): Return an int.  Return format_type_error
21273         on error.
21274         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
21275         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
21276         (scan_char_table, time_char_table, monetary_char_table): Initialize
21277         CHAIN to NULL.
21278         (n_format_types): New variable.
21279         (check_format_info_main): Handle CHAIN in format_char_info.
21280         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
21281         TARGET_N_FORMAT_TYPES.
21282         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
21283         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
21284         * config/sol2-c.c: New file.
21285         * config/t-sol2: New file.
21286         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
21287         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
21288         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
21289
21290         * doc/extend.texi (Target Format Checks): New section.
21291         (Function Attributes): Mention it.
21292         * doc/invoke.texi: Mention target format checks.
21293         * doc/sourcebuild.texi: Mention target format checks.
21294         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
21295         TARGET_FORMAT_TYPES.
21296
21297 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
21298
21299         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
21300         added.
21301         * config/s390/s390.c (regclass_map initializer): Register 35 added to
21302         ADDR_REGS.
21303         (load_multiple_operation, store_multiple_operation): Removed
21304         pointless sanity check.
21305         (s390_decompose_address): Added check for return_address_pointer_rtx.
21306         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
21307         (s390_return_address_offset): New function.
21308         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
21309         (FRAME_REGNO_P): Added check for register 35.
21310         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
21311         REG_ALLOC_ORDER): Appended entry for register 35.
21312         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
21313         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
21314         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
21315         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
21316         is eliminable using stack pointer or hard frame pointer.
21317         (REGISTER_NAMES): Added name for register 35.
21318         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
21319         pointless sanity check.
21320
21321 2004-07-19  Roger Sayle  <roger@eyesopen.com>
21322
21323         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
21324         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
21325         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
21326         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
21327         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
21328         (fold_relational_const): Tidy up handling of floating point
21329         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
21330         transformation; fold_relational_const assumes constant operands.
21331
21332 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
21333
21334         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
21335         directory.
21336
21337 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
21338
21339         * c-tree.h (struct c_expr): Define.
21340         (C_SET_EXP_ORIGINAL_CODE): Remove.
21341         (parser_build_binary_op, build_compound_expr): Update prototypes.
21342         * c-parse.in (%union): Add exprtype.
21343         (FUNC_NAME): Mark as ttype.
21344         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
21345         exprtype.
21346         (expr): Update.  Define directly in terms of expr_no_commas
21347         instead of using nonnull_exprlist.
21348         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
21349         offsetof_member_designator, typespec_nonreserved_nonattr, init,
21350         initval, designator, component_declarator,
21351         component_notype_declarator, enumerator, array_declarator,
21352         condition, exexpr, switch_statement, stmt_nocomp, stmt,
21353         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
21354         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
21355         where appropriate.
21356         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
21357         * c-common.c (c_common_truthvalue_conversion): Don't check
21358         C_EXP_ORIGINAL_CODE.
21359         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
21360         Don't use C_EXP_ORIGINAL_CODE.
21361         (default_conversion, default_function_array_conversion): Don't use
21362         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
21363         (internal_build_compound_expr): Merge into build_compound_expr.
21364         (build_compound_expr): Take two operands instead of a TREE_LIST.
21365         * objc/objc-act.c (get_super_receiver): Update calls to
21366         build_compound_expr.
21367
21368 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
21369
21370         * config/sh/sh.c (sh_use_dfa_interface): Remove.
21371         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
21372         hook_int_void_1.
21373         * config/sh/sh.md: Extract pipeline descriptions
21374         into separate files.
21375         * config/sh/sh1.md: New file, extracted from sh.md.
21376         * config/sh/sh4.md: New file, extracted from sh.md.
21377         * config/sh/shmedia.md: New file, extracted from sh.md
21378         and rewritten using new-style pipeline description.
21379
21380 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
21381
21382         * config/pa/pa.md: Delete the two remaining define_peephole
21383         patterns.
21384
21385 2004-07-18  Steven Bosscher  <stevenb@suse.de>
21386             Joseph S. Myers  <jsm@polyomino.org.uk>
21387
21388         * c-common.c (c_common_truthvalue_conversion): Don't warn if
21389         TREE_NO_WARNING is set.
21390
21391 2004-07-18  Roger Sayle  <roger@eyesopen.com>
21392
21393         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
21394         simplify_builtin_strncmp): Delete.
21395         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
21396         Change argument to accept an arglist instead of an "exp".  Assume
21397         that the return type is always integer_type_node.  Copy missing
21398         transformations from their now obsolete simplify_builtin_*
21399         equivalents.
21400         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
21401         fold_builtin_strcmp and fold_builtin_strncmp.
21402         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
21403         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
21404         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
21405
21406 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
21407
21408         * Makefile.in (tree-alias-common.o): Update dependencies.
21409
21410 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
21411
21412         * cfgloop.c (flow_loop_nested_p): Fix comment.
21413
21414 2004-07-17  Jason Merrill  <jason@redhat.com>
21415
21416         PR c++/16115
21417         * stor-layout.c (relayout_decl): New fn.
21418         * tree.h: Declare it.
21419         (DECL_BY_REFERENCE): New macro.
21420
21421 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
21422
21423         * libgcc2.c (__enable_execute_stack): New symbol.
21424         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
21425         and declare __enable_execute_stack.
21426         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
21427         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
21428         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
21429         ENABLE_EXECUTE_STACK.
21430         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
21431         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
21432         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
21433         ENABLE_EXECUTE_STACK.
21434         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21435         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
21436         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
21437         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
21438         ENABLE_EXECUTE_STACK.
21439         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21440         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21441         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21442         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
21443         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
21444         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
21445         (sparc64_initialize_trampoline): Likewise.
21446         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
21447
21448 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
21449
21450         * langhooks.h (builtin_function): New langhook.
21451         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
21452         (LANG_HOOKS_INITIALIZER): Update.
21453         * tree.h (builtin_function): Remove.
21454         * doc/tm.texi: Update.
21455         * c-tree.h (builtin_function): Declare.
21456         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
21457         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
21458         config/ia64/ia64.c, config/iq2000/iq2000.c,
21459         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
21460         config/stormy16/stormy16.c: All callers of builtin_function
21461         changed.
21462
21463 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
21464
21465         PR target/16556
21466         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
21467         Remove white space after the backslash.
21468
21469 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
21470
21471         PR rtl-optimization/16294
21472         * resource.c (return_insn_p): New predicate.
21473         (mark_target_live_regs): Use it.  Special-case return insns.
21474         (init_resource_info): Use it.  Don't scan the epilogue past
21475         a return.
21476
21477 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
21478
21479         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
21480         destroy dominance information.
21481         * passes.c (rest_of_handle_loop2):  Free dominance information.
21482         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
21483         jump threading.
21484         (thread_jumps): Update dominance information and remove unreachable
21485         blocks.
21486         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
21487         information and remove the unreachable block.
21488
21489 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
21490
21491         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
21492
21493 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
21494
21495         * doc/sourcebuild.texi: Remove libf2c entry.
21496
21497 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
21498
21499         * config/i386/i386.md (movv16qi_internal): Fix typo.
21500
21501 2004-07-17  Steven Bosscher  <stevenb@suse.de>
21502
21503         * final.c (final_scan_insn): Fix broken commit from previous
21504         patch.
21505
21506 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
21507
21508         * c-typeck.c (parser_build_binary_op): Condition warnings for
21509         X<=Y<=Z on -Wparentheses instead of -Wextra.
21510         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
21511         supported for C only.
21512
21513 2004-07-17  Steven Bosscher  <stevenb@suse.de>
21514
21515         * cfgcleanup.c (try_simplify_condjump): Don't remove line
21516         notes to avoid unreachable code warnings.
21517         * toplev.c (backend_init): Don't emit line notes for
21518         unreachable code warnings.
21519
21520         * combine.c (distribute_notes): Don't distribute a
21521         REG_VTABLE_REF note.
21522         * final.c (final_scan_insn): Don't handle it.
21523         * rtl.c (reg_note_name): Remove it.
21524         * rtl.h (enum reg_node): Dito.
21525
21526         * emit-rtl.c (force_line_numbers, restore_line_number_status):
21527         Remove.
21528         * rtl.h (force_line_numbers, restore_line_number_status):
21529         Remove prototypes.
21530
21531         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
21532         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
21533         (using_eh_for_cleanups): Also moved here.
21534
21535         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
21536         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
21537         to expand_start_case and add_case_node.
21538         * stmt.c (struct nesting): Cleanup unused fields condition_code,
21539         last_unconditional_cleanup, nominal_type, printname, and
21540         line_number_status.
21541         (struct fixup_goto): Remove.
21542         (struct stmt_status): Remove x_goto_fixup_chain field.
21543         (goto_fixup_chain): Remove.
21544         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
21545         pushcase, pushcase_range): Remove.
21546         (expand_start_bindings_and_block): Don't set unused fields in
21547         the nesting stack.
21548         (expand_start_case, add_case_node): Cleanup unused formal arguments.
21549         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
21550         instead of emit_jump_if_reachable.
21551         (emit_case_nodes): Likewise.
21552         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
21553         static.
21554         (update_eh_label): Work around left-over exception handing regions.
21555         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
21556         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
21557         (pass_cleanup_cfg_post_optimizing): New pass.
21558         (init_tree_optimization_passes): Run the new pass after all
21559         optimizations.
21560         * tree.h (pushcase, pushcase_range): Remove prototypes.
21561         (expand_start_case, add_case_node): Update prototypes.
21562
21563 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
21564
21565         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
21566
21567 2004-07-16  Richard Henderson  <rth@redhat.com>
21568
21569         * builtins.c (std_expand_builtin_va_arg): Remove.
21570         (expand_builtin_va_arg): Remove.
21571         * expr.h: Don't declare them.
21572         * gimplify.c (mark_decls_volatile_r): Remove.
21573         (copy_if_shared_r): Don't call it.
21574         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
21575         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
21576         * gimple-low.c (lower_stmt): Likewise.
21577         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
21578         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
21579         * tree-ssa-operands.c (get_expr_operands): Likewise.
21580         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
21581         EXPAND_BUILTIN_VA_ARG.
21582         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
21583         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
21584         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
21585         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
21586
21587 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
21588
21589         * tree-ssa-pre.c (insert_aux): Break out if we hit
21590         a critical edge.
21591
21592 2004-07-16  Richard Henderson  <rth@redhat.com>
21593
21594         * basic-block.h (remove_fake_exit_edges): Declare.
21595         * cfganal.c (remove_fake_predecessors): Rename from
21596         remove_fake_successors; iterate over predecessors.
21597         (remove_fake_exit_edges): New.
21598         * cfgcleanup.c (try_optimize_cfg): Use it.
21599         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
21600         * predict.c (estimate_probability): Likewise.
21601         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
21602         * tree-cfg.c (make_edges): Likewise.
21603         * tree-ssa-pre.c (fini_pre): Likewise.
21604         * profile.c (instrument_edges): Don't remove_fake_edges.
21605         (branch_prob): Do it earlier here.
21606
21607 2004-07-16  Richard Henderson  <rth@redhat.com>
21608
21609         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
21610         switchification wrt CONSTRUCTOR.  Document the reason.
21611
21612 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
21613
21614         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
21615         that prevented descriptive __mf_check source location strings.
21616
21617 2004-07-16  Richard Henderson  <rth@redhat.com>
21618
21619         * tree-def (WITH_SIZE_EXPR): New.
21620         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
21621         * expr.c (expand_expr_real_1): Likewise.
21622         * gimplify.c (maybe_with_size_expr): New.
21623         (gimplify_arg, gimplify_modify_expr): Use it.
21624         (gimplify_modify_expr_to_memcpy): Take size parameter.
21625         (gimplify_modify_expr_to_memset): Likewise.
21626         (gimplify_expr): Handle WITH_SIZE_EXPR.
21627         * tree-alias-common.c (find_func_aliases): Likewise.
21628         * tree-eh.c (tree_could_trap_p): Likewise.
21629         (tree_could_throw_p): Likewise.
21630         * tree-gimple.c (is_gimple_lvalue): Likewise.
21631         (get_call_expr_in): Likewise.
21632         * tree-inline.c (estimate_num_insns_1): Likewise.
21633         (expand_calls_inline): Likewise.
21634         * tree-nested.c (convert_call_expr): Likewise.
21635         * tree-pretty-print.c (dump_generic_node): Likewise.
21636         * tree-sra.c (sra_walk_expr): Likewise.
21637         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
21638         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
21639         * tree-ssa-operands.c (get_expr_operands): Likewise.
21640         * tree-tailcall.c (find_tail_calls): Likewise.
21641
21642         * calls.c (expand_call): Reset old_stack_allocated after
21643         calling emit_stack_restore.
21644
21645 2004-07-16  Richard Henderson  <rth@redhat.com>
21646
21647         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
21648         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
21649         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
21650         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
21651         copy_res_decl_for_inlining.
21652
21653         * tree-inline.c (declare_return_variable): New modify_dest argument.
21654         Use it as the return value, when possible or manditory.  Handle
21655         TREE_ADDRESSABLE types.
21656         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
21657         replacement of CALL_EXPR.
21658
21659 2004-07-16  Richard Henderson  <rth@redhat.com>
21660
21661         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
21662         * gimple-low.c (expand_var_p): Don't check it.
21663         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
21664         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
21665         * tree-ssa-operands.c (add_stmt_operand): Likewise.
21666         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
21667         (find_referenced_vars): Don't call them.
21668         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
21669
21670 2004-07-16  Richard Henderson  <rth@redhat.com>
21671
21672         * function.c (pass_by_reference): True for all variable sized types.
21673
21674 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
21675
21676         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
21677         * tree-pretty-print.c: Include tree-chrec.h.
21678         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
21679         and POLYNOMIAL_CHREC nodes.
21680
21681 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
21682
21683         * builtins.c (expand_builtin_stpcpy): Do not create temporary
21684         reg with VOIDmode.
21685
21686 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
21687
21688         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
21689
21690 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
21691
21692         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
21693         to BASE_REGNUM.
21694         * config/s390/s390.c: Likewise.
21695         * config/s390/s390.h: Likewise.
21696
21697 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21698
21699         * config/mips/mips.md (addsi3, adddi3): Remove special handling
21700         of $sp adds.  Remove REGNO checks from mips16 patterns.
21701
21702 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21703
21704         * config/mips/mips.md: Delete outdated comment.
21705
21706 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21707
21708         * config/mips/mips.c (get_float_compare_codes): Delete.
21709         (mips_emit_compare): New function, mostly extracted from
21710         get_float_compare_codes and gen_conditional_branch.
21711         (gen_conditional_branch, gen_conditional_move): Use it.
21712
21713 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
21714
21715         * genautomata.c (add_vect): Speedup by using integers as
21716         bit-vectors for walking through the comb_vect and finding
21717         a match.
21718
21719 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21720
21721         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
21722         operand is an uns_arith_operand; use subtraction otherwise.
21723         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
21724         not just arith_operands.
21725
21726 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21727
21728         * config/mips/mips-protos.h (gen_int_relational): Delete.
21729         (mips_emit_scc): Declare.
21730         * config/mips/mips.c (internal_test): Delete.
21731         (sle_operand, sleu_operand): New functions.
21732         (map_test_to_internal_test, gen_int_relational): Delete.
21733         (mips_emit_binary, mips_relational_operand_ok_p)
21734         (mips_emit_int_relational, mips_zero_if_equal)
21735         (mips_emit_scc): New functions.
21736         (gen_conditional_branch): Rework to use mips_emit_int_relational.
21737         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
21738         sleu_operand.
21739         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
21740         (sltu, sleu): Use mips_emit_scc.
21741         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
21742         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
21743         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
21744
21745 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21746
21747         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
21748
21749 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21750
21751         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
21752         (*sne_[sd]i): Likewise sne_[sd]i_zero.
21753         (*sgt_[sd]i): ...and sgt_[sd]i.
21754         (*slt_[sd]i): ...and slt_[sd]i.
21755         (*sgtu_[sd]i): ...and sgtu_[sd]i.
21756         (*sltu_[sd]i): ...and sltu_[sd]i.
21757         (*sleu_[sd]i): ...and sleu_[sd]i_const.
21758         Name previously unnamed mips16 patterns.  Formatting fixes.
21759
21760 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21761
21762         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
21763         (branch_type): Delete.
21764         (gen_conditional_branch, gen_conditional_move)
21765         (mips_gen_conditional_trap): Update after name change.  Get the
21766         comparison mode from cmp_operands[0].
21767         * config/mips/mips.h (cmp_type, branch_type): Delete.
21768         (cmp_operands): Renamed from branch_cmp.
21769         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
21770         name change.  Don't set branch_type.
21771         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
21772         mode class of cmp_operands[0] rather than branch_type.  Update after
21773         name change.
21774
21775 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21776
21777         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
21778         of 0...255 to 0 when inside a SET.
21779
21780 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
21781
21782         * config/mips/mips.md: Remove mips16 define_peepholes.
21783
21784 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
21785
21786         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
21787         (fini_pre): Remove fake edges.
21788
21789 2004-07-15  Richard Henderson  <rth@redhat.com>
21790
21791         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
21792         (get_indirect_ref_operands, get_call_expr_operands): ... these.
21793
21794 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
21795
21796         * vec.h (VEC_address): New function.
21797
21798 2004-07-14  Jason Merrill  <jason@redhat.com>
21799
21800         PR middle-end/15885
21801         * gimplify.c (gimplify_arg): New fn, split out from...
21802         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
21803
21804 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
21805
21806         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
21807         generate code which is generated by pushqi1 now
21808         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
21809
21810 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
21811
21812         * combine.c (simplify_set): match the mode of the constant 0 with
21813         the tested operand to match the compare behaviour and the
21814         simplify_relational_operation() expectation.
21815
21816 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
21817
21818         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
21819         ("bordered"): Same.
21820
21821 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
21822
21823         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
21824         unconditionally.
21825         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
21826
21827 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
21828
21829         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
21830         calls in mips16 code.
21831
21832 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
21833
21834         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
21835         the destination of the li as well as for the neg.
21836
21837 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
21838
21839         g++/15861
21840         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
21841         * cgraph.h: Update declaration.
21842         * c-decl.c (build_cdtor): Update call with default priority.
21843         * coverage.c (create_coverage): Ditto.
21844         * tree-mudflap.c (mf_init_fndecl): New tree.
21845         (mudflap_init): Set it.
21846         (mudflap_register_call): Arrange to call __mf_init before the first
21847         __mf_register call.
21848         (mudflap_finish_file): Mark the mudflap static initializer as extra
21849         high priority, to beat all C++ static constructors.
21850
21851 2004-07-15  Jeff Law  <law@redhat.com>
21852
21853         * loop.c (check_insn_for_givs): Restore check for code labels that was
21854         accidentally deleted by a recent checkin.
21855
21856 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
21857
21858         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
21859         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
21860
21861 2004-07-14  Richard Henderson  <rth@redhat.com>
21862
21863         * print-tree.c (print_node): Fix casts last change.
21864
21865 2004-07-15  Paul Brook  <paul@codesourcery.com>
21866
21867         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
21868         to TARGET_UNWIND_INFO.
21869         * except.c (output_function_exception_table): Ditto.
21870         * except.h: Ditto.
21871         * opts.c (decode_options): Ditto.
21872         * passes.c (rest_of_handle_final): Ditto.
21873         * final.c (final_start_function): Ditto.
21874         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
21875         target hook.
21876         * targhooks.h (default_unwind_emit): Declare.
21877         * targhooks.c (default_unwind_emit): New function.
21878         * target-def.h: Define and use TARGET_UNWIND_EMIT.
21879         * target.h (struct gcc_target): Add unwind_emit.
21880         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
21881         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
21882         Remove IA64_UNWIND_EMIT.
21883         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
21884
21885 2004-07-14  Richard Henderson  <rth@redhat.com>
21886
21887         * print-tree.c (print_node): Handle SSA_NAME.
21888
21889 2004-07-14  James E Wilson  <wilson@specifixinc.com>
21890
21891         PR target/16325
21892         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
21893         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
21894
21895 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
21896
21897         * expr.c (expand_assignment): Reenable bitfield += optimizations.
21898         Use alias set 0 for memory, do proper mode calculations and adjust
21899         address for memories.
21900
21901 2004-07-14  Per Bothner  <per@bothner.com>
21902
21903         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
21904         structure with extra column field.
21905         * tree.c (expand_location):  Also fill in column field.
21906         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
21907         gets confused by the two conditionally-compiled definitions.
21908
21909 2004-07-14  Eric Christopher  <echristo@redhat.com>
21910
21911         * calls.c (expand_call): Fix typo in comment.
21912
21913 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
21914
21915         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
21916         comparision of TFmode.
21917
21918 2004-07-14  Richard Henderson  <rth@redhat.com>
21919
21920         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
21921         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
21922         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
21923         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
21924         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
21925         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
21926         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
21927         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
21928         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
21929
21930 2004-07-14  Mike Stump  <mrs@apple.com>
21931
21932         * config/darwin.h (WINT_TYPE): Define to be int to match
21933         system header files.
21934
21935 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
21936
21937         * config/xtensa/xtensa.c (function_arg_advance): Check for args
21938         that must be passed in the stack.
21939         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
21940         arguments if the size is not a constant.
21941
21942 2004-07-14  Per Bothner  <per@bothner.com>
21943
21944         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
21945         instead of EXPR_LOCUS in a boolean context, which is always true
21946         if --enable-mapped-location.
21947         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
21948
21949 2004-07-14  Richard Henderson  <rth@redhat.com>
21950
21951         * dominance.c (struct dom_info): Add fake_exit_edge.
21952         (init_dom_info): Allocate it.
21953         (free_dom_info): Free it.
21954         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
21955         in two passes.
21956         (calc_idoms): Honor fake_exit_edge.
21957
21958 2004-07-13  Jason Merrill  <jason@redhat.com>
21959
21960         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
21961         (rhs_test_for): New fn.
21962         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
21963         * tree-gimple.h: Declare them.
21964         * gimplify.c (gimplify_modify_expr): Use the new fns.
21965
21966 2004-07-14  Richard Henderson  <rth@redhat.com>
21967
21968         * config/arm/arm-protos.h (arm_va_arg): Remove.
21969         * config/arm/arm.c (arm_va_arg): Remove.
21970         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
21971         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
21972
21973 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21974
21975         * pa.c (fix_range): New function to mark a range(s) of registers as
21976         fixed registers.
21977         (override_options): Call fix_range if the -mfixed-range option string
21978         is not empty.
21979         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
21980         * doc/invoke.texi (-mfixed-range): Document new option.
21981
21982 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
21983
21984         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
21985         for TARGET_64BIT.
21986         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
21987
21988 2004-07-14  Roger Sayle  <roger@eyesopen.com>
21989
21990         * expmed.c (expand_sdiv_pow2): New function to expand signed division
21991         by a positive power of two, split out from expand_divmod.  Provide
21992         an alternate implementation when shifts are expensive.  Lower the
21993         threshold for using a branchless implementation to BRANCH_COST >= 2.
21994         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
21995
21996 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
21997
21998         * tree-dfa.c (make_rename_temp): *Really* work just
21999         like create_tmp_var if called while outside SSA form.
22000
22001 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
22002
22003         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
22004         for division by zero.
22005         ("umodsi3"): Likewise.
22006
22007 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
22008
22009         * config/mips/mips.c (mips_output_move): When generating mips16 code,
22010         force loads of negative constants to be split.
22011         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
22012         Generalize SImode li/neg splitter to cope with other modes.
22013
22014 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
22015
22016         * expmed.c: Remove more references to QUEUED in the comments.
22017         * expr.c: Likewise.
22018
22019 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
22020
22021         Revert:
22022         2004-07-13  Richard Henderson  <rth@redhat.com>
22023         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
22024         correctly.
22025
22026 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
22027
22028         * tree-dfa.c (make_rename_temp): Work just like
22029         create_tmp_var if called while outside SSA form.
22030
22031 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
22032
22033         * expr.c (enqueue_insn, finish_expr_for_function,
22034         protect_from_queue, queued_subexp_p, mark_queue,
22035         emit_insns_enqueued_after_mark, emit_queue,
22036         expand_increment): Remove.
22037         (store_constructor): Expand increment as an assignment.
22038         (expand_expr_real_1 <case PREINCREMENT_EXPR,
22039         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
22040         case POSTDECREMENT_EXPR>): Abort.
22041         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
22042         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
22043         protect_from_queue, emit_queue, queued_subexp_p): Remove.
22044         * function.h (pending_chain, x_pending_chain): Remove.
22045         * rtl.def (QUEUED): Remove.
22046
22047         * emit-rtl.c (copy_insn_1, copy_most_rtx,
22048         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
22049         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
22050         encode_units_mask): Likewise.
22051         * local-alloc.c (equiv_init_varies_p): Likewise.
22052         * rtl.c (copy_rtx): Likewise.
22053         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
22054         * simplify-rtx.c (simplify_gen_subreg): Likewise.
22055         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
22056
22057         * builtins.c (expand_builtin, expand_builtin_apply,
22058         expand_builtin_mathfn, expand_builtin_mathfn_2,
22059         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
22060         Remove calls to emit_queue and protect_from_queue.
22061         * calls.c (expand_call, precompute_arguments,
22062         precompute_register_parameters, rtx_for_function_call,
22063         store_one_arg): Likewise.
22064         * dojump.c (do_compare_and_jump, do_jump): Likewise.
22065         * explow.c (memory_address): Likewise.
22066         * expmed.c (clear_by_pieces_1, clear_storage,
22067         clear_storage_via_libcall, emit_group_load,
22068         emit_group_store, emit_store_flag,
22069         expand_expr_real_1, store_by_pieces,
22070         store_constructor, store_expr, try_casesi,
22071         try_tablejump): Likewise.
22072         * function.c (expand_pending_sizes): Likewise.
22073         * optabs.c (emit_cmp_and_jump_insns,
22074         emit_conditional_add, emit_conditional_move,
22075         expand_fix, expand_float, prepare_cmp_insn): Likewise.
22076         * stmt.c (emit_case_bit_tests,
22077         expand_asm_expr, expand_computed_goto,
22078         expand_decl_init, expand_end_case_type,
22079         expand_end_stmt_expr, expand_expr_stmt_value,
22080         expand_return, expand_start_case,
22081         optimize_tail_recursion): Likewise.
22082         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
22083         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
22084
22085 2004-07-14  Ben Elliston  <bje@au.ibm.com>
22086
22087         * vec.h: Comment fix.
22088
22089 2004-07-13  Richard Henderson  <rth@redhat.com>
22090
22091         * target.h (struct gcc_target): Add calls.pass_by_reference.
22092         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
22093         * function.c (pass_by_reference): Use the hook.
22094         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
22095         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
22096         (hook_pass_by_reference_must_pass_in_stack): New.
22097         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
22098         (alpha_pass_by_reference): New.
22099         (TARGET_PASS_BY_REFERENCE): New.
22100         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22101         * config/arc/arc.c (arc_pass_by_reference): New.
22102         (TARGET_PASS_BY_REFERENCE): New.
22103         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22104         (FUNCTION_ARG_CALLEE_COPIES): True.
22105         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
22106         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
22107         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
22108         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22109         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22110         * config/cris/cris.c (cris_pass_by_reference): New.
22111         (TARGET_PASS_BY_REFERENCE): New.
22112         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
22113         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
22114         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22115         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
22116         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22117         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
22118         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
22119         (frv_function_arg_pass_by_reference): Remove.
22120         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22121         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
22122         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
22123         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
22124         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22125         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
22126         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
22127         (ia64_pass_by_reference): Rename from
22128         ia64_function_arg_pass_by_reference.
22129         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22130         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22131         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
22132         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
22133         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
22134         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22135         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
22136         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
22137         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
22138         (m32r_pass_by_reference): Adjust prototype.  Make static.
22139         Handle mode sizes correctly.
22140         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22141         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
22142         (m68hc11_function_arg_pass_by_reference): Remove.
22143         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22144         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
22145         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
22146         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22147         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
22148         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
22149         (mips_va_arg): Use pass_by_reference.
22150         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
22151         Handle mode sizes correctly.
22152         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22153         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
22154         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
22155         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
22156         (mmix_pass_by_reference): Rename from
22157         mmix_function_arg_pass_by_reference.
22158         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22159         (FUNCTION_ARG_CALLEE_COPIES): True.
22160         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
22161         (mn10300_pass_by_reference): New.
22162         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22163         (FUNCTION_ARG_CALLEE_COPIES): True.
22164         * config/pa/pa.c (pa_pass_by_reference): New.
22165         (TARGET_PASS_BY_REFERENCE): New.
22166         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22167         (FUNCTION_ARG_CALLEE_COPIES): True.
22168         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
22169         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
22170         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
22171         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22172         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
22173         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
22174         (s390_pass_by_reference): Rename from
22175         s390_function_arg_pass_by_reference.
22176         (s390_function_arg_advance): Don't query pass-by-ref.
22177         (s390_function_arg): Likewise.
22178         (s390_gimplify_va_arg): Use pass_by_reference.
22179         (s390_call_saved_register_used): Likewise.
22180         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22181         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
22182         (shcompact_byref, sh_pass_by_reference): New.
22183         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22184         (SHCOMPACT_BYREF): Remove.
22185         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
22186         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
22187         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
22188         (sparc_gimplify_va_arg): Use pass_by_reference.
22189         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22190         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22191         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
22192         (v850_pass_by_reference): New.
22193         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22194         (FUNCTION_ARG_CALLEE_COPIES): True.
22195         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
22196         FUNCTION_ARG_PASS_BY_REFERENCE docs.
22197
22198 2004-07-14  Richard Henderson  <rth@redhat.com>
22199             Richard Sandiford  <rsandifo@redhat.com>
22200
22201         * config/mips/mips-protos.h (mips_va_arg): Delete.
22202         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
22203         * config/mips/mips.c: Include tree-gimple.h.
22204         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
22205         (mips_arg_info): Remove special handling of must_pass_in_stck args.
22206         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
22207         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
22208
22209 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
22210
22211         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
22212         arguments for COND_EXPR in big-endian adjustment code.
22213
22214 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22215
22216         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
22217         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
22218         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
22219         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
22220
22221 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
22222
22223         PR tree-optimization/16443
22224         * tree-ssa-alias.c: Add more description for
22225         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
22226         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
22227         clobbering of call-clobbered and addressable variables.  If
22228         there are any before aliases have been computed, add them.
22229
22230 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
22231
22232         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
22233         verification.
22234
22235 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
22236
22237         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
22238         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
22239         to the same type.
22240
22241 2004-07-13  Per Bothner  <per@bothner.com>
22242
22243         * collect2.c (main):  Handle --no-demangle and --demangle flags.
22244
22245 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
22246
22247         * Makefile.in (OBJS-common): Add tree-data-ref.o.
22248         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
22249         (tree-data-ref.o): New rule.
22250         * lambda.h: New file.
22251         * tree-data-ref.c: New file.
22252         * tree-data-ref.h: New file.
22253         * tree.c (int_cst_value, tree_fold_gcd): New functions.
22254         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
22255
22256 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22257
22258         PR target/13926
22259         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
22260         * config/sparc/sparc.c (output_ubranch): New function.
22261         * config/sparc/sparc.md (jump pattern): Use it.
22262
22263 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22264
22265         PR target/16494
22266         * config/sparc/sparc.c (output_cbranch): Properly guard
22267         the code handling far branches with TARGET_V9.
22268         * config/sparc/sparc.md (length attribute): Document the
22269         side-effect of having a length greater or equal to 3.
22270
22271 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22272             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
22273
22274         PR target/15186
22275         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
22276         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
22277
22278 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
22279             Martin Sebor  <sebor@roguewave.com>
22280
22281         PR target/12602
22282         * doc/invoke.texi (SPARC options): Document -threads
22283         and -pthreads on Solaris.
22284
22285 2004-07-13  Richard Henderson  <rth@redhat.com>
22286
22287         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
22288         by reference.
22289         (ind_gimplify_va_arg_expr): Remove.
22290         * tree.h (ind_gimplify_va_arg_expr): Remove.
22291         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
22292         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
22293         argsp to be null.
22294
22295         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
22296         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
22297         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
22298         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
22299         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
22300
22301 2004-07-13  Richard Henderson  <rth@redhat.com>
22302
22303         * function.c (pass_by_reference): New.
22304         (assign_parm_find_data_types): Use it.
22305         * calls.c (initialize_argument_information): Likewise.
22306         (emit_library_call_value_1): Likewise.
22307         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
22308         * function.h (pass_by_reference): Declare.
22309
22310 2004-07-13  Richard Henderson  <rth@redhat.com>
22311
22312         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
22313         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
22314         * expr.h (MUST_PASS_IN_STACK): Remove.
22315         * system.h (MUST_PASS_IN_STACK): Poison.
22316         * tree.h (must_pass_in_stack_var_size): Declare.
22317         (must_pass_in_stack_var_size_or_pad): Declare.
22318         * calls.c (must_pass_in_stack_var_size): New.
22319         (must_pass_in_stack_var_size_or_pad): Rename from
22320         default_must_pass_in_stack.
22321         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
22322         (TARGET_MUST_PASS_IN_STACK): New.
22323         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
22324         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
22325         (TARGET_MUST_PASS_IN_STACK): New.
22326         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
22327         * config/frv/frv.c (frv_must_pass_in_stack): New.
22328         (TARGET_MUST_PASS_IN_STACK): New.
22329         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
22330         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
22331         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
22332         (ix86_must_pass_in_stack): Make static.
22333         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
22334         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
22335         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
22336         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
22337         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
22338         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
22339         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
22340         (mcore_must_pass_on_stack): Remove.
22341         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
22342         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
22343         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
22344         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
22345         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
22346         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
22347         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
22348         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
22349         (TARGET_MUST_PASS_IN_STACK): New.
22350         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
22351         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
22352         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
22353         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
22354         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
22355         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
22356         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
22357         MUST_PASS_IN_STACK.
22358
22359         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
22360         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
22361         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
22362         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
22363         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
22364         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
22365         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
22366         config/xtensa/xtensa.c: Use target hook.
22367
22368 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
22369
22370         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
22371         * configure: Rebuilt.
22372
22373 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
22374
22375         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
22376         * config/mips/mips.h (mips_reg_names): Don't declare.
22377         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
22378         (TARGET_NAME_REGS): Delete.
22379         (TARGET_SWITCHES): Remove -mrnames.
22380         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
22381         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
22382         in REGISTER_NAMES.
22383         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
22384         (override_options): Remove handling of TARGET_NAME_REGS.
22385
22386 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
22387
22388         * config/mips/mips.h (TARGET_*): Boolify.
22389
22390 2004-07-12  Nick Clifton  <nickc@redhat.com>
22391
22392         * config.gcc: Add sh-*-symbianelf target.
22393         * config/sh/sh.c: Add new target macros:
22394         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
22395         TARGET_CXX_IMPORT_EXPORT_CLASS.
22396         (sh_file_start): Create a definition of the .directive section.
22397         (sh_attribute): Add dllimport and dllexport attributes.
22398         * config/sh/symbian-pre.h: New file.
22399         * config/sh/symbian-post.h: New file.
22400         * config/sh/symbian.c: New file. Contains Symbian specific
22401         functions.
22402         * config/sh/sh-protos.h: Add prototypes for new functions
22403         provided by symbian.c.
22404         * config/sh/t-symbian: New file.
22405         * doc/extend.texi: Document support for dllimport and dllexport
22406         attributes by the sh-symbianelf target.
22407
22408 2004-07-12  James E Wilson  <wilson@specifixinc.com>
22409
22410         * Makefile.in (AR): Use @AR@ not ar.
22411         (NM): New.
22412         (AR_FOR_TARGET): Use $(AR) not ar for native.
22413         (NM_FOR_TARGET): Use $(NM) not nm for native.
22414         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
22415         * configure: Regenerate.
22416
22417 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
22418
22419         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
22420         special case.
22421         (ashldi3_sp64): Likewise.
22422
22423 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22424
22425         PR target/16477
22426         * pa.c (function_arg): Update comment.
22427         * pa.h (BLOCK_REG_PADDING): Define.
22428
22429 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22430
22431         PR tree-optimization/16461
22432         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
22433         arguments of phi nodes.
22434
22435 2004-07-12  Devang Patel  <dpatel@apple.com>
22436
22437         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
22438
22439 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
22440
22441         * function.c (expand_function_start): Ensure r_save is in Pmode.
22442         * calls.c (prepare_call_address): Ensure static_chain_value is
22443         in Pmode.
22444         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
22445         r_save_area are in Pmode.
22446         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
22447         fnaddr, and static_chain are in Pmode.
22448
22449 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
22450
22451         PR target/16445
22452         * config/ia64/ia64.c (bundling): Don't count ignored insns.
22453
22454 2004-07-12  Richard Henderson  <rth@redhat.com>
22455
22456         * target.h (struct gcc_target): Move gimplify_va_arg_expr
22457         next to build_builtin_va_list.
22458         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
22459         * builtins.c (gimplify_va_arg_expr): Likewise.
22460         * gimplify.c (copy_if_shared_r): Likewise.
22461
22462 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
22463
22464         * passes.c (rest_of_decl_compilation): Don't defer call of
22465         assemble_variable if its DECL_RTL is already set.
22466
22467 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
22468
22469         * cfgloop.h (struct loop): Add nb_iterations field.
22470         (current_loops): Declare.
22471         * tree-chrec.c (chrec_not_analyzed_yet,
22472         chrec_dont_know, chrec_known, count_ev_in_wider_type,
22473         chrec_contains_symbols_defined_in_loop): Remove the temporary
22474         hooks.
22475         * tree-flow-inline.h (loop_containing_stmt): New function.
22476         * tree-scalar-evolution.c: Add implementation.
22477         * tree-scalar-evolution.h: Add declarations.
22478
22479 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
22480
22481         PR rtl-optimization/15921
22482         * Makefile.in (global.o): Add recog.h.
22483
22484         * global.c (recog.h): Add the include-clause.
22485         (bb_info): New member earlyclobber.
22486         (allocate_bb_info, free_bb_info): Initialize/finish the new
22487         member.
22488         (earlyclobber_regclass, earlyclobber_regclass_length): The new
22489         global variables.
22490         (check_earlyclobber, regclass_intersect,
22491         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
22492         New functions.
22493         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
22494         (make_accurate_live_analysis): Modify pavin.
22495
22496 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
22497
22498         * tree-cfg.c (find_taken_edge): Statically compute the truth
22499         value of a predicate comparing an SSA_NAME to itself.
22500
22501 2004-07-12  Roger Sayle  <roger@eyesopen.com>
22502
22503         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
22504         rs6000 doesn't have shift-and-add or shift-and-sub instructions
22505         by returning the cost of a multiplication plus an addition.
22506
22507 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
22508
22509         PR tree-optimization/14107
22510         * gimplify.c (gimplify_return_expr): Accept a
22511         RETURN_EXPR with an error argument.
22512         * tree-optimize.c (init_tree_optimization_passes):
22513         Run pass_warn_function_return at -O0.
22514
22515 2004-07-12  Roger Sayle  <roger@eyesopen.com>
22516
22517         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
22518         index entry.
22519
22520 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
22521
22522         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
22523         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
22524         * config/mips/3000.md: Add copyright notice.  Remove automota and
22525         function units; use generic ones instead.  Only define reservations
22526         for things that are different from generic.md.  Extend each clause
22527         to include r3900.
22528         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
22529         * config/mips/mips.md: Include them. Remove define_function_units.
22530         (alu, imuldiv): New automata and units.
22531
22532 2004-07-12  Ben Elliston  <bje@au.ibm.com>
22533
22534         * doc/invoke.texi (Optimize Options): Document -frename-registers
22535         not being enabled by default at -O3.
22536
22537 2004-07-11  Roger Sayle  <roger@eyesopen.com>
22538
22539         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
22540         floating point additions, to keep real immediate constant positive.
22541         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
22542         into X + C, and leave positive real constants as X - C.
22543
22544 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22545
22546         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
22547
22548 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22549
22550         PR tree-optimization/15654
22551         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
22552
22553 2004-07-11  Roger Sayle  <roger@eyesopen.com>
22554
22555         * builtins.c (fold_builtin_fputs): Don't bother converting the
22556         return type to integer_type_node, as we've already checked that
22557         the result will be ignored.
22558
22559         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
22560         that signed addition, subtraction, multiplication, division,
22561         remainder, negation and absolute value may potentially trap.
22562
22563         * fold-const.c (fold_ignored_result): New function to strip
22564         non-side-effecting tree nodes from an expression whose result
22565         is ignored.
22566         (fold_convert): Call fold_ignored_result when casting a value
22567         to VOID_TYPE.
22568         (omit_one_operand):  Call fold_ignored_result on the "omitted"
22569         operand when building a COMPOUND_EXPR.
22570         (pedantic_omit_one_operand): Likewise.
22571         * tree.h (fold_ignored_result): Prototype here.
22572         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
22573         when we're going to ignore the result.
22574
22575 2004-07-11  Richard Henderson  <rth@redhat.com>
22576
22577         PR tree-opt/16383
22578         * tree-ssa-ccp.c (fold_stmt_r): Split out...
22579         * tree.c (fields_compatible_p, find_compatible_field): ... new.
22580         * tree.h (fields_compatible_p, find_compatible_field): Declare.
22581         * tree-sra.c (sra_hash_tree): Hash fields by offset.
22582         (sra_elt_eq): Use fields_compatible_p.
22583         (generate_one_element_ref): Use find_compatible_field.
22584
22585 2004-07-11  Richard Henderson  <rth@redhat.com>
22586
22587         PR tree-opt/16422
22588         * tree-sra.c (generate_one_element_init): New.
22589         (generate_element_init): Use it.
22590         (scalarize_init): Push/pop gimplify context around it.
22591         (find_new_referenced_vars_1, find_new_referenced_vars): New.
22592         * gimplify.c (gimplify_expr): Allow SSA_NAME.
22593
22594 2004-07-11  Roger Sayle  <roger@eyesopen.com>
22595
22596         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
22597         combine.c's combine_insn_cost.
22598         * rtl.h (insn_rtx_cost): Prototype here.
22599         * combine.c (combine_insn_cost): Delete function.
22600         (combine_validate_cost): Update callers of combine_insn_cost to
22601         call insn_rtx_cost instead.
22602         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
22603         requesting the rtx_cost of call and/or jump instructions.
22604
22605         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
22606         rtx_cost directly.  Don't request/use the cost of call or jump
22607         instructions.  Return -1 if the cost of any instruction can't be
22608         determined (or the BB contains a function call).
22609         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
22610         -1 (i.e. can't determine the cost of any instruction or the basic
22611         block contains a subroutine call).
22612         (find_if_case_2): Likewise.
22613
22614 2004-07-11  Roger Sayle  <roger@eyesopen.com>
22615
22616         * rs6000.c (struct processor_costs): Change semantics of fields to
22617         include the COST_N_INSNS scaling, and update all initializers.
22618         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
22619         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
22620         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
22621         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
22622
22623 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22624
22625         * LANGUAGES: Remove obsolete information.
22626
22627 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
22628
22629         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
22630         SIGBUS signal frames, the PSW address points *to* the faulting
22631         instruction, not after it.
22632
22633 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
22634
22635         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
22636         added to TLS symbol addresses.
22637
22638 2004-07-11  Richard Henderson  <rth@redhat.com>
22639
22640         * expmed.c (init_expmed): Use stack-local structures for
22641         temporary rtl.  Don't recognize shifts.
22642
22643 2004-07-11  Richard Henderson  <rth@redhat.com>
22644
22645         * expr.c (store_expr): Don't fiddle subreg promotion for types
22646         with precision smaller than the mode.
22647
22648 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22649
22650         * tree.h (all_types_permanent): Remove.
22651
22652 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22653
22654         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
22655         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
22656         * langhooks.c (lhd_clear_binding_stack): Remove.
22657         * langhooks-def.h (lhd_clear_binding_stack,
22658         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
22659         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
22660         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
22661         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
22662         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
22663         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
22664         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
22665         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
22666         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
22667         * tree.h (poplevel): Don't declare.
22668         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
22669         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
22670         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
22671         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
22672         Remove.
22673
22674 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22675
22676         PR tree-optimization/16437
22677         * c-common.c (shorten_compare): Don't mark result of conversion to
22678         narrower signed type as overflowing.
22679         * fold-const.c (decode_field_reference): Determine whether
22680         signedness comes from outer type using precision rather than size.
22681
22682 2004-07-11  Phil Edwards  <phil@codesourcery.com>
22683
22684         * configure.ac:  Alphabetize --enable-checking list, add
22685         missing valgrind entry.
22686         * configure:  Regenerate.
22687
22688 2004-07-11  Phil Edwards  <phil@codesourcery.com>
22689
22690         * doc/install.texi (Testing):  Fix syntax in "make check" example.
22691
22692 2004-07-10  James E Wilson  <wilson@specifixinc.com>
22693
22694         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
22695
22696 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22697
22698         PR rtl-optimization/16001
22699         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
22700         niter_expr.
22701
22702 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
22703
22704         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
22705
22706 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
22707             James Morrison  <phython@gcc.gnu.org>
22708
22709         * doc/contrib.texi (Contributors): Add gfortran contributors and
22710         fix a couple of typos.
22711
22712 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22713
22714         PR rtl-optimization/15387
22715         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
22716         to incoming args space correctly.
22717
22718 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22719
22720         * pa.c (output_indirect_call): Only use %r2 as the link register in
22721         indirect calls with the long PA 2.0 pc-relative branch.
22722
22723 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
22724
22725         * config/i386/i386.c (override_options): Pick a 64-bit CPU
22726         for the default tuning if TARGET_64BIT.
22727
22728 2004-07-10  Richard Henderson  <rth@redhat.com>
22729
22730         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
22731         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
22732
22733 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
22734
22735         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
22736         * expmed.c (store_bit_field, extract_bit_field): Remove last
22737         argument.
22738         * builtins.c (expand_builtin_signbit): Adjust callers.
22739         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
22740         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
22741         * ifcvt.c (noce_emit_move_insn): Likewise.
22742         * stmt.c (expand_return): Likewise.
22743         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
22744         store_field, expand_expr_real_1): Likewise.
22745
22746 2004-07-10  Richard Henderson  <rth@redhat.com>
22747
22748         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
22749
22750 2004-07-09  Mike Stump  <mrs@apple.com>
22751
22752         * config/darwin.c (no_dead_strip): Add.
22753         (HAVE_DEAD_STRIP): Add.
22754         (darwin_emit_unwind_label): Ensure that we don't dead code strip
22755         the .eh label.
22756
22757 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
22758
22759         * tree-ssa-loop-im.c: New file.
22760         * Makefile.in (tree-ssa-loop-im.o): Add.
22761         * cfgloop.c (superloop_at_depth): New function.
22762         * cfgloop.h (superloop_at_depth): Declare.
22763         * common.opt (ftree-lim): New flag.
22764         * expr.c (array_ref_up_bound): New function.
22765         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
22766         * timevar.def (TV_LIM): New timevar.
22767         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
22768         computing immediate uses of a phi node.
22769         * tree-flow.h (struct tree_ann_common_d): Add aux field.
22770         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
22771         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
22772         * tree-pass.h (pass_lim): Declare.
22773         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
22774         functions.
22775         (pass_lim): New pass structure.
22776         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
22777         * tree.c (in_array_bounds_p): New function.
22778         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
22779         (in_array_bounds_p, array_ref_up_bound): Declare.
22780         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
22781         * doc/passes.texi (tree-ssa-loop-im.c): Document.
22782
22783 2004-07-09  Richard Henderson  <rth@redhat.com>
22784
22785         * builtins.c (expand_builtin_stpcpy): Don't modify len.
22786
22787         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
22788         with prejudice.
22789
22790 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
22791
22792         * flags.h: Delete redundant prototypes that are being generated
22793         in options.h from common.opt.
22794         * common.opt: Add in the expository comments formerly in flags.h.
22795
22796 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22797
22798         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
22799         available for use only when TARGET_MMX/_SSE is set, and check for
22800         variable argument function if any register count is non-zero.
22801         (function_arg): Correctly suppress repeated warnings for passing SSE
22802         vectors are arguments without SSE enabled.
22803         (ix86_function_arg_boundary): Without SSE enabled, the use of what
22804         would be SSE register modes does no longer influence the alignment.
22805
22806 2004-07-09  Richard Henderson  <rth@redhat.com>
22807
22808         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
22809         Always align upward to arg boundary.  Use size_in_bytes/round_up.
22810         Maintain type-correctness of constants.
22811         * stor-layout.c (round_up, round_down): Special-case powers of 2.
22812
22813 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
22814
22815         * config/sparc/sparc.c (*_costs): Scale instruction costs
22816         by COSTS_N_INSNS.
22817         (sparc_rtx_costs): Adjust as appropriate.
22818
22819 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22820
22821         * config/i386/mm3dnow.h: New.
22822         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
22823
22824 2004-07-09  Richard Henderson  <rth@redhat.com>
22825
22826         * simplify-rtx.c (simplify_const_relational_operation): Only
22827         look at bounds of scalar integers.
22828
22829 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22830
22831         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
22832
22833 2004-07-09  Andrew Pinski  <apinski@apple.com>
22834
22835         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
22836         always referenced.
22837         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
22838         UOBJC_METACLASS_decl.
22839
22840 2004-07-09  James E Wilson  <wilson@specifixinc.com>
22841
22842         PR target/16364
22843         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
22844         do return a parallel if hfa_mode == XFmode and mode == TImode.
22845
22846 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22847
22848         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
22849         permissible for unary plus.
22850
22851 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22852
22853         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
22854         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
22855         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
22856         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
22857         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
22858         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
22859         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
22860         (BUILTIN_xxxIMAX): New.
22861         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
22862         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
22863         BUILT_IN_PARITYIMAX.
22864
22865 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
22866
22867         * config/sparc/sparc.h (processor_costs): Define.
22868         (sparc_costs): Declare.
22869         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
22870         hypersparc_costs, sparclet_costs, ultrasparc_costs,
22871         ultrasparc3_costs): New.
22872         (sparc_override_options): Set sparc_costs as appropriate.
22873         (sparc_rtx_costs): Use sparc_costs instead of messy
22874         conditionals.
22875
22876 2004-07-09  Steven Bosscher  <stevenb@suse.de>
22877
22878         * doc/md.texi (Processor pipeline description): Mention that
22879         the old pipeline description is deprecated.
22880
22881         * config/rs6000/7450.md (automaton ppc7450): Split up, move
22882         mciu_7450 function unit to...
22883         (automaton ppc7450mciu): ...new automaton.
22884
22885         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
22886         (schedule_block): Don't consider inserting bubbles.
22887         (sched_init): Don't initialize DFA bubbles.
22888         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
22889         TARGET_SCHED_DFA_BUBBLE): Remove.
22890         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
22891         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
22892         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
22893
22894         * stmt.c (conditional_context): Remove prototype.
22895         * tree.h (conditional_context): Remove.
22896         * tree-cfg.c (pre_insert_on_edge): Remove.
22897
22898         * c-common.h (c_expand_asm_operands): Remove prototype.
22899         * c-typeck.c (c_expand_asm_operands): Remove.
22900
22901 2004-07-09  Jan Beulich  <jbeulich@novell.com>
22902
22903         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
22904         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
22905         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
22906         and V8QI are class SSE. All sufficiently small remaining vector modes
22907         must be passed in one or two integer registers.
22908         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
22909         returned in memory.
22910         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
22911         __builtin_ia32_pmuludq128 have non-uniform argument and return types
22912         and must thus be handled explicitly.
22913         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
22914         MMX and XMM regs.
22915         (movv8qi_internal, movv4hi_internal, movv2si_internal,
22916         movv2sf_internal): Permit moving between MMX and XMM registers (since
22917         MMX areguments and return values are passed in XMM registers).
22918         (sse2_umulsidi3): Correct type and mode.
22919
22920 2004-07-09  Richard Henderson  <rth@redhat.com>
22921
22922         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
22923
22924 2004-07-09  Eric Christopher  <echristo@redhat.com>
22925
22926         * config/rs6000/40x.md: Split into two automatons.
22927
22928 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
22929             Andrew Pinski  <apinski@apple.com>
22930
22931         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
22932         on when we have more than one input file.
22933         (c_common_parse_file): Restore loop over all input files.
22934         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
22935
22936         * c-decl.c (set_type_context): New function.
22937         (pop_scope): Use it to set context of types.  When we
22938         encounter a TYPE_DECL, set the context of the attached type too.
22939         (pop_file_scope): Don't call cpp_undef_all here.
22940         (diagnose_mismatched_decls): Do not complain about a second
22941         definition of an 'extern inline' function if it's not in the
22942         same translation unit.  Do not complain about inline
22943         declaration after use if the use was in a different
22944         translation unit.
22945         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
22946         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
22947         the external scope.
22948         (pushdecl_top_level): Likewise.
22949         (grokdeclarator): Clarify what is going on with setting
22950         DECL_EXTERNAL on function types, a little.
22951         (c_write_global_declarations): Don't do anything if
22952         -fsyntax-only or errors have been encountered.
22953
22954 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
22955
22956         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
22957
22958 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22959
22960         PR target/16459
22961         * pa.c (output_indirect_call): Use %r2 as the link register when
22962         calling $$dyncall with a pc-relative branch.
22963
22964 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
22965
22966         * doc/install.texi (Binaries): Mention OpenPKG.
22967
22968 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
22969
22970         Fix PR tree-optimization/15555
22971         * tree-dfa.c (dump_variable): If the variable is a pointer
22972         SSA_NAME, also dump its points-to information.
22973         * tree-flow.h (struct ptr_info_def): Add field
22974         is_dereferenced.
22975         (dump_points_to_info_for): Declare.
22976         (debug_points_to_info_for): Declare.
22977         * tree-optimize.c (init_tree_optimization_passes): Add a
22978         second alias analysis pass after DOM2.
22979         Move pass_del_pta to a later spot.
22980         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
22981         create a name tags when we find a dereferenced pointer.  Just
22982         mark the pointer dereferenced.
22983         (collect_points_to_info_for): Move code to clear points-to
22984         information to create_name_tags.
22985         (create_name_tags): New function.
22986         (compute_flow_sensitive_aliasing): Call it.
22987         (setup_pointers_and_addressables): Mark type tags for renaming
22988         here instead of ...
22989         (create_memory_tag): ... here.
22990         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
22991         (dump_points_to_info_for): Declare extern.
22992         (debug_points_to_info_for): New function.
22993
22994 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
22995
22996         * config/arc/arc.md: Switch to DFA-based scheduler description.
22997         * config/arc/arc.c: Switch to DFA-based scheduler description.
22998
22999 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
23000
23001         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
23002         pointer.
23003
23004 2004-07-09  Richard Henderson  <rth@redhat.com>
23005
23006         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
23007         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23008         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
23009         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
23010
23011         * config/v850/v850-protos.h (v850_va_arg): Remove.
23012         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23013         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
23014         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
23015         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
23016         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
23017
23018 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
23019
23020         PR target/12133
23021         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
23022         and DImode to use +/-4k offset.
23023
23024 2004-07-09  Richard Henderson  <rth@redhat.com>
23025
23026         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
23027         Remove.
23028         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23029         (xstormy16_gimplify_va_arg_expr): Rewrite from
23030         xstormy16_expand_builtin_va_arg.
23031         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
23032
23033         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
23034         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
23035
23036         * config/sh/sh-protos.h (sh_va_arg): Remove.
23037         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23038         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
23039         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
23040
23041         * config/pa/pa-protos.h (hppa_va_arg): Remove.
23042         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23043         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
23044         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
23045
23046         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
23047         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23048         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
23049         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
23050
23051 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
23052
23053         * config/sparc/sparc.md (return): Rewrite length formula.
23054         * config/sparc/sparc.c (output_return): Pass 1 as 5th
23055         argument to final_scan_insn when in a delay slot.
23056         (output_sibcall): Likewise.
23057
23058 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
23059
23060         * arm.c (arm_cpp_interwork): New variable.
23061         (arm_override_options): Set it if TARGET_INTERWORK was on the command
23062         line.
23063         * arm.h (arm_cpp_interwork): Declare it.
23064         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
23065         __THUMB_INTERWORK__ in the preprocessor.
23066
23067 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
23068
23069         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
23070
23071 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
23072
23073         PR target/16416
23074         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
23075         Override default settings to account for -m32 and -m64.
23076
23077 2004-07-08  Randolph Chung  <tausq@debian.org>
23078
23079         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
23080
23081 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
23082
23083         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
23084         before comparing it as such.
23085
23086 2004-07-08  Richard Henderson  <rth@redhat.com>
23087
23088         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
23089         temporary.  Use bit arithmetic to align.
23090
23091 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
23092
23093         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
23094         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
23095         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
23096         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
23097         add_labels_and_missing_jumps, find_jump_block,
23098         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
23099         Likewise.
23100         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
23101         link_btr_uses, move_btr_def): Likewise.
23102         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
23103         expand_builtin_expect_jump): Likewise.
23104         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
23105         * calls.c (expand_call, emit_library_call_value_1): Likewise.
23106         * cfganal.c (forwarder_block_p): Likewise.
23107         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
23108         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
23109         find_bb_boundaries): Likewise.
23110         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
23111         merge_blocks_move_predecessor_nojumps,
23112         merge_blocks_move_successor_nojumps, insns_match_p,
23113         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
23114         try_optimize_cfg): Likewise.
23115         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
23116         * cfglayout.c (skip_insns_after_block, label_for_bb,
23117         record_effective_endpoints, insn_locators_initialize,
23118         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
23119         * cfgmainloop.c (create_loop_notes): Likewise.
23120         * cfgrtl.c (delete_insn, delete_insn_chain,
23121         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
23122         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
23123         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
23124         redirect_branch_edge, force_nonfallthru_and_redirect,
23125         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
23126         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
23127         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
23128         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
23129         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
23130         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
23131         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
23132         * combine.c (combine_instructions, can_combine_p, try_combine,
23133         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
23134         distribute_notes, distribute_links, insn_cuid): Likewise.
23135         * cse.c (fold_rtx, cse_insn, cse_around_loop,
23136         invalidate_skipped_block, cse_set_around_loop,
23137         cse_end_of_basic_block, cse_main, cse_basic_block,
23138         cse_condition_code_reg): Likewise.
23139         * cselib.c (cselib_process_insn): Likewise.
23140         * ddg.c (create_ddg): Likewise.
23141         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
23142         Likewise.
23143         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
23144         gen_label_die, dwarf2out_var_location): Likewise.
23145         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
23146         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
23147         last_call_insn, active_insn_p, next_label, prev_label,
23148         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
23149         add_insn_before, remove_insn, add_function_usage_to,
23150         reorder_insns, find_line_note, remove_unnecessary_notes,
23151         emit_insn_after_1, classify_insn): Likewise.
23152         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
23153         connect_post_landing_pads, sjlj_mark_call_sites,
23154         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
23155         can_throw_internal, can_throw_external, set_nothrow_function_flags,
23156         convert_to_eh_region_ranges): Likewise.
23157         * explow.c (optimize_save_area_alloca): Likewise.
23158         * expr.c (expand_expr_real): Likewise.
23159         * final.c (insn_current_reference_address, compute_alignments,
23160         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
23161         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
23162         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
23163         propagate_block_delete_insn, propagate_one_insn,
23164         init_propagate_block_info, propagate_block, libcall_dead_p,
23165         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
23166         Likewise.
23167         * function.c (instantiate_virtual_regs, reorder_blocks_1,
23168         expand_function_start, expand_function_end, contains,
23169         thread_prologue_and_epilogue_insns,
23170         reposition_prologue_and_epilogue_notes): Likewise.
23171         * gcse.c (constprop_register, bypass_conditional_jumps,
23172         insert_insn_end_bb, gcse_after_reload): Likewise.
23173         * genemit.c (gen_expand, gen_split): Likewise.
23174         * genpeep.c (gen_peephole, main): Likewise.
23175         * global.c (build_insn_chain): Likewise.
23176         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
23177         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
23178         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
23179         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
23180         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
23181         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
23182         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
23183         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
23184         dead_or_predicable): Likewise.
23185         * integrate.c (try_constants): Likewise.
23186         * jump.c (rebuild_jump_labels, cleanup_barriers,
23187         purge_line_number_notes, init_label_info, mark_all_labels,
23188         squeeze_notes, get_label_before, get_label_after,
23189         reversed_comparison_code_parts, simplejump_p, pc_set,
23190         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
23191         delete_barrier, delete_prior_computation, delete_computation,
23192         delete_related_insns, delete_for_peephole, redirect_jump):
23193         Likewise.
23194         * lcm.c (optimize_mode_switching): Likewise.
23195         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
23196         Likewise.
23197         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
23198         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
23199         * loop-iv.c (simplify_using_assignment): Likewise.
23200         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
23201         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
23202         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
23203         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
23204         check_insn_for_givs, check_final_value, update_giv_derive,
23205         basic_induction_var, product_cheap_p, check_dbra_loop,
23206         loop_insn_first_p, last_use_this_basic_block,
23207         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
23208         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
23209         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
23210         sms_schedule_by_order): Likewise.
23211         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
23212         * postreload.c (reload_cse_simplify_operands, reload_combine,
23213         reload_cse_move2add): Likewise.
23214         * predict.c (can_predict_insn_p, estimate_probability,
23215         expected_value_to_br_prob, process_note_predictions): Likewise.
23216         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
23217         * profile.c (branch_prob): Likewise.
23218         * ra-build.c (live_out_1, livethrough_conflicts_bb,
23219         detect_webs_set_in_cond_jump): Likewise.
23220         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
23221         ra_print_rtl_with_bb): Likewise.
23222         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
23223         * recog.c (next_insn_tests_no_inequality, find_single_use,
23224         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
23225         * reg-stack.c (next_flags_user, record_label_references,
23226         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
23227         compensate_edge, convert_regs_1): Likewise.
23228         * regclass.c (scan_one_insn): Likewise.
23229         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
23230         regmove_optimize, fixup_match_1, single_set_for_csa,
23231         combine_stack_adjustments_for_block): Likewise.
23232         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
23233         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
23234         find_equiv_reg): Likewise.
23235         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
23236         reload_as_needed, emit_input_reload_insns, do_output_reload,
23237         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
23238         Likewise.
23239         * reorg.c (find_end_label, emit_delay_sequence,
23240         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
23241         get_jump_flags, rare_destination, mostly_true_jump,
23242         try_merge_delay_insns, redundant_insn, own_thread_p,
23243         fill_simple_delay_slots, fill_slots_from_thread,
23244         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
23245         dbr_schedule): Likewise.
23246         * resource.c (find_basic_block, next_insn_no_annul,
23247         find_dead_or_set_registers, mark_target_live_regs): Likewise.
23248         * rtl.h (RTX_PREV): Likewise.
23249         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
23250         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
23251         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
23252         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
23253         tablejump_p, computed_jump_p, insns_safe_to_move_p,
23254         find_first_parameter_load, can_hoist_insn_p): Likewise.
23255         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
23256         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
23257         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
23258         schedule_ebbs): Likewise.
23259         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
23260         is_conditionally_protected, can_schedule_ready_p,
23261         add_branch_dependences, debug_dependencies): Likewise.
23262         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
23263         Likewise.
23264         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
23265         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
23266         set_dominates_use, ujump_to_loop_cont): Likewise.
23267         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
23268         * varasm.c (output_constant_pool_1): Likewise.
23269
23270 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
23271
23272         * tree-scalar-evolution.c: New file.
23273         * tree-scalar-evolution.h: New file.
23274         * tree-ssa-loop-niter.c: New file.
23275         * Makefile.in (SCEV_H): New.
23276         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
23277         * cfgloop.h (struct loop): Add bounds field.
23278         * tree-flow.h (struct tree_niter_desc): New type.
23279         (number_of_iterations_cond, number_of_iterations_exit,
23280         loop_niter_by_eval, find_loop_niter_by_eval,
23281         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
23282         free_numbers_of_iterations_estimates): Declare.
23283         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
23284         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
23285         * doc/invoke.texi (max-iterations-to-track): Document.
23286
23287 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
23288
23289         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
23290         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
23291         (MODE_AFTER): Add cast appropriately.
23292         * config/sh/sh.md (movdi splitter): Likewise.
23293         (casesi_worker_2): Add const qualifier appropriately.
23294         (eh_return): Remove unused variable.
23295         (insv): Initialize v;
23296
23297 2004-07-08  Richard Henderson  <rth@redhat.com>
23298
23299         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
23300         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23301         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
23302         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
23303         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
23304
23305         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
23306         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23307         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
23308         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
23309
23310         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
23311         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23312         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
23313         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
23314
23315         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
23316         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23317         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
23318         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
23319
23320         * config/i860/i860-protos.h (i860_va_arg): Remove.
23321         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23322         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
23323         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
23324
23325 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
23326
23327         * system.h: Prototype getpagesize if missing.
23328         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
23329         * configure: Regenerate.
23330         * config.in: Regenerate.
23331
23332 2004-07-08  Richard Henderson  <rth@redhat.com>
23333
23334         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
23335         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23336         (fr30_gimplify_va_arg_expr): New.
23337         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
23338         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
23339
23340 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
23341
23342         PR target/16414
23343         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
23344         of asm_noperands result.
23345
23346 2004-07-08  Richard Henderson  <rth@redhat.com>
23347
23348         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
23349         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23350         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
23351         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
23352
23353 2004-07-08  Richard Henderson  <rth@redhat.com>
23354
23355         * builtins.c (ind_gimplify_va_arg_expr): New.
23356         * tree.h (ind_gimplify_va_arg_expr): Declare.
23357         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
23358
23359 2004-07-08  Jan Beulich  <jbeulich@novell.com>
23360
23361         * expmed.c (extract_bit_field): Correct condition to use vec_extract
23362         patterns also on vector elements other than the first one.
23363         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
23364         break statements.
23365
23366 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
23367
23368         * config/rs6000/darwin-ldouble.c: Correct reference
23369         to the Linnainmaa paper.
23370
23371 2004-07-08  Richard Henderson  <rth@redhat.com>
23372
23373         * config/arc/arc-protos.h (arc_va_arg): Remove.
23374         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23375         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
23376         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
23377
23378         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
23379         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
23380         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
23381         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
23382
23383 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23384
23385         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
23386
23387 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
23388
23389         * c-decl.c (static_ctors, static_dtors): Make static.
23390         (pop_file_scope): Call c_common_write_pch and
23391         cgraph_finalize_compilation_unit here.
23392         (build_cdtor): Moved here from c-objc-common.c; simplify.
23393         (c_write_global_declarations_1): Clarify comment.
23394         (c_write_global_declarations): Close the external scope before
23395         doing anything else.  Call build_cdtor, cgraph_optimize, and
23396         mudflap_finish_file here.
23397         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
23398         Clarify comment.
23399         * c-objc-common.c: No need to include cgraph.h.
23400         (build_cdtor): Moved to c-decl.c.
23401         (c_objc_common_finish_file): Delete.
23402         * c-tree.h: Update to match.
23403         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
23404         (generate_static_references): Set TREE_USED before calling finish_decl.
23405         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
23406         on the static_instances_decl.
23407
23408 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
23409
23410         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
23411         decls when there is only one input translation unit.
23412         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
23413         change of 2004-07-05; do not treat declarations with
23414         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
23415         * opts.c (cur_in_fname): Delete.
23416         * opts.h: Likewise.
23417         * tree.c: Revert changes of 2004-07-05; no special treatment
23418         for TRANSLATION_UNIT_DECLs.
23419         * Makefile.in (tree.o): Update dependencies.
23420
23421 2004-07-08  Roger Sayle  <roger@eyesopen.com>
23422
23423         * builtins.c (fold_builtin_strcpy): Merge functionality from
23424         simplify_builtin_strcpy.  Add additional len argument.  No longer
23425         static.  Remove function prototype.
23426         (fold_builtin_strncpy): Likewise integrate functionality from
23427         simplify_builtin_strncpy.  Add additional slen argument.  No
23428         longer static.  Remove function prototype.
23429         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
23430         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
23431         types of "ignore" and "unlocked" parameters to bool.
23432         (fold_builtin_1):  Add additional ignore argument.  Call renamed
23433         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
23434         builtins.  Update arguments to fold_builtin_strncpy and
23435         fold_builtin_strcpy.  Add function prototype.
23436         (fold_builtin): Add additional Boolean ignore argument to pass
23437         to fold_builtin_1.
23438         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
23439         and fold_builtin_strncpy instead of simplify_builtin_fputs,
23440         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
23441
23442         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
23443         simplify_builtin_strncpy): Delete function prototypes.
23444         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
23445         fold_builtin_strncpy): Add function prototypes here.
23446         (fold_builtin): Update function prototype with new "bool ignore".
23447
23448         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
23449         (ccp_fold_builtin):  Update call to fold_builtin.  Call
23450         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
23451         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
23452         simplify_builtin_strncpy respectively.
23453         * fold-const.c (fold): Update call to fold_builtin.
23454
23455 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
23456
23457         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
23458         to strcpy.
23459
23460         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
23461         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
23462         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
23463         * calls.c: Remove ifdefs of macros above.
23464         * functions.c: Likewise.
23465         * expr.c: Likewise.
23466
23467 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23468
23469         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
23470         (arch attribute): Delete.
23471         (current_function_calls_alloca attribute): Rename into calls_alloca.
23472         (calls_eh_return): New attribute.
23473         (leaf_function): Likewise.
23474         (length attribute): Fix formula for sibcalls.
23475         (return insn): Correctly compute the 'length' attribute.
23476         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
23477
23478 2004-07-08  Richard Henderson  <rth@redhat.com>
23479
23480         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
23481         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
23482         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
23483         * tree-eh.c (lower_eh_constructs_1): Likewise.
23484         * tree-sra.c (sra_walk_modify_expr): Likewise.
23485         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
23486         (eliminate_unnecessary_stmts): Likewise.
23487         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
23488         * tree-tailcall.c (optimize_tail_call): Likewise.
23489         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
23490
23491 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
23492             Jakub Jelinek  <jakub@redhat.com>
23493
23494         * config/i386/i386.c (override_options): Enable
23495         SSE prefetches with -mtune, as long as we are
23496         compiling for i686 or higher.  All i686 processors
23497         accept SSE prefetches as NOPS, some i586's don't.
23498
23499 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23500
23501         PR target/10567
23502         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
23503
23504 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
23505
23506         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
23507         the handling of clobbering ASM_EXPRs.
23508
23509 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23510
23511         PR target/16430
23512         * config/sparc/sparc.c (function_value): In 64-bit mode,
23513         return the aggregates larger than 16 bytes like unions.
23514
23515 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23516
23517         PR target/16199
23518         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
23519         'temp' is zero, generate new pseudos as needed and emit the
23520         sequence of insns in single-assignment form.  Resync comments
23521         with code.
23522         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
23523         function before reload.
23524
23525 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
23526
23527         * vec.c (vec_assert_fail): Remove duplicate 'function'.
23528
23529         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
23530
23531         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
23532         Allocation is signed.
23533         (VEC_reserve): Return flag, allocation is signed.
23534
23535 2004-07-08  Richard Henderson  <rth@redhat.com>
23536
23537         * tree-ssa-ccp.c (fold_stmt): Get type directly from
23538         OBJ_TYPE_REF_OBJECT.
23539
23540 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
23541             Neil Booth  <neil@daikokuya.co.uk>
23542
23543         PR c/2511
23544         PR c/3325
23545         * c-decl.c (finish_struct): Ensure bit-fields are given the
23546         correct type.
23547         * c-common.c (c_common_signed_or_unsigned_type): For C, require
23548         the precision to match as well as the mode.
23549         * expr.c (reduce_to_bit_field_precision): New function.
23550         (expand_expr_real_1): Reduce expressions of bit-field type to
23551         proper precision.
23552         * langhooks.h (reduce_bit_field_operations): New hook.
23553         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
23554         Define.
23555         * c-lang.c, objc/objc-lang.c
23556         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
23557         * objc/objc-act.c (check_ivars): Convert types to bit-field types
23558         before checking.
23559         * tree.c (build_nonstandard_integer_type): New function.
23560         * tree.h (build_nonstandard_integer_type): New prototype.
23561         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
23562         conversions between integer and boolean types as useless.
23563
23564 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
23565
23566         * c-common.c (c_common_nodes_and_builtins): Do not
23567         create __builtin_ptrdiff_t and __builtin_size_t.
23568
23569 2004-07-08  Andrew Pinski  <apinski@apple.com>
23570
23571         * Makefile.in (libbackend.o): Add -combine to the gcc
23572         command line.
23573
23574 2004-07-08  Nick Clifton  <nickc@redhat.com>
23575
23576         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
23577         Set to -Os.
23578
23579 2004-07-08  Richard Henderson  <rth@redhat.com>
23580
23581         * except.c (expand_eh_region_start, expand_eh_region_end,
23582         expand_eh_handler, expand_eh_region_end_cleanup,
23583         expand_start_all_catch, expand_start_catch, expand_end_catch,
23584         expand_end_all_catch, expand_eh_region_end_allowed,
23585         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
23586         expand_eh_region_end_fixup): Remove.
23587         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
23588         cleanups, outer_cleanups, label_chain, exception_region.
23589         (struct goto_fixup): Remove stack_level, cleanup_list_list.
23590         (struct label_chain): Remove.
23591         (struct stmt_status): Remove x_stack_block_stack.
23592         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
23593         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
23594         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
23595         end_cleanup_deferral, last_cleanup_this_contour,
23596         containing_blocks_have_cleanups_or_stack_level,
23597         any_pending_cleanups): Remove.
23598         (expand_null_return_1): Take no arguments.
23599         (expand_label, expand_naked_return, expand_return,
23600         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
23601         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
23602         expand_end_case_type): Don't use any of them.
23603         * calls.c (expand_call): Likewise.
23604         * dojump.c (do_jump): Likewise.
23605         * function.c (expand_function_end): Likewise.
23606         * expr.c (store_expr, expand_expr_real_1): Likewise.
23607         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
23608         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
23609         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
23610         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
23611         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
23612         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
23613         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
23614         for WITH_CLEANUP_EXPR.
23615         (gimple_push_cleanup): Likewise.
23616         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
23617         * print-tree.c (print_node): Likewise.
23618         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
23619         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
23620         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
23621         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
23622         (GOTO_SUBROUTINE_EXPR): Remove.
23623         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
23624         (DECL_TOO_LATE): Remove.
23625         * except.h, tree.h: Update decls.
23626
23627 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
23628
23629         * explow.c (optimize_save_area_alloca): Do not accept parameters.
23630         * passes.c (rest_of_handle_final): Handle symout.
23631         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
23632         Push timevar here.
23633         (rest_of_handle_sched): Break out SMS.  Remove ifs for
23634         flag_schedule_insns and flag_modulo_sched.
23635         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
23636         collect at the end.
23637         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
23638         (rest_of_handle_partition_blocks, rest_of_handle_sms,
23639         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
23640         rest_of_handle_mode_switching, rest_of_handle_jump,
23641         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
23642         rest_of_handle_jump2, rest_of_handle_postreload,
23643         rest_of_handle_flow2, rest_of_clean_state,
23644         rest_of_handle_shorten_branches,
23645         rest_of_handle_prologue_epilogue,
23646         rest_of_handle_branch_target_load_optimize): New.
23647         (rest_of_compilation): Call the above.  Remove ggc_collect
23648         calls moved to rest_of_handle_*.
23649         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
23650
23651         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
23652         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
23653         * except.h (set_nothrow_function_flags): Update comment.
23654         * function.c (current_function_nothrow): Remove.
23655         * output.h (current_function_nothrow): Remove.
23656         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
23657         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
23658
23659 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
23660
23661         PR bootstrap/16326
23662         * reorg.c: Revert 2004-06-30 change.
23663         (find_end_label): If HAVE_epilogue and !HAVE_return,
23664         return 0 instead of creating a label at the end of the insn chain.
23665         (optimize_skip): Account for the failure mode of find_end_label.
23666         (fill_simple_delay_slots): Likewise.
23667         (fill_slots_from_thread): Likewise.
23668         (relax_delay_slots): Likewise.
23669
23670 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
23671
23672         * tree-flow.h (addressable_vars): Declare.
23673         * tree-ssa-alias.c (addressable_vars): Define.
23674         (setup_pointers_and_addressables): Add addressable variables
23675         to addressable_vars.
23676         * tree-ssa-operands.c (get_stmt_operands): Move
23677         handling of ASM_EXPRs ...
23678         (get_asm_expr_operands): ... here.
23679         When the ASM_EXPR clobbers memory, also clobber addressable
23680         variables.
23681         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
23682         (delete_tree_ssa): Reset addressable_vars.
23683
23684 2004-07-07  Jan Beulich  <jbeulich@novell.com>
23685             Richard Henderson  <rth@redhat.com>
23686
23687         * varasm.c (assemble_variable): Use assemble_zeros for
23688         zero-initialized variables.
23689         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
23690         for SECCAT_BSS and SECCAT_TBSS.
23691
23692 2004-07-07  Jan Beulich  <jbeulich@novell.com>
23693
23694         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
23695
23696         * expmed.c (emit_store_flag): Also special-case double-word
23697         (in-)equality comparison against -1.
23698
23699         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
23700         passing arguments the containers for which are registers.
23701
23702         * calls.c (emit_library_call_value_1): Use mode of function parameter
23703         rather than that of argument since constants have none.
23704
23705 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
23706
23707         Introduce H8SX support.
23708         * expr.c (expand_strcpy): Renamed and moved to...
23709         * builtins.c (expand_movstr): ... here.  Tweak.
23710         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
23711         computed or has side effects.
23712         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
23713         unused, or if mempcpy fails.  Adjust the return value in the
23714         latter case.  Use movstr if everything else fails.
23715         * doc/md.texi (movstr): Document.
23716         (movmemM, clrmemM): Fix explanation of memory block operands.
23717         * config/h8300/h8300.md (stpcpy): Renamed to...
23718         (movstr): ... this.  Adjust.
23719         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
23720         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
23721         movmem* and clrstr* to clrmem*.
23722         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
23723         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
23724         GENERAL_REGS, always.
23725         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
23726         getting the stack pointer as addr.
23727         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
23728         from general_operand_dst.
23729         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
23730         variant of...
23731         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
23732         instead of requiring it to match only before reload.
23733         (stpcpy_internal_normal): New, normal-mode variant of...
23734         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
23735         `D' instead of requiring it to match only before reload.
23736         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
23737         mode argument.
23738         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
23739         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
23740         h8300_get_index.
23741         * config/h8300/h8300.md (attr type): Add call.
23742         (attr can_delay): If type is call, set it no.
23743         (call, call_value): Set type to call.
23744         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
23745         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
23746         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
23747         * tree.c (get_narrower): Don't narrow integral types into
23748         non-integral types.
23749         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
23750         frame_size *before* the first use.
23751         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
23752         on input.
23753         (peephole2): Don't widen instructions that push SP.  Move
23754         decrement of SP to the end of all stm-generating peepholes.
23755         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
23756         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
23757         and OR to set it to all ones.
23758         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
23759         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
23760         (call, call_value): Set can_delay to "no".
23761         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
23762         * config/h8300/h8300.md (extzv): Make subreg check more robust.
23763         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23764         * config/h8300/h8300.md (*brabit): Remove.
23765         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
23766         zero_extract.  Use bit_memory_operand as the predicate for
23767         operand 1 and 'WU' as the constraint.  Check the difference
23768         between the base length and the final one when deciding which
23769         type of branch to use.
23770         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23771         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
23772         Use convert_move to extend the result for TARGET_H8300SX.  Check
23773         for QImode memory references.  Optimize the case where the
23774         destination is a paradoxical subreg.
23775         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23776         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
23777         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
23778         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
23779         * config/h8300/h8300.md: Include mova.md
23780         (length_table): Add mova and mova_zero.
23781         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
23782         after all constant addresses for '%R', '%X', '%T' and '%S'.
23783         (h8300_mova_length): New function.
23784         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
23785         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
23786         dependencies for s-config, etc.
23787         * config/h8300/gemova.sh: New file.
23788         * config/h8300/mova.md: Generated.
23789         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
23790         * config/h8300/h8300.c (h8300_bitfield_length): New.
23791         (nibble_operand): Adjust.
23792         (h8300_binary_length): Handle conditional binary op.
23793         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
23794         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
23795         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
23796         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
23797         constraints.  WU is introduced as a variant of U that requires a
23798         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
23799         * config/h8300/h8300.md (attr type): Added bitbranch.
23800         (attr length_table): Added bitfield and bitbranch.
23801         (attr length): Compute bitbranch length.
23802         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
23803         least-significant bit of a byte.
23804         (brabit, brabc, brabs): New.
23805         (insv, extzv): Emit bfst and bfld on H8300SX.
23806         (bfld, bfst, seq, sne): New.
23807         (bstzhireg, cmpstz, bstz, bistz): New.
23808         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
23809         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
23810         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
23811         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
23812         (h8sx_unary_memory_operator): New function.
23813         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
23814         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
23815         * config/h8300/h8300.md: Add peepholes to combine reloads and
23816         arithmetic insns.
23817         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
23818         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
23819         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
23820         (and?i, ior?i, xor?i): Likewise.
23821         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
23822         * config/h8300/h8300.c: Move enums and prototypes to head of file.
23823         Various whitespace fixes.
23824         (h8300_constant_length): New function, split out from...
23825         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
23826         (h8300_classify_operand): Use IN_RANGE.
23827         (h8300_classify_operand): Use h8300_constant_length.
23828         (h8300_short_move_mem_p): Tighten size check.
23829         (h8sx_mergeable_memrefs_p): Tighten equality check.
23830         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
23831         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
23832         for -msx.
23833         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
23834         * config/h8300/crtn.asm: Likewise.
23835         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
23836         if __H8300SX__ is defined.
23837         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
23838         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
23839         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
23840         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
23841         addresses as mode-dependent.
23842         * config/h8300/h8300.c (print_operand_address): Update call to
23843         h8300_get_index.
23844         (h8300_get_index): Take a mode argument.  Rework to fix an
23845         earlier misunderstanding.
23846         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
23847         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
23848         into a register if TARGET_H8300SX.
23849         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
23850         TARGET_H8300SX.  Also disable related define_splits.
23851         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
23852         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
23853         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
23854         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
23855         * config/h8300/h8300.h (OK_FOR_Z): New macro.
23856         (EXTRA_CONSTRAINT_STR): Check it.
23857         * config/h8300/h8300.c (h8300_classify_operand): Accept null
23858         class arguments.
23859         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
23860         * config/h8300/h8300.md (length_table): Add mov_imm4.
23861         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
23862         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
23863         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
23864         be a label.
23865         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
23866         * config/h8300/h8300.c (h8300_reorg): New function.
23867         (TARGET_MACHINE_DEPENDENT_REORG): Define.
23868         * config/h8300/h8300.md (length): Subtract the length of the
23869         delay slot from (pc) when checking the range of forward branches.
23870         (delay_slot, can_delay): New attributes.
23871         (define_delay): Add bra/s handling.
23872         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
23873         (jump): Add delayed-branch handling.
23874         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
23875         * expr.c (expand_strcpy): New function.
23876         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
23877         (expand_builtin_stpcpy): Likewise.
23878         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
23879         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
23880         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
23881         handling to improve register allocation for -fno-omit-frame-pointer.
23882         (h8sx_split_movmd): Delete, moving er6 handling into...
23883         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
23884         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
23885         (movmd): Add calls to copy_rtx.
23886         (movmd_internal): In the second alternative, allow the initial and
23887         final destination registers to be different .  Update the splitter
23888         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
23889         instead of h8sx_split_movmd.
23890         (stpcpy, movsd): New expanders.
23891         (movsd_internal): New define_insn.
23892         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
23893         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
23894         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
23895         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
23896         and DESTINATION_REGS.
23897         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
23898         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
23899         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
23900         (h8300_move_ratio): Declare.
23901         (MOVE_RATIO): Use it.
23902         * config/h8300/h8300.c (h8300_move_ratio): New variable.
23903         (h8300_init_once): Initialize it.
23904         (h8300_reg_class_from_letter): New function.
23905         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
23906         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
23907         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
23908         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
23909         (movstrsi, movmd): New expanders.
23910         (movmd_internal): New insn.
23911         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
23912         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
23913         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
23914         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
23915         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
23916         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23917         * config/h8300/h8300.c (nibble_operand): Fix warning.
23918         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
23919         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
23920         (movsf_h8300h): Disable for TARGET_H8300SX.
23921         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23922         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
23923         h8300_stm_parallel and h8300_return_parallel.
23924         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
23925         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
23926         h8300_stm_parallel, h8300_return_parallel): New functions.
23927         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
23928         if TARGET_H8300SX.  Use h8300_push_pop.
23929         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
23930         and final pop when generating h8sx code.  Always emit some form
23931         of return insn.
23932         * config/h8300/h8300.md: Don't enforce register alignment in
23933         stm peepholes if TARGET_H8300SX.
23934         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
23935         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
23936         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
23937         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
23938         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
23939         (MULTILIB_DIRNAMES): Add a directory for it.
23940         (MULTILIB_MATCHES): Delete.
23941         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
23942         * final.c (walk_alter_subreg): Handle addresses with subregs
23943         inside a ZERO_EXTEND or AND.
23944         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
23945         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
23946         if TARGET_H8300SX.
23947         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
23948         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
23949         @(dd,Rn.w) and @(dd,ERn.L).
23950         (h8300_displacement_size): Take the whole address as argument.
23951         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
23952         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
23953         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
23954         (h8sx_mergeable_memrefs_p): Declare.
23955         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
23956         (HAVE_PRE_INCREMENT): Likewise.
23957         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
23958         addresses for TARGET_H8300SX,
23959         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
23960         and POST_DEC.
23961         (movb_length_table, movl_length_table): New tables.
23962         (movw_length_table): Define to movb_length_table.
23963         (h8300_displacement_size): New, split out from...
23964         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
23965         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
23966         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
23967         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
23968         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
23969         (compute_plussi_length, compute_plussi_cc): Update accordingly.
23970         (h8sx_unary_shift_operator): Get the mode from the operator.
23971         (binary_shift_operator): Likewise.
23972         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
23973         a memory reference, check whether the reference is offsettable.
23974         (length_table): Add movb, movw and movl.
23975         (movqi): Add new h8sx pattern.  Don't force one operand to be a
23976         register when generating h8sx code.
23977         (movhi, movsi, movsf): Likewise.
23978         (movstrictqi): Use the length_table attribute.
23979         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
23980         (addqi3): Split into a define_expand and define_insn.  Don't accept
23981         memory operands in the expander.  Use h8300_operands_match_p to
23982         check for matching operands in the define_insn.
23983         (subqi3, negqi2, one_cmplqi2): Likewise.
23984         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
23985         in any patterns that are unused in h8sx code.  In the h8sx patterns,
23986         use h8300_operands_match_p to check whether operands match.
23987         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
23988         one_cmpl[hs]i3): Likewise.
23989         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
23990         in the expander.
23991         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
23992         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
23993         (h8300_insn_length_from_table): Add a second parameter.
23994         (output_h8sx_shift): Declare.
23995         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
23996         (EXTRA_CONSTRAINT): Replace with...
23997         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
23998         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
23999         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
24000         and h8sx_binary_shift_operator.
24001         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
24002         for TARGET_H8300SX.
24003         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
24004         (bit_memory_operand, fix_bit_operand): Likewise.
24005         (h8300_length_table_for_insn): Remove.
24006         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
24007         instructions.
24008         (h8300_short_immediate_length, h8300_binary_length): New functions.
24009         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
24010         (output_plussi): Use sub to add negative constants.
24011         (compute_plussi_length): Adjust accordingly.
24012         (h8sx_single_shift_type): New enum.
24013         (h8sx_single_shift, h8sx_unary_shift_operator,
24014         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
24015         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
24016         single h8sx instruction.  Return false in this case.
24017         * config/h8300/h8300.md (length_table): Add short_immediate.
24018         (length): Pass the operand array to h8300_insn_length_from_table.
24019         (adjust_length): Assume "no" for insns with a length_table attribute.
24020         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
24021         (*addhi3_h8300hs): Don't use for h8sx.
24022         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
24023         and sub.w #xx:3.
24024         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
24025         1's predicate to nonimmediate_operand.  Only skip default expansion
24026         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
24027         for single h8sx shift instructions.
24028         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
24029         * config/h8300/h8300.c (nibble_operand): Split out of...
24030         (reg_or_nibble_operand): ... this.
24031         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
24032         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
24033         umulhisi3): Introduce expand, and introduce separate insns for
24034         sign- or zero-extended REG and already-extended CONST_INT.
24035         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
24036         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
24037         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
24038         (subhi3): Likewise.  Don't accept immediates for operand 1.
24039         Remove the early clobber from second alternative of the h8300s pattern.
24040         (subsi3): Generalize for h8sx.  Force operand 2 into a register
24041         on plain h8300 targets.
24042         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
24043         (subsi3_h8300h): Generalize for h8sx.
24044         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
24045         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
24046         * config/h8300/h8300.c (reg_or_nibble_operand): New.
24047         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
24048         (TARGET_H8300SXMUL): New.
24049         (CONST_OK_FOR_P): New.
24050         (CONST_OK_FOR_LETTER_P): Adjust.
24051         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
24052         umulhisi3): Accept 4-bit immediate on H8SX.
24053         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
24054         (udivsi3, divhi3, udivsi3, divsi3): New.
24055         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
24056         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
24057         * config/h8300/h8300.h (OK_FOR_Q): New macro.
24058         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
24059         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
24060         Add ADDRESSOF to the bit_operand entry.
24061         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
24062         (h8300_src_operand): Likewise.
24063         (bit_operand): Check nonimmediate_operand rather than general_operand.
24064         Accept any nonimmediate_operand in h8sx code.
24065         (h8300_and_costs): Initialize operands[1].
24066         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
24067         (h8300_operand_class): New enum.
24068         (h8300_length_table): New typedef.
24069         (addb_length_table, addw_length_table, addl_length_table,
24070         logicl_length_table): New tables.
24071         (logicb_length_table, logicw_length_table): New macros.
24072         (h8300_classify_operand, h8300_length_from_table,
24073         h8300_length_table_for_insn, h8300_unary_length,
24074         h8300_insn_length_from_table): New functions.
24075         (output_plussi): Only use adds and subs for register destinations.
24076         Disable redundant clause.
24077         (compute_plussi_cc): Likewise.
24078         (compute_plussi_length): Likewise.  Use h8300_length_from_table
24079         to work out the length of an insn.
24080         (output_logical_op): Only use narrower immediate instructions
24081         if the destination is a register.
24082         (compute_logical_op_cc): Likewise.
24083         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
24084         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
24085         * config/h8300/h8300.md (length_table): New attribute.
24086         (length): When an instruction has a length_table attribute, use
24087         h8300_insn_length_from_table to calculate its default length.
24088         (cmpqi): Use h8300_dst_operand for the first operand and
24089         h8300_src_operand for the second.
24090         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
24091         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
24092         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
24093         iorsi3, xorhi3, xorsi3): Likewise.
24094         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
24095         so that it allows any combination of operands for TARGET_H8300SX.
24096         (iorqi3, xorqi3): Likewise.
24097         (cmpqi): Use the length_table attribute.
24098         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
24099         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
24100         (cmpqi): Add 'Q' constraint.
24101         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
24102         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
24103         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
24104         * config/h8300/h8300.h (MASK_H8300SX): New macro.
24105         (TARGET_H8300S): True for both -ms and -msx.
24106         (TARGET_H8300SX): New macro.
24107         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
24108         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
24109         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
24110         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
24111         [Temporary change.]
24112         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
24113         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
24114         16-bit pointers and 32-bit ints.
24115         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
24116         CONST_DOUBLE with mode no wider than SImode.
24117         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
24118         output operand.
24119         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
24120         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
24121         or SUBREG thereof.
24122         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
24123         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
24124         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
24125
24126 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
24127
24128         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
24129
24130 2004-07-07  Per Bothner  <per@bothner.com>
24131
24132         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
24133
24134 2004-07-07  Mike Stump  <mrs@apple.com>
24135
24136         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
24137         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
24138         (machopic_finish): Likewise.
24139
24140 2004-07-07  Richard Henderson  <rth@redhat.com>
24141
24142         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
24143         through any value-preserving cast.
24144
24145 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
24146
24147         * function.c (assign_parm_find_data_types): Call
24148         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
24149
24150 2004-07-07  Steven Bosscher  <stevenb@suse.de>
24151
24152         * tree-cfg.c (group_case_labels): Remove case labels that have
24153         the same target as the default case.
24154
24155 2004-07-07  Steven Bosscher  <stevenb@suse.de>
24156
24157         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
24158         regardless of DECL_LANG_SPECIFIC being present or not.
24159         * tree.h (DECL_NUM_STMTS): Purge.
24160
24161 2004-07-07  Andrew Pinski  <apinski@apple.com>
24162
24163         * configure: Regenerate with the right autoconf.
24164
24165 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
24166
24167         * ifcvt.c (total_bb_rtx_cost): New function.
24168         (find_if_case_1): Compare rtx_cost of basic block to cost of
24169         BRANCH_COST insns.
24170         (find_if_case_2): Same.
24171
24172 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
24173
24174         PR target/10567
24175         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
24176         (output_return): Likewise.
24177         (output_sibcall): Abort if !flag_delayed_branch.
24178         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
24179         (emit_and_preserve): New function.
24180         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
24181         indirect jump to the thunked-to function if !flag_delayed_branch.
24182         * config/sparc/sparc.md (delayed_branch): New attribute.
24183         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
24184         attribute to compute the length of the insn.
24185         (goto_handler_and_restore): Likewise.
24186
24187 2004-07-07  Andrew Pinski  <apinski@apple.com>
24188
24189         PR tree-optimization/15777
24190         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
24191
24192         * expr.c (expand_expr_real_1): Fix formating.
24193         BUFFER_REF and IN_EXPR are dead.
24194         * fold-const.c (non_lvalue): BUFFER_REF is dead.
24195         * tree-inline.c (estimate_num_insns_1): Likewise.
24196         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
24197         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
24198         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
24199
24200 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
24201
24202         * collect2.c (dump_file): Don't call cplus_demangle if
24203         HAVE_LD_DEMANGLE is defined.
24204         (main): Pass "--demangle" to ld if no_demangle is not 0 and
24205         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
24206         if HAVE_LD_DEMANGLE is defined.
24207
24208         * configure.ac (--with-demangler-in-ld): Added
24209         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
24210         --with-demangler-in-ld is used.
24211         * config.in: Regenerated.
24212         * configure: Likewise.
24213
24214 2004-07-07  Roger Sayle  <roger@eyesopen.com>
24215
24216         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
24217         for simple floating point operations "fp", double precision
24218         multiplication "dmul", and single and double precision division
24219         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
24220         (ppc630_cost): New table split from ppc620_cost, to distinguish
24221         differences in floating point latencies.
24222         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
24223         (rs6000_rtx_costs): Add support for single and double precision
24224         floating point addition, subtraction, multiplication, division,
24225         fused-multiply-add, fused-multiply-sub, negation, absolute value
24226         and negative absolute value.  Tweak MEM case to use prefered idiom.
24227
24228 2004-07-07  Richard Henderson  <rth@redhat.com>
24229
24230         * tree-flow-inline.h (may_propagate_copy): Move...
24231         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
24232         attempt to copy between types requiring conversion.
24233         * tree-flow.h (may_propagate_copy): Update decl.
24234         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
24235
24236 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
24237
24238         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
24239         from -mtune= option.
24240
24241 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
24242
24243         * builtins.c: Rename movstr*, except for movstrict*, to
24244         movmem* and clrstr* to clrmem*.
24245         * expr.c: Likewise.
24246         * expr.h: Likewise.
24247         * genopinit.c: Likewise.
24248         * integrate.c: Likewise.
24249         * local-alloc.c: Likewise.
24250         * optabs.c: Likewise.
24251         * optabs.h: Likewise.
24252         * config/alpha/alpha.h: Likewise.
24253         * config/alpha/alpha.md: Likewise.
24254         * config/arm/arm-protos.h: Likewise.
24255         * config/arm/arm.c: Likewise.
24256         * config/arm/arm.md: Likewise.
24257         * config/avr/avr.md: Likewise.
24258         * config/c4x/c4x.c: Likewise.
24259         * config/c4x/c4x.md: Likewise.
24260         * config/frv/frv.md: Likewise.
24261         * config/i386/i386-protos.h: Likewise.
24262         * config/i386/i386.c: Likewise.
24263         * config/i386/i386.h: Likewise.
24264         * config/i386/i386.md: Likewise.
24265         * config/i860/i860.c: Likewise.
24266         * config/i860/i860.md: Likewise.
24267         * config/ip2k/ip2k.md: Likewise.
24268         * config/ip2k/libgcc.S: Likewise.
24269         * config/ip2k/t-ip2k: Likewise.
24270         * config/m32r/m32r.c: Likewise.
24271         * config/m32r/m32r.md: Likewise.
24272         * config/mcore/mcore.md: Likewise.
24273         * config/mips/mips.c: Likewise.
24274         * config/mips/mips.md: Likewise.
24275         * config/ns32k/ns32k.c: Likewise.
24276         * config/ns32k/ns32k.h: Likewise.
24277         * config/ns32k/ns32k.md: Likewise.
24278         * config/pa/pa.c: Likewise.
24279         * config/pa/pa.md: Likewise.
24280         * config/pdp11/pdp11.h: Likewise.
24281         * config/pdp11/pdp11.md: Likewise.
24282         * config/rs6000/rs6000.c: Likewise.
24283         * config/rs6000/rs6000.md: Likewise.
24284         * config/s390/s390-protos.h: Likewise.
24285         * config/s390/s390.c: Likewise.
24286         * config/s390/s390.md: Likewise.
24287         * config/sh/lib1funcs.asm: Likewise.
24288         * config/sh/sh.c: Likewise.
24289         * config/sh/sh.md: Likewise.
24290         * config/sh/t-sh: Likewise.
24291         * config/sparc/sparc.h: Likewise.
24292         * config/vax/vax.md: Likewise.
24293         * config/xtensa/xtensa.c: Likewise.
24294         * config/xtensa/xtensa.md: Likewise.
24295         * doc/invoke.texi: Likewise.
24296         * doc/md.texi: Likewise.
24297         * doc/rtl.texi: Likewise.
24298
24299 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
24300
24301         PR target/16407
24302         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
24303         * config/mips/mips.c (mips_declare_common_object): New function,
24304         mostly split out from...
24305         (mips_output_aligned_decl_common): ...here.
24306         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
24307         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
24308         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
24309         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
24310
24311 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24312
24313         PR c/16392
24314         * function.c (assign_parms): Fix typo from previous change.
24315
24316 2004-07-07  Jason Merrill  <jason@redhat.com>
24317
24318         PR c++/15815
24319         * doc/extend.texi (C++ Interface): Correct information and
24320         discourage use.
24321
24322 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
24323
24324         PR target/16130
24325         PR target/16142
24326         PR target/16143
24327         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
24328         insn.
24329
24330 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
24331
24332         PR target/1679.
24333         * config/m32r/m32r.c (m32r_function_symbol): New function:
24334         Generate a symbol name RTX with the correct m32r specific flags
24335         set.
24336         (block_move_call): Use new function to generate correct symbol.
24337         * config/m32r/m32r-protos.h: Add prototype for new funcion.
24338         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
24339         function.
24340
24341 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
24342
24343         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
24344         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
24345         TYPE_BINFO_BASETYPE): Remove.
24346         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
24347         to ...
24348         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
24349         here.
24350         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
24351         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
24352         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
24353         (struct tree_binfo): Rename base_types to base_binfos.
24354         * alias.c (record_component_aliases): Adjust BINFO macros.
24355         * dbxout.c (dbxout_type): Likewise.
24356         * dwarf2out.c (gen_member_die): Likewise.
24357         * sdbout.c (sdbout_one_type): Likewise.
24358         * tree-dump.c (deque_and_dump): Likewise.
24359         * config/i386/i386.c (classify_argument,
24360         contains_128bit_aligned_vector_p): Likewise.
24361
24362 2004-07-07  Nick Clifton  <nickc@redhat.com>
24363
24364         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
24365         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
24366
24367 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
24368
24369         * vec.h: Fix the example use.
24370
24371 2004-07-06  Richard Henderson  <rth@redhat.com>
24372
24373         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
24374         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
24375         * tree-inline.c (copy_body_r, setup_one_parameter,
24376         initialize_inlined_parameters, expand_call_inline,
24377         declare_inline_vars): Don't check it.
24378         (expand_calls_inline): Remove old version, rename new version
24379         from gimple_expand_calls_inline.
24380         * tree-optimize.c (execute_gimple): Remove.
24381         (pass_gimple): Don't run anything.
24382
24383 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
24384
24385         * doc/sourcebuild.texi: Use semicolons instead of commas in
24386         section title.
24387
24388 2004-07-06  Richard Henderson  <rth@redhat.com>
24389
24390         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
24391         (sra_walk_modify_expr, scan_init): Likewise.
24392         (generate_element_zero): Check visited before scanning children.
24393         (generate_element_init): Set visited on error.
24394         (scalarize_init): Handle generate_element_init failure similar
24395         to use_block_copy.
24396
24397 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
24398
24399         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
24400         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
24401
24402 2004-07-06  Richard Henderson  <rth@redhat.com>
24403
24404         * config/i386/i386.c (legitimize_pic_address): Make static.
24405         (legitimize_address): Handle CONST with TLS operand.
24406         (ix86_expand_move): Don't call legitimize_pic_address directly.
24407         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
24408
24409 2004-07-06  Roger Sayle  <roger@eyesopen.com>
24410
24411         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
24412         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
24413         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
24414         is currently executed unconditionally, i.e. not in "else_bb".
24415
24416 2004-07-06  Steven Bosscher  <stevenb@suse.de>
24417
24418         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
24419         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24420         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
24421         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24422         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
24423         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24424         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
24425         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24426         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
24427         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24428         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
24429         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24430         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
24431         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24432         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
24433         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
24434
24435 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
24436
24437         * dojump.c (do_jump): REFERENCE_EXPR is dead.
24438         * expr.c (expand_expr_real_1): Ditto.
24439         * tree-inline.c (estimate_num_insns_1): Ditto.
24440         * tree-pretty-print.c (dump_generic_node): Ditto.
24441         (op_symbol): Ditto.
24442         * tree.def: Ditto.
24443
24444 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
24445
24446         * tree-ssa-pre.c (reference_node_pool): New pool.
24447         (find_or_generate_expression): Class 'r' is okay too.
24448         (create_value_expr_from): Ditto.
24449         (add_to_sets): LHS should not include vuses.
24450         (eliminate): Ditto.
24451         (compute_avail): Reverse ordering of tests.
24452         Valuize INDIRECT_REF as well.
24453
24454 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
24455
24456         PR rtl-optimization/16380
24457         * loop.c (check_dbra_loop): Sink comparison instructions if they
24458         do something other than set cc0.
24459
24460 2004-07-06  James E Wilson  <wilson@specifixinc.com>
24461
24462         * doc/interface.texi (longjmp and automatic variables): Delete
24463         paragraph recommending taking the address of a variable.
24464
24465 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
24466
24467         * vec.h (VEC_embedded_alloc): Remove.
24468         (VEC_embedded_size, VEC_embedded_init): New.
24469         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
24470         MEM_STAT_INFO.
24471         (VEC_truncate): New.
24472         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
24473         (vec_embedded_alloc): Remove.
24474         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
24475         (vec_embedded_alloc): Remove.
24476
24477 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
24478
24479         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
24480         (gt-langhooks.h): Remove.
24481
24482 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
24483
24484         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
24485
24486 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
24487
24488         * config/sparc/sparc.c (get_pc_symbol): Rename into
24489         add_pc_to_pic_symbol.
24490         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
24491         (load_pic_register): Account for previous changes.
24492         Use reg_names.  Don't create the label twice.
24493         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
24494         UNSPEC_LOAD_PCREL_SYM.
24495         (get_pc): Rename into load_pcrel_sym.  Add predicate to
24496         operands.  Remove condition.
24497
24498 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
24499
24500         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
24501         RECORD, UNION & QUAL_UNION is actually a binfo.
24502
24503         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
24504         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
24505         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
24506         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
24507         * dwarf2out.c (add_data_member_location_attribute): Likewise.
24508         (gen_inheritance_die): Likewise.
24509         * tree-dump.c (deque_and_dump): Likewise.
24510         * doc/c-tree.texi (Binfos): Add under reconstruction note.
24511
24512 2004-07-06  Steven Bosscher  <stevenb@suse.de>
24513
24514         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
24515         Define.
24516         * config/mcore/mcore.md: Model memory latency with a simple DFA
24517         pipeline description instead of a define_function_unit.
24518
24519 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24520
24521         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
24522         * langhooks.h (var_mod_type_p): Likewise.
24523         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
24524         * expr.c (count_type_elements): Properly handle return from
24525         array_type_nelts and properly test for overflow.
24526         * gimplify.c (gimplify_init_constructor): Properly handle return
24527         from array_type_nelts.
24528         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
24529         * integrate.c (copy_decl_for_inlining): Correct comments.
24530         * tree-inline.c (remap_decl): Update comments, remove dead code,
24531         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
24532         (remap_type): Only remap if variably modified by vars in function
24533         being inlined.
24534         (copy_body_r): Use compatible_type langhooks to see when can fold.
24535         (setup_one_parameter): Don't remap type.
24536         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
24537         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
24538         compute TREE_INVARIANT for decl case.
24539         (find_var_from_fn): New function.
24540         (variably_modified_type_p): Add arg and call new function.
24541         * tree.h (variably_modified_type_p): Add extra arg.
24542
24543 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
24544
24545         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
24546         (goto_handler_and_restore_v9): Delete disabled insn.
24547         (goto_handler_and_restore_v9_sp64): Likewise.
24548
24549 2004-07-05  Roger Sayle  <roger@eyesopen.com>
24550
24551         * calls.c (load_register_parameters): Call expand_shift instead
24552         of expand_binop with ashl_optab (or other shift optab) directly.
24553         * expr.c (emit_group_load, emit_group_store): Likewise.
24554         * function.c (assign_parm_setup_block): Likewise.
24555         * stmt.c (shift_return_value): Likewise.
24556
24557 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
24558
24559         * expr.c (expand_assignment): Disable the bitfield += optimizations.
24560
24561 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
24562
24563         * doc/sourcebuild.texi: Revert previous patch.
24564
24565 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
24566
24567         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
24568         TARGET_MEM_FUNCTIONS.
24569         * system.h: Poison TARGET_MEM_FUNCTIONS.
24570         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
24571         bcmp_libfunc, bzero_libfunc): Remove.
24572         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
24573         bzero_libfunc.
24574         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
24575         * doc/standards.texi: Don't mention calling BSD string functions.
24576         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
24577         * config/vax/t-memfuncs: New.
24578         * config/memcmp.c, config/memcpy.c, config/memmove.c,
24579         config/memset.c: New.
24580         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
24581         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
24582         vax/t-memfuncs.
24583         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
24584         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
24585         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
24586         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
24587         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
24588         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
24589         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
24590         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
24591         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
24592         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
24593
24594 2004-07-05  Richard Henderson  <rth@redhat.com>
24595
24596         * function.c (assign_parm_setup_reg): Properly rename variables in
24597         FUNCTION_ARG_CALLEE_COPIES section.
24598
24599 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
24600
24601         * tree-mudflap.c: Include cgraph.h.
24602         (mf_init_extern_trees): Rename to mudflap_init.  Export.
24603         Rewrite to create synthetic declarations instead of looking
24604         up declarations from mf-runtime.h.
24605         (mf_make_builtin, mf_make_cache_struct_type): New functions.
24606         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
24607         Correct commentary.
24608         (execute_mudflap_function_decls, mudflap_register_call):
24609         Don't call mf_init_extern_trees.
24610         (mudflap_finish_file): Use cgraph_build_static_cdtor.
24611
24612         * tree-mudflap.h: Update prototypes.
24613         * c-mudflap.c: Delete file.
24614         * c-common.c: Include tree-mudflap.h.
24615         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
24616         * Makefile.in: Remove all references to c-mudflap.o.
24617         Update dependencies.
24618
24619 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24620
24621         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
24622         displacements with the spatial-locality cache-control completer.
24623
24624 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
24625
24626         * langhooks.c: Don't include gt-langhooks.h.
24627         (var_labelno): Delete.
24628         (lhd_set_decl_assembler_name): Do not append a distinguishing
24629         number to file-scope internal-linkage declarations for the first
24630         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
24631         the declaration itself (if at block scope), or its containing
24632         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
24633         number.
24634
24635         * opts.c (cur_in_fname): New global.
24636         * opts.h: Declare it.
24637         * tree.c: Include opts.h.
24638         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
24639         DECL_UID equal to cur_in_fname.
24640         (copy_node_stat): Do not change DECL_UID when copying a
24641         TRANSLATION_UNIT_DECL.
24642         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
24643         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
24644
24645         * c-decl.c (c_static_assembler_name): Delete.
24646         * c-tree.h (c_static_assembler_name): Delete prototype.
24647         * c-lang.c, objc/objc-lang.c: Don't override
24648         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
24649
24650         * Makefile.in (tree.o): Update dependencies.
24651         (GTFILES): Remove langhooks.c.
24652
24653 2004-07-05  Roger Sayle  <roger@eyesopen.com>
24654
24655         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
24656         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
24657         Normalize "X % C" as "X % -C" for signed modulus and negative C.
24658         Optimize "X % -Y" as "X % Y" for signed modulus.
24659         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
24660         into "((unsigned) X % Y) == 0".
24661
24662 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
24663
24664         * sourcebuild.texi (Config Fragments): Use @comma{} in
24665         cross-reference to section title.
24666
24667 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24668
24669         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
24670         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
24671         (gimplify_target_expr, gimplify_expr): Likewise.
24672         (copy_if_shared_r): No longer need special case for BIND_EXPR.
24673         (unshare_body, unvisit_body): Only look at nested if BODY_P is
24674         whole function.
24675         (gimplify_compound_lval): See if we can strip any useless conversion.
24676         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
24677         from RHS, not LHS.
24678         (gimplify_modify_expr_to_memset): Likewise.
24679         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
24680         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
24681         (declare_inline_vars): Likewise.
24682         (walk_type_fields): New function.
24683         (walk_tree): Use it.
24684         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
24685
24686         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
24687         (sra_walk_modify_expr): Allow init function to fail.
24688         (scan_init): Now returns bool.
24689         (generate_element_init): If can't understand INIT, return false.
24690         (scalarize_init): Return false if generate_element_init does.
24691
24692         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
24693         print bounds.
24694
24695         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
24696         bounds if bounds aren't constant.
24697
24698         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
24699
24700         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
24701         to type hooks; remove bogus PARAMS.
24702
24703 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
24704
24705         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
24706         * dwarf2out.c (add_data_member_location_attribute): Check for
24707         TREE_BINFO.
24708         * tree.c (tree_node_kinds): Add "binfos".
24709         (binfo_lang_slots): New.
24710         (make_node_stat): Add TREE_BINFO.
24711         (make_tree_binfo_stat): New.
24712         (tree_node_structure): Add TREE_BINFO.
24713         * tree.def (TREE_BINFO): New.
24714         * tree.h (REC_OR_UNION_CHECK): Rename to ...
24715         (RECORD_OR_UNION_CHECK): ... here.
24716         (NOT_RECORD_OR_UNION_CHECK): New.
24717         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
24718         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
24719         RECORD_OR_UNION_CHECK.
24720         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
24721         (TYPE_LANG_SLOT_1): New.
24722         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
24723         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
24724         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
24725         (BINFO_ELTS): Remove.
24726         (BINFO_LANG_SLOT): New.
24727         (struct tree_binfo): New.
24728         (binfo_lang_slots): Declare.
24729         (enum tree_node_structure_enum): Add TS_BINFO.
24730         (union tree_node): Add binfo.
24731         (make_tree_binfo_stat): Declare.
24732         (make_tree_binfo): New.
24733         (enum tree_node_kind): Add binfo_kind.
24734
24735         * objc/objc-act.c (start_class, objc_declare_protocols,
24736         start_protocols): Use TYPE_LANG_SLOT_1.
24737         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
24738         to ...
24739         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
24740         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
24741         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
24742         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
24743
24744 2004-07-05  Steven Bosscher  <stevenb@suse.de>
24745
24746         * rtl.h (struct rtx_def): Remove the integrated flag.
24747         Use the return_val flag for MEM_SCALAR_P.
24748         Reshuffle and update flags in CLEAR_RTX_FLAGS.
24749
24750 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
24751
24752         PR target/16357
24753         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
24754         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
24755         move_by_pieces.
24756
24757 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
24758
24759         * var-tracking.c: Fix some comments.
24760         (frame_stack_adjust): New.
24761         (vt_stack_adjustments): Init stack_adjust of entry block to
24762         minus stack adjustment of function prologue.
24763         (adjust_stack_reference): Do not adjust if adjustment == 0.
24764         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
24765         (emit_notes_in_bb): Likewise.
24766         (vt_add_function_parameters): Do not adjust locations of
24767         function arguments.
24768         (vt_initialize): Compute the stack adjustment of function
24769         prologue and offset the initial "location" of frame_base_decl
24770         from the stack pointer after prologue.
24771
24772 2004-07-04  Richard Henderson  <rth@redhat.com>
24773
24774         * function.c (struct assign_parm_data_all): New.
24775         (struct assign_parm_data_one): New.
24776         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
24777         assign_parm_find_data_types, assign_parms_setup_varargs,
24778         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
24779         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
24780         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
24781         assign_parm_setup_block, assign_parm_setup_reg,
24782         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
24783         (assign_parms): ... here.
24784
24785 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
24786
24787         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
24788         now are bitmap_set_t's.
24789         (bitmap_insert_into_set): No point in inserting the value if
24790         it's invariant.
24791         (bitmap_set_contains): New function.
24792         (bitmap_set_replace_value): Add comment on why we do it
24793         this way.
24794         (set_contains): Removed.
24795         (bitmap_set_subtract_from_value_set): New name of
24796         set_subtract now that it's arguments are two different
24797         types of sets.
24798         Update callers.
24799         (bitmap_find_leader): Change algorithm used.
24800         (find_or_generate_expression): Update use of functions for new
24801         bitmap sets.
24802         (create_expression_by_pieces): Ditto.
24803         (insert_aux): Ditto.
24804         (insert): Ditto.
24805         (add_to_sets): Ditto.
24806         (init_pre): Ditto.
24807         (execute_pre): Ditto.
24808         (compute_avail): Ditto.
24809         Also ignore virtual phis.
24810
24811 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
24812
24813         * combine.c (simplify_comparison): Fix comment typo.
24814
24815 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
24816
24817         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
24818         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
24819         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
24820         (output_restore): Change parameter from 'insn' to 'pat'.
24821         (output_return): Adjust call to output_restore.
24822         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
24823         Adjust call to output_restore.
24824
24825 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
24826
24827         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
24828         and assert system is bsd.
24829
24830 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
24831
24832         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
24833         (TARGET_SWITCHES): Remove -mdebugc.
24834         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
24835         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
24836         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
24837         (sle_[sd]i_reg): Delete.
24838
24839 2004-07-04  Steven Bosscher  <stevenb@suse.de>
24840
24841         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
24842         Define.
24843         * config/iq2000/iq2000.md: Translate old pipeline description to an
24844         equivalent new one.
24845
24846 2004-07-04  Roger Sayle  <roger@eyesopen.com>
24847
24848         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
24849         Ensure the replacement rhs is valid gimple before performing
24850         the substitution.  Return false if these sanity checks fail.
24851         (fold_stmt): Only set changed to true, if set_rhs returns true.
24852         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
24853         succeeds.
24854
24855 2004-07-04  Richard Henderson  <rth@redhat.com>
24856
24857         PR c/16348
24858         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
24859
24860 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
24861
24862         * configure.ac (ranlib_flags): New variable.
24863         * Makefile.in (RANLIB_FLAGS): New variable.
24864         (libbackend.a): Use it.
24865         * configure: Regenerated.
24866
24867 2004-07-04  Roger Sayle  <roger@eyesopen.com>
24868
24869         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
24870         a "sign mask" instead of using ashr_optab directly.
24871
24872 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
24873
24874         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
24875         * doc/cppopts.texi: Clarify processing of command-line defines.
24876
24877 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
24878
24879         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
24880
24881 2004-07-04  Richard Henderson  <rth@redhat.com>
24882
24883         * rtl.def (ADDRESSOF): Remove.
24884         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
24885         (find_base_term, memrefs_conflict_p): Likewise.
24886         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
24887         (fold_rtx, cse_insn, set_live_p): Likewise.
24888         * dwarf2out.c (mem_loc_descriptor): Likewise.
24889         (add_location_or_const_value_attribute): Likewise.
24890         * emit-rtl.c (copy_insn_1): Likewise.
24891         * explow.c (memory_address): Likewise.
24892         * expmed.c (store_split_bit_field): Likewise.
24893         * expr.c (expand_expr_real_1): Likewise.
24894         * function.c (instantiate_decl
24895         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
24896         * genrecog.c (preds, validate_pattern): Likewise.
24897         * integrate.c (copy_rtx_and_substitute): Likewise.
24898         * recog.c (general_operand, register_operand): Likewise.
24899         (memory_address_p): Likwise.
24900         * reload1.c (eliminate_regs, elimination_effects): Likewise.
24901         * rtl.c (copy_rtx): Likewise.
24902         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
24903         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
24904         * rtlhooks.c (gen_lowpart_general): Likewise.
24905         * stmt.c (expand_asm_operands): Likewise.
24906         * web.c (entry_register, replace_ref, web_main): Likewise.
24907         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
24908         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
24909         * config/arm/arm.c (thumb_rtx_costs): Likewise.
24910         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
24911         * config/frv/frv.c (move_destination_operand, move_source_operand,
24912         condexec_dest_operand, condexec_source_operand,
24913         condexec_memory_operand): Likewise.
24914         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
24915         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
24916         (destination_xfmode_operand): Likewise.
24917         * config/mips/mips.h (PREDICATE_CODES): Likewise.
24918         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
24919         * config/s390/s390.c (general_s_operand): Likewise.
24920         * config/s390/s390.md (mov*): Likewise.
24921         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
24922
24923         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
24924         * expr.c (expand_expr_real_1): Likewise.
24925         * stmt.c (expand_decl): Likewise.
24926         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
24927
24928         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
24929         postponed_insns, put_var_into_stack, put_reg_into_stack,
24930         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
24931         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
24932         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
24933         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
24934         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
24935         purge_bitfield_addressof_replacements, purge_addressof_replacements,
24936         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
24937         struct insns_for_mem_walk_info, insns_for_mem_walk,
24938         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
24939         setjmp_protect_args): Remove.
24940         (push_function_context_to): Don't handle var_refs_queue.
24941         (pop_function_context_from, free_after_compilation): Likewise.
24942         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
24943         (assign_parms, allocate_struct_function): Likewise.
24944         (use_register_for_decl): New.
24945         (expand_function_end): Don't setjmp_protect.
24946         * function.h (struct emit_status): Update commentary.
24947         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
24948         (max_parm_reg, parm_reg_stack_loc): Remove.
24949         * passes.c (DFI_addressof): Remove.
24950         (dump_file_info): Remove addressof.
24951         (rest_of_handle_addressof): Remove.
24952         (rest_of_compilation): Don't call it.
24953         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
24954         * stmt.c (expand_decl): Use use_register_for_decl.
24955         * tree.h: Update decls.
24956         * web.c (mark_addressof): Remove.
24957         * doc/invoke.texi (-dF): Remove.
24958
24959 2004-07-03  Richard Henderson  <rth@redhat.com>
24960
24961         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
24962         instead of gen_mem_addressof.
24963         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
24964         TImode output register.
24965
24966 2004-07-03  Richard Henderson  <rth@redhat.com>
24967
24968         PR tree-optimization/16341
24969         * tree-sra.c (sra_walk_function): Increment to next stmt before
24970         processing the current stmt.
24971         (sra_insert_after): Always use BSI_SAME_STMT.
24972
24973 2004-07-03  Richard Henderson  <rth@redhat.com>
24974
24975         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
24976         fp plus with minus.
24977
24978 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
24979
24980         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
24981         with tree_int_cst_equal.
24982
24983 2004-07-03  Andreas Schwab  <schwab@suse.de>
24984
24985         * config/ia64/ia64.md: Define new attribute "empty".
24986         (prologue_use, nop_x, insn_group_barrier): Set it.
24987
24988         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
24989         skip over "empty" insns.
24990
24991 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24992
24993         * tree-inline.c (initialize_inlined_parameters): Pass proper function
24994         context to gimplify_body.
24995         (walk_tree): Don't walk into types twice.
24996         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
24997
24998         * tree-sra.c (generate_element_init): Remove any useless conversions.
24999
25000         * gimplify.c (gimplify_conversion): Remove stripping useless
25001         conversions from here.
25002         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
25003         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
25004         Unshare before substituting PLACEHOLDER_EXPR.
25005         (gimplify_modify_expr_to_memset): Likewise.
25006         Pass address of TO to memset, not TO itself.
25007         (gimplify_init_constructor): Make copy of OBJECT so we have it each
25008         time we make an expression (to match a PLACEHOLDER_EXPR).
25009
25010         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
25011         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
25012         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
25013         * tree-ssa-dom.c (local_fold): Likewise.
25014
25015         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
25016         * langhooks.h (strct lang_hooks): New field type_max_size.
25017         * function.c (assign_temp): Call it.
25018
25019 2004-07-03  Steven Bosscher  <stevenb@suse.de>
25020
25021         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
25022         * config/sh/sh.md: Convert the SH1 pipeline description to
25023         a DFA model.
25024
25025 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
25026
25027         * c-decl.c (struct c_binding): Remove contour field; add
25028         depth, invisible, nested fields.
25029         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
25030         (B_IN_EXTERNAL_SCOPE): New convenience macros.
25031         (bind): Add invisible and nested arguments. Initialize
25032         new fields of struct c_binding; adjust loop scanning for
25033         insertion point.
25034         (free_binding_and_advance): Clear structure with memset.
25035         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
25036         in file scope, even if it's in external scope too.
25037         (pushdecl): Adjust to match.  Create invisible file-scope
25038         declarations for block-scope forward declarations of static functions.
25039         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
25040         (undeclared_variable, lookup_label, declare_label, define_label)
25041         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
25042         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
25043         (store_parm_decls_oldstyle): Adjust to match.
25044         (diagnose_mismatched_decls): Correct handling of linkage clashes.
25045         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
25046
25047         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
25048         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
25049
25050 2004-07-02  Richard Henderson  <rth@redhat.com>
25051
25052         * c-decl.c (grokdeclarator): Don't frob current_function_decl
25053         around variable_size.
25054         (set_decl_nonlocal): Remove.
25055         (store_parm_decls): Add stmts for pending sizes.
25056         * calls.c (calls_function, calls_function_1): Remove.
25057         (precompute_arguments): Don't call it.
25058         * cfgexpand.c (set_save_expr_context): Remove.
25059         (tree_expand_cfg): Don't call it.
25060         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
25061         (dwarf2out_finish): Likewise.
25062         * expr.c (emit_block_move): Adjust addresses to BLKmode.
25063         (store_constructor): Don't pre-evaluate SAVE_EXPR.
25064         (safe_from_p): Don't queue SAVE_EXPRs.
25065         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
25066         or build plain VAR_DECLs.
25067         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
25068         (fold): Likewise.
25069         (fold_checksum_tree): Don't special-case SAVE_EXPR.
25070         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
25071         (put_var_into_stack): Don't handle SAVE_EXPR.
25072         (gen_mem_addressof): Likewise.
25073         * function.h (struct function): Remove x_save_expr_regs.
25074         (save_expr_regs): Remove.
25075         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
25076         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
25077         * stor-layout.c (variable_size): Don't set it.
25078         (force_type_save_exprs, force_type_save_exprs_1): Remove.
25079         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
25080         all callers.  Don't set SAVE_EXPR_CONTEXT.
25081         * tree-inline.h (remap_save_expr): Update decl.
25082         * tree.c (save_expr): Update build size.
25083         (first_rtl_op): Don't handle SAVE_EXPR.
25084         (unsave_expr_1, contains_placeholder_p): Likewise.
25085         (decl_function_context): Likewise.
25086         * tree.def (SAVE_EXPR): Remove args 1 and 2.
25087         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
25088         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
25089
25090 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
25091
25092         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
25093         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
25094         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
25095         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
25096         some first-person references and patronizing comments.  Based on
25097         printed manual.
25098         * doc/invoke.texi: Don't reference fortran@gnu.org.
25099         * doc/trouble.texi (Warning when a non-void function value is
25100         ignored): Rewrite.  From Russ Allbery and Chris Devers.
25101
25102 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
25103
25104         * tree-ssa-pre.c (bitmap_set_t): New.
25105         (bb_value_sets): avail_out is now a bitmap_set_t.
25106         (bitmap_find_leader): New function.
25107         (bitmap_value_insert_into_set): Ditto.
25108         (bitmap_set_copy): Ditto.
25109         (bitmap_value_replace_in_set): Ditto.
25110         (bitmap_set_contains_value): Ditto.
25111         (bitmap_set_new): Ditto.
25112         (bitmap_set_pool): New pool.
25113         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
25114         (insert_aux): Ditto.
25115         (add_to_sets): Ditto.
25116         (compute_avail): Ditto
25117         (eliminate): Ditto.
25118         (init_pre): Ditto.
25119         (fini_pre): Ditto.
25120         (execute_pre): Ditto.
25121
25122 2004-07-02  Roger Sayle  <roger@eyesopen.com>
25123
25124         * config/rs6000/rs6000.c (struct processor_costs): New structure
25125         used to hold instruction latencies/sizes for processor types.
25126         (rs6000_cost): New global variable pointing to current CPU's costs.
25127         (rs6000_override_options): Initialize rs6000_cost to point to the
25128         appropriate cost table based upon rs6000_cpu and optimize_size.
25129         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
25130         timings inline.
25131
25132 2004-07-02  Richard Henderson  <rth@redhat.com>
25133
25134         * expmed.c (make_tree): Don't use SET_DECL_RTL.
25135
25136 2004-07-02  Steven Bosscher  <stevenb@suse.de>
25137
25138         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
25139
25140 2004-07-01  Richard Henderson  <rth@redhat.com>
25141
25142         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
25143         (alpha_gp_save_rtx): Use assign_stack_local instead of
25144         gen_mem_addressof.
25145
25146 2004-07-01  Richard Henderson  <rth@redhat.com>
25147
25148         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
25149         (alpha_rtx_cost_data): Update to match.
25150         (alpha_rtx_cost_size): New.
25151         (alpha_rtx_costs): Honor optimize_size.
25152
25153 2004-07-01  Richard Henderson  <rth@redhat.com>
25154
25155         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
25156         * cfgexpand.c (tree_expand_cfg): Do it here.
25157         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
25158         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
25159         * config/mips/mips.c (mips_output_mi_thunk): And here.
25160         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
25161         * config/sh/sh.c (sh_output_mi_thunk): And here.
25162         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
25163
25164 2004-07-01  Richard Henderson  <rth@redhat.com>
25165
25166         * tree.def (RTL_EXPR): Remove.
25167         * c-typeck.c (lvalue_p): Don't handle it.
25168         * expr.c (safe_from_p): Likewise.
25169         (expand_expr_real_1): Likewise.
25170         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
25171         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
25172         * gengtype.c (adjust_field_tree_exp): Likewise.
25173         * stmt.c (warn_if_unused_value): Likewise.
25174         * tree-gimple.c (recalculate_side_effects): Likewise.
25175         * tree-pretty-print.c (dump_generic_node): Likewise.
25176         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
25177         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
25178         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
25179
25180         * stmt.c (struct stmt_status): Remove x_last_expr_type,
25181         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
25182         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
25183         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
25184         all the bits that tracked last_expr.
25185         (expand_end_bindings): Don't track last_expr.
25186         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
25187         (clear_last_expr): Remove.
25188         (expand_asm): Don't call it.
25189         (expand_asm_operands, expand_end_cond): Likewise.
25190         (expand_naked_return, expand_null_return_1): Likewise.
25191         * c-typeck.c (c_begin_compound_stmt): Likewise.
25192         * cfgexpand.c (expand_block): Use expand_expr_stmt.
25193         * expr.c (expand_expr_real_1): Likewise.
25194         * tree.h: Update prototypes.
25195
25196         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
25197         (struct emit_status): Remove sequence_rtl_expr.
25198         (struct function): Remove x_rtl_expr_chain.
25199         (seq_rtl_expr, rtl_expr_chain): Remove.
25200         * function.c (struct temp_slot): Remove rtl_expr.
25201         (assign_stack_temp_for_type): Don't set it.
25202         (free_temp_slots, pop_temp_slots): Don't check it.
25203         (free_after_compilation): Don't clear x_rtl_expr_chain.
25204         (fixup_var_refs): Don't search it.
25205         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
25206         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
25207         or seq_rtl_expr.
25208         (push_topmost_sequence): Likewise.
25209         (end_sequence, init_emit): Likewise.
25210         (start_sequence_for_rtl_expr): Remove.
25211         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
25212         * rtl.h (preserve_rtl_expr_result): Remove.
25213
25214 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
25215
25216         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
25217         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
25218         typos.
25219
25220 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
25221
25222         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
25223         (STANDARD_STARTFILE_PREFIX_2): Define.
25224         (standard_startfile_prefix_1): Initialize to
25225         STANDARD_STARTFILE_PREFIX_1.
25226         (standard_startfile_prefix_2): Initialize to
25227         STANDARD_STARTFILE_PREFIX_2.
25228         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
25229         (STANDARD_STARTFILE_PREFIX_1): Define.
25230         (STANDARD_STARTFILE_PREFIX_2): Define.
25231         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
25232         (STANDARD_STARTFILE_PREFIX_2): Document.
25233
25234 2004-07-01  Richard Henderson  <rth@redhat.com>
25235
25236         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
25237         in order to disable scalarization.  Instead set a flag and wait
25238         for a candidate decl.
25239
25240 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
25241
25242         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
25243         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
25244         Use terminology "testsuite" and "enumerated".
25245
25246 2004-07-01  Richard Henderson  <rth@redhat.com>
25247
25248         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
25249         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
25250         (initial_return_save): Likewise.
25251         (flush_queued_reg_saves): Remap register numbers.
25252         (dwarf2out_return_reg): Likewise.
25253
25254 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25255
25256         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
25257
25258         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
25259         access functions for lower bound and element size and only output
25260         if lower bound nonzero or element size not same as that of type.
25261         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
25262
25263 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
25264
25265         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
25266
25267 2004-07-01  Per Bothner  <per@bothner.com>
25268
25269         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
25270
25271 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
25272
25273         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
25274         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
25275         first operand.  Don't optimize if the bitfield is volatile.
25276
25277 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
25278
25279         * c-pretty-print.c (pp_c_postfix_expression): Handle
25280         floating-point comparison operators.
25281         (pp_c_expression): Pass floating-point comparison
25282         operators to pp_c_postfix_expression.
25283
25284 2004-07-01  Roger Sayle  <roger@eyesopen.com>
25285
25286         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
25287         rtx_cost instead of "had_mult" to determine whether the transformed
25288         expression is cheaper than the original.
25289
25290 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
25291
25292         * alias.c (get_alias_set, canon_rtx, get_addr,
25293         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
25294         Use MEM_P.
25295         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
25296         expand_builtin): Likewise.
25297         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
25298         Likewise.
25299         * combine.c (can_combine_p, combinable_i3pat, try_combine,
25300         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
25301         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
25302         record_dead_and_set_regs_1, get_last_value_validate,
25303         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
25304         * cse.c (check_dependence, canon_hash, equiv_constant,
25305         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
25306         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
25307         count_reg_usage): Likewise.
25308         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
25309         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
25310         cselib_record_sets): Likewise.
25311         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
25312         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
25313         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
25314         * df.c (df_uses_record): Likewise.
25315         * dojump (do_jump): Likewise.
25316         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
25317         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
25318         decl_start_label): Likewise.
25319         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
25320         operand_subword, change_address_1, make_safe_from): Likewise.
25321         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
25322         stabilize, force_not_mem): Likewise.
25323         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
25324         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
25325         * expr.c (convert_move, convert_modes, emit_block_move,
25326         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
25327         emit_move_insn_1, expand_assignment, store_expr,
25328         store_constructor_field, store_constructor, store_field,
25329         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
25330         Likewise.
25331         * final.c (cleanup_subreg_operands, alter_subreg,
25332         get_mem_expr_from_op): Likewise.
25333         * flow.c (notice_stack_pointer_modification_1,
25334         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
25335         Likewise.
25336         * function.c (mark_temp_addr_taken, preserve_temp_slots,
25337         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
25338         optimize_bit_field, flush_addressof, purge_addressof_1,
25339         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
25340         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
25341         keep_stack_depressed): Likewise.
25342         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
25343         noce_process_if_block, find_memory): Likewise.
25344         * integrate.c (subst_constants, allocate_initial_values): Likewise.
25345         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
25346         update_equiv_regs): Likewise.
25347         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
25348         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
25349         * optabs.c (expand_abs, emit_unop_insn): Likewise.
25350         * passes.c (rest_of_handle_final): Likewise.
25351         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
25352         move2add_note_store): Likewise.
25353         * ra-build.c (detect_remat_webs): Likewise.
25354         * ra-debug.c (dump_static_insn_cost): Likewise.
25355         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
25356         * recog.c (validate_change, apply_change_group, cancel_changes,
25357         validate_replace_rtx_1, general_operand, register_operand,
25358         nonmemory_operand, push_operand, pop_operand, memory_operand,
25359         indirect_operand, asm_operand_ok, offsettable_memref_p,
25360         offsettable_nonstrict_memref_p, constrain_operands,
25361         store_data_bypass_p): Likewise.
25362         * reg-stack.c (subst_stack_regs_pat): Likewise.
25363         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
25364         copy_cost, reg_scan_mark_refs): Likewise.
25365         * regmove.c (optimize_reg_copy_3, stack_memref_p,
25366         combine_stack_adjustments_for_block): Likewise.
25367         * regrename.c (copyprop_hardreg_forward_1): Likewise.
25368         * reload.c (can_reload_into, push_reload, decompose, immune_p,
25369         find_reloads, find_reloads_address, find_reloads_address_1,
25370         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
25371         find_equiv_reg): Likewise.
25372         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
25373         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
25374         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
25375         delete_address_reloads): Likewise.
25376         * resource.c (mark_referenced_resources): Likewise.
25377         * rtlanal.c (get_jump_table_offset, count_occurrences,
25378         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
25379         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
25380         num_sign_bit_copies1): Likewise.
25381         * rtlhooks.c (gen_lowpart_general): Likewise.
25382         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
25383         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
25384         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
25385         sdbout_global_decl): Likewise.
25386         * simplify-rtx.c (simplify_subreg): Likewise.
25387         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
25388         expand_anon_union_decl, expand_end_case_type): Likewise.
25389         * unroll.c (calculate_giv_inc): Likewise.
25390         * var-tracking.c (stack_adjust_offset_pre_post,
25391         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
25392         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
25393         vt_add_function_parameters): Likewise.
25394         * varasm.c (make_var_volatile, notice_global_symbol,
25395         assemble_external, decode_addr_const, mark_weak,
25396         default_encode_section_info): Likewise.
25397
25398 2004-07-01  Steven Bosscher  <stevenb@suse.de>
25399
25400         * stmt.c (check_seenlabel): Remove.
25401         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
25402
25403 2004-07-01  Richard Henderson  <rth@redhat.com>
25404
25405         * function.h (struct function): Remove x_function_call_count.
25406         (function_call_count): Remove.
25407         * calls.c (expand_call): Don't set it.
25408         * integrate.c (copy_rtx_and_substitute): Likewise.
25409
25410         * function.h (struct function): Remove x_cleanup_label.
25411         (cleanup_label): Remove.
25412         * stmt.c (expand_value_return): Don't use it.
25413         * function.c (free_after_compilation): Don't set it.
25414         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
25415         * cfgexpand.c (tree_expand_cfg): Update call.
25416         * tree.h (expand_function_start): Update decl.
25417
25418 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
25419
25420         PR c/1027
25421         * c-lang.c (c_initialize_diagnostics): Move from here ...
25422         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
25423         (c_tree_printer): Use pretty-printer to format %T.
25424         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
25425         before '*' if not C++.
25426         (pp_c_direct_abstract_declarator): Don't try to print array upper
25427         bound for flexible array members.
25428         * c-tree.h: Include "diagnostic.h".
25429         (c_initialize_diagnostics): Declare.
25430         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
25431         * c-format.c (format_type_warning): New function.  Improve
25432         diagnostics for incorrect format argument types.
25433         (check_format_types): Use it.  Add two parameters.  Use the
25434         TYPE_MAIN_VARIANT of wanted_type.
25435         (check_format_info_main): Pass new parameters to
25436         check_format_types.
25437         (struct format_wanted_type): Update comment.
25438
25439 2004-07-01  Nick Clifton  <nickc@redhat.com>
25440
25441         * target.h (struct gcc_target): Add new field to struct cxx:
25442         import_export_class.
25443         * target-def.h (TARGET_CXX): Initialise the new field.
25444         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
25445         the new field.
25446         * doc/tm.texi: Document the new target hook.
25447
25448 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
25449
25450         * builtins.c (fold_builtin_classify): Fix typo.
25451
25452 2004-07-01  Richard Henderson  <rth@redhat.com>
25453
25454         * function.c (identify_blocks, identify_blocks_1): Remove.
25455         * function.h (identify_blocks): Remove.
25456         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
25457
25458 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
25459
25460         * builtins.c (fold_builtin_classify): New.
25461         (fold_builtin_unordered_cmp): Fix commentary.
25462         (fold_builtin): Use it.
25463         * builtins.def: Define builtins for isnan,
25464         isnanf, isnanl, finite, finitef, finitel,
25465         isinf, isinff, isinfl.
25466
25467 2004-07-01  Richard Henderson  <rth@redhat.com>
25468
25469         * function.h (struct function): Remove dont_emit_block_notes.
25470         * gimple-low.c (lower_function_body): Don't set it.
25471         * cfgexpand.c (expand_block): Don't check it.
25472         * cfglayout.c (insn_locators_initialize): Likewise.
25473         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
25474         * passes.c (rest_of_compilation): Likewise.
25475         * stmt.c (expand_start_bindings_and_block): Likewise.
25476         (expand_end_bindings): Likewise.
25477
25478 2004-07-01  Richard Henderson  <rth@redhat.com>
25479
25480         * cgraph.h (cgraph_build_static_cdtor): Declare.
25481         * cgraphunit.c (cgraph_build_static_cdtor): New.
25482         * c-objc-common.c (build_cdtor): Use it.
25483         * coverage.c (create_coverage): Likewise.
25484         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
25485         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
25486
25487 See ChangeLog.11 for earlier changes.