OSDN Git Service

* c-lex.c (interpret_float): Give a pedwarn rather than a warning
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2
3         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
4         for an out-of-range floating point constant.
5         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
6         warning if the target format does not support infinities.
7
8 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
9
10         * emit-rtl.c (last_label_num, base_label_num): Remove.
11         (max_label_num): Always return label_num.
12         (set_new_last_label_num, restore_emit_status): Remove.
13         (init_emit): Don't initialize last_label_num.
14         * function.c (pop_function_context_from): Don't call
15         restore_emit_status.
16         * function.h: Remove the prototype for restore_emit_status.
17         * rtl.h: Remove the prototype for set_new_last_label_num.
18
19 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
20
21         * stmt.c (expand_decl_init): Remove.
22         * tree.h: Remove the corresponding prototype.
23
24 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
25
26         * integrate.c (try_constants, subst_constants, mark_stores):
27         Remove.
28         * integrate.h: Remove the prototype for try_constants.
29
30 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
31
32         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
33         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
34         comments about its relevance to errors.
35         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
36
37 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
38
39         PR c/16999
40         * c-ppoutput.c (cb_ident): Don't quote string as it is already
41         quoted.
42
43 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
44
45         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
46         reference_node_pool.
47
48 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
49
50         * tree-cfg.c: Fix a comment typo.
51
52 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
53
54         * config/s390/s390.c (s390_register_info): Don't save fprs for 
55         -msoft-float.
56         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
57
58 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
59
60         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
61         (TARGET_DEFAULT): Use symbolic values.
62         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
63         (TARGET_DEFAULT): Use symbolic values.
64         * config/s390/s390.c (s390_backchain_string): Initialize to
65         TARGET_DEFAULT_BACKCHAIN.
66
67 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
68
69         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
70         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
71         code.
72         (expand_builtin_strcat): Accept a type parameter.
73         (fold_builtin_mempcpy): Accept a type and endp parameter.
74
75         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
76         Accept an `exp' instead of an `arglist'.
77
78 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
79
80         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
81         reverting my 2004-09-07 patch to use build_int_cst.
82
83 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
84
85         PR target/17245
86         * config/sparc/sparc.c (input_operand): Remove redundant code
87         for handling LO_SUM.
88         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
89         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
90         Otherwise only accept it for TFmode if quad move insns are available.
91
92 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
93
94         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
95         common cases will be caught earlier than others.
96
97 2004-10-08  Michael Matz  <matz@suse.de>
98
99         * loop-doloop.c (doloop_optimize): Extend count.
100
101 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
102
103         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
104         (prefetch): Convert to expander.
105
106 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
107
108         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
109         first argument of CALL.
110         (tls_local_dynamic): Likewise.
111
112 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
113
114         * c-typeck.c (enum impl_conv): New.
115         (convert_for_assignment): Use it.  Take tree for function called
116         instead of its name.  Handle ObjC selectors for diagnostics at
117         start of function.  Select diagnostic text within the function
118         using full sentences for diagnsotics.  Use %qE to name functions
119         in diagnostics.
120         (convert_arguments, build_modify_expr,
121         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
122         callers to convert_for_assignment.
123         (warn_for_assignment): Remove.
124
125 2004-10-08  Nick Clifton  <nickc@redhat.com>
126
127         * config/sh/symbian.c (symbian_possibly_export_base_class):
128         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
129         TYPE_CONTAINS_VPTR_P.
130
131 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
132
133         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
134         fixed registers form all_used_regs. Update call_really_used_regs.
135         (CALL_REALLY_USED_REGISTERS): Define.
136         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
137         with call_really_used_regs.
138
139 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
140
141         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
142         for -profile as well as -p and -pg.
143
144 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
145
146         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
147
148 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
149
150         * tree-cfg.c (tree_block_forwards_to): Remove.
151         * tree-flow.h: Remove the corresponding prototype.
152
153 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
154
155         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
156         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
157
158 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
159
160         Radar 3813796
161         * config/rs6000/rs6000.c (rs6000_generate_compare): When
162         flag_trapping_math is in effect, don't generate subtract
163         instructions.
164
165 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
166
167         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
168         * config/s390/s390.c (s390_narrow_logical_operator): New function.
169         (s390_extra_constraint_str): Add 'A' constraints.
170         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
171         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
172         (CONSTRAINT_LEN): Likewise.
173         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
174         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
175         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
176         ("*iordi3"): Add OI alternative and splitter.
177         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
178         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
179         ("*xordi3"): Add XI alternative and splitter.
180         ("*xorsi3", "*xorhi3"): Likewise.
181
182 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
183
184         * config/mips/mips.c (mips_function_rodata_section): New function.
185         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
186
187 2004-10-07  Devang Patel  <dpatel@apple.com>
188
189         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
190         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
191         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
192         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
193         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
194         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI, 
195         UNSPEC_VCONDU_V16QI): New constant defines.
196         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
197         vconduv16qi): New patterns.
198         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
199         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
200         (get_vec_cmp_insn): Same.
201         (get_vsel_insn): Same.
202         (rs6000_emit_vector_compare): Same.
203         (rs6000_emit_vector_select): Same.
204         (INSN_NOT_AVAILABLE): New.
205         
206 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
207
208         PR tree-optimization/17749
209         * tree-tailcall.c (find_tail_calls): Check that parameter is
210         a gimple_reg.
211
212 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
213
214         * config/ia64/ia64.c: Fix a comment typo.
215
216 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
217
218         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
219
220 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
221
222         PR c++/17115
223         * tree-inline.c (expand_call_inline): Do not warn for functions
224         marked with attribute noinline.
225
226 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
227
228         PR target/17862
229         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
230         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
231
232         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
233         of 0 as 4th argument to pass_by_reference.
234         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
235
236 2004-10-06  Eric Christopher  <echristo@redhat.com>
237
238         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
239         attribute.
240
241 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
242
243         PR target/17770
244         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
245
246 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
247
248         PR rtl-optimization/17791
249         * loop-doloop.c (doloop_modify): Take number of iterations as
250         argument.
251         (doloop_optimize): Extend or shorten the number of iterations
252         when changing mode of counter register.
253         * loop-iv.c (lowpart_subreg): Export.
254         * rtl.h (lowpart_subreg): Declare.
255
256 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
257
258         PR tree-optimization/17806
259         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
260         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
261         flags moved to split_edge.
262
263 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
264
265         PR middle-end/17835
266         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
267         before tentatively building the conditional move sequence.
268
269 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
270
271         PR target/16815
272         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
273         check.
274         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
275         function_arg_padding.
276
277 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
278
279         PR bootstrap/17857
280         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
281
282 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
283
284         * hooks.c (hook_int_void_1, hook_void_int): Remove.
285         * hooks.h: Remove the corresponding prototypes.
286
287 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
288
289         PR middle-end/17849
290         * tree-nested.c (walk_stmt_info): Add changed field.
291         (convert_nonlocal_reference): Set changed to when we
292         change a decl to unnested decl.
293         <case ADDR_EXPR>: Instead of checking if the immediate part
294         of the ADDR_EXPR changed, check the field changed.
295         Use recompute_tree_invarant_for_addr_expr instead of unsetting
296         TREE_INVARIANT.
297         (convert_local_reference):  Set changed to when we
298         change a decl to unnested decl.
299         <case ADDR_EXPR>: Instead of checking if the immediate part
300         of the ADDR_EXPR changed, check the field changed.
301         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
302
303 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
304
305         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
306         * dwarf2out.c (dwarf2out_init): Remove references to
307         DWARF2_GENERATE_TEXT_SECTION_LABEL.
308         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
309         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
310
311 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
312
313         * c-typeck.c (convert_arguments): Take expression for called
314         function rather than its name.  Handle ObjC selectors directly
315         rather than relying on warn_for_assignment to do so.  Call warning
316         directly rather than warn_for_assignment.  Use %qE in diagnostics.
317         Say "argument" rather than "arg" in diagnostics.
318         (build_function_call): Update call to convert_arguments.
319
320 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
321
322         PR debug/17787
323         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
324         ENUMs specially instead of just saying we do.
325
326 2004-10-06  Eric Christopher  <echristo@redhat.com>
327
328         * dwarf2.h: Sync with include/elf/dwarf2.h
329
330 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
331
332         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
333         and TREE_VEC nodes.
334
335 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
336
337         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
338         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
339
340 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
341
342         * lambda-code.c (compute_nest_using_fourier_motzkin): New
343         function.
344         (lambda_compute_auxillary_space): Split from here.
345
346 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
347
348         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
349         * tree-flow.h: Add prototype.
350         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
351         expr_invariant_in_loop.
352
353 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
354
355         * tree-cfg.c (thread_jumps): Remove a duplicate check for
356         EXIT_BLOCK_PTR.
357
358 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
359
360         * config/s390/s390-protos.h (s_imm_operand): Remove.
361         (s390_pool_operand): Add prototype.
362         * config/s390/s390.c (general_s_operand): Remove.
363         (s_imm_operand): Remove.
364         (s_operand): Merge contents of general_s_operand.
365         (s390_pool_operand): New function.
366         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
367         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
368         ("*cmpdi_ccu"): Merge Q->Q alternative.
369         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
370         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
371         ("*cli"): Remove.
372         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
373         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
374         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
375
376 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
377
378         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
379         call ia64_function_arg_boundary.
380         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
381         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
382         (ia64_function_arg_advance): Do not put 128 bit floats into
383         FP registers.
384
385 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
386
387         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
388         Accept an expression instead of an arglist.
389         (expand_builtin_stpcpy): Accept an expression instead of an
390         arglist.
391
392 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
393
394         PR target/16007
395         * doc/install.texi (*-*-solaris2*): Mention potential problem
396         with Sun assembler + GNU linker and C++ programs.
397         Document status of binutils 2.15 release.
398
399 2004-10-06  Jan Hubicka  <jh@suse.cz>
400
401         * cse.c (cse_main): Kill push/pop context.
402
403 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
404
405         * pretty-print.c: Include tree.h.
406         (pp_base_prepare_to_format): New function, logic from
407         text_specifies_location.
408         (pp_base_format_text): Use gcc_assert.
409         * pretty-print.h (pp_prepare_to_format): New macro.
410         (pp_base_prepare_to_format): Prototype.
411         * diagnostic.c (text_specifies_location): Delete.
412         (bug_report_request): Delete.
413         (diagnostic_set_info): Don't call text_specifies_location.
414         (diagnostic_action_after_output): Put text from
415         bug_report_request inline here.  Use gcc_unreachable.
416         (diagnostic_report_current_function): Fix comment.
417         (diagnostic_report_diagnostic): Clarify logic for error recursion.
418         Call pp_prepare_to_format before diagnostic_starter.
419         (trim_filename): Use IS_DIR_SEPARATOR.
420         (fatal_error, internal_error): Use gcc_unreachable.
421         (error_recursion): Call diagnostic_action_after_output to
422         issue the bug_report_request message and exit.
423         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
424
425         * c-parse.in: Add list of diagnostic messages to insulate
426         translation template from version of yacc/bison used to
427         compile the grammar.
428
429 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
430
431         PR 16406
432         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
433
434 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
435
436         * basic-block.h: Remove the prototype for
437         flow_preorder_transversal_compute.
438         * cfganal.c (dfst_node): Remove.
439         (flow_preorder_transversal_compute): Likewise.
440         * rtl.h: Remove the prototype for get_jump_table_offset.
441         * rtlanal.c (get_jump_table_offset): Remove.
442
443 2004-10-05  Richard Henderson  <rth@redhat.com>
444
445         PR 17756
446         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
447
448 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
449
450         PR bootstrap/17817
451         * Makefile.in: Stage the build directory too.
452
453 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
454
455         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
456
457         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
458         (frv_emit_move): Same.
459
460         * config/frv/frv.c (frv_emit_move): New.
461         (frv_legitimize_address): New.
462
463         * config/frv/frv.md ("movsi"): Call frv_emit_move.
464         ("movqi"): Same.
465         ("movhi"): Same.
466         ("movdi"): Same.
467         ("movsf"): Same.
468         ("movdf"): Same.
469
470 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
471
472         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
473         system headers.
474
475 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
476
477         * c-decl.c (pushdecl): When an extern declaration at block scope
478         refers to a visible entity with internal linkage, use the old DECL
479         rather than the new one.
480
481 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
482
483         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
484         comments.
485
486 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
487
488         * tree-cfg.c (thread_jumps): Remove a duplicate check for
489         an infinite loop.
490
491 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
492
493         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
494         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
495         blocks.
496
497 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
498
499         * tree-cfg.c (cleanup_tree_cfg): Don't call
500         delete_unreachable_blosk() after thread_jumps().
501         (thread_jumps): Always remove basic blocks as they become
502         unreachable.
503
504 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
505
506         * tree-cfg.c (cleanup_tree_cfg): Remove variable
507         something_changed.  Simplify the while loop.
508
509 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
510
511         * builtins.c (expand_builtin_memmove): Delete duplicate code
512         and accept a tree type for the result.
513         (expand_builtin_bcopy): Accept a tree type for the result.
514         (fold_builtin_memmove): Accept an arglist and tree type for
515         the result.
516
517 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
518
519         * config/s390/s390.c (s390_dump_pool): Remove return value.
520         Use gen_pool_align, gen_pool_section_start/end instead of
521         gen_pool_start/end_31/64.
522         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
523         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
524         ("pool_start_31", "pool_end_31"): Remove.
525         ("pool_start_64", "pool_end_64"): Likewise.
526         ("pool_align", "pool_section_start", "pool_section_end": New insns.
527
528         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
529         (TARGET_CANNOT_COPY_INSN_P): Define.
530         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
531         (struct constant_pool): New member 'execute'.
532         (s390_add_execute, s390_find_execute): New functions.
533         (s390_execute_label, s390_execute_target): Likewise.
534         (s390_dump_pool): Output in-pool execute target templates.
535         (s390_dump_execute): New function.
536         (s390_alloc_pool, s390_free_pool): Handle execute templates.
537         (s390_mainpool_start, s390_mainpool_finish): Likewise.
538         (s390_chunkify_start, s390_chunkify_finish): Likewise.
539         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
540         ("*execute"): New insn pattern.
541         ("movmem_short", "*movmem_short"): Use splitters to generate
542         explicit execute pattern, remove embedded execute.
543         ("clrmem_short", "*clrmem_short"): Likewise.
544         ("cmpmem_short", "*cmpmem_short"): Likewise.
545
546 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
547
548         * tree-ssa.c (verify_ssa): Verify phi arguments only
549         contain renamed names.
550
551 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
552
553         * config/rs6000/linux.h: Formatting, whitespace.
554         * config/rs6000/linux64.h: Likewise.
555         * config/rs6000/rs6000-protos.h: Likewise.
556         * config/rs6000/rs6000.c: Likewise.
557         (easy_vector_splat_const): Add fall thru comments.
558         (output_vec_const_move): Likewise.
559
560 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
561
562         * Makefile.in: Update -Wno-error exceptions for move to build dir.
563
564 2004-10-05  Chao-Ying Fu  <fu@mips.com>
565             Richard Sandiford  <rsandifo@redhat.com>
566
567         * doc/invoke.texi (-mpaired-single): Link to the new description of the
568         built-in functions.  Document dependencies.
569         (-mips3d): Add link here too.
570         * doc/extend.texi (MIPS Paired-Single Support): New section.
571
572 2004-10-04  Chao-ying Fu  <fu@mips.com>
573
574         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
575
576 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
577
578         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
579         Initialize OPT_STATS to 0.
580
581 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
582
583         * tree-data-ref.c: Fix comment typos.
584
585 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
586
587         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
588         the predicate cannot be computed, don't initialize the result to
589         false.
590
591 2004-10-01  Eric Christopher  <echristo@redhat.com>
592
593         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
594         locally defined enum.
595         * dwarf2out.c (add_calling_convention_attribute): Don't
596         emit DW_CC_normal.
597
598 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
599
600         PR c/17178, PR c/17820
601         * c-decl.c (pop_scope): Do not warn about unused static
602         variables as they warned in the middle-end.
603
604 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
605
606         * builtins.c (expand_builtin_memcpy): Delete duplicate code
607         and make the first parameter the expression not the arglist.
608
609 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
610
611         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
612         as valid modes to expand address expressions.
613
614 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
615
616         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
617         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
618         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
619         code formatting conventions.
620
621 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
622
623         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
624
625 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
626
627         PR tree-optimization/16632
628         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
629         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
630         where | is used instead of &.
631
632 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
633
634         * ginclude/stddef.h: Fix a comment typo.
635
636 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
637
638         PR target/17443
639         * config.gcc (i?86-*-solaris2*): Restore correct logic
640         for --enable-threads option.
641         (sparc64-*-solaris2*): Likewise.
642         (sparc-*-solaris2*): Likewise.
643
644 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
645
646         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
647         (OS_MISSING_POWERPC64): Move, and comment.
648         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
649         (OS_MISSING_POWERPC64): Move, and comment.
650
651 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
652
653         * arm.c (output_call_mem): Add missing \t.
654
655 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
656
657         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
658         expand_builtin_strncmp): Delete duplicate code.
659
660 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
661
662         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
663         take check-base and -limit arguments.
664         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
665         check ranges for ARRAY_REF and COMPONENT_REF.
666         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
667         instrumentation.
668
669 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
670
671         * c-objc-common.c (c_tree_printer): Correct description of %E.
672         Don't fall through after printing an expression.
673
674 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
675
676         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
677
678 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
679
680         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
681         delete_unrechable_blocks() only when necessary.
682
683 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
684
685         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
686         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
687         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
688         __gthread_recursive_mutex_unlock): New functions.
689
690 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
691
692         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
693         * config/s390/tpf-eh.c: Remove file.
694         * config/s390/tpf-unwind.h: New file.
695         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
696         (MD_UNWIND_SUPPORT): Define.
697
698 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
699
700         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
701
702 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
703
704         * config/s390/s390-protos.h (s390_comparison): Add prototype.
705         * config/s390/s390.c (s390_comparison): New function.
706         (s390_branch_condition_mask): Return -1 for invalid comparisons.
707         (s390_branch_condition_mnemonic): Assert valid comparison.
708         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
709         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
710         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
711         s390_comparison instead of comparison_operator.
712
713         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
714         ("cmpmemdi"): Remove.
715         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
716         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
717         ("cmpint_si"): Rename to ...
718         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
719         ("cmpint_di", "*cmpint_di"): Likewise.
720         * config/s390/s390.c (s390_canonicalize_comparison): Remove
721         redundant UNSPEC_CMPINT conversions.
722         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
723
724 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
725
726         * collect2.c (COLLECT_PARSE_FLAG): Remove.
727         (main): Remove a reference to COLLECT_PARSE_FLAG
728         * system.h: Poison COLLECT_PARSE_FLAG.
729         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
730
731 2004-10-01  Paul Brook  <paul@codesourcery.com>
732
733         * config/arm/crti.asm: Give _init and _fini function type.
734
735 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
736
737         * common.opt (ftree-loop-ivcanon): Enable by default.
738         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
739         Enable complete loop unrolling.
740         (canonicalize_induction_variables, tree_unroll_loops_completely):
741         Reset scev info.
742
743 2004-10-01  Paul Brook  <paul@codesourcery.com>
744
745         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
746         not register number.
747         (thumb_find_work_register): Search full register range.
748
749 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
750
751         PR tree-opt/17343
752         * tree-cfg.c (group_case_labels): Get the label and not
753         the case expr for the default case.
754         When the label we looking at is the default, decrement the
755         new_size.
756
757 2004-10-01  Jan Hubicka  <jh@suse.cz>
758
759         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
760         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
761         * toplev.h (tree_rest_of_compilation): Update prototype.
762         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
763
764 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
765
766         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
767         cleanup_control_flow() out of the while loop.
768
769 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
770
771         * tree-vectorizer.c (vectorizable_operation): Fail unless
772         the mode for the vector type is indeed a vector mode.
773
774 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
775
776         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
777         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
778         of convert.
779         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
780         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
781         follow_ssa_edge_in_rhs): Ditto.
782         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
783         (dump_iv): Dump base_object.
784         (dump_use, dump_cand): Use dump_iv.
785         (determine_base_object): New function.
786         (alloc_iv): Initialize base_object field.
787         (record_use): Clear the ssa_name field of iv.
788         (get_computation_cost_at): Do not use difference of addresses of
789         two different objects.
790         (may_eliminate_iv): Do not require the loop to have just single exit.
791         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
792         (nonzero_p): New function.
793         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
794         tree_simplify_using_condition, simplify_using_initial_conditions,
795         loop_niter_by_eval, find_loop_niter_by_eval,
796         estimate_numbers_of_iterations_loop, compare_trees,
797         upper_bound_in_type, lower_bound_in_type,
798         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
799         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
800         instead of integer_(non)zerop.
801
802 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
803
804         Revert
805         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
806
807         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
808         and TI_VA_LIST_FPR_COUNTER_FIELD.
809         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
810         * tree-pass.h (pass_stdarg): Add.
811         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
812         * tree-stdarg.c: New file.
813         * Makefile.in (OBJS-common): Add tree-stdarg.o.
814         (tree-stdarg.o): Add dependencies.
815         * function.h (struct function): Add va_list_gpr_size and
816         va_list_fpr_size fields.
817         * function.c (allocate_struct_function): Initialize them.
818
819         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
820         va_list_{g,f}pr_counter_field.
821         (ix86_setup_incoming_varargs): Don't do anything if reg_save
822         area will not be used.  Only save registers that tree-stdarg.c
823         detected they need saving.
824         (ix86_va_start): Don't set up fields that won't be used.
825
826         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
827         va_list_{g,f}pr_counter_field.
828         (setup_incoming_varargs): Don't do anything if reg_save
829         area will not be used.  Only save registers that tree-stdarg.c
830         detected they need saving.
831         (rs6000_va_start): Don't set up fields that won't be used.
832
833 2004-09-30  Eric Christopher  <echristo@redhat.com>
834
835         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
836         sh abi.
837         * dwarf2out.c (add_calling_convention_attribute): New function.
838         (gen_subroutine_type_die): Use.
839         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
840         * target.h (gcc_target): Add dwarf_calling_convention.
841         * hooks.c (hook_int_tree_0): New function.
842         * hooks.h: Prototype.
843         * config/sh/sh.c: Include dwarf2.h.
844         (sh_dwarf_calling_convention): New function.
845         (TARGET_DWARF_CALLING_CONVENTION): Use.
846         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
847
848 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
849
850         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
851         expand_builtin_strrchr, expand_builtin_strpbrk,
852         expand_builtin_strncat, expand_builtin_strspn,
853         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
854         code.
855
856 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
857
858         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
859         prototype.
860         (s390_logical_operator_ok_p): Likewise.
861         * config/s390/s390.c (s390_expand_logical_operator): New function.
862         (s390_logical_operator_ok_p): Likewise.
863         * config/s390/s390.md ("anddi3"): New expander.
864         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
865         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
866         ("andsi3"): Use s390_expand_logical_operator.
867         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
868         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
869         ("andhi3"): New expander.
870         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
871         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
872         ("andqi3"): New expander.
873         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
874         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
875         ("iordi3"): New expander.
876         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
877         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
878         ("iorsi3"): Use s390_expand_logical_operator.
879         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
880         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
881         ("iorhi3"): New expiorer.
882         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
883         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
884         ("iorqi3"): New expiorer.
885         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
886         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
887         ("xordi3"): New expander.
888         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
889         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
890         ("xorsi3"): New expander.
891         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
892         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
893         ("xorhi3"): New expander.
894         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
895         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
896         ("xorqi3"): New expander.
897         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
898         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
899
900 2004-09-30  Roger Sayle  <roger@eyesopen.com>
901
902         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
903         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
904         machine mode as the result.
905
906 2004-09-30  Ben Elliston  <bje@au.ibm.com>
907
908         PR bootstrap/17761
909         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
910         FOR_EACH_EDGE macros.
911
912 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
913
914         * c-tree.h (readonly_error): Remove.
915         * c-typeck (enum lvalue_use): New.
916         (lvalue_or_else, readonly_error): Use it.  All callers changed.
917         (readonly_error): Make static.
918
919 2004-09-30  Jan Hubicka  <jh@suse.cz>
920
921         PR debug/13974
922         * cfgrtl.c (try_redirect_by_replacing_jump,
923         force_nonfallthru_and_redirect, commit_one_edge_insertion,
924         cfg_layout_merge_blocks):  Do not attach any line number information
925         to newly inserted instructions.
926         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
927         emit_insn_*_noloc.
928         (emit_*insn_before, emit_insn*_after): New.
929         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
930         existing locators.
931         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
932         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
933
934 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
935
936         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
937         (s390_return_address_offset): Remove.
938         (s390_can_eliminate): Add prototype.
939         (s390_initial_elimination_offset): Add prototype.
940         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
941         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
942         * config/s390/s390.c (s390_arg_frame_offset): Remove.
943         (s390_return_address_offset): Remove.
944         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
945         (struct machine_function): New member split_branches_pending_p.
946         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
947         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
948         (s390_optimize_prologue): Remove base_used argument.  Call
949         s390_update_frame_layout instead of s390_register_info.  Handle
950         prologue/epilogue insns that touch only RETURN_REGNUM.
951         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
952         (s390_register_info): Remove base_used and return_addr_used
953         arguments, compute special register usage inline.  Return live
954         register data to caller.
955         (s390_frame_info): Remove arguments, do not call s390_register_info.
956         (s390_init_frame_layout): New function.
957         (s390_update_frame_layout): Likewise.
958         (s390_emit_prologue): Call s390_update_frame_layout; some code
959         move to there.  Do not emit pool placeholder insn if unnecessary.
960
961 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
962
963         * config/s390/s390.c (legitimate_reload_constant_p): Remove
964         floating point constant workaround.
965         (s390_secondary_input_reload_class): Handle PLUS reloads
966         with too-large constant.
967         (s390_expand_plus_operand): Likewise.
968         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
969         ("movsi"): Likewise.  Also, remove workaround for non-general
970         operands.
971         ("movdf"): Do not call force_const_mem.
972         ("movsf"): Likewise.  Merge expander with *movsf insn.
973         ("*movsf"): Remove, merge with movsf expander.
974
975 2004-09-30  Paul Brook  <paul@codesourcery.com>
976
977         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
978         (ENDFILE_SPEC): Define.
979         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
980
981 2004-09-30  Richard Henderson  <rth@redhat.com>
982
983         * config/alpha/qrnnd.asm: Mark for noexecstack.
984
985 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
986
987         * protoize.c, tree-cfg.c: Fix comment typos.
988
989 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
990
991         PR c/17730
992         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
993
994 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
995
996         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
997         expressions...
998         (add_pointed_to_expr): ... here.
999         Call add_pointed_to_expr for variables with DECL_INITIAL set.
1000         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
1001         pointer variable, if set.
1002
1003 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
1004
1005         * config/sh/sh.c: Follow spelling conventions.
1006
1007 2004-09-29  Richard Henderson  <rth@redhat.com>
1008
1009         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
1010         * doc/tm.texi (DWARF_ZERO_REG): New.
1011
1012         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
1013         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
1014         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
1015
1016 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
1017
1018         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
1019         with a PLUS as source operand.
1020         (expand_movstr): Likewise.
1021         (expand_builtin_stpcpy): Likewise.
1022
1023 2004-09-29  Richard Henderson  <rth@redhat.com>
1024
1025         PR 17739
1026         * tree-gimple.c (is_gimple_reg): Reject hard registers.
1027         (is_gimple_asm_val): New.
1028         * tree-gimple.h (is_gimple_asm_val): Declare.
1029         * gimplify.c (gimplify_asm_expr): Use it.
1030         * tree-pretty-print.c (print_declaration): Dump hard regs.
1031         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
1032         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1033         * tree-ssa-pre.c (is_undefined_value): Likewise.
1034         * tree-ssa-copy.c (may_propagate_copy): Likewise.
1035         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
1036         * tree-ssa.c (warn_uninit): Likewise.
1037         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
1038
1039 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
1040
1041         * c-decl.c (merge_decls): Use comptype when comparing
1042         types to decide on DECL_SIZE save of olddecl.
1043
1044 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
1045
1046         * tree.h (INDIRECT_REF_P): New macro.
1047         * alias.c (get_alias_set): Use it
1048         (nonoverlapping_memrefs_p): Ditto.
1049         * emit-rtl.c (mem_expr_equal_p): Ditto.
1050         (set_mem_attributes_minus_bitpos): Ditto.
1051         (is_gimple_addressable): Ditto.
1052         (get_base_address): Ditto.
1053         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
1054         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
1055         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
1056         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
1057         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
1058         (add_address_candidates): Ditto.
1059         (rewrite_address_base): Ditto.
1060
1061 2004-09-30  Ben Elliston  <bje@au.ibm.com>
1062
1063         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
1064         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
1065         (rewrite_ssa_into_ssa): Likewise.
1066         * tree-phinodes.c (create_phi_node): Access the number of
1067         predecessor edges using EDGE_COUNT() and not num_preds.
1068
1069 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1070
1071         PR c/7425
1072         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
1073
1074 2004-09-29  Eric Christopher  <echristo@redhat.com>
1075
1076         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
1077
1078 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
1079
1080         * config/cris/cris.md (moverside, movemside): With MEM, make sure
1081         the address is (plus reg mem).
1082
1083 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
1084
1085         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
1086
1087 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
1088
1089         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
1090         cascaded if ... else if with a switch.
1091
1092 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1093
1094         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
1095
1096 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1097
1098         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
1099         and TI_VA_LIST_FPR_COUNTER_FIELD.
1100         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
1101         * tree-pass.h (pass_stdarg): Add.
1102         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
1103         * tree-stdarg.c: New file.
1104         * Makefile.in (OBJS-common): Add tree-stdarg.o.
1105         (tree-stdarg.o): Add dependencies.
1106         * function.h (struct function): Add va_list_gpr_size and
1107         va_list_fpr_size fields.
1108         * function.c (allocate_struct_function): Initialize them.
1109
1110         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
1111         va_list_{g,f}pr_counter_field.
1112         (ix86_setup_incoming_varargs): Don't do anything if reg_save
1113         area will not be used.  Only save registers that tree-stdarg.c
1114         detected they need saving.
1115         (ix86_va_start): Don't set up fields that won't be used.
1116
1117         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
1118         va_list_{g,f}pr_counter_field.
1119         (setup_incoming_varargs): Don't do anything if reg_save
1120         area will not be used.  Only save registers that tree-stdarg.c
1121         detected they need saving.
1122         (rs6000_va_start): Don't set up fields that won't be used.
1123
1124 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1125
1126         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
1127         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
1128         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
1129         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
1130         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
1131         ATTR_NONNULL_1_4): New.
1132
1133 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1134
1135         PR tree-optimization/17697
1136         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
1137         cfg if needed.
1138
1139 2004-09-28  Per Bothner  <per@bothner.com>
1140
1141         * profile.c (branch_prob): Pass correct value to output_location,
1142         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
1143
1144 2004-09-28  Richard Henderson  <rth@redhat.com>
1145
1146         PR 15089
1147         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
1148         * tree-flow.h (may_propagate_copy_into_asm): Declare.
1149         * tree-ssa-ccp.c (replace_uses_in): Use it.
1150         * tree-ssa-dom.c (cprop_operand): Likewise.
1151
1152 2004-09-28 Jeff Law  <law@redhat.com>
1153
1154         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
1155         that no outgoing edges be left in the duplicate block.  Do no
1156         update information on outgoing edges or PHI nodes in target
1157         blocks here.
1158         (remove_ctrl_stmt_and_useless_edges): Renamed from
1159         remove_last_stmt_and_useless_edges.  Handle case where the
1160         block is empty or has no control statements.  Do not update edge
1161         flags here.
1162         (thread_block): Create a template block rather than copying the
1163         original block every time.  Create outgoing edges from the
1164         duplicate blocks and update PHIs at the target of the outgoing
1165         edges here.  Fix edge flags for the original block if necessary.
1166         * cfghooks (duplicate_block): No longer assert that the original
1167         block has incoming edges.
1168
1169 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
1170
1171         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
1172         Reg Vars to enforce register allocation with general constraints.
1173         (Explicit Reg Vars): Clarify relation to asm statements.
1174         (Local Reg Vars): Similar.
1175
1176 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1177
1178         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
1179         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
1180         build_control_flow, new_edge): Remove.
1181         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
1182         (bitlst, bitlst_table_last, bitlst_table): Remove.
1183         (bblst): Store basic_block pointer instead of block index.
1184         (bblst_table): Likewise.
1185         (edgelst): Store edge pointer instead of edge index.
1186         (edgelst_table, edgelst_last): New variables.
1187         (extract_bitlst): Rename to ...
1188         (extract_edgelst): ... this.  Return edge pointers, not indices.
1189         (split_edges): Update call.
1190         (rgn_edges): Store edge pointers instead of indices.
1191         (edge_to_bit): Remove.
1192         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
1193         (SET_EDGE_TO_BIT): New macro.
1194         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
1195         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
1196         data structures instead of haifa_edge et al.  Use edge pointers
1197         instead of edge indices everywhere.
1198         (compute_dom_prob_ps): Use standard CFG data structures.  Account
1199         for exit edges.
1200         (compute_trg_info): Likewise.
1201         (propagate_deps): Likewise.
1202         (debug_candidate): Account for bblst data structure change.
1203         (check_live_1, update_live_1, is_pfree): Likewise.
1204         (IS_REACHABLE): Use standard CFG data structures.
1205         (init_ready_list): Update bblst_table/edgelst_table allocation.
1206         (schedule_region): Update alloc/cleanup code to data structure
1207         changes.  Use edge->aux to store per-region edge index.
1208         (init_regions): No longer call build_control_flow.  Do not
1209         create edge list any more.
1210
1211 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1212
1213         * cse.c (cse_insn): Avoid creating direct non-local jumps.
1214         * combine.c (can_combine_p): Likewise.
1215         * local-alloc. (update_equiv_regs): Likewise.
1216
1217 2004-09-28  Richard Henderson  <rth@redhat.com>
1218
1219         PR 17531
1220         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
1221         Don't check VOIDmode here.  Force PLUS operands to common type.
1222         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
1223         Pmode if given a non pointer type.
1224
1225 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1226
1227         PR 17531
1228         * optabs.c (expand_binop): Force constants to the correct mode.
1229
1230 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1231
1232         * config/s390/s390.c (s390_adjust_cost): Remove.
1233         (TARGET_SCHED_ADJUST_COST): Do not redefine.
1234         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
1235         * config/s390/s390.md ("main_pool"): Use "larl" type
1236         attribute if TARGET_CPU_ZARCH.
1237
1238 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
1239
1240         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
1241         variable.
1242
1243 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1244
1245         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
1246         name to the pass.
1247
1248 2004-09-28  Steven Bosscher  <stevenb@suse.de>
1249
1250         * common.opt (flag_gcse_sm): Disable by default.
1251         (flag_gcse_las): Likewise.
1252         (flag_web): Likewise.  Create from this file.
1253         * flags.h: Remove flag_web declaration.
1254         * toplev.c (flag_web): Likewise.
1255         (process_options): Never set flag_web.
1256
1257 2004-09-28  Steven Bosscher  <stevenb@suse.de>
1258
1259         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
1260         * tree-ssa-propagate.c: Include vec.h.
1261         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
1262         instead of varrays.
1263         (cfg_blocks_add): Assert the block is not already in the worklist.
1264         Update uses of interesting_ssa_edges and varying_ssa_edges.
1265         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
1266         ssa_propagate): Likewise.
1267
1268 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1269
1270         PR c/16409
1271         * c-decl.c (start_decl): Check for initializing incomplete array
1272         of VLAs.
1273         (build_compound_literal): Check for TYPE being error_mark_node.
1274         * c-parse.in (primary): Check for VLA compound literals.
1275
1276 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1277
1278         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
1279         with --disable-checking.
1280
1281 2004-09-28  Devang Patel  <dpatel@apple.com>
1282
1283         * tree-pretty-print.c (dump_generic_node): Print vector types.
1284
1285 2004-09-28  Nick Clifton  <nickc@redhat.com>
1286
1287         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
1288         invocation of the function sh_init_cumulative_args.
1289         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
1290         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
1291         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
1292         * config/sh/sh.c (sh_init_cumulative_args): New function based
1293         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
1294         heuristic added to determine the setting of force_mem when a
1295         library function is being called.
1296
1297 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1298
1299         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
1300         Skip constant arguments.
1301
1302 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
1303
1304         * tree-ssa-alias.c (create_name_tags): If PTR points to a
1305         volatile type, mark the tag volatile.
1306         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
1307         volatile.
1308
1309 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
1310
1311         * tree.def (vec_cond_expr): Fix. Change 'e'
1312         to tcc_expression.
1313
1314 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
1315
1316         * basic-block.h: Fix a comment typo.
1317
1318 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
1319
1320         * optabs.c, optabs.h: Fix comment typos.
1321
1322 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
1323
1324         * config/sparc/sparc.md (call_address_struct_value_sp32):
1325         Properly mask the immediate field of the 'unimp' instruction.
1326         (call_symbolic_struct_value_sp32): Likewise.
1327
1328 2004-09-28  Ben Elliston  <bje@au.ibm.com>
1329             Steven Bosscher  <stevenb@suse.de>
1330             Andrew Pinski  <pinskia@physics.uc.edu>
1331
1332         Merge from edge-vector-branch:
1333         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
1334         (struct edge_def): Remove pred_next, succ_next members.
1335         (struct basic_block_def): Remove pred, succ members.  Add preds
1336         and succs members of type VEC(edge).
1337         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
1338         (BRANCH_EDGE): Likewise.
1339         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
1340         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
1341         (edge_iterator): New.
1342         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
1343         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
1344         (FOR_EACH_EDGE): New.
1345         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
1346         where applicable.
1347         (rotate_loop): Likewise.
1348         (find_traces_1_route): Likewise.
1349         (bb_to_key): Likewise.
1350         (connect_traces): Likewise.
1351         (copy_bb_p): Likewise.
1352         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
1353         (add_labels_and_missing_jumps): Likewise.
1354         (fix_up_fall_thru_edges): Likewise.
1355         (find_jump_block): Likewise.
1356         (fix_crossing_conditional_branches): Likewise.
1357         (fix_crossing_unconditional_branches): Likewise.
1358         (add_reg_crossing_jump_notes): Likewise.
1359         * bt-load.c (augment_live_range): Likewise.
1360         * cfg.c (clear_edges): Likewise.
1361         (unchecked_make_edge): Likewise.
1362         (cached_make_edge): Likewise.
1363         (make_single_succ_edge): Likewise.
1364         (remove_edge): Likewise.
1365         (redirect_edge_succ_nodup): Likewise.
1366         (check_bb_profile): Likewise.
1367         (dump_flow_info): Likewise.
1368         (alloc_aux_for_edges): Likewise.
1369         (clear_aux_for_edges): Likewise.
1370         (dump_cfg_bb_info): Likewise.
1371         * cfganal.c (forwarder_block_p): Likewise.
1372         (can_fallthru): Likewise.
1373         (could_fall_through): Likewise.
1374         (mark_dfs_back_edges): Likewise.
1375         (set_edge_can_fallthru_flag): Likewise.
1376         (find_unreachable_blocks): Likewise.
1377         (create_edge_list): Likewise.
1378         (verify_edge_list): Likewise.
1379         (add_noreturn_fake_exit_edges): Likewise.
1380         (connect_infinite_loops_to_exit): Likewise.
1381         (flow_reverse_top_sort_order_compute): Likewise.
1382         (flow_depth_first_order_compute): Likewise.
1383         (flow_preorder_transversal_compute): Likewise.
1384         (flow_dfs_compute_reverse_execute): Likewise.
1385         (dfs_enumerate_from): Likewise.
1386         (compute_dominance_frontiers_1): Likewise.
1387         * cfgbuild.c (make_edges): Likewise.
1388         (compute_outgoing_frequencies): Likewise.
1389         (find_many_sub_basic_blocks): Likewise.
1390         (find_sub_basic_blocks): Likewise.
1391         * cfgcleanup.c (try_simplify_condjump): Likewise.
1392         (thread_jump): Likewise.
1393         (try_forward_edges): Likewise.
1394         (merge_blocks_move): Likewise.
1395         (outgoing_edges_match): Likewise.
1396         (try_crossjump_to_edge): Likewise.
1397         (try_crossjump_bb): Likewise.
1398         (try_optimize_cfg): Likewise.
1399         (merge_seq_blocks): Likewise.
1400         * cfgexpand.c (expand_gimple_tailcall): Likewise.
1401         (expand_gimple_basic_block): Likewise.
1402         (construct_init_block): Likewise.
1403         (construct_exit_block): Likewise.
1404         * cfghooks.c (verify_flow_info): Likewise.
1405         (dump_bb): Likewise.
1406         (delete_basic_block): Likewise.
1407         (split_edge): Likewise.
1408         (merge_blocks): Likewise.
1409         (make_forwarder_block): Likewise.
1410         (tidy_fallthru_edges): Likewise.
1411         (can_duplicate_block_p): Likewise.
1412         (duplicate_block): Likewise.
1413         * cfglayout.c (fixup_reorder_chain): Likewise.
1414         (fixup_fallthru_exit_predecessor): Likewise.
1415         (can_copy_bbs_p): Likewise.
1416         (copy_bbs): Likewise.
1417         * cfgloop.c (flow_loops_cfg_dump): Likewise.
1418         (flow_loop_entry_edges_find): Likewise.
1419         (flow_loop_exit_edges_find): Likewise.
1420         (flow_loop_nodes_find): Likewise.
1421         (mark_single_exit_loops): Likewise.
1422         (flow_loop_pre_header_scan): Likewise.
1423         (flow_loop_pre_header_find): Likewise.
1424         (update_latch_info): Likewise.
1425         (canonicalize_loop_headers): Likewise.
1426         (flow_loops_find): Likewise.
1427         (get_loop_body_in_bfs_order): Likewise.
1428         (get_loop_exit_edges): Likewise.
1429         (num_loop_branches): Likewise.
1430         (verify_loop_structure): Likewise.
1431         (loop_latch_edge): Likewise.
1432         (loop_preheader_edge): Likewise.
1433         * cfgloopanal.c (mark_irreducible_loops): Likewise.
1434         (expected_loop_iterations): Likewise.
1435         * cfgloopmanip.c (remove_bbs): Likewise.
1436         (fix_bb_placement): Likewise.
1437         (fix_irreducible_loops): Likewise.
1438         (remove_path): Likewise.
1439         (scale_bbs_frequencies): Likewise.
1440         (loopify): Likewise.
1441         (unloop): Likewise.
1442         (fix_loop_placement): Likewise.
1443         (loop_delete_branch_edge): Likewise.
1444         (duplicate_loop_to_header_edge): Likewise.
1445         (mfb_keep_just): Likewise.
1446         (create_preheader): Likewise.
1447         (force_single_succ_latches): Likewise.
1448         (loop_split_edge_with): Likewise.
1449         (create_loop_notes): Likewise.
1450         * cfgrtl.c (rtl_split_block): Likewise.
1451         (rtl_merge_blocks): Likewise.
1452         (rtl_can_merge_blocks): Likewise.
1453         (try_redirect_by_replacing_jump): Likewise.
1454         (force_nonfallthru_and_redirect): Likewise.
1455         (rtl_tidy_fallthru_edge): Likewise.
1456         (commit_one_edge_insertion): Likewise.
1457         (commit_edge_insertions): Likewise.
1458         (commit_edge_insertions_watch_calls): Likewise.
1459         (rtl_verify_flow_info_1): Likewise.
1460         (rtl_verify_flow_info): Likewise.
1461         (purge_dead_edges): Likewise.
1462         (cfg_layout_redirect_edge_and_branch): Likewise.
1463         (cfg_layout_can_merge_blocks_p): Likewise.
1464         (rtl_flow_call_edges_add): Likewise.
1465         * cse.c (cse_cc_succs): Likewise.
1466         * df.c (hybrid_search): Likewise.
1467         * dominance.c (calc_dfs_tree_nonrec): Likewise.
1468         (calc_dfs_tree): Likewise.
1469         (calc_idoms): Likewise.
1470         (recount_dominator): Likewise.
1471         * domwalk.c (walk_dominator_tree): Likewise.
1472         * except.c (emit_to_new_bb_before): Likewise.
1473         (connect_post_landing_pads): Likewise.
1474         (sjlj_emit_function_enter): Likewise.
1475         (sjlj_emit_function_exit): Likewise.
1476         (finish_eh_generation): Likewise.
1477         * final.c (compute_alignments): Likewise.
1478         * flow.c (calculate_global_regs_live): Likewise.
1479         (initialize_uninitialized_subregs): Likewise.
1480         (init_propagate_block_info): Likewise.
1481         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1482         * gcse.c (find_implicit_sets): Likewise.
1483         (bypass_block): Likewise.
1484         (bypass_conditional_jumps): Likewise.
1485         (compute_pre_data): Likewise.
1486         (insert_insn_end_bb): Likewise.
1487         (insert_store): Likewise.
1488         (remove_reachable_equiv_notes): Likewise.
1489         * global.c (global_conflicts): Likewise.
1490         (calculate_reg_pav): Likewise.
1491         * graph.c (print_rtl_graph_with_bb): Likewise.
1492         * ifcvt.c (mark_loop_exit_edges): Likewise.
1493         (merge_if_block): Likewise.
1494         (find_if_header): Likewise.
1495         (block_jumps_and_fallthru_p): Likewise.
1496         (find_if_block): Likewise.
1497         (find_cond_trap): Likewise.
1498         (block_has_only_trap): Likewise.
1499         (find_if_case1): Likewise.
1500         (find_if_case_2): Likewise.
1501         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
1502         (perfect_nestify): Likewise.
1503         * lcm.c (compute_antinout_edge): Likewise.
1504         (compute_laterin): Likewise.
1505         (compute_available): Likewise.
1506         (compute_nearerout): Likewise.
1507         * loop-doloop.c (doloop_modify): Likewise.
1508         * loop-init.c (loop_optimizer_init): Likewise.
1509         * loop-invariant.c (find_exits): Likewise.
1510         * loop-iv.c (simplify_using_initial_values): Likewise.
1511         (check_simple_exit): Likewise.
1512         (find_simple_exit): Likewise.
1513         * loop-unroll.c (peel_loop_completely): Likewise.
1514         (unroll_loop_constant_iterations): Likewise.
1515         (unroll_loop_runtime_iterations): Likewise.
1516         * loop-unswitch.c (may_unswitch_on): Likewise.
1517         (unswitch_loop): Likewise.
1518         * modulo-sched.c (generate_prolog_epilog): Likewise.
1519         (sms_schedule): Likewise.
1520         * postreload-gcse.c (eliminate_partially_redundant_load):
1521         Likewise.
1522         * predict.c (can_predict_insn_p): Likewise.
1523         (set_even_probabilities): Likewise.
1524         (combine_predictions_for_bb): Likewise.
1525         (predict_loops): Likewise.
1526         (estimate_probability): Likewise.
1527         (tree_predict_by_opcode): Likewise.
1528         (tree_estimate_probability): Likewise.
1529         (last_basic_block_p): Likewise.
1530         (propagate_freq): Likewise.
1531         (estimate_loops_at_level): Likewise.
1532         (estimate_bb_frequencies): Likewise.
1533         * profile.c (instrument_edges): Likewise.
1534         (get_exec_counts): Likewise.
1535         (compute_branch_probabilities): Likewise.
1536         (branch_prob): Likewise.
1537         * ra-build.c (live_in): Likewise.
1538         * ra-rewrite.c (rewrite_program2): Likewise.
1539         * ra.c (reg_alloc): Likewise.
1540         * reg-stack.c (reg_to_stack): Likewise.
1541         (convert_regs_entry): Likewise.
1542         (compensate_edge): Likewise.
1543         (convert_regs_1): Likewise,
1544         (convert_regs_2): Likewise.
1545         (convert_regs): Likewise.
1546         * regrename.c (copyprop_hardreg_forward): Likewise.
1547         * reload1.c (fixup_abnormal_edges): Likewise.
1548         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
1549         (sbitmap_insersection_of_preds): Likewise.
1550         (sbitmap_union_of_succs): Likewise.
1551         (sbitmap_union_of_preds): Likewise.
1552         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
1553         (fix_basic_block_boundaries): Likewise.
1554         (sched_ebbs): Likewise.
1555         * sched-rgn.c (build_control_flow): Likewise.
1556         (find_rgns): Likewise.
1557         * tracer.c (find_best_successor): Likewise.
1558         (find_best_predecessor): Likewise.
1559         (tail_duplicate): Likewise.
1560         * tree-cfg.c (make_edges): Likewise.
1561         (make_ctrl_stmt_edges): Likewise.
1562         (make_goto_expr_edges): Likewise.
1563         (tree_can_merge_blocks_p): Likewise.
1564         (tree_merge_blocks): Likewise.
1565         (cfg_remove_useless_stmts_bb): Likewise.
1566         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
1567         (tree_block_forwards_to): Likewise.
1568         (cleanup_control_expr_graph): Likewise.
1569         (find_taken_edge): Likewise.
1570         (dump_cfg_stats): Likewise.
1571         (tree_cfg2vcg): Likewise.
1572         (disband_implicit_edges): Likewise.
1573         (tree_find_edge_insert_loc): Likewise.
1574         (bsi_commit_edge_inserts): Likewise.
1575         (tree_split_edge): Likewise.
1576         (tree_verify_flow_info): Likewise.
1577         (tree_make_forwarder_block): Likewise.
1578         (tree_forwarder_block_p): Likewise.
1579         (thread_jumps): Likewise.
1580         (tree_try_redirect_by_replacing_jump): Likewise.
1581         (tree_split_block): Likewise.
1582         (add_phi_args_after_copy_bb): Likewise.
1583         (rewrite_to_new_ssa_names_bb): Likewise.
1584         (dump_function_to_file): Likewise.
1585         (print_pred_bbs): Likewise.
1586         (print_loop): Likewise.
1587         (tree_flow_call_edges_add): Likewise.
1588         (split_critical_edges): Likewise.
1589         (execute_warn_function_return): Likewise.
1590         (extract_true_false_edges_from_block): Likewise.
1591         * tree-if-conv.c (tree_if_conversion): Likewise.
1592         (if_convertable_bb_p): Likewise.
1593         (find_phi_replacement_condition): Likewise.
1594         (combine_blocks): Likewise.
1595         * tree-into-ssa.c (compute_global_livein): Likewise.
1596         (ssa_mark_phi_uses): Likewise.
1597         (ssa_rewrite_initialize_block): Likewise.
1598         (rewrite_add_phi_arguments): Likewise.
1599         (ssa_rewrite_phi_arguments): Likewise.
1600         (insert_phi_nodes_for): Likewise.
1601         (rewrite_into_ssa): Likewise.
1602         (rewrite_ssa_into_ssa): Likewise.
1603         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
1604         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
1605         (rewrite_trees): Likewise.
1606         * tree-pretty-print.c (dump_bb_header): Likewise.
1607         (dump_implicit_edges): Likewise.
1608         * tree-sra.c (insert_edge_copies): Likewise.
1609         (find_obviously_necessary_stmts): Likewise.
1610         (remove_data_stmt): Likewise.
1611         * tree-ssa-dom.c (thread_across_edge): Likewise.
1612         (dom_opt_finalize_block): Likewise.
1613         (single_incoming_edge_ignoring_loop_edges): Likewise.
1614         (record_equivalences_from_incoming_edges): Likewise.
1615         (cprop_into_successor_phis): Likewise.
1616         * tree-ssa-live.c (live_worklist): Likewise.
1617         (calculate_live_on_entry): Likewise.
1618         (calculate_live_on_exit): Likewise.
1619         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
1620         (copy_loop_headers): Likewise.
1621         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
1622         (fill_always_executed_in): Likewise.
1623         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
1624         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
1625         (compute_phi_arg_on_exit): Likewise.
1626         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
1627         (get_loops_exit): Likewise.
1628         (split_loop_exit_edge): Likewise.
1629         (ip_normal_pos): Likewise.
1630         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
1631         Likewise.
1632         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
1633         (replace_phi_with_stmt): Likewise.
1634         (value_replacement): Likewise.
1635         * tree-ssa-pre.c (compute_antic_aux): Likewise.
1636         (insert_aux): Likewise.
1637         (init_pre): Likewise.
1638         * tree-ssa-propagate.c (simulate_stmt): Likewise.
1639         (simulate_block): Likewise.
1640         (ssa_prop_init): Likewise.
1641         * tree-ssa-threadupdate.c (thread_block): Likewise.
1642         (create_block_for_threading): Likewise.
1643         (remove_last_stmt_and_useless_edges): Likewise.
1644         * tree-ssa.c (verify_phi_args): Likewise.
1645         (verify_ssa): Likewise.
1646         * tree_tailcall.c (independent_of_stmt_p): Likewise.
1647         (find_tail_calls): Likewise.
1648         (eliminate_tail_call): Likewise.
1649         (tree_optimize_tail_calls_1): Likewise.
1650         * tree-vectorizer.c (vect_transform_loop): Likewise.
1651         * var-tracking.c (prologue_stack_adjust): Likewise.
1652         (vt_stack_adjustments): Likewise.
1653         (vt_find_locations): Likewise.
1654         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1655         * config/i386/i386.c (ix86_pad_returns): Likewise.
1656         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1657         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1658
1659 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1660
1661         PR target/16532
1662         * config/sparc/sparc.c (struct machine_function): New field
1663         'leaf_function_p' and 'prologue_data_valid_p'.
1664         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
1665         to conveniently access the above fields.
1666         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
1667         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
1668         of the generic flavor 'current_function_uses_only_leaf_regs'.
1669         (eligible_for_sibcall_delay): Likewise.
1670         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
1671         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
1672         (sparc_asm_function_prologue): Add sanity check for the assumption
1673         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
1674         (sparc_can_use_return_insn_p): New function.
1675         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
1676         (output_restore): Likewise.
1677         (output_sibcall): Likewise.
1678         (sparc_output_mi_thunk): Likewise.
1679         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
1680         * config/sparc/sparc.md (return): New expander.
1681
1682         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
1683
1684 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
1685
1686         PR c++/17642
1687         * stor-layout.c (layout_decl): Use fold_convert, not convert.
1688         (bit_from_pos): Likewise.
1689         (byte_from_pos): Likewise.
1690         (pos_from_bit): Likewise.
1691         (normalize_offset): Likewise.
1692         (place_field): Likewise.
1693         (finalize_type_size): Likewise.
1694         (layout_type): Likewise.
1695         * tree.c (build_index_type): Likewise.
1696
1697 2004-09-27  Devang Patel  <dpatel@apple.com>
1698
1699         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
1700         * genopinit.c (optabs): New entry for vcond_gen_code and
1701         vcondu_gen_code.
1702         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
1703         (get_rtx_code): New function.
1704         (vector_compare_rtx): New function.
1705         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
1706         (expand_vec_cond_expr_p): New function.
1707         (expand_vec_cond_expr): New function.
1708         (get_vcond_icode): New function.
1709         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
1710         (vcond_gen_code, vcondu_gen_code): Same.
1711
1712 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1713
1714         * Makefile.in (STAGESTUFF): Split into ...
1715         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
1716         (mostlyclean): Update.
1717         (stage1-start, stage2-start, stage3-start, stage4-start,
1718         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
1719         Move the STAGEMOVESTUFF.
1720
1721 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
1722
1723         * system.h (getpagesize): Return 'int' instead of 'long'.
1724
1725 2004-09-27  Michael Matz <matz@suse.de>
1726
1727         PR bootstrap/17698
1728         PR bootstrap/17702
1729         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
1730         bmp_iter_and_init): Shift by bit_in_word.
1731
1732 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1733
1734         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
1735         * configure.ac: Don't sinclude it here.
1736         * configure: Regenerate.
1737
1738 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
1739
1740         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
1741         Handle AND pattern
1742
1743 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
1744
1745         PR c/13804
1746         * c-typeck.c (build_component_ref): Name type involved in
1747         diagnostic for structure or union without a member of the given
1748         name.
1749
1750 2004-09-27  DJ Delorie  <dj@redhat.com>
1751
1752         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
1753         .comm alignment is bytes, not bits.
1754
1755 2004-09-27  Devang Patel  <dpatel@apple.com>
1756
1757         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
1758         (print_call_name): Do not print VEC_COND_EXPR.
1759
1760 2004-09-27  Devang Patel  <dpatel@apple.com>
1761
1762         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
1763
1764 2004-09-27  Jan Hubicka  <jh@suse.cz>
1765
1766         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
1767
1768 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
1769
1770         * bitmap.h: Fix a comment typo.
1771
1772 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
1773
1774         * libgcc2.c (getpagesize): Change type of return value to int.
1775
1776 2004-09-26  Matt Austern  <austern@apple.com>
1777
1778         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
1779         using mmap.
1780
1781 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1782
1783         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
1784         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
1785         (bitmap_iterator): New type.
1786         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
1787         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
1788         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
1789         bmp_iter_and_init, bmp_iter_and_next): New functions.
1790         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
1791         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
1792         use iterator-style EXECUTE_IF_IN_BITMAP macros.
1793         * bitmap.c (bitmap_print): Ditto.
1794         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
1795         btr_def_live_range): Ditto.
1796         * cfganal.c (compute_dominance_frontiers_1) Ditto.
1797         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
1798         Ditto.
1799         * ddg.c (build_inter_loop_deps): Ditto.
1800         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
1801         Ditto.
1802         * except.c (remove_eh_handler): Ditto.
1803         * flow.c (reg_set_to_hard_reg_set): Ditto.
1804         * gcse.c (clear_modify_mem_tables): Ditto.
1805         * global.c (build_insn_chain): Ditto.
1806         * ifcvt.c (dead_or_predicable): Ditto.
1807         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
1808         Ditto.
1809         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
1810         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
1811         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
1812         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
1813         tree_purge_all_dead_eh_edges): Ditto.
1814         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
1815         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
1816         rewrite_ssa_into_ssa): Ditto.
1817         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
1818         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
1819         Ditto.
1820         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
1821         compute_flow_sensitive_aliasing, maybe_create_global_var,
1822         dump_points_to_info_for): Ditto.
1823         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
1824         * tree-ssa-dse.c (dse_finalize_block): Ditto.
1825         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
1826         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
1827         Ditto.
1828         * tree-ssa-loop-ivopts.c (find_induction_variables,
1829         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
1830         determine_use_iv_costs, determine_set_costs, find_best_candidate,
1831         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
1832         Ditto.
1833         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
1834         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
1835         add_call_read_ops): Ditto.
1836         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
1837
1838 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1839
1840         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
1841         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
1842
1843 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
1844
1845         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
1846         reflect size of memory regions being compared.
1847
1848 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
1849
1850         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
1851         expressions.  Always clear MEM_SIZE and alias set.
1852
1853 2004-09-26  Roger Sayle  <roger@eyesopen.com>
1854             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1855
1856         PR middle-end/17112
1857         * stor-layout.c (compute_record_mode): For records with a single
1858         field, only use the field's mode if its size matches what we'd
1859         have choosen for the record ourselves.  This forces the use of
1860         BLKmode for packed records that don't completely fill a mode.
1861
1862 2004-09-26  Roger Sayle  <roger@eyesopen.com>
1863
1864         PR middle-end/17151
1865         * combine.c (force_to_mode): Remove dubious early return test that
1866         inhibits further optimization.
1867
1868 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
1869
1870         * profile.c: Fix a comment typo.
1871
1872 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1873
1874         PR bootstrap/17591
1875         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
1876         with varying offset.
1877         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
1878         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
1879         ARRAY_REFS.
1880         (expr_invariant_in_loop_p): New function.
1881         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
1882         component_ref_field_offset for COMPONENT_REFs.  Do not allow
1883         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
1884         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
1885         MISALIGNED_INDIRECT_REFs.
1886         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
1887         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
1888         MISALIGNED_INDIRECT_REFs.
1889
1890 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
1891
1892         PR c/11459
1893         * gcc.c (cpp_options, cc1_options): Preserve relative order of
1894         -std and -ansi options.
1895
1896 2004-09-26  Jan Hubicka  <jh@suse.cz>
1897
1898         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
1899         for nested functions whose proper parent has not been output.
1900
1901         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
1902         when re-constructing profile previously invalidated by loop.
1903
1904 2004-09-25  Dale Johannesen  <dalej@apple.com>
1905
1906         * tree-gimple.c:  Move GIMPLE definition...
1907         * doc/tree-ssa.texi:  here.
1908
1909 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1910
1911         * tree-vectorizer.c: Fix a comment typo.
1912
1913 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1914
1915         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
1916         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
1917         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
1918         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
1919
1920 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1921
1922         * tree-ssa-loop-unswitch.c: Fix a comment typo.
1923
1924 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
1925
1926         * doc/passes.texi: Fix a typo.
1927
1928 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1929
1930         * tree-optimize.c (init_tree_optimization_passes): Add
1931         pass_record_bounds.
1932         * tree-pass.h (pass_record_bounds): Declare.
1933         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
1934         New pass.
1935
1936 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1937
1938         PR tree-optimization/17474
1939         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
1940         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
1941
1942 2004-09-25  Jan Hubicka  <jh@suse.cz>
1943
1944         * predict.c (counts_to_freqs): Make global.
1945         * predict.h (counts_to_freqa): Declare.
1946         * profile.c (compute_branch_probabilities): Compute frequencies
1947         * tree-profile.c (do_tree_profiling): Refine conditional on when
1948         tree profiling pass is needed.
1949
1950         * passes.c (rest_of_handle_cfg): Disable const/pure function
1951         detection when doing tree based profiling.
1952
1953         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
1954         conditional.
1955
1956 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
1957
1958         * config/mips/mips.h (struct mips_args): Clarify comments.
1959         * config/mips/mips.c (struct mips_arg_info): Likewise.
1960         (mips_arg_info): Don't allow fpr_p to affect the register or
1961         stack alignment.  Remove o64 silliness.
1962         (function_arg): Deal with the o32 float,float case specially.
1963
1964 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
1965
1966         * config/mips/mips.md (loadx, storex): Define for V2SF.
1967
1968 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
1969
1970         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
1971         * config/s390/s390.c (s390_back_chain_rtx): New function.
1972         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
1973         Call anti_adjust_stack.
1974         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
1975         only if compiling with back chain.
1976         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
1977         back chain only if back chain enabled.  Use s390_back_chain_rtx.
1978
1979 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
1980
1981         * doc/trouble.texi: Remove obsolete information.  Update
1982         information on how to regenerate fixincluded headers.
1983
1984 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
1985
1986         PR c/12951
1987         * doc/invoke.texi: Document that
1988         -Wno-error-implicit-function-declaration is not accepted.
1989
1990 2004-09-24  Richard Henderson  <rth@redhat.com>
1991
1992         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
1993         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
1994         on TARGET_MAX.
1995         (alpha_expand_mov): Allow unaligned vectors.
1996         (alpha_expand_unaligned_store): Use CONST0_RTX.
1997         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
1998
1999 2004-09-24 Jeff Law  <law@redhat.com>
2000
2001         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
2002         aliasing rules.
2003         (simplify_cond_and_lookup_avail_expr): Likewise.
2004
2005 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2006
2007         PR c/12802
2008         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
2009         title.  Document interaction with -fms-extensions.
2010         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
2011         section.
2012
2013 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2014
2015         PR c/12713
2016         * doc/extend.texi: Document interaction of attribute noreturn and
2017         longjmp.
2018
2019 2004-09-24  Richard Henderson  <rth@redhat.com>
2020
2021         PR rtl-opt/17503
2022         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
2023         (som_hash, som_eq): New.
2024         (init_subregs_of_mode, record_subregs_of_mode): New.
2025         (cannot_change_mode_set_regs): Rewrite for htab implementation.
2026         (invalid_mode_change_p): Likewise.
2027         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
2028         * flow.c (mark_used_regs): Likewise.
2029         (life_analysis): Use init_subregs_of_mode.
2030         * regs.h (subregs_of_mode): Remove.
2031         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
2032
2033 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2034
2035         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
2036         type with the copy of the conditional.
2037
2038 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2039
2040         PR tree-opt/16954
2041         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2042         Prevent renaming if the aliasing sets of the type which the
2043         pointer points to are different.
2044
2045 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2046
2047         PR c/17188
2048         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
2049         declarations of enumerators.
2050         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
2051         for redefinition.  Check for nested redefinition.
2052         (finish_struct): Don't check for nested redefinition.
2053         (start_enum): Check for nested redefinition.
2054
2055 2004-09-24  Devang Patel  <dpatel@apple.com>
2056
2057         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
2058         only when necesssary.
2059         (combine_blocks): Combine loop header and exit block.
2060
2061 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
2062
2063         * hooks.c (hook_tree_tree_bool_null): New.
2064         * hooks.h (hook_tree_tree_bool_null): Declare it.
2065         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
2066         * targhooks.c (default_fold_builtin): Remove.
2067         * targhooks.h (default_fold_builtin): Remove.
2068
2069 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2070
2071         PR rtl-optimization/17625
2072         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
2073
2074 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
2075
2076         PR tree-opt/17624
2077         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
2078         Reject if any of the operands occur in an abnormal PHI.
2079
2080 2004-09-24  Andreas Schwab  <schwab@suse.de>
2081
2082         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
2083         rules.
2084
2085 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2086
2087         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
2088         if the GNU assembler is used.
2089         (sparc-*-solaris2*): Likewise.
2090         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
2091         (dbxout_function_end): Protect N_ENSYM with it.
2092         (dbxout_begin_prologue): Protect N_BNSYM with it.
2093         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
2094         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
2095         * config/sparc/sol2-gas.h: New file.
2096
2097 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
2098
2099         PR bootstrap/17369
2100         * Makefile.in (@set_gcc_lib_path@): Added.
2101
2102         * configure.ac: Include ../config/gcc-lib-path.m4. Use
2103         TL_AC_GNU_MAKE_GCC_LIB_PATH.
2104         * configure: Regenerated.
2105
2106 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2107
2108         PR c/6980
2109         * c-typeck.c (build_c_cast): Improve wording of
2110         -Wbad-function-cast diagnostic.
2111
2112 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
2113
2114         PR target/17626
2115         * config/cris/cris.md (moverside, movemside): Rename variable
2116         "reg" to "otherop".  To generate canonical RTX, check that otherop
2117         isn't constant instead of checking that operand 1 is a register.
2118
2119 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
2120
2121         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
2122
2123 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
2124             Jakub Jelinek  <jakub@redhat.com>
2125
2126         * tree-flow.h (find_new_referenced_vars): Add prototype.
2127         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
2128         Move to...
2129         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
2130         ... here.
2131         (mark_new_vars_to_rename): Walk through all operands.
2132         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
2133         (execute_fold_all_builtins): Use it.
2134         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
2135
2136 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
2137
2138         * gthr-tpf.h: New file.
2139         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
2140         * gthr.h: Use gthr-tpf.h on TPF OS.
2141
2142 2004-09-23 Jeff Law  <law@redhat.com>
2143
2144         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
2145         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
2146         (substitute_and_fold):  Likewise.
2147         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
2148         except invariants from SSA_NAME_VALUE.
2149         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
2150         and SET_SSA_NAME_EQUIV.
2151         (restore_vars_to_original_value, record_const_or_copy): Likewise.
2152         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
2153         (record_equality, cprop_into_successor_phis): Likewise.
2154         (record_equivalences_from_stmt, cprop_operand): Likewise.
2155         (lookup_avail_expr): Likewise.
2156         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
2157         from SSA_NAME_VALUE.
2158         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
2159         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
2160         annotation from the VALUE_HANDLE field.
2161
2162 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
2163
2164         PR c++/13989
2165         PR c++/9844
2166         * tree.c (reconstruct_complex_type): Remove extra "this".
2167         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2168         Add V4SFmode to case statement.
2169
2170 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2171
2172         PR c/16833
2173         * doc/extend.texi, doc/invoke.texi: Document interaction of
2174         -fno-builtin with format checks.  Note that built-in functions
2175         have effects beyond generating code that avoids calls to those
2176         functions.
2177
2178 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
2179
2180         PR tree-optimization/17533
2181         * dominance.c (verify_dominators): Tolerate even more incorrect
2182         dominance data during error message printing.
2183         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
2184         and edges more correctly.
2185
2186 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
2187
2188         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
2189         New tree-codes.
2190         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
2191         MISALIGNED_INDIRECT_REF.
2192         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
2193         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
2194         Likewise.
2195         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
2196         (find_interesting_uses_address): Likewise.
2197         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
2198         (build_fold_addr_expr_with_type): Likewise.
2199         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
2200         * print-rtl.c (print_mem_expr): Likewise.
2201         * tree-dump.c (dequeue_and_dump): Likewise.
2202         * tree-eh.c (tree_could_trap_p): Likewise.
2203         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
2204         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
2205         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
2206         Likewise.
2207         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2208         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
2209         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
2210         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2211         (add_address_candidates, rewrite_address_base): Likewise.
2212         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
2213         Likewise.
2214         * tree.c (staticp, build1_stat): Likewise.
2215
2216         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
2217         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
2218         * tree-ssa-operands.c (get_expr_operands): Likewise.
2219         * expr.c (expand_expr_real_1): Likewise.
2220
2221         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
2222         optabs.
2223         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
2224         for the new optabs.
2225         (expand_ternary_op): New function.
2226         * genopinit.c (optabs): Handle the new optabs.
2227         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
2228         (init_optabs): Initialize vec_realign_load_optab.
2229         (expand_ternary_op): New functions.
2230
2231         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
2232         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
2233         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
2234         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
2235         * target.h (struct vectorize): New member for struct gcc_target.
2236         (misaligned_mem_ok): New member for targetm.vectorize.
2237         (builtin_mask_for_load): Likewise.
2238         (builtin_mask_for_store): Likewise.
2239         * targethooks.c (default_vect_misaligned_mem_ok): New function.
2240         * targethooks.h (default_vect_misaligned_mem_ok): New function.
2241
2242         * config/rs6000/altivec.md (build_vector_mask_for_load): New
2243         define_expand.
2244         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
2245         (vec_realign_load_v16qi): New define_insn.
2246         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
2247         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
2248         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
2249         (altivec_builtin_mask_for_store): New variables.
2250         (rs6000_builtin_mask_for_load): New function. Implements
2251         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
2252         (rs6000_builtin_mask_for_store): New function. Implements
2253         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
2254         (rs6000_expand_builtin): Expand the target builtins
2255         builtin_mask_for_load and builtin_mask_for_store.
2256         (altivec_init_builtins): Initialize the new target builtins.
2257         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
2258         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
2259
2260         * tree-vectorizer.c (vect_create_data_ref): Renamed to
2261         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
2262         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
2263         (vectorizable_store): Call vect_create_data_ref_ptr with additional
2264         arguments, and create an indirect_ref with its return value data_ref.
2265         Check aligned_access_p.
2266         (vectorizable_load): Handle misaligned loads, using software-pipelined
2267         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
2268         vec_realign_load_optab is supported, or using a scheme without
2269         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
2270         misaligned_mem_ok is supported.
2271
2272         (vect_finish_stmt_generation): Typo.
2273         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
2274         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
2275         presence of misaligned loads.
2276         (vect_analyze_data_ref_access): Add check for constant init.
2277         (vect_get_symbl_and_dr): Remove duplicate line.
2278         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
2279
2280 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
2281
2282         * builtins.c: Fix a comment typo.
2283
2284 2004-09-23  Jan Hubicka  <jh@suse.cz>
2285
2286         * profile.c (branch_prob): Do not verify flow info in the middle of the
2287         pass.
2288
2289 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2290
2291         * cfgloop.h (update_single_exits_after_duplication): Declare.
2292         (loopify, split_loop_bb): Declaration changed.
2293         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
2294         of rtx.
2295         (loopify): Added redirect_all_edges argument.
2296         (update_single_exits_after_duplication): Export.
2297         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
2298         * tree-flow.h (tree_duplicate_loop_to_header_edge,
2299         tree_ssa_loop_version): Declare.
2300         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
2301         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
2302         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
2303         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
2304
2305         * tree-ssa-loop-unswitch.c: New file.
2306         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
2307         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
2308         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
2309         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
2310         * tree-pass.h (pass_unswitch): Declare.
2311         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
2312         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
2313         * doc/passes.texi: Documen tree level loop unswitching.
2314
2315 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
2316
2317         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
2318
2319 2004-09-22  Eric Christopher  <echristo@redhat.com>
2320
2321         * builtins.c (simplify_builtin_va_start): Remove.
2322         (simplify_builtin): Ditto.
2323         (fold_builtin_strchr): Ditto.
2324         (simplify_builtin_*): Rename remainders to fold_builtin_*.
2325         (expand_builtin): Fix up for above changes.
2326         (fold_builtin_1): Add new folders. Change for above.
2327         (expand_builtin_va_start): Call fold_builtin_next_arg.
2328         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
2329         * tree.h: Remove prototype for simplify_builtin.
2330
2331 2004-09-23  Jan Hubicka  <jh@suse.cz>
2332
2333         PR debug/17389
2334         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
2335         of fully inlined functions.
2336         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
2337         inlined.
2338
2339         * cfgexpand.c (add_reg_br_prob_note): New function.
2340         (expand_gimple_cond_expr): Use it.
2341         (tree_expand_cfg): No longer kill the profile.
2342         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
2343         only if it is present.
2344         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
2345         * predict.c (combine_predictions_for_insn): Set the probabilities
2346         based on REG_BR_PROB note if present.
2347         * predict.c (branch_prob): Profile is read only with
2348         flag_branch_probabilities.
2349
2350 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2351
2352         * aclocal.m4: Add in gettext's m4 includes.
2353         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
2354         * configure.ac: Add in check for iconv.h
2355         * configure: Regenerate.
2356
2357 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2358
2359         * aclocal.m4: Update for rename of gettext-sister.m4.
2360
2361 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
2362
2363         Fix PR tree-optimization/17587
2364         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
2365         (insert_aux): Instead of here.
2366
2367 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
2368
2369         PR tree-optimization/16721
2370         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
2371         * tree-ssa-alias.c (create_memory_tag): Move setting of
2372         TREE_THIS_VOLATILE ...
2373         (get_tmt_for): ... here.
2374
2375 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2376
2377         * config/sparc/sparc.md (cmove splitter): Fix formatting.
2378         (conditional_trap expander): Reject inappropriate CCmodes.
2379         (conditional trap insn): Use V9 syntax if possible.
2380
2381 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2382
2383         PR c/16566
2384         * c-typeck.c (build_component_ref): Don't special-case
2385         COMPOUND_EXPR.
2386
2387 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
2388
2389         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
2390         returns NULL.
2391
2392 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
2393
2394         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
2395         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2396         TRUTH_XOR_EXPR): Mention the restriction on types.
2397
2398 2004-09-22  Matt Austern  <austern@apple.com>
2399
2400         * config/darwin.c (darwin_make_decl_one_only):
2401         Allow coalesced symbol to appear in static archive's table of contents
2402
2403 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
2404
2405         PR tree-optimization/17512
2406         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
2407         special cases.
2408
2409 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
2410
2411         * dbxout.c (get_lang_number): Do not define if
2412         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
2413
2414 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
2415
2416         PR target/15583
2417         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
2418         builtin_define ("__USE_INIT_FINI__").
2419
2420 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
2421
2422         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
2423         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
2424         * config/s390/s390.h (TARGET_TPF): New macro.
2425         * config/s390/s390.md ("eh_return"): New expander.
2426         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
2427         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
2428         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
2429         * config/s390/tpf.h (TARGET_TPF): Define to 1.
2430         (STACK_POINTER_OFFSET): Increase to 448.
2431         (TARGET_DEFAULT): Set -mtpf-trace on as default.
2432         (TPF_LOC_DIFF_OFFSET): New macro.
2433         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
2434         encoding.
2435         (__isPATrange): Add prototype.
2436         (MD_FALLBACK_FRAME_STATE_FOR): Define.
2437         * config/s390/tpf-eh.c: New file.
2438
2439 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
2440
2441         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
2442         operands in an integer comparison.
2443         * tree-cfg.c (find_taken_edge): Call fold() to determine
2444         whether the predicate is known.
2445
2446 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
2447
2448         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
2449         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
2450         Create build and doc directories along with the language directories.
2451         Don't create doc directory separately.
2452         * configure: Regenerate.
2453         * Makefile.in: Create all object and executables files built
2454         with the build compiler in a build/ directory.
2455         (genobjnames): Add missing build objects.
2456         (STAGESTUFF): Don't stage the gen* programs.
2457         (ggc-none.o): Define dependencies for the target compiler.
2458         (build-print-rtl.o): Rename to build/print-rtl.o.
2459         (build-errors.o): Rename to build/errors.o.
2460         (build-varray.o): Rename to build/varray.o.
2461         (maintainerclean): Delete the contents of the build directory.
2462         ($(genobjs): %.o): Explicitly use -o.
2463         (build/insn-conditions.o): Delete specfic rule to use generic rule.
2464         (build/gengtype-lex.o): Likewise.
2465         (build/gengtype-yacc.o): Likewise.
2466         (build/gcov-iov.o): Likewise.
2467
2468 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
2469
2470         * vec.h (VEC_space): Return true if there _is_ space.
2471         (VEC_reserve): Adjust.
2472
2473 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
2474
2475         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
2476         use FPRs for scalar, complex and vector types only.
2477
2478 2004-09-21 Jeff Law  <law@redhat.com>
2479
2480         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
2481         the opt_stats_d structure.
2482         (vrp_data): Change from a varray into a hash table.
2483         (vrp_hash_elt): New structure for elements in the vrp hash table.
2484         (vrp_hash, vrp_eq):New functions for hashing and testing equality
2485         in the vrp hash table.
2486         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
2487         initialization slightly to make it easier to read.  No longer need
2488         to grow/clear the varray.  Instead empty and delete the hash table.
2489         (dom_opt_finalize_block): Update due to change of VRP_DATA from
2490         a varray to a hash table.
2491         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
2492
2493         * tree-ssa-ccp.c (get_default_value): If we have a constant
2494         value recorded for an SSA_NAME, then use that constant as
2495         the initial lattice value.
2496         (substitute_and_fold): Transfer equivalences discovered into
2497         SSA_NAME_EQUIV.
2498
2499         * tree.h (SSA_NAME_EQUIV): Add comments.
2500         (SET_SSA_NAME_EQUIV): Similarly.
2501
2502 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
2503
2504         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
2505
2506         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
2507
2508 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
2509
2510         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
2511         (finish_decl): Likewise.
2512
2513 2004-09-21  Devang Patel  <dpatel@apple.com>
2514
2515         * tree.def (VEC_COND_EXPR): New tree node.
2516         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
2517
2518 2004-09-21  Stan Shebs  <shebs@apple.com>
2519
2520         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
2521         * config/rs6000/darwin-world.asm: Likewise.
2522
2523 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
2524
2525         * tree-ssa.c (verify_def): Use print_generic_stmt,
2526         not debug_generic_stmt.
2527         (verify_use): Ditto.
2528         (verify_phi_args): Ditto.
2529         (verify_ssa): Ditto.
2530
2531 2004-09-21  Paul Brook  <paul@codesourcery.com>
2532
2533         * varasm.c (default_assemble_integer): Return false for values wider
2534         than the target word size.  Works around GAS bug.
2535
2536 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
2537
2538         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
2539         gets value 0.
2540         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
2541         if it has value 0.
2542
2543 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
2544
2545         * c-typeck.c (build_function_call): Give name of object
2546         we are attempting to call in error message.
2547         * c-objc-common.c (c_tree_printer): Call pp_expression,
2548         not return false, for 'E' case.
2549
2550 2004-09-21  Steven Bosscher  <stevenb@suse.de>
2551
2552         PR rtl-optimization/17482
2553         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
2554         load_killed_in_block_p): Clarify comments.
2555         (record_last_reg_set_info): Make static inline.
2556         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
2557         (record_opr_changes): New function to replace the above.
2558         (compute_hash_table): Clarify comments.  Use record_opr_changes.
2559         (reg_set_between_after_reload_p): Clean up.
2560         (reg_used_between_after_reload_p): Likewise.
2561         (eliminate_partially_redundant_load): Clarify comments.
2562
2563 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2564
2565         PR rtl-optimization/17266
2566         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
2567
2568 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
2569
2570         PR rtl-optimization/14851
2571         * rtlanal.c (commutative_operand_precedence): Calculate
2572         precedence of stripped constant.
2573
2574 2004-09-20 Jeff Law  <law@redhat.com>
2575            Jan Hubicka  <jh@suse.cz>
2576
2577         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
2578         initialize key elements here.
2579         (release_ssa_name): Zero the released SSA_NAME here.
2580         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
2581         (struct tree_ssa_name): Add new "equiv" field.
2582         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
2583         (tree_ssa_dominator_optimize): No longer allocate, resize or
2584         clear CONST_AND_COPIES.
2585         (get_value_for, set_value_for): Kill.
2586         (thread_across_edge): Get/set the equivalency using
2587         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
2588         (restore_vars_to_original_value): Likewise.
2589         (record_equivalences_from_phis): Likewise.
2590         (record_dominating_conditions): Likewise.
2591         (record_const_or_copy, record_equality): Likewise.
2592         (lookup_avail_expr): Likewise.
2593         (record_equivalences_from_stmt, cprop_operand): Likewise.
2594         (cprop_into_successor_phis): No longer need to pass around
2595         CONST_AND_COPIES.  Callers updated. Get equivalences via
2596         SSA_NAME_EQUIV.
2597         (cprop_into_phis): Likewise.
2598
2599 2004-09-20  Matt Austern <austern@apple.com>
2600             Zack Weinberg  <zack@codesourcery.com>
2601
2602         * c-common.c (fix_string_type): Build the unqualified array
2603         type unconditionally, then use c_build_qualified_type to get
2604         the proper const-qualified variant, and set its
2605         TYPE_MAIN_VARIANT to refer to the unqualified type.
2606         * c-lex.c (c_lex_return_raw_string): New global.
2607         (c_lex_with_flags): Honor it.
2608         * c-pragma.h: Declare it.
2609
2610 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
2611
2612         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
2613
2614 2004-09-21  Jan Hubicka  <jh@suse.cz>
2615
2616         PR middle-end/17126
2617         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
2618         (tree_rest_of_compilation): Cleanup.
2619
2620 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
2621
2622         * config/s390/s390.c (s390_select_rtx_section): Remove.
2623         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
2624
2625 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2626
2627         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
2628         note to pretend a direct save from the original register when an
2629         intermediate register is used for the save.
2630
2631 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2632
2633         * tsystem.h (alloca): Provide a default definition.
2634
2635         Revert:
2636         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2637             * unwind-dw2.c: Call __builtin_alloca, not alloca.
2638
2639 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
2640
2641         PR tree-opt/17558
2642         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
2643         aliasing sets are the same rather than just conflicting.
2644
2645 2004-09-20  Jan Hubicka  <jh@suse.cz>
2646
2647         PR middle-end/16460
2648
2649         * cgraph.c (cgraph_unnest_node): New function.
2650         (c_finalize): Rename to ....
2651         (c_warn_unused_result_recursivly): ... this one; do only the warning
2652         (finish_function): Finalize the toplevel function; do not lower nested tree.
2653         * cgraph.h (cgraph_unnest_node): Declare.
2654         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
2655         nestedness datastructure.
2656         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
2657         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
2658         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
2659
2660 2004-09-20  Richard Henderson  <rth@redhat.com>
2661
2662         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
2663         from some_small_symbolic_operand_1; export.
2664         (some_small_symbolic_operand): Remove.
2665         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
2666         extra C check.
2667         * config/alpha/predicates.md (some_small_symbolic_operand): New.
2668
2669 2004-09-20  Jan Hubicka  <jh@suse.cz>
2670
2671         * predict.c (return_prediction): New function.
2672         (apply_return_prediction): Likewise.
2673         (tree_bb_level_predictions): Likewise.
2674         (tree_estimate_probability): Add noreturn exit edges; call
2675         bb_level_predictions; fix logic of return heuristics.
2676         (predict_paths_leading_to):  Rescuesce from old CVS version of
2677         process_note_prediction function.
2678         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
2679
2680 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
2681
2682         * config/s390/s390.c (s390_frame_info): Added alignment statement for
2683         floating point register area on stack.
2684
2685 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
2686
2687         * predict.c (expr_expected_value): Use *_CLASS_P macros.
2688
2689 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
2690
2691         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
2692         generating useless garbage.
2693
2694 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
2695
2696         * builtins.c (fold_builtin): Call the new omonymous
2697         target hook for machine-dependent built-ins.
2698         * target-def.h (TARGET_FOLD_BUILTIN): New.
2699         * target.h (struct gcc_target): Add the fold_builtin hook.
2700         * targhooks.c (default_fold_builtin): New.
2701         * targhooks.h (default_fold_builtin): Declare it.
2702
2703 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
2704
2705         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
2706         comment typos.
2707
2708 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
2709
2710         PR target/17565
2711         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
2712
2713 2004-09-20  Jan Hubicka  <jh@suse.cz>
2714
2715         * predict.c (estimate_probability): Remove unnecesary code.
2716
2717 2004-09-19  Ira Rosen  <irar@il.ibm.com>
2718
2719         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
2720         (STMT_VINFO_VECT_DR_BASE): Declare.
2721         (VECT_SMODULO): Declare.
2722         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
2723         (vect_compute_array_base_alignment): New function.
2724         (vect_analyze_data_ref_access): Check array indices. Remove one
2725         dimensional arrays restriction.
2726         (vect_get_ptr_offset): New function.
2727         (vect_get_symbl_and_dr): New function.
2728         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
2729         (former name vect_get_base_decl_and_bit_offset).
2730         (vect_create_index_for_array_ref): Removed.
2731         (vect_create_index_for_vector_ref): New function.
2732         (vect_create_addr_base_for_vector_ref): New function.
2733         (vect_create_data_ref): Handle additional data refs. Call
2734         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
2735         (vect_compute_data_ref_alignment): Support the changes. Call
2736         vect_get_base_and_bit_offset.
2737         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
2738         data refs. Store vect_dr_base.
2739         (vect_analyze_data_ref_accesses): Support nonconstant init.
2740         (new_stmt_vec_info): Initialize vect_dr_base field.
2741         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
2742         (get_vectype_for_scalar_type): Check for BLKmode.
2743         * tree-chrec.h (initial_condition_in_loop_num): Declare.
2744         * tree-chrec.c (initial_condition_in_loop_num): New function.
2745         (chrec_component_in_loop_num): New function.
2746         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
2747         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
2748         to be pointer to varray_type.
2749
2750 2004-09-19  Jan Hubicka  <jh@suse.cz>
2751
2752         * basic-block.h (update_bb_profile_after_threading): Declare.
2753         * cfg.c (update_bb_profile_after_threading): Break out from ...
2754         * cfgcleanup.c (try_forward_edges): ... here; use it.
2755         * tree-ssa-dom.c (thread_across_edge): Use it.
2756         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
2757         profile of the new BB.
2758
2759 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
2760
2761         * tree-ssa-pre.c (insert_into_set): Don't put
2762         is_gimple_min_invariant values into the set.
2763
2764 2004-09-19  Andreas Jaeger  <aj@suse.de>
2765
2766         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
2767         prototype.
2768
2769 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2770
2771         * config/cris/cris.h: Preserve the original spelling in a
2772         quote.
2773
2774 2004-09-18 Jeff Law  <law@redhat.com>
2775
2776         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
2777         global varrays to replace the block local varrays.
2778         (struct dom_walk_block_data): Remove, no longer used.
2779         (get_eq_expr_value): No longer need to pass around pointers to local
2780         varrays.  Callers updated.  Unused markers added to unused parameters.
2781         (record_range, record_equivalences_from_stmt): Likewise.
2782         (record_equivalences_from_incoming_edge): Likewise.
2783         (record_var_is_nonzero): Likewise.  Update now that we have a
2784         single global varray of SSA_NAMEs that need restoring.
2785         (dom_opt_initialize_block_local_data): Kill, no longer used.
2786         (tree_ssa_dominator_optimize): Initialize new global varrays.
2787         Update callbacks in dominator walker structure.
2788         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
2789         VRP_VARIABLES_STACK.
2790         (restore_nonzero_vars_to_original_value): Update now that we have
2791         a single global varray of SSA_NAMEs that need restoring.
2792         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
2793         Remove unused variables.
2794         (optimize_stmt): Remove unused variable.
2795
2796 2004-09-18  Jan Hubicka  <jh@suse.cz>
2797
2798         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
2799
2800         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
2801         verify_cgraph call.
2802
2803 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2804
2805         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
2806         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
2807         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
2808         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
2809         tree-ssa-operands.c, tree-ssa-phiopt.c,
2810         tree-ssa-threadupdate.c: Fix comment typos.
2811
2812 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
2813
2814         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
2815         config/arm/README-interworking, config/arm/arm-cores.def,
2816         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
2817         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
2818         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
2819         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
2820         config/frv/frv.md, config/i386/winnt.c,
2821         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
2822         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
2823         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
2824         config/mcore/mcore.c, config/mips/mips.h,
2825         config/mn10300/mn10300.md, config/pa/pa.c,
2826         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
2827         config/rs6000/rs6000.c, config/sh/symbian.c,
2828         config/sparc/sparc.h: Fix comment typos.  Follow spelling
2829         conventions.
2830
2831 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
2832
2833         PR c/17424
2834         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
2835
2836 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
2837
2838         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
2839         remove TREE_ADDRESSABLE from RESULT_DECL.
2840
2841 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
2842
2843         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
2844
2845 2004-09-18  Jan Hubicka  <jh@suse.cz>
2846
2847         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
2848         NULL.
2849         * tree-ssa-alias.c (init_alias_info): Likewise.
2850         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
2851         (verify_ssa): Likewise.
2852         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
2853
2854 2004-09-18  Jan Hubicka  <jh@suse.cz>
2855
2856         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
2857         huge offset.
2858
2859 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2860
2861         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
2862         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2863         DW_EH_PE_sdata* for data.
2864         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2865
2866 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
2867
2868         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
2869         shared anyway.
2870
2871         PR pch/13361
2872         * c-typeck.c (constructor_asmspec): Delete.
2873         (struct initializer_stack): Delete field 'asmspec'.
2874         (start_init): Delete saving of asmspec.
2875         (finish_init): Don't update constructor_asmspec.
2876         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
2877         * stmt.c (expand_asm): Duplicate strings from tree.
2878         (expand_asm_operands): Likewise.
2879         * tree.c (tree_size): Update computation of size of STRING_CST.
2880         (make_node): Don't make STRING_CST nodes.
2881         (build_string): Allocate string with tree node.
2882         (tree_code_size): Clean up assertions, don't allow requests
2883         for "the size of a STRING_CST".
2884         * tree.def (STRING_CST): Update comment.
2885         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
2886         (tree_string): Place contents of string in tree node.
2887         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
2888         from tree.
2889
2890 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2891
2892         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
2893         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
2894
2895 2004-09-17  Jones Desougi  <jones@ingate.com>
2896
2897         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
2898         * configure, config.in: Regenerate.
2899
2900 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
2901
2902         * tree.c, tree.h (tree_class_strings): Make array const.
2903         Reindent per coding convention.  Move asterisk to proper place
2904         per coding convention.
2905
2906 2004-09-18  Andreas Schwab  <schwab@suse.de>
2907
2908         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
2909         (tree-vectorizer.o): Likewise.
2910         (targhooks.o): Likewise.
2911
2912 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
2913             Zack Weinberg  <zack@codesourcery.com>
2914
2915         * alias.c (find_base_decl): Remove unreachable case '3' block.
2916         * expr.c (safe_from_p): Abort if passed a type.
2917         * tree-gimple.c (recalculate_side_effects): Abort if passed
2918         anything other than an expression.
2919         * tree-ssa-pre.c (phi_translate): Return expr immediately if
2920         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
2921         Abort on un-handled tree classes.
2922         (valid_in_set): Likewise.
2923         * tree.c (tree_code_class_strings): New static data.
2924
2925         * tree.h (enum tree_code_class): New.
2926         (tree_code_class_strings): Declare.
2927         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
2928         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
2929         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
2930         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
2931         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
2932
2933         * tree.def, c-common.def, objc/objc-tree.def: Use
2934         tree_code_class enumeration constants instead of code letters.
2935
2936         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
2937         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
2938         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
2939         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
2940         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
2941         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
2942         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
2943         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
2944         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
2945         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
2946         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
2947         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
2948         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
2949         Update to match.
2950
2951         * LANGUAGES: Add note about change.
2952
2953 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
2954
2955         PR tree-optimization/17319
2956         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
2957         examine pointers on the LHS of an assignment.
2958         (collect_points_to_info_r): Handle RETURN_EXPR.
2959
2960 2004-09-17 Jeff Law  <law@redhat.com>
2961
2962         * tree-ssa-dom.c (const_and_copies_stack): New.
2963         (dom_walk_block_data): Remove const_and_copies field.
2964         (record_const_or_copy): No longer need to pass in varray_type *.
2965         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
2966         Callers updated.
2967         (record_equality): Similarly.
2968         (restore_vars_to_original_value): Similarly.  Revamp to use new
2969         single global stack rather than per-block stacks.
2970         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
2971         (thread_across_edge): Remove now unused parameters.
2972         (dom_opt_initialize_block_local_data): No longer test the block
2973         local CONST_AND_COPIES.
2974         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
2975
2976 2004-09-17  Jan Hubicka  <jh@suse.cz>
2977
2978         PR tree-optimization/17509
2979         * tree-optimize.c (update_inlined_to_pointers): New function.
2980         (tree_rest_of_compilation): Use it.
2981
2982 2004-09-17  Devang Patel  <dpatel@apple.com>
2983
2984         * dbxout.c (get_lang_number): New.
2985         (dbxout_init): Include lang number in N_SO  stab.
2986         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
2987         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
2988
2989 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
2990
2991         PR tree-optimization/17273
2992         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
2993         replacement is a constant.
2994
2995 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2996
2997         * c-tree.h (enum c_typespec_keyword): New.
2998         (struct c_declspecs): Adjust description of "type".  Remove
2999         specbits, explicit_int_p and explicit_char_p.  Rename
3000         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
3001         short_p, signed_p, unsigned_p and complex_p.
3002         (finish_declspecs): New.
3003         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
3004         typename): Call finish_declspecs.
3005         * c-decl.c (finish_declspecs): New.
3006         (declspecs_add_type): Check for combinations which cannot occur in
3007         valid specifier lists.  Update comments.
3008         (shadow_tag_warned): Remove checks done in finish_declspecs.
3009         Don't report useless type name if type defaulted to int.
3010         (grokdeclarator): Remove checks and actions done in
3011         finish_declspecs.  Don't allow for type being NULL.  Update for
3012         datastructures changes.  Initialize decl_attr.
3013         (build_null_declspecs, quals_from_declspecs): Update for
3014         datastructures changes.
3015
3016 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
3017
3018         * doc/extend.texi: Fix duplicated word.
3019
3020 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
3021
3022         * doc/invoke.texi: Remove stray explanation on
3023         -freduce-all-givs and -fmove-all-movables.
3024
3025 2004-09-17  James Morrison  <phython@gcc.gnu.org>
3026
3027         * doc/cfg.texi: Use @smallexample.
3028         * doc/md.texi: Likewise.
3029         * doc/tree-ssa.texi: Likewise.
3030         * doc/extend.texi: Likewise.  Use @r{} in comments.
3031         * doc/trouble.texi: Use @r{} in comments.
3032
3033 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
3034
3035         * configure.ac (gcc_cv_gld_version): Handle whitespace before
3036         "VERSION=".
3037         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
3038         * configure: Regenerate.
3039
3040 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
3041
3042         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
3043         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
3044         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
3045         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
3046         slashes in substitutions.
3047         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
3048
3049 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
3050
3051         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
3052         gimplify.c, lambda-code.c, optabs.c, predict.c,
3053         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
3054         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
3055         conventions.
3056
3057 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
3058
3059         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
3060         doc/extend.texi, doc/install.texi, doc/invoke.texi,
3061         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
3062         doc/trouble.texi: Use @option around options.
3063
3064 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
3065
3066         * Makefile.in (gen-protos.o): Depend on errors.h.
3067
3068 2004-09-17  Steven Bosscher  <stevenb@suse.de>
3069
3070         PR tree-optimization/17513
3071         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
3072         for successors of the entry block.
3073
3074 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
3075
3076         PR rtl-optimization/15187
3077         * ifcvt.c (noce_try_cmove_arith): Exit early if total
3078         insn_rtx_cost of both branches > BRANCH_COST
3079
3080 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
3081
3082         PR tree-optimization/17528
3083         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
3084         erase the may-alias set for a tag when merging it with
3085         another.
3086
3087 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3088
3089         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
3090         for 32-bit TARGET_SHMEDIA.
3091         (call_value): Likewise.
3092
3093 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
3094
3095         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
3096         test apply only to TREE_STATIC and DECL_EXTERNAL.
3097
3098 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3099
3100         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
3101         * basic-block.h (get_dominated_by_region): Declare.
3102         * dominance.c (get_dominated_by_region): New function.
3103         * tree-cfg.c: Include cfglayout.h.
3104         (tree_duplicate_bb): Duplicate also phi nodes.
3105         (struct ssa_name_map_entry): New type.
3106         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
3107         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
3108         allocate_ssa_names, rewrite_to_new_ssa_names_def,
3109         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
3110         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
3111         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
3112         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
3113         rewrite_to_new_ssa_names, allocate_ssa_names,
3114         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
3115         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
3116         (copy_loop_headers): Use tree_duplicate_sese_region.
3117
3118 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
3119
3120         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
3121
3122 2004-09-16 Jeff Law  <law@redhat.com>
3123
3124         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
3125         (rewrite_block_data): Remove, no longer used.
3126         (rewrite_initialize_block_local_data): Remove, no longer used.
3127         (rewrite_initialize_block): Mark parameters as unused as needed.
3128         Change references to the block local block_defs to be block_defs_stack.
3129         Push a marker onto the block_defs_stack.
3130         (ssa_rewrite_initialize_block): Similarly.
3131         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
3132         (ssa_register_new_def): No longer needs varray argument.  Use
3133         block_defs_stack instead.  No longer handle possibly null block_defs
3134         varray.  Reverse order of items we push on the stack to make it
3135         easier to identify our marker.
3136         (register_new_def): No longer handle possibly null block_defs
3137         varray.
3138         (rewrite_finalize_block): Revamp to look for markers in the global
3139         block_defs_stack varray rather than wiping a block local varray.
3140         Mark arguments as unused as needed.
3141         (ssa_rewrite_finalize_block): Similarly.
3142         (rewrite_into_ssa): Update initialization of dom walker structure
3143         to reflect that we don't need block local data anymore.  Initialize
3144         the block_defs_stack varray.
3145         (rewrite_ssa_into_ssa): Similarly.
3146         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
3147         (struct dom_walk_data): Kill block_defs field.
3148         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
3149         (thread_across_edge): Use the global block_defs_stack instead of
3150         the old block_defs varray.
3151         (dom_opt_initialize_block_local_data): Update now that we don't have
3152         block_defs field to check anymore.
3153         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
3154         (restore_currdefs_to_original_value): Use the new block_defs_stack
3155         instead of a block local varray.
3156         (dom_opt_finalize_block): Similarly.
3157         (record_equivalencs_from_phis): Similarly.
3158         (optimize_stmt, register_definitions_for_stmt): Similarly.
3159
3160 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
3161
3162         PR tree-optimization/17517
3163         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
3164         coalesce same-root variables without checking for abnormal PHI usage.
3165
3166 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
3167
3168         * cfgloop.h (duplicate_loop):  Add prototype.
3169         * cfgloopmanip.c (duplicate_loop): Make non-static.
3170         * lambda-code.c (perfect_nestify): Factor out test whether
3171         we can handle this loop into separate function.
3172         Call it.
3173         (can_convert_to_perfect_nest): New function.
3174         (replace_uses_of_x_with_y): Add modify_stmt call.
3175         * tree-loop-linear.c (linear_transform_loops): Call
3176         rewrite_into_loop_closed_ssa and free_df.
3177
3178 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
3179
3180         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
3181         loop invariant as well.
3182         (perfect_nestify): new function.
3183         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
3184         upper bounds, and steps.
3185         Set outerinductionvar properly.
3186         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
3187         parameters.
3188         Return NULL if we need a perfect loop and can't make one.
3189         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
3190         (not_interesting_stmt): New function.
3191         (phi_loop_edge_uses_def): Ditto.
3192         (stmt_uses_phi_result): Ditto.
3193         (stmt_is_bumper_for_loop): Ditto.
3194         (perfect_nest_p): Ditto.
3195         (nestify_update_pending_stmts): Ditto.
3196         (replace_uses_of_x_with_y): Ditto.
3197         (stmt_uses_op): Ditto.
3198         (perfect_nestify): Ditto.
3199         * lambda-mat.c (lambda_matrix_id_p): New function.
3200         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
3201         * lambda.h: Update prototypes.
3202         * tree-loop-linear (linear_transform_loop): Use new
3203         perfect_nest_p. Detect and ignore identity transform.
3204         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
3205
3206 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
3207
3208         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
3209         Gather also strides of accessed data.  Pass in the data references
3210         array.
3211         (try_interchange_loops): Add a new heuristic for handling the temporal
3212         locality.  Pass in the data references array.
3213         (linear_transform_loops): Pass the data references array to
3214         try_interchange_loops.
3215
3216 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
3217
3218         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
3219
3220 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
3221
3222         * doc/c-tree.texi (Classes): Remove index entries for
3223         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
3224
3225 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3226
3227         * fold-const.c (fold): Fold difference of addresses.
3228         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
3229         get_inner_reference.
3230         * tree-ssa-loop-ivopts.c (peel_address): Removed.
3231         (ptr_difference_const): Moved to fold-const.c.
3232         (split_address_cost): Use get_inner_reference instead of peel_address.
3233         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
3234         * tree.h (ptr_difference_const): Export.
3235
3236         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
3237         variable type to the dump.  Fix indentation.
3238         (idx_find_step): Handle nonconstant array_ref_element_size and
3239         array_ref_low_bound.
3240         (idx_record_use): Handle array_ref_element_size and
3241         array_ref_low_bound.
3242         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
3243         statements correctly.
3244         (get_computation_at, iv_value): Do not unshare expressions here.
3245         (rewrite_use_outer): Unshare the expression before it is emitted
3246         to code.
3247         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
3248         Moved to tree.c.
3249         * tree.c (unsigned_type_for, signed_type_for): Moved from
3250         tree-ssa-loop-niter.c.  Use langhooks.
3251         * tree.h (signed_type_for): Export.
3252
3253 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
3254
3255         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
3256         prototype.
3257
3258 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
3259
3260         PR target/11572
3261         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
3262         Add two parameters to extra_includes.
3263         (C_INCPATH_INIT): Remove.
3264         * c-incpath.c (register_include_chains): Call extra_pre_includes
3265         before adding the standard include directory.
3266         Update call to extra_includes.
3267         (!defined TARGET_EXTRA_INCLUDES): Update
3268         hook_void_charptr_charptr_int and add !define
3269         TARGET_EXTRA_PRE_INCLUDES.
3270         (!define TARGET_EXTRA_INCLUDES): Define as
3271         hook_void_charptr_charptr_int.
3272         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
3273         (target_c_incpath): Always declare.
3274         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
3275         empty function.
3276         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
3277         * config/darwin.h: (darwin_register_frameworks): Update for
3278         the two new parameters.
3279         (darwin_register_objc_includes): Add prototype.
3280         (TARGET_EXTRA_PRE_INCLUDES): Define.
3281         * config/darwin-c.c (darwin_register_objc_includes): New function.
3282         (darwin_register_frameworks): Update for the two new parameters.
3283         (target_c_incpath): Remove.
3284         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
3285         the compile line.
3286         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
3287         parameters.
3288         (TARGET_EXTRA_PRE_INCLUDES): Document.
3289
3290         * gcc.c (spec_function): Add replace-outfile.
3291         (replace_outfile_spec_function): New function.
3292         * config/darwin.h (LINK_SPEC): Add replace
3293         -lobjc with -lobjc-gnu if -fgnu-runtime is
3294         supplied.
3295         * invoke.texi (replace-outfile): Document.
3296
3297 2004-09-13  Jan Hubicka  <jh@suse.cz>
3298
3299         * predict.c (expr_expected_value, strip_builtin_expect): New function.
3300         (tree_predict_by_opcode): Use it.
3301         (tree_estimate_probability): Add, for now disabled,
3302         strip_builtin_expect call.
3303
3304 2004-09-15  James E Wilson  <wilson@specifixinc.com>
3305
3306         PR target/17455
3307         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
3308         if current_function_decl is a sibcall.
3309
3310 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
3311
3312         * varasm.c (default_function_rdodata_section): Make sure to pass
3313         along a decl for a link-once section.
3314
3315 2004-09-15  Richard Henderson  <rth@redhat.com>
3316
3317         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
3318         warning with code disable.  Fix formatting.
3319
3320 2004-09-15  Steven Bosscher  <stevenb@suse.de>
3321
3322         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
3323         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
3324         after propagating into an ADDR_EXPR.
3325
3326 2004-09-15  Andrew Pinski  <apinski@apple.com>
3327
3328         PR rtl-opt/17427
3329         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
3330         Move it out of gcc_assert.
3331
3332 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3333
3334         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
3335         except.c, fold-const.c, function.c, langhooks.c, params.c,
3336         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
3337         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
3338         for quoting in diagnostics going through pretty-print.c.  Use ''
3339         for quoting in other diagnostic text.
3340         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
3341         translation.
3342         * Makefile.in (langhooks.o): Update dependencies.
3343         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
3344         formats.
3345
3346 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
3347
3348         * configure.ac: Check for COMDAT support.  Robustify check for
3349         SHF_MERGE support.
3350         * configure: Regenerated.
3351         * config.in: Likewise.
3352         * langhooks-def.h (lhd_comdat_group): New function.
3353         (LANG_HOOKS_COMDAT_GROUP): New macro.
3354         (LANG_HOOKS_DECLS): Use it.
3355         * langhooks.c (lhd_comdat_group): Define.
3356         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
3357         * output.h (named_section_flags): Make it a macro.
3358         (named_section_real): New function.
3359         (default_no_named_section): Add decl parameter.
3360         (default_elf_asm_named_section): Likewise.
3361         (default_coff_asm_named_section): Likewise.
3362         (default_pe_asm_named_section): Likewise.
3363         * target.h (gcc_target): Adjust type of named_section.
3364         * varasm.c (named_section_flags): Rename to named_section_real.
3365         Add decl parameter.
3366         (default_no_named_section): Add decl parameter.
3367         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
3368         with the case that ASM_COMMENT_START is "@".
3369         (default_coff_asm_named_section): Add decl parameter.
3370         (default_pe_asm_named_section): Likewise.
3371         * config/alpha/alpha.c (vms_asm_named_section): Add decl
3372         parameter.
3373         (unicosmk_asm_named_section): Likewise.
3374         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
3375         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
3376         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
3377         * config/cris/cris-protos.h (cris_target_asm_named_section):
3378         Likewise.
3379         * config/cris/cris.c (cris_target_asm_named_section):
3380         Likewise.
3381         * config/darwin/darwin-protos.h (darwin_asm_named_section):
3382         Likewise.
3383         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
3384         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
3385         * config/i386/i386-protos.h (i386_pe_asm_named_section):
3386         Likewise.
3387         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
3388         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
3389         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
3390         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
3391         Likewise.
3392         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
3393         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
3394         * cp/cp-tree.h (cxx_comdat_group): Declare.
3395         * cp/decl.c (cxx_comdat_group): New function.
3396
3397 2004-09-15  Jan Hubicka  <jh@suse.cz>
3398
3399         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
3400         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
3401
3402         * tree-cfg.c (remove_bb): Release SSA defs.
3403
3404 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
3405
3406         * doc/tm.texi: Follow spelling conventions.
3407
3408 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
3409
3410         * tree-ssa-dom.c: Fix comment typos.
3411
3412 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
3413
3414         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
3415         include ccr.
3416         (ppc_fallback_frame_state): Save location of CR.
3417
3418 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
3419
3420         * expr.c (string_constant): Handle also read-only variables
3421         initialized to string literals.
3422
3423         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
3424         into memcpy (x, y, 1) if memcpy can be expanded inline.
3425
3426 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3427
3428         PR tree-optimization/17468
3429         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
3430         definition inside a block precede uses.
3431         * tree-tailcall.c (adjust_return_value): Emit statements in the
3432         correct order.
3433
3434 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
3435
3436         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
3437
3438 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
3439
3440         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
3441
3442 2004-09-14 Jeff Law  <law@redhat.com>
3443
3444         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
3445         (struct dom_walk_block_data): Remove avail_exprs member.
3446         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
3447         (lookup_avail_expr): No longer need to pass in address of
3448         the block local available exprs stack.  All callers changed.
3449         (simplify_cond_and_lookup_avail_expr): Similarly.
3450         (simplify_switch_and_lookup_avail_expr): Similarly.