OSDN Git Service

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