OSDN Git Service

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