OSDN Git Service

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