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