OSDN Git Service

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