OSDN Git Service

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