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