OSDN Git Service

* basic-block.h: Remove the prototypes for can_hoist_insn_p,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2
3         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
4         hoist_insn_after, and hoist_insn_to_edge.
5         * rtl.h: Remove the prototypes for reg_referenced_between_p,
6         no_jumps_between_p, and insn_dependent_p.
7         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
8         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
9         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
10         hoist_insn_to_edge): Remove.
11
12 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
13
14         PR c/17881
15         * c-decl.c (grokparms): Don't warn for parameters of incomplete
16         type in declarations that are not definitions except for the case
17         of parameters of void type.
18
19 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
20
21         * tree-cfg.c: Fix comment typos.
22
23 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
24
25         PR c/17301
26         * builtins.c (expand_builtin_va_start): Check for too few
27         arguments to va_start.
28
29 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
30
31         PR c/17189
32         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
33         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
34         pedantic.
35         * c-parse.in (component_decl): Don't pedwarn here for unnamed
36         fields.
37
38 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
39
40         PR tree-optimization/17906
41         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
42         copy non-gimple reg arguments.
43
44 2004-10-09  Roger Sayle  <roger@eyesopen.com>
45
46         PR rtl-optimization/17853
47         * simplify-rtx.c (simplify_relational_operation): Correct comment.
48         Reorganize handling of comparison operations with floating point
49         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
50         Likewise, introduce support for comparison operations with vector
51         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
52
53         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
54         * doc/tm.texi: Likewise.
55
56 2004-10-09  Steven Bosscher  <stevenb@suse.de>
57
58         * regs.h (struct reg_info_def): Remove the last_node_uid and
59         changes_mode fields.
60         (REGNO_LAST_NOTE_UID): Don't define.
61         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
62         * regmove.c (copy_src_to_dest): Likewise.
63
64 2004-10-09  Roger Sayle  <roger@eyesopen.com>
65
66         PR middle-end/17894
67         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
68         relational comparison operator op needs to be swapped/reversed when
69         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
70
71 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
72
73         PR tree-opt/17902
74         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
75         instead of bsi_start.
76         (value_replacement): Likewise.
77         (abs_replacement): Likewise
78
79 2004-10-09  Steven Bosscher  <stevenb@suse.de>
80
81         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
82         (expand_gimple_cond_expr, expand_gimple_tailcall,
83         expand_gimple_basic_block): Use it to dump RTL for each stmt.
84         (tree_expand_cfg): Announce full RTL function dump.
85         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
86         not the graph version.
87         * tree-pretty-print.c (dump_generic_node): Allow empty statements
88         in the arms of a COND_EXPR for lowered nodes.
89
90 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
91
92         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
93         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
94         strtoufix16, strtoufix32, strtoufix64): Declare.
95
96 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
97
98         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
99         for an out-of-range floating point constant.
100         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
101         warning if the target format does not support infinities.
102
103 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
104
105         * emit-rtl.c (last_label_num, base_label_num): Remove.
106         (max_label_num): Always return label_num.
107         (set_new_last_label_num, restore_emit_status): Remove.
108         (init_emit): Don't initialize last_label_num.
109         * function.c (pop_function_context_from): Don't call
110         restore_emit_status.
111         * function.h: Remove the prototype for restore_emit_status.
112         * rtl.h: Remove the prototype for set_new_last_label_num.
113
114 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
115
116         * stmt.c (expand_decl_init): Remove.
117         * tree.h: Remove the corresponding prototype.
118
119 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
120
121         * integrate.c (try_constants, subst_constants, mark_stores):
122         Remove.
123         * integrate.h: Remove the prototype for try_constants.
124
125 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
126
127         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
128         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
129         comments about its relevance to errors.
130         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
131
132 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
133
134         PR c/16999
135         * c-ppoutput.c (cb_ident): Don't quote string as it is already
136         quoted.
137
138 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
139
140         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
141         reference_node_pool.
142
143 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
144
145         * tree-cfg.c: Fix a comment typo.
146
147 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
148
149         * config/s390/s390.c (s390_register_info): Don't save fprs for 
150         -msoft-float.
151         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
152
153 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
154
155         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
156         (TARGET_DEFAULT): Use symbolic values.
157         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
158         (TARGET_DEFAULT): Use symbolic values.
159         * config/s390/s390.c (s390_backchain_string): Initialize to
160         TARGET_DEFAULT_BACKCHAIN.
161
162 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
163
164         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
165         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
166         code.
167         (expand_builtin_strcat): Accept a type parameter.
168         (fold_builtin_mempcpy): Accept a type and endp parameter.
169
170         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
171         Accept an `exp' instead of an `arglist'.
172
173 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
174
175         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
176         reverting my 2004-09-07 patch to use build_int_cst.
177
178 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
179
180         PR target/17245
181         * config/sparc/sparc.c (input_operand): Remove redundant code
182         for handling LO_SUM.
183         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
184         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
185         Otherwise only accept it for TFmode if quad move insns are available.
186
187 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
188
189         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
190         common cases will be caught earlier than others.
191
192 2004-10-08  Michael Matz  <matz@suse.de>
193
194         * loop-doloop.c (doloop_optimize): Extend count.
195
196 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
197
198         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
199         (prefetch): Convert to expander.
200
201 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
202
203         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
204         first argument of CALL.
205         (tls_local_dynamic): Likewise.
206
207 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
208
209         * c-typeck.c (enum impl_conv): New.
210         (convert_for_assignment): Use it.  Take tree for function called
211         instead of its name.  Handle ObjC selectors for diagnostics at
212         start of function.  Select diagnostic text within the function
213         using full sentences for diagnsotics.  Use %qE to name functions
214         in diagnostics.
215         (convert_arguments, build_modify_expr,
216         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
217         callers to convert_for_assignment.
218         (warn_for_assignment): Remove.
219
220 2004-10-08  Nick Clifton  <nickc@redhat.com>
221
222         * config/sh/symbian.c (symbian_possibly_export_base_class):
223         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
224         TYPE_CONTAINS_VPTR_P.
225
226 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
227
228         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
229         fixed registers form all_used_regs. Update call_really_used_regs.
230         (CALL_REALLY_USED_REGISTERS): Define.
231         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
232         with call_really_used_regs.
233
234 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
235
236         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
237         for -profile as well as -p and -pg.
238
239 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
240
241         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
242
243 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
244
245         * tree-cfg.c (tree_block_forwards_to): Remove.
246         * tree-flow.h: Remove the corresponding prototype.
247
248 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
249
250         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
251         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
252
253 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
254
255         Radar 3813796
256         * config/rs6000/rs6000.c (rs6000_generate_compare): When
257         flag_trapping_math is in effect, don't generate subtract
258         instructions.
259
260 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
261
262         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
263         * config/s390/s390.c (s390_narrow_logical_operator): New function.
264         (s390_extra_constraint_str): Add 'A' constraints.
265         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
266         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
267         (CONSTRAINT_LEN): Likewise.
268         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
269         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
270         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
271         ("*iordi3"): Add OI alternative and splitter.
272         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
273         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
274         ("*xordi3"): Add XI alternative and splitter.
275         ("*xorsi3", "*xorhi3"): Likewise.
276
277 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
278
279         * config/mips/mips.c (mips_function_rodata_section): New function.
280         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
281
282 2004-10-07  Devang Patel  <dpatel@apple.com>
283
284         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
285         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
286         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
287         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
288         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
289         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI, 
290         UNSPEC_VCONDU_V16QI): New constant defines.
291         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
292         vconduv16qi): New patterns.
293         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
294         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
295         (get_vec_cmp_insn): Same.
296         (get_vsel_insn): Same.
297         (rs6000_emit_vector_compare): Same.
298         (rs6000_emit_vector_select): Same.
299         (INSN_NOT_AVAILABLE): New.
300         
301 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
302
303         PR tree-optimization/17749
304         * tree-tailcall.c (find_tail_calls): Check that parameter is
305         a gimple_reg.
306
307 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
308
309         * config/ia64/ia64.c: Fix a comment typo.
310
311 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
312
313         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
314
315 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
316
317         PR c++/17115
318         * tree-inline.c (expand_call_inline): Do not warn for functions
319         marked with attribute noinline.
320
321 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
322
323         PR target/17862
324         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
325         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
326
327         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
328         of 0 as 4th argument to pass_by_reference.
329         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
330
331 2004-10-06  Eric Christopher  <echristo@redhat.com>
332
333         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
334         attribute.
335
336 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
337
338         PR target/17770
339         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
340
341 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
342
343         PR rtl-optimization/17791
344         * loop-doloop.c (doloop_modify): Take number of iterations as
345         argument.
346         (doloop_optimize): Extend or shorten the number of iterations
347         when changing mode of counter register.
348         * loop-iv.c (lowpart_subreg): Export.
349         * rtl.h (lowpart_subreg): Declare.
350
351 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
352
353         PR tree-optimization/17806
354         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
355         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
356         flags moved to split_edge.
357
358 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
359
360         PR middle-end/17835
361         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
362         before tentatively building the conditional move sequence.
363
364 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
365
366         PR target/16815
367         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
368         check.
369         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
370         function_arg_padding.
371
372 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
373
374         PR bootstrap/17857
375         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
376
377 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
378
379         * hooks.c (hook_int_void_1, hook_void_int): Remove.
380         * hooks.h: Remove the corresponding prototypes.
381
382 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
383
384         PR middle-end/17849
385         * tree-nested.c (walk_stmt_info): Add changed field.
386         (convert_nonlocal_reference): Set changed to when we
387         change a decl to unnested decl.
388         <case ADDR_EXPR>: Instead of checking if the immediate part
389         of the ADDR_EXPR changed, check the field changed.
390         Use recompute_tree_invarant_for_addr_expr instead of unsetting
391         TREE_INVARIANT.
392         (convert_local_reference):  Set changed to when we
393         change a decl to unnested decl.
394         <case ADDR_EXPR>: Instead of checking if the immediate part
395         of the ADDR_EXPR changed, check the field changed.
396         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
397
398 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
399
400         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
401         * dwarf2out.c (dwarf2out_init): Remove references to
402         DWARF2_GENERATE_TEXT_SECTION_LABEL.
403         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
404         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
405
406 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
407
408         * c-typeck.c (convert_arguments): Take expression for called
409         function rather than its name.  Handle ObjC selectors directly
410         rather than relying on warn_for_assignment to do so.  Call warning
411         directly rather than warn_for_assignment.  Use %qE in diagnostics.
412         Say "argument" rather than "arg" in diagnostics.
413         (build_function_call): Update call to convert_arguments.
414
415 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
416
417         PR debug/17787
418         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
419         ENUMs specially instead of just saying we do.
420
421 2004-10-06  Eric Christopher  <echristo@redhat.com>
422
423         * dwarf2.h: Sync with include/elf/dwarf2.h
424
425 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
426
427         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
428         and TREE_VEC nodes.
429
430 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
431
432         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
433         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
434
435 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
436
437         * lambda-code.c (compute_nest_using_fourier_motzkin): New
438         function.
439         (lambda_compute_auxillary_space): Split from here.
440
441 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
442
443         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
444         * tree-flow.h: Add prototype.
445         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
446         expr_invariant_in_loop.
447
448 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
449
450         * tree-cfg.c (thread_jumps): Remove a duplicate check for
451         EXIT_BLOCK_PTR.
452
453 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
454
455         * config/s390/s390-protos.h (s_imm_operand): Remove.
456         (s390_pool_operand): Add prototype.
457         * config/s390/s390.c (general_s_operand): Remove.
458         (s_imm_operand): Remove.
459         (s_operand): Merge contents of general_s_operand.
460         (s390_pool_operand): New function.
461         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
462         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
463         ("*cmpdi_ccu"): Merge Q->Q alternative.
464         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
465         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
466         ("*cli"): Remove.
467         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
468         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
469         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
470
471 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
472
473         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
474         call ia64_function_arg_boundary.
475         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
476         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
477         (ia64_function_arg_advance): Do not put 128 bit floats into
478         FP registers.
479
480 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
481
482         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
483         Accept an expression instead of an arglist.
484         (expand_builtin_stpcpy): Accept an expression instead of an
485         arglist.
486
487 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
488
489         PR target/16007
490         * doc/install.texi (*-*-solaris2*): Mention potential problem
491         with Sun assembler + GNU linker and C++ programs.
492         Document status of binutils 2.15 release.
493
494 2004-10-06  Jan Hubicka  <jh@suse.cz>
495
496         * cse.c (cse_main): Kill push/pop context.
497
498 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
499
500         * pretty-print.c: Include tree.h.
501         (pp_base_prepare_to_format): New function, logic from
502         text_specifies_location.
503         (pp_base_format_text): Use gcc_assert.
504         * pretty-print.h (pp_prepare_to_format): New macro.
505         (pp_base_prepare_to_format): Prototype.
506         * diagnostic.c (text_specifies_location): Delete.
507         (bug_report_request): Delete.
508         (diagnostic_set_info): Don't call text_specifies_location.
509         (diagnostic_action_after_output): Put text from
510         bug_report_request inline here.  Use gcc_unreachable.
511         (diagnostic_report_current_function): Fix comment.
512         (diagnostic_report_diagnostic): Clarify logic for error recursion.
513         Call pp_prepare_to_format before diagnostic_starter.
514         (trim_filename): Use IS_DIR_SEPARATOR.
515         (fatal_error, internal_error): Use gcc_unreachable.
516         (error_recursion): Call diagnostic_action_after_output to
517         issue the bug_report_request message and exit.
518         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
519
520         * c-parse.in: Add list of diagnostic messages to insulate
521         translation template from version of yacc/bison used to
522         compile the grammar.
523
524 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
525
526         PR 16406
527         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
528
529 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
530
531         * basic-block.h: Remove the prototype for
532         flow_preorder_transversal_compute.
533         * cfganal.c (dfst_node): Remove.
534         (flow_preorder_transversal_compute): Likewise.
535         * rtl.h: Remove the prototype for get_jump_table_offset.
536         * rtlanal.c (get_jump_table_offset): Remove.
537
538 2004-10-05  Richard Henderson  <rth@redhat.com>
539
540         PR 17756
541         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
542
543 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
544
545         PR bootstrap/17817
546         * Makefile.in: Stage the build directory too.
547
548 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
549
550         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
551
552         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
553         (frv_emit_move): Same.
554
555         * config/frv/frv.c (frv_emit_move): New.
556         (frv_legitimize_address): New.
557
558         * config/frv/frv.md ("movsi"): Call frv_emit_move.
559         ("movqi"): Same.
560         ("movhi"): Same.
561         ("movdi"): Same.
562         ("movsf"): Same.
563         ("movdf"): Same.
564
565 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
566
567         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
568         system headers.
569
570 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
571
572         * c-decl.c (pushdecl): When an extern declaration at block scope
573         refers to a visible entity with internal linkage, use the old DECL
574         rather than the new one.
575
576 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
577
578         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
579         comments.
580
581 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
582
583         * tree-cfg.c (thread_jumps): Remove a duplicate check for
584         an infinite loop.
585
586 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
587
588         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
589         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
590         blocks.
591
592 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
593
594         * tree-cfg.c (cleanup_tree_cfg): Don't call
595         delete_unreachable_blosk() after thread_jumps().
596         (thread_jumps): Always remove basic blocks as they become
597         unreachable.
598
599 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
600
601         * tree-cfg.c (cleanup_tree_cfg): Remove variable
602         something_changed.  Simplify the while loop.
603
604 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
605
606         * builtins.c (expand_builtin_memmove): Delete duplicate code
607         and accept a tree type for the result.
608         (expand_builtin_bcopy): Accept a tree type for the result.
609         (fold_builtin_memmove): Accept an arglist and tree type for
610         the result.
611
612 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
613
614         * config/s390/s390.c (s390_dump_pool): Remove return value.
615         Use gen_pool_align, gen_pool_section_start/end instead of
616         gen_pool_start/end_31/64.
617         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
618         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
619         ("pool_start_31", "pool_end_31"): Remove.
620         ("pool_start_64", "pool_end_64"): Likewise.
621         ("pool_align", "pool_section_start", "pool_section_end": New insns.
622
623         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
624         (TARGET_CANNOT_COPY_INSN_P): Define.
625         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
626         (struct constant_pool): New member 'execute'.
627         (s390_add_execute, s390_find_execute): New functions.
628         (s390_execute_label, s390_execute_target): Likewise.
629         (s390_dump_pool): Output in-pool execute target templates.
630         (s390_dump_execute): New function.
631         (s390_alloc_pool, s390_free_pool): Handle execute templates.
632         (s390_mainpool_start, s390_mainpool_finish): Likewise.
633         (s390_chunkify_start, s390_chunkify_finish): Likewise.
634         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
635         ("*execute"): New insn pattern.
636         ("movmem_short", "*movmem_short"): Use splitters to generate
637         explicit execute pattern, remove embedded execute.
638         ("clrmem_short", "*clrmem_short"): Likewise.
639         ("cmpmem_short", "*cmpmem_short"): Likewise.
640
641 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
642
643         * tree-ssa.c (verify_ssa): Verify phi arguments only
644         contain renamed names.
645
646 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
647
648         * config/rs6000/linux.h: Formatting, whitespace.
649         * config/rs6000/linux64.h: Likewise.
650         * config/rs6000/rs6000-protos.h: Likewise.
651         * config/rs6000/rs6000.c: Likewise.
652         (easy_vector_splat_const): Add fall thru comments.
653         (output_vec_const_move): Likewise.
654
655 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
656
657         * Makefile.in: Update -Wno-error exceptions for move to build dir.
658
659 2004-10-05  Chao-Ying Fu  <fu@mips.com>
660             Richard Sandiford  <rsandifo@redhat.com>
661
662         * doc/invoke.texi (-mpaired-single): Link to the new description of the
663         built-in functions.  Document dependencies.
664         (-mips3d): Add link here too.
665         * doc/extend.texi (MIPS Paired-Single Support): New section.
666
667 2004-10-04  Chao-ying Fu  <fu@mips.com>
668
669         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
670
671 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
672
673         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
674         Initialize OPT_STATS to 0.
675
676 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
677
678         * tree-data-ref.c: Fix comment typos.
679
680 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
681
682         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
683         the predicate cannot be computed, don't initialize the result to
684         false.
685
686 2004-10-01  Eric Christopher  <echristo@redhat.com>
687
688         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
689         locally defined enum.
690         * dwarf2out.c (add_calling_convention_attribute): Don't
691         emit DW_CC_normal.
692
693 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
694
695         PR c/17178, PR c/17820
696         * c-decl.c (pop_scope): Do not warn about unused static
697         variables as they warned in the middle-end.
698
699 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
700
701         * builtins.c (expand_builtin_memcpy): Delete duplicate code
702         and make the first parameter the expression not the arglist.
703
704 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
705
706         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
707         as valid modes to expand address expressions.
708
709 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
710
711         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
712         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
713         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
714         code formatting conventions.
715
716 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
717
718         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
719
720 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
721
722         PR tree-optimization/16632
723         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
724         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
725         where | is used instead of &.
726
727 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
728
729         * ginclude/stddef.h: Fix a comment typo.
730
731 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
732
733         PR target/17443
734         * config.gcc (i?86-*-solaris2*): Restore correct logic
735         for --enable-threads option.
736         (sparc64-*-solaris2*): Likewise.
737         (sparc-*-solaris2*): Likewise.
738
739 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
740
741         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
742         (OS_MISSING_POWERPC64): Move, and comment.
743         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
744         (OS_MISSING_POWERPC64): Move, and comment.
745
746 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
747
748         * arm.c (output_call_mem): Add missing \t.
749
750 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
751
752         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
753         expand_builtin_strncmp): Delete duplicate code.
754
755 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
756
757         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
758         take check-base and -limit arguments.
759         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
760         check ranges for ARRAY_REF and COMPONENT_REF.
761         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
762         instrumentation.
763
764 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
765
766         * c-objc-common.c (c_tree_printer): Correct description of %E.
767         Don't fall through after printing an expression.
768
769 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
770
771         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
772
773 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
774
775         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
776         delete_unrechable_blocks() only when necessary.
777
778 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
779
780         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
781         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
782         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
783         __gthread_recursive_mutex_unlock): New functions.
784
785 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
786
787         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
788         * config/s390/tpf-eh.c: Remove file.
789         * config/s390/tpf-unwind.h: New file.
790         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
791         (MD_UNWIND_SUPPORT): Define.
792
793 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
794
795         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
796
797 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
798
799         * config/s390/s390-protos.h (s390_comparison): Add prototype.
800         * config/s390/s390.c (s390_comparison): New function.
801         (s390_branch_condition_mask): Return -1 for invalid comparisons.
802         (s390_branch_condition_mnemonic): Assert valid comparison.
803         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
804         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
805         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
806         s390_comparison instead of comparison_operator.
807
808         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
809         ("cmpmemdi"): Remove.
810         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
811         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
812         ("cmpint_si"): Rename to ...
813         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
814         ("cmpint_di", "*cmpint_di"): Likewise.
815         * config/s390/s390.c (s390_canonicalize_comparison): Remove
816         redundant UNSPEC_CMPINT conversions.
817         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
818
819 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
820
821         * collect2.c (COLLECT_PARSE_FLAG): Remove.
822         (main): Remove a reference to COLLECT_PARSE_FLAG
823         * system.h: Poison COLLECT_PARSE_FLAG.
824         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
825
826 2004-10-01  Paul Brook  <paul@codesourcery.com>
827
828         * config/arm/crti.asm: Give _init and _fini function type.
829
830 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
831
832         * common.opt (ftree-loop-ivcanon): Enable by default.
833         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
834         Enable complete loop unrolling.
835         (canonicalize_induction_variables, tree_unroll_loops_completely):
836         Reset scev info.
837
838 2004-10-01  Paul Brook  <paul@codesourcery.com>
839
840         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
841         not register number.
842         (thumb_find_work_register): Search full register range.
843
844 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
845
846         PR tree-opt/17343
847         * tree-cfg.c (group_case_labels): Get the label and not
848         the case expr for the default case.
849         When the label we looking at is the default, decrement the
850         new_size.
851
852 2004-10-01  Jan Hubicka  <jh@suse.cz>
853
854         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
855         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
856         * toplev.h (tree_rest_of_compilation): Update prototype.
857         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
858
859 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
860
861         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
862         cleanup_control_flow() out of the while loop.
863
864 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
865
866         * tree-vectorizer.c (vectorizable_operation): Fail unless
867         the mode for the vector type is indeed a vector mode.
868
869 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
870
871         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
872         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
873         of convert.
874         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
875         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
876         follow_ssa_edge_in_rhs): Ditto.
877         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
878         (dump_iv): Dump base_object.
879         (dump_use, dump_cand): Use dump_iv.
880         (determine_base_object): New function.
881         (alloc_iv): Initialize base_object field.
882         (record_use): Clear the ssa_name field of iv.
883         (get_computation_cost_at): Do not use difference of addresses of
884         two different objects.
885         (may_eliminate_iv): Do not require the loop to have just single exit.
886         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
887         (nonzero_p): New function.
888         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
889         tree_simplify_using_condition, simplify_using_initial_conditions,
890         loop_niter_by_eval, find_loop_niter_by_eval,
891         estimate_numbers_of_iterations_loop, compare_trees,
892         upper_bound_in_type, lower_bound_in_type,
893         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
894         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
895         instead of integer_(non)zerop.
896
897 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
898
899         Revert
900         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
901
902         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
903         and TI_VA_LIST_FPR_COUNTER_FIELD.
904         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
905         * tree-pass.h (pass_stdarg): Add.
906         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
907         * tree-stdarg.c: New file.
908         * Makefile.in (OBJS-common): Add tree-stdarg.o.
909         (tree-stdarg.o): Add dependencies.
910         * function.h (struct function): Add va_list_gpr_size and
911         va_list_fpr_size fields.
912         * function.c (allocate_struct_function): Initialize them.
913
914         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
915         va_list_{g,f}pr_counter_field.
916         (ix86_setup_incoming_varargs): Don't do anything if reg_save
917         area will not be used.  Only save registers that tree-stdarg.c
918         detected they need saving.
919         (ix86_va_start): Don't set up fields that won't be used.
920
921         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
922         va_list_{g,f}pr_counter_field.
923         (setup_incoming_varargs): Don't do anything if reg_save
924         area will not be used.  Only save registers that tree-stdarg.c
925         detected they need saving.
926         (rs6000_va_start): Don't set up fields that won't be used.
927
928 2004-09-30  Eric Christopher  <echristo@redhat.com>
929
930         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
931         sh abi.
932         * dwarf2out.c (add_calling_convention_attribute): New function.
933         (gen_subroutine_type_die): Use.
934         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
935         * target.h (gcc_target): Add dwarf_calling_convention.
936         * hooks.c (hook_int_tree_0): New function.
937         * hooks.h: Prototype.
938         * config/sh/sh.c: Include dwarf2.h.
939         (sh_dwarf_calling_convention): New function.
940         (TARGET_DWARF_CALLING_CONVENTION): Use.
941         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
942
943 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
944
945         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
946         expand_builtin_strrchr, expand_builtin_strpbrk,
947         expand_builtin_strncat, expand_builtin_strspn,
948         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
949         code.
950
951 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
952
953         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
954         prototype.
955         (s390_logical_operator_ok_p): Likewise.
956         * config/s390/s390.c (s390_expand_logical_operator): New function.
957         (s390_logical_operator_ok_p): Likewise.
958         * config/s390/s390.md ("anddi3"): New expander.
959         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
960         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
961         ("andsi3"): Use s390_expand_logical_operator.
962         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
963         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
964         ("andhi3"): New expander.
965         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
966         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
967         ("andqi3"): New expander.
968         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
969         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
970         ("iordi3"): New expander.
971         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
972         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
973         ("iorsi3"): Use s390_expand_logical_operator.
974         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
975         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
976         ("iorhi3"): New expiorer.
977         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
978         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
979         ("iorqi3"): New expiorer.
980         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
981         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
982         ("xordi3"): New expander.
983         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
984         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
985         ("xorsi3"): New expander.
986         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
987         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
988         ("xorhi3"): New expander.
989         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
990         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
991         ("xorqi3"): New expander.
992         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
993         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
994
995 2004-09-30  Roger Sayle  <roger@eyesopen.com>
996
997         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
998         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
999         machine mode as the result.
1000
1001 2004-09-30  Ben Elliston  <bje@au.ibm.com>
1002
1003         PR bootstrap/17761
1004         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
1005         FOR_EACH_EDGE macros.
1006
1007 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
1008
1009         * c-tree.h (readonly_error): Remove.
1010         * c-typeck (enum lvalue_use): New.
1011         (lvalue_or_else, readonly_error): Use it.  All callers changed.
1012         (readonly_error): Make static.
1013
1014 2004-09-30  Jan Hubicka  <jh@suse.cz>
1015
1016         PR debug/13974
1017         * cfgrtl.c (try_redirect_by_replacing_jump,
1018         force_nonfallthru_and_redirect, commit_one_edge_insertion,
1019         cfg_layout_merge_blocks):  Do not attach any line number information
1020         to newly inserted instructions.
1021         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
1022         emit_insn_*_noloc.
1023         (emit_*insn_before, emit_insn*_after): New.
1024         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
1025         existing locators.
1026         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
1027         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
1028
1029 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1030
1031         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
1032         (s390_return_address_offset): Remove.
1033         (s390_can_eliminate): Add prototype.
1034         (s390_initial_elimination_offset): Add prototype.
1035         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
1036         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
1037         * config/s390/s390.c (s390_arg_frame_offset): Remove.
1038         (s390_return_address_offset): Remove.
1039         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
1040         (struct machine_function): New member split_branches_pending_p.
1041         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
1042         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
1043         (s390_optimize_prologue): Remove base_used argument.  Call
1044         s390_update_frame_layout instead of s390_register_info.  Handle
1045         prologue/epilogue insns that touch only RETURN_REGNUM.
1046         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
1047         (s390_register_info): Remove base_used and return_addr_used
1048         arguments, compute special register usage inline.  Return live
1049         register data to caller.
1050         (s390_frame_info): Remove arguments, do not call s390_register_info.
1051         (s390_init_frame_layout): New function.
1052         (s390_update_frame_layout): Likewise.
1053         (s390_emit_prologue): Call s390_update_frame_layout; some code
1054         move to there.  Do not emit pool placeholder insn if unnecessary.
1055
1056 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1057
1058         * config/s390/s390.c (legitimate_reload_constant_p): Remove
1059         floating point constant workaround.
1060         (s390_secondary_input_reload_class): Handle PLUS reloads
1061         with too-large constant.
1062         (s390_expand_plus_operand): Likewise.
1063         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
1064         ("movsi"): Likewise.  Also, remove workaround for non-general
1065         operands.
1066         ("movdf"): Do not call force_const_mem.
1067         ("movsf"): Likewise.  Merge expander with *movsf insn.
1068         ("*movsf"): Remove, merge with movsf expander.
1069
1070 2004-09-30  Paul Brook  <paul@codesourcery.com>
1071
1072         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
1073         (ENDFILE_SPEC): Define.
1074         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
1075
1076 2004-09-30  Richard Henderson  <rth@redhat.com>
1077
1078         * config/alpha/qrnnd.asm: Mark for noexecstack.
1079
1080 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
1081
1082         * protoize.c, tree-cfg.c: Fix comment typos.
1083
1084 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
1085
1086         PR c/17730
1087         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
1088
1089 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
1090
1091         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
1092         expressions...
1093         (add_pointed_to_expr): ... here.
1094         Call add_pointed_to_expr for variables with DECL_INITIAL set.
1095         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
1096         pointer variable, if set.
1097
1098 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
1099
1100         * config/sh/sh.c: Follow spelling conventions.
1101
1102 2004-09-29  Richard Henderson  <rth@redhat.com>
1103
1104         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
1105         * doc/tm.texi (DWARF_ZERO_REG): New.
1106
1107         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
1108         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
1109         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
1110
1111 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
1112
1113         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
1114         with a PLUS as source operand.
1115         (expand_movstr): Likewise.
1116         (expand_builtin_stpcpy): Likewise.
1117
1118 2004-09-29  Richard Henderson  <rth@redhat.com>
1119
1120         PR 17739
1121         * tree-gimple.c (is_gimple_reg): Reject hard registers.
1122         (is_gimple_asm_val): New.
1123         * tree-gimple.h (is_gimple_asm_val): Declare.
1124         * gimplify.c (gimplify_asm_expr): Use it.
1125         * tree-pretty-print.c (print_declaration): Dump hard regs.
1126         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
1127         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1128         * tree-ssa-pre.c (is_undefined_value): Likewise.
1129         * tree-ssa-copy.c (may_propagate_copy): Likewise.
1130         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
1131         * tree-ssa.c (warn_uninit): Likewise.
1132         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
1133
1134 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
1135
1136         * c-decl.c (merge_decls): Use comptype when comparing
1137         types to decide on DECL_SIZE save of olddecl.
1138
1139 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
1140
1141         * tree.h (INDIRECT_REF_P): New macro.
1142         * alias.c (get_alias_set): Use it
1143         (nonoverlapping_memrefs_p): Ditto.
1144         * emit-rtl.c (mem_expr_equal_p): Ditto.
1145         (set_mem_attributes_minus_bitpos): Ditto.
1146         (is_gimple_addressable): Ditto.
1147         (get_base_address): Ditto.
1148         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
1149         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
1150         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
1151         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
1152         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
1153         (add_address_candidates): Ditto.
1154         (rewrite_address_base): Ditto.
1155
1156 2004-09-30  Ben Elliston  <bje@au.ibm.com>
1157
1158         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
1159         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
1160         (rewrite_ssa_into_ssa): Likewise.
1161         * tree-phinodes.c (create_phi_node): Access the number of
1162         predecessor edges using EDGE_COUNT() and not num_preds.
1163
1164 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1165
1166         PR c/7425
1167         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
1168
1169 2004-09-29  Eric Christopher  <echristo@redhat.com>
1170
1171         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
1172
1173 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
1174
1175         * config/cris/cris.md (moverside, movemside): With MEM, make sure
1176         the address is (plus reg mem).
1177
1178 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
1179
1180         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
1181
1182 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
1183
1184         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
1185         cascaded if ... else if with a switch.
1186
1187 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1188
1189         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
1190
1191 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1192
1193         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
1194         and TI_VA_LIST_FPR_COUNTER_FIELD.
1195         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
1196         * tree-pass.h (pass_stdarg): Add.
1197         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
1198         * tree-stdarg.c: New file.
1199         * Makefile.in (OBJS-common): Add tree-stdarg.o.
1200         (tree-stdarg.o): Add dependencies.
1201         * function.h (struct function): Add va_list_gpr_size and
1202         va_list_fpr_size fields.
1203         * function.c (allocate_struct_function): Initialize them.
1204
1205         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
1206         va_list_{g,f}pr_counter_field.
1207         (ix86_setup_incoming_varargs): Don't do anything if reg_save
1208         area will not be used.  Only save registers that tree-stdarg.c
1209         detected they need saving.
1210         (ix86_va_start): Don't set up fields that won't be used.
1211
1212         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
1213         va_list_{g,f}pr_counter_field.
1214         (setup_incoming_varargs): Don't do anything if reg_save
1215         area will not be used.  Only save registers that tree-stdarg.c
1216         detected they need saving.
1217         (rs6000_va_start): Don't set up fields that won't be used.
1218
1219 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1220
1221         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
1222         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
1223         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
1224         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
1225         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
1226         ATTR_NONNULL_1_4): New.
1227
1228 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1229
1230         PR tree-optimization/17697
1231         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
1232         cfg if needed.
1233
1234 2004-09-28  Per Bothner  <per@bothner.com>
1235
1236         * profile.c (branch_prob): Pass correct value to output_location,
1237         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
1238
1239 2004-09-28  Richard Henderson  <rth@redhat.com>
1240
1241         PR 15089
1242         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
1243         * tree-flow.h (may_propagate_copy_into_asm): Declare.
1244         * tree-ssa-ccp.c (replace_uses_in): Use it.
1245         * tree-ssa-dom.c (cprop_operand): Likewise.
1246
1247 2004-09-28 Jeff Law  <law@redhat.com>
1248
1249         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
1250         that no outgoing edges be left in the duplicate block.  Do no
1251         update information on outgoing edges or PHI nodes in target
1252         blocks here.
1253         (remove_ctrl_stmt_and_useless_edges): Renamed from
1254         remove_last_stmt_and_useless_edges.  Handle case where the
1255         block is empty or has no control statements.  Do not update edge
1256         flags here.
1257         (thread_block): Create a template block rather than copying the
1258         original block every time.  Create outgoing edges from the
1259         duplicate blocks and update PHIs at the target of the outgoing
1260         edges here.  Fix edge flags for the original block if necessary.
1261         * cfghooks (duplicate_block): No longer assert that the original
1262         block has incoming edges.
1263
1264 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
1265
1266         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
1267         Reg Vars to enforce register allocation with general constraints.
1268         (Explicit Reg Vars): Clarify relation to asm statements.
1269         (Local Reg Vars): Similar.
1270
1271 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1272
1273         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
1274         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
1275         build_control_flow, new_edge): Remove.
1276         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
1277         (bitlst, bitlst_table_last, bitlst_table): Remove.
1278         (bblst): Store basic_block pointer instead of block index.
1279         (bblst_table): Likewise.
1280         (edgelst): Store edge pointer instead of edge index.
1281         (edgelst_table, edgelst_last): New variables.
1282         (extract_bitlst): Rename to ...
1283         (extract_edgelst): ... this.  Return edge pointers, not indices.
1284         (split_edges): Update call.
1285         (rgn_edges): Store edge pointers instead of indices.
1286         (edge_to_bit): Remove.
1287         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
1288         (SET_EDGE_TO_BIT): New macro.
1289         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
1290         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
1291         data structures instead of haifa_edge et al.  Use edge pointers
1292         instead of edge indices everywhere.
1293         (compute_dom_prob_ps): Use standard CFG data structures.  Account
1294         for exit edges.
1295         (compute_trg_info): Likewise.
1296         (propagate_deps): Likewise.
1297         (debug_candidate): Account for bblst data structure change.
1298         (check_live_1, update_live_1, is_pfree): Likewise.
1299         (IS_REACHABLE): Use standard CFG data structures.
1300         (init_ready_list): Update bblst_table/edgelst_table allocation.
1301         (schedule_region): Update alloc/cleanup code to data structure
1302         changes.  Use edge->aux to store per-region edge index.
1303         (init_regions): No longer call build_control_flow.  Do not
1304         create edge list any more.
1305
1306 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1307
1308         * cse.c (cse_insn): Avoid creating direct non-local jumps.
1309         * combine.c (can_combine_p): Likewise.
1310         * local-alloc. (update_equiv_regs): Likewise.
1311
1312 2004-09-28  Richard Henderson  <rth@redhat.com>
1313
1314         PR 17531
1315         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
1316         Don't check VOIDmode here.  Force PLUS operands to common type.
1317         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
1318         Pmode if given a non pointer type.
1319
1320 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1321
1322         PR 17531
1323         * optabs.c (expand_binop): Force constants to the correct mode.
1324
1325 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1326
1327         * config/s390/s390.c (s390_adjust_cost): Remove.
1328         (TARGET_SCHED_ADJUST_COST): Do not redefine.
1329         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
1330         * config/s390/s390.md ("main_pool"): Use "larl" type
1331         attribute if TARGET_CPU_ZARCH.
1332
1333 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
1334
1335         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
1336         variable.
1337
1338 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1339
1340         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
1341         name to the pass.
1342
1343 2004-09-28  Steven Bosscher  <stevenb@suse.de>
1344
1345         * common.opt (flag_gcse_sm): Disable by default.
1346         (flag_gcse_las): Likewise.
1347         (flag_web): Likewise.  Create from this file.
1348         * flags.h: Remove flag_web declaration.
1349         * toplev.c (flag_web): Likewise.
1350         (process_options): Never set flag_web.
1351
1352 2004-09-28  Steven Bosscher  <stevenb@suse.de>
1353
1354         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
1355         * tree-ssa-propagate.c: Include vec.h.
1356         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
1357         instead of varrays.
1358         (cfg_blocks_add): Assert the block is not already in the worklist.
1359         Update uses of interesting_ssa_edges and varying_ssa_edges.
1360         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
1361         ssa_propagate): Likewise.
1362
1363 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1364
1365         PR c/16409
1366         * c-decl.c (start_decl): Check for initializing incomplete array
1367         of VLAs.
1368         (build_compound_literal): Check for TYPE being error_mark_node.
1369         * c-parse.in (primary): Check for VLA compound literals.
1370
1371 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1372
1373         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
1374         with --disable-checking.
1375
1376 2004-09-28  Devang Patel  <dpatel@apple.com>
1377
1378         * tree-pretty-print.c (dump_generic_node): Print vector types.
1379
1380 2004-09-28  Nick Clifton  <nickc@redhat.com>
1381
1382         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
1383         invocation of the function sh_init_cumulative_args.
1384         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
1385         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
1386         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
1387         * config/sh/sh.c (sh_init_cumulative_args): New function based
1388         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
1389         heuristic added to determine the setting of force_mem when a
1390         library function is being called.
1391
1392 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1393
1394         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
1395         Skip constant arguments.
1396
1397 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1398
1399         * tree-ssa-alias.c (create_name_tags): If PTR points to a
1400         volatile type, mark the tag volatile.
1401         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
1402         volatile.
1403
1404 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
1405
1406         * tree.def (vec_cond_expr): Fix. Change 'e'
1407         to tcc_expression.
1408
1409 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
1410
1411         * basic-block.h: Fix a comment typo.
1412
1413 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
1414
1415         * optabs.c, optabs.h: Fix comment typos.
1416
1417 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
1418
1419         * config/sparc/sparc.md (call_address_struct_value_sp32):
1420         Properly mask the immediate field of the 'unimp' instruction.
1421         (call_symbolic_struct_value_sp32): Likewise.
1422
1423 2004-09-28  Ben Elliston  <bje@au.ibm.com>
1424             Steven Bosscher  <stevenb@suse.de>
1425             Andrew Pinski  <pinskia@physics.uc.edu>
1426
1427         Merge from edge-vector-branch:
1428         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
1429         (struct edge_def): Remove pred_next, succ_next members.
1430         (struct basic_block_def): Remove pred, succ members.  Add preds
1431         and succs members of type VEC(edge).
1432         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
1433         (BRANCH_EDGE): Likewise.
1434         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
1435         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
1436         (edge_iterator): New.
1437         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
1438         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
1439         (FOR_EACH_EDGE): New.
1440         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
1441         where applicable.
1442         (rotate_loop): Likewise.
1443         (find_traces_1_route): Likewise.
1444         (bb_to_key): Likewise.
1445         (connect_traces): Likewise.
1446         (copy_bb_p): Likewise.
1447         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
1448         (add_labels_and_missing_jumps): Likewise.
1449         (fix_up_fall_thru_edges): Likewise.
1450         (find_jump_block): Likewise.
1451         (fix_crossing_conditional_branches): Likewise.
1452         (fix_crossing_unconditional_branches): Likewise.
1453         (add_reg_crossing_jump_notes): Likewise.
1454         * bt-load.c (augment_live_range): Likewise.
1455         * cfg.c (clear_edges): Likewise.
1456         (unchecked_make_edge): Likewise.
1457         (cached_make_edge): Likewise.
1458         (make_single_succ_edge): Likewise.
1459         (remove_edge): Likewise.
1460         (redirect_edge_succ_nodup): Likewise.
1461         (check_bb_profile): Likewise.
1462         (dump_flow_info): Likewise.
1463         (alloc_aux_for_edges): Likewise.
1464         (clear_aux_for_edges): Likewise.
1465         (dump_cfg_bb_info): Likewise.
1466         * cfganal.c (forwarder_block_p): Likewise.
1467         (can_fallthru): Likewise.
1468         (could_fall_through): Likewise.
1469         (mark_dfs_back_edges): Likewise.
1470         (set_edge_can_fallthru_flag): Likewise.
1471         (find_unreachable_blocks): Likewise.
1472         (create_edge_list): Likewise.
1473         (verify_edge_list): Likewise.
1474         (add_noreturn_fake_exit_edges): Likewise.
1475         (connect_infinite_loops_to_exit): Likewise.
1476         (flow_reverse_top_sort_order_compute): Likewise.
1477         (flow_depth_first_order_compute): Likewise.
1478         (flow_preorder_transversal_compute): Likewise.
1479         (flow_dfs_compute_reverse_execute): Likewise.
1480         (dfs_enumerate_from): Likewise.
1481         (compute_dominance_frontiers_1): Likewise.
1482         * cfgbuild.c (make_edges): Likewise.
1483         (compute_outgoing_frequencies): Likewise.
1484         (find_many_sub_basic_blocks): Likewise.
1485         (find_sub_basic_blocks): Likewise.
1486         * cfgcleanup.c (try_simplify_condjump): Likewise.
1487         (thread_jump): Likewise.
1488         (try_forward_edges): Likewise.
1489         (merge_blocks_move): Likewise.
1490         (outgoing_edges_match): Likewise.
1491         (try_crossjump_to_edge): Likewise.
1492         (try_crossjump_bb): Likewise.
1493         (try_optimize_cfg): Likewise.
1494         (merge_seq_blocks): Likewise.
1495         * cfgexpand.c (expand_gimple_tailcall): Likewise.
1496         (expand_gimple_basic_block): Likewise.
1497         (construct_init_block): Likewise.
1498         (construct_exit_block): Likewise.
1499         * cfghooks.c (verify_flow_info): Likewise.
1500         (dump_bb): Likewise.
1501         (delete_basic_block): Likewise.
1502         (split_edge): Likewise.
1503         (merge_blocks): Likewise.
1504         (make_forwarder_block): Likewise.
1505         (tidy_fallthru_edges): Likewise.
1506         (can_duplicate_block_p): Likewise.
1507         (duplicate_block): Likewise.
1508         * cfglayout.c (fixup_reorder_chain): Likewise.
1509         (fixup_fallthru_exit_predecessor): Likewise.
1510         (can_copy_bbs_p): Likewise.
1511         (copy_bbs): Likewise.
1512         * cfgloop.c (flow_loops_cfg_dump): Likewise.
1513         (flow_loop_entry_edges_find): Likewise.
1514         (flow_loop_exit_edges_find): Likewise.
1515         (flow_loop_nodes_find): Likewise.
1516         (mark_single_exit_loops): Likewise.
1517         (flow_loop_pre_header_scan): Likewise.
1518         (flow_loop_pre_header_find): Likewise.
1519         (update_latch_info): Likewise.
1520         (canonicalize_loop_headers): Likewise.
1521         (flow_loops_find): Likewise.
1522         (get_loop_body_in_bfs_order): Likewise.
1523         (get_loop_exit_edges): Likewise.
1524         (num_loop_branches): Likewise.
1525         (verify_loop_structure): Likewise.
1526         (loop_latch_edge): Likewise.
1527         (loop_preheader_edge): Likewise.
1528         * cfgloopanal.c (mark_irreducible_loops): Likewise.
1529         (expected_loop_iterations): Likewise.
1530         * cfgloopmanip.c (remove_bbs): Likewise.
1531         (fix_bb_placement): Likewise.
1532         (fix_irreducible_loops): Likewise.
1533         (remove_path): Likewise.
1534         (scale_bbs_frequencies): Likewise.
1535         (loopify): Likewise.
1536         (unloop): Likewise.
1537         (fix_loop_placement): Likewise.
1538         (loop_delete_branch_edge): Likewise.
1539         (duplicate_loop_to_header_edge): Likewise.
1540         (mfb_keep_just): Likewise.
1541         (create_preheader): Likewise.
1542         (force_single_succ_latches): Likewise.
1543         (loop_split_edge_with): Likewise.
1544         (create_loop_notes): Likewise.
1545         * cfgrtl.c (rtl_split_block): Likewise.
1546         (rtl_merge_blocks): Likewise.
1547         (rtl_can_merge_blocks): Likewise.
1548         (try_redirect_by_replacing_jump): Likewise.
1549         (force_nonfallthru_and_redirect): Likewise.
1550         (rtl_tidy_fallthru_edge): Likewise.
1551         (commit_one_edge_insertion): Likewise.
1552         (commit_edge_insertions): Likewise.
1553         (commit_edge_insertions_watch_calls): Likewise.
1554         (rtl_verify_flow_info_1): Likewise.
1555         (rtl_verify_flow_info): Likewise.
1556         (purge_dead_edges): Likewise.
1557         (cfg_layout_redirect_edge_and_branch): Likewise.
1558         (cfg_layout_can_merge_blocks_p): Likewise.
1559         (rtl_flow_call_edges_add): Likewise.
1560         * cse.c (cse_cc_succs): Likewise.
1561         * df.c (hybrid_search): Likewise.
1562         * dominance.c (calc_dfs_tree_nonrec): Likewise.
1563         (calc_dfs_tree): Likewise.
1564         (calc_idoms): Likewise.
1565         (recount_dominator): Likewise.
1566         * domwalk.c (walk_dominator_tree): Likewise.
1567         * except.c (emit_to_new_bb_before): Likewise.
1568         (connect_post_landing_pads): Likewise.
1569         (sjlj_emit_function_enter): Likewise.
1570         (sjlj_emit_function_exit): Likewise.
1571         (finish_eh_generation): Likewise.
1572         * final.c (compute_alignments): Likewise.
1573         * flow.c (calculate_global_regs_live): Likewise.
1574         (initialize_uninitialized_subregs): Likewise.
1575         (init_propagate_block_info): Likewise.
1576         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1577         * gcse.c (find_implicit_sets): Likewise.
1578         (bypass_block): Likewise.
1579         (bypass_conditional_jumps): Likewise.
1580         (compute_pre_data): Likewise.
1581         (insert_insn_end_bb): Likewise.
1582         (insert_store): Likewise.
1583         (remove_reachable_equiv_notes): Likewise.
1584         * global.c (global_conflicts): Likewise.
1585         (calculate_reg_pav): Likewise.
1586         * graph.c (print_rtl_graph_with_bb): Likewise.
1587         * ifcvt.c (mark_loop_exit_edges): Likewise.
1588         (merge_if_block): Likewise.
1589         (find_if_header): Likewise.
1590         (block_jumps_and_fallthru_p): Likewise.
1591         (find_if_block): Likewise.
1592         (find_cond_trap): Likewise.
1593         (block_has_only_trap): Likewise.
1594         (find_if_case1): Likewise.
1595         (find_if_case_2): Likewise.
1596         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
1597         (perfect_nestify): Likewise.
1598         * lcm.c (compute_antinout_edge): Likewise.
1599         (compute_laterin): Likewise.
1600         (compute_available): Likewise.
1601         (compute_nearerout): Likewise.
1602         * loop-doloop.c (doloop_modify): Likewise.
1603         * loop-init.c (loop_optimizer_init): Likewise.
1604         * loop-invariant.c (find_exits): Likewise.
1605         * loop-iv.c (simplify_using_initial_values): Likewise.
1606         (check_simple_exit): Likewise.
1607         (find_simple_exit): Likewise.
1608         * loop-unroll.c (peel_loop_completely): Likewise.
1609         (unroll_loop_constant_iterations): Likewise.
1610         (unroll_loop_runtime_iterations): Likewise.
1611         * loop-unswitch.c (may_unswitch_on): Likewise.
1612         (unswitch_loop): Likewise.
1613         * modulo-sched.c (generate_prolog_epilog): Likewise.
1614         (sms_schedule): Likewise.
1615         * postreload-gcse.c (eliminate_partially_redundant_load):
1616         Likewise.
1617         * predict.c (can_predict_insn_p): Likewise.
1618         (set_even_probabilities): Likewise.
1619         (combine_predictions_for_bb): Likewise.
1620         (predict_loops): Likewise.
1621         (estimate_probability): Likewise.
1622         (tree_predict_by_opcode): Likewise.
1623         (tree_estimate_probability): Likewise.
1624         (last_basic_block_p): Likewise.
1625         (propagate_freq): Likewise.
1626         (estimate_loops_at_level): Likewise.
1627         (estimate_bb_frequencies): Likewise.
1628         * profile.c (instrument_edges): Likewise.
1629         (get_exec_counts): Likewise.
1630         (compute_branch_probabilities): Likewise.
1631         (branch_prob): Likewise.
1632         * ra-build.c (live_in): Likewise.
1633         * ra-rewrite.c (rewrite_program2): Likewise.
1634         * ra.c (reg_alloc): Likewise.
1635         * reg-stack.c (reg_to_stack): Likewise.
1636         (convert_regs_entry): Likewise.
1637         (compensate_edge): Likewise.
1638         (convert_regs_1): Likewise,
1639         (convert_regs_2): Likewise.
1640         (convert_regs): Likewise.
1641         * regrename.c (copyprop_hardreg_forward): Likewise.
1642         * reload1.c (fixup_abnormal_edges): Likewise.
1643         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
1644         (sbitmap_insersection_of_preds): Likewise.
1645         (sbitmap_union_of_succs): Likewise.
1646         (sbitmap_union_of_preds): Likewise.
1647         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
1648         (fix_basic_block_boundaries): Likewise.
1649         (sched_ebbs): Likewise.
1650         * sched-rgn.c (build_control_flow): Likewise.
1651         (find_rgns): Likewise.
1652         * tracer.c (find_best_successor): Likewise.
1653         (find_best_predecessor): Likewise.
1654         (tail_duplicate): Likewise.
1655         * tree-cfg.c (make_edges): Likewise.
1656         (make_ctrl_stmt_edges): Likewise.
1657         (make_goto_expr_edges): Likewise.
1658         (tree_can_merge_blocks_p): Likewise.
1659         (tree_merge_blocks): Likewise.
1660         (cfg_remove_useless_stmts_bb): Likewise.
1661         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
1662         (tree_block_forwards_to): Likewise.
1663         (cleanup_control_expr_graph): Likewise.
1664         (find_taken_edge): Likewise.
1665         (dump_cfg_stats): Likewise.
1666         (tree_cfg2vcg): Likewise.
1667         (disband_implicit_edges): Likewise.
1668         (tree_find_edge_insert_loc): Likewise.
1669         (bsi_commit_edge_inserts): Likewise.
1670         (tree_split_edge): Likewise.
1671         (tree_verify_flow_info): Likewise.
1672         (tree_make_forwarder_block): Likewise.
1673         (tree_forwarder_block_p): Likewise.
1674         (thread_jumps): Likewise.
1675         (tree_try_redirect_by_replacing_jump): Likewise.
1676         (tree_split_block): Likewise.
1677         (add_phi_args_after_copy_bb): Likewise.
1678         (rewrite_to_new_ssa_names_bb): Likewise.
1679         (dump_function_to_file): Likewise.
1680         (print_pred_bbs): Likewise.
1681         (print_loop): Likewise.
1682         (tree_flow_call_edges_add): Likewise.
1683         (split_critical_edges): Likewise.
1684         (execute_warn_function_return): Likewise.
1685         (extract_true_false_edges_from_block): Likewise.
1686         * tree-if-conv.c (tree_if_conversion): Likewise.
1687         (if_convertable_bb_p): Likewise.
1688         (find_phi_replacement_condition): Likewise.
1689         (combine_blocks): Likewise.
1690         * tree-into-ssa.c (compute_global_livein): Likewise.
1691         (ssa_mark_phi_uses): Likewise.
1692         (ssa_rewrite_initialize_block): Likewise.
1693         (rewrite_add_phi_arguments): Likewise.
1694         (ssa_rewrite_phi_arguments): Likewise.
1695         (insert_phi_nodes_for): Likewise.
1696         (rewrite_into_ssa): Likewise.
1697         (rewrite_ssa_into_ssa): Likewise.
1698         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
1699         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
1700         (rewrite_trees): Likewise.
1701         * tree-pretty-print.c (dump_bb_header): Likewise.
1702         (dump_implicit_edges): Likewise.
1703         * tree-sra.c (insert_edge_copies): Likewise.
1704         (find_obviously_necessary_stmts): Likewise.
1705         (remove_data_stmt): Likewise.
1706         * tree-ssa-dom.c (thread_across_edge): Likewise.
1707         (dom_opt_finalize_block): Likewise.
1708         (single_incoming_edge_ignoring_loop_edges): Likewise.
1709         (record_equivalences_from_incoming_edges): Likewise.
1710         (cprop_into_successor_phis): Likewise.
1711         * tree-ssa-live.c (live_worklist): Likewise.
1712         (calculate_live_on_entry): Likewise.
1713         (calculate_live_on_exit): Likewise.
1714         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
1715         (copy_loop_headers): Likewise.
1716         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
1717         (fill_always_executed_in): Likewise.
1718         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
1719         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
1720         (compute_phi_arg_on_exit): Likewise.
1721         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
1722         (get_loops_exit): Likewise.
1723         (split_loop_exit_edge): Likewise.
1724         (ip_normal_pos): Likewise.
1725         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
1726         Likewise.
1727         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
1728         (replace_phi_with_stmt): Likewise.
1729         (value_replacement): Likewise.
1730         * tree-ssa-pre.c (compute_antic_aux): Likewise.
1731         (insert_aux): Likewise.
1732         (init_pre): Likewise.
1733         * tree-ssa-propagate.c (simulate_stmt): Likewise.
1734         (simulate_block): Likewise.
1735         (ssa_prop_init): Likewise.
1736         * tree-ssa-threadupdate.c (thread_block): Likewise.
1737         (create_block_for_threading): Likewise.
1738         (remove_last_stmt_and_useless_edges): Likewise.
1739         * tree-ssa.c (verify_phi_args): Likewise.
1740         (verify_ssa): Likewise.
1741         * tree_tailcall.c (independent_of_stmt_p): Likewise.
1742         (find_tail_calls): Likewise.
1743         (eliminate_tail_call): Likewise.
1744         (tree_optimize_tail_calls_1): Likewise.
1745         * tree-vectorizer.c (vect_transform_loop): Likewise.
1746         * var-tracking.c (prologue_stack_adjust): Likewise.
1747         (vt_stack_adjustments): Likewise.
1748         (vt_find_locations): Likewise.
1749         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1750         * config/i386/i386.c (ix86_pad_returns): Likewise.
1751         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1752         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1753
1754 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1755
1756         PR target/16532
1757         * config/sparc/sparc.c (struct machine_function): New field
1758         'leaf_function_p' and 'prologue_data_valid_p'.
1759         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
1760         to conveniently access the above fields.
1761         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
1762         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
1763         of the generic flavor 'current_function_uses_only_leaf_regs'.
1764         (eligible_for_sibcall_delay): Likewise.
1765         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
1766         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
1767         (sparc_asm_function_prologue): Add sanity check for the assumption
1768         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
1769         (sparc_can_use_return_insn_p): New function.
1770         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
1771         (output_restore): Likewise.
1772         (output_sibcall): Likewise.
1773         (sparc_output_mi_thunk): Likewise.
1774         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
1775         * config/sparc/sparc.md (return): New expander.
1776
1777         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
1778
1779 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
1780
1781         PR c++/17642
1782         * stor-layout.c (layout_decl): Use fold_convert, not convert.
1783         (bit_from_pos): Likewise.
1784         (byte_from_pos): Likewise.
1785         (pos_from_bit): Likewise.
1786         (normalize_offset): Likewise.
1787         (place_field): Likewise.
1788         (finalize_type_size): Likewise.
1789         (layout_type): Likewise.
1790         * tree.c (build_index_type): Likewise.
1791
1792 2004-09-27  Devang Patel  <dpatel@apple.com>
1793
1794         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
1795         * genopinit.c (optabs): New entry for vcond_gen_code and
1796         vcondu_gen_code.
1797         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
1798         (get_rtx_code): New function.
1799         (vector_compare_rtx): New function.
1800         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
1801         (expand_vec_cond_expr_p): New function.
1802         (expand_vec_cond_expr): New function.
1803         (get_vcond_icode): New function.
1804         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
1805         (vcond_gen_code, vcondu_gen_code): Same.
1806
1807 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1808
1809         * Makefile.in (STAGESTUFF): Split into ...
1810         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
1811         (mostlyclean): Update.
1812         (stage1-start, stage2-start, stage3-start, stage4-start,
1813         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
1814         Move the STAGEMOVESTUFF.
1815
1816 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
1817
1818         * system.h (getpagesize): Return 'int' instead of 'long'.
1819
1820 2004-09-27  Michael Matz <matz@suse.de>
1821
1822         PR bootstrap/17698
1823         PR bootstrap/17702
1824         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
1825         bmp_iter_and_init): Shift by bit_in_word.
1826
1827 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1828
1829         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
1830         * configure.ac: Don't sinclude it here.
1831         * configure: Regenerate.
1832
1833 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
1834
1835         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
1836         Handle AND pattern
1837
1838 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
1839
1840         PR c/13804
1841         * c-typeck.c (build_component_ref): Name type involved in
1842         diagnostic for structure or union without a member of the given
1843         name.
1844
1845 2004-09-27  DJ Delorie  <dj@redhat.com>
1846
1847         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
1848         .comm alignment is bytes, not bits.
1849
1850 2004-09-27  Devang Patel  <dpatel@apple.com>
1851
1852         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
1853         (print_call_name): Do not print VEC_COND_EXPR.
1854
1855 2004-09-27  Devang Patel  <dpatel@apple.com>
1856
1857         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
1858
1859 2004-09-27  Jan Hubicka  <jh@suse.cz>
1860
1861         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
1862
1863 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
1864
1865         * bitmap.h: Fix a comment typo.
1866
1867 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
1868
1869         * libgcc2.c (getpagesize): Change type of return value to int.
1870
1871 2004-09-26  Matt Austern  <austern@apple.com>
1872
1873         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
1874         using mmap.
1875
1876 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1877
1878         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
1879         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
1880         (bitmap_iterator): New type.
1881         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
1882         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
1883         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
1884         bmp_iter_and_init, bmp_iter_and_next): New functions.
1885         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
1886         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
1887         use iterator-style EXECUTE_IF_IN_BITMAP macros.
1888         * bitmap.c (bitmap_print): Ditto.
1889         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
1890         btr_def_live_range): Ditto.
1891         * cfganal.c (compute_dominance_frontiers_1) Ditto.
1892         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
1893         Ditto.
1894         * ddg.c (build_inter_loop_deps): Ditto.
1895         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
1896         Ditto.
1897         * except.c (remove_eh_handler): Ditto.
1898         * flow.c (reg_set_to_hard_reg_set): Ditto.
1899         * gcse.c (clear_modify_mem_tables): Ditto.
1900         * global.c (build_insn_chain): Ditto.
1901         * ifcvt.c (dead_or_predicable): Ditto.
1902         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
1903         Ditto.
1904         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
1905         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
1906         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
1907         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
1908         tree_purge_all_dead_eh_edges): Ditto.
1909         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
1910         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
1911         rewrite_ssa_into_ssa): Ditto.
1912         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
1913         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
1914         Ditto.
1915         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
1916         compute_flow_sensitive_aliasing, maybe_create_global_var,
1917         dump_points_to_info_for): Ditto.
1918         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
1919         * tree-ssa-dse.c (dse_finalize_block): Ditto.
1920         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
1921         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
1922         Ditto.
1923         * tree-ssa-loop-ivopts.c (find_induction_variables,
1924         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
1925         determine_use_iv_costs, determine_set_costs, find_best_candidate,
1926         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
1927         Ditto.
1928         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
1929         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
1930         add_call_read_ops): Ditto.
1931         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
1932
1933 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1934
1935         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
1936         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
1937
1938 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
1939
1940         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
1941         reflect size of memory regions being compared.
1942
1943 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
1944
1945         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
1946         expressions.  Always clear MEM_SIZE and alias set.
1947
1948 2004-09-26  Roger Sayle  <roger@eyesopen.com>
1949             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1950
1951         PR middle-end/17112
1952         * stor-layout.c (compute_record_mode): For records with a single
1953         field, only use the field's mode if its size matches what we'd
1954         have choosen for the record ourselves.  This forces the use of
1955         BLKmode for packed records that don't completely fill a mode.
1956
1957 2004-09-26  Roger Sayle  <roger@eyesopen.com>
1958
1959         PR middle-end/17151
1960         * combine.c (force_to_mode): Remove dubious early return test that
1961         inhibits further optimization.
1962
1963 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
1964
1965         * profile.c: Fix a comment typo.
1966
1967 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1968
1969         PR bootstrap/17591
1970         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
1971         with varying offset.
1972         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
1973         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
1974         ARRAY_REFS.
1975         (expr_invariant_in_loop_p): New function.
1976         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
1977         component_ref_field_offset for COMPONENT_REFs.  Do not allow
1978         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
1979         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
1980         MISALIGNED_INDIRECT_REFs.
1981         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
1982         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
1983         MISALIGNED_INDIRECT_REFs.
1984
1985 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
1986
1987         PR c/11459
1988         * gcc.c (cpp_options, cc1_options): Preserve relative order of
1989         -std and -ansi options.
1990
1991 2004-09-26  Jan Hubicka  <jh@suse.cz>
1992
1993         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
1994         for nested functions whose proper parent has not been output.
1995
1996         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
1997         when re-constructing profile previously invalidated by loop.
1998
1999 2004-09-25  Dale Johannesen  <dalej@apple.com>
2000
2001         * tree-gimple.c:  Move GIMPLE definition...
2002         * doc/tree-ssa.texi:  here.
2003
2004 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
2005
2006         * tree-vectorizer.c: Fix a comment typo.
2007
2008 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
2009
2010         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
2011         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
2012         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
2013         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
2014
2015 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
2016
2017         * tree-ssa-loop-unswitch.c: Fix a comment typo.
2018
2019 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
2020
2021         * doc/passes.texi: Fix a typo.
2022
2023 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2024
2025         * tree-optimize.c (init_tree_optimization_passes): Add
2026         pass_record_bounds.
2027         * tree-pass.h (pass_record_bounds): Declare.
2028         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
2029         New pass.
2030
2031 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2032
2033         PR tree-optimization/17474
2034         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
2035         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
2036
2037 2004-09-25  Jan Hubicka  <jh@suse.cz>
2038
2039         * predict.c (counts_to_freqs): Make global.
2040         * predict.h (counts_to_freqa): Declare.
2041         * profile.c (compute_branch_probabilities): Compute frequencies
2042         * tree-profile.c (do_tree_profiling): Refine conditional on when
2043         tree profiling pass is needed.
2044
2045         * passes.c (rest_of_handle_cfg): Disable const/pure function
2046         detection when doing tree based profiling.
2047
2048         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
2049         conditional.
2050
2051 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
2052
2053         * config/mips/mips.h (struct mips_args): Clarify comments.
2054         * config/mips/mips.c (struct mips_arg_info): Likewise.
2055         (mips_arg_info): Don't allow fpr_p to affect the register or
2056         stack alignment.  Remove o64 silliness.
2057         (function_arg): Deal with the o32 float,float case specially.
2058
2059 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
2060
2061         * config/mips/mips.md (loadx, storex): Define for V2SF.
2062
2063 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
2064
2065         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
2066         * config/s390/s390.c (s390_back_chain_rtx): New function.
2067         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
2068         Call anti_adjust_stack.
2069         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
2070         only if compiling with back chain.
2071         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
2072         back chain only if back chain enabled.  Use s390_back_chain_rtx.
2073
2074 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2075
2076         * doc/trouble.texi: Remove obsolete information.  Update
2077         information on how to regenerate fixincluded headers.
2078
2079 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2080
2081         PR c/12951
2082         * doc/invoke.texi: Document that
2083         -Wno-error-implicit-function-declaration is not accepted.
2084
2085 2004-09-24  Richard Henderson  <rth@redhat.com>
2086
2087         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
2088         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
2089         on TARGET_MAX.
2090         (alpha_expand_mov): Allow unaligned vectors.
2091         (alpha_expand_unaligned_store): Use CONST0_RTX.
2092         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
2093
2094 2004-09-24 Jeff Law  <law@redhat.com>
2095
2096         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
2097         aliasing rules.
2098         (simplify_cond_and_lookup_avail_expr): Likewise.
2099
2100 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2101
2102         PR c/12802
2103         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
2104         title.  Document interaction with -fms-extensions.
2105         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
2106         section.
2107
2108 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2109
2110         PR c/12713
2111         * doc/extend.texi: Document interaction of attribute noreturn and
2112         longjmp.
2113
2114 2004-09-24  Richard Henderson  <rth@redhat.com>
2115
2116         PR rtl-opt/17503
2117         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
2118         (som_hash, som_eq): New.
2119         (init_subregs_of_mode, record_subregs_of_mode): New.
2120         (cannot_change_mode_set_regs): Rewrite for htab implementation.
2121         (invalid_mode_change_p): Likewise.
2122         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
2123         * flow.c (mark_used_regs): Likewise.
2124         (life_analysis): Use init_subregs_of_mode.
2125         * regs.h (subregs_of_mode): Remove.
2126         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
2127
2128 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2129
2130         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
2131         type with the copy of the conditional.
2132
2133 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2134
2135         PR tree-opt/16954
2136         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2137         Prevent renaming if the aliasing sets of the type which the
2138         pointer points to are different.
2139
2140 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2141
2142         PR c/17188
2143         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
2144         declarations of enumerators.
2145         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
2146         for redefinition.  Check for nested redefinition.
2147         (finish_struct): Don't check for nested redefinition.
2148         (start_enum): Check for nested redefinition.
2149
2150 2004-09-24  Devang Patel  <dpatel@apple.com>
2151
2152         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
2153         only when necesssary.
2154         (combine_blocks): Combine loop header and exit block.
2155
2156 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
2157
2158         * hooks.c (hook_tree_tree_bool_null): New.
2159         * hooks.h (hook_tree_tree_bool_null): Declare it.
2160         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
2161         * targhooks.c (default_fold_builtin): Remove.
2162         * targhooks.h (default_fold_builtin): Remove.
2163
2164 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2165
2166         PR rtl-optimization/17625
2167         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
2168
2169 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2170
2171         PR tree-opt/17624
2172         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
2173         Reject if any of the operands occur in an abnormal PHI.
2174
2175 2004-09-24  Andreas Schwab  <schwab@suse.de>
2176
2177         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
2178         rules.
2179
2180 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2181
2182         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
2183         if the GNU assembler is used.
2184         (sparc-*-solaris2*): Likewise.
2185         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
2186         (dbxout_function_end): Protect N_ENSYM with it.
2187         (dbxout_begin_prologue): Protect N_BNSYM with it.
2188         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
2189         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
2190         * config/sparc/sol2-gas.h: New file.
2191
2192 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
2193
2194         PR bootstrap/17369
2195         * Makefile.in (@set_gcc_lib_path@): Added.
2196
2197         * configure.ac: Include ../config/gcc-lib-path.m4. Use
2198         TL_AC_GNU_MAKE_GCC_LIB_PATH.
2199         * configure: Regenerated.
2200
2201 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2202
2203         PR c/6980
2204         * c-typeck.c (build_c_cast): Improve wording of
2205         -Wbad-function-cast diagnostic.
2206
2207 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
2208
2209         PR target/17626
2210         * config/cris/cris.md (moverside, movemside): Rename variable
2211         "reg" to "otherop".  To generate canonical RTX, check that otherop
2212         isn't constant instead of checking that operand 1 is a register.
2213
2214 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
2215
2216         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
2217
2218 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
2219             Jakub Jelinek  <jakub@redhat.com>
2220
2221         * tree-flow.h (find_new_referenced_vars): Add prototype.
2222         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
2223         Move to...
2224         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
2225         ... here.
2226         (mark_new_vars_to_rename): Walk through all operands.
2227         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
2228         (execute_fold_all_builtins): Use it.
2229         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
2230
2231 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
2232
2233         * gthr-tpf.h: New file.
2234         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
2235         * gthr.h: Use gthr-tpf.h on TPF OS.
2236
2237 2004-09-23 Jeff Law  <law@redhat.com>
2238
2239         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
2240         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
2241         (substitute_and_fold):  Likewise.
2242         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
2243         except invariants from SSA_NAME_VALUE.
2244         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
2245         and SET_SSA_NAME_EQUIV.
2246         (restore_vars_to_original_value, record_const_or_copy): Likewise.
2247         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
2248         (record_equality, cprop_into_successor_phis): Likewise.
2249         (record_equivalences_from_stmt, cprop_operand): Likewise.
2250         (lookup_avail_expr): Likewise.
2251         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
2252         from SSA_NAME_VALUE.
2253         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
2254         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
2255         annotation from the VALUE_HANDLE field.
2256
2257 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
2258
2259         PR c++/13989
2260         PR c++/9844
2261         * tree.c (reconstruct_complex_type): Remove extra "this".
2262         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2263         Add V4SFmode to case statement.
2264
2265 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2266
2267         PR c/16833
2268         * doc/extend.texi, doc/invoke.texi: Document interaction of
2269         -fno-builtin with format checks.  Note that built-in functions
2270         have effects beyond generating code that avoids calls to those
2271         functions.
2272
2273 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
2274
2275         PR tree-optimization/17533
2276         * dominance.c (verify_dominators): Tolerate even more incorrect
2277         dominance data during error message printing.
2278         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
2279         and edges more correctly.
2280
2281 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
2282
2283         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
2284         New tree-codes.
2285         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
2286         MISALIGNED_INDIRECT_REF.
2287         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
2288         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
2289         Likewise.
2290         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
2291         (find_interesting_uses_address): Likewise.
2292         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
2293         (build_fold_addr_expr_with_type): Likewise.
2294         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
2295         * print-rtl.c (print_mem_expr): Likewise.
2296         * tree-dump.c (dequeue_and_dump): Likewise.
2297         * tree-eh.c (tree_could_trap_p): Likewise.
2298         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
2299         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
2300         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
2301         Likewise.
2302         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2303         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
2304         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
2305         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2306         (add_address_candidates, rewrite_address_base): Likewise.
2307         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
2308         Likewise.
2309         * tree.c (staticp, build1_stat): Likewise.
2310
2311         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
2312         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
2313         * tree-ssa-operands.c (get_expr_operands): Likewise.
2314         * expr.c (expand_expr_real_1): Likewise.
2315
2316         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
2317         optabs.
2318         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
2319         for the new optabs.
2320         (expand_ternary_op): New function.
2321         * genopinit.c (optabs): Handle the new optabs.
2322         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
2323         (init_optabs): Initialize vec_realign_load_optab.
2324         (expand_ternary_op): New functions.
2325
2326         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
2327         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
2328         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
2329         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
2330         * target.h (struct vectorize): New member for struct gcc_target.
2331         (misaligned_mem_ok): New member for targetm.vectorize.
2332         (builtin_mask_for_load): Likewise.
2333         (builtin_mask_for_store): Likewise.
2334         * targethooks.c (default_vect_misaligned_mem_ok): New function.
2335         * targethooks.h (default_vect_misaligned_mem_ok): New function.
2336
2337         * config/rs6000/altivec.md (build_vector_mask_for_load): New
2338         define_expand.
2339         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
2340         (vec_realign_load_v16qi): New define_insn.
2341         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
2342         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
2343         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
2344         (altivec_builtin_mask_for_store): New variables.
2345         (rs6000_builtin_mask_for_load): New function. Implements
2346         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
2347         (rs6000_builtin_mask_for_store): New function. Implements
2348         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
2349         (rs6000_expand_builtin): Expand the target builtins
2350         builtin_mask_for_load and builtin_mask_for_store.
2351         (altivec_init_builtins): Initialize the new target builtins.
2352         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
2353         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
2354
2355         * tree-vectorizer.c (vect_create_data_ref): Renamed to
2356         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
2357         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
2358         (vectorizable_store): Call vect_create_data_ref_ptr with additional
2359         arguments, and create an indirect_ref with its return value data_ref.
2360         Check aligned_access_p.
2361         (vectorizable_load): Handle misaligned loads, using software-pipelined
2362         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
2363         vec_realign_load_optab is supported, or using a scheme without
2364         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
2365         misaligned_mem_ok is supported.
2366
2367         (vect_finish_stmt_generation): Typo.
2368         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
2369         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
2370         presence of misaligned loads.
2371         (vect_analyze_data_ref_access): Add check for constant init.
2372         (vect_get_symbl_and_dr): Remove duplicate line.
2373         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
2374
2375 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
2376
2377         * builtins.c: Fix a comment typo.
2378
2379 2004-09-23  Jan Hubicka  <jh@suse.cz>
2380
2381         * profile.c (branch_prob): Do not verify flow info in the middle of the
2382         pass.
2383
2384 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2385
2386         * cfgloop.h (update_single_exits_after_duplication): Declare.
2387         (loopify, split_loop_bb): Declaration changed.
2388         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
2389         of rtx.
2390         (loopify): Added redirect_all_edges argument.
2391         (update_single_exits_after_duplication): Export.
2392         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
2393         * tree-flow.h (tree_duplicate_loop_to_header_edge,
2394         tree_ssa_loop_version): Declare.
2395         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
2396         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
2397         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
2398         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
2399
2400         * tree-ssa-loop-unswitch.c: New file.
2401         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
2402         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
2403         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
2404         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
2405         * tree-pass.h (pass_unswitch): Declare.
2406         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
2407         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
2408         * doc/passes.texi: Documen tree level loop unswitching.
2409
2410 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
2411
2412         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
2413
2414 2004-09-22  Eric Christopher  <echristo@redhat.com>
2415
2416         * builtins.c (simplify_builtin_va_start): Remove.
2417         (simplify_builtin): Ditto.
2418         (fold_builtin_strchr): Ditto.
2419         (simplify_builtin_*): Rename remainders to fold_builtin_*.
2420         (expand_builtin): Fix up for above changes.
2421         (fold_builtin_1): Add new folders. Change for above.
2422         (expand_builtin_va_start): Call fold_builtin_next_arg.
2423         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
2424         * tree.h: Remove prototype for simplify_builtin.
2425
2426 2004-09-23  Jan Hubicka  <jh@suse.cz>
2427
2428         PR debug/17389
2429         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
2430         of fully inlined functions.
2431         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
2432         inlined.
2433
2434         * cfgexpand.c (add_reg_br_prob_note): New function.
2435         (expand_gimple_cond_expr): Use it.
2436         (tree_expand_cfg): No longer kill the profile.
2437         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
2438         only if it is present.
2439         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
2440         * predict.c (combine_predictions_for_insn): Set the probabilities
2441         based on REG_BR_PROB note if present.
2442         * predict.c (branch_prob): Profile is read only with
2443         flag_branch_probabilities.
2444
2445 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2446
2447         * aclocal.m4: Add in gettext's m4 includes.
2448         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
2449         * configure.ac: Add in check for iconv.h
2450         * configure: Regenerate.
2451
2452 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2453
2454         * aclocal.m4: Update for rename of gettext-sister.m4.
2455
2456 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
2457
2458         Fix PR tree-optimization/17587
2459         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
2460         (insert_aux): Instead of here.
2461
2462 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
2463
2464         PR tree-optimization/16721
2465         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
2466         * tree-ssa-alias.c (create_memory_tag): Move setting of
2467         TREE_THIS_VOLATILE ...
2468         (get_tmt_for): ... here.
2469
2470 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2471
2472         * config/sparc/sparc.md (cmove splitter): Fix formatting.
2473         (conditional_trap expander): Reject inappropriate CCmodes.
2474         (conditional trap insn): Use V9 syntax if possible.
2475
2476 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2477
2478         PR c/16566
2479         * c-typeck.c (build_component_ref): Don't special-case
2480         COMPOUND_EXPR.
2481
2482 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
2483
2484         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
2485         returns NULL.
2486
2487 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
2488
2489         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
2490         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2491         TRUTH_XOR_EXPR): Mention the restriction on types.
2492
2493 2004-09-22  Matt Austern  <austern@apple.com>
2494
2495         * config/darwin.c (darwin_make_decl_one_only):
2496         Allow coalesced symbol to appear in static archive's table of contents
2497
2498 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
2499
2500         PR tree-optimization/17512
2501         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
2502         special cases.
2503
2504 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
2505
2506         * dbxout.c (get_lang_number): Do not define if
2507         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
2508
2509 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
2510
2511         PR target/15583
2512         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
2513         builtin_define ("__USE_INIT_FINI__").
2514
2515 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
2516
2517         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
2518         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
2519         * config/s390/s390.h (TARGET_TPF): New macro.
2520         * config/s390/s390.md ("eh_return"): New expander.
2521         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
2522         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
2523         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
2524         * config/s390/tpf.h (TARGET_TPF): Define to 1.
2525         (STACK_POINTER_OFFSET): Increase to 448.
2526         (TARGET_DEFAULT): Set -mtpf-trace on as default.
2527         (TPF_LOC_DIFF_OFFSET): New macro.
2528         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
2529         encoding.
2530         (__isPATrange): Add prototype.
2531         (MD_FALLBACK_FRAME_STATE_FOR): Define.
2532         * config/s390/tpf-eh.c: New file.
2533
2534 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
2535
2536         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
2537         operands in an integer comparison.
2538         * tree-cfg.c (find_taken_edge): Call fold() to determine
2539         whether the predicate is known.
2540
2541 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2542
2543         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
2544         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
2545         Create build and doc directories along with the language directories.
2546         Don't create doc directory separately.
2547         * configure: Regenerate.
2548         * Makefile.in: Create all object and executables files built
2549         with the build compiler in a build/ directory.
2550         (genobjnames): Add missing build objects.
2551         (STAGESTUFF): Don't stage the gen* programs.
2552         (ggc-none.o): Define dependencies for the target compiler.
2553         (build-print-rtl.o): Rename to build/print-rtl.o.
2554         (build-errors.o): Rename to build/errors.o.
2555         (build-varray.o): Rename to build/varray.o.
2556         (maintainerclean): Delete the contents of the build directory.
2557         ($(genobjs): %.o): Explicitly use -o.
2558         (build/insn-conditions.o): Delete specfic rule to use generic rule.
2559         (build/gengtype-lex.o): Likewise.
2560         (build/gengtype-yacc.o): Likewise.
2561         (build/gcov-iov.o): Likewise.
2562
2563 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
2564
2565         * vec.h (VEC_space): Return true if there _is_ space.
2566         (VEC_reserve): Adjust.
2567
2568 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
2569
2570         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
2571         use FPRs for scalar, complex and vector types only.
2572
2573 2004-09-21 Jeff Law  <law@redhat.com>
2574
2575         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
2576         the opt_stats_d structure.
2577         (vrp_data): Change from a varray into a hash table.
2578         (vrp_hash_elt): New structure for elements in the vrp hash table.
2579         (vrp_hash, vrp_eq):New functions for hashing and testing equality
2580         in the vrp hash table.
2581         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
2582         initialization slightly to make it easier to read.  No longer need
2583         to grow/clear the varray.  Instead empty and delete the hash table.
2584         (dom_opt_finalize_block): Update due to change of VRP_DATA from
2585         a varray to a hash table.
2586         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
2587
2588         * tree-ssa-ccp.c (get_default_value): If we have a constant
2589         value recorded for an SSA_NAME, then use that constant as
2590         the initial lattice value.
2591         (substitute_and_fold): Transfer equivalences discovered into
2592         SSA_NAME_EQUIV.
2593
2594         * tree.h (SSA_NAME_EQUIV): Add comments.
2595         (SET_SSA_NAME_EQUIV): Similarly.
2596
2597 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
2598
2599         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
2600
2601         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
2602
2603 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
2604
2605         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
2606         (finish_decl): Likewise.
2607
2608 2004-09-21  Devang Patel  <dpatel@apple.com>
2609
2610         * tree.def (VEC_COND_EXPR): New tree node.
2611         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
2612
2613 2004-09-21  Stan Shebs  <shebs@apple.com>
2614
2615         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
2616         * config/rs6000/darwin-world.asm: Likewise.
2617
2618 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
2619
2620         * tree-ssa.c (verify_def): Use print_generic_stmt,
2621         not debug_generic_stmt.
2622         (verify_use): Ditto.
2623         (verify_phi_args): Ditto.
2624         (verify_ssa): Ditto.
2625
2626 2004-09-21  Paul Brook  <paul@codesourcery.com>
2627
2628         * varasm.c (default_assemble_integer): Return false for values wider
2629         than the target word size.  Works around GAS bug.
2630
2631 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
2632
2633         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
2634         gets value 0.
2635         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
2636         if it has value 0.
2637
2638 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
2639
2640         * c-typeck.c (build_function_call): Give name of object
2641         we are attempting to call in error message.
2642         * c-objc-common.c (c_tree_printer): Call pp_expression,
2643         not return false, for 'E' case.
2644
2645 2004-09-21  Steven Bosscher  <stevenb@suse.de>
2646
2647         PR rtl-optimization/17482
2648         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
2649         load_killed_in_block_p): Clarify comments.
2650         (record_last_reg_set_info): Make static inline.
2651         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
2652         (record_opr_changes): New function to replace the above.
2653         (compute_hash_table): Clarify comments.  Use record_opr_changes.
2654         (reg_set_between_after_reload_p): Clean up.
2655         (reg_used_between_after_reload_p): Likewise.
2656         (eliminate_partially_redundant_load): Clarify comments.
2657
2658 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2659
2660         PR rtl-optimization/17266
2661         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
2662
2663 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
2664
2665         PR rtl-optimization/14851
2666         * rtlanal.c (commutative_operand_precedence): Calculate
2667         precedence of stripped constant.
2668
2669 2004-09-20 Jeff Law  <law@redhat.com>
2670            Jan Hubicka  <jh@suse.cz>
2671
2672         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
2673         initialize key elements here.
2674         (release_ssa_name): Zero the released SSA_NAME here.
2675         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
2676         (struct tree_ssa_name): Add new "equiv" field.
2677         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
2678         (tree_ssa_dominator_optimize): No longer allocate, resize or
2679         clear CONST_AND_COPIES.
2680         (get_value_for, set_value_for): Kill.
2681         (thread_across_edge): Get/set the equivalency using
2682         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
2683         (restore_vars_to_original_value): Likewise.
2684         (record_equivalences_from_phis): Likewise.
2685         (record_dominating_conditions): Likewise.
2686         (record_const_or_copy, record_equality): Likewise.
2687         (lookup_avail_expr): Likewise.
2688         (record_equivalences_from_stmt, cprop_operand): Likewise.
2689         (cprop_into_successor_phis): No longer need to pass around
2690         CONST_AND_COPIES.  Callers updated. Get equivalences via
2691         SSA_NAME_EQUIV.
2692         (cprop_into_phis): Likewise.
2693
2694 2004-09-20  Matt Austern <austern@apple.com>
2695             Zack Weinberg  <zack@codesourcery.com>
2696
2697         * c-common.c (fix_string_type): Build the unqualified array
2698         type unconditionally, then use c_build_qualified_type to get
2699         the proper const-qualified variant, and set its
2700         TYPE_MAIN_VARIANT to refer to the unqualified type.
2701         * c-lex.c (c_lex_return_raw_string): New global.
2702         (c_lex_with_flags): Honor it.
2703         * c-pragma.h: Declare it.
2704
2705 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
2706
2707         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
2708
2709 2004-09-21  Jan Hubicka  <jh@suse.cz>
2710
2711         PR middle-end/17126
2712         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
2713         (tree_rest_of_compilation): Cleanup.
2714
2715 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
2716
2717         * config/s390/s390.c (s390_select_rtx_section): Remove.
2718         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
2719
2720 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2721
2722         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
2723         note to pretend a direct save from the original register when an
2724         intermediate register is used for the save.
2725
2726 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2727
2728         * tsystem.h (alloca): Provide a default definition.
2729
2730         Revert:
2731         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2732             * unwind-dw2.c: Call __builtin_alloca, not alloca.
2733
2734 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
2735
2736         PR tree-opt/17558
2737         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
2738         aliasing sets are the same rather than just conflicting.
2739
2740 2004-09-20  Jan Hubicka  <jh@suse.cz>
2741
2742         PR middle-end/16460
2743
2744         * cgraph.c (cgraph_unnest_node): New function.
2745         (c_finalize): Rename to ....
2746         (c_warn_unused_result_recursivly): ... this one; do only the warning
2747         (finish_function): Finalize the toplevel function; do not lower nested tree.
2748         * cgraph.h (cgraph_unnest_node): Declare.
2749         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
2750         nestedness datastructure.
2751         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
2752         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
2753         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
2754
2755 2004-09-20  Richard Henderson  <rth@redhat.com>
2756
2757         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
2758         from some_small_symbolic_operand_1; export.
2759         (some_small_symbolic_operand): Remove.
2760         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
2761         extra C check.
2762         * config/alpha/predicates.md (some_small_symbolic_operand): New.
2763
2764 2004-09-20  Jan Hubicka  <jh@suse.cz>
2765
2766         * predict.c (return_prediction): New function.
2767         (apply_return_prediction): Likewise.
2768         (tree_bb_level_predictions): Likewise.
2769         (tree_estimate_probability): Add noreturn exit edges; call
2770         bb_level_predictions; fix logic of return heuristics.
2771         (predict_paths_leading_to):  Rescuesce from old CVS version of
2772         process_note_prediction function.
2773         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
2774
2775 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
2776
2777         * config/s390/s390.c (s390_frame_info): Added alignment statement for
2778         floating point register area on stack.
2779
2780 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
2781
2782         * predict.c (expr_expected_value): Use *_CLASS_P macros.
2783
2784 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
2785
2786         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
2787         generating useless garbage.
2788
2789 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
2790
2791         * builtins.c (fold_builtin): Call the new omonymous
2792         target hook for machine-dependent built-ins.
2793         * target-def.h (TARGET_FOLD_BUILTIN): New.
2794         * target.h (struct gcc_target): Add the fold_builtin hook.
2795         * targhooks.c (default_fold_builtin): New.
2796         * targhooks.h (default_fold_builtin): Declare it.
2797
2798 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
2799
2800         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
2801         comment typos.
2802
2803 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
2804
2805         PR target/17565
2806         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
2807
2808 2004-09-20  Jan Hubicka  <jh@suse.cz>
2809
2810         * predict.c (estimate_probability): Remove unnecesary code.
2811
2812 2004-09-19  Ira Rosen  <irar@il.ibm.com>
2813
2814         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
2815         (STMT_VINFO_VECT_DR_BASE): Declare.
2816         (VECT_SMODULO): Declare.
2817         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
2818         (vect_compute_array_base_alignment): New function.
2819         (vect_analyze_data_ref_access): Check array indices. Remove one
2820         dimensional arrays restriction.
2821         (vect_get_ptr_offset): New function.
2822         (vect_get_symbl_and_dr): New function.
2823         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
2824         (former name vect_get_base_decl_and_bit_offset).
2825         (vect_create_index_for_array_ref): Removed.
2826         (vect_create_index_for_vector_ref): New function.
2827         (vect_create_addr_base_for_vector_ref): New function.
2828         (vect_create_data_ref): Handle additional data refs. Call
2829         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
2830         (vect_compute_data_ref_alignment): Support the changes. Call
2831         vect_get_base_and_bit_offset.
2832         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
2833         data refs. Store vect_dr_base.
2834         (vect_analyze_data_ref_accesses): Support nonconstant init.
2835         (new_stmt_vec_info): Initialize vect_dr_base field.
2836         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
2837         (get_vectype_for_scalar_type): Check for BLKmode.
2838         * tree-chrec.h (initial_condition_in_loop_num): Declare.
2839         * tree-chrec.c (initial_condition_in_loop_num): New function.
2840         (chrec_component_in_loop_num): New function.
2841         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
2842         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
2843         to be pointer to varray_type.
2844
2845 2004-09-19  Jan Hubicka  <jh@suse.cz>
2846
2847         * basic-block.h (update_bb_profile_after_threading): Declare.
2848         * cfg.c (update_bb_profile_after_threading): Break out from ...
2849         * cfgcleanup.c (try_forward_edges): ... here; use it.
2850         * tree-ssa-dom.c (thread_across_edge): Use it.
2851         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
2852         profile of the new BB.
2853
2854 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
2855
2856         * tree-ssa-pre.c (insert_into_set): Don't put
2857         is_gimple_min_invariant values into the set.
2858
2859 2004-09-19  Andreas Jaeger  <aj@suse.de>
2860
2861         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
2862         prototype.
2863
2864 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2865
2866         * config/cris/cris.h: Preserve the original spelling in a
2867         quote.
2868
2869 2004-09-18 Jeff Law  <law@redhat.com>
2870
2871         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
2872         global varrays to replace the block local varrays.
2873         (struct dom_walk_block_data): Remove, no longer used.
2874         (get_eq_expr_value): No longer need to pass around pointers to local
2875         varrays.  Callers updated.  Unused markers added to unused parameters.
2876         (record_range, record_equivalences_from_stmt): Likewise.
2877         (record_equivalences_from_incoming_edge): Likewise.
2878         (record_var_is_nonzero): Likewise.  Update now that we have a
2879         single global varray of SSA_NAMEs that need restoring.
2880         (dom_opt_initialize_block_local_data): Kill, no longer used.
2881         (tree_ssa_dominator_optimize): Initialize new global varrays.
2882         Update callbacks in dominator walker structure.
2883         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
2884         VRP_VARIABLES_STACK.
2885         (restore_nonzero_vars_to_original_value): Update now that we have
2886         a single global varray of SSA_NAMEs that need restoring.
2887         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
2888         Remove unused variables.
2889         (optimize_stmt): Remove unused variable.
2890
2891 2004-09-18  Jan Hubicka  <jh@suse.cz>
2892
2893         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
2894
2895         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
2896         verify_cgraph call.
2897
2898 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2899
2900         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
2901         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
2902         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
2903         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
2904         tree-ssa-operands.c, tree-ssa-phiopt.c,
2905         tree-ssa-threadupdate.c: Fix comment typos.
2906
2907 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2908
2909         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
2910         config/arm/README-interworking, config/arm/arm-cores.def,
2911         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
2912         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
2913         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
2914         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
2915         config/frv/frv.md, config/i386/winnt.c,
2916         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
2917         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
2918         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
2919         config/mcore/mcore.c, config/mips/mips.h,
2920         config/mn10300/mn10300.md, config/pa/pa.c,
2921         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
2922         config/rs6000/rs6000.c, config/sh/symbian.c,
2923         config/sparc/sparc.h: Fix comment typos.  Follow spelling
2924         conventions.
2925
2926 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
2927
2928         PR c/17424
2929         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
2930
2931 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
2932
2933         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
2934         remove TREE_ADDRESSABLE from RESULT_DECL.
2935
2936 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
2937
2938         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
2939
2940 2004-09-18  Jan Hubicka  <jh@suse.cz>
2941
2942         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
2943         NULL.
2944         * tree-ssa-alias.c (init_alias_info): Likewise.
2945         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
2946         (verify_ssa): Likewise.
2947         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
2948
2949 2004-09-18  Jan Hubicka  <jh@suse.cz>
2950
2951         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
2952         huge offset.
2953
2954 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2955
2956         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
2957         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2958         DW_EH_PE_sdata* for data.
2959         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2960
2961 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
2962
2963         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
2964         shared anyway.
2965
2966         PR pch/13361
2967         * c-typeck.c (constructor_asmspec): Delete.
2968         (struct initializer_stack): Delete field 'asmspec'.
2969         (start_init): Delete saving of asmspec.
2970         (finish_init): Don't update constructor_asmspec.
2971         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
2972         * stmt.c (expand_asm): Duplicate strings from tree.
2973         (expand_asm_operands): Likewise.
2974         * tree.c (tree_size): Update computation of size of STRING_CST.
2975         (make_node): Don't make STRING_CST nodes.
2976         (build_string): Allocate string with tree node.
2977         (tree_code_size): Clean up assertions, don't allow requests
2978         for "the size of a STRING_CST".
2979         * tree.def (STRING_CST): Update comment.
2980         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
2981         (tree_string): Place contents of string in tree node.
2982         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
2983         from tree.
2984
2985 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2986
2987         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
2988         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
2989
2990 2004-09-17  Jones Desougi  <jones@ingate.com>
2991
2992         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
2993         * configure, config.in: Regenerate.
2994
2995 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2996
2997         * tree.c, tree.h (tree_class_strings): Make array const.
2998         Reindent per coding convention.  Move asterisk to proper place
2999         per coding convention.
3000
3001 2004-09-18  Andreas Schwab  <schwab@suse.de>
3002
3003         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
3004         (tree-vectorizer.o): Likewise.
3005         (targhooks.o): Likewise.
3006
3007 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
3008             Zack Weinberg  <zack@codesourcery.com>
3009
3010         * alias.c (find_base_decl): Remove unreachable case '3' block.
3011         * expr.c (safe_from_p): Abort if passed a type.
3012         * tree-gimple.c (recalculate_side_effects): Abort if passed
3013         anything other than an expression.
3014         * tree-ssa-pre.c (phi_translate): Return expr immediately if
3015         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
3016         Abort on un-handled tree classes.
3017         (valid_in_set): Likewise.
3018         * tree.c (tree_code_class_strings): New static data.
3019
3020         * tree.h (enum tree_code_class): New.
3021         (tree_code_class_strings): Declare.
3022         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
3023         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
3024         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
3025         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
3026         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
3027
3028         * tree.def, c-common.def, objc/objc-tree.def: Use
3029         tree_code_class enumeration constants instead of code letters.
3030
3031         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
3032         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
3033         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
3034         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
3035         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
3036         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
3037         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
3038         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
3039         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
3040         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
3041         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
3042         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
3043         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
3044         Update to match.
3045
3046         * LANGUAGES: Add note about change.
3047
3048 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
3049
3050         PR tree-optimization/17319
3051         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
3052         examine pointers on the LHS of an assignment.
3053         (collect_points_to_info_r): Handle RETURN_EXPR.
3054
3055 2004-09-17 Jeff Law  <law@redhat.com>
3056
3057         * tree-ssa-dom.c (const_and_copies_stack): New.
3058         (dom_walk_block_data): Remove const_and_copies field.
3059         (record_const_or_copy): No longer need to pass in varray_type *.
3060         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
3061         Callers updated.
3062         (record_equality): Similarly.
3063         (restore_vars_to_original_value): Similarly.  Revamp to use new
3064         single global stack rather than per-block stacks.
3065         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
3066         (thread_across_edge): Remove now unused parameters.
3067         (dom_opt_initialize_block_local_data): No longer test the block
3068         local CONST_AND_COPIES.
3069         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
3070
3071 2004-09-17  Jan Hubicka  <jh@suse.cz>
3072
3073         PR tree-optimization/17509
3074         * tree-optimize.c (update_inlined_to_pointers): New function.
3075         (tree_rest_of_compilation): Use it.
3076
3077 2004-09-17  Devang Patel  <dpatel@apple.com>
3078
3079         * dbxout.c (get_lang_number): New.
3080         (dbxout_init): Include lang number in N_SO  stab.
3081         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
3082         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
3083
3084 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
3085
3086         PR tree-optimization/17273
3087         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
3088         replacement is a constant.
3089
3090 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
3091
3092         * c-tree.h (enum c_typespec_keyword): New.
3093         (struct c_declspecs): Adjust description of "type".  Remove
3094         specbits, explicit_int_p and explicit_char_p.  Rename
3095         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
3096         short_p, signed_p, unsigned_p and complex_p.
3097         (finish_declspecs): New.
3098         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
3099         typename): Call finish_declspecs.
3100         * c-decl.c (finish_declspecs): New.
3101         (declspecs_add_type): Check for combinations which cannot occur in
3102         valid specifier lists.  Update comments.
3103         (shadow_tag_warned): Remove checks done in finish_declspecs.
3104         Don't report useless type name if type defaulted to int.
3105         (grokdeclarator): Remove checks and actions done in
3106         finish_declspecs.  Don't allow for type being NULL.  Update for
3107         datastructures changes.  Initialize decl_attr.
3108         (build_null_declspecs, quals_from_declspecs): Update for
3109         datastructures changes.
3110
3111 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
3112
3113         * doc/extend.texi: Fix duplicated word.
3114
3115 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
3116
3117         * doc/invoke.texi: Remove stray explanation on
3118         -freduce-all-givs and -fmove-all-movables.
3119
3120 2004-09-17  James Morrison  <phython@gcc.gnu.org>
3121
3122         * doc/cfg.texi: Use @smallexample.
3123         * doc/md.texi: Likewise.
3124         * doc/tree-ssa.texi: Likewise.
3125         * doc/extend.texi: Likewise.  Use @r{} in comments.
3126         * doc/trouble.texi: Use @r{} in comments.
3127
3128 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
3129
3130         * configure.ac (gcc_cv_gld_version): Handle whitespace before
3131         "VERSION=".
3132         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
3133         * configure: Regenerate.
3134
3135 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
3136
3137         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
3138         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
3139         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
3140         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
3141         slashes in substitutions.
3142         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
3143
3144 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
3145
3146         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
3147         gimplify.c, lambda-code.c, optabs.c, predict.c,
3148         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
3149         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
3150         conventions.
3151
3152 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
3153
3154         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
3155         doc/extend.texi, doc/install.texi, doc/invoke.texi,
3156         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
3157         doc/trouble.texi: Use @option around options.
3158
3159 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
3160
3161         * Makefile.in (gen-protos.o): Depend on errors.h.
3162
3163 2004-09-17  Steven Bosscher  <stevenb@suse.de>
3164
3165         PR tree-optimization/17513
3166         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
3167         for successors of the entry block.
3168
3169 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
3170
3171         PR rtl-optimization/15187
3172         * ifcvt.c (noce_try_cmove_arith): Exit early if total
3173         insn_rtx_cost of both branches > BRANCH_COST
3174
3175 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
3176
3177         PR tree-optimization/17528
3178         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
3179         erase the may-alias set for a tag when merging it with
3180         another.
3181
3182 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3183
3184         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
3185         for 32-bit TARGET_SHMEDIA.
3186         (call_value): Likewise.
3187
3188 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
3189
3190         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
3191         test apply only to TREE_STATIC and DECL_EXTERNAL.
3192
3193 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3194
3195         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
3196         * basic-block.h (get_dominated_by_region): Declare.
3197         * dominance.c (get_dominated_by_region): New function.
3198         * tree-cfg.c: Include cfglayout.h.
3199         (tree_duplicate_bb): Duplicate also phi nodes.
3200         (struct ssa_name_map_entry): New type.
3201         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
3202         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
3203         allocate_ssa_names, rewrite_to_new_ssa_names_def,
3204         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
3205         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
3206         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
3207         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
3208         rewrite_to_new_ssa_names, allocate_ssa_names,
3209         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
3210         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
3211         (copy_loop_headers): Use tree_duplicate_sese_region.
3212
3213 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
3214
3215         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
3216
3217 2004-09-16 Jeff Law  <law@redhat.com>
3218
3219         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
3220         (rewrite_block_data): Remove, no longer used.
3221         (rewrite_initialize_block_local_data): Remove, no longer used.
3222         (rewrite_initialize_block): Mark parameters as unused as needed.
3223         Change references to the block local block_defs to be block_defs_stack.
3224         Push a marker onto the block_defs_stack.
3225         (ssa_rewrite_initialize_block): Similarly.
3226         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
3227         (ssa_register_new_def): No longer needs varray argument.  Use
3228         block_defs_stack instead.  No longer handle possibly null block_defs
3229         varray.  Reverse order of items we push on the stack to make it
3230         easier to identify our marker.
3231         (register_new_def): No longer handle possibly null block_defs
3232         varray.
3233         (rewrite_finalize_block): Revamp to look for markers in the global
3234         block_defs_stack varray rather than wiping a block local varray.
3235         Mark arguments as unused as needed.
3236         (ssa_rewrite_finalize_block): Similarly.
3237         (rewrite_into_ssa): Update initialization of dom walker structure
3238         to reflect that we don't need block local data anymore.  Initialize
3239         the block_defs_stack varray.
3240         (rewrite_ssa_into_ssa): Similarly.
3241         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
3242         (struct dom_walk_data): Kill block_defs field.
3243         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
3244         (thread_across_edge): Use the global block_defs_stack instead of
3245         the old block_defs varray.
3246         (dom_opt_initialize_block_local_data): Update now that we don't have
3247         block_defs field to check anymore.
3248         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
3249         (restore_currdefs_to_original_value): Use the new block_defs_stack
3250         instead of a block local varray.
3251         (dom_opt_finalize_block): Similarly.
3252         (record_equivalencs_from_phis): Similarly.
3253         (optimize_stmt, register_definitions_for_stmt): Similarly.
3254
3255 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
3256
3257         PR tree-optimization/17517
3258         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
3259         coalesce same-root variables without checking for abnormal PHI usage.
3260
3261 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
3262
3263         * cfgloop.h (duplicate_loop):  Add prototype.
3264         * cfgloopmanip.c (duplicate_loop): Make non-static.
3265         * lambda-code.c (perfect_nestify): Factor out test whether
3266         we can handle this loop into separate function.
3267         Call it.
3268         (can_convert_to_perfect_nest): New function.
3269         (replace_uses_of_x_with_y): Add modify_stmt call.
3270         * tree-loop-linear.c (linear_transform_loops): Call
3271         rewrite_into_loop_closed_ssa and free_df.
3272
3273 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
3274
3275         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
3276         loop invariant as well.
3277         (perfect_nestify): new function.
3278         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
3279         upper bounds, and steps.
3280         Set outerinductionvar properly.
3281         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
3282         parameters.
3283         Return NULL if we need a perfect loop and can't make one.
3284         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
3285         (not_interesting_stmt): New function.
3286         (phi_loop_edge_uses_def): Ditto.
3287         (stmt_uses_phi_result): Ditto.
3288         (stmt_is_bumper_for_loop): Ditto.
3289         (perfect_nest_p): Ditto.
3290         (nestify_update_pending_stmts): Ditto.
3291         (replace_uses_of_x_with_y): Ditto.
3292         (stmt_uses_op): Ditto.
3293         (perfect_nestify): Ditto.
3294         * lambda-mat.c (lambda_matrix_id_p): New function.
3295         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
3296         * lambda.h: Update prototypes.
3297         * tree-loop-linear (linear_transform_loop): Use new
3298         perfect_nest_p. Detect and ignore identity transform.
3299         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
3300
3301 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
3302
3303         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
3304         Gather also strides of accessed data.  Pass in the data references
3305         array.
3306         (try_interchange_loops): Add a new heuristic for handling the temporal
3307         locality.  Pass in the data references array.
3308         (linear_transform_loops): Pass the data references array to
3309         try_interchange_loops.
3310
3311 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
3312
3313         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
3314
3315 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
3316
3317         * doc/c-tree.texi (Classes): Remove index entries for
3318         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
3319
3320 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3321
3322         * fold-const.c (fold): Fold difference of addresses.
3323         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
3324         get_inner_reference.
3325         * tree-ssa-loop-ivopts.c (peel_address): Removed.
3326         (ptr_difference_const): Moved to fold-const.c.
3327         (split_address_cost): Use get_inner_reference instead of peel_address.
3328         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
3329         * tree.h (ptr_difference_const): Export.
3330
3331         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
3332         variable type to the dump.  Fix indentation.
3333         (idx_find_step): Handle nonconstant array_ref_element_size and
3334         array_ref_low_bound.
3335         (idx_record_use): Handle array_ref_element_size and
3336         array_ref_low_bound.
3337         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
3338         statements correctly.
3339         (get_computation_at, iv_value): Do not unshare expressions here.
3340         (rewrite_use_outer): Unshare the expression before it is emitted
3341         to code.
3342         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
3343         Moved to tree.c.
3344         * tree.c (unsigned_type_for, signed_type_for): Moved from
3345         tree-ssa-loop-niter.c.  Use langhooks.
3346         * tree.h (signed_type_for): Export.
3347
3348 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
3349
3350         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
3351         prototype.
3352
3353 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
3354
3355         PR target/11572
3356         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
3357         Add two parameters to extra_includes.
3358         (C_INCPATH_INIT): Remove.
3359         * c-incpath.c (register_include_chains): Call extra_pre_includes
3360         before adding the standard include directory.
3361         Update call to extra_includes.
3362         (!defined TARGET_EXTRA_INCLUDES): Update
3363         hook_void_charptr_charptr_int and add !define
3364         TARGET_EXTRA_PRE_INCLUDES.
3365         (!define TARGET_EXTRA_INCLUDES): Define as
3366         hook_void_charptr_charptr_int.
3367         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
3368         (target_c_incpath): Always declare.
3369         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
3370         empty function.
3371         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
3372         * config/darwin.h: (darwin_register_frameworks): Update for
3373         the two new parameters.
3374         (darwin_register_objc_includes): Add prototype.
3375         (TARGET_EXTRA_PRE_INCLUDES): Define.
3376         * config/darwin-c.c (darwin_register_objc_includes): New function.
3377         (darwin_register_frameworks): Update for the two new parameters.
3378         (target_c_incpath): Remove.
3379         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
3380         the compile line.
3381         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
3382         parameters.
3383         (TARGET_EXTRA_PRE_INCLUDES): Document.
3384
3385         * gcc.c (spec_function): Add replace-outfile.
3386         (replace_outfile_spec_function): New function.
3387         * config/darwin.h (LINK_SPEC): Add replace
3388         -lobjc with -lobjc-gnu if -fgnu-runtime is
3389         supplied.
3390         * invoke.texi (replace-outfile): Document.
3391
3392 2004-09-13  Jan Hubicka  <jh@suse.cz>
3393
3394         * predict.c (expr_expected_value, strip_builtin_expect): New function.
3395         (tree_predict_by_opcode): Use it.
3396         (tree_estimate_probability): Add, for now disabled,
3397         strip_builtin_expect call.
3398
3399 2004-09-15  James E Wilson  <wilson@specifixinc.com>
3400
3401         PR target/17455
3402         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
3403         if current_function_decl is a sibcall.
3404
3405 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
3406
3407         * varasm.c (default_function_rdodata_section): Make sure to pass
3408         along a decl for a link-once section.
3409
3410 2004-09-15  Richard Henderson  <rth@redhat.com>
3411
3412         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
3413         warning with code disable.  Fix formatting.
3414
3415 2004-09-15  Steven Bosscher  <stevenb@suse.de>
3416
3417         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
3418         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
3419         after propagating into an ADDR_EXPR.
3420
3421 2004-09-15  Andrew Pinski  <apinski@apple.com>
3422
3423         PR rtl-opt/17427
3424         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
3425         Move it out of gcc_assert.
3426
3427 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3428
3429         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
3430         except.c, fold-const.c, function.c, langhooks.c, params.c,
3431         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
3432         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
3433         for quoting in diagnostics going through pretty-print.c.  Use ''
3434         for quoting in other diagnostic text.
3435         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
3436         translation.
3437         * Makefile.in (langhooks.o): Update dependencies.
3438         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
3439         formats.
3440
3441 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
3442
3443         * configure.ac: Check for COMDAT support.  Robustify check for
3444         SHF_MERGE support.
3445         * configure: Regenerated.
3446         * config.in: Likewise.
3447         * langhooks-def.h (lhd_comdat_group): New function.
3448         (LANG_HOOKS_COMDAT_GROUP): New macro.
3449         (LANG_HOOKS_DECLS): Use it.
3450         * langhooks.c (lhd_comdat_group): Define.
3451         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
3452         * output.h (named_section_flags): Make it a macro.
3453         (named_section_real): New function.
3454         (default_no_named_section): Add decl parameter.
3455         (default_elf_asm_named_section): Likewise.
3456         (default_coff_asm_named_section): Likewise.
3457         (default_pe_asm_named_section): Likewise.
3458         * target.h (gcc_target): Adjust type of named_section.
3459         * varasm.c (named_section_flags): Rename to named_section_real.
3460         Add decl parameter.
3461         (default_no_named_section): Add decl parameter.
3462         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
3463         with the case that ASM_COMMENT_START is "@".
3464         (default_coff_asm_named_section): Add decl parameter.
3465         (default_pe_asm_named_section): Likewise.
3466         * config/alpha/alpha.c (vms_asm_named_section): Add decl
3467         parameter.
3468         (unicosmk_asm_named_section): Likewise.
3469         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
3470         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
3471         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
3472         * config/cris/cris-protos.h (cris_target_asm_named_section):
3473         Likewise.
3474         * config/cris/cris.c (cris_target_asm_named_section):
3475         Likewise.
3476         * config/darwin/darwin-protos.h (darwin_asm_named_section):
3477         Likewise.
3478         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
3479         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
3480         * config/i386/i386-protos.h (i386_pe_asm_named_section):
3481         Likewise.
3482         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
3483         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
3484         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
3485         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
3486         Likewise.
3487         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
3488         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
3489         * cp/cp-tree.h (cxx_comdat_group): Declare.
3490         * cp/decl.c (cxx_comdat_group): New function.
3491
3492 2004-09-15  Jan Hubicka  <jh@suse.cz>
3493
3494         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
3495         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
3496
3497         * tree-cfg.c (remove_bb): Release SSA defs.
3498
3499 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
3500
3501         * doc/tm.texi: Follow spelling conventions.
3502
3503 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
3504
3505         * tree-ssa-dom.c: Fix comment typos.
3506
3507 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
3508
3509         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
3510         include ccr.
3511         (ppc_fallback_frame_state): Save location of CR.
3512
3513 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
3514
3515         * expr.c (string_constant): Handle also read-only variables
3516         initialized to string literals.
3517
3518         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
3519         into memcpy (x, y, 1) if memcpy can be expanded inline.
3520
3521 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3522
3523         PR tree-optimization/17468
3524         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
3525         definition inside a block precede uses.
3526         * tree-tailcall.c (adjust_return_value): Emit statements in the
3527         correct order.
3528
3529 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
3530
3531         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
3532
3533 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
3534
3535         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
3536
3537 2004-09-14 Jeff Law  <law@redhat.com>
3538
3539         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
3540         (struct dom_walk_block_data): Remove avail_exprs member.
3541         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
3542         (lookup_avail_expr): No longer need to pass in address of
3543         the block local available exprs stack.  All callers changed.
3544         (simplify_cond_and_lookup_avail_expr): Similarly.
3545         (simplify_switch_and_lookup_avail_expr): Similarly.
3546         (get_eq_expr_value, record_cond): Likewise.
3547         (record_dominating_conditions): Likewise.
3548         (update_rhs_and_lookup_avail_expr): Likewise.
3549         (record_equivalences_from_stmt): Likewise.
3550         (dom_opt_initialize_block_local_data): No longer test state of
3551         block local avail_exprs.
3552         (dom_opt_initialize_block): Mark unwind point in the global
3553         avail_expr stack.
3554         (remove_expressions_from_table): Update to unwind to the
3555         most recent unwind marker in the global avail_expr stack.
3556         All callers changed.
3557         (dom_opt_finalize_block): Mark unwind point in the global
3558         avail_expr stack as needed.
3559         (record_cond): Push elements into the global avail_exprs stack.
3560
3561         * tree-dfa.c (free_df_for_stmt): No longer static.
3562         (free_df): Update comments.
3563         * tree-flow.h (free_df_for_stmt): Prototype.
3564         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
3565         call release_defs.
3566
3567 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
3568
3569         PR tree-optimization/17252
3570         * tree-ssa-alias.c (may_alias_p): Don't assume that a
3571         pointer may not point to itself when using relaxed
3572         aliasing rules.
3573
3574 2004-09-14  Richard Henderson  <rth@redhat.com>
3575
3576         PR middle-end/17397
3577         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
3578         while folding <ADDR_EXPR <INDIRECT_REF X>>.
3579
3580 2004-09-14  Andrew Pinski  <apinski@apple.com>
3581
3582         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
3583         sets of the pointers but the aliasing sets of what they point to.
3584
3585 2004-09-14  Roger Sayle  <roger@eyesopen.com>
3586
3587         PR rtl-optimization/9771
3588         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
3589         conditional compilation in init_reg_sets_1.
3590         (init_reg_sets_1): Let global_regs[i] take priority over the frame
3591         (but not stack) pointer exceptions to regs_invalidated_by_call.
3592         (globalize_reg): Globalizing a fixed register may need to update
3593         regs_invalidated_by_call.
3594
3595 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
3596
3597         PR tree-optimization/15262
3598         * tree-dfa.c (dump_variable): Also print the type of the
3599         variable.
3600         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
3601         memory tags are of conflicting alias sets but have no aliased
3602         symbols in common, add one tag to the alias set of the other.
3603         (setup_pointers_and_addressables): Remove hack to deal with
3604         programs with no aliased symbols.
3605         (may_alias_p): Don't special case aggregate types.
3606
3607 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3608
3609         PR c/15498
3610         * doc/invoke.texi (Environment Variables): Correct example locale.
3611
3612 2004-09-14  Jan Hubicka  <jh@suse.cz>
3613
3614         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
3615
3616 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
3617
3618         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
3619
3620 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3621
3622         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
3623         restrict_p.
3624         (struct c_declarator): Change u.array.quals and pointer_quals to
3625         int.  Add u.array.attrs.
3626         (quals_from_declspecs): New.
3627         * c-decl.c (quals_from_declspecs): New.
3628         (shadow_tag_warned): Give more specific message for useless type
3629         qualifiers.
3630         (build_array_declarator, set_array_declarator_inner,
3631         grokdeclarator, make_pointer_declarator, build_null_declspecs,
3632         declspecs_add_qual): Update for changed structures.
3633
3634 2004-09-14  Jeff Law  <law@redhat.com>
3635
3636         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
3637         to a global varray.
3638         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
3639         (dom_opt_initialize_block_local_data): No longer test state
3640         of stmts_to_rescan.
3641         (dom_opt_finalize_block): Update due to change in scope of
3642         stmts_to_rescan.
3643         (optimize_stmt): Similarly.
3644
3645 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3646
3647         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
3648         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
3649         comment typos.  Follow spelling conventions.
3650
3651 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3652
3653         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
3654         config/i386/predicates.md, config/sparc/sparc.c: Follow
3655         spelling conventions.
3656
3657 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3658             Steven Bosscher  <stevenb@suse.de>
3659
3660         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
3661         * basic-block.h (struct reorder_block_def): Add copy_number field.
3662         * cfgloop.h (biv_p): Declare.
3663         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
3664         * common.opt (fsplit-ivs-in-unroller): New flag.
3665         * loop-iv.c (biv_p): New function.
3666         * loop-unroll.c: Include hashtab.h and recog.h.
3667         (struct iv_to_split, struct split_ivs_info): New types.
3668         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
3669         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
3670         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
3671         insert_base_initialization, split_iv): New functions.
3672         (peel_loop_completely, unroll_loop_constant_iterations,
3673         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
3674         Use them.
3675         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
3676
3677 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3678
3679         * tree-cfg.c (thread_jumps): Update dominators correctly in
3680         case destination of threaded edge dominates its source.
3681
3682 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3683
3684         * unroll.c: Removed.
3685         * loop.h: Removed.
3686         * Makefile.in (LOOP_H, unroll.o): Removed.
3687         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
3688         dependency.
3689         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
3690         reference.
3691         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
3692         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
3693         * loop.c: Do not include loop.h.
3694         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
3695         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
3696         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
3697         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
3698         struct loop_regs, struct loop_movables, struct loop_info): Moved
3699         from loop.h.
3700         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
3701         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
3702         find_common_reg_term, loop_iterations, final_giv_value): Moved
3703         from unroll.c.
3704         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
3705         loop_dump_stream, for_each_insn_in_loop, express_from,
3706         extend_value_for_giv, loop_iv_add_mult_emit_before,
3707         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
3708         loop_insn_first_p, get_condition_for_loop,
3709         loop_insn_emit_before, loop_insn_hoist,
3710         loop_insn_sink): Made static.
3711         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
3712         reference.
3713         (strength_reduce): Do not call unroller.
3714         (record_giv): Do not initialize unrolled field.
3715         (prescan_loop): Do not set loop_info->preconditioned.
3716         * passes.c: Do not include loop.h.
3717         (rest_of_handle_loop_optimize): Do not call unroller.
3718         * predict.c: Do not include loop.h.
3719         * rtl.h (NOTE_PRECONDITIONED): Removed.
3720         * stmt.c: Do not include loop.h.
3721         * toplev.c: Do not include loop.h.
3722         (process_options): Do not handle flag_old_unroll_loops.
3723
3724         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
3725         Documentation removed.
3726         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
3727
3728 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
3729
3730         * Makefile.in (STAGE1_CHECKING): New variable.
3731         (stage1_build): Use it.
3732         * tree-ssa.c (verify_ssa): Preserve state of dominance
3733         information.
3734
3735 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
3736
3737         * config/i386/i386.c (output_fp_compare): Add generation
3738         of ftst instruction.
3739         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
3740         Use output_fp_compare () function.
3741         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
3742         (fix_truncdi_memory): Remove operands[5] copy.
3743
3744 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3745
3746         * config/m32r/m32r.md, config/m68k/m68kelf.h,
3747         config/mcore/mcore.md, config/rs6000/linux64.h,
3748         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
3749         typos.
3750
3751 2004-09-13  James E Wilson  <wilson@specifixinc.com>
3752
3753         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
3754         * gen-protos.c: Include errors.h.
3755         (progname): Delete.
3756
3757 2004-09-14  Jan Hubicka  <jh@suse.cz>
3758
3759         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
3760         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
3761         (predict_loops): Use number_of_iterations_exit to predict
3762         number of iterations on trees.
3763
3764 2004-09-13  Dale Johannesen  <dalej@apple.com>
3765
3766         PR 17408
3767         PR 17409
3768         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
3769         objects declared extern.
3770
3771 2004-09-14  Paul Brook  <paul@codesourcery.com>
3772
3773         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
3774         HOST_WIDE_INT.
3775
3776 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
3777
3778         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
3779         Only use TYPE_BINFO for aggregates.
3780
3781 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
3782
3783         * expmed.c (synth_mult): Initialize latency.  Check cost before
3784         checking ops count.
3785
3786 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
3787
3788         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
3789         add_call_clobber_ops and add_call_read_ops.
3790         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
3791         the number of vdefs and vuses inserted based on analysis of global
3792         variables across calls.  * tree-dfa.c (find_referenced_vars):
3793         Needed to reset static var maps before each function is compiled.
3794         * cgraphunit.c:
3795         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
3796         static_vars_info,functions_to_static_vars_info,module_statics_escape,
3797         all_module_statics,searchc_env,dfs_info): New fields to support
3798         analysis of static global variables.
3799         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
3800         cgraph_reset_static_var_maps, get_global_static_vars_info,
3801         get_global_statics_not_read, get_global_statics_not_written,
3802         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
3803         check_rhs_var, check_lhs_var, get_asm_expr_operands,
3804         process_call_for_static_vars, scan_for_static_refs,
3805         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
3806         clear_static_vars_maps, cgraph_propagate_bits,
3807         cgraph_characterize_statics): New. Functions to support analysis
3808         of static global variables.
3809         (cgraph_mark_local_and_external_functions): Renamed from:
3810         (cgraph_mark_local_functions)
3811         (cgraph_expand_all_functions): Remove call to
3812         cgraph_mark_local_and_external_functions.
3813         (cgraph_optimize): Added driver to analyze static variables whose
3814         scope is within the compilation unit.  * cgraph.h (struct
3815         cgraph_local_info, GTY): Added statics_read, statics_written,
3816         local, calls_read_all, calls_write_all, for_functions_valid.
3817         (struct cgraph_node): Added next_cycle.  * cgraph.c
3818         (dump_cgraph_node): Added print routines for new fields.  *
3819         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
3820         list.
3821
3822 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3823
3824         * c-decl.c (grokdeclarator): Correct comments about where storage
3825         class specifiers are rejected by grammar and add corresponding
3826         asserts.  Diagnose typedefs and parameters declared inline.
3827         Change warning for inline main to a pedwarn.  Only diagnose inline
3828         main if hosted.
3829         (declspecs_add_scspec): Allow duplicate "inline".
3830
3831 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
3832
3833         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
3834         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3835
3836 2004-09-13  Richard Henderson  <rth@redhat.com>
3837
3838         PR 17436
3839         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
3840         (tree_type): Replace spare with contains_placeholder_bits.
3841         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
3842         make static.  Remove seen_types list.
3843         (type_contains_placeholder_p): New.
3844
3845 2004-09-13  James E Wilson  <wilson@specifixinc.com>
3846
3847         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
3848         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
3849         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
3850         bdesc_arrays instead of mips_bdesc.
3851         (mips_init_builtins): Likewise.
3852         * config/mips/mips.h (TARGET_SB1): New.
3853         (HAVE_SQRT_P): Delete.
3854         * config/mips/mips.md (divide_condition): Support V2SF.
3855         (sqrt_condition, recip_condition): New.
3856         (div<mode>3): Use ANYF instead of SCALARF.
3857         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
3858         MODE.
3859         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
3860         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
3861         instead of MODE.
3862         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
3863         instead of SCALARF.  Use UNITMODE instead of MODE.
3864
3865 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
3866
3867         * config.in: Regenerate after removal of libbanshee.
3868
3869 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
3870
3871         PR tree-optimization/17400
3872         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
3873         coalesce partitions when one occurs in an abnormal PHI.
3874
3875 2004-09-13  Andrew Pinski  <apinski@apple.com>
3876
3877         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
3878         name to _new_size.
3879
3880 2004-09-13  Richard Henderson  <rth@redhat.com>
3881
3882         PR inline-asm/6806
3883         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
3884         (cselib_invalidate_rtx_note_stores): New.
3885         (cselib_record_sets, cselib_process_insn): Update to match.
3886         * cselib.h (cselib_invalidate_rtx): Declare.
3887         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
3888
3889 2004-09-13  Richard Henderson  <rth@redhat.com>
3890
3891         PR tree-opt/10528
3892         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
3893         after copying its argument.
3894
3895 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3896
3897         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
3898         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
3899         in diagnostics.  Use %' for English apostrophes.
3900         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
3901         (pedwarn_c90, pedwarn_c99): Use it.
3902         * c-decl.c (lookup_label): Quote label name in diagnostic.
3903         * c-parse.in (yyprint): Use ' instead of ` for left quote.
3904         * c-typeck.c (warn_for_assignment): Likewise.
3905
3906 2004-09-13  Jan Hubicka  <jh@suse.cz>
3907
3908         * i386.c (x86_schedule): New global variable.
3909         (override_options): Disable scheduling when not supported.
3910         * i386.h (x86_schedule): Declare.
3911         (TARGET_SCHEDULE): New macro.
3912
3913 2004-09-12  Richard Henderson  <rth@redhat.com>
3914
3915         PR c++/16254
3916         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
3917         * tree.c, tree.h (has_cleanups): Remove.
3918
3919 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3920
3921         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
3922         arguments of the phi nodes correctly.
3923
3924 2004-09-12  Jan Hubicka  <jh@suse.cz>
3925
3926         * ggc-common.c (cmp_statistics): Fix sorting.
3927
3928 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
3929
3930         PR target/16795
3931         * expmed.c (expand_divmod): If cheap power of 2 divide is
3932         available, use it for negative constant as well.
3933
3934 2004-09-12  Andrew Pinski  <apinski@apple.com>
3935
3936         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
3937         size of 0.
3938
3939         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
3940
3941 2004-09-12  Richard Henderson  <rth@redhat.com>
3942
3943         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
3944         or minus one.
3945         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
3946         post-reload, and scratch NULL.
3947         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
3948         (x86_shift_adj_2): Use ix86_expand_clear.
3949         (ashldi3): Remove CMOVE expansion difference.
3950         (ashldi3_1): Remove.
3951         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
3952         add constraints for immediates.  New peephole for split-with-temp.
3953         Run splitter after peep2 pass.
3954         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
3955         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
3956         (setcc_2): Rename with *.
3957         * config/i386/predicates.md (reg_or_pm1_operand): New.
3958         (ashldi_input_operand): New.
3959
3960 2004-09-12  Richard Henderson  <rth@redhat.com
3961
3962         * print-rtl.c (print_decl_name): New.
3963         (print_mem_expr): Use it.
3964
3965 2004-09-12  Richard Henderson  <rth@redhat.com
3966
3967         PR 17186, part deux
3968         * except.c (sjlj_emit_function_exit): Fix logic locating
3969         sjlj_exit_after in final block.
3970
3971 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
3972
3973         * common.opt: Remove flags -fmove-all-movables and
3974         -freduce-all-givs.
3975         * loop-invariant.c (find_invariants_to_move):
3976         Remove all uses of flag_move_all_movables.
3977         * loop.c (move_movables): Remove all uses of
3978         flag_move_all_movables.
3979         (strength_reduce): Remove all uses of
3980         flag_reduce_all_givs.
3981         * doc/invoke.texi: Remove documentation of flags
3982         -fremove-all-movables and -freduce-all-givs.
3983
3984 2004-09-11  Roger Sayle  <roger@eyesopen.com>
3985
3986         PR middle-end/17411
3987         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
3988         change. elt->type may be a floating point type, so use fold_convert.
3989
3990 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
3991
3992         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
3993         the thing referenced as used, not the stub itself.
3994
3995 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3996
3997         * c-tree.h (enum c_storage_class): New.
3998         (struct c_declspecs): Add storage_class, inline_p and thread_p.
3999         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
4000         declarations and "auto" or "register" in file scope empty
4001         declarations.  Give more specific warnings for other cases of
4002         storage class specifiers in empty declarations.
4003         (grokdeclarator): Update for new structures.  Don't check for
4004         multiple storage classes.  Diagnose file-scope "register" if
4005         pedantic.
4006         (build_null_declspecs): Update.
4007         (declspecs_add_scspec): Update.  Diagnose multiple storage class
4008         specifiers and invalid uses of "__thread".
4009
4010 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
4011
4012         * tree.c (tree_code_size): New function, bulk of code from tree_size.
4013         (tree_size, make_node): Use it.
4014         * tree-ssa-pre.c (init_pre): Use it.
4015         * tree.h: Prototype it.
4016
4017 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4018
4019         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
4020         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
4021         redirect_immediate_use): Use PHI_DF.
4022         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
4023         (bb_for_stmt): Use PHI_BB.
4024         (get_immediate_uses): Use PHI_DF.
4025         * tree-ssa-dse.c (max_stmt_uid): New variable.
4026         (get_stmt_uid): New function.
4027         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
4028         node annotations.
4029         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
4030         (max_uid): Renamed to max_stmt_uid.
4031         (get_stmt_uid): New function.
4032         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
4033         phi node annotations.
4034         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
4035         * tree.h (PHI_BB, PHI_DF): New accessor functions.
4036         (struct tree_phi_node): Add bb and df fields.
4037
4038 2004-09-11  Richard Henderson  <rth@redhat.com>
4039
4040         PR middle-end/17416
4041         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
4042         in conflict loop.
4043
4044 2004-09-11  Jan Hubicka  <jh@suse.cz>
4045
4046         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
4047         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
4048         * i386.md (i387_cw): Add 'uninitialized' mode.
4049
4050         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
4051         (output_location): Break out from ....
4052         (branch_prob): ... here; handle gcov output on trees.
4053         * toplev.c (process_options): No longer be sorry about coverage for
4054         trees.
4055
4056 2004-09-11  Steven Bosscher  <stevenb@suse.de>
4057
4058         PR c++/17412
4059         * fold-const.c (fold): Do not try to fold the operand of a
4060         CLEANUP_POINT_EXPR if that operand does itself not have any
4061         operands.
4062
4063         PR middle-end/17417
4064         * langhooks.c (lhd_decl_printable_name): Make sure that this
4065         function is called with is a decl node that has an identifier.
4066         * tree-pretty-print.c (dump_function_name): New function to
4067         wrap PRINT_FUNCTION_NAME and dump_decl_name.
4068         (print_call_name): Use it.
4069
4070 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
4071
4072         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
4073         "config.h" if not.
4074
4075 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
4076
4077         * tree-ssa-alias.c (collect_points_to_info_r): Handle
4078         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
4079         to OFFSET.
4080
4081 2004-09-11  Richard Henderson  <rth@redhat.com>
4082
4083         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
4084         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
4085         operand of the ADDR_EXPR.
4086         (expand_expr_real_1): Update to match.
4087
4088 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
4089
4090         PR target/17277
4091         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
4092         choose 64-bit version.
4093
4094 2004-09-11  Richard Henderson  <rth@redhat.com>
4095
4096         PR c/17396
4097         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
4098
4099 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
4100
4101         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
4102         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
4103         Insert @: after i.e. or e.g.
4104
4105 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
4106
4107         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
4108         D.xxx rather than <Dxxx>.
4109
4110 2004-09-10  Adam Nemet  <anemet@lnxw.com>
4111
4112         * configure.ac (AC_MSG_CHECKING(what linker to use)):
4113         in_tree_ld_is_elf should be true for LynxOS.
4114         * configure: Regenerate.
4115
4116 2004-09-10  Adam Nemet  <anemet@lnxw.com>
4117
4118         * Makefile.in (all.cross): Add srcextra.
4119
4120 2004-09-10  Roger Sayle  <roger@eyesopen.com>
4121
4122         PR middle-end/17024
4123         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
4124         floating point comparison operators.  Change aborts to gcc_asserts.
4125
4126 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
4127
4128         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
4129
4130 2004-09-10  James E Wilson  <wilson@specifixinc.com>
4131
4132         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
4133         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
4134
4135         * convert.c (convert_to_vector): Replace recursive call with
4136         error_mark_node.
4137
4138         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
4139         Add integer argument named constant.  Use const_tiny_rtx instead of
4140         CONST0_RTX.
4141         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
4142         and CONST1_RTX.
4143         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
4144         vector types.
4145         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
4146         of gen_rtx_raw_CONST_VECTOR.
4147
4148 2004-09-10  Eric Christopher  <echristo@redhat.com>
4149
4150         PR c/16046
4151         * c-parse.in (attribute): Add NULL_TREE for error case
4152         for error recovery.
4153
4154 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
4155
4156         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
4157         (extract_interface_info): Delete prototype.
4158         * c-decl.c (extract_interface_info): Delete stub.
4159         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
4160         it's not already been done ...
4161         (init_c_lex): ... not here.
4162         (fe_file_change): Don't call extract_interface_info.
4163
4164 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
4165
4166         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
4167         typedef_p and typedef_signed_p.
4168         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
4169         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
4170         Check typedef_p and typedef_signed_p, not typedef_decl.
4171         (grokfield): Check typedef_p, not typedef_decl.
4172         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
4173         not typedef_decl.
4174         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
4175         typedef_decl.
4176
4177 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4178
4179         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
4180
4181 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
4182
4183         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
4184         temporary variables.
4185
4186         * dbxout.c (dbxout_block): Update for
4187         current_function_func_begin_label a string.
4188         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
4189         * except.c (dw2_output_call_site_table): Likewise.
4190         * toplev.c (current_function_func_begin_label): Likewise.
4191         * tree.h (current_function_func_begin_label): Likewise.
4192         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
4193
4194         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
4195         loop.
4196
4197         * config/darwin.c: Include target.h.
4198         (struct machopic_indirection): Make ptr_name a string.
4199         (machopic_indirection_hash): Update for ptr_name a string.
4200         (machopic_indirection_eq): Likewise.
4201         (machopic_indirection_name): Likewise.
4202         (machopic_output_indirection): Likewise.
4203         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
4204         string.  Don't expect stub names to be in the identifier hash table.
4205         Do call strip_name_encoding before looking up entry in ID hash table.
4206         * config/t-darwin (darwin.o): Add target.h to dependencies.
4207
4208         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
4209         of fprintf for register names.
4210
4211         * output.h (unlikely_section_label): Delete declaration.
4212         (unlikely_text_section_name): Likewise.
4213         * varasm.c (unlikely_section_label_printed): Make static.
4214         (unlikely_section_label): Likewise.
4215         (unlikely_text_section_name): Likewise.
4216         (assemble_start_function): Use reconcat.
4217
4218         * rtl.def (REG): Add comment to describe third field.
4219
4220 2004-09-10  Andrew Pinski  <apinski@apple.com>
4221
4222         * config/darwin.c (machopic_mcount_stub_name): Call
4223         machopic_indirection_name instead of making the string
4224         ourselves.
4225
4226 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
4227
4228         Revert
4229
4230         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
4231
4232             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
4233             memory tag is call clobbered, so are its aliases.
4234             (group_aliases): When two memory tags being grouped, if one is
4235             call clobbered, so are the other and its aliases.
4236             (add_may_alias): Remove call-clobbering stuff.
4237             (replace_may_alias): Likewise.
4238             (merge_pointed_to_info): Merge pt_global_mem
4239
4240 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4241
4242         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
4243         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
4244         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
4245         tree-scalar-evolution.c, tree-ssa-copyrename.c,
4246         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
4247
4248 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
4249
4250         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
4251         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
4252         pair.  Remove match_dup from inputs.  Remove masaccs handling.
4253         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
4254         (masaccs, mdasaccs): Turn into define_insns.
4255
4256 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
4257
4258         * tree-tailcall.c (process_assignment): Only do accumulator transforms
4259         for floating-point types if flag_unsafe_math_optimizations.
4260
4261 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4262
4263         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
4264         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
4265         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
4266         config/h8300/h8300.md, config/i386/gmm_malloc.h,
4267         config/ia64/ia64.md, config/ip2k/libgcc.S,
4268         config/mips/mips-ps-3d.md, config/mips/mips.c,
4269         config/rs6000/rs6000.c, config/s390/s390.c,
4270         config/sh/symbian.c: Fix comment typos.
4271
4272 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4273
4274         * config/s390/s390.c (s390_emit_prologue): Added missing
4275         "{}" brackets.
4276
4277 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4278
4279         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
4280         typos.  Follow spelling conventions.
4281
4282 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4283
4284         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
4285         in diagnostic.  Don't dereference NULL TYPE_NAME.
4286
4287 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4288
4289         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
4290         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
4291         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
4292         value-prof.c: Fix comment typos.  Follow spelling conventions.
4293
4294 2004-09-10  Jan Hubicka  <jh@suse.cz>
4295
4296         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
4297         * tree-split_edge.c (tree_split_edge): Likewise.
4298         (thread_jumps): Likewise.
4299
4300 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
4301
4302         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
4303         typos.
4304
4305 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
4306
4307         * cgraph.h (cgraph_dump_file): Do not declare.
4308         * cgraphunit.c (cgraph_dump_file): Declare as static.
4309         (init_cgraph): New.
4310         * toplev.c (cgraph_dump_file): Do not declare.
4311         (compile_file): Call init_cgraph.
4312         * tree-dump.c (dump_files): Add IPA dump file, remove
4313         XML dump of call graph.
4314         (get_dump_file_name): Support IPA dump file naming scheme.
4315         * tree.h (enum tree_dump_index): Add IPA dump file, remove
4316         XML dump of call graph.
4317         * doc/invoke.texi (Debugging Options): Document the new options.
4318
4319 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
4320
4321         * doc/extend.texi: Document the FR-V built-in functions.
4322
4323 2004-09-09  James E Wilson  <wilson@specifixinc.com>
4324
4325         * doc/sourcebuild.texi: Delete libbanshee reference.
4326
4327 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
4328
4329         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
4330
4331 2004-09-09  James E Wilson  <wilson@specifixinc.com>
4332
4333         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
4334         before calling vector_types_convertible_p.
4335         (digest_init): Check that inside_init has VECTOR_TYPE before calling
4336         vector_types_convertible_p.  Don't give another error if
4337         convert_for_assignment returns error_mark_node.
4338
4339 2004-09-09  Roger Sayle  <roger@eyesopen.com>
4340
4341         PR middle-end/17055
4342         * fold-const.c (build_zero_vector): New function to construct a
4343         vector (either floating point or integer) of zeros.
4344         (fold_convert): Internally, enable conversions of integer zero
4345         to arbitrary vector types, using the new build_zero_vector.
4346
4347 2004-09-09  Roger Sayle  <roger@eyesopen.com>
4348
4349         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
4350         expand a left shift by an immediate constant as either an ashl or
4351         a sequence of additions.
4352         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
4353         instead of calling gen_ashlsi3 with a constant directly.
4354
4355 2004-09-09  Roger Sayle  <roger@eyesopen.com>
4356
4357         * config/i386/i386.c (ix86_split_long_move): When optimizing for
4358         size, and the low and high parts of a DImode constant are equal,
4359         copy one register to another instead of loading the same immediate
4360         value twice.
4361
4362 2004-09-09  Richard Henderson  <rth@redhat.com>
4363
4364         PR middle-end/17367
4365         * function.c (assign_parm_setup_block): Only put PARALLELs into
4366         a register if use_register_for_decl.
4367
4368 2004-09-09  Eric Christopher  <echristo@redhat.com>
4369
4370         * ra-colorize.c (reset_lists): Move variable declaration inside
4371         ENABLE_CHECKING to avoid unused variable warnings when
4372         not --enable-checking.
4373         (check_colors): Ditto.
4374
4375 2004-09-09  Mike Stump  <mrs@apple.com>
4376
4377         * version.c (version_string): Bump to 4.0.0.
4378         * doc/include/gcc-common.texi (version-GCC): Likewise.
4379
4380 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
4381
4382         * doc/extend.texi (nothrow attribute): The attribute is not
4383         implemented in 3.2 and earlier.
4384
4385 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
4386
4387         * genrecog.c (compute_predicate_codes): Use op0_codes
4388         instead of codes.
4389
4390 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
4391
4392         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
4393         implementation changes.
4394
4395 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
4396
4397         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
4398         a PARALLEL instead of a SET due to added clobbers.
4399
4400 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
4401
4402         * reload.c (find_reloads_address): Pass correct operand to
4403         maybe_memory_address_p.
4404
4405 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
4406
4407         * Makefile.in: Remove libbanshee, tree-alias-*.
4408         Remove tree-alias-common.h dependencies.
4409         * common.opt: Remove -ftree-points-to.
4410         * configure.ac: Remove libbanshee.
4411         * flags.h: Remove pta_type, flag_tree_points_to.
4412         * gengtype.c (open_base_files): Remove tree-alias-type.h.
4413         * opts.c (OPT_ftree_points_to): Remove.
4414         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
4415         * tree-dfa.c: Remove tree-alias-common.h
4416         * tree-into-ssa.c: Ditto.
4417         * tree-outof-ssa.c: Ditto.
4418         * tree-ssa-copyrename.c: Ditto.
4419         * tree-ssa-live.c: Ditto.
4420         * tree-optimize.c: Ditto.
4421         * tree-ssa.c: Ditto.
4422         Remove pass_build_pta, pass_del_pta.
4423         * tree-pass.h: Ditto.
4424         * tree-ssa-alias.c: Remove tree-alias-common.h.
4425         (struct alias_stats_d): Remove pta_queries, pta_resolved.
4426         (pass_may_alias): Remove PROP_pta requirement.
4427         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
4428         (get_tmt_for): Ditto.
4429         (dump_alias_stats): Ditto.
4430         * doc/passes.texi: Remove blurb about points-to analysis.
4431         * fortran/Make-lang.in: Remove tree-alias-*.o.
4432
4433 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
4434
4435         * genattrtab.c (write_insn_cases): New function, split out from
4436         write_attr_case.  Correctly handle define_peepholes when printing
4437         the instruction name.
4438         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
4439
4440 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
4441
4442         PR target/17377
4443         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
4444         * config/cris/cris.c (cris_return_address_on_stack): New function.
4445         * config/cris/cris.md ("return"): For location of return address,
4446         also check cris_return_address_on_stack.
4447
4448 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
4449
4450         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
4451         calling phi_ssa_name_p.
4452
4453 2004-09-09  Richard Henderson  <rth@redhat.com>
4454
4455         PR c/17322
4456         * c-typeck.c (valid_compound_expr_initializer): Use only
4457         initializer_constant_valid_p, and not TREE_CONSTANT.
4458         (digest_init): Likewise.
4459         (output_init_element): Likewise.
4460
4461 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4462
4463         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
4464         live_out_1, prune_hardregs_for_mode, init_one_web_common,
4465         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
4466         record_conflict, compare_and_free_webs, init_webs_defs_uses,
4467         parts_to_webs_1, parts_to_webs, reset_conflicts,
4468         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
4469         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
4470         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
4471         put_move, remove_move, combine, select_spill, colorize_one_web,
4472         try_recolor_web, insert_coalesced_conflicts, check_colors,
4473         break_precolored_alias, restore_conflicts_from_coalesce,
4474         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
4475         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
4476         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
4477         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
4478         check_df): Likewise.
4479         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
4480         real_arithmetic, real_compare, real_exponent, real_ldexp,
4481         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
4482         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
4483         real_digit, real_nan, real_maxval, round_for_format, real_convert,
4484         real_to_target, real_from_target, real_hash, encode_ieee_single,
4485         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
4486         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
4487         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
4488         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
4489         extract_insn, peep2_next_insn, peep2_reg_dead_p,
4490         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
4491         if_test_bypass_p): Likewise.
4492         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
4493         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
4494         emit_swap_insn, swap_to_top, move_for_stack_reg,
4495         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
4496         compensate_edge, convert_regs_1): Likewise.
4497         * regclass.c (init_reg_sets, init_reg_sets_1,
4498         memory_move_secondary_cost): Likewise.
4499         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
4500         Likewise.
4501         * reload.c (push_secondary_reload, find_valid_class, push_reload,
4502         operands_match_p, decompose, immune_p, find_reloads,
4503         find_reloads_toplev, find_reloads_address_1, subst_reloads,
4504         copy_replacements, refers_to_regno_for_reload_p,
4505         reg_overlap_mentioned_for_reload_p): Likewise.
4506         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
4507         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
4508         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
4509         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
4510         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
4511         do_output_reload, fixup_abnormal_edges): Likewise.
4512         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
4513         fill_slots_from_thread, relax_delay_slots): Likewise.
4514         * resource.c (mark_referenced_resources, mark_set_resources):
4515         Likewise.
4516         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
4517         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
4518         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
4519         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
4520         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
4521         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
4522         * rtlhooks.c (gen_lowpart_general): Likewise.
4523         * sbitmap.c (sbitmap_difference): Likewise.
4524         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
4525         sched_analyze, add_forward_dependence): Likewise.
4526         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
4527         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
4528         schedule_insns): Likewise.
4529         * sched-vis.c (print_pattern): Likewise.
4530         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
4531         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
4532         simplify_const_relational_operation, simplify_ternary_operation,
4533         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
4534         Likewise.
4535         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
4536         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
4537         resolve_operand_name_1, expand_return, expand_decl,
4538         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
4539         * stor-layout.c (put_pending_size, smallest_mode_for_size,
4540         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
4541         set_sizetype, get_mode_bounds): Likewise.
4542
4543 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
4544
4545         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
4546         * config/arm/pecoff.h, config/i386/beos-elf.h
4547         * config/i386/cygming.h, config/i386/i386-interix.h:
4548         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
4549         comment cloned from manual.
4550         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
4551
4552 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
4553
4554         * builtins.c (build_va_arg_indirect_ref): New function.
4555         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
4556         build_fold_indirect_ref.
4557         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
4558         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
4559         * tree.h: Declare new function.
4560
4561 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4562
4563         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
4564         dumping for development builds.
4565         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
4566         development builds only.
4567         * genattrtab.c (write_eligible_delay): Fix typo in previous
4568         commit.
4569         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
4570         gcc_assert.
4571
4572 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4573
4574         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
4575         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
4576         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
4577         hoist_code, extract_mentioned_regs_helper, compute_store_table,
4578         insert_store): Use gcc_assert and gcc_unreachable.
4579         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
4580         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
4581         ggc_record_overhead): Likewise.
4582         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
4583         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
4584         ggc_pop_context, clear_marks, validate_free_objects,
4585         ggc_pch_read): Likewise.
4586         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
4587         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
4588         ggc_push_context, check_cookies, ggc_collect,
4589         ggc_print_statistics): Likewise.
4590         * gimple-low.c (lower_function_body, lower_stmt,
4591         lower_bind_expr): Likewise.
4592         * gimplify.c (gimple_tree_eq, push_gimplify_context,
4593         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
4594         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
4595         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
4596         gimplify_case_label_expr, gimplify_exit_block_expr,
4597         canonicalize_component_ref, gimplify_compound_lval,
4598         gimplify_self_mod_expr, gimplify_call_expr,
4599         gimplify_init_ctor_eval, gimplify_init_constructor,
4600         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
4601         gimplify_expr, check_pointer_types_r,
4602         force_gimple_operand): Likewise.
4603         * global.c (global_alloc, build_insn_chain): Likewise.
4604         * graph.c (clean_graph_dump_file,
4605         finish_graph_dump_file): Likewise.
4606         gcov-io.c (gcov_open): Use GCOV_CHECK.
4607
4608 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
4609
4610         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
4611
4612 2004-09-09  Jan Hubicka  <jh@suse.cz>
4613
4614         middle-end/17128
4615         * tree-inline.c (expand_call_inline): Make overactive sanity check
4616         happy.
4617
4618 2004-09-09  Jan Hubicka  <jh@suse.cz>
4619
4620         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
4621         VIEW_CONVERT_EXPR.
4622
4623 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4624
4625         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
4626         (gengtype.o): Depend on errors.h.
4627         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
4628         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
4629         attr_alt_subset_p, attr_alt_subset_of_compl_p,
4630         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
4631         write_test_expr, write_attr_value, write_eligible_delay,
4632         make_internal_attr, make_numeric_value): Likewise.
4633         * genautomata.c (regexp_name, get_str_vect,
4634         gen_presence_absence_set, automaton_decl_hash,
4635         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
4636         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
4637         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
4638         test_unit_reserv, it_is_empty_reserv_sets,
4639         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
4640         reserv_sets_and, output_cycle_reservs, get_free_state,
4641         intersected_state_reservs_p, states_union, remove_arc,
4642         copy_insn_regexp, transform_1, transform_2, transform_3,
4643         regexp_transform_func, store_alt_unit_usage,
4644         check_regexp_units_distribution, process_seq_for_forming_states,
4645         process_alts_for_forming_states, make_automaton,
4646         form_arcs_marked_by_insn, create_composed_state,
4647         set_out_arc_insns_equiv_num, partition_equiv_class,
4648         process_insn_equiv_class, set_insn_equiv_classes,
4649         units_to_automata_heuristic_distr, form_regexp,
4650         longest_path_length, output_dfa_max_issue_rate, add_vect,
4651         out_state_arcs_num, add_vect_el, output_trans_table,
4652         output_state_alts_table, output_dead_lock_vect,
4653         output_max_insn_queue_index_def,
4654         output_min_insn_conflict_delay_func,
4655         output_internal_insn_latency_func, output_print_reservation_func,
4656         output_cpu_unit_reservation_p, output_state_arcs,
4657         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
4658         make_default_insn_latency_attr,
4659         form_important_insn_automata_lists): Likewise.
4660         * genemit.c (gen_exp, output_add_clobbers,
4661         output_added_clobbers_hard_reg_p): Likewise.
4662         * genextract.c (print_path, main): Likewise.
4663         * genflags.c (gen_macro): Likewise.
4664         * gengenrtl.c: Include errors.h
4665         (type_from_format, accessor_from_format): Likewise.
4666         * gengtype.c (get_file_basename, output_mangled_typename,
4667         walk_type, write_types_process_field,
4668         write_types_local_process_field): Likewise.
4669         * genmodes.c (complete_mode): Likewise.
4670         * genopinit.c (gen_insn): Likewise.
4671         * genoutput.c (output_insn_data, check_constraint_len,
4672         constraint_len): Likewise.
4673         * genpreds.c (add_mode_tests):Likewise.
4674         * gen-protos.c (add_hash): Likewise.
4675         * genrecog.c (find_operand, find_matching_operand,
4676         validate_pattern, add_to_sequence, maybe_both_true,
4677         nodes_identical_1, merge_trees, write_switch, write_cond,
4678         write_action, is_unconditional, make_insn_sequence,
4679         debug_decision_2): Likewise.
4680         * gensupport.c (is_predicable, collect_insn_data,
4681         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
4682
4683 2004-09-09  Jan Hubicka  <jh@suse.cz>
4684
4685         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
4686         * cfgbuild.c (compute_outgoing_frequencies): When probability is
4687         missing, guess it.
4688         (find_many_sub_basic_blocks): Do update profile only when it is
4689         present.
4690         * predict.c (set_even_probabilities): Break out from ...
4691         (combine_predictions_for_insn): ... here; deal with
4692         !can_predict_insn_p insns.
4693         (combine_predictions_for_bb): Use set_even_probabilities.
4694         (bb_estimate_probability_locally): Break out from ....
4695         (estimate_probability): ... here.
4696         (guess_outgoing_edge_probabilities): New entry point.
4697
4698 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4699
4700         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
4701         handle_braces, process_brace_body, main, used_arg,
4702         set_multilib_dir, print_multilib_info): Use fatal, not abort.
4703
4704         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
4705
4706         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
4707         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
4708         Morgan's theorem in last checkin.
4709
4710 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4711             Nathan Sidwell  <nathan@codesourcery.com>
4712
4713         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
4714         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
4715         * timevar.c (timevar_push, timevar_pop, timevar_start,
4716         timevar_stop): Likewise.
4717         * toplev.c (default_pch_valid_p): Likewise.
4718         * tracer.c (tail_duplicate): Likewise.
4719         * tree-alias-common.c (get_alias_var_decl,
4720         get_values_from_constructor, create_alias_var, delete_alias_vars,
4721         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
4722         Likewise.
4723         * tree.c (tree_size, make_node_stat, copy_node_stat,
4724         build_int_cst_wide, integer_all_onesp, list_length, chainon,
4725         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
4726         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
4727         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
4728         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
4729         build_method_type_directly, decl_type_context, get_callee_fndecl,
4730         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
4731         tree_fold_gcd): Likewise.
4732         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
4733         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
4734         cleanup_control_expr_graph, find_taken_edge,
4735         find_taken_edge_switch_expr, phi_alternatives_equal,
4736         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
4737         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
4738         tree_split_edge, tree_verify_flow_info, thread_jumps,
4739         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
4740         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
4741         chrec_fold_multiply_poly_poly): Likewise.
4742         * tree-complex.c (extract_component, expand_complex_division,
4743         expand_complex_comparison, expand_complex_operations_1,
4744         build_replicated_const, expand_vector_operations_1): Likewise.
4745         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
4746         build_classic_dir_vector): Likewise.
4747         * tree-dfa.c (compute_immediate_uses_for_phi,
4748         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
4749         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
4750         * tree-dump.c (dequeue_and_dump): Likewise.
4751         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
4752         record_in_finally_tree, replace_goto_queue_1,
4753         maybe_record_in_goto_queue, verify_norecord_switch_expr,
4754         do_return_redirection): Likewise.
4755         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
4756         add_to_dst_predicate_list, find_phi_replacement_condition,
4757         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
4758         Likewise.
4759         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
4760         initialize_inlined_parameters, declare_return_variable,
4761         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
4762         optimize_inline_calls, copy_tree_r): Likewise.
4763         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
4764         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
4765         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
4766         tsi_split_statement_list_after, tsi_split_statement_list_before):
4767         Likewise.
4768         * tree-mudflap.c (mf_varname_tree): Likewise.
4769         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
4770         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
4771         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4772         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
4773         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
4774         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
4775         Likewise.
4776         * tree-phinodes.c (resize_phi_node, add_phi_arg,
4777         remove_all_phi_nodes_for): Likewise.
4778         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
4779         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
4780         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
4781         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
4782         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
4783         generate_one_element_ref, generate_element_copy,
4784         generate_element_zero, scalarize_copy, scalarize_init,
4785         scalarize_ldst): Likewise.
4786         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
4787         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
4788         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
4789         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
4790         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
4791         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
4792         widen_bitfield, ccp_fold_builtin): Likewise.
4793         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
4794         replace_exp_1, propagate_tree_value): Likewise.
4795         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
4796         * tree-ssa-dce.c (set_control_dependence_map_bit,
4797         find_control_dependence, find_pdom, mark_operand_necessary,
4798         mark_stmt_if_obviously_necessary,
4799         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
4800         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
4801         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
4802         eliminate_redundant_computations, avail_expr_eq): Likewise.
4803         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
4804         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
4805         duplicate_blocks): Likewise.
4806         * tree-ssa-loop-im.c (for_each_index, set_level,
4807         is_call_clobbered_ref): Likewise.
4808         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
4809         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
4810         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
4811         peel_address, ptr_difference_cost, may_replace_final_value,
4812         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
4813         rewrite_use, rewrite_uses): Likewise.
4814         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
4815         check_loop_closed_ssa_use): Likewise.
4816         * tree-ssanames.c (make_ssa_name): Likewise.
4817         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
4818         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
4819         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
4820         get_indirect_ref_operands, add_stmt_operand): Likewise.
4821         * tree-ssa-pre.c (value_exists_in_set_bitmap,
4822         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
4823         phi_translate, valid_in_set, compute_antic,
4824         find_or_generate_expression, create_expression_by_pieces, insert_aux,
4825         create_value_expr_from, eliminate): Likewise.
4826         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
4827         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
4828         Likewise.
4829         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
4830         eliminate_tail_call): Likewise.
4831         * tree-vectorizer.c (vect_create_index_for_array_ref,
4832         vect_align_data_ref, vect_create_data_ref,
4833         vect_create_destination_var, vect_get_vec_def_for_operand,
4834         vect_finish_stmt_generation, vect_transform_stmt,
4835         vect_transform_loop_bound, vect_transform_loop,
4836         vect_analyze_operations): Likewise.
4837         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
4838         Likewise.
4839         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
4840         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
4841         bsi_after_labels, bsi_last): Likewise.
4842         * tree-ssa-live.c (var_union, change_partition_var,
4843         create_ssa_var_map, calculate_live_on_entry, root_var_init,
4844         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
4845         Likewise.
4846         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
4847         tpa_find_tree): Likewise.
4848         (register_ssa_partition_check): Declare.
4849         (register_ssa_partition): use it.
4850         * tree-ssa-live.c: Include errors.h.
4851         (register_ssa_partition_check): New.
4852         * tree-ssa-operands.c: Include errors.h.
4853         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
4854
4855 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
4856             Catherine Moore  <clm@redhat.com>
4857
4858         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
4859         (FRV_CPU_FR405): New processor enums.
4860         (frv_issue_rate, frv_acc_group): Declare.
4861         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
4862         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
4863         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
4864         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
4865         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
4866         handled by CPP_SPEC.
4867         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
4868         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
4869         (ACC_MASK): New macro.
4870         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
4871         (TARGET_MEDIA_FR450): New macro.
4872         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
4873         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
4874         (LABEL_ALIGN_AFTER_BARRIER): Define.
4875         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
4876         (IACC_FIRST, IACC_LAST): New pair of SPRs.
4877         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
4878         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
4879         (REGISTER_NAMES): Add entries for new registers.
4880         (REG_CLASS_CONTENTS): Update for new register ranges.
4881         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
4882         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
4883         (PACKING_FLAG_USED_P): Delete.
4884         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
4885         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
4886         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
4887         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
4888         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
4889         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
4890         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
4891         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
4892         (CPU_UNITS_QUERY): Define to 1.
4893         * config/frv/frv.c: Include gt-frv.h
4894         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
4895         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
4896         (frv_insn_group): New enumeration.
4897         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
4898         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
4899         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
4900         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
4901         gap left by REGSTATE_LIVE.
4902         (regstate_t): New typedef.
4903         (TARGET_MACHINE_DEPENDENT_REORG): Define.
4904         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
4905         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
4906         Initialize frv_unit_codes[] and frv_type_to_unit[].
4907         (frv_conditional_register_usage): Remove redundant fixing of
4908         accumulator registers.
4909         (frv_insn_packing_flag): Update specification.
4910         (frv_function_prologue): Don't set frv_insn_packing_flag here.
4911         Zero out frv_nops[].
4912         (frv_expand_epilogue): Remove comments about the no-longer-present
4913         SIBCALL_P argument.
4914         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
4915         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
4916         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
4917         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
4918         packing is disabled and if INSN can only issue to M1.
4919         (call_operand): Check TARGET_LONG_CALLS.
4920         (acc_operand, even_acc_operand, quad_acc_operand)
4921         (accg_operand): Simplify.  Don't accept pseudo registers.
4922         (output_move_single): Handle SPR<-zero moves.
4923         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
4924         (frv_registers_update, frv_registers_used_p): Delete.
4925         (frv_registers_set_p): Delete.
4926         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
4927         (frv_issues_to_branch_unit_p): New function.
4928         (frv_packet): New structure.
4929         (frv_cond_flags, frv_regstate_conflict_p): New functions.
4930         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
4931         (frv_registers_update_1, frv_registers_update): New functions.
4932         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
4933         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
4934         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
4935         (frv_sort_insn_group, frv_reorder_packet): New functions.
4936         (frv_pack_insns): Use frv_reorder_packet.
4937         (frv_packet_address): New variable.
4938         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
4939         (frv_register_nop, frv_reorg): New functions.
4940         (bdesc_1arg): Add __SCUTSS.
4941         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
4942         __SUBSS, __SLASS and __SCAN.
4943         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
4944         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
4945         (frv_init_builtins): Register the above builtins.
4946         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
4947         registers.  Turn the referenced accumulators into global registers.
4948         (frv_read_iacc_argument): New function.
4949         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
4950         (frv_split_iacc_move): New function.
4951         (frv_expand_builtin): Handle the new builtins.
4952         * config/frv/frv.md: Replace old schedulers with new order-independent
4953         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
4954         packing algorithm.
4955         (cpu): Add fr550, fr450 and fr405.
4956         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
4957         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
4958         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
4959         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
4960         (fnop, mnop): New patterns.
4961         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
4962         New constants.
4963         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
4964         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
4965         registers.
4966         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
4967         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
4968         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
4969         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
4970         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
4971         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
4972         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
4973         (frv_prefetch0, frv_prefetch): New patterns.
4974         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
4975         -mcpu=simple.  Add -mcpu=fr550.
4976         (MULTILIB_DIRNAMES): Update accordingly.
4977         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
4978         -mcpu=fr450.
4979         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
4980         -mlong-calls and -malign-labels options for FR-V.
4981
4982 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
4983
4984         PR c/8420
4985         * c-tree.h (struct c_declspecs): New.
4986         (struct c_declarator, struct c_type_name, struct c_parm): Update
4987         element types.
4988         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
4989         start_function, start_decl, build_c_parm,
4990         make_pointer_declarator): Update prototypes.
4991         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
4992         declspecs_add_scspec, declspecs_add_attrs): New.
4993         (split_specs_attrs): Remove.
4994         * c-parse.in (%union): Add dsptype.
4995         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
4996         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
4997         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
4998         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
4999         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
5000         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
5001         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
5002         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
5003         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
5004         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
5005         maybe_type_quals_attrs): Change to dsptype.
5006         (struct c_declspec_stack): New.
5007         (current_declspecs, declspec_stack): Change type.
5008         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
5009         structures.
5010         (extdefs): Likewise.
5011         (setspecs): Likewise.
5012         (fndef): Use current_declspecs for empty declspecs list.
5013         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
5014         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
5015         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
5016         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
5017         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
5018         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
5019         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
5020         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
5021         structures and helper functions.  Update comments.
5022         (typespec_nonattr): Correct comment.
5023         (maybe_type_quals_attrs, typename): Update to new structures.
5024         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
5025         shadow_tag, shadow_tag_warned, start_function, start_decl,
5026         build_c_parm, make_pointer_declarator,
5027         set_array_declarator_inner, groktypename): Update to new
5028         structures.
5029         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
5030         declspecs_add_scspec, declspecs_add_attrs): New.
5031         (split_specs_attrs): Remove.
5032         (shadow_tag_warned): Make warning for useless type names a
5033         pedwarn.  Give hard error for long, short, signed, unsigned or
5034         _Complex used with struct, union or enum in empty declaration.
5035         Make found_tag a bool.
5036         (grokdeclarator): Remove checks now done at parse time.
5037
5038 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
5039
5040         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
5041         c_declarator, struct c_type_name, struct c_parm): New.
5042         (build_array_declarator, set_array_declarator_inner,
5043         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
5044         start_function, start_decl, build_c_parm, build_attrs_declarator,
5045         build_function_declarator, make_pointer_declarator, c_cast_expr,
5046         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
5047         (build_id_declarator): New.
5048         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
5049         structures.
5050         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
5051         ARG_INFO_OTHERS): Remove.
5052         (build_id_declarator): New.
5053         (build_array_declarator, set_array_declarator_inner, groktypename,
5054         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
5055         grokfield, start_function, store_parm_decls_newstyle,
5056         store_parm_decls_oldstyle, store_parm_decls,
5057         build_c_parm, build_attrs_declarator, build_function_declarator,
5058         make_pointer_declarator, grokdeclarator): Update to new
5059         structures.
5060         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
5061         parmtype.
5062         (declarator, notype_declarator, after_type_declarator,
5063         parm_declarator, parm_declarator_starttypename,
5064         parm_declarator_nostarttypename, array_declarator, typename,
5065         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
5066         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
5067         parmlist_1, parmlist_2, parmlist_or_identifiers,
5068         parmlist_or_identifiers_1): Use these types.
5069         (primary, after_type_declarator, parm_declarator_starttypename,
5070         notype_declarator, component_decl, component_declarator,
5071         component_notype_declarator, typename, absdcl,
5072         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
5073         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
5074
5075 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
5076
5077         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
5078         in_typeof, record_maybe_used_decl, pop_maybe_used,
5079         c_expr_sizeof_expr, c_expr_sizeof_type): New.
5080         * c-decl.c (parser_obstack): New.
5081         (c_init_decl_processing): Initialize parser_obstack.
5082         (c_write_global_declarations_1): Check for used but undefined
5083         static functions.
5084         * c-parse.in (%union): Add otype.
5085         (save_obstack_position): New.
5086         (extdefs): Use it.
5087         (unary_expr): Update in_sizeof and in_alignof.  Use
5088         c_expr_sizeof_expr and c_expr_sizeof_type.
5089         (sizeof): Update in_sizeof.
5090         (alignof): Update in_alignof.
5091         (typeof): Update in_typeof.
5092         (typespec_nonreserved_nonattr): Call pop_maybe_used.
5093         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
5094         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
5095         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
5096         (build_external_ref): Set C_DECL_USED or call
5097         record_maybe_used_decl if appropriate.
5098         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
5099
5100 2004-09-08  Eric Christopher  <echristo@redhat.com>
5101
5102         * builtins.c: Fix prototype for fold_builtin_atan.
5103
5104 2004-09-08  Eric Christopher  <echristo@redhat.com>
5105
5106         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
5107         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
5108         fold_builtin_atan): New functions. Migrate function bodies...
5109         (fold_builtin_1): ... from here.
5110
5111 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
5112
5113         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
5114         save_size.
5115
5116 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
5117
5118         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
5119         * config/rs6000/power5.md (power5-lmul): Same.
5120
5121 2004-09-08  Richard Henderson  <rth@redhat.com>
5122
5123         PR rtl-opt/17186
5124         * function.c (expand_function_end): Have fall-off-the-end
5125         return path jump around return register setup.
5126
5127 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5128
5129         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
5130         (output_return): Do not test for the presence of the 'unimp' insn.
5131         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
5132         as predicates instead of custom ones.  Return raw strings when
5133         possible.
5134         (output_sibcall): Likewise.  Concatenate strings.
5135         (output_ubranch): Remove kludge for TurboSPARC.
5136         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
5137         (output_v9branch): Likewise.
5138         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
5139         <#>: Set sparc_indent_opcode if the delay slot is filled.
5140         <(>: Likewise.
5141         <)>: New operand to emit the displacement from the saved PC on return.
5142         <@>: Remove.
5143         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
5144         (ASM_OUTPUT_OPCODE): New macro.
5145         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
5146         * config/sparc/sparc.md (normal_branch, inverted_branch,
5147         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
5148         inverted_fpe_branch): Adjust call to output_cbranch.
5149         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
5150         call to output_v9branch.
5151         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
5152         (output_v9branch): Likewise.
5153
5154 2004-09-08  Devang Patel  <dpatel@apple.com>
5155
5156         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
5157         -segs_read_only_addr and -segs_read_write_addr.
5158         (WORD_SWITCH_TAKES_ARG): Same.
5159         (LINK_SPEC): Same.
5160         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
5161         -segs_read_write_addr.
5162
5163 2004-09-08  Richard Henderson  <rth@redhat.com>
5164
5165         * function.c (reference_callee_copied): New.
5166         (assign_parm_setup_reg): Use it.
5167         * calls.c (initialize_argument_information): Likewise.
5168         (emit_library_call_value_1): Likewise.
5169         * function.h (reference_callee_copied): Declare.
5170
5171         * target.h (struct gcc_target): Add callee_copies.
5172         * target-def.h (TARGET_CALLEE_COPIES): New.
5173         (TARGET_PASS_BY_REFERENCE): Update default.
5174         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5175         * targhooks.c (hook_callee_copies_named): New.
5176         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
5177         hook_pass_by_reference_false.
5178         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
5179         * targhooks.h: Update decls.
5180         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
5181         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5182         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
5183         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
5184         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5185         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
5186         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5187         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
5188         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5189         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
5190         (mips_callee_copies): New.
5191         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5192         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
5193         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5194         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
5195         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5196         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
5197         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5198         * config/sh/sh.c (sh_callee_copies): New.
5199         (TARGET_CALLEE_COPIES): New.
5200         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5201         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
5202         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
5203         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
5204         for FUNCTION_ARG_CALLEE_COPIES.
5205         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
5206
5207 2004-09-08  Devang Patel  <dpatel@apple.com>
5208
5209         * tree-if-conv.c (find_phi_replacement_condition): Return true
5210         edge block.
5211         (replace_phi_with_cond_modify_expr): Select conditional expr args
5212         based on true edge basic block.
5213
5214 2004-09-08  Jan Hubicka  <jh@suse.cz>
5215
5216         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
5217         variables being alias set.
5218
5219 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
5220
5221         * final.c (shorten_branches, final, get_insn_template,
5222         output_alternate_entry_point, final_scan_insn, alter_subreg,
5223         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
5224         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
5225         * fix-header.c (lookup_std_proto): Likewise.
5226         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
5227         verify_local_live_at_start, update_life_info, mark_reg,
5228         calculate_global_regs_live, allocate_reg_life_data,
5229         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
5230         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
5231         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
5232         * fold-const.c (force_fit_type, div_and_round_double,
5233         may_negate_without_overflow_p, int_const_binop, const_binop,
5234         size_binop, size_diffop, fold_convert_const, fold_convert,
5235         invert_tree_comparison, swap_tree_comparison,
5236         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
5237         range_binop, make_range, fold_cond_expr_with_comparison,
5238         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
5239         fold_abs_const, fold_not_const, fold_relational_const, round_up,
5240         round_down): Likewise.
5241         * function.c (find_function_data, assign_stack_temp_for_type,
5242         instantiate_virtual_regs_lossage, aggregate_value_p,
5243         assign_parm_find_entry_rtl, assign_parm_setup_block,
5244         expand_function_start, expand_function_end, keep_stack_depressed,
5245         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
5246
5247 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
5248
5249         * Makefile.in (tree-loop-linear.o): Added.
5250         (OBJS-common): Add tree-loop-linear.o
5251         * common.opt: New flag, ftree-loop-linear.
5252         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
5253         * tree-flow.h: Add prototype for linear_transform_loops.
5254         * tree-optimize.c: Add linear transform after vectorization.
5255         * tree-pass.h: Add struct pass_linear_transform.
5256         * tree-ssa-loop.c: Add pass_linear_transform.
5257         * tree-loop-linear.c: New file.
5258         * lambda-code.c: gcc_assertify.
5259         (gcc_loop_to_lambda_loop): Handle all exit tests.
5260         Handle case where we have (invariant >= induction var).
5261         (find_induction_var_from_exit_cond): Ditto.
5262
5263 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
5264
5265         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
5266         memory tag is call clobbered, so are its aliases.
5267         (group_aliases): When two memory tags being grouped, if one is
5268         call clobbered, so are the other and its aliases.
5269         (add_may_alias): Remove call-clobbering stuff.
5270         (replace_may_alias): Likewise.
5271         (merge_pointed_to_info): Merge pt_global_mem
5272
5273 2004-09-08  Jan Hubicka  <jh@suse.cz>
5274
5275         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
5276         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
5277         (cgraph_expand_function): Remove stale cgraph edges of currently
5278         compiled function; fix non-unit-at-a-time code copying function
5279         node for later reuse.
5280
5281 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
5282
5283         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
5284         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
5285         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
5286         (vec_gc_free, vec_heap_free): New.
5287         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
5288         (DEF_VEC_P): Add allocator argument. Adjust.
5289         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
5290         (DEF_VEC_O): Add allocator argument. Adjust.
5291         (VEC(free)): New.
5292
5293         * tree.h (tree): Define a GC'd vector.
5294         * lamba-code.c (lambda_loop): Likewise.
5295         * value-prof.h (histogram_value): Likewise.
5296
5297 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
5298
5299         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
5300         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
5301         gen_lowpart_common, gen_highpart, gen_highpart_mode,
5302         subreg_highpart_offset, operand_subword, operand_subword_force,
5303         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
5304         set_mem_alias_set, change_address_1, verify_rtx_sharing,
5305         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
5306         try_split, add_insn_after, add_insn_before, remove_insn,
5307         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
5308         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
5309         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
5310         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
5311         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
5312         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
5313         record_path_before_1, check_path_after_1, check_path_after): Likewise.
5314         * except.c (gen_eh_region, resolve_one_fixup_region,
5315         remove_unreachable_regions, convert_from_eh_region_ranges_1,
5316         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
5317         connect_post_landing_pads, sjlj_emit_function_exit,
5318         remove_exception_handler_label, remove_eh_handler,
5319         reachable_next_level, collect_one_action_chain,
5320         output_function_exception_table): Likewise.
5321         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
5322         optimize_save_area_alloca, allocate_dynamic_stack_space,
5323         probe_stack_range, hard_function_value): Likewise.
5324         * expmed.c (mode_for_extraction, store_bit_field,
5325         store_fixed_bit_field, extract_bit_field, expand_shift,
5326         expand_mult_const, expand_mult, choose_multiplier,
5327         expand_mult_highpart, expand_divmod, emit_store_flag,
5328         do_cmp_and_jump): Likewise.
5329         * expr.c (convert_move, convert_modes, move_by_pieces,
5330         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
5331         move_block_from_reg, gen_group_rtx, emit_group_load,
5332         emit_group_move, emit_group_store, use_reg, use_regs,
5333         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
5334         emit_move_insn, emit_move_insn_1, emit_push_insn,
5335         expand_assignment, store_expr, count_type_elements,
5336         store_constructor, store_field, safe_from_p, expand_var,
5337         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
5338
5339 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
5340
5341         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
5342         gcc_assert and gcc_unreachable.
5343         * ddg.c (create_ddg_dependence, add_deps_for_def,
5344         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
5345         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
5346         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
5347         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
5348         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
5349         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
5350         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
5351         dataflow_set_copy, hybrid_search, diagnostic.c,
5352         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
5353         * dojump.c (do_jump): Likewise.
5354         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
5355         compute_dom_fast_query, calculate_dominance_info,
5356         free_dominance_info, get_immediate_dominator,
5357         set_immediate_dominator, get_dominated_by,
5358         redirect_immediate_dominators, nearest_common_dominator,
5359         dominated_by_p, verify_dominators, recount_dominator,
5360         iterate_fix_dominators, add_to_dominance_info,
5361         delete_from_dominance_info): Likewise.
5362         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
5363         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
5364         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
5365         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
5366         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
5367         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
5368         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
5369         output_call_frame_info, output_loc_operands, build_cfa_loc,
5370         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
5371         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
5372         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
5373         splice_child_die, attr_checksum, same_dw_val_p,
5374         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
5375         unmark_dies, value_format, output_loc_list, output_die,
5376         output_pubnames, output_aranges, base_type_die, is_base_type,
5377         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
5378         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
5379         field_byte_offset, add_data_member_location_attribute,
5380         add_const_value_attribute, rtl_for_decl_location,
5381         add_location_or_const_value_attribute, add_byte_size_attribute,
5382         add_bit_offset_attribute, add_bit_size_attribute,
5383         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
5384         decl_start_label, gen_formal_parameter_die,
5385         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
5386         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
5387         force_decl_die, force_type_die, gen_decl_die,
5388         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
5389         dwarf2out_finish): Likewise.
5390
5391 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
5392
5393         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
5394         * builtins.c: Include tree-mudflap.h.
5395
5396 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
5397
5398         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
5399         force operand 0.0 into register in XFmode. Also do not force
5400         operand 0.0 into register if !TARGET_CMOVE.
5401         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
5402         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
5403         implement ftst x87 instruction.
5404         (*fp_jcc_7): New insn pattern. Change corresponding split
5405         pattern to handle "general_operand" instead of
5406         "nonimmediate_operand".
5407
5408 2004-09-08  Ben Elliston  <bje@au.ibm.com>
5409
5410         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
5411
5412 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
5413
5414         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
5415         generated from standard va_arg expansion.
5416         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
5417         marked nodes.
5418         (mf_varname_tree, mf_file_function_line_tree): Add some support
5419         for column numbers if compiled with USE_MAPPED_LOCATION.
5420
5421 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
5422
5423         * c-decl.c (groktypename_in_parm_context): Remove function.
5424         * c-tree.h (groktypename_in_parm_context): Remove prototype.
5425
5426 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
5427
5428         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
5429         * c-parse.in: Include c-common.h instead of objc-act.h.
5430         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
5431         myparms, myparm): Remove %type declarations.
5432         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
5433         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
5434         declarations.
5435         (objc_inherit_code, objc_public_flag): Remove.
5436         (typespec_nonreserved_nonattr): Call
5437         objc_get_protocol_qualified_type() instead of get_static_reference()
5438         and get_protocol_reference().
5439         (stmt_nocomp): Call grokparm() on @catch parameter.
5440         (objcdef): Move semantic action to objc_finish_implementation().
5441         (classdef): Move semantic action to objc_start_class_interface(),
5442         objc_continue_interface(), objc_finish_interface(),
5443         objc_start_class_implementation(), objc_continue_implementation(),
5444         objc_start_category_interface() and
5445         objc_start_category_implementation().
5446         (protocoldef): Move semantic actions to objc_start_protocol() and
5447         objc_finish_interface().
5448         (ivar_decl_list): Remove nonterminal.
5449         (visibility_spec): Move semantic actions to objc_set_visibility().
5450         (ivar_decls): Remove assignment to $$.
5451         (ivar_decl): Rephrase in terms of component_decl; call
5452         objc_add_instance_variable().
5453         (ivars, ivar_declarator): Remove nonterminals.
5454         (opt_semi): New nonterminal.
5455         (methodtype): Remove semantic actions.
5456         (methoddef): Move semantic actions to objc_set_method_type(),
5457         objc_start_method_definition() and objc_finish_method_definition().
5458         (methodproto): Move semantic actions to objc_set_method_type() and
5459         objc_add_method_declaration().
5460         (methoddecl): Use objc_typename instead of typename; move semantic
5461         actions to objc_build_method_signature().
5462         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
5463         (optparmlist): Express in terms of optparms and optellipsis.
5464         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
5465         nonterminals.
5466         (keyworddecl): Use objc_typename instead of typename.
5467         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
5468         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
5469
5470 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
5471
5472         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
5473         (MD_FALLBACK_FRAME_STATE_FOR): Update.
5474         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
5475         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
5476         (MD_FROB_UPDATE_CONTEXT): Remove default.
5477         (uw_update_context_1): Instead #ifdef invocation.
5478         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
5479         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
5480         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
5481         (MD_UNWIND_SUPPORT): Undefine this instead.
5482         * config/i386/gnu.h: Likewise.
5483         * config/alpha/linux-unwind.h: New file, macro converted to
5484         function, extracted from..
5485         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
5486         (MD_UNWIND_SUPPORT): Define.
5487         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
5488         * config/i386/linux-unwind.h, config/i386/linux.h,
5489         config/i386/linux64.h: Likewise.
5490         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
5491         MD_HANDLE_UNWABI too.
5492         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
5493         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
5494         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
5495         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
5496         * config/sparc/linux-unwind.h, config/sparc/linux.h,
5497         config/sparc/linux64.h: Likewise.
5498         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
5499         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
5500         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
5501         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
5502         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
5503
5504 2004-09-07  Jan Hubicka  <jh@suse.cz>
5505
5506         * cse.c (fold_rtx):  Avoid building of
5507         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
5508
5509         * tree-ssa-pre.c (grand_bitmap_obstack): New.
5510         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
5511         (init_pre): Initialize obstack.
5512         (fini_pre): Free obstack.
5513
5514 2004-09-07  David Daney  <ddaney@avtrex.com>
5515
5516         * config.gcc: Added support for --with-divide=[breaks|traps] for
5517         mips targets.
5518         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
5519         (TARGET_DIVIDE_TRAPS): New macro.
5520         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
5521         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
5522         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
5523         GENERATE_DIVIDE_TRAPS.
5524         (mips_output_division): Emit conditional trap if
5525         GENERATE_DIVIDE_TRAPS is set.
5526         * doc/install.texi: Document --with-divide.
5527         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
5528
5529 2004-09-07  Caroline Tice  <ctice@apple.com>
5530
5531         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
5532         EDGE_CROSSING, to flags test case.
5533
5534 2004-09-07  Jan Hubicka  <jh@suse.cz>
5535
5536         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
5537         class too.
5538
5539 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
5540
5541         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
5542         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
5543         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
5544         or gcc_unreachable.
5545         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
5546         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
5547         alloc_aux_for_edges, free_aux_for_edges): Likewise.
5548         * cfgcleanup.c (try_forward_edges,
5549         merge_blocks_move_predecessor_nojumps,
5550         merge_blocks_move_successor_nojumps): Likewise.
5551         * cfgexpand.c (expand_gimple_cond_expr,
5552         expand_gimple_tailcall): Likewise.
5553         * cfghooks.c (duplicate_block): Likewise.
5554         * cfglayout.c (record_effective_endpoints,
5555         insn_locators_initialize, change_scope, fixup_reorder_chain,
5556         verify_insn_chain, fixup_fallthru_exit_predecessor,
5557         duplicate_insn_chain, cfg_layout_finalize): Likewise.
5558         * cfgloopanal.c (check_irred): Likewise.
5559         * cfgloop.c (superloop_at_depth, flow_loops_free,
5560         flow_loop_entry_edges_find, flow_loops_find,
5561         flow_loop_outside_edge_p, get_loop_body,
5562         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
5563         get_loop_exit_edges, num_loop_branches, cancel_loop,
5564         verify_loop_structure): Likewise.
5565         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
5566         duplicate_loop_to_header_edge, create_preheader,
5567         create_loop_notes): Likewise.
5568         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
5569         edirect_branch_edge, force_nonfallthru_and_redirect,
5570         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
5571         commit_edge_insertions, commit_edge_insertions_watch_calls,
5572         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
5573         cfg_layout_redirect_edge_and_branch_force,
5574         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
5575         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
5576         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
5577         cgraph_varpool_node): Likewise.
5578         * cgraphunit.c (cgraph_finalize_function,
5579         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
5580         cgraph_expand_function, cgraph_remove_unreachable_nodes,
5581         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
5582         cgraph_mark_inline, cgraph_expand_all_functions,
5583         cgraph_build_static_cdtor): Likewise.
5584         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
5585         simplify_logical, distribute_notes, insn_cuid): Likewise.
5586         * conflict.c (conflict_graph_add, print_conflict): Likewise.
5587         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
5588         coverage_checksum_string): Likewise.
5589         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
5590         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
5591         cse_cc_succs, cse_condition_code_reg): Likewise.
5592         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
5593         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
5594         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
5595         cselib_record_set): Likewise.
5596
5597 2004-09-07  Jan Hubicka  <jh@suse.cz>
5598
5599         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
5600
5601 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
5602
5603         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
5604         fold_convert.
5605         (fold_builtin_strpbrk): Likewise.
5606         * expr.c (array_ref_low_bound): Likewise.
5607         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
5608         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
5609         * tree-sra.c (generate_element_zero): Likewise.
5610         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
5611         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
5612         add_old_iv_candidates, add_iv_candidates): Likewise.
5613         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
5614
5615 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
5616
5617         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
5618         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
5619         c_expand_expr, boolean_increment, nonnull_check_p,
5620         check_function_arguments_recurse, fold_offsetof_1): Likewise.
5621         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
5622         builtin_define_type_max): Likewise.
5623         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
5624         implicit_decl_warning, builtin_function, build_compound_literal,
5625         complete_array_type, grokdeclarator, get_parm_info,
5626         start_function, store_parm_decls_oldstyle,
5627         c_write_global_declarations): Likewise.
5628         * c-format.c (get_constant, decode_format_attr,
5629         maybe_read_dollar_number, get_flag_spec, check_format_arg,
5630         check_format_types, format_type_warning,
5631         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
5632         init_dynamic_diag_info, handle_format_attribute): Likewise.
5633         * c-gimplify.c (push_context, pop_context, finish_bc_block):
5634         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
5635         * c-objc-common.c (c_tree_printer): Likewise.
5636         * c-pch.c (pch_init): Likewise.
5637         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
5638         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
5639         * c-typeck.c (c_incomplete_type_error, composite_type,
5640         common_pointer_type, common_type, same_translation_unit_p,
5641         tagged_types_tu_compatible_p, finish_init, pop_init_level,
5642         set_designator, set_nonincremental_init_from_string,
5643         process_init_element, c_finish_if_stmt): Likewise.
5644         * caller-save.c (init_caller_save, save_call_clobbered_regs,
5645         insert_restore, insert_save, insert_one_insn): Likewise.
5646         * calls.c (emit_call_1, compute_argument_block_size,
5647         precompute_arguments, expand_call, emit_library_call_value_1,
5648         store_one_arg): Likewise.
5649
5650 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
5651
5652         * configure.ac (enable-checking): Add release option. Reorganize
5653         to avoid repetition.
5654         * configure: Rebuilt.
5655         * doc/install.texi (enable-checking): Amend documentation.
5656
5657 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
5658
5659         PR bootstrap/17313
5660         * Makefile.in (specs.ready): Depend on cc1$(exeext).
5661
5662 2004-09-06  James E Wilson  <wilson@specifixinc.com>
5663
5664         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
5665         movdf_hardfloat_32bit): Split fG into two alternatives.
5666         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
5667
5668         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
5669
5670 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
5671
5672         * final.c (output_in_slot): Delete.
5673         (final_scan_insn): Revert 2004-09-03 change.
5674         (output_asm_insn): Likewise.
5675         * config/sparc/sparc.c (output_return): Likewise.
5676         (output_sibcall): Likewise.
5677
5678 2004-09-06  Jan Hubicka  <jh@suse.cz>
5679
5680         * loop.c (loop_dump_aux): Do not print RTL when not available.
5681         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
5682         frontend specific type nodes.
5683         (produce_memory_decl_rtl): Break out from ...
5684         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
5685         (get_computation_at): Avoid random tree sharing.
5686         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
5687
5688 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
5689
5690         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
5691         unnecessary commands.
5692
5693 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
5694
5695         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
5696         (bitmap.o): Likewise.
5697
5698 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
5699
5700         Unify the management of RTL and tree-level dump files.
5701
5702         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
5703         Don't print function name to the dump file, the pass manager
5704         would do this for us. Add code from the top of
5705         rest_of_compilation, up to the initial RTL dump.
5706         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
5707         close the DFI_sibling dump file.
5708         (rest_of_compilation): Don't do that here.  Remove code up to the
5709         initial RTL dump.
5710         (init_optimization_passes): Remove.
5711         (pass_rest_of_compilation): Change pass name to NULL.
5712         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
5713         Do not call init_optimization_passes.
5714         * toplev.h (init_optimization_passes): Remove.
5715
5716         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
5717         finish_graph_dump_file): Remove SUFFIX parameter.
5718         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
5719         finish_graph_dump_file): Likewise.
5720
5721         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
5722         * cfgexpand.c (pass_expand): Adjust.
5723         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
5724         * passes.c (pass_rest_of_compilation): Adjust.
5725         * predict.c (pass_profile): Adjust.
5726         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
5727         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
5728         pass_split_crit_edges, pass_warn_function_return): Adjust.
5729         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
5730         * tree-dfa.c (pass_referenced_vars): Adjust.
5731         * tree-eh.c (pass_lower_eh): Adjust.
5732         * tree-if-conv.c (pass_build_ssa): Adjust.
5733         * tree-into-ssa.c (pass_build_ssa): Adjust.
5734         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
5735         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
5736         * tree-nrv.c (pass_nrv): Adjust.
5737         * tree-optimize.c (pass_gimple, pass_all_optimizations,
5738         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
5739         pass_init_datastructures): Adjust.
5740         * tree-outof-ssa.c (pass_del_ssa): Adjust.
5741         * tree-profile.c (pass_tree_profile): Adjust.
5742         * tree-sra.c (pass_sra): Adjust.
5743         * tree-ssa-alias.c (pass_may_alias): Adjust.
5744         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
5745         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
5746         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
5747         * tree-ssa-dom.c (pass_dominator): Adjust.
5748         * tree-ssa-dse.c (pass_dse): Adjust.
5749         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
5750         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
5751         * tree-ssa-loop-ch.c (pass_ch): Adjust.
5752         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
5753         pass_loop_done, pass_complete_unroll, pass_iv_canon,
5754         pass_iv_optimize, pass_vectorize): Adjust.
5755         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
5756         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
5757         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
5758         pass_late_warn_uninnitialized): Adjust.
5759         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
5760
5761         * Makefile.in (tree-dump.o): Add new dependencies.
5762         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
5763         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
5764         Likewise.
5765         * toplev.c (dump_file_name): New.
5766         * tree-dump.c (dump_enable_all): Add LETTER parameter.
5767         (struct dump_file_info): Add NUM and LETTER fields.
5768         (dump_files): Adjust and add RTL dump files.
5769         (dump_register): Add NUM and LETTER fields.
5770         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
5771         (dump_begin): Use get_dump_file_name.
5772         (dump_switch_p_1): Adjust call to dump_enable_all.
5773         * tree-dump.h (dump_register): Adjust prototype.
5774         * tree-optimize.c (register_one_dump_file): Take dump file index.
5775         Support flags for RTL dumps.
5776         (register_dump_files): Fill in NUM field of struct dump_file_info.
5777         Track properties both when the gate is executed and when it is not.
5778         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
5779         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
5780         dumps of RTL.
5781         * tree-pass.h (dump_file_name): New.
5782         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
5783         New.
5784
5785         * Makefile.in (passes.o): Add new dependencies.
5786         * passes.c (struct dump_file_info, enum dump_file_index,
5787         dump_file_tbl, init_optimization_passes): Remove.
5788         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
5789         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
5790         dump_enabled_p.
5791         (finish_optimization_passes): Update finish_graph_dump_file loop.
5792         (enable_rtl_dump_file): Remove.
5793         * tree-dump.c (dump_files): Adjust and add RTL dump files.
5794         (enable_rtl_dump_file): Add here.
5795         * tree.h (enum tree_dump_index): Add RTL dump file indices.
5796         * doc/invoke.texi (Debugging options): Document new RTL debugging
5797         options.  Update.
5798
5799 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
5800
5801         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
5802         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
5803         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
5804         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5805         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
5806         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
5807         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
5808         vec.h: Fix comment formatting.
5809
5810 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
5811
5812         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
5813         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
5814         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
5815         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
5816         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
5817         tree-ssa-loop-niter.c, tree-ssa-operands.c,
5818         tree-ssa-operands.h, tree-ssa-propagate.c,
5819         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
5820         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
5821
5822 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
5823
5824         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
5825         vectorizer is enabled.
5826
5827 2004-09-05  Andreas Jaeger  <aj@suse.de>
5828
5829         * tree-if-conv.c: Spell check comments and clean up whitespace.
5830
5831 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5832
5833         * tree-ssa-loop-ivopts.c: New file.
5834         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
5835         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
5836         target_pres_cost, target_spill_cost): Declare.
5837         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
5838         spill_cost): Renamed to ...
5839         (target_avail_regs, target_res_regs, target_small_cost,
5840         target_pres_cost, target_spill_cost): ... and exported.
5841         (init_set_costs, global_cost_for_size): Work with renamed variables.
5842         * common.opt (flag_ivopts): New flag.
5843         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
5844         REF_ORIGINAL.
5845         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
5846         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
5847         generating SSA form.
5848         (force_gimple_operand): New function.
5849         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
5850         * tree-cfg.c (stmt_bsi): New function.
5851         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
5852         PARAM_IV_MAX_CONSIDERED_USES): New.
5853         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
5854         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
5855         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
5856         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
5857         * tree-nested.c (build_addr): Export.
5858         * tree-optimize.c (init_tree_optimization_passes): Add
5859         pass_iv_optimize.
5860         * tree-pass.h (pass_iv_optimize): Declare.
5861         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
5862         IMAGPART_EXPR.
5863         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
5864         as a phi node argument.
5865         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
5866         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
5867         functions.
5868         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
5869         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
5870         pass_iv_optimize): New pass.
5871         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
5872         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
5873         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
5874         * tree.h (REF_ORIGINAL): New macro.
5875         (build_int_cst_type, unsigned_type_for, zero_p,
5876         cst_and_fits_in_hwi, build_addr): Declare.
5877         * doc/invoke.texi (-fivopts): Document.
5878         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
5879         PARAM_IV_MAX_CONSIDERED_USES): Document.
5880         * doc/passes.texi: Document induction variable optimizations pass.
5881
5882 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5883
5884         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
5885         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
5886         * c-common.c (c_common_attribute_table): Accept parameters to
5887         sentinel attribute.
5888         (check_function_sentinel, handle_sentinel_attribute): Likewise.
5889         * doc/extend.texi: Update accordingly.
5890
5891 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5892
5893         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
5894         New.
5895         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
5896         attribute.
5897         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
5898         New functions.
5899         (c_common_attribute_table): Add `sentinel' attribute.
5900         (check_function_arguments): Handle `sentinel' attribute.
5901         * doc/extend.texi: Document `sentinel' attribute.
5902
5903 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
5904
5905         * configure: Regenerated.
5906
5907 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5908
5909         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
5910
5911         * tree.c (save_expr): No longer TREE_READONLY.
5912
5913 2004-09-04  Jan Hubicka  <jh@suse.cz>
5914
5915         * passes.c (rest_of_clean_state):  Fix merge conflict made during
5916         commiting the patch.
5917
5918 2004-09-04  Jan Hubicka  <jh@suse.cz>
5919
5920         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
5921
5922 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
5923
5924         * doc/md.texi (shift patterns): New anchor.  Add reference to
5925         TARGET_SHIFT_TRUNCATION_MASK.
5926         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
5927         * target.h (shift_truncation_mask): New target hook.
5928         * targhook.h (default_shift_truncation_mask): Declare.
5929         * targhook.c (default_shift_truncation_mask): Define.
5930         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
5931         (TARGET_INITIALIZER): Include it.
5932         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
5933         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
5934         reject all out-of-range values.  Fix sign-extension code for modes
5935         whose width is smaller than HOST_BITS_PER_WIDE_INT.
5936         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
5937         (expand_superword_shift, expand_subword_shift): Likewise.
5938         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
5939         (expand_binop): Use them to implement double-word shifts.
5940         * config/arm/arm.c (arm_shift_truncation_mask): New function.
5941         (TARGET_SHIFT_TRUNCATION_MASK): Define.
5942
5943 2004-09-04  Jan Hubicka  <jh@suse.cz>
5944
5945         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
5946         (mix): New macro copied from hashtab.c
5947         (iterative_hash_hashval_t, iterative_hash_pointer,
5948         iterative_hash_host_wide_int): New functions based on hashtab.c
5949         implementation.
5950
5951 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
5952
5953         * config/mips/mips.md (mask): New mode attribute.
5954         (zero_extendsidi2): Add memory alternative.
5955         (*zero_extendsidi2_mem): Delete.
5956         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
5957         memory_operand in the TARGET_MIPS16 check.
5958         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
5959         Redefine using :GPR and :SHORT.
5960         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
5961
5962 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
5963
5964         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
5965         using rint_optab.
5966         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
5967         expand_builtin_mathfn.
5968         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
5969         btrunc?f patterns for btrunc_optab. Implement rint_optab using
5970         rint?f patterns.
5971         * optabs.c (init_optabs): Initialize rint_optab.
5972         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
5973         Add new OTI_rint.
5974         (btrunc_optab): Rename macro from trunc_optab.
5975         (rint_optab): Define corresponding macro.
5976
5977         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
5978         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
5979
5980         * config/i386/i386-protos.h (emit_i387_cw_initialization):
5981         Change prototype. Add new int parameter.
5982         * config/i386/i386.c (emit_i387_cw_initialization):
5983         Handle new rounding modes.
5984
5985         * config/i386/i386.h (enum fp_cw_mode): Delete.
5986         (MODE_NEEDED): Handle new rounding modes.
5987         (EMIT_MODE_SET): Change condition to handle new rounding modes.
5988
5989         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
5990         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
5991         represent different rounding modes of frndint insn.
5992         (type): Add frndint type.
5993         (i387, length, memory): Handle this type.
5994         (i387_cw): New attribute definition.
5995         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
5996         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
5997         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
5998         Add "i387_cw" attribute defined to "trunc".
5999         (x86_fnstcw_1): Remove comment.
6000         (*frndintxf2): Rename insn definition to frndintxf2. Move
6001         insn definition near rint?f2 expanders.
6002         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
6003         rintf and rintl built-ins as inline x87 intrinsics.
6004         (frndintxf2_floor): New pattern to implement floor rounding
6005         mode with frndint x87 instruction.
6006         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
6007         floorf and floorl built-ins as inline x87 intrinsics.
6008         (frndintxf2_ceil): New pattern to implement ceil rounding
6009         mode with frndint x87 instruction.
6010         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
6011         ceilf and ceill built-ins as inline x87 intrinsics.
6012         (frndintxf2_trunc): New pattern to implement trunc rounding
6013         mode with frndint x87 instruction.
6014         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
6015         truncf and truncl built-ins as inline x87 intrinsics.
6016         (frndintxf2_mask_pm): New pattern to implement rounding
6017         mode with exceptions with frndint x87 instruction.
6018         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
6019         implement nearbyint, nearbyintf and nearbyintl built-ins as
6020         inline x87 intrinsics.
6021
6022 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
6023
6024         * config/mips/mips.md (SHORT): New mode macro.
6025         (size): New mode attribute.
6026         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
6027         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
6028         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
6029         !ISA_HAS_SEB_SEH.
6030         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
6031         *extend[qh]isi2_hw patterns and extending them to di.
6032         (extendqihi2): Implement as define_insn_and_split that produces
6033         extendqisi2 after reload.
6034
6035 2004-09-03  Devang Patel  <dpatel@apple.com>
6036
6037         * Makefile.in (OBJS-common): Add tree-if-conv.o
6038         (tree-if-conv.o): New rule.
6039         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
6040         (get_loop_body_in_bfs_order): New.
6041         * cfgloop.h (get_loop_body_in_bfs_order): New.
6042         * tree-flow.h (enum move_pos): Move here from ..
6043         * tree-ssa-loop-im.c (enum move_pos): here.
6044         (movement_possibility): Make externally visible.
6045         * tree-optimize.c (init_tree_optimization_passes): New entry for
6046         if conversion pass.
6047         * tree-pass.h (pass_if_conversion): New.
6048         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
6049         * tree-if-conv.c: New file.
6050         * doc/passes.texi: Document tree if-conversion pass.
6051         * doc/tree-ssa.texi: Same.
6052
6053 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
6054
6055         PR target/14925:
6056         Makefile.in (LIB2ADDEHSTATIC): New.
6057         (LIB2ADDEHSHARED): New.
6058         (LIBUNWIND): New.
6059         (LIBUNWINDDEP): New.
6060         (SHLIBUNWIND_LINK): New.
6061         (SHLIBUNWIND_INSTALL): New.
6062         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
6063         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
6064         (clean): Remove libunwind*
6065         (stage1-start): Remove and copy stage1/libunwind*.
6066         (stage2-start): Remove and copy stage2/libunwind*.
6067         (stage3-start): Remove and copy stage3/libunwind*.
6068         (stage4-start): Remove and copy stage4/libunwind*.
6069         (stageprofile-start): Remove and copy stageprofile/libunwind*.
6070         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
6071
6072         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
6073         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
6074         tmake_file if --with-system-libunwind isn't used.
6075
6076         * config/ia64/t-glibc-libunwind: New file.
6077         * config/t-libunwind-elf: Likewise.
6078         * unwind-compat.c: Likewise.
6079         * unwind-compat.h: Likewise.
6080         * unwind-dw2-fde-compat.c: Likewise.
6081
6082         * config/ia64/t-glibc (LIB2ADDEH): Updated.
6083         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
6084
6085         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
6086         aliases if needed.
6087         * unwind-dw2-fde-glibc.c: Likewise.
6088         * unwind-dw2.c: Likewise.
6089
6090         * config/t-libunwind (LIB2ADDEH): Updated.
6091         (LIB2ADDEHSTATIC): New.
6092         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
6093         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
6094
6095         * configure.ac: Change --enable-libunwind-exceptions to
6096         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
6097         * configure: Regenerated.
6098         * config.in: Updated.
6099
6100         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
6101         above and mention --with-system-libunwind.
6102         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
6103         removed in gcc 3.4.3 and later.
6104
6105         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
6106         USE_LIBUNWIND_EXCEPTIONS is defined.
6107
6108         * mklibgcc.in: Support libunwind.
6109
6110 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
6111
6112         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
6113         m_NOCONA.
6114
6115 2004-09-03  Richard Henderson  <rth@redhat.com>
6116
6117         PR middle-end/9997
6118         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
6119         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
6120         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
6121         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
6122         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
6123         resize_stack_vars_conflict, add_stack_var_conflict,
6124         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
6125         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
6126         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
6127         expand_one_static_var, expand_one_hard_reg_var,
6128         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
6129         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
6130         (expand_used_vars): Rewrite.
6131         * Makefile.in (cfgexpand.o): Update dependencies.
6132
6133 2004-09-04  Jan Hubicka  <jh@suse.cz>
6134
6135         * cfg.c (free_edge): Use ggc_free.
6136         (expunge_block): Use ggc_free.
6137         * passes.c (rest_of_clean_state): Free after compilation.
6138         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
6139         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
6140
6141 2004-09-03  James E Wilson  <wilson@specifixinc.com>
6142
6143         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
6144         DECL_EXTERNAL check.
6145
6146 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6147
6148         * final.c (output_in_slot): New global variable.
6149         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
6150         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
6151         'output_in_slot' before invoking output_asm_insn.
6152         (output_asm_insn): Add a space after the tab if 'output_in_slot'
6153         is set.
6154         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
6155         final_scan_insn.
6156         (output_sibcall): Likewise.
6157
6158 2004-09-03  Jan Hubicka  <jh@suse.cz>
6159
6160         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
6161         * tree-ssanames (init_ssanames): Likewise.
6162
6163 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
6164
6165         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
6166         objc_declare_protocols, objc_start_protocol,
6167         objc_start_class_interface, objc_start_category_interface,
6168         objc_continue_interface, objc_finish_interface,
6169         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
6170         objc_start_class_implementation, objc_start_category_implementation,
6171         objc_continue_implementation, objc_finish_implementation,
6172         objc_add_method_declaration, objc_start_method_definition,
6173         objc_finish_method_definition, objc_build_keyword_decl,
6174         objc_build_method_signature, objc_build_encode_expr,
6175         objc_build_protocol_expr, objc_build_selector_expr,
6176         objc_build_message_expr, objc_build_string_object,
6177         objc_get_class_reference, objc_get_protocol_qualified_type,
6178         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
6179
6180 2004-09-03  James E Wilson  <wilson@specifixinc.com>
6181
6182         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
6183
6184         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
6185         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
6186         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
6187         (mips_recip1_<fmt>): Use frdiv1 type.
6188         (mips_recip2_<fmt>): Use frdiv2 type.
6189         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
6190         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
6191         and frsqrt1.
6192         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
6193
6194 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
6195
6196         * reload.c (find_reloads): Swap operand_loc pointers for
6197         find_dummy_reload if we have swapped two operands.
6198
6199 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
6200
6201         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
6202         to get the tablejump-insn before the jump-table label.
6203
6204 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
6205
6206         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
6207         objc_declare_protocols, objc_build_message_expr,
6208         objc_finish_message_expr, objc_build_selector_expr,
6209         objc_build_protocol_expr, objc_build_encode_expr,
6210         objc_build_string_object, objc_get_protocol_qualified_type,
6211         objc_get_class_reference, objc_get_class_ivars,
6212         objc_start_class_interface, objc_start_category_interface,
6213         objc_start_protocol, objc_continue_interface, objc_finish_interface,
6214         objc_start_class_implementation, objc_start_category_implementation,
6215         objc_continue_implementation, objc_finish_implementation,
6216         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
6217         objc_add_method_declaration, objc_start_method_definition,
6218         objc_finish_method_definition, objc_add_instance_variable,
6219         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
6220         objc_finish_try_stmt, objc_begin_catch_clause,
6221         objc_finish_catch_clause, objc_build_finally_clause,
6222         objc_build_synchronized, objc_static_init_needed_p,
6223         objc_generate_static_init_call): New prototypes.
6224
6225 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
6226
6227         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
6228         is only one reg.
6229         (ia64_function_value): Ditto.
6230
6231 2004-09-03  Jan Beulich  <jbeulich@novell.com>
6232
6233         * config.gcc: Resurrect NetWare as a target. Handle special case of
6234         Novell linker to be used (specified through --with-ld=) and threading
6235         model of either Posix (default) or NKS.
6236         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
6237         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
6238         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
6239         * config/i386/netware.c, config/i386/netware.h: New.
6240         * config/i386/nwld.c, config/i386/nwld.h: New.
6241         * config/i386/netware-crt0.c: New.
6242         * config/i386/netware-libgcc.c: New.
6243         * config/i386/netware-libgcc.def: New.
6244         * config/i386/netware-libgcc.exp: New.
6245         * config/i386/t-netware, config/i386/t-nwld: New.
6246         * gthr-nks.h: New.
6247         * doc/install.texi: Document NKS threading model.
6248
6249 2004-09-03  Jan Beulich  <jbeulich@novell.com>
6250
6251         PR c/7054
6252         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
6253         * tree.h (initial_max_fld_align): Declare
6254         * stor-layout.c (initial_max_fld_align): Define and initialize.
6255         (maximum_field_alignment): Initialize to the same value.
6256         * common.opt: Add -fpack-struct= variant of switch.
6257         * opts.c: Handle -fpack-struct= variant of switch.
6258         * c-pragma.c: Change #pragma pack() handling so that it becomes
6259         compatible to other compilers: accept individual 'push' argument,
6260         make final pop restore (command line) default, correct interaction
6261         of push/pop and sole specification of a new alignment (so that the
6262         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
6263         to #pragma pack(push, <n>).
6264         * doc/extend.texi: New node "Structure-Packing Pragmas" under
6265         "Pragmas", describing #pragma pack.
6266         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
6267         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
6268         Document new TARGET_DEFAULT_PACK_STRUCT.
6269
6270 2004-09-03  Devang Patel  <dpatel@apple.com>
6271
6272         * dwarf2out.c (gen_field_die). Equate decl number to die.
6273
6274 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
6275
6276         PR target/15832
6277         * global.c (modify_reg_pav): New function.
6278         (make_accurate_live_analysis): Call the new function.  Move pavin
6279         modification by earlyclobber set into the new function.
6280
6281 2004-09-03  Andreas Schwab  <schwab@suse.de>
6282
6283         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
6284         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
6285         extended.
6286
6287 2004-09-02  Jan Beulich  <jbeulich@novell.com>
6288
6289         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
6290         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
6291         not unwind code specific ones.
6292         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
6293         Remove unwind code specific dependencies.
6294         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
6295         Remove gbl-ctors.h.
6296         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
6297         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
6298         * tsystem.h: Declare memcpy and memset when inhibit_libc.
6299
6300 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
6301
6302         * combine.c (try_combine): Delay modifying of insns which cannot
6303         be easily undone.
6304
6305 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
6306
6307         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
6308         tree-loop-im.
6309         * gcc/tree-ssa-loop.c: Ditto
6310         * gcc/tree-ssa-loop-ivcanon.c: Ditto
6311         * gcc/doc/invoke.texi: Ditto.
6312
6313 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
6314
6315         * c-decl.c (store_parm_decls_newstyle): Make static.
6316         (store_parm_decls_from): New function.
6317         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
6318         (store_parm_decls_from): New prototype.
6319
6320 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
6321
6322         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
6323         HImode with STRICT_ALIGNMENT.
6324
6325 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
6326
6327         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
6328         (TARGET_OS_CPP_BUILTINS): Likewise.
6329         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
6330         TARGET_BPABI_CPP_BUILTINS.
6331
6332 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
6333
6334         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
6335
6336 2004-09-02  Eric Christopher  <echristo@redhat.com>
6337
6338         * builtins.c (expand_builtin_cabs): Delete.
6339         (expand_builtin): If unable to fold the values do a normal
6340         library call for builtin_cab*.
6341         (fold_builtin_cabs): Depend on optimize and optimize_size.
6342         * optabs.c (expand_cmplxdiv_straight): Delete.
6343         (expand_cmplxdiv_wide): Ditto.
6344         (expand_vector_binop): Ditto.
6345         (expand_vector_unop): Ditto.
6346         (expand_complex_abs): Delete.
6347         (expand_binop): Remove calls to above functions.
6348         Remove open coding of complex arithmetic.
6349         (expand_unop): Ditto.
6350         * optabs.h: Remove prototypes.
6351
6352 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
6353
6354         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
6355         * c-tree.h (store_parm_decls_newstyle): New prototype.
6356
6357 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
6358
6359         * config/rs6000/rs6000.c (expand_block_clear): Use vector
6360         instructions if available.
6361         (expand_block_move): Likewise.
6362
6363 2004-09-03  Jan Hubicka  <jh@suse.cz>
6364
6365         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
6366
6367 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
6368
6369         * config/arm/symbian.h (LIB_SPEC): Define to empty.
6370         * config/arm/t-symbian (SHLIB_LC): Likewise.
6371
6372 2004-09-02  Paul Brook  <paul@codesourcery.com>
6373
6374         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
6375
6376 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
6377
6378         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
6379         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
6380         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
6381         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
6382         (mips_issue_rate): Remove unreachable abort.
6383         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
6384         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
6385         (mips_block_move_straight, print_operand_address, mips_file_start)
6386         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
6387         (mips_output_conditional_branch, mips_expand_builtin_direct)
6388         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
6389         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
6390         with gcc_assert.
6391
6392 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
6393
6394         * config/mips/mips.md (*lea_high64): Change split condition to
6395         flow2_completed.  Add a peephole2 to generate a more parallel version.
6396
6397 2004-09-02  Jan Hubicka  <jh@suse.cz>
6398
6399         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
6400         GGC.
6401
6402         * ggc-page.c: include tree-flow.h.
6403         (extra_order_size_table): Add stmt_ann_d.
6404         (STAT_LABEL): Rename from ....
6405         (LABEL): ... this one.
6406         * Makefile.in (ggc-page.o): Add dependency.
6407
6408         * ggc-common.c (ggc_force_collect): New global variable.
6409         (loc_description): Add fields "freed", "collected"
6410         (ptr_hash): New static hash
6411         (ptr_hash_entry): New structure.
6412         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
6413         (ggc_record_overhead): Take ptr argument, record it
6414         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
6415         (cmp_statistics): Imrove sorting.
6416         (dump_ggc_loc_statistics): Output newly collected statistics
6417         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
6418         (ggc_free): Call ggc_free_overhead.
6419         (ggc_collect): Force collection when asked to be forced.
6420         (ggc_collect): Call ggc_prune_overhead_list.
6421         * ggc.h (ggc_force_collect): Declare
6422         (ggc_record_overhead): Update prototype.
6423         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
6424
6425 2004-09-02  James E Wilson  <wilson@specifixinc.com>
6426
6427         * common.opt (ftrapping-math): Default to on.
6428
6429 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
6430
6431         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
6432
6433 2004-09-02  Denis Chertykov  <denisc@overta.ru>
6434
6435         PR target/16884
6436         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
6437         match_scratch.
6438         (*movmemqi_insn): Likewise.
6439         (*movmemhi): Likewise.
6440         (clrmemhi): Likewise.
6441         (*clrmemqi): Likewise.
6442         (*clrmemhi): Likewise.
6443
6444 2004-09-02  Paul Brook  <paul@codesourcery.com>
6445
6446         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
6447         default_use_cxa_atexit=yes.
6448
6449 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
6450
6451         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
6452         (struct kernel_old_ucontext): Delete.
6453         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
6454         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
6455         when IN_LIGGCC2.
6456
6457 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
6458
6459         * toplev.c (process_options): Fix typo.
6460
6461 2004-09-01  Richard Henderson  <rth@redhat.com>
6462
6463         PR middle-end/17258
6464         * calls.c (initialize_argument_information): Tighten pass-through
6465         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
6466         Use build_fold_addr_expr.
6467         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
6468         that assumes ADDR_EXPR allocates stack space.
6469         * fold-const.c (build_fold_addr_expr_with_type): Look through
6470         WITH_SIZE_EXPR.
6471
6472 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
6473
6474         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
6475         * ggc.h (ggc_alloc_rtx): Delete.
6476
6477 2004-09-01  Roger Sayle  <roger@eyesopen.com>
6478
6479         * expmed.c (enum alg_code): Remove long unused enumeration values.
6480         (struct mult_cost): New structure to hold the "score" of a synthetic
6481         multiply sequence, including both a rtx_cost and a latency field.
6482         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
6483         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
6484         (struct algorithm): Change type of cost field to be mult_cost.
6485         (synth_mult): Change type of cost_limit argument to be a
6486         pointer to a mult_cost.  Update all cost comparisons to use the
6487         new mult_cost infrastructure.  For alg_add_factor and
6488         alg_sub_factor operations, latency is lower than the rtx_cost.
6489         (choose_mult_variant):  Update calls to synth_mult.  Perform
6490         cost comparisons using the new mult_cost infrastructure.
6491         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
6492         to optain the total rtx_cost of a synth_mult "algorithm".
6493
6494 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
6495
6496         * config/rs6000/power4.md: Increase store latency to 12.
6497         * config/rs6000/power5.md: Same.
6498
6499 2004-09-01  James E Wilson  <wilson@specifixinc.com>
6500
6501         PR target/14064
6502         * config/avr/avr.c (avr_unique_section): Delete prototype and
6503         definition.
6504         (TARGET_ASM_UNIQUE_SECTION): Delete.
6505
6506 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
6507
6508         * c-parse.in (primary): Call objc_build_message_expr(),
6509         objc_build_selector_expr(), objc_build_protocol_expr(),
6510         objc_build_encode_expr() and objc_build_string_object() instead of
6511         build_message_expr(), build_selector_expr(), build_protocol_expr(),
6512         build_encode_expr() and build_objc_string_object(), respectively.
6513         (component_decl_list2): Call objc_get_class_ivars() instead of
6514         get_class_ivars_from_name().
6515         (keyworddecl): Call objc_build_keyword_decl() instead of
6516         build_keyword_decl().
6517         (receiver): Call objc_get_class_reference() instead of
6518         get_class_reference().
6519         (reswords): Add blank line before @@ifobjc section, for clarity.
6520
6521 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
6522
6523         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
6524         to Altivec vetors.
6525
6526 2004-09-01  Wu Yongwei  <adah@sh163.net>
6527             Danny Smith  <dannysmith@users.sourceforge.net>
6528
6529         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
6530         not Windows 'DWORD'.
6531         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
6532         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
6533         (__gthr_win32_recursive_mutex_init_function): Add prototype for
6534         __GTHREAD_HIDE_WIN32API case..
6535         (__gthr_win32_recursive_mutex_lock): Likewise.
6536         (__gthr_win32_recursive_mutex_trylock): Likewise.
6537         (__gthr_win32_recursive_mutex_unlock): Likewise.
6538         (__gthread_recursive_mutex_init_function); Add definition for
6539         __GTHREAD_HIDE_WIN32API case.
6540         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
6541         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
6542         call to InterlockedDecrement.
6543
6544 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6545
6546         * tree-tailcall.c (find_tail_calls): Also fail is statement has
6547         volatile operands.
6548
6549         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
6550
6551         * doc/c-tree.texi: Document new operands for ARRAY_REF and
6552         COMPONENT_REF.
6553
6554 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6555
6556         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
6557         * common.opt (fspeculative-prefetching): New.
6558         * flags.h (flag_speculative_prefetching_set): Declare.
6559         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
6560         values.
6561         * opts.c (flag_sepculative_prefetching_set): New variable.
6562         (common_handle_option): Handle -fspeculative-prefetching.
6563         * passes.c (rest_of_compilation): Ditto.
6564         * profile.c (instrument_values, compute_value_histograms, branch_prob):
6565         Use vectors instead of arrays.
6566         * toplev.c (process_options): Handle -fspeculative-prefetching.
6567         * rtl-profile.c: Include ggc.h.
6568         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
6569         rtl_gen_one_value_profiler_no_edge_manipulation,
6570         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
6571         argument changed.
6572         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
6573         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
6574         argument changed.
6575         * value-prof.c: Include ggc.h.
6576         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
6577         macros.
6578         (insn_prefetch_values_to_profile, find_mem_reference_1,
6579         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
6580         speculative_prefetching_transform): New.
6581         (value_profile_transformations): Call speculative_prefetching_transform.
6582         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
6583         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
6584         tree_find_values_to_profile, find_values to profile): Use vectors
6585         instead of arrays.
6586         (free_profiled_values): Removed.
6587         * value-prof.h (struct histogram_value): Renamed to
6588         struct histogram_value_t.
6589         (histogram_value, histogram_values): New types.
6590         (find_values_to_profile): Declaration changed.
6591         (free_profiled_values): Removed.
6592         (struct profile_hooks): Type of argument of the hooks changed to
6593         histogram_value.
6594         * doc/invoke.texi (-fspeculative-prefetching): Document.
6595
6596 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6597
6598         PR rtl-optimization/16408
6599         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
6600
6601 2004-09-01  Richard Henderson  <rth@redhat.com>
6602
6603         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
6604         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
6605
6606 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
6607
6608         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
6609
6610 2004-09-01  Mike Stump  <mrs@apple.com>
6611
6612         * config/darwin.c (machopic_symbol_defined_p): In addition to
6613         being SYMBOL_REF_LOCAL_P, a symbol must also be
6614         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
6615         defined in this output file, or translation unit in the case
6616         of IMA not being used.
6617         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
6618         never need .indirect_symbol when indirecting.
6619
6620 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
6621
6622         * Makefile.in (bb-reorder.o): Add several dependencies.
6623
6624 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
6625
6626         * fold-const.c (operand_equal_p): Require equal sign also for
6627         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
6628
6629 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
6630
6631         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
6632         for use in configargs.h.  Put the cname in a separate variable.  Use
6633         that to set target_cpu_default2.
6634
6635 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
6636             Nick Clifton  <nickc@redhat.com>
6637
6638         * config/sh/sh.md ("length"): Increase branch length when
6639         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
6640         constant, 2 byte for aligning the constant.
6641
6642 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
6643
6644         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
6645         CPU.
6646         (arm7tdmi-s): New CPU name.
6647         * arm/arm.c (ARM_CORE): Update for new format.
6648         * arm/arm.h (ARM_CORE): Likewise.
6649         * arm/gentune.sh: Update for extra field.
6650         * config.gcc: Likewise.
6651         * arm/arm-tune.md: Regenerate.
6652         * doc/invoke.texi: Document the real processor names for ARM cpus.
6653
6654 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
6655
6656         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
6657         (floatdidf): New functions.
6658         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
6659         (floatdisf): New functions.
6660         * t-arm-elf: Use them.
6661
6662 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
6663
6664         * c-common.h (lookup_interface): Remove prototype.
6665         (is_class_name): Rename to objc_is_class_name.
6666         (lookup_objc_ivar): Rename to objc_lookup_ivar.
6667         (get_current_scope): Rename to objc_get_current_scope.
6668         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
6669         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
6670         (yylexname): Call objc_is_class_name() instead of is_class_name().
6671         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
6672         instead of lookup_objc_ivar().
6673         * stub-objc.c (lookup_interface): Remove stub.
6674         (is_class_name): Rename to objc_is_class_name.
6675         (lookup_objc_ivar): Rename to objc_lookup_ivar.
6676
6677 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
6678
6679         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
6680         * config/arm/lib1funcs.asm: Do not include supplemental .S files
6681         when compiling for Symbian.
6682         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
6683         (TARGET_OS_CPP_BUILTINS): Likewise.
6684         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
6685
6686 2004-08-31  Stan Shebs  <shebs@apple.com>
6687
6688         * toplev.c (process_options): Ensure debug_hooks is initialized.
6689
6690 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
6691
6692         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
6693         * target.h (cxx): Add export_class_data.
6694         * config/arm/arm.c (arm_cxx_export_class_data): New function.
6695         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
6696         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
6697
6698 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6699
6700         * config/sh/sh.c (output_branch): Check the insn length possibly
6701         in the delayed slot.
6702
6703 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6704
6705         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
6706         blank after ')'.
6707         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
6708
6709         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
6710         (c_sizeof_of_alignof_type): Likewise.
6711         * expr.c (array_ref_element_size): Likewise.
6712         (highest_pow2_factor_for_target): Likewise.
6713         * gimplify.c (canonicalize_addr_expr): Likewise.
6714         (gimplify_compound_lval): Likewise.
6715         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
6716         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
6717         * varasm.c (assemble_variable): Likewise.
6718         (output_constant_def_contents): Alignments are unsigned.
6719
6720 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6721             Jeff Law  <law@redhat.com>
6722
6723         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
6724         gets modified.
6725
6726 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
6727
6728         * hooks.c (hook_bool_void_true): New function.
6729         * hooks.h (hook_bool_void_true): Declare.
6730         * target-def.h (TARGET_CXX): Add
6731         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
6732         * target.h (struct cxx): Add key_method_may_be_inline.
6733         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
6734         function.
6735         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
6736         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
6737         __THUMB_INTERWORK.
6738
6739 2004-08-31  Denis Chertykov  <denisc@overta.ru>
6740
6741         PR target/15417
6742         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
6743         frame pointer register only in Pmode while reload in progress.
6744
6745 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
6746
6747         PR target/15334
6748         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
6749         because it breaks the 32-bit shift patterns that rely on a match_dup.
6750
6751 2004-08-31  Matt Austern  <austern@apple.com>
6752
6753         * config/darwin.c (darwin_make_decl_one_only): Allocate section
6754         names once per compilation, instead of once per symbol.
6755
6756 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
6757
6758         * Makefile.in (build_subdir): New substitution.
6759         (fixinc.sh): Simplify heavily since fixincludes is already built.
6760         (stmp-fixinc): Depend on specs.ready.
6761         (install-mkheaders): Use new location of fixincludes.
6762         (clean): Do not descend into fixinc.
6763         (FORBUILD): Replace with ../$(build_subdir).
6764         * configure.ac (build_subdir): Substitute.
6765         (FORBUILD): Do not set.
6766         (all_outputs): Remove fixinc/Makefile.
6767         (default commands): Do not create links in fixinc.
6768         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
6769         the fixincludes configuration steps and substituting
6770         @FIXINCL@ in fixinc.in.
6771         * fixinc.in: New, from fixinc/fixincl.sh.
6772
6773         * fixinc/*: Removed.
6774
6775 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
6776
6777         * attribs.c (strip_attrs): Remove.
6778         (split_specs_attrs): Move ...
6779         * c-decl.c: ... to here.
6780         * tree.h (split_specs_attrs, strip_attrs): Remove.
6781         * c-tree.h (split_specs_attrs): Declare.
6782
6783 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
6784
6785         * read-rtl.c: Disable RTL checking.
6786         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
6787
6788 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
6789
6790         * config/mips/mips.md (fcond): New code macro and attribute.
6791         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
6792         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
6793         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
6794
6795 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
6796
6797         Revert:
6798         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
6799         PR rtl-optimization/16590
6800         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
6801
6802 2004-08-30  Andrew Pinski  <apinski@apple.com>
6803
6804         * hard-reg-set.h:
6805         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
6806         * ChangeLog: Fix previous ChangeLog entry.
6807
6808         PR rtl-opt/13987
6809         * config.host (use_long_long_for_widest_fast_int): New, default is
6810         off.
6811         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
6812         * configure.ac: If use_long_long_for_widest_fast_int, then
6813         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
6814         * configure: Regenerate.
6815         * config.in: Regenerate.
6816         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
6817         New: widest integer type supported efficiently in hardware for the
6818         host.
6819         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
6820         HOST_BITS_PER_WIDEST_FAST_INT.
6821         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
6822         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
6823         HOST_WIDEST_FAST_INT
6824         instead of HOST_WIDE_INT.
6825         (HARD_REG_SET_LONGS): Likewise.
6826         (UHOST_BITS_PER_WIDE_INT): Likewise.
6827         Change the checks for the fast cases to be based on
6828         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
6829
6830 2004-08-30  Steven Bosscher  <stevenb@suse.de>
6831
6832         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
6833         not the pointers.
6834
6835 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
6836
6837         PR 12738
6838         PR 17205
6839         Radar 3460526
6840         Radar 3775729
6841         * c-decl.c (grokdeclarator): Produce error for 'static' on local
6842         function declaration.
6843
6844 2004-08-30  Richard Henderson  <rth@redhat.com>
6845
6846         * expr.c (array_ref_element_size): Force aligned_size back to
6847         sizetype.
6848         (component_ref_field_offset): Similarly for aligned_offset.
6849         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
6850         low-bound, element-size, field-offset fields rather than
6851         computed values.
6852
6853 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
6854
6855         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
6856         redundant code.
6857
6858 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
6859
6860         * c-tree.h (struct language_function): Add arg_info element.
6861         * c-decl.c (current_function_arg_info): New.
6862         (grokdeclarator, store_parm_decls): Use it instead of
6863         DECL_ARGUMENTS.
6864         (c_push_function_context, c_pop_function_context): Save and
6865         restore it.
6866
6867 2004-08-30  Richard Henderson  <rth@redhat.com>
6868
6869         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
6870         COMPONENT_REF to pointer arithmetic.
6871         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
6872         constant "c" as a valid constant initializer.  Allow narrowing of
6873         differences against the same base object, for any base object.
6874
6875 2004-08-30  Richard Henderson  <rth@redhat.com>
6876
6877         * expr.c (expand_expr_addr_expr): New.
6878         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
6879
6880 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
6881
6882         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
6883         (mips_fp_condition): New enum.
6884         (mips_fp_conditions): New array.
6885         (print_fcc_operand): Delete.
6886         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
6887         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
6888         (builtin_description): Add "cond" field.
6889         (DIRECT_BUILTIN): Initialize it.
6890         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
6891         into INSN and CODE.  Initialize the "cond" field.
6892         (CMP_BUILTINS): Update accordingly.
6893         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
6894         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
6895         mips_fp_condition as argument.  Make it the final operand of the
6896         comparison instruction.
6897         (mips_expand_builtin): Update accordingly.
6898         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
6899         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
6900         the gaps.
6901         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
6902         Don't use the 'Q' operand prefix; just print the operand normally.
6903         (mips_cabs_*, mips_c_*): Delete, replacing with...
6904         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
6905         patterns.  Split the 4s versions into 2 ps patterns after reload.
6906
6907 2004-08-30  Richard Henderson  <rth@redhat.com>
6908
6909         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
6910         assuming an ADDR_EXPR is non-null.
6911
6912 2004-08-30  Jason Merrill  <jason@redhat.com>
6913
6914         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
6915
6916 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
6917
6918         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
6919         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
6920         gcc_assert and gcc_unreachable instead of abort.
6921         * alloc-pool.c (abort, fancy_abort): Remove.
6922         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
6923         gcc_assert or gcc_unreachable.
6924         * attribs.c (init_attributes, decl_attributes): Likewise.
6925         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
6926         mark_bb_for_unlikely_executed_section,
6927         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
6928         fix_crossing_unconditional_branches):  Likewise.
6929         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
6930         bitmap_operation):  Likewise.
6931         * bt-load.c (insn_sets_btr_p, augment_live_range,
6932         move_btr_def):  Likewise.
6933         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
6934         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
6935         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
6936         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
6937         expand_builtin_memcmp, expand_builtin_args_info,
6938         std_gimplify_va_arg_expr, expand_builtin_unop,
6939         expand_builtin_fputs, expand_builtin_profile_func,
6940         expand_builtin_fork_or_exec, fold_builtin_bitop,
6941         fold_builtin_classify, fold_builtin_fputs): Likewise.
6942
6943 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
6944
6945         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
6946         * gcov.c (abort): Remove undef.
6947
6948         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
6949         (struct tree_binfo): Remove primary field.
6950
6951 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
6952
6953         * fixinc/Makefile.in (machname.h): Remove.
6954         (fixincl.x): Do not pass $@ to genfixes.
6955         * fixinc/genfixes: Remove code to produce machname.h.
6956         * fixinc/fixincl.sh: Move it here instead.
6957         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
6958         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
6959         return a bool indicating whether pz_mn_name_pat is NULL.
6960         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
6961         Declare extern C variables for the ENV_TABLE.
6962         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
6963         instead use the result of mn_get_regexps.
6964         * fixinc/fixtests.c: Likewise.
6965
6966 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
6967
6968         * configure.ac: Do not run fixincludes after stage1 during
6969         toplevel bootstrap.
6970         * configure: Regenerate.
6971
6972 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
6973
6974         * sched-deps.c (get_condition): Partially revert previous, by never
6975         trying to extract the condition from a condjump.
6976
6977 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
6978
6979         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
6980         (handle_visibility_attribute, c_determine_visibility): Likewise.
6981         * c-common.h (my_friendly_assert): Remove.
6982
6983 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
6984
6985         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
6986         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
6987         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
6988         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
6989         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
6990
6991 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
6992
6993         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
6994         in COMPONENT_REF nodes.
6995
6996 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6997
6998         PR c++/15378
6999         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
7000         global_dc->warning_as_error_requested.
7001         * diagnostic.c (diagnostic_initialize): Tidy.
7002         * diagnostic.h (diagnostic_context::x_data): Remove
7003         (diagnostic_context::issue_warnings_are_errors_message): Rename
7004         from warnings_are_errors_message.
7005         (diagnostic_context::warning_as_error_requested): New.
7006
7007 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
7008
7009         * sched-deps.c (get_condition): Fix breakage in previous patch.
7010
7011 2004-08-30  Paul Brook  <paul@codesourcery.com>
7012
7013         * doc/install.texi: Fix broken mpfr link.
7014
7015 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
7016
7017         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
7018         other FreeBSD platforms.
7019
7020 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
7021
7022         * arm.h (REVERSE_CONDITION): Define.
7023         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
7024
7025 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
7026
7027         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
7028         just the codes, call reversed_comparison_code ().
7029         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
7030         (not_reg_cond): Use reversed_comparison_code.
7031         (and_reg_cond): Likewise.
7032         * ifcvt.c (cond_exec_process_if_block): Likewise.
7033         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
7034
7035 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
7036
7037         * sched-deps.c (get_condition): Rewrite using jump support functions.
7038         Use reversed_comparison_code.
7039         (conditions_mutex_p): Use reversed_comparison_code.
7040
7041 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7042
7043         * config/mips/mips.c (override_options): Disable hot/cold partitioning
7044         for MIPS16.
7045
7046 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7047
7048         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
7049         (mips_function_type): Move to mips.c.
7050         * config/mips/mips.c (mips_builtin_type): New enum.
7051         (builtin_description): Replace code and ftype with builtin_type
7052         and function_type.
7053         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
7054         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
7055         (CODE_FOR_mips_abs_ps): Define.
7056         (mips_bdesc): Use new macros.
7057         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
7058         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
7059         (mips_expand_builtin_direct): New function.
7060         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
7061         builtin.  Replace boolean parameter with builtin_type.
7062         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
7063         (mips_expand_4s_compare_builtin): Delete, replacing with...
7064         (mips_expand_builtin_compare): ...this new function.
7065
7066 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
7067
7068         PR rtl-optimization/16590
7069         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
7070
7071 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
7072
7073         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
7074         * tree-ssa-propagate.c: Fix documentation.
7075
7076 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7077
7078         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
7079         (mov[sd]fcc): Likewise.
7080
7081 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7082
7083         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
7084
7085 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7086
7087         * config/mips/mips.md (divide_condition): New mode attribute.
7088         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
7089         (sqrt[sd]f3): Redefine using SCALARF.
7090         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
7091         patterns.
7092
7093 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7094
7095         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
7096         (loadx, storex, fmt, UNITMODE): New mode attributes.
7097         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
7098         (mul[sd]f3): Redefine using :SCALARF.
7099         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
7100         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
7101         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
7102         Check TARGET_FUSED_MADD for V2SF too.
7103         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
7104         were already named.
7105         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
7106         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
7107
7108 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7109
7110         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
7111         V2SF_type_node if it will be needed.
7112
7113 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7114
7115         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
7116         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
7117         (mips_prepare_builtin_target): New function.
7118         (mips_expand_builtin): Use them.  Update calls to subroutines.
7119         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
7120         cmp_choice with a boolean argument to select between movt and movf.
7121         Take the comparison's icode as an argument, not the function's fcode.
7122         (mips_expand_compare_builtin): New function.  Rename existing function
7123         to mips_expand_scalar_compare_builtin.
7124         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
7125         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
7126         comparison's icode as an argument, not the builtin's fcode.
7127
7128 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7129
7130         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
7131         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
7132         registers are false and -1 if all registers are true.
7133         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
7134         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
7135         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
7136         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
7137         (bc1any2t, bc1any2f): Likewise CCV2.
7138         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
7139
7140 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
7141
7142         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
7143         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
7144         UNSPEC rather than an IF_THEN_ELSE.
7145         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
7146         mips_cond_move_tf_ps by name.
7147
7148 2004-08-29  Chao-ying Fu  <fu@mips.com>
7149             James E Wilson  <wilson@specifixinc.com>
7150
7151         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
7152         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
7153         * config/mips/mips-ps-3d.md: New file.
7154         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
7155         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
7156         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
7157         (mips_output_move): Emit "mov.ps" for V2SFmode.
7158         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
7159         MODE_VECTOR_FLOAT.
7160         (override_options): Check if TARGET_MIPS3D and there was an explicit
7161         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
7162         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
7163         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
7164         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
7165         and allow CCV2 and CCV4 to occupy two and four CC registers.
7166         (print_fcc_operand): New function.
7167         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
7168         %Z to call print_fcc_operand.
7169         (mips_function_value): Handle MODE_VECTOR_FLOAT.
7170         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
7171         (mips_vector_mode_supported_p): New function.
7172         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
7173         (builtin_description): New struct.
7174         (mips_bdesc): New array of struct builtin_description.
7175         (mips_expand_builtin, mips_init_builtins,
7176         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
7177         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
7178         functions.
7179         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
7180         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
7181         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
7182         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
7183         "-mips3d", and "-mno-mips3d".
7184         (ASM_SPEC): Map -mips3d to -mips3d in gas.
7185         (EXTRA_CONSTRAINT_Y): New macro.
7186         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
7187         multi-letter constraint 'Y'.
7188         (CONSTRAINT_LEN): New macro.
7189         (enum mips_builtins): New for MIPS builtin functions.
7190         (enum mips_function_type): New for the types of MIPS builtin functions.
7191         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
7192         * config/mips/mips.md: New constants for paired single and MIPS-3D
7193         instructions.  Include the new mips-ps-3d.md file.
7194         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
7195         movv2sf_hardfloat_64bit): New named patterns.
7196         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
7197         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
7198         sdxc1_v2sf_di): New unnamed patterns.
7199         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
7200         const_vector support.
7201         (const_0_or_1_operand): New predicate.
7202         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
7203
7204 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
7205
7206         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
7207         (tree-ssa-propagate.o): New rule.
7208         (GTFILES): Add tree-ssa-propagate.c.
7209         * tree-flow.h (struct stmt_ann_d): Remove field
7210         in_ccp_worklist.
7211         * tree-ssa-propagate.c: New file.
7212         * tree-ssa-propagate.h: New file.
7213         * tree-ssa-ccp.c: Re-write to use the routines from
7214         tree-ssa-propagate.c.
7215
7216 2004-08-28  Andrew Pinski  <apinski@apple.com>
7217
7218         * tree-ssa-loop.c: Remove extra include of basic-block.h.
7219
7220 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
7221
7222         * c-common.h: Update comments about ObjC/ObjC++ entry points.
7223         (objc_is_reserved_word): New prototype.
7224         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
7225         separate section; these are call-backs.
7226         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
7227         ObjC/ObjC++ "@" keywords.
7228         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
7229         prototypes; they already live in c-common.h.
7230         * stub-objc.c: Update copyright notice.
7231         (objc_is_reserved_word): New stub.
7232
7233 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
7234
7235         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
7236         even when not checking.
7237
7238 2004-08-27  Jason Merrill  <jason@redhat.com>
7239
7240         PR c++/13684
7241         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
7242         (gimple_push_cleanup): Add eh_only parm.
7243         (gimplify_target_expr): Pass it.
7244         * c.opt (-fno-threadsafe-statics): New option.
7245         * c-opts.c (c_common_handle_option): Handle it.
7246         * c-common.h (flag_threadsafe_statics): Declare it.
7247         * c-common.c (flag_threadsafe_statics): Record it.
7248         * doc/invoke.texi: Document it.
7249         * tsystem.h (_GNU_SOURCE): Define.
7250         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
7251         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
7252         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
7253         (__gthread_recursive_mutex_init_function): New fn.
7254         (__gthread_recursive_mutex_lock): New fn.
7255         (__gthread_recursive_mutex_trylock): New fn.
7256         (__gthread_recursive_mutex_unlock): New fn.
7257         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
7258         * gthr-win32.h, gthr-vxworks.h: Likewise.
7259         * gthr.h: Document.
7260
7261 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
7262
7263         * config/rs6000/rs6000.c (rs6000_override_options): Increase
7264         maximum skip to 15.  Set function alignment, jump alignment, and
7265         loop alignment to 16 for processors that form dispatch groups.
7266         (rs6000_rtx_costs): outer_code is used.
7267
7268 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
7269
7270         * stor-layout.c (sizetype_set): Remove.
7271         (set_sizetype): Don't test or set it.
7272
7273         * tree.h (size_int_type): Remove.
7274         * fold-const.c: Do not #include gt-fold-const.h.
7275         (size_htab_hash, size_htab_eq): Remove.
7276         (size_int_kind): Use build_int_cst.
7277         (new_const, size_htab): Remove.
7278         (size_int_type): Remove.
7279         (round_up): Use build_int_cst.
7280         (round_down): Likewise. Remove spurious constant build.
7281
7282 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
7283
7284         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
7285         Add is_release variable, use it for --enable-werror and
7286         --enable-checking defaults.
7287         * system.h (gcc_assert, gcc_unreachable): New.
7288         * doc/install.texi (--enable-checking): Update.
7289         * configure, config.in: Rebuilt.
7290
7291 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
7292
7293         * rtl.h (read_rtx): Change prototype.
7294         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
7295         line number.  Return true on success.
7296         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
7297         callers accordingly.
7298
7299 2004-08-26  Richard Henderson  <rth@redhat.com>
7300
7301         * c-typeck.c (build_offsetof): Remove.
7302         * c-tree.h (build_offsetof): Remove.
7303         * c-common.c (fold_offsetof_1, fold_offsetof): New.
7304         * c-common.h (fold_offsetof): Declare.
7305         * c-parse.in (offsetof_base): New.
7306         (offsetof_member_designator): Use it.  Build references, not just
7307         a tree list.
7308         (primary): Use fold_offsetof, not build_offsetof.
7309
7310 2004-08-26  Richard Henderson  <rth@redhat.com>
7311
7312         * tree.c (staticp): Return the static object.
7313         * tree.h (staticp): Update decl.
7314         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
7315         * langhooks.c (lhd_staticp): Return NULL_TREE.
7316         * langhooks-def.h (lhd_staticp): Update decl.
7317         * c-common.c (c_staticp): Return the static object.
7318         * c-common.h (c_staticp): Update decl.
7319
7320 2004-08-26  Richard Henderson  <rth@redhat.com>
7321
7322         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
7323         modes.
7324
7325 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
7326
7327         PR c/13801
7328         * c-decl.c (struct c_binding): Add type and inner_comp fields.
7329         (bind): Set type and inner_comp fields.
7330         (pop_scope): Restore type of decl to the correct type from an
7331         outer scope.  Give error when popping file scope for incomplete
7332         arrays completed incompatibly with default initialization in an
7333         inner scope.
7334         (diagnose_mismatched_decls): Handle externs with initializers at
7335         block scope.
7336         (pushdecl): Set type of external declaration at block scope based
7337         only on the visible declarations.  Save type when changing the
7338         type of a declaration.  Merge an external declaration at block
7339         scope with a visible static declaration at file scope.
7340         (implicitly_declare): Give recycled old declaration the new type
7341         except for incompatible declarations of built-in functions, saving
7342         the old type.
7343
7344 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
7345
7346         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
7347
7348 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
7349
7350         * tree-alias-common.c (gate_pta): New function.
7351         (pass_build_pta): Use it.
7352         (pass_del_pta): Use it.
7353         (delete_alias_vars): Don't check flag_tree_points_to.
7354
7355 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
7356
7357         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
7358         TFmode as additional register mode cloberred by call.
7359
7360 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
7361
7362         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
7363         parallel pattern for library call returning DImode in
7364         mixed mode.
7365
7366 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
7367
7368         * config/rs6000/rs6000.c (function_arg): Generate parallel
7369         pattern for more split args.
7370
7371 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
7372
7373         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
7374         either gen_movdi_di_update or gen_movdi_si_update depending on
7375         target mode.
7376         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
7377         to generate two versions.
7378
7379 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
7380
7381         * Makefile.in (lambda-code.o): New.
7382         (lambda-trans.o): Ditto.
7383         (TREE_DATA_REF_H): Ditto.
7384         (LAMBDA_H): Ditto.
7385         (lambda-mat.o): Use LAMBDA_H.
7386         (tree-data-ref.o): Ditto.
7387         * lambda-code.c: New file.  Lambda code generation algorithm.
7388         * lambda-trans.c: Ditto. Lambda transformation matrix support.
7389         * lambda.h: Add lambda loop structures.
7390         Add lambda loopnest structures.
7391         Add lambda body vector structure.
7392         Add lambda linear expression structures.
7393         Add prototypes for functions in new files.
7394         * lambda-mat.c: Include tree.h
7395
7396 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
7397             Sebastian Pop  <pop@cri.ensmp.fr>
7398
7399         * tree-data-ref.h: Include lambda.h
7400         (free_dependence_relation): Declared here.
7401         (free_dependence_relations): Ditto.
7402         (free_data_refs): Ditto.
7403         * tree-data-ref.c (free_dependence_relation): New function.
7404         (free_dependence_relations): Ditto.
7405         (free_data_refs): Ditot.
7406         (analyze_all_data_dependences): Free datarefs and dependence_relations.
7407         (build_classic_dist_vector): Store in the dependence_relations the
7408         information. Each arc in the dependence_relations graph is labelled
7409         with the distance and direction vectors.
7410         (build_classic_dir_vector): Ditto.
7411         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
7412         Now computes again the whole dependence graph including read-read
7413         relations.
7414         (compute_data_dependences_for_loop): Now dependence_relations contains
7415         all the data, and thus it doesn't need to initialize the classic_dir
7416         and classic_dist vectors.
7417         (analyze_all_data_dependences): Adjusted for using the new interface of
7418         compute_data_dependences_for_loop.  Remove the statistics dump.
7419
7420 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
7421
7422         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
7423         (xtensa_expand_block_move): Update comment.
7424         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
7425
7426 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
7427
7428         PR target/13506
7429         * toplev.c (crash_signal): If we crashed while emitting
7430         a user asm, then die more gracefully.
7431
7432 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
7433
7434         PR target/17119.
7435         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
7436         checking for a valid constant, regardless of sign.
7437
7438 2004-08-25  Richard Henderson  <rth@redhat.com>
7439
7440         PR target/16974
7441         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
7442         if the constant satisfies add_operand.
7443
7444 2004-08-25  Richard Henderson  <rth@redhat.com>
7445
7446         PR debug/10695
7447         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
7448         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
7449         unwind info for >16-bit frames.
7450
7451 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
7452
7453         PR target/17171
7454         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
7455
7456 2004-08-25  Richard Henderson  <rth@redhat.com>
7457
7458         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
7459         (TARGET_CANNOT_FORCE_CONST_MEM): New.
7460
7461 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
7462
7463         * doc/tree-ssa.texi: Document new operand iterator.
7464
7465 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
7466
7467         PR target/16480
7468         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
7469         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
7470         as PLUS base regs.
7471
7472 2005-08-28  Paul Brook  <paul@codesourcery.com>
7473
7474         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
7475         -mfpu=vfp -march=armv5t
7476         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
7477
7478 2004-08-25  Richard Henderson  <rth@redhat.com>
7479
7480         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
7481         * target.h (struct gcc_target): Add scalar_mode_supported_p.
7482         * targhooks.c (default_scalar_mode_supported_p): New.
7483         * targhooks.h (default_scalar_mode_supported_p): Declare.
7484         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
7485
7486         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
7487         before attempting to create types.  Tidy.
7488         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
7489
7490         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
7491         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
7492
7493 2004-08-25  Richard Henderson  <rth@redhat.com>
7494
7495         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
7496         set REAL_MODE_FORMAT for TFmode.
7497
7498 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
7499
7500         * c-decl.c (grokparm): New function.
7501         * c-tree.h (grokparm): New prototype.
7502
7503 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
7504
7505         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
7506         iterator controlling structure.
7507         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
7508         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
7509         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
7510         iterator flags.
7511         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
7512         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
7513         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
7514         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
7515         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
7516         Empty operand pointers.
7517         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
7518         (op_iter_next_use): New.  Return next use_operand_p.
7519         (op_iter_next_def): New.  Return next def_operand_p.
7520         (op_iter_next_tree): New.  Return next operands as a tree.
7521         (op_iter_init): New.  Initialize an iterator structure.
7522         (op_iter_init_use): New.  Initialize structure and get the first use.
7523         (op_iter_init_def): New.  Initialize structure and get the first def.
7524         (op_iter_init_tree): New.  Initialize structure and get the first tree.
7525         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
7526         (op_iter_init_maydef): New.  Initialize structure and get the first
7527         V_MAY_DEF operands.
7528         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
7529         * tree-dfa.c (compute_immediate_uses_for_stmt,
7530         redirect_immediate_uses): Use new operand iterator.
7531         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
7532         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
7533         operands instead of using *_disappeared_p routines.
7534         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
7535         ssa_rewrite_stmt): Use new operand iterator.
7536         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
7537         rewrite_trees): Use new operand iterator.
7538         * tree-pretty-print.c (dump_vops): Use new operand iterator.
7539         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
7540         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
7541         dump_points_to_info): Use new operand iterator.
7542         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
7543         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
7544         operand iterator.
7545         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
7546         propagate_necessity): Use new operand iterator.
7547         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
7548         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
7549         a parameter instead of a stmt_ann_t.
7550         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
7551         build_tree_conflict_graph): Use new operand iterator.
7552         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
7553         rewrite_mem_refs): Use new operand iterator.
7554         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
7555         check_loop_closed_ssa_use): Use new operand iterator.
7556         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
7557         * tree-ssanames.c (release_defs): Use new operand iterator.
7558         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
7559
7560 2004-08-25  Adam Nemet  <anemet@lnxw.com>
7561
7562         * tlink.c (initial_cwd): New variable.
7563         (tlink_init): Initialize it.
7564         (recompile_files): Use tlink_execute() instead of system().  Don't
7565         duplicate verbose output of collect_execute.  Restore initial_cwd.
7566         Update comment before the function.
7567
7568 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
7569
7570         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
7571         accept) a cast from one Objective-C pointer type to another.
7572
7573 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
7574
7575         * doc/install.texi: Document that libstdc++-v3 requires
7576         now automake 1.9.1.
7577
7578 2004-08-25  Caroline Tice  <ctice@apple.com>
7579
7580         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
7581         to comments at start of function.
7582         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
7583         comment.
7584         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
7585         merge_blocks_move_predecessor_nojumps,
7586         merge_blocks_move_successor_nojumps, merge_blocks_move,
7587         try_crossjump_to_edge, try_crossjump_bb): Likewise.
7588         * cfglayout.c (fixup_reorder_chain): Likewise.
7589         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
7590         cfg_layout_can_merge_blocks_p):  Likewise.
7591         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
7592         * passes.c (rest_of_compilation): Update comments for calling
7593         optimization that partitions hot/cold basic blocks.
7594         * doc/invoke.texi:  Update documentation of
7595         freorder-blocks-and-partition flag.
7596
7597 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
7598
7599         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
7600         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
7601
7602 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
7603
7604         * config/mips/mips.md (any_shift): New code macro.
7605         (optab, insn): New code attributes.
7606         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
7607         Use the standard rather than internal patterns for the MIPS16
7608         double-shift optimization.
7609         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
7610         Redefine using :GPR and any_shift.
7611         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
7612         to cover all three shifts.
7613         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
7614         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
7615         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
7616
7617 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
7618
7619         * gimplify.c (lookup_tmp_var): Separate temporaries when not
7620         optimizing.
7621
7622 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7623
7624         PR libstdc++/17005 (fix for HP-UX 11.11)
7625         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
7626         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
7627         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
7628         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
7629         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
7630         (LINK_SPEC): Handle march=1.0 option.
7631         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
7632         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
7633         (SUBTARGET_OPTIONS): New define.
7634         (LINK_SPEC): Handle march=1.0 option.
7635         (STARTFILE_SPEC): New define.
7636         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
7637         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
7638         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
7639         (SUBTARGET_OPTIONS): New define.
7640         (LINK_SPEC): Handle march=1.0 option.
7641         (STARTFILE_SPEC): New define.
7642         * config/pa/pa.c (override_options): Add code to process -munix= option.
7643         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
7644         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
7645         defines.
7646         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
7647         (SUBTARGET_OPTIONS): Provide default define.
7648         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
7649         STANDARD_STARTFILE_PREFIX_2): New defines.
7650         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
7651         (ENDFILE_SPEC): Use %O.
7652         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
7653         Mention issue caused by changing namespace and runtime to UNIX 95/98.
7654         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
7655         Document -munix=std option.
7656
7657 2004-08-25  Steven Bosscher  <stevenb@suse.de>
7658
7659         * cse.c (cse_around_loop, cse_check_loop_start,
7660         cse_set_around_loop): Remove.
7661         (cse_basic_block): Remove the around_loop argument.
7662         (cse_end_of_basic_block): Remove the after_loop argument.
7663         (cse_main): Likewise.
7664         * rtl.h (cse_main): Update prototype.
7665         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
7666         rest_of_handle_gcse): Update cse_main calls.
7667
7668 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
7669
7670         * tree.h  (build_int_cst): New, sign extended constant.
7671         (build_int_cstu): New, zero extended constant.
7672         (build_int_cst_wide): Renamed from build_int_cst.
7673         * tree.c (build_int_cst, build_int_cstu): New.
7674         (build_int_cst_wide): Renamed from build_int_cst.
7675         (make_vector_type, build_common_tree_nodes,
7676         build_common_tree_nodes_2): Adjust build_int_cst calls.
7677         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
7678         expand_builtin_strpbrk, expand_builtin_fputs,
7679         build_string_literal, expand_builtin_printf,
7680         expand_builtin_sprintf, fold_builtin_classify_type,
7681         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
7682         fold_builtin_toascii, fold_builtin_isdigit,
7683         simplify_builtin_strstr, simplify_builtin_strpbrk,
7684         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
7685         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
7686         DEF_ATTR_INT): Likewise.
7687         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
7688         Likewise.
7689         * c-lex.c (interpret_integer, lex_charconst): Likewise.
7690         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
7691         * c-pretty-print.c (pp_c_integer_constant): Likewise.
7692         * c-typeck.c (really_start_incremental_init, push_init_level,
7693         set_nonincremental_init_from_string): Likewise.
7694         * calls.c (load_register_parameters): Likewise.
7695         convert.c (convert_to_pointer): Likewise.
7696         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
7697         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
7698         build_gcov_info): Likewise.
7699         * except.c (init_eh, assign_filter_values): Likewise.
7700         * expmed.c (store_fixed_bit_field, extract_bit_field,
7701         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
7702         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
7703         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
7704         * expr.c (convert_move, emit_group_load, emit_group_store,
7705         expand_assignment, store_constructor, store_field,
7706         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
7707         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
7708         invert_truthvalue, optimize_bit_field_compare,
7709         decode_field_reference, all_ones_mask_p, constant_boolean_node,
7710         fold_div_compare, fold, fold_read_from_constant_string,
7711         fold_negate_const, fold_abs_const, fold_not_const, round_up,
7712         round_down): Likewise.
7713         * function.c (assign_parm_setup_block): Likewise.
7714         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
7715         Likewise.
7716         * stor-layout.c (layout_type, initialize_sizetypes,
7717         set_min_and_max_values_for_integral_type): Likewise.
7718         * tree-chrec.c (chrec_fold_multiply_poly_poly,
7719         reset_evolution_in_loop): Likewise.
7720         * tree-chrec.h (build_polynomial_chrec): Likewise.
7721         * tree-complex.c (build_replicated_const): Likewise.
7722         * tree-eh.c (honor_protect_cleanup_actions,
7723         lower_try_finally_onedest, lower_try_finally_copy,
7724         lower_try_finally_switch): Likewise.
7725         * tree-mudflap.c (mf_build_string, mx_register_decls,
7726         mudflap_register_call, mudflap_enqueue_constant): Likewise.
7727         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
7728         * tree-pretty-print.c (dump_generic_node): Likewise.
7729         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
7730         Likewise.
7731         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
7732         * tree-ssa-loop-niter.c (number_of_iterations_cond,
7733         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
7734         Likewise.
7735         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
7736         canonicalize_loop_induction_variables): Likewise.
7737         * tree-vectorizer.c (vect_create_index_for_array_ref,
7738         vect_transform_loop_bound, vect_compute_data_ref_alignment):
7739         Likewise.
7740
7741         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
7742         alpha_gimplify_va_arg_1): Likewise.
7743         * config/arm/arm.c (arm_get_cookie_size): Likewise.
7744         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
7745         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
7746         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
7747         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
7748         mips_gimplify_va_arg_expr): Likewise.
7749         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
7750         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
7751         add_compiler_branch_island): Likewise.
7752         * config/s390/s390.c (s390_va_start): Likewise.
7753         * config/sh/sh.c (sh_va_start): Likewise.
7754         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
7755         Likewise.
7756         * config/xtensa/xtensa.c (xtensa_va_start,
7757         xtensa_gimplify_va_arg_expr): Likewise.
7758
7759         * objc/objc-act.c (build_objc_string_object,
7760         build_objc_symtab_template, init_def_list, init_objc_symtab,
7761         init_module_descriptor, generate_static_references,
7762         build_selector_translation_table, get_proto_encoding,
7763         build_typed_selector_reference, build_selector_reference,
7764         build_next_objc_exception_stuff,
7765         build_method_prototype_list_template, generate_descriptor_table,
7766         generate_protocols, build_protocol_initializer,
7767         build_ivar_list_template, build_method_list_template,
7768         build_ivar_list_initializer, generate_ivars_list,
7769         generate_dispatch_table, generate_protocol_list,
7770         build_category_initializer, build_shared_structure_initializer,
7771         generate_shared_structures, handle_impent,
7772         generate_objc_image_info): Likewise.
7773
7774 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
7775
7776         * cfglayout.c (duplicate_insn_chain): Remove references to
7777         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
7778         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
7779         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
7780         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
7781         and NOTE_INSN_LOOP_CONT.
7782         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
7783         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
7784         and NOTE_INSN_LOOP_CONT.
7785         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
7786         check_dbra_loop, loop_dump_aux): Remove references to removed notes
7787         and fields.
7788         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
7789         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
7790         references to removed notes and fields.
7791         (subtract_reg_term, ujump_to_loop_cont): Remove.
7792
7793 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
7794
7795         * doc/install.texi: Document that libcpp does not require
7796         Automake any longer.  Document that Automake 1.9.1 should
7797         work everywhere.
7798
7799 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
7800
7801         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
7802         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
7803         DWARF_DEBUGGING_INFO from choice-of-definition chain;
7804         restructure using C89 features (#elif, #error).
7805         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
7806         * config/sh/sh.h: Remove references to DWARF_DEBUG.
7807         * doc/invoke.texi: Remove references to DWARF version 1;
7808         clarify why -gdwarf-2<n> doesn't work.
7809
7810 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
7811
7812         * basic-block.h (BB_SET_PARTITION): Clear old value first.
7813         * cfg.c (clear_bb_flags): Don't clear partition setting.
7814         * ifcvt.c (find_if_case_1): Remove ??? comment.
7815
7816 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
7817
7818         PR target/17052
7819         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
7820         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
7821         current_function_stdarg in place of sysv_varargs_p.
7822         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
7823         sysv_varargs_p.
7824
7825 2004-08-24  Richard Henderson  <rth@redhat.com>
7826
7827         PR target/16298
7828         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
7829         random codes within CONST.
7830
7831 2004-08-24  James E Wilson  <wilson@specifixinc.com>
7832
7833         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
7834         -freorder-blocks-and-partition.
7835
7836 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7837
7838         PR middle-end/17044
7839         * tree-ssa-threadupdate.c (redirection_data): Make static.
7840         (thread_block): Use ggc_alloc_cleared to allocate struct
7841         redirection_data.  Don't free elements in redirection_data.
7842
7843 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7844
7845         * config/mips/predicates.md (small_data_pattern): Match prefetches.
7846
7847 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7848
7849         PR tree-optimization/17016
7850         * tree-ssa-loop-niter.c (number_of_iterations_cond,
7851         number_of_iterations_exit): Use POINTER_TYPE_P instead
7852         of testing for POINTER_TYPE.
7853
7854 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7855
7856         * tree-ssa-loop-ivcanon.c: New file.
7857         * tree-ssa-loop-manip.c (create_iv): New function.
7858         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
7859         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
7860         * cfgloop.c (mark_single_exit_loops): New function.
7861         (verify_loop_structure): Verify single-exit loops.
7862         * cfgloop.h (struct loop): Add single_exit field.
7863         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
7864         (mark_single_exit_loops): Declare.
7865         (tree_num_loop_insns): Declare.
7866         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
7867         (duplicate_loop_to_header_edge): Use it.
7868         * common.opt (fivcanon): New flag.
7869         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
7870         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
7871         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
7872         (bsi_insert_on_edge_immediate): New function.
7873         * tree-flow.h (bsi_insert_on_edge_immediate,
7874         canonicalize_induction_variables, tree_unroll_loops_completely,
7875         create_iv): Declare.
7876         * tree-optimize.c (init_tree_optimization_passes): Add
7877         pass_iv_canon and pass_complete_unroll.
7878         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
7879         * tree-scalar-evolution.c (get_loop_exit_condition,
7880         get_exit_conditions_rec, number_of_iterations_in_loop,
7881         scev_initialize): Use single_exit information.
7882         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
7883         missing assumptions.
7884         (loop_niter_by_eval):  Return number of iterations as unsigned
7885         int.
7886         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
7887         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
7888         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
7889         New passes.
7890         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
7891         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
7892         the defining statement is ready.
7893         * tree-vectorizer.c (vect_create_iv_simple): Removed.
7894         (vect_create_index_for_array_ref, vect_transform_loop_bound):
7895         Use create_iv.
7896         (vect_transform_loop_bound): Use single_exit information.
7897         (vect_analyze_loop_form): Cleanup bogus tests.
7898         (vectorize_loops): Do not call flow_loop_scan.
7899         * tree.h (may_negate_without_overflow_p): Declare.
7900         * fold-const.c (may_negate_without_overflow_p): Split out from ...
7901         (negate_expr_p): ... this function.
7902         (tree_expr_nonzero_p): Handle overflowed constants correctly.
7903         * doc/invoke.texi (-fivcanon): Document.
7904         * doc/passes.texi: Document canonical induction variable creation.
7905
7906 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7907
7908         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
7909         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
7910         using the mode of the operand to decide between them.
7911         * config/mips/mips.md (MOVECC): New mode macro.
7912         (ccreg): New mode attribute.
7913         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
7914         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
7915         (mov[sd]icc): Redefine using :GPR.
7916
7917 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7918
7919         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
7920         (mips_prefetch_cookie): New function.
7921         * config/mips/mips.c (print_operand_address): Fix handling of
7922         ADDRESS_CONST_INT.
7923         (mips_emit_prefetch): Delete.
7924         (mips_prefetch_cookie): New function.
7925         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
7926         mode of QImode for the address_operand.  Use mips_prefetch_cookie
7927         to calculate the first "pref" operand.
7928         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
7929         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
7930
7931 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
7932
7933         * arm.md: Include predicates.md.
7934         * predicates.md: New file.
7935         * arm.c (s_register_operand, arm_hard_register_operand)
7936         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
7937         (arm_immediate_operand, arm_neg_immediate_operand)
7938         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
7939         (arm_add_operand, arm_addimm_operand, arm_not_operand)
7940         (offsettable_memory_operand, alignable_memory_operand)
7941         (arm_reload_memory_operand, arm_float_rhs_operand)
7942         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
7943         (index_operand, shiftable_operator, logical_binary_operator)
7944         (shift_operator, equality_operator, arm_comparison_operator)
7945         (minmax_operator, cc_register, dominant_cc_register)
7946         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
7947         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
7948         (const_shift_operand, load_multiple_operation)
7949         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
7950         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
7951         (cirrus_register_operand, cirrus_fp_register)
7952         (cirrus_shift_const): Delete, replaced with equivalents in
7953         predicates.md.
7954         (shift_op): Handle ROTATE.
7955         * arm-protos.h: Delete declarations for above.
7956         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
7957         * t-arm (MD_INCLUDES): Add predicates.md.
7958         (s-preds): Depends on MD_INCLUDES.
7959
7960 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7961
7962         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
7963         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
7964         patterns.  Redefine using :GPR.  Give the match_operator a mode.
7965         Use '%2' rather than '%z2' for operand 2.
7966
7967 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7968
7969         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
7970         attribute.
7971
7972 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7973
7974         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
7975         of internal patterns.
7976         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
7977         Redefine using :P.
7978         (tablejump): Use expand_binop to calculate address.  Adjust names
7979         of internal patterns.
7980         (tablejump[sd]i): Renamed from tablejump_internal[12].
7981         Redefine using :P.
7982         (tablejump_mips16[12]): Delete.
7983
7984 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7985
7986         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
7987         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
7988         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
7989         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
7990         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
7991
7992 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
7993
7994         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
7995         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
7996         using :GPR.
7997         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
7998         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
7999         (*branch_equality[sd]i_inverted): Likewise
8000         branch_equality{,_di}_inverted.
8001         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
8002         Redefine using :GPR.
8003
8004 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
8005
8006         * rtl.def: Reorganize, placing all codes used only in machine
8007         descriptions at the end.
8008
8009         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
8010         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
8011         rtx_name, rtx_format arrays by direct reference to rtl.def,
8012         first undefining GENERATOR_FILE.  Define enum insn_note and
8013         note_insn_name array by direct reference to insn-notes.def.
8014         (adjust_field_rtx_def): Remove local definition of rtx_name.
8015         Use symbolic names for insn notes.
8016         * Makefile.in (gengtype.o): Update dependencies.
8017
8018 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
8019
8020         * basic-block.h (struct basic_block_def): Reorder fields to
8021         eliminate interior padding.  Remove 'partition' field.
8022         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
8023         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
8024         (BB_COPY_PARTITION): New macros.
8025         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
8026         Replace all references to the 'partition' field of a basic
8027         block with new macros.
8028
8029         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
8030         * final.c (final_scan_insn): Don't handle it.
8031         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
8032         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
8033         * sched-rgn.c (sched_is_disabled_for_current_region_p):
8034         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
8035
8036 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
8037
8038         * c-decl.c (c_init_decl_processing): Adjust
8039         build_common_tree_nodes call.
8040         * expmed.c (const_mult_add_overflow_p): Use
8041         build_distinct_type_copy.
8042         * stor-layout.c (early_type_list): Remove.
8043         (layout_type): Don't append to early_type_list.
8044         (initialize_sizetypes): Add signed_p argument.
8045         (set_sizetype): Overwrite the stub type nodes directly.
8046         * tree.c (copy_node_stat): Clear a type's value cache here ...
8047         (build_distinct_type): ... not here.
8048         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
8049         * tree.h (initialize_sizetypes): Add signed_p argument.
8050         (build_common_tree_nodes): Likewise.
8051
8052         * objc/objc-act.c (get_static_reference): Use
8053         build_variant_type_copy.
8054         (get_protocol_reference): Likewise.
8055         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
8056
8057 2004-08-24  Richard Henderson  <rth@redhat.com>
8058             Andrew Pinski  <apinski@apple.com>
8059
8060         * gimplify.c (gimplify_array_ref_to_plus): Delete.
8061         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
8062         for ARRAY_REF.
8063
8064         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
8065         ARRAY_REF also to get to the STRING_CST.
8066
8067 2004-08-24  Paul Brook  <paul@codesourcery.com>
8068
8069         * config/arm/arm.c (arm_override_options): Update error message.
8070         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
8071         TARGET_HARD_FLOAT_ABI.
8072         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
8073         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
8074
8075 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
8076
8077         PR target/17093
8078         * config/m32r.md (movsi_sda): Add SI mode specification to
8079         UNSPEC.
8080
8081 2004-08-24  Nick Clifton  <nickc@redhat.com>
8082
8083         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
8084         of seth_add3_operand.
8085
8086 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
8087
8088         * Makefile.in (PROTO_OBJS): Add errors.o.
8089         * protoize.c (fancy_abort): Remove.
8090         * mips-tfile.c (fancy_abort): Add parameters.
8091
8092 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
8093
8094         * doc/trouble.texi (C++ misunderstandings): Fix example code.
8095
8096 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
8097
8098         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
8099         (host-default.o): Add dependency on HOOKS_H.
8100         * config/x-linux: Likewise.
8101         * config/x-solaris: Likewise.
8102         * config/i386/x-mingw32: Likewise.
8103         * config/rs6000/x-darwin: Likewise.
8104
8105 2004-08-23  James E Wilson  <wilson@specifixinc.com>
8106
8107         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
8108         DEF_REG_NOTE.
8109
8110 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
8111
8112         PR c/14492
8113         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
8114
8115 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
8116
8117         * cfg.c (check_bb_profile): Fix typos.
8118         * function.c (assign_parm_is_stack_parm): Likewise.
8119         * tree-nested.c: Likewise.
8120
8121 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
8122
8123         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
8124         Remove TYPECODE.
8125         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
8126
8127 2004-08-23  Eric Christopher  <echristo@redhat.com>
8128
8129         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
8130         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
8131         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
8132         * target.h: Ditto.
8133         * hooks.h: Include machmode.h.
8134         (hook_bool_mode_false): Declare.
8135         * hooks.c (hook_bool_mode_false): Define.
8136         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
8137         * stor-layout.c (layout_type): Ditto.
8138         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
8139         Define to target macro.
8140         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
8141         * config/arm/arm.c: Ditto. Use.
8142         * config/arm/arm.h: Ditto.
8143         * config/arm/arm-protos.h: Ditto.
8144         * config/i386/i386.c: Ditto.
8145         * config/i386/i386.h: Ditto.
8146         * config/rs6000/rs6000.c: Ditto.
8147         * config/rs6000/rs6000.h: Ditto.
8148         * config/sh/sh.c: Ditto.
8149         * config/sh/sh.h: Ditto.
8150         * config/sh/sh-protos.h: Ditto.
8151         * config/sh/sh.md: Use.
8152         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
8153         to TARGET_VECTOR_MODE_SUPPORTED_P.
8154
8155 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
8156
8157         * Makefile.in (BUILD_ERRORS): Set to build-errors.
8158         (errors.o): New target for host.
8159         (build-errors.o): New target for build.
8160         (genobjs): Replace errors.o with build-errors.
8161         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
8162         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
8163         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
8164         (fix-header.o): Add errors.h
8165         * collect2.c (fancy_abort): Add parameters.
8166         * collect2.h (fancy_abort): Don't declare.
8167         * errors.h (fancy_abort): Don't declare.
8168         * errors.c: Include either bconfig.h or config.h.
8169         (fancy_abort): Trim filename.
8170         * fix-header.c (v_fatal, fatal): Remove.
8171         (progname): Remove definition.
8172         (main): Set progname here.
8173         * gcc.c (fancy_abort): Add parameters.
8174         * gcc.h (fancy_abort): Remove declaration.
8175         * gcov.c (fancy_abort): Remove.
8176         * rtl.h (fancy_abort): Don't declare.
8177         (abort): Don't define.
8178         * tree.h (fancy_abort): Don't declare.
8179         (abort): Don't define.
8180         * system.h (fancy_abort): Declare.
8181         (abort): Define to fancy_abort.
8182         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
8183
8184         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
8185         (usize_type, ubitsizetype): Remove.
8186         * stor-layout.c (set_sizetype): Don't initialize usizetype,
8187         ubitsizetype.
8188         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
8189
8190         * tree.h (build_distinct_type_copy): New.
8191         (build_type_copy): ... here.  Rename to ...
8192         (build_variant_type_copy): ... here.
8193         * tree.c (build_qualified_type): Rename build_type_copy call.
8194         (build_distinct_type_copy): New, broken out of ...
8195         (build_type_copy): ... here.  Rename to ...
8196         (build_variant_type_copy): ... here.  Use
8197         build_distinct_type_copy.
8198         (build_common_tree_nodes_2): Rename build_type_copy call.
8199         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
8200         call.
8201         (handle_packed_attribute, handle_unused_attribute,
8202         handle_transparanet_union_attribute, handle_aligned_attribute,
8203         handle_deprecated_attribute): Likewise.
8204         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
8205         Likewise.
8206         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
8207         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
8208         build_distinct_type_copy.
8209
8210 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8211
8212         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
8213         attribute.
8214
8215 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8216
8217         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
8218         loads and stores.
8219         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
8220         formerly unnamed patterns.  Redefine using :P for the address.  Remove
8221         explicit length attributes.
8222
8223 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8224
8225         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
8226         New functions.
8227         (single_reachable_address): Use them.
8228         (schedule_sm): Add dump.
8229         (is_call_clobbered_ref): New function.
8230         (determine_lsm_reg): Check whether the reference is call clobbered.
8231         Only work for gimple_reg_type values.
8232
8233 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8234
8235         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
8236         $31 store insns.  Redefine using :GPR.
8237
8238 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8239
8240         * config/mips/mips.md (P): New mode macro.
8241         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
8242         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
8243         Add mode attributes.
8244
8245 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8246
8247         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
8248         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
8249         later constants to cover the gap.
8250         (load, store): New mode attributes.
8251         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
8252         Use new unspec constants.
8253
8254 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8255
8256         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
8257         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
8258         to use register_operand rather than uns_arith_operand as the predicate
8259         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
8260         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
8261         Redefine using :GPR.  Make same predicate change here.  Extend the
8262         commutativity of operands 1 and 2 from the SImode version to the
8263         DImode one.
8264         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
8265         but with no predicate changes.
8266         (*nor[sd]i3): Redefine using :GPR.
8267
8268 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8269
8270         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
8271         noreturn functions.
8272
8273 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8274
8275         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
8276         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
8277         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
8278         rather than "%z2" (with a fake const0_rtx for operand 2).
8279         (ffs[sd]i2): Redefine using :GPR.
8280         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
8281
8282 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8283
8284         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
8285
8286 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8287
8288         * config/mips/mips.md (any_extend): New code macro.
8289         (u, su): New code attributes.
8290         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
8291         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
8292         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
8293         (*{s,u}mul_acc_di): Redefine using any_extend.
8294         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
8295         to reflect real insn names.
8296         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
8297         with an any_extend template.
8298         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
8299         Add '*' to name.
8300
8301 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8302
8303         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
8304         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
8305         (mul[sd]i3_r4000): Redefine using :GPR.
8306         (mulsi3_mult3): Don't check TARGET_MAD separately.
8307         (muldi3_mult3): Moved after mulsi_mult3.
8308
8309 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8310
8311         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
8312         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
8313         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
8314         (TARGET_GAS, TARGET_MIPS_AS): Delete.
8315         (TARGET_GPWORD): Define to true for n32 on IRIX.
8316         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
8317         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
8318         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
8319         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
8320         (MDEBUG_ASM_SPEC): Delete, folding into...
8321         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
8322         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
8323         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
8324         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
8325         to define asm_abi_default_spec.
8326         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
8327         (TARGET_ASM_SELECT_SECTION): Delete.
8328         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
8329         for non-mips16 code, removing previous workaround for SGI assemblers.
8330         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
8331         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
8332         (override_options): Remove !TARGET_GAS and !have_named_sections code.
8333         (print_operand): Fold TARGET_GAS conditionals into asm strings.
8334         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
8335         ASM_STABS_OP and ASM_STABN_OP.
8336         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
8337         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
8338         (mips_output_function_prologue): Remove !TARGET_GAS code.
8339         (mips_select_rtx_section): Remove !have_named_sections code.
8340         (mips_select_section): Delete.
8341         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
8342         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
8343         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
8344         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
8345         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
8346         * config/mips/windiss.h (ASM_SPEC): Likewise.
8347
8348 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8349
8350         * read-rtl.c (map_value, mapping, macro_group): New structures.
8351         (BELLWETHER_CODE): New macro.
8352         (modes, codes, bellwether_codes): New variables.
8353         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
8354         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
8355         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
8356         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
8357         (add_map_value, initialize_macros): New functions.
8358         (def_hash, def_hash_eq_p): Generalize to anything that points to,
8359         or starts with, a char * field.
8360         (find_macro, read_mapping, check_code_macro): New functions.
8361         (read_rtx_1): New, split out from read_rtx.  Handle the new
8362         define_{mode,code}_{macro,attr} constructs.  Use find_macro
8363         to parse the name of a code or mode.  Use BELLWETHER_CODE to
8364         extract the format and to choose a suitable code for rtx_alloc.
8365         Modify recursive invocations to use read_rtx_1.
8366         (read_rtx): Call initialize_macros.  Apply code and mode macros
8367         to the rtx returned by read_rtx_1.  Cache everything after the
8368         first macro expansion for subsequent read_rtx calls.
8369         * doc/md.texi: Document new .md constructs.
8370         * config/mips/mips.md (GPR): New mode macro.
8371         (d, si8_di5): New mode attributes.
8372         (any_cond): New code macro.
8373         (add[sd]i3): Redefine using :GPR.
8374         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
8375         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
8376         previously unnamed MIPS16 patterns.
8377         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
8378         lines.  Don't match (plus (const_int 0) ...).
8379         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
8380         Use a define_split to generate the addition.
8381         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
8382         (subsi3_internal): Delete.
8383         (*subsi3_extended): Renamed from subsi3_internal_2.
8384         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
8385         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
8386         using an any_cond template.
8387
8388 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8389
8390         * read-rtl.c (read_rtx): Tidy use of format_ptr.
8391
8392 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
8393
8394         * read-rtl.c (string_obstack): New file-scope variable.
8395         (read_string, read_quoted_string, read_braced_string)
8396         (read_escape): Remove obstack parameter and use string_obstack instead.
8397         (read_rtx): Remove function-local rtl_obstack and initialize
8398         string_obstack instead.  Update call to read_string.
8399
8400 2004-08-22  Andrew Pinski  <apinski@apple.com>
8401
8402         PR c/15262
8403         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
8404         expression is not constant.
8405         (c_finish_return): Do not go through INDIRECT_REF when looking
8406         for the inner expression of an ADDR_EXPR for warning about.
8407
8408 2004-08-22  Richard Henderson  <rth@redhat.com>
8409
8410         PR 17075
8411         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
8412         create new blocks and fall through.
8413         (expand_gimple_basic_block): Update to match.
8414
8415 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
8416
8417         * reload.c (find_reloads_address): Make return value tri-state.
8418         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
8419         (find_reloads): Assume that reloaded addresses match 'o' or
8420         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
8421         returned 1 (not -1).  Omit optional reloads for address operands
8422         only if find_reloads_address returned 1 (not -1).
8423
8424         * config/s390/s390.c (legitimize_reload_address): New function.
8425         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
8426         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
8427         legitimize_reload_address.
8428
8429 2004-08-22  Richard Hendersion  <rth@redhat.com>
8430
8431         * tree.h (SAVE_EXPR_RESOLVED_P): New.
8432         * gimplify.c (gimplify_save_expr): Use it.
8433         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
8434         on the temporary variable.
8435
8436 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
8437
8438         * fold-const.c (rtl_expr_nonnegative_p): Delete.
8439         * tree.h (rtl_expr_nonnegative_p): Remove.
8440
8441 2004-08-22  Steven Bosscher  <stevenb@suse.de>
8442
8443         * config/i386/ppro.md (ppro_complex_insn): Add missing check
8444         for cpu==pentiumpro.
8445
8446         * combine.c (struct reg_stat): Fix comment typo.
8447
8448 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
8449
8450         * c-tree.h (c_sizeof_nowarn): Remove.
8451
8452 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8453
8454         * c-decl.c (set_array_declarator_type): Rename to
8455         set_array_declarator_inner.
8456         (build_c_parm, build_attrs_declarator, build_function_declarator):
8457         New functions.
8458         (make_pointer_declarator): Call build_attrs_declarator.
8459         * c-tree.h (set_array_declarator_type): Rename to
8460         set_array_declarator_inner.
8461         (build_c_parm, build_attrs_declarator, build_function_declarator):
8462         New prototypes.
8463         * c-parse.in (after_type_declarator,
8464         parm_declarator_starttypename, parm_declarator_nostarttypename,
8465         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
8466         firstparm): Use these functions
8467
8468 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8469
8470         * c-decl.c (build_array_declarator, set_array_declarator_type,
8471         start_decl, grokdeclarator, grokparms): Change boolean parameters
8472         to type bool.
8473         * c-tree.h (build_array_declarator, set_array_declarator_type,
8474         start_decl): Update prototypes.
8475         * c-decl.c, c-parse.in: All callers changed.
8476
8477 2004-08-21  Mike Stump  <mrs@apple.com>
8478
8479         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
8480         (darwin_fix_and_continue): Likewise.
8481         (darwin_fix_and_continue_switch): Likewise.
8482         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
8483         (darwin_fix_and_continue): Likewise.
8484         (darwin_fix_and_continue_switch): Likewise.
8485
8486 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
8487
8488         PR  c++/16030
8489         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
8490         Remove, merging into ...
8491         (gen_stdcall_or_fastcall_suffix): New function, returning tree
8492         rather than const char*, and accepting additional parameter.
8493         Don't add suffix to '*'-prefixed symbols or variadic functions.
8494         (i386_pe_encode_section_info): Adjust for call to new function.
8495         Call change_decl_assembler_name.
8496
8497 2004-08-20  Mike Stump  <mrs@apple.com>
8498
8499         * config/darwin.c (machopic_indirect_data_reference): Mark
8500         stubs as defined.
8501         * config/386/386.c (darwin_local_data_pic): Add.
8502         (legitimate_constant_p): Reorder so that PLUS handling runs
8503         before darwin_local_data_pic to match the ordering in
8504         legitimate_pic_address_disp_p and so that MINUS runs after
8505         darwin_local_data_pic as otherwise the darwin_local_data_pic
8506         logic can be skipped, which would be very bad.
8507         (legitimate_pic_address_disp_p): Move from from here to
8508         darwin_local_data_pic so it can be reused.
8509
8510 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
8511
8512         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
8513         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
8514         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
8515         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
8516         (RS6000_ABI_NAME): Define as "linux".
8517         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
8518         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
8519         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
8520         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
8521         * config/rs6000/rs6000.c (dot_symbols): New global var.
8522         (rs6000_output_function_entry): New function, modified for
8523         !DOT_SYMBOLS..
8524         (print_operand <case 'z'>): ..extracted from here.
8525         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
8526         (rs6000_output_function_epilogue): Likewise.
8527         (rs6000_elf_declare_function_name): Likewise.
8528         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
8529         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
8530         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
8531         * configure: Regenerate.
8532         * config.in: Regenerate.
8533
8534 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
8535
8536         * reload.c (find_reloads_address): Fix thinko in previous change.
8537
8538         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
8539         a CONST_INT.
8540
8541 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
8542
8543         PR rtl-optimization/17099
8544         * combine.c (force_to_mode): Check if inner_mask has any bits set
8545         outside of GET_MODE (x) instead of op_mode.
8546
8547 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
8548
8549         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
8550         fragment.
8551         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
8552         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
8553         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
8554         architecture.
8555         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
8556         configurations.
8557         * config/arm/t-symbian: New file.
8558
8559 2004-08-20  Andrew Pinski  <apinski@apple.com>
8560
8561         * regrename.c (kill_value_regno): ANSIfy.
8562
8563 2004-08-20  Dale Johannesen  <dalej@apple.com>
8564
8565         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
8566
8567 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
8568
8569         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
8570         (kill_value_regno): New function, derived from kill_value.
8571         (kill_value): Update.
8572         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
8573
8574 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
8575
8576         Fix PR tree-optimization/17111
8577         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
8578         of non-value_handles.
8579         (bitmap_set_contains): All constants are in every set.
8580
8581 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
8582
8583         * fold-const.c (round_up, round_down): Use build_int_cst.
8584         Optimize common case.
8585
8586 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
8587             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8588
8589         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
8590         one_only_data_section): Rename to som_readonly_data_section,
8591         som_one_only_readonly_data_section and som_one_only_data_section.
8592         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
8593         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
8594         conditional defines.
8595         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
8596         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
8597         string values.
8598         (pa_select_section): Use renamed section functions.
8599         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
8600         SOM_READONLY_DATA_SECTION_FUNCTION,
8601         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
8602         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
8603         Define here ...
8604         * config/pa/som.h: ... not here.
8605         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
8606         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
8607         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
8608         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
8609         (READONLY_DATA_SECTION): Use som_readonly_data_section.
8610
8611 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
8612
8613         * fold-const.c (int_const_binop): Don't generate non-overflowing
8614         size-types specially.
8615         (fold_convert_const): Likewise.
8616
8617         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
8618         clear cache on copied sizetype.
8619
8620 2004-08-20  Ben Elliston  <bje@au.ibm.com>
8621
8622         * configure.ac: Don't escape apostrophe in --enable-coverage help.
8623         * configure: Regenerate.
8624
8625 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
8626
8627         PR 5620
8628         * gcc.c (struct stat input_stat): Don't define if
8629         HOST_LACKS_INODE_NUMBERS
8630         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
8631         than stat to determine if temp file is same as input file.
8632         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
8633         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
8634
8635 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
8636
8637         * configure.ac (mips*-*-*): Print an error if not using GAS.
8638         * configure: Regenerated.
8639         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
8640         comments about buggy MIPSpro assemblers.
8641         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
8642         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
8643         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
8644         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
8645         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
8646         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
8647         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
8648         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
8649         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
8650         of more general IRIX 6 definitions.
8651         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
8652         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
8653         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
8654         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
8655         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
8656         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
8657         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
8658         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
8659         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
8660         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
8661         (LINK_SPEC): Move most of definition to iris.h.
8662         (SUBTARGET_LINK_SPEC): New macro.
8663         (IRIX_STARTFILE_SPEC): Fold into...
8664         (STARTFILE_SPEC): ...here.
8665         (IRIX_ENDFILE_SPEC): Fold into...
8666         (ENDFILE_SPEC): ...here.
8667         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
8668         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
8669         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
8670         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
8671         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
8672         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
8673         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
8674         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
8675         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
8676         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
8677         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
8678         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
8679         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
8680         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
8681         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
8682         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
8683         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
8684         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
8685         (TARGET_IRIX6): Define to 1.
8686         (DRIVER_SELF_SPECS): Define.
8687         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
8688         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
8689         (SUBTARGET_LINK_SPEC): New macro.
8690         (IRIX_STARTFILE_SPEC): Fold into...
8691         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
8692         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
8693         (LIB_SPEC, LIBGCC_SPEC): Use them.
8694         (LIB_SPEC): Remove !mabi=* case.
8695         (IRIX_ENDFILE_SPEC): Fold into...
8696         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
8697         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
8698         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
8699         (TARGET_IRIX6): New macro.
8700         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
8701         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
8702         (LABEL_AFTER_LOC): Delete.
8703         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
8704         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
8705         (mips_build_builtin_va_list): Check TARGET_IRIX6.
8706         (override_options): Remove TARGET_SGI_O32_AS-related code.
8707         (irix_output_external_libcall): Make static.
8708         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
8709         LABEL_AFTER_LOC.
8710         (mips_file_start): Tidy guard for ABI sections.  Remove use of
8711         ABICALLS_ASM_OP; use .abicalls instead.
8712         (mips_output_aligned_decl_common, mips_declare_object_name)
8713         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
8714         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
8715         .globl foo .text directives.
8716         (irix_asm_named_section_1, irix_asm_named_section)
8717         (irix_section_align_entry, irix_section_align_htab)
8718         (irix_orig_asm_out_file, irix_section_align_entry_eq)
8719         (irix_section_align_entry_hash, irix_asm_output_align)
8720         (irix_file_start, irix_section_align_1, copy_file_data)
8721         (irix_file_end, irix_section_type_flags): Delete.
8722         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
8723         Use standard section syntax.  Remove protective "jr $31".
8724         (__gcc_fini): Likewise .gcc_fini.
8725         * config/mips/irix-crtn.asm: Adjust sections accordingly.
8726         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
8727         iris5gas.h.
8728         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
8729         from t-irix-gld.
8730         (EXTRA_MULTILIB_PARTS): Define.
8731         * config/mips/t-iris6: Remove bogus comment.
8732         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
8733         * config/mips/iris5gas.h, config/mips/iris5gld.h,
8734         config/mips/iris6gas.h, config/mips/iris6gld.h,
8735         config/mips/t-iris5-as, config/mips/t-iris5-gas
8736         config/mips/t-irix-gld: Delete.
8737         * config/mips/iris.h: New file.
8738         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
8739
8740 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
8741
8742         * postreload.c (reload_cse_move2add): Allow any condjump, but check
8743         that the implicit set isn't clobbered in the jump insn.
8744
8745 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
8746
8747         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
8748         * optabs.c (init_optabs): Don't check it.
8749         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
8750         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
8751
8752 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
8753
8754         * config/s390/s390.md (s390_warn_framesize_string)
8755         (s390_warn_dynamic_string, s390_stack_size_string)
8756         (s390_stack_guard_string): New global string variables.
8757         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
8758         (s390_stack_guard): New global variables.
8759         (override_options): Added checks for the new options.
8760         (s390_emit_prologue): Emit stack check and trap code and perform
8761         compile time stack size checking.
8762
8763         * config/s390/s390.h (TARGET_OPTIONS): Added new options
8764         "warn-framesize", "warn-dynamicstack", "stack-size" and
8765         "stack-guard".
8766
8767         * doc/invoke.texi: Added documentation for the new options.
8768
8769 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
8770
8771         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
8772         to eliminate warning.
8773         (linear_search_fdes): Declare p as unsigned.
8774         (binary_search_mixed_encoding_fdes): Likewise.
8775         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
8776         to eliminate warning.
8777         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
8778         type cast.
8779
8780 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
8781
8782         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
8783         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
8784         instead of one.  Check for strictly legitimate address.
8785         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
8786         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
8787
8788 2004-08-19  Eric Christopher  <echristo@redhat.com>
8789
8790         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
8791         * langhooks.h (unsave_expr_now): Ditto.
8792         * tree.h (unsave_expr_1): Remove prototype.
8793         (lhd_unsave_expr_now): Rename to unsave_expr_now.
8794         * tree-inline.c (unsave_expr_1): Move here
8795         from tree.c. Make static.
8796         (unsave_expr_now): Rename from lhd_unsave_expr_now.
8797         * tree-sra.c: Fix up for rename.
8798         * tree-ssa-copy.c: Ditto.
8799         * tree-eh.c: Ditto.
8800         * tree.c (unsave_expr_1): Move to tree-inline.c.
8801
8802 2004-08-19  Caroline Tice  <ctice@apple.com>
8803
8804         * config/i386/cygming.h (switch_to_section):  Fix typo (change
8805         in_unlikely_text_section to in_unlikely_executed_text).
8806
8807 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
8808
8809         * vec.h (VEC_lower_bound): New macro.
8810
8811 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
8812
8813         PR target/16446
8814         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
8815         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
8816         treat each ABI separately.  Deal with n32/n64 complex float arguments.
8817         (function_arg): Add associated complex handling here.
8818
8819 2004-08-19  Richard Henderson  <rth@redhat.com>
8820
8821         * config/arm/arm.c (arm_gen_load_multiple): Use
8822         adjust_automodify_address.  Take base memory and offset instead
8823         of unchanging/struct/scalar bits.
8824         (arm_gen_store_multiple): Likewise.
8825         (arm_gen_movmemqi): Use adjust_automodify_address.
8826         * config/arm/arm-protos.h: Update decls.
8827         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
8828         (store_multiple): Similarly.
8829
8830 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
8831
8832         * regclass.c (globalize_reg): Update call_really_used_regs.
8833
8834 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
8835
8836         * doc/invoke.texi (integer-share-limit): Document.
8837
8838         * tree.h (TYPE_CACHED_VALUES_P): New.
8839         (TYPE_CACHED_VALUES): New.
8840         (TYPE_ORIG_SIZE_TYPE): Adjust.
8841         * tree.def (INTEGER_CST): Update documentation.
8842         * tree.c: Inlcude params.h.
8843         (build_int_cst): Cache small values.
8844         (build_type_copy): Do not copy the value cache.
8845         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
8846         unneeded zeroing.
8847         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
8848         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
8849         cache.
8850         * fold-const.c (force_fit_type): Copy value when setting
8851         overflows.
8852         (int_const_binop): Likewise.
8853         * stor-layout.c: Include params.h
8854         (set_sizetype): Create values cache.
8855         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
8856         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
8857         * params.h (INTEGER_SHARE_LIMIT): New.
8858         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
8859
8860 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
8861
8862         * gimplify.c (gimplify_minimax_expr): Remove.
8863         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
8864
8865 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
8866
8867         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
8868         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
8869
8870 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
8871
8872         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
8873
8874 2004-08-18  Andrew Pinski  <apinski@apple.com>
8875
8876         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
8877
8878 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
8879
8880         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
8881         (__aeabi_ul2f): Likewise.
8882
8883 2004-08-18  Richard Henderson  <rth@redhat.com>
8884
8885         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
8886         move to rtl completely.
8887         (struct meminsnbuf, xtensa_emit_block_move): Remove.
8888         (xtensa_find_mode_for_size): Remove.
8889         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
8890         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
8891
8892 2004-08-18  Richard Henderson  <rth@redhat.com>
8893
8894         * config/mcore/mcore.c (mode_from_align): Remove DImode.
8895         (block_move_sequence): Rewrite to use adjust_address.
8896         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
8897         Return boolean indicating success/failure.
8898         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
8899         * config/mcore/mcore.md (movmemsi): Update to match.
8900
8901 2004-08-18  Mike Stump  <mrs@apple.com>
8902
8903         * doc/invoke.texi (-mfix-and-continue): Add support for
8904         fast turn around debugging.
8905         (-ffix-and-continue): Likewise.
8906         (-mindirect-data): Likewise.
8907         (-findirect-data): Likewise.
8908         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
8909         (indirect_data): Likewise.
8910         (machopic_data_defined_p): Likewise.
8911         (machopic_output_indirection): Likewise.
8912         (darwin_encode_section_info): Likewise.
8913         (darwin_fix_and_continue): Likewise.
8914         (darwin_fix_and_continue_switch): Likewise.
8915         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
8916         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
8917         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
8918         (SUBTARGET_OPTIONS): Likewise.
8919         (darwin_fix_and_continue): Likewise.
8920         (darwin_fix_and_continue_switch): Likewise.
8921         (TARGET_FIX_AND_CONTINUE): Likewise.
8922         * config/rs6000.c (rs6000_emit_prologue): Likewise.
8923
8924 2004-08-19  Steven Bosscher  <stevenb@suse.de>
8925
8926         * basic-block.h (struct edge_def): Remove crossing_edge.
8927         (EDGE_CROSSING): New define.
8928         (EDGE_ALL_FLAGS): Update.
8929         * bb-reorder.c (find_traces_1_round, better_edge_p,
8930         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
8931         find_jump_block, fix_crossing_conditional_branches,
8932         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
8933         Replace all occurences of crossing_edge with an edge flag check
8934         or set/reset.
8935         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
8936         try_crossjump_bb): Likewise.
8937         * cfglayout.c (fixup_reorder_chain): Likewise.
8938         * cfgrtl.c (force_nonfallthru_and_redirect,
8939         commit_one_edge_insertion): Likewise.
8940
8941         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
8942         * tree-flow.h (compute_dominance_frontiers): Move prototype...
8943         * basic-block.h:  ...here.
8944         * tree-cfg.c (compute_dominance_frontiers_1,
8945         compute_dominance_frontiers): Move from here...
8946         * cfganal.c: ...to here.  Include timevar.h.
8947
8948 2004-08-18  James E Wilson  <wilson@specifixinc.com>
8949
8950         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
8951         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
8952
8953         * config/mips/mips.md (type): Add frdiv.
8954         (divsf3+1, divsf3+2): Change type to frdiv.
8955         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
8956         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
8957
8958         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
8959         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
8960         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
8961         * config/mips/5000.md (r5k_fdiv_single): Likewise.
8962         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
8963         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
8964         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
8965         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
8966         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
8967         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
8968         Likewise.
8969         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
8970
8971 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
8972
8973         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
8974         get regression tester working again.
8975
8976 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
8977
8978         * insn-notes.def, reg-notes.def: New files.
8979         * rtl.h: Use them to define enum insn_note and enum reg_note.
8980         * rtl.c: Use them to define note_insn_name and reg_note_name.
8981         * Makefile.in (RTL_BASE_H): Update.
8982
8983         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
8984         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
8985
8986 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
8987
8988         * arm.c (arm_size_rtx_costs): New function.
8989         (arm_override_options): Use it if optimizing for space.
8990
8991 2004-08-18  Richard Henderson  <rth@redhat.com>
8992
8993         * emit-rtl.c (gen_const_mem): New.
8994         * rtl.h (gen_const_mem): Declare.
8995         * expr.c (do_tablejump): Use it.
8996         * varasm.c (force_const_mem): Likewise.
8997         * config/darwin.c (machopic_indirect_data_reference): Likewise.
8998         (machopic_legitimize_pic_address): Likewise.
8999         * config/arm/arm.c (legitimize_pic_address): Likewise.
9000         * config/i386/i386.c (legitimize_pic_address): Likewise.
9001         (legitimize_tls_address): Likewise.
9002         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
9003         * config/ia64/ia64.md (load_fptr): Likewise.
9004         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
9005         * config/pa/pa.c (legitimize_pic_address): Likewise.
9006         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
9007         (rs6000_emit_move): Likewise.
9008         * config/s390/s390.c (legitimize_pic_address): Likewise.
9009         (legitimize_tls_address): Likewise.
9010         * config/s390/s390.md (casesi): Likewise.
9011         * config/sh/sh.c (sh_reorg): Likewise.
9012         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
9013         * config/v850/v850.md (casesi): Likewise.
9014
9015         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
9016         * config/sh/sh.c (prepare_move_operands): Remove incorrect
9017         use of MEM_READONLY_P.
9018
9019 2004-08-18  Steven Bosscher  <stevenb@suse.de>
9020
9021         * Makefile.in (OBJS-common): Add postreload-gcse.c.
9022         Add new postreload-gcse.o.
9023         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
9024         (lookup_as_function, insert, rehash_using_reg, use_related_value,
9025         equiv_constant): Use SAFE_HASH instead of safe_hash.
9026         (exp_equiv_p): Export.  Add for_gcse argument when comparing
9027         for GCSE.
9028         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
9029         find_comparison_args, fold_rtx, cse_insn): Update callers.
9030         (hash_rtx): New function derived from old canon_hash and bits
9031         from gcse.c hash_expr_1.
9032         (canon_hash_string): Rename to hash_rtx_string.
9033         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
9034         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
9035         (cselib_lookup): Update this caller.
9036         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
9037         Make static.
9038         (hash_expr): Call hash_rtx.
9039         (ldst_entry): Likewise.
9040         (expr_equiv_p): Call exp_equiv_p.
9041         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
9042         reg_used_on_edge, reg_set_between_after_reload_p,
9043         reg_used_between_after_reload_p, get_avail_load_store_reg,
9044         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9045         get_bb_avail_insn, hash_scan_set_after_reload,
9046         compute_hash_table_after_reload,
9047         eliminate_partially_redundant_loads, gcse_after_reload,
9048         get_bb_avail_insn, gcse_after_reload_main): Remove.
9049         * postreload-gcse.c: New file, reincarnating most of the above.
9050         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
9051         (gcse_after_reload_main): Update prototype.
9052         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
9053         * passes.c (rest_of_handle_gcse2): Use it.
9054
9055 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
9056
9057         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
9058         (pass_loop_done): Likewise.
9059
9060 2004-08-18  Andrew Pinski  <apinski@apple.com>
9061
9062         * config/rs6000/darwin.md: Delete the altivec patterns which are
9063         handled differently now.
9064         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
9065         (macho_correct_pic_di): Likewise.
9066         (call_indirect_nonlocal_darwin64): Likewise.
9067         Delete the save world/saveFP/saveVec patterns.
9068
9069         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
9070         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
9071         * config/rs6000/rs6000.md: Include darwin.md.
9072         (builtin_setjmp_receiver): Add DImode case.
9073         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
9074         Darwin bits.
9075
9076 2004-08-18  Matt Austern  <austern@apple.com>
9077
9078         Dead code stripping
9079         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
9080         * darwin.c (darwin_file_end): Mark file as potentially strippable.
9081
9082 2004-08-18  Richard Henderson  <rth@redhat.com>
9083
9084         * alias.c (readonly_fields_p): Remove.
9085         (objects_must_conflict_p): Don't call it.
9086         * tree.h (readonly_fields_p): Remove.
9087         * langhooks.h (struct lang_hooks): Remove honor_readonly.
9088         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
9089
9090 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
9091
9092         * tree-dfa.c (add_referenced_var): Only global variables are
9093         call-clobbered.
9094         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
9095         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
9096         all pointers dereferenced if the statement dereferences them.
9097         (create_name_tags): Do not create memory tags for pointers
9098         that have PT_ANYTHING set.
9099         Also check if PT_VARS is not empty before creating a name tag.
9100         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
9101         variables that share the same alias set with a pointer that
9102         may point anywhere.
9103         (add_may_alias): Add FIXME comment to remove clobbering
9104         aliased variables and tags.
9105         (replace_may_alias): Likewise.
9106         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
9107         (merge_pointed_to_info): If the original variable has not
9108         points-to information, call set_pt_anything.
9109         (add_pointed_to_var): Do not prevent adding a pointed-to
9110         variable if the pointers is PT_ANYTHING.
9111         If the variable is a global, set PT_GLOBAL_MEM.
9112         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
9113         pointer type only come in PTR+OFFSET flavours.
9114         Always call merge_pointed_to_info on PHI arguments that are
9115         SSA_NAMEs.
9116         (get_nmt_for): Mark call-clobbered tags whose pointer points
9117         to global memory.
9118         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
9119         values.
9120         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
9121         FLAGS.
9122         (add_stmt_operand): Abort if the caller tried to add a killing
9123         definition for a memory tag.
9124         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
9125         unnecessary checks.
9126
9127 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
9128
9129         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
9130         from call_used_regs.  Update call_really_used_regs.
9131         (CALL_REALLY_USED_REGISTERS): Define.
9132         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
9133         Replace call_used_regs with call_really_used_regs.
9134         (calc_live_regs, sh_media_register_for_return): Likewise.
9135         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
9136         * sh.md (return_media): Likewise.
9137
9138 2004-08-18  Andrew Pinski  <apinski@apple.com>
9139
9140         * config/darwin.c (machopic_legitimize_pic_address): Only set
9141         MEM_READONLY_P in the non TARGET_TOC case.
9142
9143 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
9144
9145         * rtl.def (NIL): Delete.
9146         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
9147         Tighten the syntax a little.
9148
9149         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
9150         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
9151         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
9152         * config/i386/predicates.md, config/m32r/m32r.h
9153         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
9154         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
9155         * config/sparc/sparc.h, doc/tm.texi:
9156         Replace all occurrences of NIL with UNKNOWN.
9157
9158 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
9159
9160         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
9161         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
9162         sequence inline.  Move drop_through_label code into this
9163         block, being the only place it is used.  Adjust comments.
9164
9165 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
9166
9167         * config/rs6000/altivec.md: Add new patterns for calls to
9168         save_world/rest_world functions.
9169
9170         * config/rs6000/rs6000-protos.h: (save_world_operation,
9171         restore_world_operation) new declarations.
9172
9173         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
9174         field added.
9175         (rs6000_stack_info): Set world_save_p field.
9176         (save_world_operation): New function.
9177         (restore_world_operation): New function.
9178         (compute_save_world_info): New function.
9179         (rs6000_stack_info): Call compute_save_world_info.
9180         (rs6000_emit_prologue): Check for world_save_p and generate
9181         pattern to call save_world for saving all non-volatile and
9182         special registers.
9183         (rs6000_emit_epilogue): Check for world_save_p and generate
9184         pattern to call rest_world to restore saved registers.
9185
9186         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
9187         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
9188         (rs6000_reg_names): New entries added for save_world_operation and
9189         restore_world_operation.
9190
9191 2004-08-18  Caroline Tice  <ctice@apple.com>
9192
9193         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
9194         "-freorder-blocks-and-partition" to the flags used in second
9195         stage of profiledbootstrap.
9196         * bb-reorder.c (push_to_next_round_p): Add new variable,
9197         next_round_is_last; set and use variable to make sure, when
9198         partitioning, that the last trace construction round consists
9199         of all (and only) cold basic blocks.
9200         (rotate_loop): Don't copy blocks that end in a section
9201         crossing jump.
9202         (copy_bb): Correctly initialize "partition" of duplicated bb.
9203         (add_unlikely_executed_notes): Add a comment.
9204         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
9205         to make sure, if function contains hot blocks, that the
9206         successors of ENTRY_BLOCK_PTR are hot; also, only look for
9207         crossing edges if the architecture supports named sections.
9208         (mark_bb_for_unlikely_executed_section): Modify to always
9209         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
9210         the basic block note insn.
9211         (fix_crossing_unconditional_branches): Remove extra space.
9212         (fix_edges_for_rarely_executed_code): Modify to only do
9213         partitioning work if the architecture supports named sections.
9214         (reorder_basic_blocks): Modify to only add
9215         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
9216         supports named sections.
9217         * c-common.c (handle_section_attribute): Initialize new global
9218         variable, user_defined_section_attribute, to true if user has
9219         specified one.
9220         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
9221         forward edges that cross section boundaries.
9222         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
9223         partitioning information if the architecture supports named
9224         sections.
9225         * cfgrtl.c (target.h): Add statement to include this.
9226         (rtl_split_block): Make sure newly created bb gets correct
9227         partition.
9228         (try_redirect_by_replacing_jump): Make sure redirection isn't
9229         attempting to cross section boundaries.
9230         (force_nonfallthru_and_redirect): Only do partition fix up if
9231         architecture supports named sections.
9232         (rtl_split_edge): Make sure newly created bb ends up in
9233         correct partition.
9234         (commit_one_edge_insertion): Remove code that incorrectly
9235         updated basic block partition; Make sure partition fix up only
9236         happens if architecture supports named sections and it's not
9237         already done.
9238         (rtl_verify_flow_info_1): Fix if-condition on test/error
9239         condition that fallthru edges are not allowed to cross section
9240         boundaries.
9241         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
9242         * final.c (final_scan_insn): Remove redundant test from if-statement;
9243         change calls to text_section into calls to function_section; add code
9244         to only to partitioning fix up if architecture supports named
9245         sections.
9246         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
9247         partition.
9248         (if_convert): Add targetm.have_named_sections to test.
9249         * output.h (unlikely_section_label): Extern declaration for new global
9250         variable.
9251         (unlikely_text_section_name): Likewise.
9252         * opts.c (decode_options): If both partitioning and DWARF debugging
9253         are turned on, issue a warning that this doesn't work, and change
9254         partitiong to basic block reordering (without hot/cold partitions).
9255         * passes.c (rest_of_handle_final): Re-set new global variable,
9256         user_defined_section_attribute, to false.
9257         (rest_of_compilation): Change options for calling partitioning
9258         function: Don't call if the user defined the section attribute, and
9259         don't call if DECL_ONE_ONLY is true for the current function.
9260         * predict.c (choose_function_section): Return immediately if we
9261         are doing hot/cold partitioning (i.e. let the basic block partitioning
9262         determine where the function belongs).
9263         * reg-stack.c (emit_swap_insn): Add condition to step over
9264         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
9265         * toplev.c (user_defined_section_attribute): New global variable.
9266         * toplev.h (user_defined_section_attribute): Extern declaration
9267         for new global variable.
9268         * varasm.c (unlikely_section_label): New global variable.
9269         (unlikely_text_section_name): New global variable.
9270         (unlikely_text_section): Add code to initialize
9271         unlikely_text_section_name if necessary; modify to use
9272         unlikely_text_section_name and unlikely_section_label; also to use
9273         named_section properly.
9274         (in_unlikely_text_section):  Modify to work correctly with
9275         named_section and to use unlikely_text_section_name.
9276         (named_section):  Add code to work properly with cold section.
9277         (function_section): Clean up if-statement.
9278         * config/darwin.c (darwin_asm_named_section): Return to original
9279         code, removing use of SECTION_FORMAT_STRING.
9280         * config/arm/pe.h (switch_to_section):  Add case for
9281         in_unlikely_executed_text to switch statement.
9282         * config/i386/cygming.h (switch_to_section): Likewise.
9283         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
9284         (SECTION_FORMAT_STRING): Likewise.
9285         * config/mcore/mcore.h (switch_to_section): Likewise.
9286         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
9287         (SECTION_FORMAT_STRING): Remove.
9288
9289 2004-08-18  Roger Sayle  <roger@eyesopen.com>
9290
9291         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
9292         -ffixed-reg safe, by preserving the meanings of zero and one.
9293         (CALL_USED_REGISTERS): Likewise.
9294         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
9295
9296 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9297
9298         * config/sh/sh.c (split_branches): Check the result of
9299         next_active_insn.
9300         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
9301         Call rtl_register_cfg_hooks.
9302
9303 2004-08-18  Richard Henderson  <rth@redhat.com>
9304
9305         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
9306         * alias.c (true_dependence): Update to match new semantics.
9307         (canon_true_dependence, write_dependence_p): Likewise.
9308         (anti_dependence, output_dependence): Update write_dependence_p args.
9309         (unchanging_anti_dependence): Remove.
9310         * calls.c (purge_mem_unchanging_flag): Remove.
9311         (fixup_tail_calls): Don't call it.
9312         (expand_call): Don't add unchanging memory to function usage.
9313         * expr.c (emit_block_move_via_libcall): Likewise.
9314         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
9315         (get_subtarget): Don't use RTX_UNCHANGING_P.
9316         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
9317         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
9318         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
9319         * cse.c (insert): Don't use RTX_UNCHANGING_P.
9320         (cse_insn, canon_hash): Use MEM_READONLY_P.
9321         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
9322         instead of RTX_UNCHANGING_P.
9323         * explow.c (maybe_set_unchanging): Remove.
9324         * expr.h (maybe_set_unchanging): Remove.
9325         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
9326         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
9327         (assign_parm_setup_reg, expand_function_start): Likewise.
9328         * integrate.c (copy_rtx_and_substitute): Likewise.
9329         * ra-rewrite.c (emit_colors): Likewise.
9330         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
9331         (fixup_match_1): Likewise.
9332         * reload1.c (reload, alter_reg): Likewise.
9333         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
9334         not RTX_UNCHANGING_P.
9335         (equiv_init_varies_p): Likewise.
9336         * loop-invariant.c (check_maybe_invariant): Likewise.
9337         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
9338         * loop.c (note_addr_stored): Likewise.
9339         (prescan_loop): Likewise. Don't check function usage for clobbered
9340         unchanging memory.
9341         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
9342         not RTX_UNCHANGING_P.
9343         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
9344         * varasm.c (force_const_mem): Likewise.
9345         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
9346         * web.c (entry_register): Likewise.
9347         * tree-gimple.h (get_base_address): Move decl ...
9348         * tree.h: ... here.
9349         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
9350
9351         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
9352         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
9353         (alpha_set_memflags): Update to match.
9354
9355         * config/darwin.c (machopic_indirect_data_reference): Set
9356         MEM_READONLY_P instead of RTX_UNCHANGING_P.
9357         (machopic_indirect_call_target): Likewise.
9358         (machopic_legitimize_pic_address): Likewise.
9359         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
9360         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
9361         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
9362         * config/frv/frv.md (symGOT2reg): Likewise.
9363         * config/i386/i386.c (legitimize_pic_address,
9364         legitimize_tls_address, ix86_split_to_parts): Likewise.
9365         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
9366         * config/ia64/ia64.md (load_fptr): Likewise.
9367         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
9368         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
9369         * config/mcore/mcore.c (block_move_sequence): Likewise.
9370         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
9371         * config/pa/pa.c (legitimize_pic_address): Likewise.
9372         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
9373         (rs6000_emit_move): Likewise.
9374         * config/s390/s390.c (legitimize_pic_address): Likewise.
9375         (legitimize_tls_address): Likewise.
9376         * config/s390/s390.md (casesi): Likewise.
9377         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
9378         * config/sh/sh.md (symGOT2reg): Likewise.
9379         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
9380         * config/v850/v850.md (casesi): Likewise.
9381
9382         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
9383         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
9384         * config/mips/mips.c (mips_restore_gp): Likewise.
9385         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
9386         * config/sh/sh.c (sh_reorg): Likewise.
9387
9388 2004-08-18  Richard Henderson  <rth@redhat.com>
9389
9390         * tree.h (struct tree_decl): Add gimple_formal_temp.
9391         (DECL_GIMPLE_FORMAL_TEMP_P): New.
9392         * gimplify.c (pop_gimplify_context): Clear it.
9393         (lookup_tmp_var): Set it, if is_formal.
9394         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
9395         Use is_gimple_val for VECTOR.  Simplify return value.
9396         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
9397         (gimplify_expr): Likewise.
9398         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
9399         is_gimple_tmp_rhs for clarity.  Update all callers.
9400         (is_gimple_reg_rhs): Simplify logic.
9401         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
9402         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
9403         (is_gimple_formal_tmp_reg): Similarly.
9404         * tree-gimple.h: Update decls.
9405         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
9406         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
9407         * tree-ssa-live.c (var_union, type_var_init): Likewise.
9408
9409 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
9410
9411         * c4x.c (legitimize_operands): Remove calls to
9412         preserve_subexpressions_p.
9413
9414 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
9415
9416         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
9417         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
9418
9419 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
9420
9421         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
9422         Objective-C++ extensions.
9423         * gengtype.c (get_file_basename): Match entire subdirectory name
9424         ('cp', 'objc', 'objcp') rather than just its suffix.
9425         (get_base_file_bitmap): Allow for files to belong to more than one
9426         language.
9427         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
9428         used by more than one front-end.
9429
9430 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
9431
9432         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
9433         avoid use of preserve_subexpressions_p.
9434
9435 2004-08-17  Richard Henderson  <rth@redhat.com>
9436
9437         PR 17051
9438         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
9439
9440 2004-08-17  DJ Delorie  <dj@redhat.com>
9441
9442         * doc/extend.texi: Document new xstormy16 attribute.
9443
9444         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
9445         (xstormy16_splittable_below100_or_register): New.
9446         (combine_bnp): New.
9447         (xstormy16_reorg): New.
9448         (TARGET_MACHINE_DEPENDENT_REORG): Define.
9449
9450         * config/stormy16/stormy16.md (movqi_internal): Make name public.
9451         (movhi_internal): Likewise.
9452         (cbhranchhi): Likewise.
9453         (cbhranchhi_neg): Likewise.
9454         (andhi3): Only allow splittable below100 operands.
9455         (iorhi3): Likewise.
9456         (peephole2): New and/zero_extend->and peephole.
9457         (peephole2): New load/ior/save->set1 peephole.
9458         (peephole2): New load/and/save->clr1 peephole.
9459         (bclrx, bclrx2, bclr7, bclr15): New.
9460         (bsetx, bsetx2, bset7, bset15): New.
9461
9462         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
9463         liberal about acceptable 'B' masks.
9464
9465         * config/stormy16/stormy16-protos.h
9466         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
9467         xstormy16_below100_operand, xstormy16_below100_or_register,
9468         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
9469         (PREDICATE_CODES): Add new predicates.
9470
9471         * config/stormy16/stormy16.c
9472         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
9473         xstormy16_below100_operand, xstormy16_below100_or_register,
9474         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
9475         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
9476         (xstormy16_legitimate_address_p): Allow below100 symbols.
9477         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
9478         (xstormy16_expand_move): Leave below100 operands as-is.
9479         (xstormy16_encode_section_info): Encode below100 symbols.
9480         (xstormy16_strip_name_encoding): New.
9481         (xstormy16_print_operand): Print 'b' as shift mask.
9482         (xstormy16_attribute_table): Add below100 attributes.
9483         (xstormy16_handle_below100_attribute): New.
9484
9485         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
9486         (XSTORMY16_SECTION_FUNCTION): New.
9487         (EXTRA_SECTION_FUNCTIONS): Define using the above.
9488         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
9489         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
9490         (ASM_OUTPUT_LABELREF): Define.
9491
9492         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
9493         (movhi_internal): Add below100 support.
9494         (andhi3): Add below100 support.
9495         (iorhi3): Add below100 support.
9496         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
9497
9498 2004-08-17  James E Wilson  <wilson@specifixinc.com>
9499
9500         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
9501         of VOIDmode for comparison code mode.
9502         * config/mips/mips.md: For conditional move patterns, use mode of
9503         first compare operand for comparison mode, instead of VOIDmode.
9504
9505         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
9506         normal and -ffast-math code.
9507
9508 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
9509
9510         PR c++/15871
9511         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
9512
9513 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
9514
9515         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
9516
9517 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
9518
9519         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
9520         for non Darwin targets.
9521         (*call_value_nonlocal_darwin64): Likewise.
9522
9523 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
9524
9525         * config/rs6000/rs6000.c (rs6000_function_value): Check for
9526         altivec mode for altivec return register.
9527
9528 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
9529
9530         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
9531         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
9532         * config/rs6000/rs6000.md: Include darwin.md.
9533         (builtin_setjmp_receiver): Add DImode case.
9534         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
9535         Darwin bits.
9536
9537 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
9538
9539         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
9540         trees.
9541         * tree-vectorizer.h: New File: Same.
9542         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
9543         * common.opt (ftree-vectorize): New flag to enable vectorization.
9544         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
9545         vectorization pass.
9546         * tree-data-ref.h (init_data_ref): Additional argument.
9547         (array_base_name_differ_p): Moved to tree-data-ref.c.
9548         * tree-data-ref.c (array_base_name_differ_p): Revised.
9549         (initialize_data_dependence_relation): Call array_base_name_differ_p
9550         with an extra argument.
9551         (analyze_all_data_dependences): Same.
9552         (init_data_ref): Additional argument is_read to set DR_IS_READ.
9553         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
9554         file.
9555         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
9556         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
9557         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
9558         vectorization pass.
9559         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
9560         (tree_ssa_loop_done): Call scev_finalize.
9561         (tree_vectorize): Define the new vectorization pass.
9562         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
9563         size of the vector they support (until support for multiple vector
9564         sizes is added to the vectorizer).
9565         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
9566         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
9567         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
9568         documentation.
9569
9570 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
9571
9572         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
9573         usage.
9574         (generate_protocol_list, handle_impent): Likewise.
9575
9576 2004-08-17  Roger Sayle  <roger@eyesopen.com>
9577
9578         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
9579         ensure that call_used_regs is a superset of both fixed_regs and
9580         call_really_used_regs.
9581
9582 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
9583
9584         PR target/17019
9585         * arm.md (addsi3_cbranch_scratch): Correct case labels.
9586
9587 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
9588
9589         PR middle-end/17036
9590         * fold-const.c (fold): Check for integer operand when
9591         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
9592         Pinski  <pinskia@physics.uc.edu>.
9593
9594 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
9595
9596         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
9597         No need to check if in a cross configuration.
9598         * configure: Regenerate.
9599
9600         * calls.c (precompute_register_parameters):
9601         Inline preserve_subexpressions_p ().
9602         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
9603         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
9604         Likewise.
9605         * expr.c (get_subtarget): Likewise.
9606         * rtl.h (preserve_subexpressions_p): Remove.
9607         * stmt.c (preserve_subexpressions_p): Remove.
9608
9609         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
9610         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
9611         Abort on gimplified cases.
9612
9613 2004-08-16  James E Wilson  <wilson@specifixinc.com>
9614
9615         * tree.h (VECTOR_FLOAT_TYPE_P): New.
9616         (FLOAT_TYPE_P): Use it.
9617         * c-typeck.c (build_binary_op): After convert calls, check for
9618         check for ERROR_MARK operands.
9619
9620 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
9621
9622         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
9623         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
9624         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
9625         (genobjs static pattern rule): Remove %.c dependency.
9626         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
9627         Rename rules; delete commands; fix dependencies.
9628         (mostlyclean): Do not delete temporary source copies.
9629         * configure.ac: Delete all references to BUILD_PREFIX and
9630         BUILD_PREFIX_1.
9631         * configure: Regenerate.
9632
9633         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
9634         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
9635         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
9636         with #ifndef GENERATOR_FILE so that nothing from those headers
9637         is used.
9638
9639         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
9640
9641 2004-08-16  Adam Nemet  <anemet@lnxw.com>
9642
9643         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
9644
9645 2004-08-16  Andrew Pinski  <apinski@apple.com>
9646
9647         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
9648         extraneous semicolon.
9649
9650 2004-08-16  Devang Patel  <dpatel@apple.com>
9651
9652         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
9653         * print-tree.c (print_node): Print DECL_PRESERVE_P.
9654         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
9655         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
9656         * target.h (struct gcc_target): New member, mark_decl_preserved.
9657         * hooks.c (hook_void_charptr): Rename to ...
9658         (hook_void_constcharptr): ... new name.
9659         * hooks.h (hook_void_charptr): Rename to ..
9660         (hook_void_constcharptr): ... new name.
9661         * tree.h (DECL_PRESERVE_P): New #define.
9662         (struct tree_decl): New member, preserve_flag.
9663         * varasm.c (assemble_start_function): Mark decl preserved.
9664         (assemble_variable): Same.
9665         * darwin.c (darwin_mark_decl_preserved): New function.
9666         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
9667         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
9668         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
9669
9670 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
9671
9672         * c-decl.c (grokdeclarator): Allow for function definition where
9673         innermost declarator has attributes.
9674
9675 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
9676
9677         * except.c (get_exception_filter, build_post_landing_pads,
9678         dw2_build_landing_pads): Use target-specific mode for 'filter'.
9679         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
9680         * target.h (eh_return_filter_mode): New field added.
9681         * targhooks.c (default_eh_return_filter_mode): Defined.
9682         * targhooks.h (default_eh_return_filter_mode): Declared.
9683         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
9684
9685 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9686
9687         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
9688         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
9689         * configure: Regenerate.
9690
9691 2004-08-16  Stan Shebs  <shebs@apple.com>
9692
9693         Basic support for 64-bit Darwin.
9694         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
9695         (machopic_legitimize_pic_address): Similarly, plus use Pmode
9696         instead of SImode.
9697         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
9698         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
9699         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
9700         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
9701         (PROCESSOR_DEFAULT64): Define.
9702         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
9703         Darwin.
9704         * config/rs6000/rs6000.md: Include darwin.md.
9705         (builtin_setjmp_receiver): Add DImode case.
9706         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
9707         Darwin.
9708         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
9709         (rs6000_emit_move): Add DImode case to Darwin bits.
9710         (machopic_output_stub): Use .quad if 64-bit.
9711         * invoke.texi: Document -m32 and -m64.
9712
9713 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
9714
9715         * doc/extend.texi (AltiVec builtins): Document additional differences
9716         from the Motorola AltiVec PIM.
9717
9718 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
9719
9720         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
9721         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
9722         (struct tree_common): Update public_flag documentation.
9723
9724 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
9725
9726         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9727         Check for artificial variables, not is_gimple_tmp_var.
9728         * tree-ssa-live.c (var_union): Likewise.
9729
9730 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
9731
9732         * calls.c (load_register_parameters): Remove spurious FIXME token.
9733
9734 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
9735
9736         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
9737         (c-lang.o): Depend on c-objc-common.h.
9738         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
9739         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
9740         * c-lang.c: Include c-objc-common.h.
9741         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
9742         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
9743         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
9744         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
9745         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
9746         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
9747         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
9748         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
9749         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
9750         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
9751         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
9752         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
9753         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
9754         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
9755         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
9756         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
9757         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
9758         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
9759         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
9760         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
9761         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
9762         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
9763         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
9764         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
9765         Move to c-objc-common.h.
9766         * c-objc-common.c: Include c-objc-common.h.
9767         * c-objc-common.h: New file.
9768
9769 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
9770             Andrew Pinski  <pinskia@physics.uc.edu>
9771
9772         PR target/14931
9773         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
9774         style.
9775
9776 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
9777
9778         * tree.h (build_int_cst): New.
9779         (build_int_2): Remove.
9780         * tree.c (build_int_2): Remove.
9781         (build_int_cst): New.
9782         (make_vector_type, build_common_tree_nodes,
9783         build_common_tree_nodes_2): Use build_int_cst.
9784         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
9785         expand_builtin_strpbrk, expand_builtin_fputs,
9786         build_string_literal, expand_builtin_printf,
9787         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
9788         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
9789         fold_builtin_isdigit, simplify_builtin_strstr,
9790         simplify_builtin_strpbrk, fold_builtin_fputs,
9791         simplify_builtin_sprintf): Use build_int_cst.
9792         * c-common.c (start_fname_decls, fix_string_type,
9793         c_common_nodes_and_builtins, c_init_attributes,
9794         shorten_compare): Likewise.
9795         * c-decl.c (complete_array_type,
9796         check_bitfield_type_and_width): Likewise.
9797         * c-lex.c (interpret_integer, lex_charconst): Likewise.
9798         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
9799         * c-pretty-print.c (pp_c_integer_constant): Likewise.
9800         * c-typeck.c (really_start_incremental_init, push_init_level,
9801         set_nonincremental_init_from_string): Likewise.
9802         * calls.c (load_register_parameters): Likewise.
9803         * convert.c (convert_to_pointer): Likewise.
9804         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
9805         build_fn_info_type, build_ctr_info_value, build_gcov_info):
9806         Likewise.
9807         * except.c (init_eh, assign_filter_values, assign_filter_values):
9808         Likewise.
9809         * expmed.c (store_fixed_bit_field, extract_bit_field,
9810         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
9811         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
9812         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
9813         * expr.c (convert_move, emit_group_load, emit_group_store,
9814         expand_assignment, store_constructor, store_field,
9815         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
9816         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
9817         invert_truthvalue, optimize_bit_field_compare,
9818         decode_field_reference, all_ones_mask_p, constant_boolean_node,
9819         fold_div_compare, fold, fold_read_from_constant_string,
9820         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
9821         * function.c (assign_parm_setup_block): Likewise.
9822         * stmt.c (shift_return_value, expand_end_case_type,
9823         estimate_case_costs): Likewise.
9824         * stor-layout.c (layout_type, initialize_sizetypes,
9825         set_min_and_max_values_for_integral_type): Likewise.
9826         * tree-chrec.c (chrec_fold_multiply_poly_poly,
9827         reset_evolution_in_loop): Likewise.
9828         * tree-chrec.h (build_polynomial_chrec): Likewise.
9829         * tree-complex.c (build_replicated_const): Likewise.
9830         * tree-eh.c (honor_protect_cleanup_actions,
9831         lower_try_finally_onedest, lower_try_finally_copy,
9832         lower_try_finally_switch): Likewise.
9833         * tree-mudflap.c (mf_build_string, mx_register_decls,
9834         mudflap_register_call, mudflap_enqueue_constant): Likewise.
9835         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
9836         * tree-pretty-print.c (dump_generic_node): Likewise.
9837         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
9838         Likewise.
9839         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
9840         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9841         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
9842         Likewise.
9843
9844         * config/alpha/alpha.c (alpha_initialize_trampoline,
9845         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
9846         * config/arm/arm.c (arm_get_cookie_size): Likewise.
9847         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
9848         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
9849         * config/i860/i860.c (i860_va_start): Likewise.
9850         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9851         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
9852         mips_gimplify_va_arg_expr): Likewise.
9853         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9854         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
9855         add_compiler_branch_island): Likewise.
9856         * config/s390/s390.c (s390_va_start): Likewise.
9857         * config/sh/sh.c (sh_va_start): Likewise.
9858         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9859         Likewise.
9860         * config/xtensa/xtensa.c (xtensa_va_start,
9861         xtensa_gimplify_va_arg_expr): Likewise.
9862
9863         * objc/objc-act.c (build_objc_string_object,
9864         build_objc_symtab_template, init_def_list, init_objc_symtab,
9865         init_module_descriptor, generate_static_references,
9866         build_selector_translation_table, get_proto_encoding,
9867         build_typed_selector_reference, build_selector_reference,
9868         build_next_objc_exception_stuff,
9869         build_method_prototype_list_template, generate_descriptor_table,
9870         generate_protocols, build_protocol_initializer,
9871         build_ivar_list_template, build_method_list_template,
9872         build_ivar_list_initializer, generate_ivars_list,
9873         generate_dispatch_table, generate_protocol_list,
9874         build_category_initializer, build_shared_structure_initializer,
9875         generate_shared_structures, handle_impent,
9876         generate_objc_image_info): Use build_int_cst.
9877
9878 2004-08-15  Ben Elliston  <bje@au.ibm.com>
9879
9880         * vec.h: Comment improvements.
9881
9882 2004-08-14  Roger Sayle  <roger@eyesopen.com>
9883
9884         * c-common.c (shorten_compare, pointer_int_sum,
9885         c_common_truthvalue_conversion, boolean_increment): Replace calls
9886         to build with calls to buildN.
9887         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
9888         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
9889         gimplify_switch_stmt): Likewise.
9890         * c-typeck.c (default_function_array_conversion,
9891         build_component_ref, build_array_ref, build_function_call,
9892         pointer_diff, build_unary_op, build_conditional_expr,
9893         build_compound_expr, build_modify_expr, c_finish_goto_label,
9894         c_finish_goto_ptr, c_finish_return, c_finish_loop,
9895         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
9896         build_binary_op): Likewise.
9897
9898 2004-08-15  Steven Bosscher  <stevenb@suse.de>
9899
9900         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
9901
9902 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9903
9904         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
9905         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
9906         * fixinc/fixincl.x: Rebuilt.
9907
9908 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
9909
9910         * config/mips/mips-protos.h (mips_symbolic_constant_p)
9911         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
9912         (mips_small_data_pattern_p): Declare.
9913         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
9914         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
9915         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
9916         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
9917         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
9918         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
9919         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
9920         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
9921         (pc_or_label_operand, call_insn_operand, move_operand)
9922         (consttable_operand, symbolic_operand, general_symbolic_operand)
9923         (global_got_operand, local_got_operand, stack_operand)
9924         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
9925         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
9926         (mips_small_data_pattern_p): Replace previous small_data_pattern
9927         predicate.  Turn into a bool () (rtx) function.
9928         * config/mips/predicates.md: New file.
9929         * config/mips/mips.md: Include it.  Use the target-independent
9930         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
9931         trap_comparison_operator and equality_op to equality_operator.
9932         Replace uses of small_int with the equivalent const_arith_operand.
9933         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
9934         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
9935         to fcc_reload_operand.
9936         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
9937
9938 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9939
9940         PR libstdc++/17005 partial fix.
9941         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
9942         except when generating ANSI/C89 code.
9943
9944 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
9945
9946         * c-common.c (shorten_compare): Use force_fit_type directly.
9947
9948 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
9949             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
9950             Dave Korn  <dk@artimi.com>
9951
9952         * doc/install.texi (Building): Avoid duplicate reference to GNU
9953         make requirement.
9954         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
9955
9956 2004-08-14  Richard Henderson  <rth@redhat.com>
9957
9958         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
9959         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
9960
9961 2004-08-13  Richard Henderson  <rth@redhat.com>
9962
9963         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
9964         for constant_call_address_operand.
9965         (call_value_pop_1, call_value_1): Likewise.
9966         (sibcall_value_1, call_value_1_rex64): Likewise.
9967
9968 2004-08-13  James E Wilson  <wilson@specifixinc.com>
9969
9970         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
9971         Correct mode from SFmode to DFmode.
9972
9973 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
9974
9975         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
9976         __cstring_object and __image_info sections with the no_dead_strip
9977         attribute.
9978
9979 2004-08-13  Roger Sayle  <roger@eyesopen.com>
9980             David Billinghurst  <David.Billinghurst@riotinto.com>
9981
9982         PR libgfortran/15930
9983         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
9984         * fixinc/fixincl.x: Regenerate.
9985         * fixinc/tests/base/internal/math_core.h: New file.
9986
9987 2004-08-13  Richard Henderson  <rth@redhat.com>
9988
9989         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
9990         (dbxout_function_end): Remove ifdefs for it.
9991         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
9992
9993 2004-08-13  Richard Henderson  <rth@redhat.com>
9994
9995         * Makefile.in (insn-preds.o): Depend on TREE_H.
9996         * genpreds.c (write_insn_preds_c): Include tree.h.
9997         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
9998         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
9999         const48_operand, and_operand, or_operand, mode_width_operand,
10000         mode_mask_operand, mul8_operand, const0_operand,
10001         hard_fp_register_operand, hard_int_register_operand,
10002         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
10003         samegp_function_operand, direct_call_operand, small_symbolic_operand,
10004         global_symbolic_operand, call_operand, symbolic_operand,
10005         dtp16_symbolic_operand, dtp32_symbolic_operand,
10006         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
10007         gottp_symbolic_operand, alpha_comparison_operator,
10008         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
10009         signed_comparison_operator, alpha_fp_comparison_operator,
10010         divmod_operator, fix_operator, aligned_memory_operand,
10011         unaligned_memory_operand, reg_or_unaligned_mem_operand,
10012         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
10013         reg_no_subreg_operand, addition_operation): Move to predicates.md.
10014         (reg_or_const_int_operand): Remove.  Replace all users with
10015         reg_or_cint_operand.
10016         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
10017         (resolve_reload_operand): Split out of aligned_memory_operand.
10018         * config/alpha/alpha-protos.h: Update for exports.
10019         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
10020         * config/alpha/alpha.md: Include predicates.md.
10021         * config/alpha/predicates.md: New file.
10022
10023 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
10024
10025         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
10026         fields with a pointer to the instruction definition.
10027         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
10028         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
10029         (write_attr_case, write_const_num_delay_slots): Update accordingly.
10030         (write_attr_case, write_const_num_delay_slots): Write the name of
10031         an insn next to its case statement.
10032         * genoutput.c (data): Add a filename field.
10033         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
10034         (output_insn_data): Print the location of each insn definition.
10035         * genrecog.c (write_action): Print the name of an insn above
10036         the statement that returns its code.
10037
10038 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
10039
10040         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
10041         * config/libgloss.h: Likewise.
10042         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
10043         * c4x/c4x-modes.def: Likewise.
10044         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
10045         (c4x_rptb_nop_p): Likewise.
10046         (c4x_rptb_valid_p): Likewise.
10047         (c4x_rptb_insert): Likewise.
10048         (c4x_address_conflict): Likewise.
10049         * config/c4x/c4x.md: Likewise.
10050         * config/frv/frv.md: Likewise.
10051         * config/i386/athlon.md: Likewise.
10052         * config/i386/i386.md: Likewise.
10053         * config/i386/predicates.md: Likewise.
10054         * config/ia64/ia64.c: Likewise.
10055         * config/ia64/itanium1.md: Likewise.
10056         * config/ia64/itanium2.md: Likewise.
10057         * config/iq2000/iq2000.md: Likewise.
10058         * config/mcore/mcore.c: Likewise.
10059         * config/mips/mips.c: Likewise.
10060         * config/mips/r3900.h: Likewise.
10061         * config/mips/sb1.md: Likewise.
10062         * config/pa/milli64.S: Likewise.
10063         * config/pa/pa.c: Likewise.
10064         * config/pa/pa.h: Likewise.
10065         * config/rs6000/8540.md: Likewise.
10066
10067 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
10068
10069         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
10070
10071 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
10072
10073         * sh.md (cbranch define_delay) Use cond_delay_slot for
10074         non-anulled condition too.
10075
10076 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
10077
10078         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
10079         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
10080         any_parallel_operand, lmw_operation, stmw_operation,
10081         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
10082         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
10083         any_parallel_operand.
10084         (return_and_restore_fpregs_{si,di}): Same.
10085
10086 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
10087
10088         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
10089         if pred->singleton != PARALLEL, issue a warning and pretend it was.
10090         Also issue a warning for any predicate we don't know about.
10091
10092 2004-08-12  Richard Henderson  <rth@redhat.com>
10093
10094         * config/i386/i386.c (internal_label_prefix): Export.
10095         (internal_label_prefix_len, struct ix86_address,
10096         ix86_decompose_address, maybe_get_pool_constant,
10097         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
10098         memory_address_length): Export.
10099         (any_fp_register_operand, fp_register_operand,
10100         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
10101         x86_64_general_operand, x86_64_szext_general_operand,
10102         x86_64_nonmemory_operand, x86_64_movabs_operand,
10103         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
10104         x86_64_zext_immediate_operand, const_int_1_31_operand,
10105         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
10106         tls_symbolic_operand, global_dynamic_symbolic_operand,
10107         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
10108         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
10109         constant_call_address_operand, const0_operand, const1_operand,
10110         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
10111         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
10112         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
10113         general_no_elim_operand, nonmemory_no_elim_operand,
10114         index_register_operand, q_regs_operand, flags_reg_operand,
10115         non_q_regs_operand, zero_extended_scalar_load_operand,
10116         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
10117         ix86_comparison_operator, ix86_carry_flag_operator,
10118         fcmov_comparison_operator, promotable_binary_operator,
10119         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
10120         mult_operator, div_operator, arith_or_logical_operator,
10121         memory_displacement_operand, cmpsi_operand, long_memory_operand,
10122         aligned_operand): Move to predicates.md as define_predicates.
10123         (tls_symbolic_operand_1): Remove.
10124         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
10125         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
10126         (legitimize_address): Merge tls_symbolic_operand contents.
10127         (ix86_expand_move): Likewise.
10128         * config/i386/i386-protos.h: Update for exports.
10129         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
10130         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
10131         * config/i386/i386.md: Include predicates.md.
10132         * config/i386/predicates.md: New file.
10133
10134 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
10135
10136         PR c++/16924
10137         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
10138         SYMBOL_REF_DECL.
10139         (i386_pe_mark_dllimport): Likewise.
10140         (i386_pe_encode_section_info): Likewise, when overriding
10141         dllimport attribute.
10142
10143 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
10144
10145         * configure.ac: When testing for flex, nm, ar, and bison, check
10146         that they will actually be built.
10147         * configure: Regenerate.
10148
10149 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
10150
10151         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
10152         (MOVE_MAX_PIECES): Define.
10153
10154 2004-08-12  Devang patel  <dpatel@apple.com>
10155
10156         * dbxout.c (dbxout_begin_prologue): New function.
10157         (dbx_debug_hooks): Use new begin prologue hook.
10158         (dbxout_function_end): Emit N_ENSYM.
10159         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
10160
10161 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
10162
10163         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
10164         argument is float*.
10165
10166         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
10167         for vec_dss.
10168
10169         * doc/extend.texi (AltiVec builtins): Fix description for recent
10170         changes.  Update operation list to match current support.
10171
10172 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
10173
10174         * config/s390/s390.c (struct s390_frame_layout): New struct as element
10175         of struct machine_function.
10176         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
10177         changed all uses.
10178         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
10179         changed all uses.
10180         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
10181         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
10182         (s390_frame_area, s390_register_info): New functions.
10183         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
10184         for base register.
10185         (s390_return_addr_rtx, s390_return_address_offset)
10186         (s390_va_start, s390_gimplify_va_arg)
10187         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
10188         layouts.
10189         (s390_frame_info): Functionality partly moved to s390_register_info.
10190         Made adaptions for new stack layout.
10191         (save_gprs, restore_gprs): Changed meaning of second parameter and
10192         adapted all callers.
10193
10194         * config/s390/s390.h (s390_backchain_string): New global variable.
10195         (MASK_BACKCHAIN): Removed definition.
10196         (TARGET_BACKCHAIN): Changed check.
10197         (TARGET_KERNEL_BACKCHAIN): New macro.
10198         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
10199         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
10200         "kernel-backchain".
10201         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
10202
10203         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
10204         as condition.  Adjusted for new stack layout.
10205
10206         * doc/invoke.texi: Added documentation for new option
10207         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
10208         "-mno-backchain".
10209
10210 2004-08-12  Paul Brook  <paul@codesourcery.com>
10211
10212         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
10213         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
10214
10215 2004-08-12  David Daney  <ddaney@avtrex.com>
10216
10217         * java/gcj.texi:  Add subsection on signal usage.
10218
10219 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
10220
10221         * expr.c (move_by_pieces): Set alignment for move to minimum of
10222         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
10223         alignment, but not less than the original alignment.
10224         (move_by_pieces_ninsns): Same.
10225         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
10226         (store_by_pieces_1): Same.
10227
10228 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
10229
10230         PR tree-optimization/16867
10231         * tree.c (is_global_var): New function.
10232         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
10233         Call is_global_var.
10234         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
10235         Update all users.
10236         (is_global_var): Declare.
10237         * tree-dfa.c (dump_variable): Display global and addressable
10238         attributes.
10239         (add_referenced_var): Clarify documentation when marking
10240         variables call-clobbered.
10241         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
10242         instead of needs_to_live_in_memory.
10243         (mark_call_clobbered): If the variable is a tag, mark it
10244         DECL_EXTERNAL.
10245         * tree-gimple.c (is_gimple_reg): Don't check for
10246         TREE_ADDRESSABLE.
10247         (is_gimple_non_addressable): Likewise.
10248         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
10249         needs to be marked call-clobbered.
10250         (setup_pointers_and_addressables): Call is_global_var instead
10251         of needs_to_live_in_memory.
10252         * tree-ssa-dce.c (need_to_preserve_store): Remove.
10253         Update all users with is_global_var.
10254         (mark_stmt_if_obviously_necessary): Fix processing of aliased
10255         stores.  Don't check the virtual definitions.  Rather, check
10256         whether the store is going into global memory.
10257         (find_obviously_necessary_stmts): Get the symbol from the PHI
10258         result.
10259         * tree-ssa-operands.c (get_call_expr_operands): Do not add
10260         clobbering may-defs if the call does not have side effects.
10261
10262 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
10263
10264         PR c++/16276
10265         * output.h (default_function_rodata_section,
10266         default_no_function_rodata_section): New prototypes.
10267         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
10268         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
10269         (TARGET_ASM_OUT): Add it.
10270         * varasm.c (default_function_rodata_section,
10271         default_no_function_rodata_section): New functions.
10272         * final.c (final_scan_insn): Call
10273         targetm.asm_out.function_rodata_section instead of
10274         readonly_data_section.
10275         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
10276         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10277         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10278         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
10279         Likewise.
10280         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10281         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
10282         Likewise.
10283         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
10284         Likewise.
10285         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10286         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
10287         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
10288
10289 2004-08-12  Paul Brook  <paul@codesourcery.com>
10290
10291         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
10292         frame info.
10293         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
10294         DWARF2_UNWIND_INFO.
10295
10296 2004-08-12  Ben Elliston  <bje@au.ibm.com>
10297
10298         PR target/16286
10299         * config/rs6000/altivec.h: Change vector to __vector throughout.
10300         (Except for the `vector' macro itself).
10301
10302 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
10303
10304         * genpreds.c: Add capability to generate predicate bodies as
10305         well as function prototypes.  Write function prototypes for
10306         the generic predicates too.
10307         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
10308         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
10309         (write_match_code, write_predicate_expr, write_one_predicate_function)
10310         (parse_option): New functions.
10311         (output_predicate_decls): Delete.
10312         (main): Read the machine description, process DEFINE_PREDICATE or
10313         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
10314         as appropriate.
10315
10316         * genrecog.c (struct decision_test): Replace index with
10317         struct pred_data pointer.
10318         (next_index): Remove, unused.
10319         (pred_table, preds, special_mode_pred_table): Delete.
10320         (compute_predicate_codes, process_define_predicate): New functions.
10321         (validate_pattern, add_to_sequence, write_switch): Update for
10322         new data structures.
10323         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
10324         Check both error_count and have_error.
10325
10326         * gensupport.c (in_fname, first_predicate): New globals.
10327         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
10328         (predicate_table, last_predicate, old_pred_table)
10329         (old_special_pred_table): New statics.
10330         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
10331         (add_predicate, init_predicate_table): New functions.
10332         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
10333         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
10334         it or max_include_len.  Call init_predicate_table.
10335         (read_rtx): Run the predicate queue after the attribute queue
10336         but before all the others.
10337         * gensupport.h (in_fname, struct pred_data, first_predicate)
10338         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
10339         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
10340         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
10341         * dummy-conditions.c: Don't include bconfig.h, system.h,
10342         coretypes.h, tm.h, or system.h.  Do include stddef.h.
10343         Duplicate declaration of struct c_test from gensupport.h.
10344
10345         * Makefile.in (OBJS-common): Add insn-preds.o.
10346         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
10347         (insn-preds.c, insn-preds.o): New rules.
10348         (s-preds): Also generate insn-preds.c.
10349         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
10350         Update dependencies.
10351         (print-rtl.o, print-rtl1.o): Correct dependencies.
10352
10353         * recog.h: Delete prototypes of predicate functions.
10354
10355         * doc/md.texi (Predicates): New section with complete
10356         documentation of operand/operator predicates.  Remove some
10357         incomplete documentation of predicates from other places.
10358         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
10359         PREDICATE_CODES; indicate that both are deprecated in favor
10360         of define_predicate/define_special_predicate.
10361
10362         * config/ia64/ia64.c: All predicate function definitions moved
10363         to ia64.md, except
10364         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
10365         (ia64_expand_load_address, ia64_expand_move):
10366         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
10367
10368         * config/ia64/ia64.md: All predicates now defined here.
10369         (symbolic_operand): Is now a special predicate.
10370
10371         * config/ia64/ia64.h: Declare ia64_section_threshold.
10372         (PREDICATE_CODES): Delete.
10373
10374 2004-08-12  Richard Henderson  <rth@redhat.com>
10375
10376         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
10377         * c-semantics.c (add_stmt): Set it.
10378         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
10379         before instantiating a variable sized type.
10380
10381 2004-08-12  Richard Henderson  <rth@redhat.com>
10382
10383         * stor-layout.c (round_up, round_down): Move ...
10384         * fold-const.c (round_up, round_down): ... here.  Use
10385         multiple_of_p to avoid any arithmetic at all.
10386
10387 2004-08-12  Richard Henderson  <rth@redhat.com>
10388
10389         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
10390         (gimplify_init_ctor_preeval_1): New.
10391         (gimplify_init_ctor_preeval): New.
10392         (gimplify_init_ctor_eval): New.
10393         (gimplify_init_constructor): Use them.  Always gimplify the LHS
10394         object first.
10395
10396 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
10397
10398         (This patch is part of merge of objc-improvements-branch
10399         into mainline.)
10400
10401         * doc/frontends.texi: Mention Objective-C++ in addition to
10402         Objective-C.
10403         * doc/install.texi: Add 'obj-c++' to list of configurable
10404         languages.
10405         * doc/invoke.texi: Rename Objective-C option headings to
10406         indicate they also apply to Objective-C++.  List file
10407         extensions for Objective-C++ sources.  Mention that
10408         ObjC and ObjC++ compilations may also use C and C++ options,
10409         respectively.  Point users to doc/standards.texi for
10410         further info on ObjC and ObjC++.
10411         * doc/sourcebuild.texi: Mention the objcp/ directory and
10412         the Objective-C++ sources it contains.
10413         * doc/standards.texi: Update link to Apple ObjC site;
10414         add link to gcc readings.html WWW doc.
10415
10416 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
10417
10418         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
10419         and 2004-07-14 changes.
10420
10421 2004-08-12  Paul Brook  <paul@codesourcery.com>
10422
10423         * doc/invoke.texi: Fix typo.
10424
10425 2004-08-11 Devang Patel  <dpatel@apple.com>
10426
10427         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
10428         and -no_dead_strip_inits_and_terms.
10429         (LINK_SPEC): Same.
10430         * doc/invoke.texi (Darwin Options): Document -dead_strip and
10431         -no_dead_strip_inits_and_terms.
10432
10433 2004-08-11  Paul Brook  <paul@codesourcery.com>
10434
10435         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
10436         (arm_load_pic_register): ... to this.
10437         * config/arm/arm.c (arm_finalize_pic): Rename ...
10438         (arm_load_pic_register): ... to this.  Always output insns at the
10439         current location.  Load via low reg in thumb mode.
10440         (arm_expand_prologue): Call arm_load_pic_register.
10441         (thumb_expand_prologue): Ditto.
10442         * config/arm/arm.h (FINALIZE_PIC): Remove.
10443         * config/arm/arm.md (builtin_setjmp_receiver): Call
10444         arm_load_pic_register.
10445
10446 2004-08-11  Paul Brook  <paul@codesourcery.com>
10447
10448         * arm.c (thumb_force_lr_save): Add prototype.
10449         (thumb_compute_save_reg_mask): New function.
10450         (thumb_find_work_register): New function.
10451         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
10452         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
10453         Don't clobber r3 when removing pretend args.
10454         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
10455         (thumb_output_function_prologue): Use new functions.
10456         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
10457         * arm.h (THUMB_REG_PUSHED_P): Remove.
10458
10459 2004-08-11  James E Wilson  <wilson@specifixinc.com>
10460
10461         PR rtl-optimization/16490
10462         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
10463         global_live_at_end for new basic block if already set for other blocks.
10464
10465 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
10466
10467         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
10468
10469         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
10470         (mfcr rlwinm rlwinm patterns): Set length to 12.
10471
10472 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
10473
10474         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
10475         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
10476         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
10477         (start_ssa_stmt_operands): Delete.
10478         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
10479         struct stmt_operands_d.
10480         (build_ssa_operands): New extern entry point.
10481         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
10482         building code, replace with create_ssa_artficial_load_stmt().
10483         * tree-ssa-operands.c (struct voperands_d): Delete.
10484         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
10485         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
10486         (free_uses, free_defs, free_vuses, free_v_may_defs,
10487         free_v_must_defs): Remove dealloc parameter.
10488         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
10489         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
10490         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
10491         vector comparisons, ssa_name reuse, and allocations here.
10492         (verify_start_operands): Delete.
10493         (finalize_ssa_stmt_operands): Set new operands by calling finalize
10494         routines.
10495         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
10496         (append_def, append_usei): Simplify to simple accumulation.
10497         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
10498         duplicates and simple accumulation.
10499         (free_ssa_operands): Free vectors in a stmt_operand structure.
10500         (build_ssa_operands): New. Create a new stmt_operand structure from
10501         a stmt and an old set of stmt_operands.
10502         (get_stmt_operands): Simplify and call build_ssa_operands.
10503         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
10504         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
10505         add_call_read_ops): Don't pass prev_vops around anymore.
10506         (note_addressable): Return if no stmt annotation.
10507         (copy_virtual_operands): Access v_may_def operands through a struct.
10508         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
10509         hash tables without treating the stmt as a real stmt.
10510         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
10511         v_may_def def and use through a struct instead of 2 array elements.
10512         (struct v_may_def_optype_d): Use v_may_def_operand_type.
10513         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
10514
10515 2004-08-11  Nick Clifton  <nickc@redhat.com>
10516
10517         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
10518         this funciton's behaviour.  Return true when the current function
10519         has a section attribute and -mlong-calls is in effect.
10520         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
10521         short-call marker when -mlong-calls is in effect and the function
10522         has a section attribute.
10523
10524 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
10525
10526         * stmt.c (expand_return): If asked to return the RESULT_DECL,
10527         just call expand_value_return on result_rtl.
10528
10529 2004-08-10  Richard Henderson  <rth@redhat.com>
10530
10531         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
10532         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
10533         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
10534         (add_location_or_const_value_attribute): ... not here.  Use
10535         loc_descriptor_from_tree if possible.
10536         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
10537         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
10538         values specially.
10539         (loc_descriptor_from_tree): New.  Update callers.
10540         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
10541         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
10542         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
10543         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
10544         and BUILT_IN_STACK_RESTORE.
10545         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
10546         * stmt.c (expand_stack_alloc): Remove.
10547         * tree-mudflap.c (mx_register_decls): Don't look for
10548         BUILT_IN_STACK_ALLOC.
10549         * tree-nested.c (convert_local_reference): Likewise.
10550         * tree.h (DECL_VALUE_EXPR): New.
10551
10552 2004-08-10  Richard Henderson  <rth@redhat.com>
10553
10554         * stor-layout.c (round_up): Check for 0/1 before dividing.
10555         (round_down): Likewise.
10556
10557         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
10558
10559 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
10560
10561         * config.gcc (arm*-*-eabi*): New target.
10562         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
10563         (TARGET_LIB_INT_CMP_BIASED): Likewise.
10564         * expmed.c (expand_divmod): Try a two-valued divmod function as a
10565         last resort.
10566         * gthr.h: Remove bogus tokens at end of #pragma.
10567         * optabs.c (expand_twoval_binop_libfunc): New function.
10568         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
10569         (prepare_float_lib_cmp): Try reversing the condition.
10570         (debug_optab_libfuncs): New function.
10571         * optabs.h (expand_twoval_binop_libfunc): Declare.
10572         * config/arm/arm.c (arm_init_libfuncs): New function.
10573         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
10574         (TARGET_INIT_LIBFUNCS): Define it.
10575         * config/arm/arm.h (TARGET_BPABI): New macro.
10576         * config/arm/arm-protos.h
10577         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
10578         * config/arm/bpabi.S: New file.
10579         * config/arm/bpabi.c: Likewise.
10580         * config/arm/bpabi.h: Likewise.
10581         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
10582         (__aeabi_drsub): Likewise.
10583         (__aeabi_dsub): Likewise.
10584         (__aeabi_dadd): Likewise.
10585         (__aeabi_ui2d): Likewise.
10586         (__aeabi_i2d): Likewise.
10587         (__aeabi_f2d): Likewise.
10588         (__aeabi_dmul): Likewise.
10589         (__aeabi_ddiv): Likewise.
10590         (__aeabi_cdrcmple): Likewise.
10591         (__aeabi_cdcmpeq): Likewise.
10592         (__aeabi_cdcmple): Likewise.
10593         (__aeabi_dcmpeq): Likewise.
10594         (__aeabi_dcmplt): Likewise.
10595         (__aeabi_dcmple): Likewise.
10596         (__aeabi_dcmpge): Likewise.
10597         (__aeabi_dcmpgt): Likewise.
10598         (__aeabi_dcmpun): Likewise.
10599         (__aeabi_d2iz): Likewise.
10600         (__aeabi_d2uiz): Likewise.
10601         (__aeabi_d2f): Likewise.
10602         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
10603         (__aeabi_frsub): Likewise.
10604         (__aeabi_fsub): Likewise.
10605         (__aeabi_fadd): Likewise.
10606         (__aeabi_ui2f): Likewise.
10607         (__aeabi_i2f): Likewise.
10608         (__aeabi_fmul): Likewise.
10609         (__aeabi_fdiv): Likewise.
10610         (__aeabi_cfrcmple): Likewise.
10611         (__aeabi_cfcmpeq): Likewise.
10612         (__aeabi_cfcmple): Likewise.
10613         (__aeabi_fcmpeq): Likewise.
10614         (__aeabi_fcmplt): Likewise.
10615         (__aeabi_fcmple): Likewise.
10616         (__aeabi_fcmpge): Likewise.
10617         (__aeabi_fcmpgt): Likewise.
10618         (__aeabi_fcmpun): Likewise.
10619         (__aeabi_f2iz): Likewise.
10620         (__aeabi_f2uiz): Likewise.
10621         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
10622         (__aeabi_uidivmod): New function or alias.
10623         (__aeabi_idivmod): Likewise.
10624         (__aeabi_idiv0): Likewise.
10625         (__aeabi_ldiv0): Likewise.
10626         (__aeabi_llsr): Likewise.
10627         (__aeabi_lasr): Likewise.
10628         (__aeabi_llsl): Likewise.
10629         (bpabi.S): Include it.
10630         * config/arm/libgcc-bpabi.ver: New file.
10631         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
10632         (LINK_SPEC): Remove.
10633         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
10634         __aeabi_ulcmp.
10635         * config/arm/t-bpabi: New file.
10636         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
10637         (TARGET_LIB_INT_CMP_BIASED): Likewise.
10638
10639 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
10640
10641         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
10642         * config/rs6000/rs6000.md (clrmemsi): New pattern.
10643         * config/rs6000/rs6000.c (expand_block_clear): New function.
10644         (expand_block_move): Convert alignment to bits.  Use SImode and
10645         HImode for unaligned addresses if not STRICT_ALIGNMENT.
10646
10647 2004-08-10  Caroline Tice  <ctice@apple.com>
10648
10649         * varasm.c (unlikely_section_label): New global variable.
10650         (unlikely_text_section_name): New global variable.
10651         (text_section):  Remove alignment statement.
10652         (unlikely_text_section): Remove alignment statement; use
10653         unlikely_section_label rather than hard-coded string.
10654         (assemble_start_function): Initialize unlikely_section_label and
10655         unlikely_text_section_name;  make sure cold section is properly
10656         aligned at start of function; output unlikely_section_label if
10657         appropriate.
10658
10659 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
10660
10661         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
10662         * config/s390/s390.c (s390_canonicalize_comparison): New function.
10663         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
10664         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
10665         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
10666         ("*tmqi_mem"): Remove SUBREG from pattern.
10667         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
10668         ("*andsi3_cconly"): Likewise.
10669
10670 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
10671
10672         PR target/16909
10673         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
10674
10675 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
10676
10677         * doc/sourcebuild.texi (compat testing): Document available test
10678         framework commands.  Use the preferred spelling of DejaGnu.
10679
10680 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
10681
10682         * lambda.h: Add matrix type, and prototypes for remainder of
10683         matrix and vector functions.
10684         (lambda_vector_mult_const): New function.
10685         (lambda_vector_negate): Ditto.
10686         (lambda_vector_add): Ditto.
10687         (lambda_vector_add_mc): Ditto.
10688         (lambda_vector_copy): Ditto.
10689         (lambda_vector_zerop): Ditto.
10690         (lambda_vector_equal): Ditto.
10691         (lambda_vector_min_nz): Ditto.
10692         (lambda_vector_first_nz): Ditto.
10693         (lambda_vector_matrix_mult): Ditto.
10694         * lambda-mat.c: New file.
10695         * Makefile.in (lambda-mat.o): New.
10696
10697 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
10698
10699         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
10700         after linking stmt into the program.
10701         (bsi_remove): Don't call modify_stmt.
10702         * tree-complex.c (update_complex_assignment,
10703         expand_complex_comparison): Call modify_stmt after changing the stmt.
10704         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
10705         removing the stmt.
10706         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
10707         the stmt, and only if needed.
10708         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
10709         expression.
10710         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
10711         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
10712         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
10713         (eliminate_redundant_computations): Don't pass an annotation. Call
10714         modify_stmt rather than setting the annotation directly.
10715         (record_equivalences_from_stmt): Remove unused local 'j'.
10716         (cprop_operand): Take a stmt rather than an annotation as a parameter.
10717         Call modify_stmt.
10718         (cprop_into_stmt): Pass stmt rather than annotation.
10719         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
10720         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
10721         modify_stmt.
10722         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
10723
10724 2004-08-10  Jason Merrill  <jason@redhat.com>
10725
10726         PR middle-end/16948
10727         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
10728         the RESULT_DECL.
10729
10730 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
10731
10732         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
10733         hash function.
10734
10735 2004-08-10  Roger Sayle  <roger@eyesopen.com>
10736
10737         * config/mips/mips.md: New reciprocal square root patterns that
10738         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
10739
10740 2004-08-10  Paul Brook  <paul@codesourcery.com>
10741
10742         * config/arm/arm-protos.h (arm_set_return_address,
10743         thumb_set_return_address): Add prototypes.
10744         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
10745         * config/arm/arm.c (arm_compute_func_type,
10746         use_return_insn, arm_compute_save_reg0_reg12_mask,
10747         arm_compute_save_reg_mask, arm_output_function_prologue,
10748         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
10749         current_function_calls_eh_return.
10750         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
10751         old eh code.
10752         (arm_set_return_address, thumb_set_return_address): New functions.
10753         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
10754         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
10755         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
10756         (epilogue): Use the stackadj register.
10757         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
10758
10759 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
10760
10761         PR target/3144
10762         * expr.c (move_by_pieces_ninsns): Add max_size argument.
10763         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
10764         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
10765         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
10766         but using MOVE_RATIO.
10767         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
10768         (can_store_by_pieces): Change max_size type to unsigned int.
10769         (store_by_pieces_1): Likewise.  Pass max_size to
10770         move_by_pieces_ninsns.
10771         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
10772         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
10773         to move_by_pieces_ninsns.
10774         (STORE_BY_PIECES_P): Define.
10775         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
10776         to move_by_pieces_ninsns.
10777         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
10778
10779         * config/i386/i386.h (CLEAR_RATIO): Define.
10780
10781 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
10782
10783         * expr.c (expand_expr_real_1): Add back code that was not dead.
10784
10785 2004-08-09  Andrew Pinski  <apinski@apple.com>
10786
10787         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
10788         which is found to be compatible before returning the aliasing set.
10789
10790 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
10791
10792         * ggc-zone.c (struct alloc_zone): Add statistics counters.
10793         (always_collect): New flag.
10794         (ggc_alloc_zone_1): Update statistics support.  Don't include
10795         overhead in allocated counter.
10796         (sweep_pages): Update allocated counter for large pages.  Don'y
10797         include overhead.
10798         (ggc_collect_1): Always collect.
10799         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
10800         whether to collect.
10801         (SCALE, LABEL): New macros.
10802         (ggc_print_statistics): Add statistics support.
10803
10804 2004-08-09  Roger Sayle  <roger@eyesopen.com>
10805
10806         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
10807         (init_expmed): Fix potential overrun problem with "all.reg".
10808         (expand_sdiv2_pow2): Add an alternate implementation for signed
10809         division, if the target provides a suitable conditional move insn.
10810
10811 2004-08-09  Paul Brook  <paul@codesourcery.com>
10812         Richard Henderson  <rth@redhat.com>
10813
10814         * unwind-dw2.c (uw_install_context_1): Update target saved stack
10815         pointer.
10816
10817 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
10818
10819         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
10820         Check DATA limit only if there's no AS limit.  Ignore insanely
10821         low DATA limits.
10822         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
10823         but take care that the AS limit isn't overrun.
10824         * doc/invoke.texi: Update documentation of min-heapsize parameter.
10825
10826 2004-08-09  Jeff Law  <law@redhat.com>
10827
10828         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
10829         (tree-ssa-threadupdate.o): Add dependencies.
10830         * tree-ssa-threadupdate.c: New file.
10831         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
10832         (rewrite_vars_out_of_ssa): Remove prototype.
10833         (cleanup_tree_cfg): Returns a bool.
10834         * tree.h (thread_through_all_blocks): Prototype.
10835         * tree-outof-ssa.c  (SSANORM_*): Move into here.
10836         (remove_ssa_form): Now static.
10837         (rewrite_vars_out_of_ssa): Kill.
10838         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
10839         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
10840         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
10841         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
10842         anything was changed.
10843         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
10844         from the PHI's annotation rather than the edge associated with
10845         the new argument.
10846         * tree-ssa-dom.c (redirection_edges): Kill.
10847         (redirect_edges_and_update_ssa_graph): Kill.
10848         (tree_ssa_dominator_optimize): Do not reset forwardable flag
10849         for blocks anymore.  Do not initialize redirection_edges.
10850         Call thread_through_all_blocks.  Simplify code for cleanup
10851         of the CFG and iterating.  No longer call cleanup_tree_cfg
10852         outside the iteration loop.
10853         (thread_across_edge): No longer mess with forwardable blocks.
10854
10855 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
10856
10857         * explow.c (memory_address): Use memory_address_p.
10858         * recog.c (general_operand): Likewise.
10859         * regrename.c: No need to define REG_OK_STRICT.
10860
10861 2004-08-09  Steven Bosscher  <stevenb@suse.de>
10862
10863         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
10864         New timers.
10865         * gcse.c: Include timevar.h.
10866         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
10867         and global_copy_prop_count.
10868         (local_const_prop_count, local_copy_prop_count): New static globals.
10869         (gcse_main): Set the right timevar for each pass.
10870         (cprop_jump): Increment global_const_prop_count when a constant is
10871         propagated.  Add "GLOBAL" to dump output.
10872         (cprop_insn): Increment global_const_prop_count when a constant is
10873         propagated, or global_copy_prop_count when a copy is propagated.
10874         (do_local_cprop): Likewise for local_const_prop_count and
10875         local_copy_prop_count.
10876         (one_cprop_pass): Initialize const/cprop counters to zero.
10877         Print out results of local and global const/cprop separately.
10878         (bypass_block): Break over-length line.
10879         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
10880         for bb-reorder.o and tracer.o.
10881
10882 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
10883
10884         * Makefile.in (GTFILES): Remove stmt.c
10885         (stmt.o): Do not depend on gt-stmt.h.
10886         * emit-rtl.c (emit_line_note): Do not call
10887         set_file_and_line_for_stmt.
10888         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
10889         do everything.
10890         * function.c (free_after_parsing): Do not free STMT field.
10891         (allocate_struct_function): Do not call init_stmt_for_function.
10892         (assign_stack_temp_for_type): Do not accept values of keep
10893         other than 0 or 1.
10894         (init_temp_slots): Do not initialize removed variables.
10895         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
10896         and X_VAR_TEMP_SLOT_LEVEL fields.
10897         * rtl.h (set_file_and_line_for_stmt): Remove.
10898         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
10899         struct stmt_status, cond_stack, case_stack, nesting_stack,
10900         nesting_depth, emit_locus, set_file_and_line_for_stmt,
10901         same_case_target_p, init_stmt_for_function, emit_nop,
10902         expand_start_cond, expand_start_elseif, expand_start_else,
10903         expand_elseif, expand_end_cond): Remove.
10904         (preserve_subexpressions_p): Remove references to CFUN->STMT.
10905         (expand_start_case, expand_end_case_type): Remove, merge into...
10906         (expand_case): ... this one, including other bits from
10907         expand_expr_real_1.  Inline same_case_target_p.  Turn members
10908         of CASE_STACK into local variables.
10909         (emit_case_bit_tests): Inline same_case_target_p.
10910         (add_case_node): Add HEAD argument, return new head of the list,
10911         do not handle default label here.
10912         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
10913         expand_start_elseif, current_nesting_level, expand_start_case,
10914         expand_end_case_type, expand_end_case, add_case_node,
10915         init_stmt_for_function, expand_elseif): Remove prototypes.
10916         (expand_case): Add prototype.
10917
10918 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
10919
10920         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
10921
10922 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
10923
10924         * expr.c (var_rtx): Remove.
10925         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
10926         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
10927         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
10928         Abort.
10929         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
10930         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
10931         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
10932
10933 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
10934         Ayal Zaks <zaks@il.ibm.com>
10935
10936         * common.opt (freschedule-modulo-scheduled-loops): New flag.
10937         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
10938         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
10939         when -freschedule-modulo-scheduled-loops flag is not specified.
10940         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
10941         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
10942         More accurate placing of insn in row of partial schedule.
10943         (ps_insn_find_column): New function.
10944         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
10945         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
10946         (schedule_region): Use sched_is_disabled_for_current_region_p.
10947         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
10948
10949 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10950
10951         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
10952         change.
10953
10954 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10955
10956         * config/i386/i386.c (ix86_expand_clrmem): Properly call
10957         gen_strset for 64bit target.
10958
10959 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
10960
10961         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
10962
10963 2004-08-07  Jason Merrill  <jason@redhat.com>
10964
10965         Make return in memory explicit.
10966         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
10967         (assign_parm_find_data_types): Remove code for old front end
10968         invisible reference handling.
10969         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
10970         (expand_function_end): Likewise.
10971         * gimplify.c (gimplify_return_expr): Handle a dereferenced
10972         RESULT_DECL.
10973         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
10974         (declare_return_variable): Handle DECL_BY_REFERENCE.
10975         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
10976         (cp_genericize_r): Use convert_from_reference.
10977         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
10978         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
10979
10980         * c-common.c (c_warn_unused_result): Check TREE_USED before
10981         warning about a CALL_EXPR with an unused value.
10982
10983 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
10984
10985         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
10986         to the compiler.  Use -fshort-wchar by default.
10987
10988 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
10989
10990         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
10991         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
10992         threshhold.
10993         * doc/invoke.texi (param): Document min-crossjump-insns.
10994
10995 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
10996
10997         PR c/13282
10998         * c.opt (Wmissing-field-initializers): New option.
10999         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
11000         * c-typeck.c (pop_init_level): Guard the missing field warning with
11001         warn_missing_field_initializers rather than extra_warnings.
11002         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
11003         some of the explanation from...
11004         (-Wextra): ...here.  Say that the missing field warning can be
11005         seperately controlled by -Wmissing-field-initializers.
11006
11007 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
11008
11009         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
11010         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
11011         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
11012         * tree.def (ENTRY_VALUE_EXPR): Remove.
11013
11014 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
11015
11016         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
11017         the places where it is actually needed.  Don't use repz; stosb
11018         for -Os with sufficiently small constant sizes.
11019         For sufficiently small repz; stos{l,q} repeat counts use a sequence
11020         of stos{l,q} instructions instead.
11021
11022 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11023
11024         PR tree-optimization/16807
11025         * loop-iv.c (dump_iv_info): Dump invariants correctly.
11026         (iv_subreg, iv_extend): Express value of invariant purely in
11027         base field.
11028
11029 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
11030
11031         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
11032         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
11033
11034 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
11035
11036         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
11037         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
11038         pre_dec_operand.
11039         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
11040         pattern until reload is finished to allow better code generation
11041         and split them completely into separate instrunctions.
11042         (*andsi3_split): New pattern.
11043
11044 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
11045
11046         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
11047         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
11048         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
11049         * tree.h (handle_dll_attribute): Declare.  Test
11050         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
11051         * c-common.h (c_determine_visibility): Declare.
11052         * c-common.c (c_determine_visibility): New function.
11053         * c-decl.c (finish_decl): Use it.
11054         (finish_function): Likewise.
11055         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
11056         zero, by default.  Use #if, not #ifdef, to test it.
11057         * config/arm/arm.c (arm_attribute_table): Use
11058         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
11059         #if.
11060         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
11061         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
11062         to 1.
11063         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
11064         * config/i386/i386.c (ix86_attribute_table): Use
11065         handle_dll_attribute for dllimport/dllexport.  Test
11066         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
11067         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
11068         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
11069         it to 1.
11070         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
11071         with #if.
11072         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
11073         it to 1.
11074         * doc/extend.texi (dllexport): Clarify and correct documentation.
11075         (dllimport): Likewise.
11076         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
11077         handle_dll_attribute.
11078
11079 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11080
11081         * tree-ssa-loop-manip.c: New file.
11082         * Makefile.in (tree-ssa-loop-manip.o): Add.
11083         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
11084         Declare.
11085         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
11086         form.
11087         (tree_ssa_loop_done): Verify loop closed ssa form.
11088         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
11089
11090 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11091
11092         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
11093         pa_asm_output_aligned_local): New functions.
11094         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
11095         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
11096         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
11097         pa_asm_output_aligned_common.
11098         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
11099         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
11100         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
11101         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
11102         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
11103         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
11104         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
11105         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
11106         common data.
11107
11108 2004-08-05  Andrew Pinski  <apinski@apple.com>
11109
11110         * objc/objc-act.c (build_objc_string_object): Mark the address
11111         expression as constant.
11112
11113 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
11114
11115         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
11116         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
11117         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
11118
11119 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11120
11121         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
11122         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
11123         out, and associated obsolete comments.
11124
11125 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
11126
11127         * tree.h (force_fit_type): Return a tree, take three flags.
11128         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
11129         TREE_CONSTANT_OVERFLOW here.
11130         (int_const_binop, const_binop): Adjust.
11131         (size_int_type): Do sign extension here.
11132         (fold_convert_const, optimize_bit_field_compare,
11133         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
11134         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
11135         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
11136
11137 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11138
11139         PR tree-optimization/16864
11140         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
11141         for ssa names without default_def.
11142
11143 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
11144
11145         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
11146         frame pointer, restore eax with an ebp-relative address.
11147
11148 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
11149
11150         PR 14516
11151         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
11152         * c-common.h (make_rtl_for_local_static): Delete.
11153         * c-decl.c (shadow_tag_warned): Clean up comment.
11154         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
11155         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
11156         * c-semantics.c (make_rtl_for_local_static): Delete.
11157         * expr.c (init_block_move_fn): Use set_user_assembler_name.
11158         (init_block_clear_fn): Likewise.
11159         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
11160         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
11161         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
11162         * tree.h (make_decl_rtl): Remove second parameter.
11163         (set_user_assembler_name): New.
11164         * varasm.c (set_user_assembler_name): New.
11165         (make_decl_rtl): Remove second parameter.  Update callers in many
11166         files.
11167
11168 2004-08-05  Adam Nemet  <anemet@lnxw.com>
11169
11170         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
11171         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
11172         to LynxOS 4.0.
11173         * gthr-lynx.h: New file.
11174         * config/lynx-ng.h: Remove file.
11175         * config/lynx.h: Update to LynxOS 4.0.
11176         * config/t-lynx: New file.
11177         * config/i386/lynx-ng.h: Remove file.
11178         * config/i386/lynx.h: Update to LynxOS 4.0.
11179         * config/rs6000/lynxbase.h: Remove file.
11180         * config/rs6000/lynx.h: Update to LynxOS 4.0.
11181         * config/rs6000/t-lynx: New file.
11182         * doc/install.texi (Options specification): Remove reference to
11183         LynxOS from systems where --with-gnu-as makes a difference.
11184
11185 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11186
11187         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
11188         __UINTMAX_TYPE__.
11189         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
11190         __INTMAX_MAX__.
11191         (c_cpp_builtins): Call it.
11192         * doc/cpp.texi: Update.
11193
11194 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
11195
11196         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
11197         cost.
11198
11199 2004-08-04  Jan Hubicka  <jh@suse.cz>
11200
11201         * basic-block.h (profile_staus): New global variable.
11202         * cfg.c (profile_status): Declare.
11203         (check_bb_profile): Break out from ....; use profile_status
11204         (dump_flow_info): ... here.
11205         * cfgbuild.c (find_basic_blocks): Set profile_status.
11206         * cfgexpand.c (tree_expand_cfg): Likewise.
11207         * predict.c (estimate_probability): Likewise.
11208         * profile.c (branch_prob): Likewise.
11209         * tree-cfg.c (build_tree_cfg): Likewise.
11210         (dump_function_to_file): Use check_bb_profile.
11211         * tree-pretty-print (dump_bb_header): Likewise.
11212         * tree-profile.c (do_tree_profiling): Cleanup.
11213
11214 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
11215
11216         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
11217         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
11218         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
11219         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
11220         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
11221         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
11222         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
11223         (ggc-none.o, errors.o): Move rule to generators section;
11224         correct dependencies.
11225         (min-insn-modes.o): Move rule to generators section; remove
11226         unnecessary explicit command; correct dependencies.
11227         (print-rtl.o, print-rtl1.o): Correct dependencies.
11228         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
11229         (mostlyclean): Update.
11230
11231         * errors.c: Include bconfig.h not config.h.  Correct comment.
11232         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
11233         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
11234         * print-rtl.c: Don't include tm_p.h.
11235
11236         * rtl.h: Move forward-decl of struct function down where it's
11237         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
11238         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
11239
11240 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11241             Jeff Law  <law@redhat.com>
11242
11243         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
11244         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
11245         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
11246         manipulate the duplicated ssa names.
11247         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
11248         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
11249         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
11250         New functions.
11251         (release_ssa_name): Do not release ssa names that may have multiple
11252         definitions.
11253         * tree.h (release_ssa_name_force, mark_for_rewrite,
11254         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
11255         marked_ssa_names): Declare.
11256         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
11257         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
11258         Update call to rewrite_ssa_into_ssa.
11259
11260 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
11261
11262         * defaults.h (TARGET_DECLSPEC): New macro.
11263         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
11264         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
11265         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
11266         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
11267         __declspec support.
11268         (TARGET_DECLSPEC): Define.
11269         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
11270         __declspec support.
11271         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
11272         __declspec support.
11273         (TARGET_DECLSPEC): Define.
11274         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
11275         __declspec support.
11276         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
11277         support.
11278         * doc/tm.texi (TARGET_DECLSPEC): Document.
11279
11280         * doc/extend.texi: Fix typo in comment.
11281
11282 2004-08-04  Paul Brook  <paul@codesourcery.com>
11283
11284         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
11285         (TARGET_CXX): Use it.
11286         * target.h (struct gcc_target): Add cdtor_returns_this.
11287         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
11288         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
11289         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
11290
11291 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
11292
11293         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
11294         low/high pair. Do range checking directly.
11295         (interpret_integer): Adjust.
11296
11297 2004-08-04  Nick Clifton  <nickc@redhat.com>
11298
11299         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
11300         GCC ABI.
11301         * doc/invoke.texi: Document this new switch and also the -mrenesas
11302         switch.
11303
11304 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
11305
11306         * cfglayout.c (insn_locators_initialize): Update the current
11307         location before initializing a location.
11308
11309 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
11310
11311         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
11312         (dbxout_function_end): Return after emitting the "Lscope" symbol
11313         under the same conditions that this function formerly wasn't called.
11314         Add explanatory comments.
11315
11316         PR 14860
11317         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
11318         on the new decl.
11319
11320         PR 13956
11321         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
11322         functions, broken out of dbxout_block.
11323         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
11324         stabs too, if it contains symbols.  Use the begin_label and
11325         the Lscope label (emitted by dbxout_function_end) for the
11326         range of this block.
11327
11328 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
11329
11330         * doc/install.texi: Update autoconf version requirements.
11331
11332 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
11333
11334         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
11335         * recog.c (general_operand, immediate_operand, nonmemory_operand)
11336         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
11337         * regclass.c (record_reg_classes): Likewise.
11338         * reload.c (find_reloads): Likewise.
11339         * reload1.c (reload): Likewise.
11340
11341 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
11342
11343         * gensupport.c (init_md_reader_args_cb): Renamed from
11344         init_md_reader_args.  Add third option, callback function for
11345         parsing program-specific options.  Add diagnosis of incorrect
11346         number of input files.
11347         (init_md_reader): Fold into init_md_reader_args_cb.
11348         (init_md_reader_args): Now a thin wrapper around
11349         init_md_reader_args_cb.
11350         * gensupport.h: Update prototypes.
11351
11352         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
11353         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
11354         * genrecog.c: No need to diagnose lack of an input file;
11355         init_md_reader_args will handle it.
11356         * genconditions.c: Likewise, and use init_md_reader_args.
11357         * genconstants.c: Likewise, and no need to call read_md_rtx.
11358
11359 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
11360
11361         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
11362         declarations.
11363
11364 2004-08-03  Mike Stump  <mrs@apple.com>
11365
11366         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
11367         for frameworks.
11368         * doc/invoke.texi (Darwin Options): Update to reflect above.
11369
11370 2004-08-03  Roger Sayle  <roger@eyesopen.com>
11371
11372         PR middle-end/16790
11373         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
11374         truncations, not just global truncations.
11375
11376 2004-08-03  Andrew Pinski  <apinski@apple.com>
11377
11378         PR bootstrap/16865
11379         * loop-iv.c (simplify_using_assignment): Initialize lhs.
11380
11381 2004-08-03  Paul Brook  <paul@codesourcery.com>
11382
11383         * gcc/doc/install.texi: Document MPFR requirement.
11384
11385 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
11386
11387         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
11388         and mmap() explicitly instead of relying on preset autoconf cache
11389         variables.
11390         * configure: Regenerate.
11391
11392 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
11393
11394         PR target/16570
11395         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
11396         to tmake_file.
11397         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
11398         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
11399         to tmake_file.
11400
11401         * config/i386/t-gmm_malloc: New file.
11402         * config/i386/t-pmm_malloc: Likewise.
11403
11404         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
11405
11406 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
11407             Tanguy Fautrà <tfautre@pandora.be>
11408
11409         * config/i386/pmm_malloc.h: New file.
11410
11411 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
11412
11413         * config/i386/gmm_malloc.h: New file.
11414
11415 2004-08-03  Dale Johannesen  <dalej@apple.com>
11416
11417         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
11418         * c-common.c: Include opts.h.
11419         (c_common_get_alias_set): Fix check for a single input file.
11420         * toplev.c: Remove current_file_decl.
11421         * tree.h: Ditto.
11422
11423 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
11424
11425         * config.gcc (arm*-*-symbianelf*): New target.
11426         * config/arm/symbian.h: New file.
11427
11428         * gthr-gnat.c: Add visibility #pragmas.
11429         * gthr-gnat.h : Likewise.
11430         * gthr.h: Likewise.
11431         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
11432         (__ffsDI2): Likewise.
11433         (__clzSI2): Likewise.
11434         (__ctzSI2): Likewise.
11435         (__ctzDI2): Likewise.
11436         (__popcountSI2): Likewise.
11437         (__popcountDI2): Likewise.
11438         (__paritySI2): Likewise.
11439         (__parityDI2): Likewise.
11440         * libgcc2.h: Add visibility #pragmas.
11441         (__clzDI2): Add prototype.
11442         (__clzSI2): Likewise.
11443         (__ctzSI2): Likewise.
11444         (__ffsDI2): Likewise.
11445         (__ffsSI2): Likewise.
11446         (__ctzDI2): Likewise.
11447         (__popcountSI2): Likewise.
11448         (__popcountDI2): Likewise.
11449         (__paritySI2): Likewise.
11450         (__parityDI2): Likewise.
11451         * unwind-dw2-fde.h: Add visibility #pragmas.
11452         * unwind.h: Likewise.
11453
11454 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
11455             Dale Johannesen  <dalej@apple.com>
11456             Roger Sayle  <roger@eyesopen.com>
11457
11458         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
11459         constants more accurately.  Adjust costs for FMA instructions.
11460         Add cases for most logical and float operations.  Recurse into
11461         most operands.
11462
11463 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
11464
11465         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
11466
11467 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
11468
11469         * ra-build.c (conflicts_between_webs): For webs that cross a call add
11470         conflicts to regs_invalidated_by_call.
11471
11472 2004-08-03  Paul Brook  <paul@codesourcery.com>
11473
11474         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
11475
11476 2004-08-03  Jan Hubicka  <jh@suse.cz>
11477
11478         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
11479         ARRAY_REF argument.
11480
11481 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
11482
11483         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
11484         arm968es, arm10e, arm1020e, arm1022e.
11485         * invoke.texi: Update list of ARM cores.
11486         * arm-tune.md: Regenerate.
11487
11488 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
11489
11490         * arm/gentune.sh: New file.
11491         * arm/t-arm: New file.
11492         * arm/arm-tune.md: New file (autogenerated).
11493         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
11494         * arm.md (attribute tune): Delete.  Include arm-tune.md.
11495
11496 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
11497
11498         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
11499         penultimate parameter.  All callers adjusted.
11500         (struct prefix_list): Remove used_flag_ptr.
11501         (find_a_file): Do not set *pl->used_flag_ptr.
11502         (warn_B, warn_std_ptr): Remove.
11503
11504 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
11505             Mostafa Hagog <mustafa@il.ibm.com>
11506
11507         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
11508
11509 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
11510
11511         * dwarf2out.c (output_call_frame_info): Don't change data format
11512         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
11513         label.  Use 'true' not '1'.
11514         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
11515         required.
11516
11517 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11518
11519         * gdbinit.in: Reflect previous changes to rtunion_def.
11520
11521 2004-08-02  Roger Sayle  <roger@eyesopen.com>
11522
11523         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
11524         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
11525
11526 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11527
11528         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
11529         vec_p_reserve.
11530         * langhooks.h (lang_hooks::builtin_function): Rename parameter
11531         from "class" to "bt_class".
11532
11533 2004-08-02  Paul Brook  <paul@codesourcery.com>
11534
11535         PR rtl-optimization/15068
11536         * flow.c (init_propagate_block_info): Check condition is reversible.
11537
11538 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11539
11540         * gengtype.h (options::info): Change type to const char *.
11541         (enum gc_used_enum): Move out of struct type scope.
11542         * gengtype.c (create_option): Convert initializer for option::info to
11543         appropiate type.
11544         (adjust_field_type, walk_type, write_func_for_structure,
11545         write_root, write_roots): Remove pointless cast.
11546
11547 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
11548
11549         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
11550
11551 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11552
11553         * rtl.h (union rtunion_def): Have all members  start with the
11554         prefix "rt_".
11555         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
11556         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
11557         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
11558         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
11559         access.
11560         * gengtype.c (adjust_field_rtx_def): Likewise.
11561         * rtlanal.c (loc_mentioned_in_p): Likewise.
11562
11563 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
11564
11565         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
11566         Replace uses of mips/elf64.h with mips/elf.h
11567         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
11568         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
11569         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
11570         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
11571         (HANDLE_SYSV_PRAGMA): Delete.
11572         (ASM_OUTPUT_DEF): Fix formatting.
11573         * config/mips/elf64.h: Delete.
11574
11575 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
11576
11577         * config/ia64/ia64.c (got_symbolic_operand): Do require a
11578         symbol+offset operand to have its offset be zero mod 0x3fff
11579         when GOT entries are in use.  Clarify logic in SYMBOL_REF
11580         case.  Clarify comments.
11581         (ia64_expand_load_address): Split a symbol+offset load when
11582         the offset is nonzero mod 0x3fff, not 0x1fff.
11583
11584 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
11585
11586         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
11587         if trying to *store* to a non-offsettable address.
11588         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
11589         a nonoffsettable address.
11590         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
11591         Clean up.
11592         (movti_string): Don't move GPRs to a nonoffsettable address.
11593         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
11594
11595 2004-08-02  Ben Elliston  <bje@au.ibm.com>
11596
11597         PR target/16155
11598         * config/rs6000/altivec.h: Replace typeof with __typeof__.
11599
11600 2004-08-01  Richard Henderson  <rth@redhat.com>
11601
11602         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
11603         variable sized types.
11604
11605 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
11606
11607         * doc/invoke.texi: In the MIPS options section, remove the passage
11608         saying that -mexplicit-relocs is usually disabled for -mabicalls
11609         -fno-unit-at-a-time.
11610         * config/mips/mips.c (override_options): Remove the code that enforced
11611         this rule.
11612
11613 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
11614
11615         * config/mips/mips.md (cprestore): Provide two alternatives, one for
11616         an in-range offset and one for an out-of-range offset.  Wrap the latter
11617         in .set macro/.set nomacro if it's inside a .set nomacro block.
11618
11619 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
11620
11621         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
11622         (mips_restore_gp): Declare.
11623         * config/mips/mips.c (mips_add_offset): Add a scratch register
11624         argument.  Reimplement in rtl only, reusing MIPS16 logic from
11625         mips_output_mi_thunk.
11626         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
11627         to mips_add_offset.
11628         (mips_gp_save_slot): Delete.
11629         (mips_restore_gp): New function.
11630         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
11631         * config/mips/mips.md (exception_receiver): Turn into a
11632         define_insn_and_split.  Use mips_restore_gp to do the split.
11633         (call_internal, call_value_internal, call_value_multiple_internal): Use
11634         mips_restore_gp to restore $gp.
11635
11636 2004-07-31  Andrew Pinski  <apinski@apple.com>
11637
11638         PR other/16842
11639         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
11640
11641 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
11642
11643         * c-decl.c (diagnose_mismatched_decls): Give error for external
11644         redeclaration of identifier declared with no linkage, not just
11645         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
11646         error for redeclaration with no linkage.
11647
11648 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
11649             Fariborz Jahanian <fjahanian@apple.com>
11650
11651         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
11652         non-offsettable addresses even for DImode.
11653         (rs6000_split_multireg_move): Cope with non-offsettable addresses
11654         being moved into multiple GPRs.
11655
11656         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
11657         to 64.
11658         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
11659         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
11660         to 128.
11661         * config/rs6000/darwin-ldouble.c (isless): New macro.
11662         (inf): New macro.
11663         (nonfinite): New macro.
11664         (FPKINF): Delete.
11665         (_xlqadd): Completely rewrite.
11666         (_xlqmul): Correct overflow handling.
11667         (_xlqdiv): Correct overflow handling.
11668         * config/rs6000/darwin-ldouble-format: New file.
11669
11670 2004-07-30  Roger Sayle  <roger@eyesopen.com>
11671             Richard Henderson  <rth@redhat.com>
11672
11673         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
11674         9 into the equivalent lea instruction.
11675
11676 2004-07-30  Richard Henderson  <rth@redhat.com>
11677
11678         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
11679         with DECL_INITIAL if fb_lvalue.
11680         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
11681         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
11682         with <Cxxx>.
11683         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
11684
11685 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
11686
11687         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
11688         pointer escapes through a function call, assume that the
11689         callee will dereference it.
11690         (add_pointed_to_var): Assume that VALUE is always an
11691         ADDR_EXPR.
11692         (collect_points_to_info_r): Only call add_pointed_to_var if
11693         the value is an ADDR_EXPR.
11694
11695 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
11696
11697         * tree-ssa-alias.c (create_alias_map_for): Do not get the
11698         alias set of the inner type of ARRAY_TYPEs.
11699
11700 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
11701
11702         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
11703         setting a non-register to UNDEFINED right before the call to
11704         set_lattice_value.
11705
11706 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11707
11708         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
11709
11710 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
11711
11712         * tree-ssa.c (verify_flow_sensitive_alias_info): When
11713         comparing points-to sets of different pointers, make sure the
11714         second pointer is actually referenced in the code.
11715
11716 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
11717
11718         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
11719         (got_symbolic_operand): Remove unreachable code.
11720         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
11721         setjmp_operand; add entry for tls_symbolic_operand.
11722         * config/ia64/ia64-protos.h: Remove all prototypes of
11723         predicate functions.
11724
11725 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
11726
11727         * c-common.h (lang_post_pch_load): New variable.
11728         * c-pch.c (lang_post_pch_load): Define it.
11729         (c_common_read_pch): Use it.
11730         * cgraphunit.c (record_call_1): Give the front end a chance to
11731         record additional needed entities when a variable is marked as
11732         needed.
11733         * tlink.c (recompile_files): Robustify.
11734         (scan_linker_output): If a symbol is assigned to a file,
11735         but after recompilation is not present there, issue an error
11736         message.
11737
11738 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11739
11740         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
11741         Take orig_loop argument and pass it to set_level.
11742         (schedule_sm): Pass the correct orig_loop to force_move_till.
11743
11744 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11745
11746         * cfgloop.c (update_latch_info): Update dominator of the new block.
11747         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
11748         info.
11749         * dominance.c (verify_dominators): Check that the dominance tree is
11750         connected.
11751         (recount_dominator): Ignore unreachable blocks.
11752         (iterate_fix_dominators): Cleanup old dominance information before
11753         recomputing it.
11754
11755 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
11756
11757         * tree-ssa-operands.c (get_expr_operands): Revert changes
11758         to ADDR_EXPR processing introduced by:
11759             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11760             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
11761
11762 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
11763
11764         * doc/implement-c.texi: Add C90 subclause references.  Point to
11765         preprocessor documentation instead of duplicating it.  Add points
11766         only present in C90.  Fill in documentation for all points.
11767
11768 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11769
11770         * pa.c (output_movb): Correct typo.
11771
11772 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
11773
11774         * ra.h (single_reg_in_regclass): Declare.
11775         * ra.c (single_reg_in_regclass): Define.
11776         (first_hard_reg): New.
11777         (init_ra): Initialize single_reg_in_regclass.
11778         * ra-colorize.c (ok_class): New.
11779         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
11780
11781 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
11782
11783         * gcov-io.h: Allow zero tag as EOF indicator.
11784         (gcov_is_eof): Remove.
11785         (gcov_truncate): Remove.
11786         * gcov-io.c (gcov_seek): Always SEEK_SET.
11787         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
11788         EOF tag.
11789         * coverage.c (read_counts_file): Don't use gcov_is_eof.
11790         * gcov-dump.c (dump_file): Likewise.
11791         * gcov.c (read_graph_file, read_count_file): Likewise.
11792
11793         * c-decl.c (complete_array_type): Don't gratuitously copy
11794         maxindex.  Check it always has a type.
11795
11796 2004-07-29  Steven Bosscher  <stevenb@suse.de>
11797
11798         * rtl.c (currently_expanding_to_rtl): New.
11799         * rtl.h (currently_expanding_to_rtl): Export it.
11800         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
11801
11802         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
11803         inliner hack.
11804         * config/sh/sh.c: Replace rtx_equal_function_value_matters
11805         with currently_expanding_to_rtl.
11806         * config/sh/sh.md: Likewise.
11807         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
11808
11809 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
11810
11811         Introduce sh2a support.
11812         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
11813         * config.gcc: Build multilibs for sh2a and sh2a-single by
11814         default.
11815         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
11816         default.  Split their tests out of the corresponding SH4
11817         multilibs.
11818         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
11819         multilibs for SH2a.
11820         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
11821         * config.gcc: Handle sh2a multilibs and cpu selection.
11822         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
11823         * config/sh/t-mlib-sh2a: New.
11824         * config/sh/t-mlib-sh2a-nofpu: New.
11825         * config/sh/t-mlib-sh2a-single: New.
11826         * config/sh/t-mlib-sh2a-single-only: New.
11827         2004-07-09  Nick Clifton  <nickc@redhat.com>
11828         Issue 43400
11829         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
11830         -ml and -m2a are used together.
11831         2004-03-23  DJ Delorie  <dj@redhat.com>
11832         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
11833         when we have a double-sized FPU.
11834         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
11835         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
11836         is set.
11837         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
11838         -msh2a-single and -msh2a-single-only
11839         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
11840         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
11841         is set.
11842         2004-02-20  DJ Delorie  <dj@delorie.com>
11843         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
11844         2004-02-20  Fred Fish <fnf@redhat.com>,
11845         Corinna Vinschen <vinschen@redhat.com>
11846         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
11847         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
11848         2004-02-18  DJ Delorie  <dj@redhat.com>
11849         * config/sh/sh.c (broken_move): Add support for movi20.
11850         * config/sh/sh.h: Likewise.
11851         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
11852         * config/sh/sh.md (udivsi3_sh2a): New.
11853         (udivsi3): Call it.
11854         (divsi3_sh2a): New.
11855         (divsi3): Call it.
11856         (mul_r): New.
11857         (ashlsi3_sh2a): New.
11858         (ashrsi3_sh2a): New.
11859         (lshrsi3_sh2a): New.
11860         (movsi_i): Disable for sh2a.
11861         (movsi_ie): Add movi20.
11862         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
11863         sh2a, for -m2a-nofpu mode.
11864         2004-02-13  DJ Delorie  <dj@redhat.com>
11865         * config/sh/lib1funcs.asm: Handle double vs single better.
11866         * config/sh/sh.h: Likewise.
11867         2004-02-09  DJ Delorie  <dj@redhat.com>
11868         * config/sh/crt1.asm: Add support for sh2a.
11869         * config/sh/elf.h: Likewise.
11870         * config/sh/lib1funcs.asm: Likewise.
11871         * config/sh/sh.c: Likewise.
11872         * config/sh/sh.md: Likewise.
11873         * config/sh/sh.h: Likewise.
11874         * config/sh/t-sh: Likewise.
11875
11876 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
11877
11878         * config/frv/frv.md (movqi_internal, movhi_internal,
11879         movsi_internal): Add backup alternatives for memory inputs.
11880
11881 2004-07-28  Matt Austern  <austern@apple.com>
11882
11883         * config/darwin.c (darwin_one_byte_bool): New global variable.
11884         * config/darwin.h (darwin_one_byte_bool): Declare.
11885         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
11886         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
11887         value of darwin_one_byte_bool.
11888         * doc/invoke.texi: Document -mone-byte-bool flag.
11889
11890 2004-07-28  Eric Christopher  <echristo@redhat.com>
11891
11892         * c-common.c (c_common_unsafe_for_reeval): Delete.
11893         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
11894         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
11895         * calls.c (fix_unsafe_tree): Delete.
11896         (expand_call): Delete code which used above.
11897         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
11898         * expr.c (expand_expr_real_1): Ditto.
11899         * fold-const.c (non_lvalue): Ditto.
11900         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
11901         (lhd_unsafe_for_reeval): Ditto.
11902         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
11903         * langhooks.h (unsafe_for_reeval): Ditto.
11904         (unsave_expr_now): Adjust comment.
11905         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
11906         (estimate_num_insns_1): Ditto.
11907         * tree-pretty-print.c (dump_generic_node): Ditto.
11908         * tree.c (expr_align): Ditto.
11909         (unsave_expr): Delete.
11910         (unsafe_for_reeval): Ditto.
11911         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
11912         * tree.def (UNSAVE_EXPR): Delete.
11913         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
11914
11915 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
11916
11917         * tree.h (enum tls_model): Move ...
11918         * coretypes.h: ... here.
11919
11920 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
11921
11922         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
11923
11924 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
11925
11926         * cse.c (validate_canon_reg): New function, split out from...
11927         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
11928
11929 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
11930
11931         * tree-ssa-alias.c (maybe_create_global_var): Don't just
11932         return if .GLOBAL_VAR has been created.
11933
11934 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
11935
11936         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
11937         every variable that may have aliases, not just tags.
11938
11939 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
11940
11941         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
11942         move_from_CR_eq_bit.
11943         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
11944
11945
11946         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
11947         e500_flip_eq_bit.
11948
11949         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
11950         output_e500_flip_eq_bit.
11951
11952         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
11953         output_e500_flip_eq_bit.
11954         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
11955         output_e500_flip_eq_bit.
11956         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
11957         (print_operand): case D.  Get to EQ bit.
11958
11959 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
11960
11961         * gcov.c (function_summary): Add missing \n.
11962
11963 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
11964
11965         Introduce sh4a support.
11966         * config.gcc: Handle sh4a multilibs and cpu selection.
11967         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
11968         * config/sh/t-mlib-sh4a: New.
11969         * config/sh/t-mlib-sh4al: New.
11970         * config/sh/t-mlib-sh4a-nofpu: New.
11971         * config/sh/t-mlib-sh4a-single: New.
11972         * config/sh/t-mlib-sh4a-single-only: New.
11973         2004-02-20  DJ Delorie  <dj@redhat.com>
11974         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
11975         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
11976         2003-08-22  Eric Christopher  <echristo@redhat.com>
11977         * config/sh/sh4a.md: Update for chip errata.
11978         2003-08-07  Eric Christopher  <echristo@redhat.com>
11979         * config/sh/sh4a.md: New file. sh4a processor description.
11980         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
11981         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
11982         of -m4a-nofpu.
11983         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
11984         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
11985         * doc/invoke.texi (SH Options): Document -m4al.
11986         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
11987         * config/sh/sh.c (expand_block_move): Remove commented-out code
11988         checked in by mistake.
11989         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
11990         single elements from SFmode vectors.
11991         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
11992         register.
11993         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
11994         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
11995         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
11996         sh_fsca_int2sf): Remove variable declarations.
11997         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
11998         sh_fsca_int2sf): New functions.
11999         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
12000         sh_fsca_int2sf_rtx): New static variables.
12001         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
12002         sh_fsca_int2sf): Declare.
12003         * config/sh/sh.md: Adjust.
12004         * doc/invoke.texi (SH Options): Document new options.
12005         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
12006         compatibility from SH4 code.
12007         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
12008         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
12009         early.
12010         (memory_movsrc_operand): Renamed to...
12011         (unaligned_load_operand): ... this.  Simplified.
12012         * config/sh/sh.h (PREDICATE_CODES): Adjust.
12013         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
12014         input operand to SImode, and adjust the others.  Introduce
12015         post-increment by peephole.
12016         * config/sh/sh.c (expand_block_move): Give the target address the
12017         same mode as the temp reg.
12018         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
12019         copying.
12020         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
12021         Introduce support for SH4a.
12022         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
12023         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
12024         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
12025         sh_fsca_int2sf): New.
12026         (sh_init_builtins): Initialize them.
12027         (print_operand): Support `d'.
12028         (expand_block_move): Use movua if src is misaligned.
12029         (memory_movsrc_operand): New.
12030         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
12031         and one of the SH4 macros.
12032         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
12033         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
12034         SELECT_SH4A_SINGLE): New.
12035         (TARGET_NONE): Add SH4A_BIT.
12036         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
12037         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
12038         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
12039         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
12040         (enum processor_type): Added PROCESSOR_SH4A.
12041         (PREDICATE_CODES): Add memory_movsrc_operand.
12042         * config/sh/sh.md: Removed unused variables.
12043         (attr cpu): Add sh4a.
12044         (attr type): Add movua, fsrra and fsca.
12045         (prefetch): New, for SH4.
12046         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
12047         (toggle_sz): Set type to fp.
12048         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
12049         (movua, extv, extzv): New.
12050         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
12051         and 4a-single-only.
12052
12053 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
12054
12055         * tree-optimize.c (init_tree_optimization_passes): Schedule
12056         pass_may_alias right after the program is renamed into SSA.
12057         * tree-pass.h (PROP_alias): Define.
12058         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
12059         * tree-sra.c (pass_sra): Likewise.
12060         * tree-ssa-ccp.c (pass_ccp): Likewise.
12061         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
12062         * tree-ssa-dce.c (pass_dce): Likewise.
12063         * tree-ssa-dom.c (pass_dominator): Likewise.
12064         * tree-ssa-dse.c (pass_dse): Likewise.
12065         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
12066         * tree-ssa-loop-ch.c (pass_ch): Likewise.
12067         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
12068         * tree-ssa-pre.c (pass_pre): Likewise.
12069         * tree-tailcall.c (pass_tail_recursion): Likewise.
12070         * tree-ssa.c (pass_redundant_phi): Likewise.
12071         * tree-ssa-alias.c (aliases_computed_p): Remove.
12072         Update all users.
12073         (init_alias_info): Do not mark all type tags for renaming
12074         unconditionally.
12075         Clear may_aliases from every symbol.
12076         (setup_pointers_and_addressables): If a pointer has not been
12077         dereferenced and it had a type tag, clear it and mark the old
12078         tag for renaming.
12079
12080 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
12081
12082         PR tree-optimization/16705
12083         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
12084         .GLOBAL_VAR.
12085
12086 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12087
12088         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
12089         check.
12090
12091         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
12092         don't make another one.
12093
12094         PR optimization/15077
12095         * function.h (struct function): Add field saved_static_chain_decl.
12096         Fix comment for static_chain_decl.
12097         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
12098         * tree-inline.h (save_body): Add new arg.
12099         * tree-optimize.c (tree_rest_of_compilation): Handle saving
12100         static_chain_decl.
12101
12102 2004-07-27  Richard Henderson  <rth@redhat.com>
12103
12104         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
12105         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
12106         is_gimple_addressable.
12107         * tree-gimple.c (is_gimple_addressable): Rename from
12108         is_gimple_addr_expr_arg; accept INDIRECT_REF.
12109         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
12110         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
12111         rename to is_gimple_addressable.
12112
12113 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
12114
12115         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
12116
12117 2004-07-27  Richard Henderson  <rth@redhat.com>
12118
12119         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
12120         before rounding.
12121
12122 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
12123
12124         * libgcc2.c: Change all conditionals testing
12125         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
12126         * libgcc2.h: Likewise.
12127         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
12128         TYPE_PRECISION of float80_type to 80.
12129         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
12130         of fpreg_type and float80_type to 80.
12131         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
12132         * config/m68k/netbsd-elf.h:
12133         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
12134         to evaluate to 80 whenever they would formerly have evaluated to 96.
12135         * config/i386/sco5.h: Remove unnecessary redefinition of
12136         LONG_DOUBLE_TYPE_SIZE.
12137         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
12138         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
12139         XFmode, with a bitsize of 80.  Update commentary.
12140         * config/ia64/ia64-modes.def: Likewise.
12141         * config/m68k/m68k-modes.def: Likewise.
12142
12143 2004-07-27  Steven Bosscher  <stevenb@suse.de>
12144
12145         * cfgexpand.c (tree_expand_cfg): Fix comment.
12146
12147         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
12148         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
12149         Remove.
12150         (prepare_function_start): Don't set rtx_equal_function_value_matters.
12151         * integrate.c (copy_rtx_and_substitute): Don't test for it.
12152         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
12153         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
12154         here again.  Update leading comment.
12155         * rtl.c (rtx_equal_function_value_matters): Remove.
12156         (rtx_equal_p): Don't test for it.
12157         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
12158         Likewise.
12159
12160         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
12161         * rtl.c (note_insn_name): Likewise.
12162         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
12163         * final.c (final_scan_insn): Likewise.
12164
12165         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
12166         * passes.c (rest_of_handle_eh): Do it here.
12167
12168         * stmt.c (struct nesting): Remove struct nesting block member.
12169         (struct stmt_status): Remove x_block_start_count field.
12170         (current_block_start_count): Remove.
12171
12172 2004-07-27  Brian Booth  <bbooth@redhat.com>
12173
12174         * tree-optimize.c (register_one_dump_file): Update condition that uses
12175         static_pass_number.
12176         (dup_pass_1): Replace with...
12177         (next_pass_1): This.
12178         (NEXT_PASS): Call next_pass_1.
12179         (DUP_PASS): Remove.
12180         (init_tree_optimization_passes): Remove uses of DUP_PASS.
12181         (execute_one_pass): Update condition that uses
12182         static_pass_number.
12183         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
12184         integer.
12185
12186 2004-07-27  Nick Clifton  <nickc@redhat.com>
12187
12188         * config/m32r/m32r.c: Include integrate.h in order to get the
12189         prototype for get_hard_reg_initial_val().
12190
12191         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
12192         and tidy up indentation.
12193         (final_presence_set): Use absence_set instead, so that if there is
12194         nothing in the "o" pipe the "s" pipe can be scheduled.
12195
12196 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
12197
12198         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
12199         don't have PT_VARS nor PT_MALLOC set.
12200         Clear name tag from pointers that have not been dereferenced.
12201         (set_pt_anything, set_pt_malloc): Forward declare.
12202         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
12203         not type compatibility when determining if a pointer can be
12204         copy propagated.
12205
12206 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
12207
12208         * expr.h (canonicalize_condition, get_condition): Add an int argument.
12209         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
12210         it to check whether the condition is still valid at the jump insn.
12211         * ifcvt.c (noce_get_condition): Likewise.
12212         (noce_get_alt_condition): Update call to canonicalize_condition.
12213         * loop-iv.c (simplify_using_initial_values): Update call to
12214         get_condition.  Remove FIXME.
12215         (check_simple_exit): Update call to get_condition.
12216         * loop-unswitch.c (may_unswitch_on): Likewise.
12217         * loop.c (check_dbra_loop): Likewise.
12218         (canonicalize_condition, get_condition): Add an argument to say whether
12219         the condition must still be valid at INSN.
12220         (get_condition_for_loop): Update call to get_condition.  Require that
12221         the condition be valid at INSN.
12222         * predict.c (estimate_probability): Update call to get_condition.
12223         Remove unused earliest parameter.
12224         (expected_value_to_br_prob): Update call to canonicalize_condition.
12225
12226 2004-07-26  Eric Christopher  <echristo@redhat.com>
12227
12228         * tree-dfa.c (add_referenced_var): Register initializers of global
12229         variables.
12230
12231 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
12232
12233         * config/i386/i386.c (function_arg): Always treat 8-
12234         and 16-byte wide vectors the same, even if MMX/SSE
12235         are disabled.
12236         (contains_128bit_aligned_vector_p): Add comment.
12237
12238 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
12239
12240         * ra.h (enum node_type): Rename to:
12241         (enum ra_node_type).
12242         * ra-colorize.c: Likewise.
12243
12244 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
12245
12246         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
12247         after simplifying the jump.
12248
12249 2004-06-26  Richard Henderson  <rth@redhat.com>
12250
12251         * calls.c (combine_pending_stack_adjustment_and_call): Make
12252         preferred_unit_stack_boundary argument unsigned.  Make
12253         unadjusted_alignment unsigned.
12254         (expand_call): Make preferred_stack_boundary and
12255         preferred_unit_stack_boundary variables unsigned.
12256         * function.c (assign_stack_local_1): Make alignment unsigned.
12257         * function.h (struct function): Make stack_alignment_needed,
12258         preferred_stack_boundary unsigned.
12259         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
12260         (ix86_compute_frame_layout): Make stack_alignment_needed,
12261         preferred_alignment variables unsigned.
12262         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
12263
12264 2004-07-26  Tom Tromey  <tromey@redhat.com>
12265
12266         * tree.h: Fix typo in comment.
12267
12268 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
12269
12270         PR bootstrap/12804
12271         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
12272         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
12273         (ggc_free): Remove incorrect freeing.
12274         (sweep_pages): Advance PP for large pages.  Fix indentation.
12275
12276 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
12277
12278         PR rtl-optimization/16643
12279         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
12280         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
12281         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
12282         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
12283         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
12284         * function.c (thread_prologue_and_epilogue_insns): Likewise.
12285         * rtl.h (tracer): Add a flags parameter.
12286         * tracer.c (tracer): Pass it to cfg_layout_initialise.
12287         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
12288         (rest_of_handle_reorder_blocks): Update calls to tracer and
12289         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
12290         (rest_of_handle_tracer): Pass 0 to tracer.
12291         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
12292
12293 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
12294
12295         PR target/16239
12296         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
12297         f->f.
12298
12299 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
12300
12301         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
12302         (BINFO_BASE_ACCESS): Adjust.
12303         (BINFO_BASE_ACCESS_APPEND): New.
12304         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
12305         * dbxout.c (dbxout_type): Adjust binfo access accessing.
12306         * dwarf2out.c (gen_member_die): Likewise.
12307         * tree-dump.c (deque_and_dump): Likewise.
12308
12309 2004-07-26  Falk Hueffner  <falk@debian.org>
12310
12311         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
12312         costs.
12313
12314 2004-07-25  Roger Sayle  <roger@eyesopen.com>
12315
12316         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
12317         value off of the stack if TARGET_USE_FFREEP.
12318
12319 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
12320
12321         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
12322         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
12323         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
12324         check on invocation of XRESIZEVEC ().
12325
12326 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
12327
12328         * c-common.c (disable_builtin_function): Rename variable n to
12329         new_disabled_builtin.
12330         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
12331         Rename local variable old to old_decl.
12332         * gensupport.c (shift_output_template): Rename parameter old to src.
12333         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
12334         old_rtx and newx to new_rtx.
12335
12336 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
12337
12338         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
12339         of c-pragma.h.
12340         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
12341         enum cpp_ttype.
12342         * c-lex.c: Likewise.
12343
12344 2004-07-25  Roger Sayle  <roger@eyesopen.com>
12345
12346         * fold-const.c (constant_boolean_node): Make extern.
12347         (make_range): Wrap long lines.
12348         (fold_cond_expr_with_comparison): Remove unnecessary call to
12349         pedantic_non_lvalue.  Add missing calls to fold_convert.
12350         (fold_truthop): Add missing calls to fold_convert.
12351         (fold): Likewise.
12352         * tree.h (constant_boolean_node): Add prototype here.
12353         * builtins.c (expand_builtin_strncmp): Add missing calls to
12354         fold_convert.
12355         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
12356         Call fold_convert and constant_boolean_node to correct types.
12357         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
12358         missing call to fold_convert to correct types.
12359
12360 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
12361             Brian Ryner  <bryner@brianryner.com>
12362
12363         PR c++/9283
12364         PR c++/15000
12365         * c-common.c (c_common_attribute_table): Allow
12366         handle_visibility_attribute to be called for types.
12367         (handle_visibility_attribute) When given a type, set the visibility
12368         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
12369         so that we can check later whether the attribute was present. Added
12370         warning if attribute applied to non class type.
12371         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
12372         decls and checking that they are consistent.
12373         * common.opt: Added -fvisibility.
12374         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
12375         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
12376         * flags.h, tree.h: Added assorted support defines for overall patch
12377         * opts.c: Added parsing support for -fvisibility.
12378         * tree.c (build_decl): Set visibility for all decls to be whatever
12379         is in force at that time.
12380         * varasm.c (default_binds_local_p_1): Reworked logic determining
12381         when to make a symbol locally bound.
12382         * doc/invoke.texi: Added documentation for -fvisibility and
12383         -fvisibility-inlines-hidden.
12384
12385 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12386
12387         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
12388         * c-common.c: Add missing casts from void * to other types.
12389         * c-decl.c: Likewise.
12390         * c-format.c: Likewise.
12391         * c-lex.c: Likewise.
12392         * c-pragma.c: Likewise.
12393         * c-typeck.c: Likewise.
12394         * defaults.h: Likewise.
12395         * genconstants.c: Likewise.
12396         * gengtype-lex.l: Likewise.
12397         * genmodes.c: Likewise.
12398         * read-rtl.c: Likewise.
12399         * rtl.c: Likewise.
12400
12401 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12402
12403         * bitmap.c: Use type-safe memory allocation macros from libiberty.
12404         * c-common.c: Likewise.
12405         * c-decl.c: Likewise.
12406         * c-lang.c: Likewise.
12407         * c-lex.c: Likewise.
12408         * c-opts.c: Likewise.
12409         * c-parse.in: Likewise.
12410         * c-typeck.c: Likewise.
12411         * genconditions.c: Likewise.
12412         * gengtype-lex.l: Likewise.
12413         * gengtype-yacc.y: Likewise.
12414         * gengtype.c: Likewise.
12415         * genmodes.c: Likewise.
12416         * gensupport.c: Likewise.
12417         * read-rtl.c: Likewise.
12418         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
12419         htab_find_slot().
12420
12421 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12422
12423         * c-decl.c (groktypename, groktypename_in_param_context): Rename
12424         variable typename to type_name.
12425         * c-lex.c (interpret_float): Likewise.
12426
12427 2004-07-25  Roger Sayle  <roger@eyesopen.com>
12428
12429         * convert.c (convert_to_real, convert_to_integer,
12430         convert_to_complex): Replace calls to build with calls to buildN.
12431         * coverage.c (tree_coverage_counter_ref): Likewise.
12432         * dojump.c (do_jump): Likewise.
12433         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
12434         * emit-rtl.c (component_ref_for_mem_expr,
12435         set_mem_attributes_minus_bitpos): Likewise.
12436         * explow.c (update_nonlocal_goto_save_area): Likewise.
12437         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
12438         expand_mult_add): Likewise.
12439         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
12440         store_constructor, get_inner_reference, expand_expr_real_1,
12441         try_casesi, try_tablejump): Likewise.
12442         * function.c (expand_function_start): Likewise.
12443         * stmt.c (emit_case_bit_tests, expand_end_case_type,
12444         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
12445         * stor-layout.c (place_union_field, layout_type): Likewise.
12446         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
12447         * varasm.c (copy_constant): Likewise.
12448
12449 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12450
12451         * c-common.c: Rename all identifiers named `new'.
12452         * c-decl.c: Likewise.
12453         * gensupport.c: Likewise.
12454         * simplify-rtx.c: Likewise.
12455         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
12456         with XNEW().
12457         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
12458         with XNEWVEC().
12459
12460 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
12461
12462         PR c/15360
12463         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
12464         declarations until after calling pushdecl.
12465         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
12466         "extern" and not on whether the declaration is initialized.
12467
12468 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
12469
12470         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
12471         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
12472         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
12473         "cpplib.h", "c-pragma.h", "c-common.h".
12474         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
12475         (solaris_register_pragmas): New functions.
12476         * config/sol2-protos.h: New file.
12477         * config/sol2.c: New file.
12478         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
12479         (REGISTER_TARGET_PRAGMAS): New macros.
12480         (solaris_pending_aligns, solaris_pending_inits)
12481         (solaris_pending_finis): New variables.
12482         * config/t-sol2 (sol2-c.o): Update dependencies.
12483         (sol2.o): New rule.
12484         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
12485         SUBTARGET_INSERT_ATTRIBUTES.
12486         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
12487         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
12488         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
12489         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
12490         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
12491         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
12492         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
12493         * config/sparc/sparc.c (sparc_attribute_table): New.
12494         (TARGET_INSERT_ATTRIBUTES): Define in terms of
12495         SUBTARGET_INSERT_ATTRIBUTES.
12496         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
12497         is defined.
12498         * doc/extend.texi (Solaris Pragmas): New section.
12499
12500 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12501
12502         * c-common.c: Rename all identifiers named `class' to `cl'.
12503         * c-common.h: Likewise.
12504         * c-parse.in: Likewise.
12505         * c-typeck.c: Likewise.
12506         * genmodes.c: Likewise.
12507         * real.c: Likewise.
12508         * real.h: Likewise.
12509         * recog.c: Likewise.
12510         * recog.h: Likewise.
12511         * regrename.c: Likewise.
12512         * tree.h: Likewise.
12513         * c-common.c (builtin_function_2): Change type of 5th parameter from
12514         int to enum built_in_function. Change type of 8th parameter from int
12515         to bool.
12516         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
12517         with GGC_CNEW().
12518         * c-typeck.c (convert_arguments): Change type of formal_prec from
12519         int to unsigned int.
12520         * genmodes.c (blank_mode): Make a few negative constants unsigned.
12521         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
12522         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
12523         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
12524         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
12525         iterator to for_all_modes () instead of an enum because enums can't
12526         be incremented in C++.
12527
12528
12529 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
12530
12531         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
12532         hard registers.
12533
12534 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12535
12536         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
12537         Handle ARRAY_RANGE_REF like ARRAY_REF.
12538
12539 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
12540
12541         * c-typeck.c (digest_init): Don't allow arrays of signed or
12542         unsigned variants of wchar_t to be initialized by wide string
12543         constants.  Do allow arrays of enumerated types compatible with
12544         wchar_t to be initialized by wide string constants.  Refine tests
12545         distinguishing wide and narrow strings and arrays.  Give specific
12546         error for arrays of other integer types initialized by string
12547         constants.
12548         (output_init_element, process_init_element): Check for
12549         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
12550         initializing with string constants.
12551
12552 2004-07-25  Richard Henderson  <rth@redhat.com>
12553
12554         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
12555         on the RESULT_DECL.
12556         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
12557         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
12558         DECL_IGNORED_P to new decl.
12559
12560 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
12561
12562         * config/ia64/ia64.c (general_xfmode_operand)
12563         (destination_xfmode_operand): Delete.
12564         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
12565         * config/ia64/ia64.md (*movxf_internal): Use general_operand
12566         and destination_operand.
12567
12568 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
12569
12570         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
12571         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
12572
12573 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
12574             Zack Weinberg  <zack@codesourcery.com
12575
12576         PR 16684
12577         * c-decl.c (diagnose_mismatched_decls): Don't issue a
12578         redundant-declaration warning the first time a builtin is
12579         declared explicitly.
12580
12581 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12582
12583         * tree.h (staticp): Change return type to bool.
12584
12585 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12586
12587         * c-common.c (c_staticp): Last episode of the staticp saga.
12588
12589 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12590
12591         * c-common.h (c_staticp): Change return type from int to bool.
12592         * tree.c (staticp): Likewise.
12593         * langhooks.h (staticp): Likewise.
12594
12595 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12596
12597         * langhooks-def.h (lhd_staticp): Change return type from int to
12598         bool in prototype to match definition.
12599
12600 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12601
12602         * system.h (bool, true, false): Don't redefine as preprocessor macros
12603         in C++.
12604
12605 2004-07-24  Roger Sayle  <roger@eyesopen.com>
12606
12607         * expmed.c (init_expmed): A signed modulus by a power of two is
12608         considered cheap if its less than or equal to four instructions.
12609
12610 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12611
12612         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
12613         GGC_CNEWVAR): New macros.
12614
12615 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
12616
12617         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
12618         lists.
12619         * c-decl.c: Likewise.
12620         * c-format.c: Likewise.
12621         * c-lex.c: Likewise.
12622         * c-opts.c: Likewise.
12623         * c-pragma.c: Likewise.
12624         * c-typeck.c: Likewise.
12625         * gencheck.c: Likewise.
12626         * genconditions.c: Likewise.
12627         * genconfig.c: Likewise.
12628         * genflags.c: Likewise.
12629         * gengtype.c: Likewise.
12630         * gensupport.c: Likewise.
12631         * ggc-none.c: Likewise.
12632         * langhooks.c: Likewise.
12633         * statistics.h: Likewise.
12634         * stub-objc.c: Likewise.
12635         * java/decl.c: Likewise.
12636
12637 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
12638
12639         * config/m68k/m68k.c (output_scc_di): Fix coding style.
12640         (symbolic_operand): Fix prototype.
12641         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
12642         * config/m68k/m68k.md: Add constants for registers a0 and sp and
12643         use them, change from the "{...}" syntax to the simpler {...}
12644         syntax.
12645         (*cfv4_extendqisi2): Fix destination predicate.
12646         * config/m68k/m68k-protos.h: Remove various declarations also
12647         generated via PREDICATE_CODES.
12648
12649 2004-07-23  Mike Stump  <mrs@apple.com>
12650
12651         * c-typeck.c (convert_for_assignment): Tightened up pointer
12652         converstions that differ in signedness.
12653
12654 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
12655
12656         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
12657
12658 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12659
12660         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
12661         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
12662
12663         * gimplify.c (gimplify_compound_lval): Check for no handled
12664         operations, rather than checking for explicit list of nodes.
12665         (is_gimple_addr_expr_arg_or_indirect): New function.
12666         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
12667         redundant setting of TREE_INVARIANT.
12668         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
12669         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
12670
12671 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
12672
12673         PR tree-optimization/16688
12674         PR tree-optimization/16689
12675         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
12676         unnecessary initialization of 'tag'.
12677         (get_tmt_for): Check that the new type tag has the same alias
12678         set as the pointed-to type.
12679         (group_aliases): Only regular variables need to be removed
12680         from the alias set of a name tag.
12681         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
12682         propagation if the two types are not compatible.
12683         (merge_alias_info): Rename from replace_ssa_names_ann.
12684         Add more checking.
12685         (replace_exp_1): If both arguments are SSA_NAMEs, check that
12686         the propagation can be done.
12687         Only call merge_alias_info on pointers.
12688         (propagate_value): Likewise.
12689         * tree-ssa-copyrename.c: Include langhooks.h.
12690         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
12691         to do the merging.
12692         Do not coalesce variables with incompatible types.
12693         (rename_ssa_copies): Call replace_ssa_name_symbol.
12694         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
12695         the same type as the underlying _DECL.
12696         * tree-ssanames.c (replace_ssa_name_symbol): New function.
12697         * tree.h (replace_ssa_name_symbol): Declare.
12698
12699 2004-07-23  Richard Henderson  <rth@redhat.com>
12700
12701         PR c++/16277
12702         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
12703         unshare it properly.
12704         (gimplify_modify_expr_rhs): Push assignment from a conditional into
12705         the conditional for all non-register types.
12706
12707 2004-07-23  Richard Henderson  <rth@redhat.com>
12708
12709         * expr.c (expand_expr_real_1): Don't handle non-local variables.
12710         * expr.h (fix_lexical_addr): Remove.
12711         * function.c (NEED_SEPARATE_AP): Remove.
12712         (fix_lexical_addr): Remove.
12713         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
12714         not null decl_function_context.
12715         (create_alias_vars): Likewise.
12716         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
12717         (simple_goto_p): Likewise.
12718         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
12719         * tree-ssa-ccp.c (get_default_value): Likewise.
12720         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
12721         * tree.c (needs_to_live_in_memory): Likewise.
12722         * tree-flow-inline.h (may_be_aliased): Move...
12723         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
12724         when TREE_STATIC variables may be addressable.
12725
12726 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
12727
12728         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
12729
12730 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
12731
12732         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
12733         bitmap contents if GENERATOR_FILE is defined.
12734         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
12735         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
12736
12737 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
12738
12739         * c-decl.c (start_function): Form composite type of function types
12740         rather than copying type from previous prototype declaration.
12741
12742 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
12743
12744         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
12745         the const qualifier for the second argument in the C++ functions.
12746
12747         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
12748         specific pointer types.
12749
12750         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
12751         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
12752         for vector bool and/or vector pixel, add C++ and C missing support.
12753         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
12754         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
12755         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
12756         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
12757         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
12758         missing C++ and C support for vector bool and/or vector pixel.
12759         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
12760         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
12761         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
12762         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
12763         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
12764         C++ and C types used for vector bool and/or vector pixel.
12765         (vec_st, vec_stl): Add C++ support for vector pixel.
12766         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
12767         (vec_all_ne): Add C++ support for vector pixel.
12768
12769         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
12770         (vec_vmulesb): Add missing C++ function.
12771         (vec_perm): Fix type of third argument in C++ function.
12772         (vec_vsum4shs): Fix C++ function name.
12773         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
12774         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
12775         argument passed to the error handler in C macro.
12776         (vec_nmsub): Remove extra parens around argument names in C macro.
12777         (vec_packpx): Add missing parens in C macro.
12778
12779 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
12780
12781         * machmode.def: Remove vector modes.
12782         * config/alpha/alpha-modes.def: Add supported vector modes.
12783         * config/arm/arm-modes.def: Likewise.
12784         * config/frv/frv-modes.def: Likewise.
12785         * config/i386/i386-modes.def: Likewise.
12786         * config/rs6000/rs6000-modes.def: Likewise.
12787         * config/sh/sh-modes.def: Likewise.
12788
12789 2004-07-23  Matthias Klose  <doko@debian.org>
12790
12791         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
12792         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
12793         * config.h: Regenerate.
12794         * configure: Likewise.
12795
12796 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
12797
12798         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
12799         generated SYMBOL_REFs for labels.
12800         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
12801         Change prototype.
12802         (machopic_stub_name): Remove.
12803         (machopic_indirection_name): New function.
12804         (machopic_mcount_stub_name): Likewise.
12805         (machopic_classify_name): Remove.
12806         (machopic_function_base_sym): New function.
12807         (machpoic_classify_symbol): Likewise.
12808         (machopic_classify_ident): Remove.
12809         (machopic_define_ident): Likewise.
12810         (machopic_define_name): Likewise.
12811         (machopic_name_defined_p): Likewise.
12812         (machopic_ident_defined_p): Likewise.
12813         (darwin_strip_name_encoding): Likewise.
12814         (machopic_define_symbol): New function.
12815         * config/darwin.c (hashtab.h): Include.
12816         (machopic_defined_list): Remove.
12817         (machopic_classify_ident): Likewise.
12818         (machopic_classify_name): Likewise.
12819         (machopic_ident_defined_p): Likewise.
12820         (machopic_define_ident): Likewise.
12821         (machopic_define_name): Likewise.
12822         (machopic_symbol_defined_p): New function.
12823         (machopic_classify_symbol): Likewise.
12824         (machopic_data_defined_p): Use machopic_classify_symbol.
12825         (machopic_define_symbol): New function.
12826         (machopic_function_base_sym): New function.
12827         (machopic_non_lazy_pointers): Remove.
12828         (machopic_non_lazy_ptr_name): Likewise.
12829         (machopic_stubs): Likewise.
12830         (machopic_stub_name): Likewise.
12831         (NON_LAZY_POINTER_SUFFIX): New macro.
12832         (STUB_SUFFIX): Likewise.
12833         (machopic_indirection): New structure.
12834         (machopic_indirections): New variable.
12835         (machopic_indirection_hash): New function.
12836         (machopic_indirection_eq): Likewise.
12837         (machopic_indirection_name): Likewise.
12838         (machopic_mcount_stub_name): New function.
12839         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
12840         hash table.
12841         (machopic_indirect_data_reference): Rework to use new functions.
12842         (machopic_indirect_call_target): Likewise.
12843         (machopic_legitimize_pic_address): Likewise.
12844         (machopic_output_indirection): New function.
12845         (machopic_finish): Use it.
12846         (machopic_operand_p): Rework to use new functions.
12847         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
12848         (darwin_strip_name_encoding): Remove.
12849         (update_non_lazy_ptrs): Remove.
12850         (update_stubs): Likewise.
12851         (darwin_non_lazy_pcrel): Use new functions.
12852         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
12853         (ASM_OUTPUT_LABELREF): Likewise.
12854         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
12855         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
12856         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
12857         (TARGET_STRIP_NAME_ENCODING): Do not use
12858         darwin_strip_name_encoding.
12859         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
12860         darwin_strip_name_encoding.
12861         * config/i386/darwin.h (FUNCTION_PROFILER): Use
12862         machopic_mcount_stub_name.
12863         * config/i386/i386.c (x86_output_mi_thunk): Use
12864         machopic_indirection_name, not machopic_stub_name.
12865         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
12866         machopic_function_base_sym.
12867         (print_operand): Use machopic_classify_symbol.
12868         (rs6000_emit_prologue): Use machopic_function_base_sym.
12869         (output_profile_hook): Do not use machopic_stub_name.
12870         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
12871
12872 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
12873
12874         PR c/7284
12875         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
12876         as multiplication.
12877
12878 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
12879
12880         * doc/implement-c.texi: New file.
12881         * doc/extend.texi (C Implementation): Move to there.
12882         * doc/gcc.texi: Include implement-c.texi.
12883         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
12884
12885 2004-07-22  Jason Merrill  <jason@redhat.com>
12886
12887         * integrate.c (copy_decl_for_inlining): Remove invisible reference
12888         handling.
12889         * tree-inline.c (setup_one_parameter): Likewise.
12890
12891 2004-07-22  Brian Booth  <bbooth@redhat.com>
12892
12893         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
12894         (substitute_and_fold): Propigate into VUSE operands when possible.
12895         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
12896         (cp_lattice_meet): Handle merging of latticevalues when
12897         UNKNOWN_VAL is present.
12898         (visit_stmt): Visit assignments with V_MUST_DEFs.
12899         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
12900         (ccp_fold): Deal with RHS' that are constant and virtual.
12901         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
12902         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
12903         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
12904         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
12905         computing immediate uses.
12906         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
12907         transition.
12908         (replace_vuse_in): New function.
12909         (likely_value): Add check of vuse operands.
12910         (get_default_value): Set the default value of virtually defined
12911         variables to UKNOWN_VAL instead of VARYING.
12912
12913 2004-07-22  Richard Henderson  <rth@redhat.com>
12914
12915         * expr.c (emit_push_insn): Don't use set_mem_attributes.
12916
12917 2004-07-22  Richard Henderson  <rth@redhat.com>
12918
12919         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
12920         variables due to conditional compilation.
12921
12922 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
12923
12924         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
12925         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
12926         Release SSA names that have been re-renamed.
12927         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
12928         variable.
12929         * tree-ssa-alias.c (init_alias_info): If aliases have been
12930         computed before, clear existing alias information.
12931         (create_name_tags): Do no fixup PT_ANYTHING pointers.
12932         If the new name tag for a pointer is different than the one it
12933         had before, mark the old tag for renaming.
12934         (replace_may_alias): New function.
12935         (group_aliases): Call it.
12936         (setup_pointers_and_addressables): Always call get_tmt_for.
12937         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
12938         once.
12939         (set_pt_anything): New local function.
12940         (set_pt_malloc): New local function.
12941         (merge_pointed_to_info): Don't merge pointed-to variables from
12942         the original pointer if the destination is pointing to an
12943         unknown location.
12944         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
12945         (add_pointed_to_var): Do not add a variable to the points-to
12946         set if the pointer is already pointing to anywhere.
12947         (collect_points_to_info_r): If the defining statement is a PHI
12948         node, only merge pointed-to information if the argument has
12949         already been visited.
12950         (get_tmt_for): Only create a new tag if the pointer didn't
12951         have one already.
12952         (dump_alias_info): Emit more information.
12953         (dump_points_to_info_for): Likewise.
12954         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
12955         try to get the annotation of an SSA_NAME.
12956         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
12957         alias sets when checking is enabled.
12958         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
12959         (eliminate): Mark basic blocks that will need
12960         EH information cleaned up.
12961         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
12962         predecessor.
12963         Initialize need_eh_cleanup.
12964         (fini_pre): Call tree_purge_all_dead_eh_edges and
12965         cleanup_tree_cfg if needed.
12966         Free need_eh_cleanup.
12967         * tree-ssa.c (verify_ssa_name): New function.
12968         (verify_def): Call it.
12969         Re-arrange to avoid printing too many error messages.
12970         (verify_use): Likewise.
12971         (verify_phi_args): Likewise.
12972         (verify_flow_insensitive_alias_info): New function.
12973         (verify_flow_sensitive_alias_info): New function.
12974         (verify_alias_info): New function.
12975         (verify_ssa): Call verify_alias_info.
12976         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
12977         program.
12978         Re-arrange to avoid printing too many error messages.
12979         * tree-ssanames.c (make_ssa_name): Clear
12980         SSA_NAME_IN_FREE_LIST.
12981         (release_ssa_name): Never release a default definition.
12982         (release_defs): New function.
12983         * tree.h: Declare it.
12984         * tree-ssa-dce.c (remove_dead_stmt): Call it.
12985
12986 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
12987
12988         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
12989         If true, do a depth-first search.  Do a breadht-first search,
12990         otherwise.
12991         (walk_use_def_chains): Add new argument IS_DFS.
12992         Update all users.
12993         * tree-flow.h (walk_use_def_chains): Update prototype.
12994
12995 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
12996
12997         * config/cris/cris.md: Tweak formatting.
12998         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
12999         (mover2side, moverside, movemside, movei, op3, andu): Replace
13000         live define_peephole:s with define_peephole2 near-equivalents.
13001         Delete the rest.
13002         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
13003         word-size modes.
13004         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
13005         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
13006         "*mov_sidesi_mem" respectively.
13007
13008 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
13009
13010         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
13011         (gimplify_build1): Move from tree-complex.c do_unop.
13012         (gimplify_build2): Move from tree-complex.c do_binop.
13013         (gimplify_build3): New.
13014         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
13015         Adjust throughout to call the functions above.
13016         * tree-flow.h: Declare the functions above.
13017         * tree-nested.c (gimplify_val): Rename to...
13018         (tsi_gimplify_val): ... this.
13019
13020         * Makefile.in (tree_complex.o): Update dependencies.
13021         (stor-layout.o): Depend on regs.h.
13022         * c-common.c (handle_vector_size_attribute): Update for
13023         vector types without corresponding vector modes.
13024         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
13025         a corresponding vector mode is not available.
13026         * print-tree.c (print_node): Print nunits for vector types
13027         * regclass.c (have_regs_of_mode): New.
13028         (init_reg_sets_1): Initialize it and use it instead
13029         of allocatable_regs_of_mode.
13030         * regs.h (have_regs_of_mode): Declare it.
13031         * stor-layout.c (layout_type): Pick a mode for vector types.
13032         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
13033         build_replicated_const, do_unop, do_binop, do_plus_minus,
13034         do_negate, expand_vector_piecewise, expand_vector_parallel,
13035         expand_vector_addition, expand_vector_operations_1,
13036         expand_vector_operations, tree_lower_operations,
13037         pass_lower_vector_ssa, pass_pre_expand): New.
13038         (expand_complex_operations, pass_lower_complex): Remove.
13039         * tree-optimize.c (init_tree_optimization_passes): Adjust
13040         pass ordering for changes in tree-complex.c.
13041         * tree-pass.h: Declare new passes.
13042         * tree.c (finish_vector_type): Remove.
13043         (make_vector_type): New.
13044         (build_vector_type_for_mode, build_vector_type): Rewritten.
13045         * tree.def (VECTOR_TYPE): Document where the number of
13046         subparts is stored.
13047         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
13048         (make_vector): Remove declaration.
13049
13050 2004-07-21  Richard Henderson  <rth@redhat.com>
13051
13052         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
13053         TREE_THIS_VOLATILE, may_aliases, or optimization level.
13054         (remove_useless_vars): Dump debugging info.
13055         (expand_used_vars): Move ...
13056         * cfgexpand.c (expand_used_vars): ... here.  Make static.
13057         * tree-flow-inline.h (set_is_used): New.
13058         (set_default_def): Use get_var_ann.
13059         * tree-flow.h: Update decls.
13060         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
13061         (create_ssa_var_map): Use it.
13062         * tree-ssa.c (set_is_used): Remove.
13063
13064 2004-07-22  Ben Elliston  <bje@au.ibm.com>
13065
13066         * gdbinit.in: Set a breakpoint on internal_error.
13067
13068 2004-07-21  Richard Henderson  <rth@redhat.com>
13069
13070         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
13071         to create a new basic block.
13072
13073 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
13074
13075         PR c/15052
13076         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
13077         return type on function definitions.  Move other warnings for
13078         qualified return type to -Wreturn-type.  Do not condition any such
13079         warnings on -pedantic.  Update comments.
13080         (start_function): Only copy function type from previous prototype
13081         declaration if return types are compatible.
13082         * c-typeck.c (function_types_compatible_p): Don't condition
13083         warning for incompatibility of volatile qualifiers on the return
13084         type on -pedantic.  Update comment.
13085         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
13086
13087 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
13088
13089         * c-typeck.c (set_init_index): Require designator to be of integer
13090         type.
13091
13092 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
13093
13094         PR c/11250
13095         * c-parse.in (init): Change to exprtype.
13096         (primary): Set original_code for STRING to STRING_CST.
13097         Call maybe_warn_string_init for compound literals.
13098         (initdcl, notype_initdcl): Call maybe_warn_string_init.
13099         (initval): Update.
13100         * c-tree.h (maybe_warn_string_init): New.
13101         (pop_init_level, process_init_element): Use struct c_expr.
13102         (struct c_expr): Update comment.
13103         * c-typeck.c (maybe_warn_string_init): New function.
13104         (digest_init): Call it.  Additional parameter strict_string.  All
13105         callers changed.
13106         (output_init_element): Likewise.
13107         (struct constructor_stack): Use struct c_expr for
13108         replacement_value.
13109         (really_start_incremental_init, push_init_level): Update.
13110         (pop_init_level): Update.  Return struct c_expr.
13111         (process_init_level): Update.  Take struct c_expr argument.
13112
13113 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
13114
13115         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
13116         commit.
13117
13118 2004-07-21  Eric Christopher  <echristo@redhat.com>
13119
13120         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
13121         removal.
13122         * c-decl.c (pop_scope): Ditto.
13123         * calls.c (expand_call): Remove call to current_nesting_level,
13124         update comment accordingly. Remove calls to expand_start_target_temps
13125         and expand_end_target_temps.
13126         * cfgexpand.c (construct_init_block): Remove call to
13127         expand_start_bindings_and_block.
13128         (construct_exit_block): Remove call to expand_end_bindings.
13129         * expr.c (safe_from_p): Remove BIND_EXPR handling.
13130         (expand_expr_real_1): Ditto. Fix formatting.
13131         (expand_vars): Delete.
13132         * stmt.c (POPSTACK): Remove block_stack.
13133         (stmt_status): Remove x_block_stack.
13134         (block_stack): Delete.
13135         (expand_start_bindings_and_block): Ditto.
13136         (expand_start_target_temps): Ditto.
13137         (expand_end_target_temps): Ditto.
13138         (current_nesting_level): Ditto.
13139         (warn_about_unused_variables): Ditto.
13140         (expand_end_bindings): Ditto.
13141         * tree.h: Remove declarations for above.
13142
13143 2004-07-21  Steven Bosscher  <stevenb@suse.de>
13144
13145         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
13146         * rtl.c (note_insn_name): Likewise.
13147         * print-rtl.c (print_rtx): Don't print it.
13148         * cfgrtl.h (can_delete_note_p): Don't handle it.
13149         (rtl_delete_block): Likewise.
13150         * passes.c (rest_of_handle_guess_branch_prob): Remove.
13151         (rest_of_compilation): Don't call it.
13152         * predict.c (process_note_predictions, process_note_prediction,
13153         note_prediction_to_br_prob): Remove.
13154         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
13155         * stmt.c (return_prediction): Remove.
13156         (expand_value_return): Don't call it.  Don't add prediction
13157         notes for return statements.
13158
13159 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
13160
13161         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
13162         once.
13163
13164 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
13165
13166         * c-common.c (vector_types_convertible_p): Use vector types'
13167         TYPE_SIZE and TREE_TYPE instead of their mode.
13168         * convert.c (convert_to_integer): Likewise.
13169         (convert_to_vector): Likewise.
13170         * fold-const.c (fold_convert): Likewise.
13171         * varasm.c (output_constant): Likewise.
13172         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
13173         Allow a VECTOR_TYPE initializer to be made of several vectors.
13174         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
13175         of cleared and need_to_clear, and use fold_convert.
13176         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
13177         integer vectors.
13178
13179 2004-07-20  Richard Henderson  <rth@redhat.com>
13180
13181         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
13182         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
13183
13184 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
13185
13186         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
13187         enormous cost if not TARGET_HARD_MUL.
13188
13189 2004-07-20  Andrew Pinski  <apinski@apple.com>
13190
13191         PR target/16557
13192         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
13193         (ASM_SPEC): here.
13194
13195 2004-07-21  Paul brook  <paul@codesourcery.com>
13196
13197         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
13198
13199 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13200
13201         * fold-const.c (operand_equal_p): Temporarily support NULL args.
13202         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
13203         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
13204
13205 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
13206
13207         * rtl.h (plus_constant): Delete.
13208         (plus_constant_wide): Rename to plus_constant.
13209         (plus_constant_for_output_wide): Delete vestigial prototype.
13210         (GEN_INT): Remove unnecessary cast.
13211         * tree.h (build_int_2, size_int_type): Delete.
13212         (build_int_2_wide): Rename to build_int_2.
13213         (size_int_wide): Rename to size_int_kind.
13214         (size_int_type_wide): Rename to size_int_type.
13215         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
13216         Remove unnecessary cast.
13217         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
13218         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
13219         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
13220         (size_int_type_wide): Rename size_int_type.
13221         (int_const_binop): Use size_int_type.
13222         * c-lex.c (interpret_integer): Use build_int_2.
13223         * final.c (split_double): Remove unnecessary casts.
13224         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
13225
13226 2004-07-20  Richard Henderson  <rth@redhat.com>
13227
13228         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
13229         (gimplify_compound_lval): Use is_gimple_tmp_reg.
13230         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
13231         (is_gimple_tmp_reg): New.
13232         * tree-gimple.h (is_gimple_tmp_reg): Declare.
13233
13234 2004-07-20  Richard Henderson  <rth@redhat.com>
13235
13236         * tree-pretty-print.c (dump_generic_node): Dump
13237         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
13238
13239 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
13240
13241         * tree-mudflap.c (mf_set_options_fndecl): New tree.
13242         (mudflap_init): Set it.
13243         (mudflap_register_call): Remove __mf_init call.
13244         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
13245         to pass "-ignore-reads" option to libmudflap if needed.
13246
13247 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
13248
13249         PR c++/14607
13250         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
13251         (MAKE_DECL_ONE_ONLY): Undefine.
13252         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
13253         readonly_data, one_only_data_section, forget_section): New prototypes.
13254         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
13255         functions.
13256         (pa_select_section): Add one-only (COMDAT) support.
13257         * pa.h (struct machine_function): Define.
13258         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
13259         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
13260         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
13261         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
13262         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
13263         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
13264         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
13265         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
13266         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
13267         for EXTRA_SECTION_FUNCTIONS.
13268         * doc/install.texi: Update binutils requirements.
13269
13270 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
13271
13272         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
13273         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
13274         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
13275         size_t.
13276         (struct VEC): Use unsigned for num and alloc.
13277         * vec.c (struct vec_prefix): Likewise.
13278         (vec_o_reserve): Adjust.
13279
13280         * dbxout.c (dbxout_type): Fix printf format.
13281
13282         * tree.h (binfo_member): Remove.
13283         * tree.c (binfo_member): Remove.
13284
13285 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
13286
13287         * tree.h: Include vec.h
13288         (DEF_VEC_P(tree)): New type.
13289         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
13290         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
13291         (BINFO_LANG_SLOT): Remove.
13292         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
13293         (struct tree_binfo): Turn base_binfos into a trailing
13294         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
13295         (binfo_lang_slots): Remove.
13296         * tree.c (binfo_lang_slots): Remove.
13297         (make_tree_binfo_stat): Take a base binfo count, not a
13298         lang slot count.  Adjust.
13299         * Makefile.in (TREE_H): Add vec.h
13300         * alias.c (record_component_aliases): Adjust BINFO access.
13301         * dbxout.c (dbxout_type): Likewise.
13302         * dwarf2out.c (gen_member_die): Likewise.
13303         * sdbout.c (sdbout_one_type): Likewise.
13304         * tree-dump.c (deque_and_dump): Likewise.
13305         * config/i386/i386.c (classify_argument,
13306         contains_128bit_aligned_vector_p): Likewise.
13307         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
13308         * doc/c-tree.texi (Classes): Update BINFO documentation.
13309
13310 2004-07-20  Steven Bosscher  <stevenb@suse.de>
13311
13312         * c-common.h (check_case_value): Remove prototype.
13313         (c_add_case_label): Adjust prototype.
13314         * c-common.c (check_case_value): Make static.
13315         (check_case_bounds): New function.
13316         (c_add_case_label): Use it.  Take new argument orig_type.
13317         * c-typeck.c (struct c_switch): New orig_type field.
13318         (c_start_case): Set it.
13319         (do_case): Pass it to c_add_case_label.
13320         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
13321         cases from here.  Add the labels in reverse order.
13322         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
13323         (add_case_node): Return nothing, don't check for duplicate cases.
13324         Insert new case nodes in a list, not in an AVL tree.
13325         (expand_end_case_type): Don't turn a case tree into a case list.
13326         (case_tree2list): Remove.
13327         * tree.h (add_case_node): Adjust prototype.
13328
13329 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
13330
13331         * genattr.c (struct range, struct function_unit,
13332         write_units, extend_range, init_range): Remove them.
13333         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
13334         Output "#define INSN_SCHEDULING" here.
13335         * genattrtab.c (struct range, struct function_unit_op,
13336         struct function_unit, struct dimension, enum operator,
13337         operate_exp, expand_units, simplify_knowing,
13338         encode_units_mask, simplify_by_exploding,
13339         find_and_mark_used_attributes, unmark_used_attributes,
13340         add_values_to_cover, increment_current_value,
13341         test_for_current_value, simplify_with_current_value,
13342         simplify_with_current_value_aux, gen_unit,
13343         write_unit_name, write_function_unit_info,
13344         write_complex_function, write_toplevel_expr,
13345         find_single_value, extend_range): Remove.
13346         (write_attr_get): Do not handle common_av->value
13347         being an FFS.
13348         (struct attr_desc): Remove func_units_p and blockage_p.
13349         (write_attr_valueq): Do not handle them.
13350         (find_attr): Do not clear them.
13351         (make_internal_attr): Do not initialize them.
13352         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
13353         * sched-vis.c (init_target_units, insn_print_units,
13354         init_block_visualization, print_block_visualization,
13355         visualize_scheduled_insns, visualize_no_unit,
13356         visualize_stall_cycles, visualize_alloc,
13357         visualize_free, target_units, get_visual_tbl_length,
13358         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
13359         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
13360         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
13361         * haifa-sched.c (blockage_range, clear_units,
13362         schedule_unit, actual_hazard, potential_hazard,
13363         insn_unit, unit_last_insn, unit_tick,
13364         actual_hazard_this_instance, potential_hazard,
13365         schedule_unit, max_insn_queue_index_value): Remove.
13366         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
13367         max_insn_queue_index.
13368         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
13369         * doc/md.texi (Processor pipeline description): Remove
13370         references to old pipeline descriptions.
13371         (Automaton pipeline description): Merge with the above.
13372         (Old pipeline description, Comparison of the two descriptions):
13373         Remove.
13374
13375         * bt-load.c (migrate_btr_def): Remove references to
13376         use_pipeline_interface.
13377         * haifa-sched.c (insn_cost, schedule_insn,
13378         schedule_block, advance_one_cycle, sched_init,
13379         queue_to_ready, sched_finish): Likewise.
13380         * modulo-sched.c (sms_schedule, advance_one_cycle,
13381         ps_has_conflicts): Likewise.
13382         * sched-rgn.c (init_ready): Likewise.
13383         (debug_dependencies): Likewise, and remove an "if (1)".
13384         * target.h (use_dfa_pipeline_interface): Remove.
13385         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13386         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13387         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13388         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13389         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13390         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13391         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13392         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13393         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13394         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13395         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13396         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13397         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13398         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13399         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13400         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13401         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13402         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13403         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
13404
13405 2004-07-19  Roger Sayle  <roger@eyesopen.com>
13406
13407         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
13408
13409 2004-07-19  Jeff Law  <law@redhat.com>
13410
13411         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
13412         (get_eq_expr_value): Use it.  Simplify slightly.
13413
13414 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
13415
13416         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
13417         (umulsidi3_32bit_r4000): Likewise.
13418
13419 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
13420
13421         * vec.h: Propagate location information properly.
13422         (VEC_T_iterate): Add result pointer parameter.
13423         (VEC_T_space): New.
13424         (VEC_T_reserve): Use it.
13425
13426 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
13427
13428         * Makefile.in (c-format.o): Depend on c-format.h.
13429         * c-format.h: New file.
13430         (struct format_char_info): Add CHAIN member.
13431         * c-format.c: Move some types and constants to c-format.h.
13432         (format_type_error): Set to -1.
13433         (struct function_format_info): Use an int for format_type.
13434         (decode_format_type): Return an int.  Return format_type_error
13435         on error.
13436         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
13437         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
13438         (scan_char_table, time_char_table, monetary_char_table): Initialize
13439         CHAIN to NULL.
13440         (n_format_types): New variable.
13441         (check_format_info_main): Handle CHAIN in format_char_info.
13442         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
13443         TARGET_N_FORMAT_TYPES.
13444         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
13445         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
13446         * config/sol2-c.c: New file.
13447         * config/t-sol2: New file.
13448         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
13449         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
13450         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
13451
13452         * doc/extend.texi (Target Format Checks): New section.
13453         (Function Attributes): Mention it.
13454         * doc/invoke.texi: Mention target format checks.
13455         * doc/sourcebuild.texi: Mention target format checks.
13456         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
13457         TARGET_FORMAT_TYPES.
13458
13459 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
13460
13461         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
13462         added.
13463         * config/s390/s390.c (regclass_map initializer): Register 35 added to
13464         ADDR_REGS.
13465         (load_multiple_operation, store_multiple_operation): Removed
13466         pointless sanity check.
13467         (s390_decompose_address): Added check for return_address_pointer_rtx.
13468         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
13469         (s390_return_address_offset): New function.
13470         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
13471         (FRAME_REGNO_P): Added check for register 35.
13472         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
13473         REG_ALLOC_ORDER): Appended entry for register 35.
13474         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
13475         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
13476         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
13477         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
13478         is eliminable using stack pointer or hard frame pointer.
13479         (REGISTER_NAMES): Added name for register 35.
13480         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
13481         pointless sanity check.
13482
13483 2004-07-19  Roger Sayle  <roger@eyesopen.com>
13484
13485         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
13486         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
13487         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
13488         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
13489         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
13490         (fold_relational_const): Tidy up handling of floating point
13491         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
13492         transformation; fold_relational_const assumes constant operands.
13493
13494 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
13495
13496         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
13497         directory.
13498
13499 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
13500
13501         * c-tree.h (struct c_expr): Define.
13502         (C_SET_EXP_ORIGINAL_CODE): Remove.
13503         (parser_build_binary_op, build_compound_expr): Update prototypes.
13504         * c-parse.in (%union): Add exprtype.
13505         (FUNC_NAME): Mark as ttype.
13506         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
13507         exprtype.
13508         (expr): Update.  Define directly in terms of expr_no_commas
13509         instead of using nonnull_exprlist.
13510         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
13511         offsetof_member_designator, typespec_nonreserved_nonattr, init,
13512         initval, designator, component_declarator,
13513         component_notype_declarator, enumerator, array_declarator,
13514         condition, exexpr, switch_statement, stmt_nocomp, stmt,
13515         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
13516         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
13517         where appropriate.
13518         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
13519         * c-common.c (c_common_truthvalue_conversion): Don't check
13520         C_EXP_ORIGINAL_CODE.
13521         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
13522         Don't use C_EXP_ORIGINAL_CODE.
13523         (default_conversion, default_function_array_conversion): Don't use
13524         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
13525         (internal_build_compound_expr): Merge into build_compound_expr.
13526         (build_compound_expr): Take two operands instead of a TREE_LIST.
13527         * objc/objc-act.c (get_super_receiver): Update calls to
13528         build_compound_expr.
13529
13530 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
13531
13532         * config/sh/sh.c (sh_use_dfa_interface): Remove.
13533         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
13534         hook_int_void_1.
13535         * config/sh/sh.md: Extract pipeline descriptions
13536         into separate files.
13537         * config/sh/sh1.md: New file, extracted from sh.md.
13538         * config/sh/sh4.md: New file, extracted from sh.md.
13539         * config/sh/shmedia.md: New file, extracted from sh.md
13540         and rewritten using new-style pipeline description.
13541
13542 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
13543
13544         * config/pa/pa.md: Delete the two remaining define_peephole
13545         patterns.
13546
13547 2004-07-18  Steven Bosscher  <stevenb@suse.de>
13548             Joseph S. Myers  <jsm@polyomino.org.uk>
13549
13550         * c-common.c (c_common_truthvalue_conversion): Don't warn if
13551         TREE_NO_WARNING is set.
13552
13553 2004-07-18  Roger Sayle  <roger@eyesopen.com>
13554
13555         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
13556         simplify_builtin_strncmp): Delete.
13557         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
13558         Change argument to accept an arglist instead of an "exp".  Assume
13559         that the return type is always integer_type_node.  Copy missing
13560         transformations from their now obsolete simplify_builtin_*
13561         equivalents.
13562         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
13563         fold_builtin_strcmp and fold_builtin_strncmp.
13564         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
13565         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
13566         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
13567
13568 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
13569
13570         * Makefile.in (tree-alias-common.o): Update dependencies.
13571
13572 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
13573
13574         * cfgloop.c (flow_loop_nested_p): Fix comment.
13575
13576 2004-07-17  Jason Merrill  <jason@redhat.com>
13577
13578         PR c++/16115
13579         * stor-layout.c (relayout_decl): New fn.
13580         * tree.h: Declare it.
13581         (DECL_BY_REFERENCE): New macro.
13582
13583 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
13584
13585         * libgcc2.c (__enable_execute_stack): New symbol.
13586         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
13587         and declare __enable_execute_stack.
13588         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
13589         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
13590         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
13591         ENABLE_EXECUTE_STACK.
13592         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
13593         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
13594         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
13595         ENABLE_EXECUTE_STACK.
13596         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13597         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
13598         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
13599         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
13600         ENABLE_EXECUTE_STACK.
13601         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13602         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13603         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13604         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
13605         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
13606         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
13607         (sparc64_initialize_trampoline): Likewise.
13608         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
13609
13610 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
13611
13612         * langhooks.h (builtin_function): New langhook.
13613         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
13614         (LANG_HOOKS_INITIALIZER): Update.
13615         * tree.h (builtin_function): Remove.
13616         * doc/tm.texi: Update.
13617         * c-tree.h (builtin_function): Declare.
13618         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
13619         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
13620         config/ia64/ia64.c, config/iq2000/iq2000.c,
13621         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
13622         config/stormy16/stormy16.c: All callers of builtin_function
13623         changed.
13624
13625 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
13626
13627         PR target/16556
13628         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
13629         Remove white space after the backslash.
13630
13631 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
13632
13633         PR rtl-optimization/16294
13634         * resource.c (return_insn_p): New predicate.
13635         (mark_target_live_regs): Use it.  Special-case return insns.
13636         (init_resource_info): Use it.  Don't scan the epilogue past
13637         a return.
13638
13639 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13640
13641         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
13642         destroy dominance information.
13643         * passes.c (rest_of_handle_loop2):  Free dominance information.
13644         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
13645         jump threading.
13646         (thread_jumps): Update dominance information and remove unreachable
13647         blocks.
13648         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
13649         information and remove the unreachable block.
13650
13651 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
13652
13653         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
13654
13655 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
13656
13657         * doc/sourcebuild.texi: Remove libf2c entry.
13658
13659 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
13660
13661         * config/i386/i386.md (movv16qi_internal): Fix typo.
13662
13663 2004-07-17  Steven Bosscher  <stevenb@suse.de>
13664
13665         * final.c (final_scan_insn): Fix broken commit from previous
13666         patch.
13667
13668 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
13669
13670         * c-typeck.c (parser_build_binary_op): Condition warnings for
13671         X<=Y<=Z on -Wparentheses instead of -Wextra.
13672         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
13673         supported for C only.
13674
13675 2004-07-17  Steven Bosscher  <stevenb@suse.de>
13676
13677         * cfgcleanup.c (try_simplify_condjump): Don't remove line
13678         notes to avoid unreachable code warnings.
13679         * toplev.c (backend_init): Don't emit line notes for
13680         unreachable code warnings.
13681
13682         * combine.c (distribute_notes): Don't distribute a
13683         REG_VTABLE_REF note.
13684         * final.c (final_scan_insn): Don't handle it.
13685         * rtl.c (reg_note_name): Remove it.
13686         * rtl.h (enum reg_node): Dito.
13687
13688         * emit-rtl.c (force_line_numbers, restore_line_number_status):
13689         Remove.
13690         * rtl.h (force_line_numbers, restore_line_number_status):
13691         Remove prototypes.
13692
13693         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
13694         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
13695         (using_eh_for_cleanups): Also moved here.
13696
13697         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
13698         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
13699         to expand_start_case and add_case_node.
13700         * stmt.c (struct nesting): Cleanup unused fields condition_code,
13701         last_unconditional_cleanup, nominal_type, printname, and
13702         line_number_status.
13703         (struct fixup_goto): Remove.
13704         (struct stmt_status): Remove x_goto_fixup_chain field.
13705         (goto_fixup_chain): Remove.
13706         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
13707         pushcase, pushcase_range): Remove.
13708         (expand_start_bindings_and_block): Don't set unused fields in
13709         the nesting stack.
13710         (expand_start_case, add_case_node): Cleanup unused formal arguments.
13711         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
13712         instead of emit_jump_if_reachable.
13713         (emit_case_nodes): Likewise.
13714         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
13715         static.
13716         (update_eh_label): Work around left-over exception handing regions.
13717         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
13718         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
13719         (pass_cleanup_cfg_post_optimizing): New pass.
13720         (init_tree_optimization_passes): Run the new pass after all
13721         optimizations.
13722         * tree.h (pushcase, pushcase_range): Remove prototypes.
13723         (expand_start_case, add_case_node): Update prototypes.
13724
13725 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
13726
13727         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
13728
13729 2004-07-16  Richard Henderson  <rth@redhat.com>
13730
13731         * builtins.c (std_expand_builtin_va_arg): Remove.
13732         (expand_builtin_va_arg): Remove.
13733         * expr.h: Don't declare them.
13734         * gimplify.c (mark_decls_volatile_r): Remove.
13735         (copy_if_shared_r): Don't call it.
13736         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
13737         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
13738         * gimple-low.c (lower_stmt): Likewise.
13739         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
13740         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
13741         * tree-ssa-operands.c (get_expr_operands): Likewise.
13742         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
13743         EXPAND_BUILTIN_VA_ARG.
13744         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
13745         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
13746         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
13747         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
13748
13749 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
13750
13751         * tree-ssa-pre.c (insert_aux): Break out if we hit
13752         a critical edge.
13753
13754 2004-07-16  Richard Henderson  <rth@redhat.com>
13755
13756         * basic-block.h (remove_fake_exit_edges): Declare.
13757         * cfganal.c (remove_fake_predecessors): Rename from
13758         remove_fake_successors; iterate over predecessors.
13759         (remove_fake_exit_edges): New.
13760         * cfgcleanup.c (try_optimize_cfg): Use it.
13761         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
13762         * predict.c (estimate_probability): Likewise.
13763         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
13764         * tree-cfg.c (make_edges): Likewise.
13765         * tree-ssa-pre.c (fini_pre): Likewise.
13766         * profile.c (instrument_edges): Don't remove_fake_edges.
13767         (branch_prob): Do it earlier here.
13768
13769 2004-07-16  Richard Henderson  <rth@redhat.com>
13770
13771         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
13772         switchification wrt CONSTRUCTOR.  Document the reason.
13773
13774 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
13775
13776         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
13777         that prevented descriptive __mf_check source location strings.
13778
13779 2004-07-16  Richard Henderson  <rth@redhat.com>
13780
13781         * tree-def (WITH_SIZE_EXPR): New.
13782         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
13783         * expr.c (expand_expr_real_1): Likewise.
13784         * gimplify.c (maybe_with_size_expr): New.
13785         (gimplify_arg, gimplify_modify_expr): Use it.
13786         (gimplify_modify_expr_to_memcpy): Take size parameter.
13787         (gimplify_modify_expr_to_memset): Likewise.
13788         (gimplify_expr): Handle WITH_SIZE_EXPR.
13789         * tree-alias-common.c (find_func_aliases): Likewise.
13790         * tree-eh.c (tree_could_trap_p): Likewise.
13791         (tree_could_throw_p): Likewise.
13792         * tree-gimple.c (is_gimple_lvalue): Likewise.
13793         (get_call_expr_in): Likewise.
13794         * tree-inline.c (estimate_num_insns_1): Likewise.
13795         (expand_calls_inline): Likewise.
13796         * tree-nested.c (convert_call_expr): Likewise.
13797         * tree-pretty-print.c (dump_generic_node): Likewise.
13798         * tree-sra.c (sra_walk_expr): Likewise.
13799         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
13800         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
13801         * tree-ssa-operands.c (get_expr_operands): Likewise.
13802         * tree-tailcall.c (find_tail_calls): Likewise.
13803
13804         * calls.c (expand_call): Reset old_stack_allocated after
13805         calling emit_stack_restore.
13806
13807 2004-07-16  Richard Henderson  <rth@redhat.com>
13808
13809         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
13810         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
13811         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
13812         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
13813         copy_res_decl_for_inlining.
13814
13815         * tree-inline.c (declare_return_variable): New modify_dest argument.
13816         Use it as the return value, when possible or manditory.  Handle
13817         TREE_ADDRESSABLE types.
13818         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
13819         replacement of CALL_EXPR.
13820
13821 2004-07-16  Richard Henderson  <rth@redhat.com>
13822
13823         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
13824         * gimple-low.c (expand_var_p): Don't check it.
13825         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
13826         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
13827         * tree-ssa-operands.c (add_stmt_operand): Likewise.
13828         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
13829         (find_referenced_vars): Don't call them.
13830         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
13831
13832 2004-07-16  Richard Henderson  <rth@redhat.com>
13833
13834         * function.c (pass_by_reference): True for all variable sized types.
13835
13836 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
13837
13838         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
13839         * tree-pretty-print.c: Include tree-chrec.h.
13840         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
13841         and POLYNOMIAL_CHREC nodes.
13842
13843 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
13844
13845         * builtins.c (expand_builtin_stpcpy): Do not create temporary
13846         reg with VOIDmode.
13847
13848 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
13849
13850         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
13851
13852 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
13853
13854         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
13855         to BASE_REGNUM.
13856         * config/s390/s390.c: Likewise.
13857         * config/s390/s390.h: Likewise.
13858
13859 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13860
13861         * config/mips/mips.md (addsi3, adddi3): Remove special handling
13862         of $sp adds.  Remove REGNO checks from mips16 patterns.
13863
13864 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13865
13866         * config/mips/mips.md: Delete outdated comment.
13867
13868 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13869
13870         * config/mips/mips.c (get_float_compare_codes): Delete.
13871         (mips_emit_compare): New function, mostly extracted from
13872         get_float_compare_codes and gen_conditional_branch.
13873         (gen_conditional_branch, gen_conditional_move): Use it.
13874
13875 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
13876
13877         * genautomata.c (add_vect): Speedup by using integers as
13878         bit-vectors for walking through the comb_vect and finding
13879         a match.
13880
13881 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13882
13883         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
13884         operand is an uns_arith_operand; use subtraction otherwise.
13885         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
13886         not just arith_operands.
13887
13888 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13889
13890         * config/mips/mips-protos.h (gen_int_relational): Delete.
13891         (mips_emit_scc): Declare.
13892         * config/mips/mips.c (internal_test): Delete.
13893         (sle_operand, sleu_operand): New functions.
13894         (map_test_to_internal_test, gen_int_relational): Delete.
13895         (mips_emit_binary, mips_relational_operand_ok_p)
13896         (mips_emit_int_relational, mips_zero_if_equal)
13897         (mips_emit_scc): New functions.
13898         (gen_conditional_branch): Rework to use mips_emit_int_relational.
13899         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
13900         sleu_operand.
13901         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
13902         (sltu, sleu): Use mips_emit_scc.
13903         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
13904         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
13905         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
13906
13907 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13908
13909         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
13910
13911 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13912
13913         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
13914         (*sne_[sd]i): Likewise sne_[sd]i_zero.
13915         (*sgt_[sd]i): ...and sgt_[sd]i.
13916         (*slt_[sd]i): ...and slt_[sd]i.
13917         (*sgtu_[sd]i): ...and sgtu_[sd]i.
13918         (*sltu_[sd]i): ...and sltu_[sd]i.
13919         (*sleu_[sd]i): ...and sleu_[sd]i_const.
13920         Name previously unnamed mips16 patterns.  Formatting fixes.
13921
13922 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13923
13924         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
13925         (branch_type): Delete.
13926         (gen_conditional_branch, gen_conditional_move)
13927         (mips_gen_conditional_trap): Update after name change.  Get the
13928         comparison mode from cmp_operands[0].
13929         * config/mips/mips.h (cmp_type, branch_type): Delete.
13930         (cmp_operands): Renamed from branch_cmp.
13931         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
13932         name change.  Don't set branch_type.
13933         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
13934         mode class of cmp_operands[0] rather than branch_type.  Update after
13935         name change.
13936
13937 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13938
13939         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
13940         of 0...255 to 0 when inside a SET.
13941
13942 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
13943
13944         * config/mips/mips.md: Remove mips16 define_peepholes.
13945
13946 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
13947
13948         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
13949         (fini_pre): Remove fake edges.
13950
13951 2004-07-15  Richard Henderson  <rth@redhat.com>
13952
13953         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
13954         (get_indirect_ref_operands, get_call_expr_operands): ... these.
13955
13956 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
13957
13958         * vec.h (VEC_address): New function.
13959
13960 2004-07-14  Jason Merrill  <jason@redhat.com>
13961
13962         PR middle-end/15885
13963         * gimplify.c (gimplify_arg): New fn, split out from...
13964         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
13965
13966 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
13967
13968         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
13969         generate code which is generated by pushqi1 now
13970         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
13971
13972 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
13973
13974         * combine.c (simplify_set): match the mode of the constant 0 with
13975         the tested operand to match the compare behaviour and the
13976         simplify_relational_operation() expectation.
13977
13978 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
13979
13980         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
13981         ("bordered"): Same.
13982
13983 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
13984
13985         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
13986         unconditionally.
13987         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
13988
13989 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
13990
13991         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
13992         calls in mips16 code.
13993
13994 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
13995
13996         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
13997         the destination of the li as well as for the neg.
13998
13999 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
14000
14001         g++/15861
14002         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
14003         * cgraph.h: Update declaration.
14004         * c-decl.c (build_cdtor): Update call with default priority.
14005         * coverage.c (create_coverage): Ditto.
14006         * tree-mudflap.c (mf_init_fndecl): New tree.
14007         (mudflap_init): Set it.
14008         (mudflap_register_call): Arrange to call __mf_init before the first
14009         __mf_register call.
14010         (mudflap_finish_file): Mark the mudflap static initializer as extra
14011         high priority, to beat all C++ static constructors.
14012
14013 2004-07-15  Jeff Law  <law@redhat.com>
14014
14015         * loop.c (check_insn_for_givs): Restore check for code labels that was
14016         accidentally deleted by a recent checkin.
14017
14018 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
14019
14020         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
14021         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
14022
14023 2004-07-14  Richard Henderson  <rth@redhat.com>
14024
14025         * print-tree.c (print_node): Fix casts last change.
14026
14027 2004-07-15  Paul Brook  <paul@codesourcery.com>
14028
14029         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
14030         to TARGET_UNWIND_INFO.
14031         * except.c (output_function_exception_table): Ditto.
14032         * except.h: Ditto.
14033         * opts.c (decode_options): Ditto.
14034         * passes.c (rest_of_handle_final): Ditto.
14035         * final.c (final_start_function): Ditto.
14036         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
14037         target hook.
14038         * targhooks.h (default_unwind_emit): Declare.
14039         * targhooks.c (default_unwind_emit): New function.
14040         * target-def.h: Define and use TARGET_UNWIND_EMIT.
14041         * target.h (struct gcc_target): Add unwind_emit.
14042         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
14043         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
14044         Remove IA64_UNWIND_EMIT.
14045         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
14046
14047 2004-07-14  Richard Henderson  <rth@redhat.com>
14048
14049         * print-tree.c (print_node): Handle SSA_NAME.
14050
14051 2004-07-14  James E Wilson  <wilson@specifixinc.com>
14052
14053         PR target/16325
14054         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
14055         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
14056
14057 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
14058
14059         * expr.c (expand_assignment): Reenable bitfield += optimizations.
14060         Use alias set 0 for memory, do proper mode calculations and adjust
14061         address for memories.
14062
14063 2004-07-14  Per Bothner  <per@bothner.com>
14064
14065         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
14066         structure with extra column field.
14067         * tree.c (expand_location):  Also fill in column field.
14068         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
14069         gets confused by the two conditionally-compiled definitions.
14070
14071 2004-07-14  Eric Christopher  <echristo@redhat.com>
14072
14073         * calls.c (expand_call): Fix typo in comment.
14074
14075 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
14076
14077         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
14078         comparision of TFmode.
14079
14080 2004-07-14  Richard Henderson  <rth@redhat.com>
14081
14082         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
14083         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
14084         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
14085         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
14086         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
14087         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
14088         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
14089         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
14090         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
14091
14092 2004-07-14  Mike Stump  <mrs@apple.com>
14093
14094         * config/darwin.h (WINT_TYPE): Define to be int to match
14095         system header files.
14096
14097 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
14098
14099         * config/xtensa/xtensa.c (function_arg_advance): Check for args
14100         that must be passed in the stack.
14101         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
14102         arguments if the size is not a constant.
14103
14104 2004-07-14  Per Bothner  <per@bothner.com>
14105
14106         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
14107         instead of EXPR_LOCUS in a boolean context, which is always true
14108         if --enable-mapped-location.
14109         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
14110
14111 2004-07-14  Richard Henderson  <rth@redhat.com>
14112
14113         * dominance.c (struct dom_info): Add fake_exit_edge.
14114         (init_dom_info): Allocate it.
14115         (free_dom_info): Free it.
14116         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
14117         in two passes.
14118         (calc_idoms): Honor fake_exit_edge.
14119
14120 2004-07-13  Jason Merrill  <jason@redhat.com>
14121
14122         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
14123         (rhs_test_for): New fn.
14124         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
14125         * tree-gimple.h: Declare them.
14126         * gimplify.c (gimplify_modify_expr): Use the new fns.
14127
14128 2004-07-14  Richard Henderson  <rth@redhat.com>
14129
14130         * config/arm/arm-protos.h (arm_va_arg): Remove.
14131         * config/arm/arm.c (arm_va_arg): Remove.
14132         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
14133         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
14134
14135 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14136
14137         * pa.c (fix_range): New function to mark a range(s) of registers as
14138         fixed registers.
14139         (override_options): Call fix_range if the -mfixed-range option string
14140         is not empty.
14141         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
14142         * doc/invoke.texi (-mfixed-range): Document new option.
14143
14144 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
14145
14146         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
14147         for TARGET_64BIT.
14148         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
14149
14150 2004-07-14  Roger Sayle  <roger@eyesopen.com>
14151
14152         * expmed.c (expand_sdiv_pow2): New function to expand signed division
14153         by a positive power of two, split out from expand_divmod.  Provide
14154         an alternate implementation when shifts are expensive.  Lower the
14155         threshold for using a branchless implementation to BRANCH_COST >= 2.
14156         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
14157
14158 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
14159
14160         * tree-dfa.c (make_rename_temp): *Really* work just
14161         like create_tmp_var if called while outside SSA form.
14162
14163 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
14164
14165         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
14166         for division by zero.
14167         ("umodsi3"): Likewise.
14168
14169 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
14170
14171         * config/mips/mips.c (mips_output_move): When generating mips16 code,
14172         force loads of negative constants to be split.
14173         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
14174         Generalize SImode li/neg splitter to cope with other modes.
14175
14176 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
14177
14178         * expmed.c: Remove more references to QUEUED in the comments.
14179         * expr.c: Likewise.
14180
14181 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
14182
14183         Revert:
14184         2004-07-13  Richard Henderson  <rth@redhat.com>
14185         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
14186         correctly.
14187
14188 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
14189
14190         * tree-dfa.c (make_rename_temp): Work just like
14191         create_tmp_var if called while outside SSA form.
14192
14193 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
14194
14195         * expr.c (enqueue_insn, finish_expr_for_function,
14196         protect_from_queue, queued_subexp_p, mark_queue,
14197         emit_insns_enqueued_after_mark, emit_queue,
14198         expand_increment): Remove.
14199         (store_constructor): Expand increment as an assignment.
14200         (expand_expr_real_1 <case PREINCREMENT_EXPR,
14201         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
14202         case POSTDECREMENT_EXPR>): Abort.
14203         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
14204         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
14205         protect_from_queue, emit_queue, queued_subexp_p): Remove.
14206         * function.h (pending_chain, x_pending_chain): Remove.
14207         * rtl.def (QUEUED): Remove.
14208
14209         * emit-rtl.c (copy_insn_1, copy_most_rtx,
14210         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
14211         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
14212         encode_units_mask): Likewise.
14213         * local-alloc.c (equiv_init_varies_p): Likewise.
14214         * rtl.c (copy_rtx): Likewise.
14215         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
14216         * simplify-rtx.c (simplify_gen_subreg): Likewise.
14217         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
14218
14219         * builtins.c (expand_builtin, expand_builtin_apply,
14220         expand_builtin_mathfn, expand_builtin_mathfn_2,
14221         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
14222         Remove calls to emit_queue and protect_from_queue.
14223         * calls.c (expand_call, precompute_arguments,
14224         precompute_register_parameters, rtx_for_function_call,
14225         store_one_arg): Likewise.
14226         * dojump.c (do_compare_and_jump, do_jump): Likewise.
14227         * explow.c (memory_address): Likewise.
14228         * expmed.c (clear_by_pieces_1, clear_storage,
14229         clear_storage_via_libcall, emit_group_load,
14230         emit_group_store, emit_store_flag,
14231         expand_expr_real_1, store_by_pieces,
14232         store_constructor, store_expr, try_casesi,
14233         try_tablejump): Likewise.
14234         * function.c (expand_pending_sizes): Likewise.
14235         * optabs.c (emit_cmp_and_jump_insns,
14236         emit_conditional_add, emit_conditional_move,
14237         expand_fix, expand_float, prepare_cmp_insn): Likewise.
14238         * stmt.c (emit_case_bit_tests,
14239         expand_asm_expr, expand_computed_goto,
14240         expand_decl_init, expand_end_case_type,
14241         expand_end_stmt_expr, expand_expr_stmt_value,
14242         expand_return, expand_start_case,
14243         optimize_tail_recursion): Likewise.
14244         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
14245         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
14246
14247 2004-07-14  Ben Elliston  <bje@au.ibm.com>
14248
14249         * vec.h: Comment fix.
14250
14251 2004-07-13  Richard Henderson  <rth@redhat.com>
14252
14253         * target.h (struct gcc_target): Add calls.pass_by_reference.
14254         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
14255         * function.c (pass_by_reference): Use the hook.
14256         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
14257         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
14258         (hook_pass_by_reference_must_pass_in_stack): New.
14259         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
14260         (alpha_pass_by_reference): New.
14261         (TARGET_PASS_BY_REFERENCE): New.
14262         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14263         * config/arc/arc.c (arc_pass_by_reference): New.
14264         (TARGET_PASS_BY_REFERENCE): New.
14265         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14266         (FUNCTION_ARG_CALLEE_COPIES): True.
14267         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
14268         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
14269         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
14270         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14271         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14272         * config/cris/cris.c (cris_pass_by_reference): New.
14273         (TARGET_PASS_BY_REFERENCE): New.
14274         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
14275         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
14276         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14277         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
14278         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14279         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
14280         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
14281         (frv_function_arg_pass_by_reference): Remove.
14282         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14283         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
14284         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
14285         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
14286         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14287         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
14288         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
14289         (ia64_pass_by_reference): Rename from
14290         ia64_function_arg_pass_by_reference.
14291         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14292         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14293         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
14294         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
14295         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
14296         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14297         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
14298         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
14299         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
14300         (m32r_pass_by_reference): Adjust prototype.  Make static.
14301         Handle mode sizes correctly.
14302         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14303         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
14304         (m68hc11_function_arg_pass_by_reference): Remove.
14305         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14306         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
14307         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
14308         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14309         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
14310         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
14311         (mips_va_arg): Use pass_by_reference.
14312         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
14313         Handle mode sizes correctly.
14314         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14315         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
14316         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
14317         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
14318         (mmix_pass_by_reference): Rename from
14319         mmix_function_arg_pass_by_reference.
14320         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14321         (FUNCTION_ARG_CALLEE_COPIES): True.
14322         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
14323         (mn10300_pass_by_reference): New.
14324         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14325         (FUNCTION_ARG_CALLEE_COPIES): True.
14326         * config/pa/pa.c (pa_pass_by_reference): New.
14327         (TARGET_PASS_BY_REFERENCE): New.
14328         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14329         (FUNCTION_ARG_CALLEE_COPIES): True.
14330         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
14331         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
14332         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
14333         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14334         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
14335         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
14336         (s390_pass_by_reference): Rename from
14337         s390_function_arg_pass_by_reference.
14338         (s390_function_arg_advance): Don't query pass-by-ref.
14339         (s390_function_arg): Likewise.
14340         (s390_gimplify_va_arg): Use pass_by_reference.
14341         (s390_call_saved_register_used): Likewise.
14342         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14343         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
14344         (shcompact_byref, sh_pass_by_reference): New.
14345         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14346         (SHCOMPACT_BYREF): Remove.
14347         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
14348         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
14349         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
14350         (sparc_gimplify_va_arg): Use pass_by_reference.
14351         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14352         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14353         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
14354         (v850_pass_by_reference): New.
14355         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14356         (FUNCTION_ARG_CALLEE_COPIES): True.
14357         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
14358         FUNCTION_ARG_PASS_BY_REFERENCE docs.
14359
14360 2004-07-14  Richard Henderson  <rth@redhat.com>
14361             Richard Sandiford  <rsandifo@redhat.com>
14362
14363         * config/mips/mips-protos.h (mips_va_arg): Delete.
14364         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
14365         * config/mips/mips.c: Include tree-gimple.h.
14366         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
14367         (mips_arg_info): Remove special handling of must_pass_in_stck args.
14368         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
14369         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
14370
14371 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
14372
14373         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
14374         arguments for COND_EXPR in big-endian adjustment code.
14375
14376 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14377
14378         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
14379         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
14380         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
14381         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
14382
14383 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
14384
14385         PR tree-optimization/16443
14386         * tree-ssa-alias.c: Add more description for
14387         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
14388         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
14389         clobbering of call-clobbered and addressable variables.  If
14390         there are any before aliases have been computed, add them.
14391
14392 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
14393
14394         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
14395         verification.
14396
14397 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
14398
14399         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
14400         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
14401         to the same type.
14402
14403 2004-07-13  Per Bothner  <per@bothner.com>
14404
14405         * collect2.c (main):  Handle --no-demangle and --demangle flags.
14406
14407 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
14408
14409         * Makefile.in (OBJS-common): Add tree-data-ref.o.
14410         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
14411         (tree-data-ref.o): New rule.
14412         * lambda.h: New file.
14413         * tree-data-ref.c: New file.
14414         * tree-data-ref.h: New file.
14415         * tree.c (int_cst_value, tree_fold_gcd): New functions.
14416         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
14417
14418 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
14419
14420         PR target/13926
14421         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
14422         * config/sparc/sparc.c (output_ubranch): New function.
14423         * config/sparc/sparc.md (jump pattern): Use it.
14424
14425 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
14426
14427         PR target/16494
14428         * config/sparc/sparc.c (output_cbranch): Properly guard
14429         the code handling far branches with TARGET_V9.
14430         * config/sparc/sparc.md (length attribute): Document the
14431         side-effect of having a length greater or equal to 3.
14432
14433 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
14434             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
14435
14436         PR target/15186
14437         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
14438         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
14439
14440 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
14441             Martin Sebor  <sebor@roguewave.com>
14442
14443         PR target/12602
14444         * doc/invoke.texi (SPARC options): Document -threads
14445         and -pthreads on Solaris.
14446
14447 2004-07-13  Richard Henderson  <rth@redhat.com>
14448
14449         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
14450         by reference.
14451         (ind_gimplify_va_arg_expr): Remove.
14452         * tree.h (ind_gimplify_va_arg_expr): Remove.
14453         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
14454         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
14455         argsp to be null.
14456
14457         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
14458         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
14459         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
14460         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
14461         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
14462
14463 2004-07-13  Richard Henderson  <rth@redhat.com>
14464
14465         * function.c (pass_by_reference): New.
14466         (assign_parm_find_data_types): Use it.
14467         * calls.c (initialize_argument_information): Likewise.
14468         (emit_library_call_value_1): Likewise.
14469         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
14470         * function.h (pass_by_reference): Declare.
14471
14472 2004-07-13  Richard Henderson  <rth@redhat.com>
14473
14474         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
14475         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
14476         * expr.h (MUST_PASS_IN_STACK): Remove.
14477         * system.h (MUST_PASS_IN_STACK): Poison.
14478         * tree.h (must_pass_in_stack_var_size): Declare.
14479         (must_pass_in_stack_var_size_or_pad): Declare.
14480         * calls.c (must_pass_in_stack_var_size): New.
14481         (must_pass_in_stack_var_size_or_pad): Rename from
14482         default_must_pass_in_stack.
14483         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
14484         (TARGET_MUST_PASS_IN_STACK): New.
14485         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
14486         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
14487         (TARGET_MUST_PASS_IN_STACK): New.
14488         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
14489         * config/frv/frv.c (frv_must_pass_in_stack): New.
14490         (TARGET_MUST_PASS_IN_STACK): New.
14491         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
14492         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
14493         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
14494         (ix86_must_pass_in_stack): Make static.
14495         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
14496         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
14497         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
14498         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
14499         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
14500         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
14501         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
14502         (mcore_must_pass_on_stack): Remove.
14503         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
14504         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
14505         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
14506         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
14507         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
14508         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
14509         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
14510         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
14511         (TARGET_MUST_PASS_IN_STACK): New.
14512         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
14513         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
14514         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
14515         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
14516         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
14517         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
14518         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
14519         MUST_PASS_IN_STACK.
14520
14521         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
14522         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
14523         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
14524         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
14525         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
14526         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
14527         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
14528         config/xtensa/xtensa.c: Use target hook.
14529
14530 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
14531
14532         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
14533         * configure: Rebuilt.
14534
14535 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
14536
14537         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
14538         * config/mips/mips.h (mips_reg_names): Don't declare.
14539         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
14540         (TARGET_NAME_REGS): Delete.
14541         (TARGET_SWITCHES): Remove -mrnames.
14542         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
14543         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
14544         in REGISTER_NAMES.
14545         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
14546         (override_options): Remove handling of TARGET_NAME_REGS.
14547
14548 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
14549
14550         * config/mips/mips.h (TARGET_*): Boolify.
14551
14552 2004-07-12  Nick Clifton  <nickc@redhat.com>
14553
14554         * config.gcc: Add sh-*-symbianelf target.
14555         * config/sh/sh.c: Add new target macros:
14556         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
14557         TARGET_CXX_IMPORT_EXPORT_CLASS.
14558         (sh_file_start): Create a definition of the .directive section.
14559         (sh_attribute): Add dllimport and dllexport attributes.
14560         * config/sh/symbian-pre.h: New file.
14561         * config/sh/symbian-post.h: New file.
14562         * config/sh/symbian.c: New file. Contains Symbian specific
14563         functions.
14564         * config/sh/sh-protos.h: Add prototypes for new functions
14565         provided by symbian.c.
14566         * config/sh/t-symbian: New file.
14567         * doc/extend.texi: Document support for dllimport and dllexport
14568         attributes by the sh-symbianelf target.
14569
14570 2004-07-12  James E Wilson  <wilson@specifixinc.com>
14571
14572         * Makefile.in (AR): Use @AR@ not ar.
14573         (NM): New.
14574         (AR_FOR_TARGET): Use $(AR) not ar for native.
14575         (NM_FOR_TARGET): Use $(NM) not nm for native.
14576         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
14577         * configure: Regenerate.
14578
14579 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
14580
14581         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
14582         special case.
14583         (ashldi3_sp64): Likewise.
14584
14585 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14586
14587         PR target/16477
14588         * pa.c (function_arg): Update comment.
14589         * pa.h (BLOCK_REG_PADDING): Define.
14590
14591 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14592
14593         PR tree-optimization/16461
14594         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
14595         arguments of phi nodes.
14596
14597 2004-07-12  Devang Patel  <dpatel@apple.com>
14598
14599         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
14600
14601 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
14602
14603         * function.c (expand_function_start): Ensure r_save is in Pmode.
14604         * calls.c (prepare_call_address): Ensure static_chain_value is
14605         in Pmode.
14606         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
14607         r_save_area are in Pmode.
14608         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
14609         fnaddr, and static_chain are in Pmode.
14610
14611 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
14612
14613         PR target/16445
14614         * config/ia64/ia64.c (bundling): Don't count ignored insns.
14615
14616 2004-07-12  Richard Henderson  <rth@redhat.com>
14617
14618         * target.h (struct gcc_target): Move gimplify_va_arg_expr
14619         next to build_builtin_va_list.
14620         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
14621         * builtins.c (gimplify_va_arg_expr): Likewise.
14622         * gimplify.c (copy_if_shared_r): Likewise.
14623
14624 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
14625
14626         * passes.c (rest_of_decl_compilation): Don't defer call of
14627         assemble_variable if its DECL_RTL is already set.
14628
14629 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
14630
14631         * cfgloop.h (struct loop): Add nb_iterations field.
14632         (current_loops): Declare.
14633         * tree-chrec.c (chrec_not_analyzed_yet,
14634         chrec_dont_know, chrec_known, count_ev_in_wider_type,
14635         chrec_contains_symbols_defined_in_loop): Remove the temporary
14636         hooks.
14637         * tree-flow-inline.h (loop_containing_stmt): New function.
14638         * tree-scalar-evolution.c: Add implementation.
14639         * tree-scalar-evolution.h: Add declarations.
14640
14641 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
14642
14643         PR rtl-optimization/15921
14644         * Makefile.in (global.o): Add recog.h.
14645
14646         * global.c (recog.h): Add the include-clause.
14647         (bb_info): New member earlyclobber.
14648         (allocate_bb_info, free_bb_info): Initialize/finish the new
14649         member.
14650         (earlyclobber_regclass, earlyclobber_regclass_length): The new
14651         global variables.
14652         (check_earlyclobber, regclass_intersect,
14653         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
14654         New functions.
14655         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
14656         (make_accurate_live_analysis): Modify pavin.
14657
14658 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
14659
14660         * tree-cfg.c (find_taken_edge): Statically compute the truth
14661         value of a predicate comparing an SSA_NAME to itself.
14662
14663 2004-07-12  Roger Sayle  <roger@eyesopen.com>
14664
14665         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
14666         rs6000 doesn't have shift-and-add or shift-and-sub instructions
14667         by returning the cost of a multiplication plus an addition.
14668
14669 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
14670
14671         PR tree-optimization/14107
14672         * gimplify.c (gimplify_return_expr): Accept a
14673         RETURN_EXPR with an error argument.
14674         * tree-optimize.c (init_tree_optimization_passes):
14675         Run pass_warn_function_return at -O0.
14676
14677 2004-07-12  Roger Sayle  <roger@eyesopen.com>
14678
14679         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
14680         index entry.
14681
14682 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
14683
14684         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
14685         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
14686         * config/mips/3000.md: Add copyright notice.  Remove automota and
14687         function units; use generic ones instead.  Only define reservations
14688         for things that are different from generic.md.  Extend each clause
14689         to include r3900.
14690         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
14691         * config/mips/mips.md: Include them. Remove define_function_units.
14692         (alu, imuldiv): New automata and units.
14693
14694 2004-07-12  Ben Elliston  <bje@au.ibm.com>
14695
14696         * doc/invoke.texi (Optimize Options): Document -frename-registers
14697         not being enabled by default at -O3.
14698
14699 2004-07-11  Roger Sayle  <roger@eyesopen.com>
14700
14701         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
14702         floating point additions, to keep real immediate constant positive.
14703         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
14704         into X + C, and leave positive real constants as X - C.
14705
14706 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14707
14708         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
14709
14710 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14711
14712         PR tree-optimization/15654
14713         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
14714
14715 2004-07-11  Roger Sayle  <roger@eyesopen.com>
14716
14717         * builtins.c (fold_builtin_fputs): Don't bother converting the
14718         return type to integer_type_node, as we've already checked that
14719         the result will be ignored.
14720
14721         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
14722         that signed addition, subtraction, multiplication, division,
14723         remainder, negation and absolute value may potentially trap.
14724
14725         * fold-const.c (fold_ignored_result): New function to strip
14726         non-side-effecting tree nodes from an expression whose result
14727         is ignored.
14728         (fold_convert): Call fold_ignored_result when casting a value
14729         to VOID_TYPE.
14730         (omit_one_operand):  Call fold_ignored_result on the "omitted"
14731         operand when building a COMPOUND_EXPR.
14732         (pedantic_omit_one_operand): Likewise.
14733         * tree.h (fold_ignored_result): Prototype here.
14734         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
14735         when we're going to ignore the result.
14736
14737 2004-07-11  Richard Henderson  <rth@redhat.com>
14738
14739         PR tree-opt/16383
14740         * tree-ssa-ccp.c (fold_stmt_r): Split out...
14741         * tree.c (fields_compatible_p, find_compatible_field): ... new.
14742         * tree.h (fields_compatible_p, find_compatible_field): Declare.
14743         * tree-sra.c (sra_hash_tree): Hash fields by offset.
14744         (sra_elt_eq): Use fields_compatible_p.
14745         (generate_one_element_ref): Use find_compatible_field.
14746
14747 2004-07-11  Richard Henderson  <rth@redhat.com>
14748
14749         PR tree-opt/16422
14750         * tree-sra.c (generate_one_element_init): New.
14751         (generate_element_init): Use it.
14752         (scalarize_init): Push/pop gimplify context around it.
14753         (find_new_referenced_vars_1, find_new_referenced_vars): New.
14754         * gimplify.c (gimplify_expr): Allow SSA_NAME.
14755
14756 2004-07-11  Roger Sayle  <roger@eyesopen.com>
14757
14758         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
14759         combine.c's combine_insn_cost.
14760         * rtl.h (insn_rtx_cost): Prototype here.
14761         * combine.c (combine_insn_cost): Delete function.
14762         (combine_validate_cost): Update callers of combine_insn_cost to
14763         call insn_rtx_cost instead.
14764         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
14765         requesting the rtx_cost of call and/or jump instructions.
14766
14767         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
14768         rtx_cost directly.  Don't request/use the cost of call or jump
14769         instructions.  Return -1 if the cost of any instruction can't be
14770         determined (or the BB contains a function call).
14771         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
14772         -1 (i.e. can't determine the cost of any instruction or the basic
14773         block contains a subroutine call).
14774         (find_if_case_2): Likewise.
14775
14776 2004-07-11  Roger Sayle  <roger@eyesopen.com>
14777
14778         * rs6000.c (struct processor_costs): Change semantics of fields to
14779         include the COST_N_INSNS scaling, and update all initializers.
14780         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
14781         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
14782         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
14783         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
14784
14785 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14786
14787         * LANGUAGES: Remove obsolete information.
14788
14789 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
14790
14791         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
14792         SIGBUS signal frames, the PSW address points *to* the faulting
14793         instruction, not after it.
14794
14795 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
14796
14797         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
14798         added to TLS symbol addresses.
14799
14800 2004-07-11  Richard Henderson  <rth@redhat.com>
14801
14802         * expmed.c (init_expmed): Use stack-local structures for
14803         temporary rtl.  Don't recognize shifts.
14804
14805 2004-07-11  Richard Henderson  <rth@redhat.com>
14806
14807         * expr.c (store_expr): Don't fiddle subreg promotion for types
14808         with precision smaller than the mode.
14809
14810 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14811
14812         * tree.h (all_types_permanent): Remove.
14813
14814 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14815
14816         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
14817         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
14818         * langhooks.c (lhd_clear_binding_stack): Remove.
14819         * langhooks-def.h (lhd_clear_binding_stack,
14820         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
14821         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
14822         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
14823         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
14824         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
14825         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
14826         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
14827         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
14828         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
14829         * tree.h (poplevel): Don't declare.
14830         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
14831         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
14832         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
14833         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
14834         Remove.
14835
14836 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14837
14838         PR tree-optimization/16437
14839         * c-common.c (shorten_compare): Don't mark result of conversion to
14840         narrower signed type as overflowing.
14841         * fold-const.c (decode_field_reference): Determine whether
14842         signedness comes from outer type using precision rather than size.
14843
14844 2004-07-11  Phil Edwards  <phil@codesourcery.com>
14845
14846         * configure.ac:  Alphabetize --enable-checking list, add
14847         missing valgrind entry.
14848         * configure:  Regenerate.
14849
14850 2004-07-11  Phil Edwards  <phil@codesourcery.com>
14851
14852         * doc/install.texi (Testing):  Fix syntax in "make check" example.
14853
14854 2004-07-10  James E Wilson  <wilson@specifixinc.com>
14855
14856         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
14857
14858 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14859
14860         PR rtl-optimization/16001
14861         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
14862         niter_expr.
14863
14864 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
14865
14866         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
14867
14868 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
14869             James Morrison  <phython@gcc.gnu.org>
14870
14871         * doc/contrib.texi (Contributors): Add gfortran contributors and
14872         fix a couple of typos.
14873
14874 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14875
14876         PR rtl-optimization/15387
14877         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
14878         to incoming args space correctly.
14879
14880 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14881
14882         * pa.c (output_indirect_call): Only use %r2 as the link register in
14883         indirect calls with the long PA 2.0 pc-relative branch.
14884
14885 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
14886
14887         * config/i386/i386.c (override_options): Pick a 64-bit CPU
14888         for the default tuning if TARGET_64BIT.
14889
14890 2004-07-10  Richard Henderson  <rth@redhat.com>
14891
14892         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
14893         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
14894
14895 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
14896
14897         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
14898         * expmed.c (store_bit_field, extract_bit_field): Remove last
14899         argument.
14900         * builtins.c (expand_builtin_signbit): Adjust callers.
14901         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
14902         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
14903         * ifcvt.c (noce_emit_move_insn): Likewise.
14904         * stmt.c (expand_return): Likewise.
14905         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
14906         store_field, expand_expr_real_1): Likewise.
14907
14908 2004-07-10  Richard Henderson  <rth@redhat.com>
14909
14910         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
14911
14912 2004-07-09  Mike Stump  <mrs@apple.com>
14913
14914         * config/darwin.c (no_dead_strip): Add.
14915         (HAVE_DEAD_STRIP): Add.
14916         (darwin_emit_unwind_label): Ensure that we don't dead code strip
14917         the .eh label.
14918
14919 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14920
14921         * tree-ssa-loop-im.c: New file.
14922         * Makefile.in (tree-ssa-loop-im.o): Add.
14923         * cfgloop.c (superloop_at_depth): New function.
14924         * cfgloop.h (superloop_at_depth): Declare.
14925         * common.opt (ftree-lim): New flag.
14926         * expr.c (array_ref_up_bound): New function.
14927         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
14928         * timevar.def (TV_LIM): New timevar.
14929         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
14930         computing immediate uses of a phi node.
14931         * tree-flow.h (struct tree_ann_common_d): Add aux field.
14932         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
14933         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
14934         * tree-pass.h (pass_lim): Declare.
14935         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
14936         functions.
14937         (pass_lim): New pass structure.
14938         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
14939         * tree.c (in_array_bounds_p): New function.
14940         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
14941         (in_array_bounds_p, array_ref_up_bound): Declare.
14942         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
14943         * doc/passes.texi (tree-ssa-loop-im.c): Document.
14944
14945 2004-07-09  Richard Henderson  <rth@redhat.com>
14946
14947         * builtins.c (expand_builtin_stpcpy): Don't modify len.
14948
14949         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
14950         with prejudice.
14951
14952 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
14953
14954         * flags.h: Delete redundant prototypes that are being generated
14955         in options.h from common.opt.
14956         * common.opt: Add in the expository comments formerly in flags.h.
14957
14958 2004-07-09  Jan Beulich  <jbeulich@novell.com>
14959
14960         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
14961         available for use only when TARGET_MMX/_SSE is set, and check for
14962         variable argument function if any register count is non-zero.
14963         (function_arg): Correctly suppress repeated warnings for passing SSE
14964         vectors are arguments without SSE enabled.
14965         (ix86_function_arg_boundary): Without SSE enabled, the use of what
14966         would be SSE register modes does no longer influence the alignment.
14967
14968 2004-07-09  Richard Henderson  <rth@redhat.com>
14969
14970         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
14971         Always align upward to arg boundary.  Use size_in_bytes/round_up.
14972         Maintain type-correctness of constants.
14973         * stor-layout.c (round_up, round_down): Special-case powers of 2.
14974
14975 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
14976
14977         * config/sparc/sparc.c (*_costs): Scale instruction costs
14978         by COSTS_N_INSNS.
14979         (sparc_rtx_costs): Adjust as appropriate.
14980
14981 2004-07-09  Jan Beulich  <jbeulich@novell.com>
14982
14983         * config/i386/mm3dnow.h: New.
14984         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
14985
14986 2004-07-09  Richard Henderson  <rth@redhat.com>
14987
14988         * simplify-rtx.c (simplify_const_relational_operation): Only
14989         look at bounds of scalar integers.
14990
14991 2004-07-09  Jan Beulich  <jbeulich@novell.com>
14992
14993         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
14994
14995 2004-07-09  Andrew Pinski  <apinski@apple.com>
14996
14997         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
14998         always referenced.
14999         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
15000         UOBJC_METACLASS_decl.
15001
15002 2004-07-09  James E Wilson  <wilson@specifixinc.com>
15003
15004         PR target/16364
15005         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
15006         do return a parallel if hfa_mode == XFmode and mode == TImode.
15007
15008 2004-07-09  Jan Beulich  <jbeulich@novell.com>
15009
15010         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
15011         permissible for unary plus.
15012
15013 2004-07-09  Jan Beulich  <jbeulich@novell.com>
15014
15015         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
15016         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
15017         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
15018         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
15019         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
15020         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
15021         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
15022         (BUILTIN_xxxIMAX): New.
15023         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
15024         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
15025         BUILT_IN_PARITYIMAX.
15026
15027 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
15028
15029         * config/sparc/sparc.h (processor_costs): Define.
15030         (sparc_costs): Declare.
15031         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
15032         hypersparc_costs, sparclet_costs, ultrasparc_costs,
15033         ultrasparc3_costs): New.
15034         (sparc_override_options): Set sparc_costs as appropriate.
15035         (sparc_rtx_costs): Use sparc_costs instead of messy
15036         conditionals.
15037
15038 2004-07-09  Steven Bosscher  <stevenb@suse.de>
15039
15040         * doc/md.texi (Processor pipeline description): Mention that
15041         the old pipeline description is deprecated.
15042
15043         * config/rs6000/7450.md (automaton ppc7450): Split up, move
15044         mciu_7450 function unit to...
15045         (automaton ppc7450mciu): ...new automaton.
15046
15047         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
15048         (schedule_block): Don't consider inserting bubbles.
15049         (sched_init): Don't initialize DFA bubbles.
15050         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
15051         TARGET_SCHED_DFA_BUBBLE): Remove.
15052         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
15053         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
15054         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
15055
15056         * stmt.c (conditional_context): Remove prototype.
15057         * tree.h (conditional_context): Remove.
15058         * tree-cfg.c (pre_insert_on_edge): Remove.
15059
15060         * c-common.h (c_expand_asm_operands): Remove prototype.
15061         * c-typeck.c (c_expand_asm_operands): Remove.
15062
15063 2004-07-09  Jan Beulich  <jbeulich@novell.com>
15064
15065         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
15066         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
15067         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
15068         and V8QI are class SSE. All sufficiently small remaining vector modes
15069         must be passed in one or two integer registers.
15070         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
15071         returned in memory.
15072         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
15073         __builtin_ia32_pmuludq128 have non-uniform argument and return types
15074         and must thus be handled explicitly.
15075         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
15076         MMX and XMM regs.
15077         (movv8qi_internal, movv4hi_internal, movv2si_internal,
15078         movv2sf_internal): Permit moving between MMX and XMM registers (since
15079         MMX areguments and return values are passed in XMM registers).
15080         (sse2_umulsidi3): Correct type and mode.
15081
15082 2004-07-09  Richard Henderson  <rth@redhat.com>
15083
15084         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
15085
15086 2004-07-09  Eric Christopher  <echristo@redhat.com>
15087
15088         * config/rs6000/40x.md: Split into two automatons.
15089
15090 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
15091             Andrew Pinski  <apinski@apple.com>
15092
15093         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
15094         on when we have more than one input file.
15095         (c_common_parse_file): Restore loop over all input files.
15096         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
15097
15098         * c-decl.c (set_type_context): New function.
15099         (pop_scope): Use it to set context of types.  When we
15100         encounter a TYPE_DECL, set the context of the attached type too.
15101         (pop_file_scope): Don't call cpp_undef_all here.
15102         (diagnose_mismatched_decls): Do not complain about a second
15103         definition of an 'extern inline' function if it's not in the
15104         same translation unit.  Do not complain about inline
15105         declaration after use if the use was in a different
15106         translation unit.
15107         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
15108         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
15109         the external scope.
15110         (pushdecl_top_level): Likewise.
15111         (grokdeclarator): Clarify what is going on with setting
15112         DECL_EXTERNAL on function types, a little.
15113         (c_write_global_declarations): Don't do anything if
15114         -fsyntax-only or errors have been encountered.
15115
15116 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
15117
15118         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
15119
15120 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15121
15122         PR target/16459
15123         * pa.c (output_indirect_call): Use %r2 as the link register when
15124         calling $$dyncall with a pc-relative branch.
15125
15126 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
15127
15128         * doc/install.texi (Binaries): Mention OpenPKG.
15129
15130 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
15131
15132         Fix PR tree-optimization/15555
15133         * tree-dfa.c (dump_variable): If the variable is a pointer
15134         SSA_NAME, also dump its points-to information.
15135         * tree-flow.h (struct ptr_info_def): Add field
15136         is_dereferenced.
15137         (dump_points_to_info_for): Declare.
15138         (debug_points_to_info_for): Declare.
15139         * tree-optimize.c (init_tree_optimization_passes): Add a
15140         second alias analysis pass after DOM2.
15141         Move pass_del_pta to a later spot.
15142         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
15143         create a name tags when we find a dereferenced pointer.  Just
15144         mark the pointer dereferenced.
15145         (collect_points_to_info_for): Move code to clear points-to
15146         information to create_name_tags.
15147         (create_name_tags): New function.
15148         (compute_flow_sensitive_aliasing): Call it.
15149         (setup_pointers_and_addressables): Mark type tags for renaming
15150         here instead of ...
15151         (create_memory_tag): ... here.
15152         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
15153         (dump_points_to_info_for): Declare extern.
15154         (debug_points_to_info_for): New function.
15155
15156 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
15157
15158         * config/arc/arc.md: Switch to DFA-based scheduler description.
15159         * config/arc/arc.c: Switch to DFA-based scheduler description.
15160
15161 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
15162
15163         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
15164         pointer.
15165
15166 2004-07-09  Richard Henderson  <rth@redhat.com>
15167
15168         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
15169         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15170         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
15171         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
15172
15173         * config/v850/v850-protos.h (v850_va_arg): Remove.
15174         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15175         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
15176         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
15177         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
15178         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
15179
15180 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
15181
15182         PR target/12133
15183         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
15184         and DImode to use +/-4k offset.
15185
15186 2004-07-09  Richard Henderson  <rth@redhat.com>
15187
15188         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
15189         Remove.
15190         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15191         (xstormy16_gimplify_va_arg_expr): Rewrite from
15192         xstormy16_expand_builtin_va_arg.
15193         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
15194
15195         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
15196         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
15197
15198         * config/sh/sh-protos.h (sh_va_arg): Remove.
15199         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15200         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
15201         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
15202
15203         * config/pa/pa-protos.h (hppa_va_arg): Remove.
15204         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15205         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
15206         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
15207
15208         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
15209         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15210         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
15211         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
15212
15213 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
15214
15215         * config/sparc/sparc.md (return): Rewrite length formula.
15216         * config/sparc/sparc.c (output_return): Pass 1 as 5th
15217         argument to final_scan_insn when in a delay slot.
15218         (output_sibcall): Likewise.
15219
15220 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
15221
15222         * arm.c (arm_cpp_interwork): New variable.
15223         (arm_override_options): Set it if TARGET_INTERWORK was on the command
15224         line.
15225         * arm.h (arm_cpp_interwork): Declare it.
15226         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
15227         __THUMB_INTERWORK__ in the preprocessor.
15228
15229 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
15230
15231         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
15232
15233 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
15234
15235         PR target/16416
15236         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
15237         Override default settings to account for -m32 and -m64.
15238
15239 2004-07-08  Randolph Chung  <tausq@debian.org>
15240
15241         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
15242
15243 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
15244
15245         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
15246         before comparing it as such.
15247
15248 2004-07-08  Richard Henderson  <rth@redhat.com>
15249
15250         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
15251         temporary.  Use bit arithmetic to align.
15252
15253 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
15254
15255         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
15256         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
15257         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
15258         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
15259         add_labels_and_missing_jumps, find_jump_block,
15260         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
15261         Likewise.
15262         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
15263         link_btr_uses, move_btr_def): Likewise.
15264         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
15265         expand_builtin_expect_jump): Likewise.
15266         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
15267         * calls.c (expand_call, emit_library_call_value_1): Likewise.
15268         * cfganal.c (forwarder_block_p): Likewise.
15269         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
15270         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
15271         find_bb_boundaries): Likewise.
15272         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
15273         merge_blocks_move_predecessor_nojumps,
15274         merge_blocks_move_successor_nojumps, insns_match_p,
15275         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
15276         try_optimize_cfg): Likewise.
15277         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
15278         * cfglayout.c (skip_insns_after_block, label_for_bb,
15279         record_effective_endpoints, insn_locators_initialize,
15280         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
15281         * cfgmainloop.c (create_loop_notes): Likewise.
15282         * cfgrtl.c (delete_insn, delete_insn_chain,
15283         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
15284         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
15285         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
15286         redirect_branch_edge, force_nonfallthru_and_redirect,
15287         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
15288         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
15289         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
15290         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
15291         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
15292         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
15293         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
15294         * combine.c (combine_instructions, can_combine_p, try_combine,
15295         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
15296         distribute_notes, distribute_links, insn_cuid): Likewise.
15297         * cse.c (fold_rtx, cse_insn, cse_around_loop,
15298         invalidate_skipped_block, cse_set_around_loop,
15299         cse_end_of_basic_block, cse_main, cse_basic_block,
15300         cse_condition_code_reg): Likewise.
15301         * cselib.c (cselib_process_insn): Likewise.
15302         * ddg.c (create_ddg): Likewise.
15303         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
15304         Likewise.
15305         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
15306         gen_label_die, dwarf2out_var_location): Likewise.
15307         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
15308         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
15309         last_call_insn, active_insn_p, next_label, prev_label,
15310         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
15311         add_insn_before, remove_insn, add_function_usage_to,
15312         reorder_insns, find_line_note, remove_unnecessary_notes,
15313         emit_insn_after_1, classify_insn): Likewise.
15314         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
15315         connect_post_landing_pads, sjlj_mark_call_sites,
15316         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
15317         can_throw_internal, can_throw_external, set_nothrow_function_flags,
15318         convert_to_eh_region_ranges): Likewise.
15319         * explow.c (optimize_save_area_alloca): Likewise.
15320         * expr.c (expand_expr_real): Likewise.
15321         * final.c (insn_current_reference_address, compute_alignments,
15322         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
15323         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
15324         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
15325         propagate_block_delete_insn, propagate_one_insn,
15326         init_propagate_block_info, propagate_block, libcall_dead_p,
15327         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
15328         Likewise.
15329         * function.c (instantiate_virtual_regs, reorder_blocks_1,
15330         expand_function_start, expand_function_end, contains,
15331         thread_prologue_and_epilogue_insns,
15332         reposition_prologue_and_epilogue_notes): Likewise.
15333         * gcse.c (constprop_register, bypass_conditional_jumps,
15334         insert_insn_end_bb, gcse_after_reload): Likewise.
15335         * genemit.c (gen_expand, gen_split): Likewise.
15336         * genpeep.c (gen_peephole, main): Likewise.
15337         * global.c (build_insn_chain): Likewise.
15338         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
15339         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
15340         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
15341         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
15342         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
15343         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
15344         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
15345         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
15346         dead_or_predicable): Likewise.
15347         * integrate.c (try_constants): Likewise.
15348         * jump.c (rebuild_jump_labels, cleanup_barriers,
15349         purge_line_number_notes, init_label_info, mark_all_labels,
15350         squeeze_notes, get_label_before, get_label_after,
15351         reversed_comparison_code_parts, simplejump_p, pc_set,
15352         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
15353         delete_barrier, delete_prior_computation, delete_computation,
15354         delete_related_insns, delete_for_peephole, redirect_jump):
15355         Likewise.
15356         * lcm.c (optimize_mode_switching): Likewise.
15357         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
15358         Likewise.
15359         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
15360         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
15361         * loop-iv.c (simplify_using_assignment): Likewise.
15362         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
15363         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
15364         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
15365         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
15366         check_insn_for_givs, check_final_value, update_giv_derive,
15367         basic_induction_var, product_cheap_p, check_dbra_loop,
15368         loop_insn_first_p, last_use_this_basic_block,
15369         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
15370         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
15371         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
15372         sms_schedule_by_order): Likewise.
15373         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
15374         * postreload.c (reload_cse_simplify_operands, reload_combine,
15375         reload_cse_move2add): Likewise.
15376         * predict.c (can_predict_insn_p, estimate_probability,
15377         expected_value_to_br_prob, process_note_predictions): Likewise.
15378         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
15379         * profile.c (branch_prob): Likewise.
15380         * ra-build.c (live_out_1, livethrough_conflicts_bb,
15381         detect_webs_set_in_cond_jump): Likewise.
15382         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
15383         ra_print_rtl_with_bb): Likewise.
15384         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
15385         * recog.c (next_insn_tests_no_inequality, find_single_use,
15386         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
15387         * reg-stack.c (next_flags_user, record_label_references,
15388         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
15389         compensate_edge, convert_regs_1): Likewise.
15390         * regclass.c (scan_one_insn): Likewise.
15391         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
15392         regmove_optimize, fixup_match_1, single_set_for_csa,
15393         combine_stack_adjustments_for_block): Likewise.
15394         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
15395         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
15396         find_equiv_reg): Likewise.
15397         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
15398         reload_as_needed, emit_input_reload_insns, do_output_reload,
15399         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
15400         Likewise.
15401         * reorg.c (find_end_label, emit_delay_sequence,
15402         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
15403         get_jump_flags, rare_destination, mostly_true_jump,
15404         try_merge_delay_insns, redundant_insn, own_thread_p,
15405         fill_simple_delay_slots, fill_slots_from_thread,
15406         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
15407         dbr_schedule): Likewise.
15408         * resource.c (find_basic_block, next_insn_no_annul,
15409         find_dead_or_set_registers, mark_target_live_regs): Likewise.
15410         * rtl.h (RTX_PREV): Likewise.
15411         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
15412         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
15413         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
15414         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
15415         tablejump_p, computed_jump_p, insns_safe_to_move_p,
15416         find_first_parameter_load, can_hoist_insn_p): Likewise.
15417         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
15418         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
15419         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
15420         schedule_ebbs): Likewise.
15421         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
15422         is_conditionally_protected, can_schedule_ready_p,
15423         add_branch_dependences, debug_dependencies): Likewise.
15424         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
15425         Likewise.
15426         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
15427         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
15428         set_dominates_use, ujump_to_loop_cont): Likewise.
15429         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
15430         * varasm.c (output_constant_pool_1): Likewise.
15431
15432 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15433
15434         * tree-scalar-evolution.c: New file.
15435         * tree-scalar-evolution.h: New file.
15436         * tree-ssa-loop-niter.c: New file.
15437         * Makefile.in (SCEV_H): New.
15438         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
15439         * cfgloop.h (struct loop): Add bounds field.
15440         * tree-flow.h (struct tree_niter_desc): New type.
15441         (number_of_iterations_cond, number_of_iterations_exit,
15442         loop_niter_by_eval, find_loop_niter_by_eval,
15443         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
15444         free_numbers_of_iterations_estimates): Declare.
15445         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
15446         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
15447         * doc/invoke.texi (max-iterations-to-track): Document.
15448
15449 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
15450
15451         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
15452         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
15453         (MODE_AFTER): Add cast appropriately.
15454         * config/sh/sh.md (movdi splitter): Likewise.
15455         (casesi_worker_2): Add const qualifier appropriately.
15456         (eh_return): Remove unused variable.
15457         (insv): Initialize v;
15458
15459 2004-07-08  Richard Henderson  <rth@redhat.com>
15460
15461         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
15462         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15463         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
15464         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
15465         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
15466
15467         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
15468         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15469         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
15470         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
15471
15472         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
15473         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15474         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
15475         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
15476
15477         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
15478         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15479         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
15480         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
15481
15482         * config/i860/i860-protos.h (i860_va_arg): Remove.
15483         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15484         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
15485         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
15486
15487 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
15488
15489         * system.h: Prototype getpagesize if missing.
15490         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
15491         * configure: Regenerate.
15492         * config.in: Regenerate.
15493
15494 2004-07-08  Richard Henderson  <rth@redhat.com>
15495
15496         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
15497         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15498         (fr30_gimplify_va_arg_expr): New.
15499         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
15500         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
15501
15502 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
15503
15504         PR target/16414
15505         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
15506         of asm_noperands result.
15507
15508 2004-07-08  Richard Henderson  <rth@redhat.com>
15509
15510         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
15511         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15512         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
15513         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
15514
15515 2004-07-08  Richard Henderson  <rth@redhat.com>
15516
15517         * builtins.c (ind_gimplify_va_arg_expr): New.
15518         * tree.h (ind_gimplify_va_arg_expr): Declare.
15519         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
15520
15521 2004-07-08  Jan Beulich  <jbeulich@novell.com>
15522
15523         * expmed.c (extract_bit_field): Correct condition to use vec_extract
15524         patterns also on vector elements other than the first one.
15525         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
15526         break statements.
15527
15528 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
15529
15530         * config/rs6000/darwin-ldouble.c: Correct reference
15531         to the Linnainmaa paper.
15532
15533 2004-07-08  Richard Henderson  <rth@redhat.com>
15534
15535         * config/arc/arc-protos.h (arc_va_arg): Remove.
15536         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15537         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
15538         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
15539
15540         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
15541         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
15542         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
15543         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
15544
15545 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15546
15547         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
15548
15549 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
15550
15551         * c-decl.c (static_ctors, static_dtors): Make static.
15552         (pop_file_scope): Call c_common_write_pch and
15553         cgraph_finalize_compilation_unit here.
15554         (build_cdtor): Moved here from c-objc-common.c; simplify.
15555         (c_write_global_declarations_1): Clarify comment.
15556         (c_write_global_declarations): Close the external scope before
15557         doing anything else.  Call build_cdtor, cgraph_optimize, and
15558         mudflap_finish_file here.
15559         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
15560         Clarify comment.
15561         * c-objc-common.c: No need to include cgraph.h.
15562         (build_cdtor): Moved to c-decl.c.
15563         (c_objc_common_finish_file): Delete.
15564         * c-tree.h: Update to match.
15565         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
15566         (generate_static_references): Set TREE_USED before calling finish_decl.
15567         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
15568         on the static_instances_decl.
15569
15570 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
15571
15572         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
15573         decls when there is only one input translation unit.
15574         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
15575         change of 2004-07-05; do not treat declarations with
15576         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
15577         * opts.c (cur_in_fname): Delete.
15578         * opts.h: Likewise.
15579         * tree.c: Revert changes of 2004-07-05; no special treatment
15580         for TRANSLATION_UNIT_DECLs.
15581         * Makefile.in (tree.o): Update dependencies.
15582
15583 2004-07-08  Roger Sayle  <roger@eyesopen.com>
15584
15585         * builtins.c (fold_builtin_strcpy): Merge functionality from
15586         simplify_builtin_strcpy.  Add additional len argument.  No longer
15587         static.  Remove function prototype.
15588         (fold_builtin_strncpy): Likewise integrate functionality from
15589         simplify_builtin_strncpy.  Add additional slen argument.  No
15590         longer static.  Remove function prototype.
15591         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
15592         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
15593         types of "ignore" and "unlocked" parameters to bool.
15594         (fold_builtin_1):  Add additional ignore argument.  Call renamed
15595         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
15596         builtins.  Update arguments to fold_builtin_strncpy and
15597         fold_builtin_strcpy.  Add function prototype.
15598         (fold_builtin): Add additional Boolean ignore argument to pass
15599         to fold_builtin_1.
15600         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
15601         and fold_builtin_strncpy instead of simplify_builtin_fputs,
15602         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
15603
15604         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
15605         simplify_builtin_strncpy): Delete function prototypes.
15606         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
15607         fold_builtin_strncpy): Add function prototypes here.
15608         (fold_builtin): Update function prototype with new "bool ignore".
15609
15610         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
15611         (ccp_fold_builtin):  Update call to fold_builtin.  Call
15612         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
15613         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
15614         simplify_builtin_strncpy respectively.
15615         * fold-const.c (fold): Update call to fold_builtin.
15616
15617 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
15618
15619         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
15620         to strcpy.
15621
15622         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
15623         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
15624         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
15625         * calls.c: Remove ifdefs of macros above.
15626         * functions.c: Likewise.
15627         * expr.c: Likewise.
15628
15629 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15630
15631         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
15632         (arch attribute): Delete.
15633         (current_function_calls_alloca attribute): Rename into calls_alloca.
15634         (calls_eh_return): New attribute.
15635         (leaf_function): Likewise.
15636         (length attribute): Fix formula for sibcalls.
15637         (return insn): Correctly compute the 'length' attribute.
15638         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
15639
15640 2004-07-08  Richard Henderson  <rth@redhat.com>
15641
15642         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
15643         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
15644         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
15645         * tree-eh.c (lower_eh_constructs_1): Likewise.
15646         * tree-sra.c (sra_walk_modify_expr): Likewise.
15647         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
15648         (eliminate_unnecessary_stmts): Likewise.
15649         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
15650         * tree-tailcall.c (optimize_tail_call): Likewise.
15651         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
15652
15653 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
15654             Jakub Jelinek  <jakub@redhat.com>
15655
15656         * config/i386/i386.c (override_options): Enable
15657         SSE prefetches with -mtune, as long as we are
15658         compiling for i686 or higher.  All i686 processors
15659         accept SSE prefetches as NOPS, some i586's don't.
15660
15661 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15662
15663         PR target/10567
15664         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
15665
15666 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
15667
15668         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
15669         the handling of clobbering ASM_EXPRs.
15670
15671 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15672
15673         PR target/16430
15674         * config/sparc/sparc.c (function_value): In 64-bit mode,
15675         return the aggregates larger than 16 bytes like unions.
15676
15677 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15678
15679         PR target/16199
15680         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
15681         'temp' is zero, generate new pseudos as needed and emit the
15682         sequence of insns in single-assignment form.  Resync comments
15683         with code.
15684         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
15685         function before reload.
15686
15687 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
15688
15689         * vec.c (vec_assert_fail): Remove duplicate 'function'.
15690
15691         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
15692
15693         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
15694         Allocation is signed.
15695         (VEC_reserve): Return flag, allocation is signed.
15696
15697 2004-07-08  Richard Henderson  <rth@redhat.com>
15698
15699         * tree-ssa-ccp.c (fold_stmt): Get type directly from
15700         OBJ_TYPE_REF_OBJECT.
15701
15702 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
15703             Neil Booth  <neil@daikokuya.co.uk>
15704
15705         PR c/2511
15706         PR c/3325
15707         * c-decl.c (finish_struct): Ensure bit-fields are given the
15708         correct type.
15709         * c-common.c (c_common_signed_or_unsigned_type): For C, require
15710         the precision to match as well as the mode.
15711         * expr.c (reduce_to_bit_field_precision): New function.
15712         (expand_expr_real_1): Reduce expressions of bit-field type to
15713         proper precision.
15714         * langhooks.h (reduce_bit_field_operations): New hook.
15715         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
15716         Define.
15717         * c-lang.c, objc/objc-lang.c
15718         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
15719         * objc/objc-act.c (check_ivars): Convert types to bit-field types
15720         before checking.
15721         * tree.c (build_nonstandard_integer_type): New function.
15722         * tree.h (build_nonstandard_integer_type): New prototype.
15723         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
15724         conversions between integer and boolean types as useless.
15725
15726 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
15727
15728         * c-common.c (c_common_nodes_and_builtins): Do not
15729         create __builtin_ptrdiff_t and __builtin_size_t.
15730
15731 2004-07-08  Andrew Pinski  <apinski@apple.com>
15732
15733         * Makefile.in (libbackend.o): Add -combine to the gcc
15734         command line.
15735
15736 2004-07-08  Nick Clifton  <nickc@redhat.com>
15737
15738         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
15739         Set to -Os.
15740
15741 2004-07-08  Richard Henderson  <rth@redhat.com>
15742
15743         * except.c (expand_eh_region_start, expand_eh_region_end,
15744         expand_eh_handler, expand_eh_region_end_cleanup,
15745         expand_start_all_catch, expand_start_catch, expand_end_catch,
15746         expand_end_all_catch, expand_eh_region_end_allowed,
15747         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
15748         expand_eh_region_end_fixup): Remove.
15749         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
15750         cleanups, outer_cleanups, label_chain, exception_region.
15751         (struct goto_fixup): Remove stack_level, cleanup_list_list.
15752         (struct label_chain): Remove.
15753         (struct stmt_status): Remove x_stack_block_stack.
15754         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
15755         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
15756         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
15757         end_cleanup_deferral, last_cleanup_this_contour,
15758         containing_blocks_have_cleanups_or_stack_level,
15759         any_pending_cleanups): Remove.
15760         (expand_null_return_1): Take no arguments.
15761         (expand_label, expand_naked_return, expand_return,
15762         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
15763         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
15764         expand_end_case_type): Don't use any of them.
15765         * calls.c (expand_call): Likewise.
15766         * dojump.c (do_jump): Likewise.
15767         * function.c (expand_function_end): Likewise.
15768         * expr.c (store_expr, expand_expr_real_1): Likewise.
15769         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
15770         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
15771         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
15772         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
15773         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
15774         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
15775         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
15776         for WITH_CLEANUP_EXPR.
15777         (gimple_push_cleanup): Likewise.
15778         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
15779         * print-tree.c (print_node): Likewise.
15780         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
15781         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
15782         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
15783         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
15784         (GOTO_SUBROUTINE_EXPR): Remove.
15785         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
15786         (DECL_TOO_LATE): Remove.
15787         * except.h, tree.h: Update decls.
15788
15789 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
15790
15791         * explow.c (optimize_save_area_alloca): Do not accept parameters.
15792         * passes.c (rest_of_handle_final): Handle symout.
15793         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
15794         Push timevar here.
15795         (rest_of_handle_sched): Break out SMS.  Remove ifs for
15796         flag_schedule_insns and flag_modulo_sched.
15797         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
15798         collect at the end.
15799         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
15800         (rest_of_handle_partition_blocks, rest_of_handle_sms,
15801         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
15802         rest_of_handle_mode_switching, rest_of_handle_jump,
15803         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
15804         rest_of_handle_jump2, rest_of_handle_postreload,
15805         rest_of_handle_flow2, rest_of_clean_state,
15806         rest_of_handle_shorten_branches,
15807         rest_of_handle_prologue_epilogue,
15808         rest_of_handle_branch_target_load_optimize): New.
15809         (rest_of_compilation): Call the above.  Remove ggc_collect
15810         calls moved to rest_of_handle_*.
15811         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
15812
15813         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
15814         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
15815         * except.h (set_nothrow_function_flags): Update comment.
15816         * function.c (current_function_nothrow): Remove.
15817         * output.h (current_function_nothrow): Remove.
15818         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
15819         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
15820
15821 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
15822
15823         PR bootstrap/16326
15824         * reorg.c: Revert 2004-06-30 change.
15825         (find_end_label): If HAVE_epilogue and !HAVE_return,
15826         return 0 instead of creating a label at the end of the insn chain.
15827         (optimize_skip): Account for the failure mode of find_end_label.
15828         (fill_simple_delay_slots): Likewise.
15829         (fill_slots_from_thread): Likewise.
15830         (relax_delay_slots): Likewise.
15831
15832 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
15833
15834         * tree-flow.h (addressable_vars): Declare.
15835         * tree-ssa-alias.c (addressable_vars): Define.
15836         (setup_pointers_and_addressables): Add addressable variables
15837         to addressable_vars.
15838         * tree-ssa-operands.c (get_stmt_operands): Move
15839         handling of ASM_EXPRs ...
15840         (get_asm_expr_operands): ... here.
15841         When the ASM_EXPR clobbers memory, also clobber addressable
15842         variables.
15843         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
15844         (delete_tree_ssa): Reset addressable_vars.
15845
15846 2004-07-07  Jan Beulich  <jbeulich@novell.com>
15847             Richard Henderson  <rth@redhat.com>
15848
15849         * varasm.c (assemble_variable): Use assemble_zeros for
15850         zero-initialized variables.
15851         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
15852         for SECCAT_BSS and SECCAT_TBSS.
15853
15854 2004-07-07  Jan Beulich  <jbeulich@novell.com>
15855
15856         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
15857
15858         * expmed.c (emit_store_flag): Also special-case double-word
15859         (in-)equality comparison against -1.
15860
15861         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
15862         passing arguments the containers for which are registers.
15863
15864         * calls.c (emit_library_call_value_1): Use mode of function parameter
15865         rather than that of argument since constants have none.
15866
15867 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
15868
15869         Introduce H8SX support.
15870         * expr.c (expand_strcpy): Renamed and moved to...
15871         * builtins.c (expand_movstr): ... here.  Tweak.
15872         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
15873         computed or has side effects.
15874         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
15875         unused, or if mempcpy fails.  Adjust the return value in the
15876         latter case.  Use movstr if everything else fails.
15877         * doc/md.texi (movstr): Document.
15878         (movmemM, clrmemM): Fix explanation of memory block operands.
15879         * config/h8300/h8300.md (stpcpy): Renamed to...
15880         (movstr): ... this.  Adjust.
15881         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
15882         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
15883         movmem* and clrstr* to clrmem*.
15884         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
15885         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
15886         GENERAL_REGS, always.
15887         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
15888         getting the stack pointer as addr.
15889         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
15890         from general_operand_dst.
15891         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
15892         variant of...
15893         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
15894         instead of requiring it to match only before reload.
15895         (stpcpy_internal_normal): New, normal-mode variant of...
15896         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
15897         `D' instead of requiring it to match only before reload.
15898         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
15899         mode argument.
15900         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
15901         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
15902         h8300_get_index.
15903         * config/h8300/h8300.md (attr type): Add call.
15904         (attr can_delay): If type is call, set it no.
15905         (call, call_value): Set type to call.
15906         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
15907         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
15908         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
15909         * tree.c (get_narrower): Don't narrow integral types into
15910         non-integral types.
15911         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
15912         frame_size *before* the first use.
15913         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
15914         on input.
15915         (peephole2): Don't widen instructions that push SP.  Move
15916         decrement of SP to the end of all stm-generating peepholes.
15917         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
15918         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
15919         and OR to set it to all ones.
15920         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
15921         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
15922         (call, call_value): Set can_delay to "no".
15923         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
15924         * config/h8300/h8300.md (extzv): Make subreg check more robust.
15925         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
15926         * config/h8300/h8300.md (*brabit): Remove.
15927         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
15928         zero_extract.  Use bit_memory_operand as the predicate for
15929         operand 1 and 'WU' as the constraint.  Check the difference
15930         between the base length and the final one when deciding which
15931         type of branch to use.
15932         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
15933         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
15934         Use convert_move to extend the result for TARGET_H8300SX.  Check
15935         for QImode memory references.  Optimize the case where the
15936         destination is a paradoxical subreg.
15937         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
15938         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
15939         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
15940         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
15941         * config/h8300/h8300.md: Include mova.md
15942         (length_table): Add mova and mova_zero.
15943         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
15944         after all constant addresses for '%R', '%X', '%T' and '%S'.
15945         (h8300_mova_length): New function.
15946         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
15947         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
15948         dependencies for s-config, etc.
15949         * config/h8300/gemova.sh: New file.
15950         * config/h8300/mova.md: Generated.
15951         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
15952         * config/h8300/h8300.c (h8300_bitfield_length): New.
15953         (nibble_operand): Adjust.
15954         (h8300_binary_length): Handle conditional binary op.
15955         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
15956         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
15957         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
15958         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
15959         constraints.  WU is introduced as a variant of U that requires a
15960         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
15961         * config/h8300/h8300.md (attr type): Added bitbranch.
15962         (attr length_table): Added bitfield and bitbranch.
15963         (attr length): Compute bitbranch length.
15964         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
15965         least-significant bit of a byte.
15966         (brabit, brabc, brabs): New.
15967         (insv, extzv): Emit bfst and bfld on H8300SX.
15968         (bfld, bfst, seq, sne): New.
15969         (bstzhireg, cmpstz, bstz, bistz): New.
15970         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
15971         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
15972         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
15973         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
15974         (h8sx_unary_memory_operator): New function.
15975         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
15976         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
15977         * config/h8300/h8300.md: Add peepholes to combine reloads and
15978         arithmetic insns.
15979         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
15980         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
15981         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
15982         (and?i, ior?i, xor?i): Likewise.
15983         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
15984         * config/h8300/h8300.c: Move enums and prototypes to head of file.
15985         Various whitespace fixes.
15986         (h8300_constant_length): New function, split out from...
15987         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
15988         (h8300_classify_operand): Use IN_RANGE.
15989         (h8300_classify_operand): Use h8300_constant_length.
15990         (h8300_short_move_mem_p): Tighten size check.
15991         (h8sx_mergeable_memrefs_p): Tighten equality check.
15992         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
15993         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
15994         for -msx.
15995         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
15996         * config/h8300/crtn.asm: Likewise.
15997         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
15998         if __H8300SX__ is defined.
15999         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
16000         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
16001         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
16002         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
16003         addresses as mode-dependent.
16004         * config/h8300/h8300.c (print_operand_address): Update call to
16005         h8300_get_index.
16006         (h8300_get_index): Take a mode argument.  Rework to fix an
16007         earlier misunderstanding.
16008         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
16009         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
16010         into a register if TARGET_H8300SX.
16011         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
16012         TARGET_H8300SX.  Also disable related define_splits.
16013         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
16014         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
16015         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
16016         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
16017         * config/h8300/h8300.h (OK_FOR_Z): New macro.
16018         (EXTRA_CONSTRAINT_STR): Check it.
16019         * config/h8300/h8300.c (h8300_classify_operand): Accept null
16020         class arguments.
16021         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
16022         * config/h8300/h8300.md (length_table): Add mov_imm4.
16023         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
16024         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
16025         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
16026         be a label.
16027         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
16028         * config/h8300/h8300.c (h8300_reorg): New function.
16029         (TARGET_MACHINE_DEPENDENT_REORG): Define.
16030         * config/h8300/h8300.md (length): Subtract the length of the
16031         delay slot from (pc) when checking the range of forward branches.
16032         (delay_slot, can_delay): New attributes.
16033         (define_delay): Add bra/s handling.
16034         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
16035         (jump): Add delayed-branch handling.
16036         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
16037         * expr.c (expand_strcpy): New function.
16038         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
16039         (expand_builtin_stpcpy): Likewise.
16040         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
16041         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
16042         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
16043         handling to improve register allocation for -fno-omit-frame-pointer.
16044         (h8sx_split_movmd): Delete, moving er6 handling into...
16045         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
16046         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
16047         (movmd): Add calls to copy_rtx.
16048         (movmd_internal): In the second alternative, allow the initial and
16049         final destination registers to be different .  Update the splitter
16050         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
16051         instead of h8sx_split_movmd.
16052         (stpcpy, movsd): New expanders.
16053         (movsd_internal): New define_insn.
16054         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
16055         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
16056         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
16057         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
16058         and DESTINATION_REGS.
16059         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
16060         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
16061         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
16062         (h8300_move_ratio): Declare.
16063         (MOVE_RATIO): Use it.
16064         * config/h8300/h8300.c (h8300_move_ratio): New variable.
16065         (h8300_init_once): Initialize it.
16066         (h8300_reg_class_from_letter): New function.
16067         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
16068         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
16069         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
16070         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
16071         (movstrsi, movmd): New expanders.
16072         (movmd_internal): New insn.
16073         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
16074         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
16075         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
16076         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
16077         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
16078         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
16079         * config/h8300/h8300.c (nibble_operand): Fix warning.
16080         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
16081         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
16082         (movsf_h8300h): Disable for TARGET_H8300SX.
16083         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
16084         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
16085         h8300_stm_parallel and h8300_return_parallel.
16086         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
16087         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
16088         h8300_stm_parallel, h8300_return_parallel): New functions.
16089         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
16090         if TARGET_H8300SX.  Use h8300_push_pop.
16091         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
16092         and final pop when generating h8sx code.  Always emit some form
16093         of return insn.
16094         * config/h8300/h8300.md: Don't enforce register alignment in
16095         stm peepholes if TARGET_H8300SX.
16096         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
16097         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
16098         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
16099         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
16100         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
16101         (MULTILIB_DIRNAMES): Add a directory for it.
16102         (MULTILIB_MATCHES): Delete.
16103         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
16104         * final.c (walk_alter_subreg): Handle addresses with subregs
16105         inside a ZERO_EXTEND or AND.
16106         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
16107         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
16108         if TARGET_H8300SX.
16109         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
16110         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
16111         @(dd,Rn.w) and @(dd,ERn.L).
16112         (h8300_displacement_size): Take the whole address as argument.
16113         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
16114         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
16115         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
16116         (h8sx_mergeable_memrefs_p): Declare.
16117         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
16118         (HAVE_PRE_INCREMENT): Likewise.
16119         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
16120         addresses for TARGET_H8300SX,
16121         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
16122         and POST_DEC.
16123         (movb_length_table, movl_length_table): New tables.
16124         (movw_length_table): Define to movb_length_table.
16125         (h8300_displacement_size): New, split out from...
16126         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
16127         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
16128         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
16129         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
16130         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
16131         (compute_plussi_length, compute_plussi_cc): Update accordingly.
16132         (h8sx_unary_shift_operator): Get the mode from the operator.
16133         (binary_shift_operator): Likewise.
16134         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
16135         a memory reference, check whether the reference is offsettable.
16136         (length_table): Add movb, movw and movl.
16137         (movqi): Add new h8sx pattern.  Don't force one operand to be a
16138         register when generating h8sx code.
16139         (movhi, movsi, movsf): Likewise.
16140         (movstrictqi): Use the length_table attribute.
16141         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
16142         (addqi3): Split into a define_expand and define_insn.  Don't accept
16143         memory operands in the expander.  Use h8300_operands_match_p to
16144         check for matching operands in the define_insn.
16145         (subqi3, negqi2, one_cmplqi2): Likewise.
16146         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
16147         in any patterns that are unused in h8sx code.  In the h8sx patterns,
16148         use h8300_operands_match_p to check whether operands match.
16149         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
16150         one_cmpl[hs]i3): Likewise.
16151         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
16152         in the expander.
16153         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
16154         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
16155         (h8300_insn_length_from_table): Add a second parameter.
16156         (output_h8sx_shift): Declare.
16157         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
16158         (EXTRA_CONSTRAINT): Replace with...
16159         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
16160         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
16161         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
16162         and h8sx_binary_shift_operator.
16163         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
16164         for TARGET_H8300SX.
16165         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
16166         (bit_memory_operand, fix_bit_operand): Likewise.
16167         (h8300_length_table_for_insn): Remove.
16168         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
16169         instructions.
16170         (h8300_short_immediate_length, h8300_binary_length): New functions.
16171         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
16172         (output_plussi): Use sub to add negative constants.
16173         (compute_plussi_length): Adjust accordingly.
16174         (h8sx_single_shift_type): New enum.
16175         (h8sx_single_shift, h8sx_unary_shift_operator,
16176         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
16177         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
16178         single h8sx instruction.  Return false in this case.
16179         * config/h8300/h8300.md (length_table): Add short_immediate.
16180         (length): Pass the operand array to h8300_insn_length_from_table.
16181         (adjust_length): Assume "no" for insns with a length_table attribute.
16182         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
16183         (*addhi3_h8300hs): Don't use for h8sx.
16184         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
16185         and sub.w #xx:3.
16186         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
16187         1's predicate to nonimmediate_operand.  Only skip default expansion
16188         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
16189         for single h8sx shift instructions.
16190         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
16191         * config/h8300/h8300.c (nibble_operand): Split out of...
16192         (reg_or_nibble_operand): ... this.
16193         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
16194         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
16195         umulhisi3): Introduce expand, and introduce separate insns for
16196         sign- or zero-extended REG and already-extended CONST_INT.
16197         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
16198         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
16199         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
16200         (subhi3): Likewise.  Don't accept immediates for operand 1.
16201         Remove the early clobber from second alternative of the h8300s pattern.
16202         (subsi3): Generalize for h8sx.  Force operand 2 into a register
16203         on plain h8300 targets.
16204         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
16205         (subsi3_h8300h): Generalize for h8sx.
16206         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
16207         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
16208         * config/h8300/h8300.c (reg_or_nibble_operand): New.
16209         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
16210         (TARGET_H8300SXMUL): New.
16211         (CONST_OK_FOR_P): New.
16212         (CONST_OK_FOR_LETTER_P): Adjust.
16213         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
16214         umulhisi3): Accept 4-bit immediate on H8SX.
16215         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
16216         (udivsi3, divhi3, udivsi3, divsi3): New.
16217         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
16218         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
16219         * config/h8300/h8300.h (OK_FOR_Q): New macro.
16220         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
16221         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
16222         Add ADDRESSOF to the bit_operand entry.
16223         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
16224         (h8300_src_operand): Likewise.
16225         (bit_operand): Check nonimmediate_operand rather than general_operand.
16226         Accept any nonimmediate_operand in h8sx code.
16227         (h8300_and_costs): Initialize operands[1].
16228         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
16229         (h8300_operand_class): New enum.
16230         (h8300_length_table): New typedef.
16231         (addb_length_table, addw_length_table, addl_length_table,
16232         logicl_length_table): New tables.
16233         (logicb_length_table, logicw_length_table): New macros.
16234         (h8300_classify_operand, h8300_length_from_table,
16235         h8300_length_table_for_insn, h8300_unary_length,
16236         h8300_insn_length_from_table): New functions.
16237         (output_plussi): Only use adds and subs for register destinations.
16238         Disable redundant clause.
16239         (compute_plussi_cc): Likewise.
16240         (compute_plussi_length): Likewise.  Use h8300_length_from_table
16241         to work out the length of an insn.
16242         (output_logical_op): Only use narrower immediate instructions
16243         if the destination is a register.
16244         (compute_logical_op_cc): Likewise.
16245         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
16246         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
16247         * config/h8300/h8300.md (length_table): New attribute.
16248         (length): When an instruction has a length_table attribute, use
16249         h8300_insn_length_from_table to calculate its default length.
16250         (cmpqi): Use h8300_dst_operand for the first operand and
16251         h8300_src_operand for the second.
16252         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
16253         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
16254         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
16255         iorsi3, xorhi3, xorsi3): Likewise.
16256         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
16257         so that it allows any combination of operands for TARGET_H8300SX.
16258         (iorqi3, xorqi3): Likewise.
16259         (cmpqi): Use the length_table attribute.
16260         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
16261         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
16262         (cmpqi): Add 'Q' constraint.
16263         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
16264         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
16265         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
16266         * config/h8300/h8300.h (MASK_H8300SX): New macro.
16267         (TARGET_H8300S): True for both -ms and -msx.
16268         (TARGET_H8300SX): New macro.
16269         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
16270         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
16271         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
16272         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
16273         [Temporary change.]
16274         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
16275         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
16276         16-bit pointers and 32-bit ints.
16277         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
16278         CONST_DOUBLE with mode no wider than SImode.
16279         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
16280         output operand.
16281         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
16282         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
16283         or SUBREG thereof.
16284         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
16285         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
16286         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
16287
16288 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
16289
16290         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
16291
16292 2004-07-07  Per Bothner  <per@bothner.com>
16293
16294         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
16295
16296 2004-07-07  Mike Stump  <mrs@apple.com>
16297
16298         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
16299         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
16300         (machopic_finish): Likewise.
16301
16302 2004-07-07  Richard Henderson  <rth@redhat.com>
16303
16304         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
16305         through any value-preserving cast.
16306
16307 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
16308
16309         * function.c (assign_parm_find_data_types): Call
16310         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
16311
16312 2004-07-07  Steven Bosscher  <stevenb@suse.de>
16313
16314         * tree-cfg.c (group_case_labels): Remove case labels that have
16315         the same target as the default case.
16316
16317 2004-07-07  Steven Bosscher  <stevenb@suse.de>
16318
16319         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
16320         regardless of DECL_LANG_SPECIFIC being present or not.
16321         * tree.h (DECL_NUM_STMTS): Purge.
16322
16323 2004-07-07  Andrew Pinski  <apinski@apple.com>
16324
16325         * configure: Regenerate with the right autoconf.
16326
16327 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
16328
16329         * ifcvt.c (total_bb_rtx_cost): New function.
16330         (find_if_case_1): Compare rtx_cost of basic block to cost of
16331         BRANCH_COST insns.
16332         (find_if_case_2): Same.
16333
16334 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16335
16336         PR target/10567
16337         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
16338         (output_return): Likewise.
16339         (output_sibcall): Abort if !flag_delayed_branch.
16340         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
16341         (emit_and_preserve): New function.
16342         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
16343         indirect jump to the thunked-to function if !flag_delayed_branch.
16344         * config/sparc/sparc.md (delayed_branch): New attribute.
16345         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
16346         attribute to compute the length of the insn.
16347         (goto_handler_and_restore): Likewise.
16348
16349 2004-07-07  Andrew Pinski  <apinski@apple.com>
16350
16351         PR tree-optimization/15777
16352         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
16353
16354         * expr.c (expand_expr_real_1): Fix formating.
16355         BUFFER_REF and IN_EXPR are dead.
16356         * fold-const.c (non_lvalue): BUFFER_REF is dead.
16357         * tree-inline.c (estimate_num_insns_1): Likewise.
16358         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
16359         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
16360         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
16361
16362 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
16363
16364         * collect2.c (dump_file): Don't call cplus_demangle if
16365         HAVE_LD_DEMANGLE is defined.
16366         (main): Pass "--demangle" to ld if no_demangle is not 0 and
16367         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
16368         if HAVE_LD_DEMANGLE is defined.
16369
16370         * configure.ac (--with-demangler-in-ld): Added
16371         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
16372         --with-demangler-in-ld is used.
16373         * config.in: Regenerated.
16374         * configure: Likewise.
16375
16376 2004-07-07  Roger Sayle  <roger@eyesopen.com>
16377
16378         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
16379         for simple floating point operations "fp", double precision
16380         multiplication "dmul", and single and double precision division
16381         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
16382         (ppc630_cost): New table split from ppc620_cost, to distinguish
16383         differences in floating point latencies.
16384         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
16385         (rs6000_rtx_costs): Add support for single and double precision
16386         floating point addition, subtraction, multiplication, division,
16387         fused-multiply-add, fused-multiply-sub, negation, absolute value
16388         and negative absolute value.  Tweak MEM case to use prefered idiom.
16389
16390 2004-07-07  Richard Henderson  <rth@redhat.com>
16391
16392         * tree-flow-inline.h (may_propagate_copy): Move...
16393         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
16394         attempt to copy between types requiring conversion.
16395         * tree-flow.h (may_propagate_copy): Update decl.
16396         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
16397
16398 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
16399
16400         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
16401         from -mtune= option.
16402
16403 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
16404
16405         * builtins.c: Rename movstr*, except for movstrict*, to
16406         movmem* and clrstr* to clrmem*.
16407         * expr.c: Likewise.
16408         * expr.h: Likewise.
16409         * genopinit.c: Likewise.
16410         * integrate.c: Likewise.
16411         * local-alloc.c: Likewise.
16412         * optabs.c: Likewise.
16413         * optabs.h: Likewise.
16414         * config/alpha/alpha.h: Likewise.
16415         * config/alpha/alpha.md: Likewise.
16416         * config/arm/arm-protos.h: Likewise.
16417         * config/arm/arm.c: Likewise.
16418         * config/arm/arm.md: Likewise.
16419         * config/avr/avr.md: Likewise.
16420         * config/c4x/c4x.c: Likewise.
16421         * config/c4x/c4x.md: Likewise.
16422         * config/frv/frv.md: Likewise.
16423         * config/i386/i386-protos.h: Likewise.
16424         * config/i386/i386.c: Likewise.
16425         * config/i386/i386.h: Likewise.
16426         * config/i386/i386.md: Likewise.
16427         * config/i860/i860.c: Likewise.
16428         * config/i860/i860.md: Likewise.
16429         * config/ip2k/ip2k.md: Likewise.
16430         * config/ip2k/libgcc.S: Likewise.
16431         * config/ip2k/t-ip2k: Likewise.
16432         * config/m32r/m32r.c: Likewise.
16433         * config/m32r/m32r.md: Likewise.
16434         * config/mcore/mcore.md: Likewise.
16435         * config/mips/mips.c: Likewise.
16436         * config/mips/mips.md: Likewise.
16437         * config/ns32k/ns32k.c: Likewise.
16438         * config/ns32k/ns32k.h: Likewise.
16439         * config/ns32k/ns32k.md: Likewise.
16440         * config/pa/pa.c: Likewise.
16441         * config/pa/pa.md: Likewise.
16442         * config/pdp11/pdp11.h: Likewise.
16443         * config/pdp11/pdp11.md: Likewise.
16444         * config/rs6000/rs6000.c: Likewise.
16445         * config/rs6000/rs6000.md: Likewise.
16446         * config/s390/s390-protos.h: Likewise.
16447         * config/s390/s390.c: Likewise.
16448         * config/s390/s390.md: Likewise.
16449         * config/sh/lib1funcs.asm: Likewise.
16450         * config/sh/sh.c: Likewise.
16451         * config/sh/sh.md: Likewise.
16452         * config/sh/t-sh: Likewise.
16453         * config/sparc/sparc.h: Likewise.
16454         * config/vax/vax.md: Likewise.
16455         * config/xtensa/xtensa.c: Likewise.
16456         * config/xtensa/xtensa.md: Likewise.
16457         * doc/invoke.texi: Likewise.
16458         * doc/md.texi: Likewise.
16459         * doc/rtl.texi: Likewise.
16460
16461 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
16462
16463         PR target/16407
16464         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
16465         * config/mips/mips.c (mips_declare_common_object): New function,
16466         mostly split out from...
16467         (mips_output_aligned_decl_common): ...here.
16468         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
16469         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
16470         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
16471         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
16472
16473 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16474
16475         PR c/16392
16476         * function.c (assign_parms): Fix typo from previous change.
16477
16478 2004-07-07  Jason Merrill  <jason@redhat.com>
16479
16480         PR c++/15815
16481         * doc/extend.texi (C++ Interface): Correct information and
16482         discourage use.
16483
16484 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
16485
16486         PR target/16130
16487         PR target/16142
16488         PR target/16143
16489         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
16490         insn.
16491
16492 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16493
16494         PR target/1679.
16495         * config/m32r/m32r.c (m32r_function_symbol): New function:
16496         Generate a symbol name RTX with the correct m32r specific flags
16497         set.
16498         (block_move_call): Use new function to generate correct symbol.
16499         * config/m32r/m32r-protos.h: Add prototype for new funcion.
16500         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
16501         function.
16502
16503 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
16504
16505         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
16506         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
16507         TYPE_BINFO_BASETYPE): Remove.
16508         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
16509         to ...
16510         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
16511         here.
16512         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
16513         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
16514         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
16515         (struct tree_binfo): Rename base_types to base_binfos.
16516         * alias.c (record_component_aliases): Adjust BINFO macros.
16517         * dbxout.c (dbxout_type): Likewise.
16518         * dwarf2out.c (gen_member_die): Likewise.
16519         * sdbout.c (sdbout_one_type): Likewise.
16520         * tree-dump.c (deque_and_dump): Likewise.
16521         * config/i386/i386.c (classify_argument,
16522         contains_128bit_aligned_vector_p): Likewise.
16523
16524 2004-07-07  Nick Clifton  <nickc@redhat.com>
16525
16526         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
16527         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
16528
16529 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
16530
16531         * vec.h: Fix the example use.
16532
16533 2004-07-06  Richard Henderson  <rth@redhat.com>
16534
16535         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
16536         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
16537         * tree-inline.c (copy_body_r, setup_one_parameter,
16538         initialize_inlined_parameters, expand_call_inline,
16539         declare_inline_vars): Don't check it.
16540         (expand_calls_inline): Remove old version, rename new version
16541         from gimple_expand_calls_inline.
16542         * tree-optimize.c (execute_gimple): Remove.
16543         (pass_gimple): Don't run anything.
16544
16545 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
16546
16547         * doc/sourcebuild.texi: Use semicolons instead of commas in
16548         section title.
16549
16550 2004-07-06  Richard Henderson  <rth@redhat.com>
16551
16552         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
16553         (sra_walk_modify_expr, scan_init): Likewise.
16554         (generate_element_zero): Check visited before scanning children.
16555         (generate_element_init): Set visited on error.
16556         (scalarize_init): Handle generate_element_init failure similar
16557         to use_block_copy.
16558
16559 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
16560
16561         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
16562         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
16563
16564 2004-07-06  Richard Henderson  <rth@redhat.com>
16565
16566         * config/i386/i386.c (legitimize_pic_address): Make static.
16567         (legitimize_address): Handle CONST with TLS operand.
16568         (ix86_expand_move): Don't call legitimize_pic_address directly.
16569         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
16570
16571 2004-07-06  Roger Sayle  <roger@eyesopen.com>
16572
16573         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
16574         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
16575         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
16576         is currently executed unconditionally, i.e. not in "else_bb".
16577
16578 2004-07-06  Steven Bosscher  <stevenb@suse.de>
16579
16580         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
16581         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16582         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
16583         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16584         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
16585         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16586         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
16587         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16588         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
16589         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16590         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
16591         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16592         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
16593         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16594         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
16595         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16596
16597 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
16598
16599         * dojump.c (do_jump): REFERENCE_EXPR is dead.
16600         * expr.c (expand_expr_real_1): Ditto.
16601         * tree-inline.c (estimate_num_insns_1): Ditto.
16602         * tree-pretty-print.c (dump_generic_node): Ditto.
16603         (op_symbol): Ditto.
16604         * tree.def: Ditto.
16605
16606 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
16607
16608         * tree-ssa-pre.c (reference_node_pool): New pool.
16609         (find_or_generate_expression): Class 'r' is okay too.
16610         (create_value_expr_from): Ditto.
16611         (add_to_sets): LHS should not include vuses.
16612         (eliminate): Ditto.
16613         (compute_avail): Reverse ordering of tests.
16614         Valuize INDIRECT_REF as well.
16615
16616 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
16617
16618         PR rtl-optimization/16380
16619         * loop.c (check_dbra_loop): Sink comparison instructions if they
16620         do something other than set cc0.
16621
16622 2004-07-06  James E Wilson  <wilson@specifixinc.com>
16623
16624         * doc/interface.texi (longjmp and automatic variables): Delete
16625         paragraph recommending taking the address of a variable.
16626
16627 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
16628
16629         * vec.h (VEC_embedded_alloc): Remove.
16630         (VEC_embedded_size, VEC_embedded_init): New.
16631         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
16632         MEM_STAT_INFO.
16633         (VEC_truncate): New.
16634         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
16635         (vec_embedded_alloc): Remove.
16636         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
16637         (vec_embedded_alloc): Remove.
16638
16639 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
16640
16641         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
16642         (gt-langhooks.h): Remove.
16643
16644 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
16645
16646         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
16647
16648 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
16649
16650         * config/sparc/sparc.c (get_pc_symbol): Rename into
16651         add_pc_to_pic_symbol.
16652         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
16653         (load_pic_register): Account for previous changes.
16654         Use reg_names.  Don't create the label twice.
16655         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
16656         UNSPEC_LOAD_PCREL_SYM.
16657         (get_pc): Rename into load_pcrel_sym.  Add predicate to
16658         operands.  Remove condition.
16659
16660 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
16661
16662         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
16663         RECORD, UNION & QUAL_UNION is actually a binfo.
16664
16665         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
16666         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
16667         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
16668         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
16669         * dwarf2out.c (add_data_member_location_attribute): Likewise.
16670         (gen_inheritance_die): Likewise.
16671         * tree-dump.c (deque_and_dump): Likewise.
16672         * doc/c-tree.texi (Binfos): Add under reconstruction note.
16673
16674 2004-07-06  Steven Bosscher  <stevenb@suse.de>
16675
16676         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
16677         Define.
16678         * config/mcore/mcore.md: Model memory latency with a simple DFA
16679         pipeline description instead of a define_function_unit.
16680
16681 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16682
16683         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
16684         * langhooks.h (var_mod_type_p): Likewise.
16685         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
16686         * expr.c (count_type_elements): Properly handle return from
16687         array_type_nelts and properly test for overflow.
16688         * gimplify.c (gimplify_init_constructor): Properly handle return
16689         from array_type_nelts.
16690         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
16691         * integrate.c (copy_decl_for_inlining): Correct comments.
16692         * tree-inline.c (remap_decl): Update comments, remove dead code,
16693         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
16694         (remap_type): Only remap if variably modified by vars in function
16695         being inlined.
16696         (copy_body_r): Use compatible_type langhooks to see when can fold.
16697         (setup_one_parameter): Don't remap type.
16698         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
16699         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
16700         compute TREE_INVARIANT for decl case.
16701         (find_var_from_fn): New function.
16702         (variably_modified_type_p): Add arg and call new function.
16703         * tree.h (variably_modified_type_p): Add extra arg.
16704
16705 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
16706
16707         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
16708         (goto_handler_and_restore_v9): Delete disabled insn.
16709         (goto_handler_and_restore_v9_sp64): Likewise.
16710
16711 2004-07-05  Roger Sayle  <roger@eyesopen.com>
16712
16713         * calls.c (load_register_parameters): Call expand_shift instead
16714         of expand_binop with ashl_optab (or other shift optab) directly.
16715         * expr.c (emit_group_load, emit_group_store): Likewise.
16716         * function.c (assign_parm_setup_block): Likewise.
16717         * stmt.c (shift_return_value): Likewise.
16718
16719 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
16720
16721         * expr.c (expand_assignment): Disable the bitfield += optimizations.
16722
16723 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16724
16725         * doc/sourcebuild.texi: Revert previous patch.
16726
16727 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16728
16729         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
16730         TARGET_MEM_FUNCTIONS.
16731         * system.h: Poison TARGET_MEM_FUNCTIONS.
16732         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
16733         bcmp_libfunc, bzero_libfunc): Remove.
16734         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
16735         bzero_libfunc.
16736         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
16737         * doc/standards.texi: Don't mention calling BSD string functions.
16738         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
16739         * config/vax/t-memfuncs: New.
16740         * config/memcmp.c, config/memcpy.c, config/memmove.c,
16741         config/memset.c: New.
16742         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
16743         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
16744         vax/t-memfuncs.
16745         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
16746         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
16747         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
16748         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
16749         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
16750         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
16751         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
16752         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
16753         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
16754         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
16755
16756 2004-07-05  Richard Henderson  <rth@redhat.com>
16757
16758         * function.c (assign_parm_setup_reg): Properly rename variables in
16759         FUNCTION_ARG_CALLEE_COPIES section.
16760
16761 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
16762
16763         * tree-mudflap.c: Include cgraph.h.
16764         (mf_init_extern_trees): Rename to mudflap_init.  Export.
16765         Rewrite to create synthetic declarations instead of looking
16766         up declarations from mf-runtime.h.
16767         (mf_make_builtin, mf_make_cache_struct_type): New functions.
16768         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
16769         Correct commentary.
16770         (execute_mudflap_function_decls, mudflap_register_call):
16771         Don't call mf_init_extern_trees.
16772         (mudflap_finish_file): Use cgraph_build_static_cdtor.
16773
16774         * tree-mudflap.h: Update prototypes.
16775         * c-mudflap.c: Delete file.
16776         * c-common.c: Include tree-mudflap.h.
16777         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
16778         * Makefile.in: Remove all references to c-mudflap.o.
16779         Update dependencies.
16780
16781 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16782
16783         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
16784         displacements with the spatial-locality cache-control completer.
16785
16786 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
16787
16788         * langhooks.c: Don't include gt-langhooks.h.
16789         (var_labelno): Delete.
16790         (lhd_set_decl_assembler_name): Do not append a distinguishing
16791         number to file-scope internal-linkage declarations for the first
16792         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
16793         the declaration itself (if at block scope), or its containing
16794         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
16795         number.
16796
16797         * opts.c (cur_in_fname): New global.
16798         * opts.h: Declare it.
16799         * tree.c: Include opts.h.
16800         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
16801         DECL_UID equal to cur_in_fname.
16802         (copy_node_stat): Do not change DECL_UID when copying a
16803         TRANSLATION_UNIT_DECL.
16804         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
16805         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
16806
16807         * c-decl.c (c_static_assembler_name): Delete.
16808         * c-tree.h (c_static_assembler_name): Delete prototype.
16809         * c-lang.c, objc/objc-lang.c: Don't override
16810         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
16811
16812         * Makefile.in (tree.o): Update dependencies.
16813         (GTFILES): Remove langhooks.c.
16814
16815 2004-07-05  Roger Sayle  <roger@eyesopen.com>
16816
16817         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
16818         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
16819         Normalize "X % C" as "X % -C" for signed modulus and negative C.
16820         Optimize "X % -Y" as "X % Y" for signed modulus.
16821         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
16822         into "((unsigned) X % Y) == 0".
16823
16824 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16825
16826         * sourcebuild.texi (Config Fragments): Use @comma{} in
16827         cross-reference to section title.
16828
16829 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16830
16831         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
16832         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
16833         (gimplify_target_expr, gimplify_expr): Likewise.
16834         (copy_if_shared_r): No longer need special case for BIND_EXPR.
16835         (unshare_body, unvisit_body): Only look at nested if BODY_P is
16836         whole function.
16837         (gimplify_compound_lval): See if we can strip any useless conversion.
16838         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
16839         from RHS, not LHS.
16840         (gimplify_modify_expr_to_memset): Likewise.
16841         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
16842         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
16843         (declare_inline_vars): Likewise.
16844         (walk_type_fields): New function.
16845         (walk_tree): Use it.
16846         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
16847
16848         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
16849         (sra_walk_modify_expr): Allow init function to fail.
16850         (scan_init): Now returns bool.
16851         (generate_element_init): If can't understand INIT, return false.
16852         (scalarize_init): Return false if generate_element_init does.
16853
16854         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
16855         print bounds.
16856
16857         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
16858         bounds if bounds aren't constant.
16859
16860         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
16861
16862         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
16863         to type hooks; remove bogus PARAMS.
16864
16865 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
16866
16867         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
16868         * dwarf2out.c (add_data_member_location_attribute): Check for
16869         TREE_BINFO.
16870         * tree.c (tree_node_kinds): Add "binfos".
16871         (binfo_lang_slots): New.
16872         (make_node_stat): Add TREE_BINFO.
16873         (make_tree_binfo_stat): New.
16874         (tree_node_structure): Add TREE_BINFO.
16875         * tree.def (TREE_BINFO): New.
16876         * tree.h (REC_OR_UNION_CHECK): Rename to ...
16877         (RECORD_OR_UNION_CHECK): ... here.
16878         (NOT_RECORD_OR_UNION_CHECK): New.
16879         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
16880         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
16881         RECORD_OR_UNION_CHECK.
16882         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
16883         (TYPE_LANG_SLOT_1): New.
16884         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
16885         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
16886         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
16887         (BINFO_ELTS): Remove.
16888         (BINFO_LANG_SLOT): New.
16889         (struct tree_binfo): New.
16890         (binfo_lang_slots): Declare.
16891         (enum tree_node_structure_enum): Add TS_BINFO.
16892         (union tree_node): Add binfo.
16893         (make_tree_binfo_stat): Declare.
16894         (make_tree_binfo): New.
16895         (enum tree_node_kind): Add binfo_kind.
16896
16897         * objc/objc-act.c (start_class, objc_declare_protocols,
16898         start_protocols): Use TYPE_LANG_SLOT_1.
16899         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
16900         to ...
16901         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
16902         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
16903         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
16904         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
16905
16906 2004-07-05  Steven Bosscher  <stevenb@suse.de>
16907
16908         * rtl.h (struct rtx_def): Remove the integrated flag.
16909         Use the return_val flag for MEM_SCALAR_P.
16910         Reshuffle and update flags in CLEAR_RTX_FLAGS.
16911
16912 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
16913
16914         PR target/16357
16915         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
16916         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
16917         move_by_pieces.
16918
16919 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
16920
16921         * var-tracking.c: Fix some comments.
16922         (frame_stack_adjust): New.
16923         (vt_stack_adjustments): Init stack_adjust of entry block to
16924         minus stack adjustment of function prologue.
16925         (adjust_stack_reference): Do not adjust if adjustment == 0.
16926         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
16927         (emit_notes_in_bb): Likewise.
16928         (vt_add_function_parameters): Do not adjust locations of
16929         function arguments.
16930         (vt_initialize): Compute the stack adjustment of function
16931         prologue and offset the initial "location" of frame_base_decl
16932         from the stack pointer after prologue.
16933
16934 2004-07-04  Richard Henderson  <rth@redhat.com>
16935
16936         * function.c (struct assign_parm_data_all): New.
16937         (struct assign_parm_data_one): New.
16938         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
16939         assign_parm_find_data_types, assign_parms_setup_varargs,
16940         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
16941         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
16942         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
16943         assign_parm_setup_block, assign_parm_setup_reg,
16944         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
16945         (assign_parms): ... here.
16946
16947 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
16948
16949         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
16950         now are bitmap_set_t's.
16951         (bitmap_insert_into_set): No point in inserting the value if
16952         it's invariant.
16953         (bitmap_set_contains): New function.
16954         (bitmap_set_replace_value): Add comment on why we do it
16955         this way.
16956         (set_contains): Removed.
16957         (bitmap_set_subtract_from_value_set): New name of
16958         set_subtract now that it's arguments are two different
16959         types of sets.
16960         Update callers.
16961         (bitmap_find_leader): Change algorithm used.
16962         (find_or_generate_expression): Update use of functions for new
16963         bitmap sets.
16964         (create_expression_by_pieces): Ditto.
16965         (insert_aux): Ditto.
16966         (insert): Ditto.
16967         (add_to_sets): Ditto.
16968         (init_pre): Ditto.
16969         (execute_pre): Ditto.
16970         (compute_avail): Ditto.
16971         Also ignore virtual phis.
16972
16973 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
16974
16975         * combine.c (simplify_comparison): Fix comment typo.
16976
16977 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16978
16979         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
16980         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
16981         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
16982         (output_restore): Change parameter from 'insn' to 'pat'.
16983         (output_return): Adjust call to output_restore.
16984         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
16985         Adjust call to output_restore.
16986
16987 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
16988
16989         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
16990         and assert system is bsd.
16991
16992 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
16993
16994         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
16995         (TARGET_SWITCHES): Remove -mdebugc.
16996         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
16997         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
16998         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
16999         (sle_[sd]i_reg): Delete.
17000
17001 2004-07-04  Steven Bosscher  <stevenb@suse.de>
17002
17003         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
17004         Define.
17005         * config/iq2000/iq2000.md: Translate old pipeline description to an
17006         equivalent new one.
17007
17008 2004-07-04  Roger Sayle  <roger@eyesopen.com>
17009
17010         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
17011         Ensure the replacement rhs is valid gimple before performing
17012         the substitution.  Return false if these sanity checks fail.
17013         (fold_stmt): Only set changed to true, if set_rhs returns true.
17014         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
17015         succeeds.
17016
17017 2004-07-04  Richard Henderson  <rth@redhat.com>
17018
17019         PR c/16348
17020         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
17021
17022 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
17023
17024         * configure.ac (ranlib_flags): New variable.
17025         * Makefile.in (RANLIB_FLAGS): New variable.
17026         (libbackend.a): Use it.
17027         * configure: Regenerated.
17028
17029 2004-07-04  Roger Sayle  <roger@eyesopen.com>
17030
17031         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
17032         a "sign mask" instead of using ashr_optab directly.
17033
17034 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
17035
17036         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
17037         * doc/cppopts.texi: Clarify processing of command-line defines.
17038
17039 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
17040
17041         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
17042
17043 2004-07-04  Richard Henderson  <rth@redhat.com>
17044
17045         * rtl.def (ADDRESSOF): Remove.
17046         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
17047         (find_base_term, memrefs_conflict_p): Likewise.
17048         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
17049         (fold_rtx, cse_insn, set_live_p): Likewise.
17050         * dwarf2out.c (mem_loc_descriptor): Likewise.
17051         (add_location_or_const_value_attribute): Likewise.
17052         * emit-rtl.c (copy_insn_1): Likewise.
17053         * explow.c (memory_address): Likewise.
17054         * expmed.c (store_split_bit_field): Likewise.
17055         * expr.c (expand_expr_real_1): Likewise.
17056         * function.c (instantiate_decl
17057         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
17058         * genrecog.c (preds, validate_pattern): Likewise.
17059         * integrate.c (copy_rtx_and_substitute): Likewise.
17060         * recog.c (general_operand, register_operand): Likewise.
17061         (memory_address_p): Likwise.
17062         * reload1.c (eliminate_regs, elimination_effects): Likewise.
17063         * rtl.c (copy_rtx): Likewise.
17064         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
17065         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
17066         * rtlhooks.c (gen_lowpart_general): Likewise.
17067         * stmt.c (expand_asm_operands): Likewise.
17068         * web.c (entry_register, replace_ref, web_main): Likewise.
17069         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
17070         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
17071         * config/arm/arm.c (thumb_rtx_costs): Likewise.
17072         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
17073         * config/frv/frv.c (move_destination_operand, move_source_operand,
17074         condexec_dest_operand, condexec_source_operand,
17075         condexec_memory_operand): Likewise.
17076         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
17077         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
17078         (destination_xfmode_operand): Likewise.
17079         * config/mips/mips.h (PREDICATE_CODES): Likewise.
17080         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
17081         * config/s390/s390.c (general_s_operand): Likewise.
17082         * config/s390/s390.md (mov*): Likewise.
17083         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
17084
17085         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
17086         * expr.c (expand_expr_real_1): Likewise.
17087         * stmt.c (expand_decl): Likewise.
17088         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
17089
17090         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
17091         postponed_insns, put_var_into_stack, put_reg_into_stack,
17092         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
17093         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
17094         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
17095         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
17096         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
17097         purge_bitfield_addressof_replacements, purge_addressof_replacements,
17098         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
17099         struct insns_for_mem_walk_info, insns_for_mem_walk,
17100         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
17101         setjmp_protect_args): Remove.
17102         (push_function_context_to): Don't handle var_refs_queue.
17103         (pop_function_context_from, free_after_compilation): Likewise.
17104         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
17105         (assign_parms, allocate_struct_function): Likewise.
17106         (use_register_for_decl): New.
17107         (expand_function_end): Don't setjmp_protect.
17108         * function.h (struct emit_status): Update commentary.
17109         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
17110         (max_parm_reg, parm_reg_stack_loc): Remove.
17111         * passes.c (DFI_addressof): Remove.
17112         (dump_file_info): Remove addressof.
17113         (rest_of_handle_addressof): Remove.
17114         (rest_of_compilation): Don't call it.
17115         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
17116         * stmt.c (expand_decl): Use use_register_for_decl.
17117         * tree.h: Update decls.
17118         * web.c (mark_addressof): Remove.
17119         * doc/invoke.texi (-dF): Remove.
17120
17121 2004-07-03  Richard Henderson  <rth@redhat.com>
17122
17123         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
17124         instead of gen_mem_addressof.
17125         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
17126         TImode output register.
17127
17128 2004-07-03  Richard Henderson  <rth@redhat.com>
17129
17130         PR tree-optimization/16341
17131         * tree-sra.c (sra_walk_function): Increment to next stmt before
17132         processing the current stmt.
17133         (sra_insert_after): Always use BSI_SAME_STMT.
17134
17135 2004-07-03  Richard Henderson  <rth@redhat.com>
17136
17137         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
17138         fp plus with minus.
17139
17140 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
17141
17142         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
17143         with tree_int_cst_equal.
17144
17145 2004-07-03  Andreas Schwab  <schwab@suse.de>
17146
17147         * config/ia64/ia64.md: Define new attribute "empty".
17148         (prologue_use, nop_x, insn_group_barrier): Set it.
17149
17150         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
17151         skip over "empty" insns.
17152
17153 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17154
17155         * tree-inline.c (initialize_inlined_parameters): Pass proper function
17156         context to gimplify_body.
17157         (walk_tree): Don't walk into types twice.
17158         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
17159
17160         * tree-sra.c (generate_element_init): Remove any useless conversions.
17161
17162         * gimplify.c (gimplify_conversion): Remove stripping useless
17163         conversions from here.
17164         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
17165         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
17166         Unshare before substituting PLACEHOLDER_EXPR.
17167         (gimplify_modify_expr_to_memset): Likewise.
17168         Pass address of TO to memset, not TO itself.
17169         (gimplify_init_constructor): Make copy of OBJECT so we have it each
17170         time we make an expression (to match a PLACEHOLDER_EXPR).
17171
17172         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
17173         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
17174         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
17175         * tree-ssa-dom.c (local_fold): Likewise.
17176
17177         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
17178         * langhooks.h (strct lang_hooks): New field type_max_size.
17179         * function.c (assign_temp): Call it.
17180
17181 2004-07-03  Steven Bosscher  <stevenb@suse.de>
17182
17183         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
17184         * config/sh/sh.md: Convert the SH1 pipeline description to
17185         a DFA model.
17186
17187 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
17188
17189         * c-decl.c (struct c_binding): Remove contour field; add
17190         depth, invisible, nested fields.
17191         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
17192         (B_IN_EXTERNAL_SCOPE): New convenience macros.
17193         (bind): Add invisible and nested arguments. Initialize
17194         new fields of struct c_binding; adjust loop scanning for
17195         insertion point.
17196         (free_binding_and_advance): Clear structure with memset.
17197         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
17198         in file scope, even if it's in external scope too.
17199         (pushdecl): Adjust to match.  Create invisible file-scope
17200         declarations for block-scope forward declarations of static functions.
17201         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
17202         (undeclared_variable, lookup_label, declare_label, define_label)
17203         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
17204         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
17205         (store_parm_decls_oldstyle): Adjust to match.
17206         (diagnose_mismatched_decls): Correct handling of linkage clashes.
17207         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
17208
17209         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
17210         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
17211
17212 2004-07-02  Richard Henderson  <rth@redhat.com>
17213
17214         * c-decl.c (grokdeclarator): Don't frob current_function_decl
17215         around variable_size.
17216         (set_decl_nonlocal): Remove.
17217         (store_parm_decls): Add stmts for pending sizes.
17218         * calls.c (calls_function, calls_function_1): Remove.
17219         (precompute_arguments): Don't call it.
17220         * cfgexpand.c (set_save_expr_context): Remove.
17221         (tree_expand_cfg): Don't call it.
17222         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
17223         (dwarf2out_finish): Likewise.
17224         * expr.c (emit_block_move): Adjust addresses to BLKmode.
17225         (store_constructor): Don't pre-evaluate SAVE_EXPR.
17226         (safe_from_p): Don't queue SAVE_EXPRs.
17227         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
17228         or build plain VAR_DECLs.
17229         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
17230         (fold): Likewise.
17231         (fold_checksum_tree): Don't special-case SAVE_EXPR.
17232         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
17233         (put_var_into_stack): Don't handle SAVE_EXPR.
17234         (gen_mem_addressof): Likewise.
17235         * function.h (struct function): Remove x_save_expr_regs.
17236         (save_expr_regs): Remove.
17237         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
17238         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
17239         * stor-layout.c (variable_size): Don't set it.
17240         (force_type_save_exprs, force_type_save_exprs_1): Remove.
17241         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
17242         all callers.  Don't set SAVE_EXPR_CONTEXT.
17243         * tree-inline.h (remap_save_expr): Update decl.
17244         * tree.c (save_expr): Update build size.
17245         (first_rtl_op): Don't handle SAVE_EXPR.
17246         (unsave_expr_1, contains_placeholder_p): Likewise.
17247         (decl_function_context): Likewise.
17248         * tree.def (SAVE_EXPR): Remove args 1 and 2.
17249         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
17250         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
17251
17252 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
17253
17254         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
17255         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
17256         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
17257         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
17258         some first-person references and patronizing comments.  Based on
17259         printed manual.
17260         * doc/invoke.texi: Don't reference fortran@gnu.org.
17261         * doc/trouble.texi (Warning when a non-void function value is
17262         ignored): Rewrite.  From Russ Allbery and Chris Devers.
17263
17264 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
17265
17266         * tree-ssa-pre.c (bitmap_set_t): New.
17267         (bb_value_sets): avail_out is now a bitmap_set_t.
17268         (bitmap_find_leader): New function.
17269         (bitmap_value_insert_into_set): Ditto.
17270         (bitmap_set_copy): Ditto.
17271         (bitmap_value_replace_in_set): Ditto.
17272         (bitmap_set_contains_value): Ditto.
17273         (bitmap_set_new): Ditto.
17274         (bitmap_set_pool): New pool.
17275         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
17276         (insert_aux): Ditto.
17277         (add_to_sets): Ditto.
17278         (compute_avail): Ditto
17279         (eliminate): Ditto.
17280         (init_pre): Ditto.
17281         (fini_pre): Ditto.
17282         (execute_pre): Ditto.
17283
17284 2004-07-02  Roger Sayle  <roger@eyesopen.com>
17285
17286         * config/rs6000/rs6000.c (struct processor_costs): New structure
17287         used to hold instruction latencies/sizes for processor types.
17288         (rs6000_cost): New global variable pointing to current CPU's costs.
17289         (rs6000_override_options): Initialize rs6000_cost to point to the
17290         appropriate cost table based upon rs6000_cpu and optimize_size.
17291         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
17292         timings inline.
17293
17294 2004-07-02  Richard Henderson  <rth@redhat.com>
17295
17296         * expmed.c (make_tree): Don't use SET_DECL_RTL.
17297
17298 2004-07-02  Steven Bosscher  <stevenb@suse.de>
17299
17300         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
17301
17302 2004-07-01  Richard Henderson  <rth@redhat.com>
17303
17304         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
17305         (alpha_gp_save_rtx): Use assign_stack_local instead of
17306         gen_mem_addressof.
17307
17308 2004-07-01  Richard Henderson  <rth@redhat.com>
17309
17310         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
17311         (alpha_rtx_cost_data): Update to match.
17312         (alpha_rtx_cost_size): New.
17313         (alpha_rtx_costs): Honor optimize_size.
17314
17315 2004-07-01  Richard Henderson  <rth@redhat.com>
17316
17317         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
17318         * cfgexpand.c (tree_expand_cfg): Do it here.
17319         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
17320         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
17321         * config/mips/mips.c (mips_output_mi_thunk): And here.
17322         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
17323         * config/sh/sh.c (sh_output_mi_thunk): And here.
17324         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
17325
17326 2004-07-01  Richard Henderson  <rth@redhat.com>
17327
17328         * tree.def (RTL_EXPR): Remove.
17329         * c-typeck.c (lvalue_p): Don't handle it.
17330         * expr.c (safe_from_p): Likewise.
17331         (expand_expr_real_1): Likewise.
17332         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
17333         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
17334         * gengtype.c (adjust_field_tree_exp): Likewise.
17335         * stmt.c (warn_if_unused_value): Likewise.
17336         * tree-gimple.c (recalculate_side_effects): Likewise.
17337         * tree-pretty-print.c (dump_generic_node): Likewise.
17338         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
17339         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
17340         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
17341
17342         * stmt.c (struct stmt_status): Remove x_last_expr_type,
17343         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
17344         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
17345         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
17346         all the bits that tracked last_expr.
17347         (expand_end_bindings): Don't track last_expr.
17348         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
17349         (clear_last_expr): Remove.
17350         (expand_asm): Don't call it.
17351         (expand_asm_operands, expand_end_cond): Likewise.
17352         (expand_naked_return, expand_null_return_1): Likewise.
17353         * c-typeck.c (c_begin_compound_stmt): Likewise.
17354         * cfgexpand.c (expand_block): Use expand_expr_stmt.
17355         * expr.c (expand_expr_real_1): Likewise.
17356         * tree.h: Update prototypes.
17357
17358         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
17359         (struct emit_status): Remove sequence_rtl_expr.
17360         (struct function): Remove x_rtl_expr_chain.
17361         (seq_rtl_expr, rtl_expr_chain): Remove.
17362         * function.c (struct temp_slot): Remove rtl_expr.
17363         (assign_stack_temp_for_type): Don't set it.
17364         (free_temp_slots, pop_temp_slots): Don't check it.
17365         (free_after_compilation): Don't clear x_rtl_expr_chain.
17366         (fixup_var_refs): Don't search it.
17367         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
17368         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
17369         or seq_rtl_expr.
17370         (push_topmost_sequence): Likewise.
17371         (end_sequence, init_emit): Likewise.
17372         (start_sequence_for_rtl_expr): Remove.
17373         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
17374         * rtl.h (preserve_rtl_expr_result): Remove.
17375
17376 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
17377
17378         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
17379         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
17380         typos.
17381
17382 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
17383
17384         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
17385         (STANDARD_STARTFILE_PREFIX_2): Define.
17386         (standard_startfile_prefix_1): Initialize to
17387         STANDARD_STARTFILE_PREFIX_1.
17388         (standard_startfile_prefix_2): Initialize to
17389         STANDARD_STARTFILE_PREFIX_2.
17390         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
17391         (STANDARD_STARTFILE_PREFIX_1): Define.
17392         (STANDARD_STARTFILE_PREFIX_2): Define.
17393         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
17394         (STANDARD_STARTFILE_PREFIX_2): Document.
17395
17396 2004-07-01  Richard Henderson  <rth@redhat.com>
17397
17398         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
17399         in order to disable scalarization.  Instead set a flag and wait
17400         for a candidate decl.
17401
17402 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
17403
17404         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
17405         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
17406         Use terminology "testsuite" and "enumerated".
17407
17408 2004-07-01  Richard Henderson  <rth@redhat.com>
17409
17410         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
17411         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
17412         (initial_return_save): Likewise.
17413         (flush_queued_reg_saves): Remap register numbers.
17414         (dwarf2out_return_reg): Likewise.
17415
17416 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17417
17418         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
17419
17420         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
17421         access functions for lower bound and element size and only output
17422         if lower bound nonzero or element size not same as that of type.
17423         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
17424
17425 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
17426
17427         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
17428
17429 2004-07-01  Per Bothner  <per@bothner.com>
17430
17431         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
17432
17433 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
17434
17435         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
17436         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
17437         first operand.  Don't optimize if the bitfield is volatile.
17438
17439 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
17440
17441         * c-pretty-print.c (pp_c_postfix_expression): Handle
17442         floating-point comparison operators.
17443         (pp_c_expression): Pass floating-point comparison
17444         operators to pp_c_postfix_expression.
17445
17446 2004-07-01  Roger Sayle  <roger@eyesopen.com>
17447
17448         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
17449         rtx_cost instead of "had_mult" to determine whether the transformed
17450         expression is cheaper than the original.
17451
17452 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
17453
17454         * alias.c (get_alias_set, canon_rtx, get_addr,
17455         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
17456         Use MEM_P.
17457         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
17458         expand_builtin): Likewise.
17459         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
17460         Likewise.
17461         * combine.c (can_combine_p, combinable_i3pat, try_combine,
17462         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
17463         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
17464         record_dead_and_set_regs_1, get_last_value_validate,
17465         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
17466         * cse.c (check_dependence, canon_hash, equiv_constant,
17467         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
17468         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
17469         count_reg_usage): Likewise.
17470         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
17471         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
17472         cselib_record_sets): Likewise.
17473         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
17474         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
17475         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
17476         * df.c (df_uses_record): Likewise.
17477         * dojump (do_jump): Likewise.
17478         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
17479         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
17480         decl_start_label): Likewise.
17481         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
17482         operand_subword, change_address_1, make_safe_from): Likewise.
17483         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
17484         stabilize, force_not_mem): Likewise.
17485         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
17486         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
17487         * expr.c (convert_move, convert_modes, emit_block_move,
17488         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
17489         emit_move_insn_1, expand_assignment, store_expr,
17490         store_constructor_field, store_constructor, store_field,
17491         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
17492         Likewise.
17493         * final.c (cleanup_subreg_operands, alter_subreg,
17494         get_mem_expr_from_op): Likewise.
17495         * flow.c (notice_stack_pointer_modification_1,
17496         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
17497         Likewise.
17498         * function.c (mark_temp_addr_taken, preserve_temp_slots,
17499         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
17500         optimize_bit_field, flush_addressof, purge_addressof_1,
17501         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
17502         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
17503         keep_stack_depressed): Likewise.
17504         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
17505         noce_process_if_block, find_memory): Likewise.
17506         * integrate.c (subst_constants, allocate_initial_values): Likewise.
17507         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
17508         update_equiv_regs): Likewise.
17509         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
17510         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
17511         * optabs.c (expand_abs, emit_unop_insn): Likewise.
17512         * passes.c (rest_of_handle_final): Likewise.
17513         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
17514         move2add_note_store): Likewise.
17515         * ra-build.c (detect_remat_webs): Likewise.
17516         * ra-debug.c (dump_static_insn_cost): Likewise.
17517         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
17518         * recog.c (validate_change, apply_change_group, cancel_changes,
17519         validate_replace_rtx_1, general_operand, register_operand,
17520         nonmemory_operand, push_operand, pop_operand, memory_operand,
17521         indirect_operand, asm_operand_ok, offsettable_memref_p,
17522         offsettable_nonstrict_memref_p, constrain_operands,
17523         store_data_bypass_p): Likewise.
17524         * reg-stack.c (subst_stack_regs_pat): Likewise.
17525         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
17526         copy_cost, reg_scan_mark_refs): Likewise.
17527         * regmove.c (optimize_reg_copy_3, stack_memref_p,
17528         combine_stack_adjustments_for_block): Likewise.
17529         * regrename.c (copyprop_hardreg_forward_1): Likewise.
17530         * reload.c (can_reload_into, push_reload, decompose, immune_p,
17531         find_reloads, find_reloads_address, find_reloads_address_1,
17532         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
17533         find_equiv_reg): Likewise.
17534         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
17535         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
17536         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
17537         delete_address_reloads): Likewise.
17538         * resource.c (mark_referenced_resources): Likewise.
17539         * rtlanal.c (get_jump_table_offset, count_occurrences,
17540         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
17541         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
17542         num_sign_bit_copies1): Likewise.
17543         * rtlhooks.c (gen_lowpart_general): Likewise.
17544         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
17545         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
17546         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
17547         sdbout_global_decl): Likewise.
17548         * simplify-rtx.c (simplify_subreg): Likewise.
17549         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
17550         expand_anon_union_decl, expand_end_case_type): Likewise.
17551         * unroll.c (calculate_giv_inc): Likewise.
17552         * var-tracking.c (stack_adjust_offset_pre_post,
17553         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
17554         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
17555         vt_add_function_parameters): Likewise.
17556         * varasm.c (make_var_volatile, notice_global_symbol,
17557         assemble_external, decode_addr_const, mark_weak,
17558         default_encode_section_info): Likewise.
17559
17560 2004-07-01  Steven Bosscher  <stevenb@suse.de>
17561
17562         * stmt.c (check_seenlabel): Remove.
17563         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
17564
17565 2004-07-01  Richard Henderson  <rth@redhat.com>
17566
17567         * function.h (struct function): Remove x_function_call_count.
17568         (function_call_count): Remove.
17569         * calls.c (expand_call): Don't set it.
17570         * integrate.c (copy_rtx_and_substitute): Likewise.
17571
17572         * function.h (struct function): Remove x_cleanup_label.
17573         (cleanup_label): Remove.
17574         * stmt.c (expand_value_return): Don't use it.
17575         * function.c (free_after_compilation): Don't set it.
17576         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
17577         * cfgexpand.c (tree_expand_cfg): Update call.
17578         * tree.h (expand_function_start): Update decl.
17579
17580 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
17581
17582         PR c/1027
17583         * c-lang.c (c_initialize_diagnostics): Move from here ...
17584         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
17585         (c_tree_printer): Use pretty-printer to format %T.
17586         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
17587         before '*' if not C++.
17588         (pp_c_direct_abstract_declarator): Don't try to print array upper
17589         bound for flexible array members.
17590         * c-tree.h: Include "diagnostic.h".
17591         (c_initialize_diagnostics): Declare.
17592         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
17593         * c-format.c (format_type_warning): New function.  Improve
17594         diagnostics for incorrect format argument types.
17595         (check_format_types): Use it.  Add two parameters.  Use the
17596         TYPE_MAIN_VARIANT of wanted_type.
17597         (check_format_info_main): Pass new parameters to
17598         check_format_types.
17599         (struct format_wanted_type): Update comment.
17600
17601 2004-07-01  Nick Clifton  <nickc@redhat.com>
17602
17603         * target.h (struct gcc_target): Add new field to struct cxx:
17604         import_export_class.
17605         * target-def.h (TARGET_CXX): Initialise the new field.
17606         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
17607         the new field.
17608         * doc/tm.texi: Document the new target hook.
17609
17610 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
17611
17612         * builtins.c (fold_builtin_classify): Fix typo.
17613
17614 2004-07-01  Richard Henderson  <rth@redhat.com>
17615
17616         * function.c (identify_blocks, identify_blocks_1): Remove.
17617         * function.h (identify_blocks): Remove.
17618         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
17619
17620 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
17621
17622         * builtins.c (fold_builtin_classify): New.
17623         (fold_builtin_unordered_cmp): Fix commentary.
17624         (fold_builtin): Use it.
17625         * builtins.def: Define builtins for isnan,
17626         isnanf, isnanl, finite, finitef, finitel,
17627         isinf, isinff, isinfl.
17628
17629 2004-07-01  Richard Henderson  <rth@redhat.com>
17630
17631         * function.h (struct function): Remove dont_emit_block_notes.
17632         * gimple-low.c (lower_function_body): Don't set it.
17633         * cfgexpand.c (expand_block): Don't check it.
17634         * cfglayout.c (insn_locators_initialize): Likewise.
17635         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
17636         * passes.c (rest_of_compilation): Likewise.
17637         * stmt.c (expand_start_bindings_and_block): Likewise.
17638         (expand_end_bindings): Likewise.
17639
17640 2004-07-01  Richard Henderson  <rth@redhat.com>
17641
17642         * cgraph.h (cgraph_build_static_cdtor): Declare.
17643         * cgraphunit.c (cgraph_build_static_cdtor): New.
17644         * c-objc-common.c (build_cdtor): Use it.
17645         * coverage.c (create_coverage): Likewise.
17646         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
17647         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
17648
17649 See ChangeLog.11 for earlier changes.