1 2004-09-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3 PR rtl-optimization/17625
4 * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
6 2004-09-24 Andrew Pinski <pinskia@physics.uc.edu>
9 * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
10 Reject if any of the operands occur in an abnormal PHI.
12 2004-09-24 Andreas Schwab <schwab@suse.de>
14 * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
17 2004-09-24 Eric Botcazou <ebotcazou@libertysurf.fr>
19 * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
20 if the GNU assembler is used.
21 (sparc-*-solaris2*): Likewise.
22 * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
23 (dbxout_function_end): Protect N_ENSYM with it.
24 (dbxout_begin_prologue): Protect N_BNSYM with it.
25 * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
26 * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
27 * config/sparc/sol2-gas.h: New file.
29 2004-09-23 H.J. Lu <hongjiu.lu@intel.com>
32 * Makefile.in (@set_gcc_lib_path@): Added.
34 * configure.ac: Include ../config/gcc-lib-path.m4. Use
35 TL_AC_GNU_MAKE_GCC_LIB_PATH.
36 * configure: Regenerated.
38 2004-09-24 Joseph S. Myers <jsm@polyomino.org.uk>
41 * c-typeck.c (build_c_cast): Improve wording of
42 -Wbad-function-cast diagnostic.
44 2004-09-23 Hans-Peter Nilsson <hp@axis.com>
47 * config/cris/cris.md (moverside, movemside): Rename variable
48 "reg" to "otherop". To generate canonical RTX, check that otherop
49 isn't constant instead of checking that operand 1 is a register.
51 2004-09-23 Jakub Jelinek <jakub@redhat.com>
53 * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
55 2004-09-23 Diego Novillo <dnovillo@redhat.com>
56 Jakub Jelinek <jakub@redhat.com>
58 * tree-flow.h (find_new_referenced_vars): Add prototype.
59 * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
61 * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
63 (mark_new_vars_to_rename): Walk through all operands.
64 * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
65 (execute_fold_all_builtins): Use it.
66 (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
68 2004-09-23 P.J. Darcy <darcypj@us.ibm.com>
70 * gthr-tpf.h: New file.
71 * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
72 * gthr.h: Use gthr-tpf.h on TPF OS.
74 2004-09-23 Jeff Law <law@redhat.com>
76 * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
77 than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
78 (substitute_and_fold): Likewise.
79 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
80 except invariants from SSA_NAME_VALUE.
81 (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
82 and SET_SSA_NAME_EQUIV.
83 (restore_vars_to_original_value, record_const_or_copy): Likewise.
84 (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
85 (record_equality, cprop_into_successor_phis): Likewise.
86 (record_equivalences_from_stmt, cprop_operand): Likewise.
87 (lookup_avail_expr): Likewise.
88 * tree-ssa-pre.c (fini_pre): Remove everything except invariants
90 * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
91 (struct tree_ssa_name): Kill EQUIV field. Remove GGC skip
92 annotation from the VALUE_HANDLE field.
94 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
98 * tree.c (reconstruct_complex_type): Remove extra "this".
99 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
100 Add V4SFmode to case statement.
102 2004-09-23 Joseph S. Myers <jsm@polyomino.org.uk>
105 * doc/extend.texi, doc/invoke.texi: Document interaction of
106 -fno-builtin with format checks. Note that built-in functions
107 have effects beyond generating code that avoids calls to those
110 2004-09-23 Frank Ch. Eigler <fche@redhat.com>
112 PR tree-optimization/17533
113 * dominance.c (verify_dominators): Tolerate even more incorrect
114 dominance data during error message printing.
115 * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
116 and edges more correctly.
118 2004-09-23 Dorit Naishlos <dorit@il.ibm.com>
120 * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
122 * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
123 MISALIGNED_INDIRECT_REF.
124 * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
125 * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
127 * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
128 (find_interesting_uses_address): Likewise.
129 * fold-const.c (non_lvalue, operand_equal_p): Likewise.
130 (build_fold_addr_expr_with_type): Likewise.
131 * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
132 * print-rtl.c (print_mem_expr): Likewise.
133 * tree-dump.c (dequeue_and_dump): Likewise.
134 * tree-eh.c (tree_could_trap_p): Likewise.
135 * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
136 * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
137 * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
139 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
140 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
141 * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
142 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
143 (add_address_candidates, rewrite_address_base): Likewise.
144 * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
146 * tree.c (staticp, build1_stat): Likewise.
148 * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
149 * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
150 * tree-ssa-operands.c (get_expr_operands): Likewise.
151 * expr.c (expand_expr_real_1): Likewise.
153 * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
155 (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
157 (expand_ternary_op): New function.
158 * genopinit.c (optabs): Handle the new optabs.
159 * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
160 (init_optabs): Initialize vec_realign_load_optab.
161 (expand_ternary_op): New functions.
163 * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
164 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
165 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
166 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
167 * target.h (struct vectorize): New member for struct gcc_target.
168 (misaligned_mem_ok): New member for targetm.vectorize.
169 (builtin_mask_for_load): Likewise.
170 (builtin_mask_for_store): Likewise.
171 * targethooks.c (default_vect_misaligned_mem_ok): New function.
172 * targethooks.h (default_vect_misaligned_mem_ok): New function.
174 * config/rs6000/altivec.md (build_vector_mask_for_load): New
176 (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
177 (vec_realign_load_v16qi): New define_insn.
178 * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
179 (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
180 * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
181 (altivec_builtin_mask_for_store): New variables.
182 (rs6000_builtin_mask_for_load): New function. Implements
183 TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
184 (rs6000_builtin_mask_for_store): New function. Implements
185 TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
186 (rs6000_expand_builtin): Expand the target builtins
187 builtin_mask_for_load and builtin_mask_for_store.
188 (altivec_init_builtins): Initialize the new target builtins.
189 * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
190 Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
192 * tree-vectorizer.c (vect_create_data_ref): Renamed to
193 vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
194 (vect_create_addr_base_for_vector_ref): Additional argument (offset).
195 (vectorizable_store): Call vect_create_data_ref_ptr with additional
196 arguments, and create an indirect_ref with its return value data_ref.
197 Check aligned_access_p.
198 (vectorizable_load): Handle misaligned loads, using software-pipelined
199 scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
200 vec_realign_load_optab is supported, or using a scheme without
201 software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
202 misaligned_mem_ok is supported.
204 (vect_finish_stmt_generation): Typo.
205 (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
206 (vect_analyze_data_refs_alignment): Don't fail vectorization in the
207 presence of misaligned loads.
208 (vect_analyze_data_ref_access): Add check for constant init.
209 (vect_get_symbl_and_dr): Remove duplicate line.
210 * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
212 2004-09-23 Kazu Hirata <kazu@cs.umass.edu>
214 * builtins.c: Fix a comment typo.
216 2004-09-23 Jan Hubicka <jh@suse.cz>
218 * profile.c (branch_prob): Do not verify flow info in the middle of the
221 2004-09-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
223 * cfgloop.h (update_single_exits_after_duplication): Declare.
224 (loopify, split_loop_bb): Declaration changed.
225 * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
227 (loopify): Added redirect_all_edges argument.
228 (update_single_exits_after_duplication): Export.
229 * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
230 * tree-flow.h (tree_duplicate_loop_to_header_edge,
231 tree_ssa_loop_version): Declare.
232 * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
233 set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
234 lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
235 lv_update_pending_stmts, tree_ssa_loop_version): New functions.
237 * tree-ssa-loop-unswitch.c: New file.
238 * Makefile.in (tree-ssa-loop-unswitch.o): Add.
239 * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
240 * tree-flow.h (tree_ssa_unswitch_loops): Declare.
241 * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
242 * tree-pass.h (pass_unswitch): Declare.
243 * tree-ssa-loop.c (tree_ssa_loop_unswitch,
244 gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
245 * doc/passes.texi: Documen tree level loop unswitching.
247 2004-09-23 Kazu Hirata <kazu@cs.umass.edu>
249 * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
251 2004-09-22 Eric Christopher <echristo@redhat.com>
253 * builtins.c (simplify_builtin_va_start): Remove.
254 (simplify_builtin): Ditto.
255 (fold_builtin_strchr): Ditto.
256 (simplify_builtin_*): Rename remainders to fold_builtin_*.
257 (expand_builtin): Fix up for above changes.
258 (fold_builtin_1): Add new folders. Change for above.
259 (expand_builtin_va_start): Call fold_builtin_next_arg.
260 * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
261 * tree.h: Remove prototype for simplify_builtin.
263 2004-09-23 Jan Hubicka <jh@suse.cz>
266 * dwarf2out.c (dwarf2out_finish): Deal with nested functions
267 of fully inlined functions.
268 * tree-inline.c (inline_forbidden_p_1): Nested functions can be
271 * cfgexpand.c (add_reg_br_prob_note): New function.
272 (expand_gimple_cond_expr): Use it.
273 (tree_expand_cfg): No longer kill the profile.
274 * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
275 only if it is present.
276 * passes.c (rest_of_handle_loop_optimize): Kill the profile.
277 * predict.c (combine_predictions_for_insn): Set the probabilities
278 based on REG_BR_PROB note if present.
279 * predict.c (branch_prob): Profile is read only with
280 flag_branch_probabilities.
282 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
284 * aclocal.m4: Add in gettext's m4 includes.
285 (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
286 * configure.ac: Add in check for iconv.h
287 * configure: Regenerate.
289 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
291 * aclocal.m4: Update for rename of gettext-sister.m4.
293 2004-09-22 Daniel Berlin <dberlin@dberlin.org>
295 Fix PR tree-optimization/17587
296 * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
297 (insert_aux): Instead of here.
299 2004-09-22 Diego Novillo <dnovillo@redhat.com>
301 PR tree-optimization/16721
302 * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
303 * tree-ssa-alias.c (create_memory_tag): Move setting of
304 TREE_THIS_VOLATILE ...
305 (get_tmt_for): ... here.
307 2004-09-22 Eric Botcazou <ebotcazou@libertysurf.fr>
309 * config/sparc/sparc.md (cmove splitter): Fix formatting.
310 (conditional_trap expander): Reject inappropriate CCmodes.
311 (conditional trap insn): Use V9 syntax if possible.
313 2004-09-22 Joseph S. Myers <jsm@polyomino.org.uk>
316 * c-typeck.c (build_component_ref): Don't special-case
319 2004-09-22 Frank Ch. Eigler <fche@redhat.com>
321 * dominance.c (verify_dominators): Don't SEGV if recount_dominator
324 2004-09-22 Kazu Hirata <kazu@cs.umass.edu>
326 * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
327 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
328 TRUTH_XOR_EXPR): Mention the restriction on types.
330 2004-09-22 Matt Austern <austern@apple.com>
332 * config/darwin.c (darwin_make_decl_one_only):
333 Allow coalesced symbol to appear in static archive's table of contents
335 2004-09-22 Kazu Hirata <kazu@cs.umass.edu>
337 PR tree-optimization/17512
338 * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
341 2004-09-22 David Edelsohn <edelsohn@gnu.org>
343 * dbxout.c (get_lang_number): Do not define if
344 DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
346 2004-09-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
349 * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
350 builtin_define ("__USE_INIT_FINI__").
352 2004-09-22 P.J. Darcy <darcypj@us.ibm.com>
354 * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
355 * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
356 * config/s390/s390.h (TARGET_TPF): New macro.
357 * config/s390/s390.md ("eh_return"): New expander.
358 * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
359 unwind-dw2-fde-glibc.c. Add config/s390/tpf-eh.c.
360 (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
361 * config/s390/tpf.h (TARGET_TPF): Define to 1.
362 (STACK_POINTER_OFFSET): Increase to 448.
363 (TARGET_DEFAULT): Set -mtpf-trace on as default.
364 (TPF_LOC_DIFF_OFFSET): New macro.
365 (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
367 (__isPATrange): Add prototype.
368 (MD_FALLBACK_FRAME_STATE_FOR): Define.
369 * config/s390/tpf-eh.c: New file.
371 2004-09-22 Diego Novillo <dnovillo@redhat.com>
373 * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
374 operands in an integer comparison.
375 * tree-cfg.c (find_taken_edge): Call fold() to determine
376 whether the predicate is known.
378 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
380 * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
381 * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
382 Create build and doc directories along with the language directories.
383 Don't create doc directory separately.
384 * configure: Regenerate.
385 * Makefile.in: Create all object and executables files built
386 with the build compiler in a build/ directory.
387 (genobjnames): Add missing build objects.
388 (STAGESTUFF): Don't stage the gen* programs.
389 (ggc-none.o): Define dependencies for the target compiler.
390 (build-print-rtl.o): Rename to build/print-rtl.o.
391 (build-errors.o): Rename to build/errors.o.
392 (build-varray.o): Rename to build/varray.o.
393 (maintainerclean): Delete the contents of the build directory.
394 ($(genobjs): %.o): Explicitly use -o.
395 (build/insn-conditions.o): Delete specfic rule to use generic rule.
396 (build/gengtype-lex.o): Likewise.
397 (build/gengtype-yacc.o): Likewise.
398 (build/gcov-iov.o): Likewise.
400 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
402 * vec.h (VEC_space): Return true if there _is_ space.
403 (VEC_reserve): Adjust.
405 2004-09-22 Richard Sandiford <rsandifo@redhat.com>
407 * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
408 use FPRs for scalar, complex and vector types only.
410 2004-09-21 Jeff Law <law@redhat.com>
412 * tree-ssa-dom.c (opt_stats): Move so that it lives just after
413 the opt_stats_d structure.
414 (vrp_data): Change from a varray into a hash table.
415 (vrp_hash_elt): New structure for elements in the vrp hash table.
416 (vrp_hash, vrp_eq):New functions for hashing and testing equality
417 in the vrp hash table.
418 (tree_ssa_dominator_optimize): Initialize VRP_DATA. Reorganize
419 initialization slightly to make it easier to read. No longer need
420 to grow/clear the varray. Instead empty and delete the hash table.
421 (dom_opt_finalize_block): Update due to change of VRP_DATA from
422 a varray to a hash table.
423 (simplify_cond_and_loop_avail_expr, record_range): Similarly.
425 * tree-ssa-ccp.c (get_default_value): If we have a constant
426 value recorded for an SSA_NAME, then use that constant as
427 the initial lattice value.
428 (substitute_and_fold): Transfer equivalences discovered into
431 * tree.h (SSA_NAME_EQUIV): Add comments.
432 (SET_SSA_NAME_EQUIV): Similarly.
434 2004-09-21 David Edelsohn <edelsohn@gnu.org>
436 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
438 * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
440 2004-09-21 Mark Mitchell <mark@codesourcery.com>
442 * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
443 (finish_decl): Likewise.
445 2004-09-21 Devang Patel <dpatel@apple.com>
447 * tree.def (VEC_COND_EXPR): New tree node.
448 * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
450 2004-09-21 Stan Shebs <shebs@apple.com>
452 * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
453 * config/rs6000/darwin-world.asm: Likewise.
455 2004-09-21 Daniel Berlin <dberlin@dberlin.org>
457 * tree-ssa.c (verify_def): Use print_generic_stmt,
458 not debug_generic_stmt.
460 (verify_phi_args): Ditto.
463 2004-09-21 Paul Brook <paul@codesourcery.com>
465 * varasm.c (default_assemble_integer): Return false for values wider
466 than the target word size. Works around GAS bug.
468 2004-09-21 Zack Weinberg <zack@codesourcery.com>
470 * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
472 * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
475 2004-09-21 Daniel Berlin <dberlin@dberlin.org>
477 * c-typeck.c (build_function_call): Give name of object
478 we are attempting to call in error message.
479 * c-objc-common.c (c_tree_printer): Call pp_expression,
480 not return false, for 'E' case.
482 2004-09-21 Steven Bosscher <stevenb@suse.de>
484 PR rtl-optimization/17482
485 * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
486 load_killed_in_block_p): Clarify comments.
487 (record_last_reg_set_info): Make static inline.
488 (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
489 (record_opr_changes): New function to replace the above.
490 (compute_hash_table): Clarify comments. Use record_opr_changes.
491 (reg_set_between_after_reload_p): Clean up.
492 (reg_used_between_after_reload_p): Likewise.
493 (eliminate_partially_redundant_load): Clarify comments.
495 2004-09-21 Eric Botcazou <ebotcazou@libertysurf.fr>
497 PR rtl-optimization/17266
498 * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
500 2004-09-21 Uros Bizjak <uros@kss-loka.si>
502 PR rtl-optimization/14851
503 * rtlanal.c (commutative_operand_precedence): Calculate
504 precedence of stripped constant.
506 2004-09-20 Jeff Law <law@redhat.com>
507 Jan Hubicka <jh@suse.cz>
509 * tree-ssanames.c (make_ssa_name): No longer need to clear, then
510 initialize key elements here.
511 (release_ssa_name): Zero the released SSA_NAME here.
512 * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
513 (struct tree_ssa_name): Add new "equiv" field.
514 * tree-ssa-dom.c (const_and_copies): Kill the global varray.
515 (tree_ssa_dominator_optimize): No longer allocate, resize or
516 clear CONST_AND_COPIES.
517 (get_value_for, set_value_for): Kill.
518 (thread_across_edge): Get/set the equivalency using
519 SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
520 (restore_vars_to_original_value): Likewise.
521 (record_equivalences_from_phis): Likewise.
522 (record_dominating_conditions): Likewise.
523 (record_const_or_copy, record_equality): Likewise.
524 (lookup_avail_expr): Likewise.
525 (record_equivalences_from_stmt, cprop_operand): Likewise.
526 (cprop_into_successor_phis): No longer need to pass around
527 CONST_AND_COPIES. Callers updated. Get equivalences via
529 (cprop_into_phis): Likewise.
531 2004-09-20 Matt Austern <austern@apple.com>
532 Zack Weinberg <zack@codesourcery.com>
534 * c-common.c (fix_string_type): Build the unqualified array
535 type unconditionally, then use c_build_qualified_type to get
536 the proper const-qualified variant, and set its
537 TYPE_MAIN_VARIANT to refer to the unqualified type.
538 * c-lex.c (c_lex_return_raw_string): New global.
539 (c_lex_with_flags): Honor it.
540 * c-pragma.h: Declare it.
542 2004-09-20 Daniel Berlin <dberlin@dberlin.org>
544 * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
546 2004-09-21 Jan Hubicka <jh@suse.cz>
549 * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
550 (tree_rest_of_compilation): Cleanup.
552 2004-09-20 Ulrich Weigand <uweigand@de.ibm.com>
554 * config/s390/s390.c (s390_select_rtx_section): Remove.
555 (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
557 2004-09-20 Kaz Kojima <kkojima@gcc.gnu.org>
559 * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
560 note to pretend a direct save from the original register when an
561 intermediate register is used for the save.
563 2004-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
565 * tsystem.h (alloca): Provide a default definition.
568 2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
569 * unwind-dw2.c: Call __builtin_alloca, not alloca.
571 2004-09-20 Andrew Pinski <pinskia@physics.uc.edu>
574 * tree-ssa-copy.c (may_propagate_copy): Only allow if the
575 aliasing sets are the same rather than just conflicting.
577 2004-09-20 Jan Hubicka <jh@suse.cz>
581 * cgraph.c (cgraph_unnest_node): New function.
582 (c_finalize): Rename to ....
583 (c_warn_unused_result_recursivly): ... this one; do only the warning
584 (finish_function): Finalize the toplevel function; do not lower nested tree.
585 * cgraph.h (cgraph_unnest_node): Declare.
586 * cgraphunit.c (decide_is_function_needed): Do not use cgraph
587 nestedness datastructure.
588 * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
589 * reload1.c (set_label_offsets): Fix call of set_label_offsets.
590 * tree-nested.c (finlize_nesting_tree_1): Use un-nesting code.
592 2004-09-20 Richard Henderson <rth@redhat.com>
594 * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
595 from some_small_symbolic_operand_1; export.
596 (some_small_symbolic_operand): Remove.
597 * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
599 * config/alpha/predicates.md (some_small_symbolic_operand): New.
601 2004-09-20 Jan Hubicka <jh@suse.cz>
603 * predict.c (return_prediction): New function.
604 (apply_return_prediction): Likewise.
605 (tree_bb_level_predictions): Likewise.
606 (tree_estimate_probability): Add noreturn exit edges; call
607 bb_level_predictions; fix logic of return heuristics.
608 (predict_paths_leading_to): Rescuesce from old CVS version of
609 process_note_prediction function.
610 * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
612 2004-09-20 Andreas Krebbel <krebbel1@de.ibm.com>
614 * config/s390/s390.c (s390_frame_info): Added alignment statement for
615 floating point register area on stack.
617 2004-09-20 Jakub Jelinek <jakub@redhat.com>
619 * predict.c (expr_expected_value): Use *_CLASS_P macros.
621 2004-09-20 Daniel Berlin <dberlin@dberlin.org>
623 * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
624 generating useless garbage.
626 2004-09-20 Paolo Bonzini <bonzini@gnu.org>
628 * builtins.c (fold_builtin): Call the new omonymous
629 target hook for machine-dependent built-ins.
630 * target-def.h (TARGET_FOLD_BUILTIN): New.
631 * target.h (struct gcc_target): Add the fold_builtin hook.
632 * targhooks.c (default_fold_builtin): New.
633 * targhooks.h (default_fold_builtin): Declare it.
635 2004-09-20 Kazu Hirata <kazu@cs.umass.edu>
637 * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
640 2004-09-20 Richard Sandiford <rsandifo@redhat.com>
643 * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
645 2004-09-20 Jan Hubicka <jh@suse.cz>
647 * predict.c (estimate_probability): Remove unnecesary code.
649 2004-09-19 Ira Rosen <irar@il.ibm.com>
651 * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
652 (STMT_VINFO_VECT_DR_BASE): Declare.
653 (VECT_SMODULO): Declare.
654 * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
655 (vect_compute_array_base_alignment): New function.
656 (vect_analyze_data_ref_access): Check array indices. Remove one
657 dimensional arrays restriction.
658 (vect_get_ptr_offset): New function.
659 (vect_get_symbl_and_dr): New function.
660 (vect_get_base_and_bit_offset): Support additional data refs. Renamed
661 (former name vect_get_base_decl_and_bit_offset).
662 (vect_create_index_for_array_ref): Removed.
663 (vect_create_index_for_vector_ref): New function.
664 (vect_create_addr_base_for_vector_ref): New function.
665 (vect_create_data_ref): Handle additional data refs. Call
666 vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
667 (vect_compute_data_ref_alignment): Support the changes. Call
668 vect_get_base_and_bit_offset.
669 (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
670 data refs. Store vect_dr_base.
671 (vect_analyze_data_ref_accesses): Support nonconstant init.
672 (new_stmt_vec_info): Initialize vect_dr_base field.
673 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
674 (get_vectype_for_scalar_type): Check for BLKmode.
675 * tree-chrec.h (initial_condition_in_loop_num): Declare.
676 * tree-chrec.c (initial_condition_in_loop_num): New function.
677 (chrec_component_in_loop_num): New function.
678 (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
679 * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
680 to be pointer to varray_type.
682 2004-09-19 Jan Hubicka <jh@suse.cz>
684 * basic-block.h (update_bb_profile_after_threading): Declare.
685 * cfg.c (update_bb_profile_after_threading): Break out from ...
686 * cfgcleanup.c (try_forward_edges): ... here; use it.
687 * tree-ssa-dom.c (thread_across_edge): Use it.
688 * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
689 profile of the new BB.
691 2004-09-19 Daniel Berlin <dberlin@dberlin.org>
693 * tree-ssa-pre.c (insert_into_set): Don't put
694 is_gimple_min_invariant values into the set.
696 2004-09-19 Andreas Jaeger <aj@suse.de>
698 * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
701 2004-09-18 Kazu Hirata <kazu@cs.umass.edu>
703 * config/cris/cris.h: Preserve the original spelling in a
706 2004-09-18 Jeff Law <law@redhat.com>
708 * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
709 global varrays to replace the block local varrays.
710 (struct dom_walk_block_data): Remove, no longer used.
711 (get_eq_expr_value): No longer need to pass around pointers to local
712 varrays. Callers updated. Unused markers added to unused parameters.
713 (record_range, record_equivalences_from_stmt): Likewise.
714 (record_equivalences_from_incoming_edge): Likewise.
715 (record_var_is_nonzero): Likewise. Update now that we have a
716 single global varray of SSA_NAMEs that need restoring.
717 (dom_opt_initialize_block_local_data): Kill, no longer used.
718 (tree_ssa_dominator_optimize): Initialize new global varrays.
719 Update callbacks in dominator walker structure.
720 (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
722 (restore_nonzero_vars_to_original_value): Update now that we have
723 a single global varray of SSA_NAMEs that need restoring.
724 (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
725 Remove unused variables.
726 (optimize_stmt): Remove unused variable.
728 2004-09-18 Jan Hubicka <jh@suse.cz>
730 * tree-cfg.c (thread_jumps): Fix updating of the profile.
732 * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
735 2004-09-18 Kazu Hirata <kazu@cs.umass.edu>
737 * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
738 gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
739 optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
740 tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
741 tree-ssa-operands.c, tree-ssa-phiopt.c,
742 tree-ssa-threadupdate.c: Fix comment typos.
744 2004-09-18 Kazu Hirata <kazu@cs.umass.edu>
746 * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
747 config/arm/README-interworking, config/arm/arm-cores.def,
748 config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
749 config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
750 config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
751 config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
752 config/frv/frv.md, config/i386/winnt.c,
753 config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
754 config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
755 config/m68hc11/m68hc11.md, config/m68k/m68k.c,
756 config/mcore/mcore.c, config/mips/mips.h,
757 config/mn10300/mn10300.md, config/pa/pa.c,
758 config/pa/pa64-regs.h, config/pdp11/pdp11.c,
759 config/rs6000/rs6000.c, config/sh/symbian.c,
760 config/sparc/sparc.h: Fix comment typos. Follow spelling
763 2004-09-18 Joseph S. Myers <jsm@polyomino.org.uk>
766 * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
768 2004-09-18 Diego Novillo <dnovillo@redhat.com>
770 * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
771 remove TREE_ADDRESSABLE from RESULT_DECL.
773 2004-09-18 Diego Novillo <dnovillo@redhat.com>
775 * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
777 2004-09-18 Jan Hubicka <jh@suse.cz>
779 * tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return
781 * tree-ssa-alias.c (init_alias_info): Likewise.
782 * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
783 (verify_ssa): Likewise.
784 * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
786 2004-09-18 Jan Hubicka <jh@suse.cz>
788 * i386.c (legitimize_pic_address): Fix splitting of PLUS with
791 2004-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
793 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
794 * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
795 DW_EH_PE_sdata* for data.
796 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
798 2004-09-17 Geoffrey Keating <geoffk@apple.com>
800 * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
804 * c-typeck.c (constructor_asmspec): Delete.
805 (struct initializer_stack): Delete field 'asmspec'.
806 (start_init): Delete saving of asmspec.
807 (finish_init): Don't update constructor_asmspec.
808 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
809 * stmt.c (expand_asm): Duplicate strings from tree.
810 (expand_asm_operands): Likewise.
811 * tree.c (tree_size): Update computation of size of STRING_CST.
812 (make_node): Don't make STRING_CST nodes.
813 (build_string): Allocate string with tree node.
814 (tree_code_size): Clean up assertions, don't allow requests
815 for "the size of a STRING_CST".
816 * tree.def (STRING_CST): Update comment.
817 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
818 (tree_string): Place contents of string in tree node.
819 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
822 2004-09-17 Zack Weinberg <zack@codesourcery.com>
824 * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
825 * objc/Make-lang.in (objc/objc-parse.o): Likewise.
827 2004-09-17 Jones Desougi <jones@ingate.com>
829 * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
830 * configure, config.in: Regenerate.
832 2004-09-17 Zack Weinberg <zack@codesourcery.com>
834 * tree.c, tree.h (tree_class_strings): Make array const.
835 Reindent per coding convention. Move asterisk to proper place
836 per coding convention.
838 2004-09-18 Andreas Schwab <schwab@suse.de>
840 * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
841 (tree-vectorizer.o): Likewise.
842 (targhooks.o): Likewise.
844 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
845 Zack Weinberg <zack@codesourcery.com>
847 * alias.c (find_base_decl): Remove unreachable case '3' block.
848 * expr.c (safe_from_p): Abort if passed a type.
849 * tree-gimple.c (recalculate_side_effects): Abort if passed
850 anything other than an expression.
851 * tree-ssa-pre.c (phi_translate): Return expr immediately if
852 is_gimple_min_invariant is true for it. Reorder cases for clarity.
853 Abort on un-handled tree classes.
854 (valid_in_set): Likewise.
855 * tree.c (tree_code_class_strings): New static data.
857 * tree.h (enum tree_code_class): New.
858 (tree_code_class_strings): Declare.
859 (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
860 (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
861 (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
862 (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
863 (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
865 * tree.def, c-common.def, objc/objc-tree.def: Use
866 tree_code_class enumeration constants instead of code letters.
868 * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
869 * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
870 * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
871 * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
872 * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
873 * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
874 * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
875 * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
876 * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
877 * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
878 * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
879 * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
880 * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
883 * LANGUAGES: Add note about change.
885 2004-09-17 Diego Novillo <dnovillo@redhat.com>
887 PR tree-optimization/17319
888 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
889 examine pointers on the LHS of an assignment.
890 (collect_points_to_info_r): Handle RETURN_EXPR.
892 2004-09-17 Jeff Law <law@redhat.com>
894 * tree-ssa-dom.c (const_and_copies_stack): New.
895 (dom_walk_block_data): Remove const_and_copies field.
896 (record_const_or_copy): No longer need to pass in varray_type *.
897 Use CONST_AND_COPIES_STACK rather than passed in block local stack.
899 (record_equality): Similarly.
900 (restore_vars_to_original_value): Similarly. Revamp to use new
901 single global stack rather than per-block stacks.
902 (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
903 (thread_across_edge): Remove now unused parameters.
904 (dom_opt_initialize_block_local_data): No longer test the block
905 local CONST_AND_COPIES.
906 (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
908 2004-09-17 Jan Hubicka <jh@suse.cz>
910 PR tree-optimization/17509
911 * tree-optimize.c (update_inlined_to_pointers): New function.
912 (tree_rest_of_compilation): Use it.
914 2004-09-17 Devang Patel <dpatel@apple.com>
916 * dbxout.c (get_lang_number): New.
917 (dbxout_init): Include lang number in N_SO stab.
918 * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
919 N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
921 2004-09-17 Diego Novillo <dnovillo@redhat.com>
923 PR tree-optimization/17273
924 * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
925 replacement is a constant.
927 2004-09-17 Joseph S. Myers <jsm@polyomino.org.uk>
929 * c-tree.h (enum c_typespec_keyword): New.
930 (struct c_declspecs): Adjust description of "type". Remove
931 specbits, explicit_int_p and explicit_char_p. Rename
932 typedef_signed_p to explicit_signed_p. Add default_int_p, long_p,
933 short_p, signed_p, unsigned_p and complex_p.
934 (finish_declspecs): New.
935 * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
936 typename): Call finish_declspecs.
937 * c-decl.c (finish_declspecs): New.
938 (declspecs_add_type): Check for combinations which cannot occur in
939 valid specifier lists. Update comments.
940 (shadow_tag_warned): Remove checks done in finish_declspecs.
941 Don't report useless type name if type defaulted to int.
942 (grokdeclarator): Remove checks and actions done in
943 finish_declspecs. Don't allow for type being NULL. Update for
944 datastructures changes. Initialize decl_attr.
945 (build_null_declspecs, quals_from_declspecs): Update for
946 datastructures changes.
948 2004-09-17 Sylvain Pion <Sylvain.Pion@sophia.inria.fr>
950 * doc/extend.texi: Fix duplicated word.
952 2004-09-17 Toon Moene <toon@moene.indiv.nluug.nl>
954 * doc/invoke.texi: Remove stray explanation on
955 -freduce-all-givs and -fmove-all-movables.
957 2004-09-17 James Morrison <phython@gcc.gnu.org>
959 * doc/cfg.texi: Use @smallexample.
960 * doc/md.texi: Likewise.
961 * doc/tree-ssa.texi: Likewise.
962 * doc/extend.texi: Likewise. Use @r{} in comments.
963 * doc/trouble.texi: Use @r{} in comments.
965 2004-09-17 Hans-Peter Nilsson <hp@bitrange.com>
967 * configure.ac (gcc_cv_gld_version): Handle whitespace before
969 * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
970 * configure: Regenerate.
972 2004-09-17 J"orn Rennecke <joern.rennecke@superh.com>
974 * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
975 (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
976 * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
977 * t-sh64 (MULTILIB_CPU_DIRS): Likewise. Match dashes and trailing
978 slashes in substitutions.
979 (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
981 2004-09-17 Kazu Hirata <kazu@cs.umass.edu>
983 * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
984 gimplify.c, lambda-code.c, optabs.c, predict.c,
985 tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
986 tree-ssa.c, vec.h: Fix comment typos. Follow spelling
989 2004-09-17 Kazu Hirata <kazu@cs.umass.edu>
991 * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
992 doc/extend.texi, doc/install.texi, doc/invoke.texi,
993 doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
994 doc/trouble.texi: Use @option around options.
996 2004-09-17 Richard Sandiford <rsandifo@redhat.com>
998 * Makefile.in (gen-protos.o): Depend on errors.h.
1000 2004-09-17 Steven Bosscher <stevenb@suse.de>
1002 PR tree-optimization/17513
1003 * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
1004 for successors of the entry block.
1006 2004-09-17 Uros Bizjak <uros@kss-loka.si>
1008 PR rtl-optimization/15187
1009 * ifcvt.c (noce_try_cmove_arith): Exit early if total
1010 insn_rtx_cost of both branches > BRANCH_COST
1012 2004-09-16 Diego Novillo <dnovillo@redhat.com>
1014 PR tree-optimization/17528
1015 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
1016 erase the may-alias set for a tag when merging it with
1019 2004-09-16 Kaz Kojima <kkojima@gcc.gnu.org>
1021 * config/sh/sh.md (call): Extend 32-bit addresses to DImode
1022 for 32-bit TARGET_SHMEDIA.
1023 (call_value): Likewise.
1025 2004-09-16 Diego Novillo <dnovillo@redhat.com>
1027 * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
1028 test apply only to TREE_STATIC and DECL_EXTERNAL.
1030 2004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1032 * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
1033 * basic-block.h (get_dominated_by_region): Declare.
1034 * dominance.c (get_dominated_by_region): New function.
1035 * tree-cfg.c: Include cfglayout.h.
1036 (tree_duplicate_bb): Duplicate also phi nodes.
1037 (struct ssa_name_map_entry): New type.
1038 (add_phi_args_after_copy_bb, add_phi_args_after_copy,
1039 ssa_name_map_entry_hash, ssa_name_map_entry_eq,
1040 allocate_ssa_names, rewrite_to_new_ssa_names_def,
1041 rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
1042 rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
1043 * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
1044 add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
1045 rewrite_to_new_ssa_names, allocate_ssa_names,
1046 rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
1047 * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
1048 (copy_loop_headers): Use tree_duplicate_sese_region.
1050 2004-09-16 Frank Ch. Eigler <fche@redhat.com>
1052 * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
1054 2004-09-16 Jeff Law <law@redhat.com>
1056 * tree-into-ssa.c (block_defs_stack): New toplevel varray.
1057 (rewrite_block_data): Remove, no longer used.
1058 (rewrite_initialize_block_local_data): Remove, no longer used.
1059 (rewrite_initialize_block): Mark parameters as unused as needed.
1060 Change references to the block local block_defs to be block_defs_stack.
1061 Push a marker onto the block_defs_stack.
1062 (ssa_rewrite_initialize_block): Similarly.
1063 (rewrite_stmt, ssa_rewrite_stmt): Similarly.
1064 (ssa_register_new_def): No longer needs varray argument. Use
1065 block_defs_stack instead. No longer handle possibly null block_defs
1066 varray. Reverse order of items we push on the stack to make it
1067 easier to identify our marker.
1068 (register_new_def): No longer handle possibly null block_defs
1070 (rewrite_finalize_block): Revamp to look for markers in the global
1071 block_defs_stack varray rather than wiping a block local varray.
1072 Mark arguments as unused as needed.
1073 (ssa_rewrite_finalize_block): Similarly.
1074 (rewrite_into_ssa): Update initialization of dom walker structure
1075 to reflect that we don't need block local data anymore. Initialize
1076 the block_defs_stack varray.
1077 (rewrite_ssa_into_ssa): Similarly.
1078 * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
1079 (struct dom_walk_data): Kill block_defs field.
1080 (tree_ssa_dominator_optimize): Initialize block_defs_stack.
1081 (thread_across_edge): Use the global block_defs_stack instead of
1082 the old block_defs varray.
1083 (dom_opt_initialize_block_local_data): Update now that we don't have
1084 block_defs field to check anymore.
1085 (dom_opt_initialize_block): Push a marker onto block_defs_stack.
1086 (restore_currdefs_to_original_value): Use the new block_defs_stack
1087 instead of a block local varray.
1088 (dom_opt_finalize_block): Similarly.
1089 (record_equivalencs_from_phis): Similarly.
1090 (optimize_stmt, register_definitions_for_stmt): Similarly.
1092 2004-09-16 Andrew MacLeod <amacleod@redhat.com>
1094 PR tree-optimization/17517
1095 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
1096 coalesce same-root variables without checking for abnormal PHI usage.
1098 2004-09-16 Daniel Berlin <dberlin@dberlin.org>
1100 * cfgloop.h (duplicate_loop): Add prototype.
1101 * cfgloopmanip.c (duplicate_loop): Make non-static.
1102 * lambda-code.c (perfect_nestify): Factor out test whether
1103 we can handle this loop into separate function.
1105 (can_convert_to_perfect_nest): New function.
1106 (replace_uses_of_x_with_y): Add modify_stmt call.
1107 * tree-loop-linear.c (linear_transform_loops): Call
1108 rewrite_into_loop_closed_ssa and free_df.
1110 2004-09-16 Daniel Berlin <dberlin@dberlin.org>
1112 * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
1113 loop invariant as well.
1114 (perfect_nestify): new function.
1115 (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
1116 upper bounds, and steps.
1117 Set outerinductionvar properly.
1118 (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
1120 Return NULL if we need a perfect loop and can't make one.
1121 (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
1122 (not_interesting_stmt): New function.
1123 (phi_loop_edge_uses_def): Ditto.
1124 (stmt_uses_phi_result): Ditto.
1125 (stmt_is_bumper_for_loop): Ditto.
1126 (perfect_nest_p): Ditto.
1127 (nestify_update_pending_stmts): Ditto.
1128 (replace_uses_of_x_with_y): Ditto.
1129 (stmt_uses_op): Ditto.
1130 (perfect_nestify): Ditto.
1131 * lambda-mat.c (lambda_matrix_id_p): New function.
1132 * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
1133 * lambda.h: Update prototypes.
1134 * tree-loop-linear (linear_transform_loop): Use new
1135 perfect_nest_p. Detect and ignore identity transform.
1136 * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
1138 2004-09-16 Sebastian Pop <pop@cri.ensmp.fr>
1140 * tree-loop-linear.c (gather_interchange_stats): Add more comments.
1141 Gather also strides of accessed data. Pass in the data references
1143 (try_interchange_loops): Add a new heuristic for handling the temporal
1144 locality. Pass in the data references array.
1145 (linear_transform_loops): Pass the data references array to
1146 try_interchange_loops.
1148 2004-09-16 Kazu Hirata <kazu@cs.umass.edu>
1150 * doc/invoke.texi: Fix typos. Follow spelling conventions.
1152 2004-09-16 Nathan Sidwell <nathan@codesourcery.com>
1154 * doc/c-tree.texi (Classes): Remove index entries for
1155 TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
1157 2004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1159 * fold-const.c (fold): Fold difference of addresses.
1160 (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
1161 get_inner_reference.
1162 * tree-ssa-loop-ivopts.c (peel_address): Removed.
1163 (ptr_difference_const): Moved to fold-const.c.
1164 (split_address_cost): Use get_inner_reference instead of peel_address.
1165 (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
1166 * tree.h (ptr_difference_const): Export.
1168 * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
1169 variable type to the dump. Fix indentation.
1170 (idx_find_step): Handle nonconstant array_ref_element_size and
1171 array_ref_low_bound.
1172 (idx_record_use): Handle array_ref_element_size and
1173 array_ref_low_bound.
1174 (find_interesting_uses_stmt): Handle memory = nontrivial_expression
1175 statements correctly.
1176 (get_computation_at, iv_value): Do not unshare expressions here.
1177 (rewrite_use_outer): Unshare the expression before it is emitted
1179 * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
1181 * tree.c (unsigned_type_for, signed_type_for): Moved from
1182 tree-ssa-loop-niter.c. Use langhooks.
1183 * tree.h (signed_type_for): Export.
1185 2004-09-16 David Edelsohn <edelsohn@gnu.org>
1187 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
1190 2004-09-15 Andrew Pinski <pinskia@physics.uc.edu>
1193 * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
1194 Add two parameters to extra_includes.
1195 (C_INCPATH_INIT): Remove.
1196 * c-incpath.c (register_include_chains): Call extra_pre_includes
1197 before adding the standard include directory.
1198 Update call to extra_includes.
1199 (!defined TARGET_EXTRA_INCLUDES): Update
1200 hook_void_charptr_charptr_int and add !define
1201 TARGET_EXTRA_PRE_INCLUDES.
1202 (!define TARGET_EXTRA_INCLUDES): Define as
1203 hook_void_charptr_charptr_int.
1204 (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
1205 (target_c_incpath): Always declare.
1206 * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
1208 (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
1209 * config/darwin.h: (darwin_register_frameworks): Update for
1210 the two new parameters.
1211 (darwin_register_objc_includes): Add prototype.
1212 (TARGET_EXTRA_PRE_INCLUDES): Define.
1213 * config/darwin-c.c (darwin_register_objc_includes): New function.
1214 (darwin_register_frameworks): Update for the two new parameters.
1215 (target_c_incpath): Remove.
1216 * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
1218 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
1220 (TARGET_EXTRA_PRE_INCLUDES): Document.
1222 * gcc.c (spec_function): Add replace-outfile.
1223 (replace_outfile_spec_function): New function.
1224 * config/darwin.h (LINK_SPEC): Add replace
1225 -lobjc with -lobjc-gnu if -fgnu-runtime is
1227 * invoke.texi (replace-outfile): Document.
1229 2004-09-13 Jan Hubicka <jh@suse.cz>
1231 * predict.c (expr_expected_value, strip_builtin_expect): New function.
1232 (tree_predict_by_opcode): Use it.
1233 (tree_estimate_probability): Add, for now disabled,
1234 strip_builtin_expect call.
1236 2004-09-15 James E Wilson <wilson@specifixinc.com>
1239 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
1240 if current_function_decl is a sibcall.
1242 2004-09-15 Mark Mitchell <mark@codesourcery.com>
1244 * varasm.c (default_function_rdodata_section): Make sure to pass
1245 along a decl for a link-once section.
1247 2004-09-15 Richard Henderson <rth@redhat.com>
1249 * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
1250 warning with code disable. Fix formatting.
1252 2004-09-15 Steven Bosscher <stevenb@suse.de>
1254 * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
1255 * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
1256 after propagating into an ADDR_EXPR.
1258 2004-09-15 Andrew Pinski <apinski@apple.com>
1261 * gcse.c (process_insert_insn): insn_invalid_p has side effects.
1262 Move it out of gcc_assert.
1264 2004-09-15 Joseph S. Myers <jsm@polyomino.org.uk>
1266 * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
1267 except.c, fold-const.c, function.c, langhooks.c, params.c,
1268 reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
1269 tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
1270 for quoting in diagnostics going through pretty-print.c. Use ''
1271 for quoting in other diagnostic text.
1272 * langhooks.c: Include intl.h. Mark text locating diagnostics for
1274 * Makefile.in (langhooks.o): Update dependencies.
1275 * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
1278 2004-09-15 Mark Mitchell <mark@codesourcery.com>
1280 * configure.ac: Check for COMDAT support. Robustify check for
1282 * configure: Regenerated.
1283 * config.in: Likewise.
1284 * langhooks-def.h (lhd_comdat_group): New function.
1285 (LANG_HOOKS_COMDAT_GROUP): New macro.
1286 (LANG_HOOKS_DECLS): Use it.
1287 * langhooks.c (lhd_comdat_group): Define.
1288 * langhooks.h (lang_hooks_for_decls): Add comdat_group.
1289 * output.h (named_section_flags): Make it a macro.
1290 (named_section_real): New function.
1291 (default_no_named_section): Add decl parameter.
1292 (default_elf_asm_named_section): Likewise.
1293 (default_coff_asm_named_section): Likewise.
1294 (default_pe_asm_named_section): Likewise.
1295 * target.h (gcc_target): Adjust type of named_section.
1296 * varasm.c (named_section_flags): Rename to named_section_real.
1298 (default_no_named_section): Add decl parameter.
1299 (default_elf_asm_named_section): Use COMDAT, if available. Deal
1300 with the case that ASM_COMMENT_START is "@".
1301 (default_coff_asm_named_section): Add decl parameter.
1302 (default_pe_asm_named_section): Likewise.
1303 * config/alpha/alpha.c (vms_asm_named_section): Add decl
1305 (unicosmk_asm_named_section): Likewise.
1306 * config/arm/arm.c (arm_elf_asm_named_section): Remove.
1307 * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
1308 * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
1309 * config/cris/cris-protos.h (cris_target_asm_named_section):
1311 * config/cris/cris.c (cris_target_asm_named_section):
1313 * config/darwin/darwin-protos.h (darwin_asm_named_section):
1315 * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
1316 * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
1317 * config/i386/i386-protos.h (i386_pe_asm_named_section):
1319 * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
1320 * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
1321 * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
1322 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
1324 * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
1325 * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
1326 * cp/cp-tree.h (cxx_comdat_group): Declare.
1327 * cp/decl.c (cxx_comdat_group): New function.
1329 2004-09-15 Jan Hubicka <jh@suse.cz>
1331 * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
1332 * tree-tailcall.c (eliminate_tail_call): Release SSA name.
1334 * tree-cfg.c (remove_bb): Release SSA defs.
1336 2004-09-15 Kazu Hirata <kazu@cs.umass.edu>
1338 * doc/tm.texi: Follow spelling conventions.
1340 2004-09-15 Kazu Hirata <kazu@cs.umass.edu>
1342 * tree-ssa-dom.c: Fix comment typos.
1344 2004-09-15 Alan Modra <amodra@bigpond.net.au>
1346 * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
1348 (ppc_fallback_frame_state): Save location of CR.
1350 2004-09-15 Jakub Jelinek <jakub@redhat.com>
1352 * expr.c (string_constant): Handle also read-only variables
1353 initialized to string literals.
1355 * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
1356 into memcpy (x, y, 1) if memcpy can be expanded inline.
1358 2004-09-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1360 PR tree-optimization/17468
1361 * tree-ssa.c (verify_use, verify_phi_args, verify_ssa): Verify that
1362 definition inside a block precede uses.
1363 * tree-tailcall.c (adjust_return_value): Emit statements in the
1366 2004-09-15 Richard Sandiford <rsandifo@redhat.com>
1368 * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
1370 2004-09-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1372 * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
1374 2004-09-14 Jeff Law <law@redhat.com>
1376 * tree-ssa-dom.c (avail_exprs_stack): New global varray.
1377 (struct dom_walk_block_data): Remove avail_exprs member.
1378 (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
1379 (lookup_avail_expr): No longer need to pass in address of
1380 the block local available exprs stack. All callers changed.
1381 (simplify_cond_and_lookup_avail_expr): Similarly.
1382 (simplify_switch_and_lookup_avail_expr): Similarly.
1383 (get_eq_expr_value, record_cond): Likewise.
1384 (record_dominating_conditions): Likewise.
1385 (update_rhs_and_lookup_avail_expr): Likewise.
1386 (record_equivalences_from_stmt): Likewise.
1387 (dom_opt_initialize_block_local_data): No longer test state of
1388 block local avail_exprs.
1389 (dom_opt_initialize_block): Mark unwind point in the global
1391 (remove_expressions_from_table): Update to unwind to the
1392 most recent unwind marker in the global avail_expr stack.
1393 All callers changed.
1394 (dom_opt_finalize_block): Mark unwind point in the global
1395 avail_expr stack as needed.
1396 (record_cond): Push elements into the global avail_exprs stack.
1398 * tree-dfa.c (free_df_for_stmt): No longer static.
1399 (free_df): Update comments.
1400 * tree-flow.h (free_df_for_stmt): Prototype.
1401 * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also
1404 2004-09-14 Diego Novillo <dnovillo@redhat.com>
1406 PR tree-optimization/17252
1407 * tree-ssa-alias.c (may_alias_p): Don't assume that a
1408 pointer may not point to itself when using relaxed
1411 2004-09-14 Richard Henderson <rth@redhat.com>
1414 * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
1415 while folding <ADDR_EXPR <INDIRECT_REF X>>.
1417 2004-09-14 Andrew Pinski <apinski@apple.com>
1419 * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
1420 sets of the pointers but the aliasing sets of what they point to.
1422 2004-09-14 Roger Sayle <roger@eyesopen.com>
1424 PR rtl-optimization/9771
1425 * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
1426 conditional compilation in init_reg_sets_1.
1427 (init_reg_sets_1): Let global_regs[i] take priority over the frame
1428 (but not stack) pointer exceptions to regs_invalidated_by_call.
1429 (globalize_reg): Globalizing a fixed register may need to update
1430 regs_invalidated_by_call.
1432 2004-09-14 Diego Novillo <dnovillo@redhat.com>
1434 PR tree-optimization/15262
1435 * tree-dfa.c (dump_variable): Also print the type of the
1437 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
1438 memory tags are of conflicting alias sets but have no aliased
1439 symbols in common, add one tag to the alias set of the other.
1440 (setup_pointers_and_addressables): Remove hack to deal with
1441 programs with no aliased symbols.
1442 (may_alias_p): Don't special case aggregate types.
1444 2004-09-14 Joseph S. Myers <jsm@polyomino.org.uk>
1447 * doc/invoke.texi (Environment Variables): Correct example locale.
1449 2004-09-14 Jan Hubicka <jh@suse.cz>
1451 * cfg.c (expunge_block): Revert previous change adding ggc_free call.
1453 2004-09-14 Mark Mitchell <mark@codesourcery.com>
1455 * config.gcc: Do not build a shared libgcc for arm-none-eabi.
1457 2004-09-14 Joseph S. Myers <jsm@polyomino.org.uk>
1459 * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
1461 (struct c_declarator): Change u.array.quals and pointer_quals to
1462 int. Add u.array.attrs.
1463 (quals_from_declspecs): New.
1464 * c-decl.c (quals_from_declspecs): New.
1465 (shadow_tag_warned): Give more specific message for useless type
1467 (build_array_declarator, set_array_declarator_inner,
1468 grokdeclarator, make_pointer_declarator, build_null_declspecs,
1469 declspecs_add_qual): Update for changed structures.
1471 2004-09-14 Jeff Law <law@redhat.com>
1473 * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
1475 (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
1476 (dom_opt_initialize_block_local_data): No longer test state
1478 (dom_opt_finalize_block): Update due to change in scope of
1480 (optimize_stmt): Similarly.
1482 2004-09-14 Kazu Hirata <kazu@cs.umass.edu>
1484 * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
1485 lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
1486 comment typos. Follow spelling conventions.
1488 2004-09-14 Kazu Hirata <kazu@cs.umass.edu>
1490 * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
1491 config/i386/predicates.md, config/sparc/sparc.c: Follow
1492 spelling conventions.
1494 2004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1495 Steven Bosscher <stevenb@suse.de>
1497 * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
1498 * basic-block.h (struct reorder_block_def): Add copy_number field.
1499 * cfgloop.h (biv_p): Declare.
1500 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
1501 * common.opt (fsplit-ivs-in-unroller): New flag.
1502 * loop-iv.c (biv_p): New function.
1503 * loop-unroll.c: Include hashtab.h and recog.h.
1504 (struct iv_to_split, struct split_ivs_info): New types.
1505 (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
1506 free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
1507 determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
1508 insert_base_initialization, split_iv): New functions.
1509 (peel_loop_completely, unroll_loop_constant_iterations,
1510 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1512 * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
1514 2004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1516 * tree-cfg.c (thread_jumps): Update dominators correctly in
1517 case destination of threaded edge dominates its source.
1519 2004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1521 * unroll.c: Removed.
1523 * Makefile.in (LOOP_H, unroll.o): Removed.
1524 (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
1526 * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
1528 * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
1529 * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
1530 * loop.c: Do not include loop.h.
1531 (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
1532 REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
1533 struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
1534 REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
1535 struct loop_regs, struct loop_movables, struct loop_info): Moved
1537 (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
1538 reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
1539 find_common_reg_term, loop_iterations, final_giv_value): Moved
1541 (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
1542 loop_dump_stream, for_each_insn_in_loop, express_from,
1543 extend_value_for_giv, loop_iv_add_mult_emit_before,
1544 loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
1545 loop_insn_first_p, get_condition_for_loop,
1546 loop_insn_emit_before, loop_insn_hoist,
1547 loop_insn_sink): Made static.
1548 (loop_invariant_p): Made static. Removed flag_old_unroll_loops
1550 (strength_reduce): Do not call unroller.
1551 (record_giv): Do not initialize unrolled field.
1552 (prescan_loop): Do not set loop_info->preconditioned.
1553 * passes.c: Do not include loop.h.
1554 (rest_of_handle_loop_optimize): Do not call unroller.
1555 * predict.c: Do not include loop.h.
1556 * rtl.h (NOTE_PRECONDITIONED): Removed.
1557 * stmt.c: Do not include loop.h.
1558 * toplev.c: Do not include loop.h.
1559 (process_options): Do not handle flag_old_unroll_loops.
1561 * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
1562 Documentation removed.
1563 * doc/passes.texi (unroll.c, loop.h): Documentation removed.
1565 2004-09-14 Nathan Sidwell <nathan@codesourcery.com>
1567 * Makefile.in (STAGE1_CHECKING): New variable.
1568 (stage1_build): Use it.
1569 * tree-ssa.c (verify_ssa): Preserve state of dominance
1572 2004-09-14 Uros Bizjak <uros@kss-loka.si>
1574 * config/i386/i386.c (output_fp_compare): Add generation
1575 of ftst instruction.
1576 * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
1577 Use output_fp_compare () function.
1578 (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
1579 (fix_truncdi_memory): Remove operands[5] copy.
1581 2004-09-14 Kazu Hirata <kazu@cs.umass.edu>
1583 * config/m32r/m32r.md, config/m68k/m68kelf.h,
1584 config/mcore/mcore.md, config/rs6000/linux64.h,
1585 config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
1588 2004-09-13 James E Wilson <wilson@specifixinc.com>
1590 * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
1591 * gen-protos.c: Include errors.h.
1594 2004-09-14 Jan Hubicka <jh@suse.cz>
1596 * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
1597 * predict.c: Include tree-scalar-evolution.h and cfgloop.h
1598 (predict_loops): Use number_of_iterations_exit to predict
1599 number of iterations on trees.
1601 2004-09-13 Dale Johannesen <dalej@apple.com>
1605 * c-decl.c (start_decl): Repair TREE_STATIC for initialized
1606 objects declared extern.
1608 2004-09-14 Paul Brook <paul@codesourcery.com>
1610 * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
1613 2004-09-13 Daniel Jacobowitz <dan@debian.org>
1615 * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
1616 Only use TYPE_BINFO for aggregates.
1618 2004-09-13 Daniel Jacobowitz <dan@debian.org>
1620 * expmed.c (synth_mult): Initialize latency. Check cost before
1623 2004-09-13 Kenneth Zadeck <Kenneth.Zadeck@NaturalBridge.com>
1625 * tree-ssa-operands.c (get_call_expr_operands): Added parm to
1626 add_call_clobber_ops and add_call_read_ops.
1627 (add_call_clobber_ops, add_call_read_ops): Added code to reduce
1628 the number of vdefs and vuses inserted based on analysis of global
1629 variables across calls. * tree-dfa.c (find_referenced_vars):
1630 Needed to reset static var maps before each function is compiled.
1632 (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
1633 static_vars_info,functions_to_static_vars_info,module_statics_escape,
1634 all_module_statics,searchc_env,dfs_info): New fields to support
1635 analysis of static global variables.
1636 (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
1637 cgraph_reset_static_var_maps, get_global_static_vars_info,
1638 get_global_statics_not_read, get_global_statics_not_written,
1639 searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
1640 check_rhs_var, check_lhs_var, get_asm_expr_operands,
1641 process_call_for_static_vars, scan_for_static_refs,
1642 cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
1643 clear_static_vars_maps, cgraph_propagate_bits,
1644 cgraph_characterize_statics): New. Functions to support analysis
1645 of static global variables.
1646 (cgraph_mark_local_and_external_functions): Renamed from:
1647 (cgraph_mark_local_functions)
1648 (cgraph_expand_all_functions): Remove call to
1649 cgraph_mark_local_and_external_functions.
1650 (cgraph_optimize): Added driver to analyze static variables whose
1651 scope is within the compilation unit. * cgraph.h (struct
1652 cgraph_local_info, GTY): Added statics_read, statics_written,
1653 local, calls_read_all, calls_write_all, for_functions_valid.
1654 (struct cgraph_node): Added next_cycle. * cgraph.c
1655 (dump_cgraph_node): Added print routines for new fields. *
1656 makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
1659 2004-09-13 Joseph S. Myers <jsm@polyomino.org.uk>
1661 * c-decl.c (grokdeclarator): Correct comments about where storage
1662 class specifiers are rejected by grammar and add corresponding
1663 asserts. Diagnose typedefs and parameters declared inline.
1664 Change warning for inline main to a pedwarn. Only diagnose inline
1666 (declspecs_add_scspec): Allow duplicate "inline".
1668 2004-09-13 Steve Ellcey <sje@cup.hp.com>
1670 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
1671 (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1673 2004-09-13 Richard Henderson <rth@redhat.com>
1676 * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
1677 (tree_type): Replace spare with contains_placeholder_bits.
1678 (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
1679 make static. Remove seen_types list.
1680 (type_contains_placeholder_p): New.
1682 2004-09-13 James E Wilson <wilson@specifixinc.com>
1684 * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
1685 (sb1_bdesc, bdesc_map, bdesc_arrays): New.
1686 (mips_expand_builtin): Add SB-1 support. Use bdesc_map and
1687 bdesc_arrays instead of mips_bdesc.
1688 (mips_init_builtins): Likewise.
1689 * config/mips/mips.h (TARGET_SB1): New.
1690 (HAVE_SQRT_P): Delete.
1691 * config/mips/mips.md (divide_condition): Support V2SF.
1692 (sqrt_condition, recip_condition): New.
1693 (div<mode>3): Use ANYF instead of SCALARF.
1694 (*div<mode>3): Use ANYF instead of SCALARF. Use UNITMODE instead of
1696 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
1697 instead of ISA_HAS_FP4. Use ANYF instead of SCALARF. Use UNITMODE
1699 (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P. Use ANYF
1700 instead of SCALARF. Use UNITMODE instead of MODE.
1702 2004-09-13 Zack Weinberg <zack@codesourcery.com>
1704 * config.in: Regenerate after removal of libbanshee.
1706 2004-09-13 Andrew MacLeod <amacleod@redhat.com>
1708 PR tree-optimization/17400
1709 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
1710 coalesce partitions when one occurs in an abnormal PHI.
1712 2004-09-13 Andrew Pinski <apinski@apple.com>
1714 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
1717 2004-09-13 Richard Henderson <rth@redhat.com>
1720 * cselib.c (cselib_invalidate_rtx): Export. Remove unused args.
1721 (cselib_invalidate_rtx_note_stores): New.
1722 (cselib_record_sets, cselib_process_insn): Update to match.
1723 * cselib.h (cselib_invalidate_rtx): Declare.
1724 * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
1726 2004-09-13 Richard Henderson <rth@redhat.com>
1729 * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
1730 after copying its argument.
1732 2004-09-13 Joseph S. Myers <jsm@polyomino.org.uk>
1734 * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
1735 c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
1736 in diagnostics. Use %' for English apostrophes.
1737 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
1738 (pedwarn_c90, pedwarn_c99): Use it.
1739 * c-decl.c (lookup_label): Quote label name in diagnostic.
1740 * c-parse.in (yyprint): Use ' instead of ` for left quote.
1741 * c-typeck.c (warn_for_assignment): Likewise.
1743 2004-09-13 Jan Hubicka <jh@suse.cz>
1745 * i386.c (x86_schedule): New global variable.
1746 (override_options): Disable scheduling when not supported.
1747 * i386.h (x86_schedule): Declare.
1748 (TARGET_SCHEDULE): New macro.
1750 2004-09-12 Richard Henderson <rth@redhat.com>
1753 * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
1754 * tree.c, tree.h (has_cleanups): Remove.
1756 2004-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1758 * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
1759 arguments of the phi nodes correctly.
1761 2004-09-12 Jan Hubicka <jh@suse.cz>
1763 * ggc-common.c (cmp_statistics): Fix sorting.
1765 2004-09-12 David Edelsohn <edelsohn@gnu.org>
1768 * expmed.c (expand_divmod): If cheap power of 2 divide is
1769 available, use it for negative constant as well.
1771 2004-09-12 Andrew Pinski <apinski@apple.com>
1773 * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
1776 * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
1778 2004-09-12 Richard Henderson <rth@redhat.com>
1780 * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
1782 (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
1783 post-reload, and scratch NULL.
1784 * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
1785 (x86_shift_adj_2): Use ix86_expand_clear.
1786 (ashldi3): Remove CMOVE expansion difference.
1787 (ashldi3_1): Remove.
1788 (*ashldi3_1): Rename from *ashldi3_2. Use reg_or_pm1_operand and
1789 add constraints for immediates. New peephole for split-with-temp.
1790 Run splitter after peep2 pass.
1791 (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
1792 (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
1793 (setcc_2): Rename with *.
1794 * config/i386/predicates.md (reg_or_pm1_operand): New.
1795 (ashldi_input_operand): New.
1797 2004-09-12 Richard Henderson <rth@redhat.com
1799 * print-rtl.c (print_decl_name): New.
1800 (print_mem_expr): Use it.
1802 2004-09-12 Richard Henderson <rth@redhat.com
1805 * except.c (sjlj_emit_function_exit): Fix logic locating
1806 sjlj_exit_after in final block.
1808 2004-09-12 Toon Moene <toon@moene.indiv.nluug.nl>
1810 * common.opt: Remove flags -fmove-all-movables and
1812 * loop-invariant.c (find_invariants_to_move):
1813 Remove all uses of flag_move_all_movables.
1814 * loop.c (move_movables): Remove all uses of
1815 flag_move_all_movables.
1816 (strength_reduce): Remove all uses of
1817 flag_reduce_all_givs.
1818 * doc/invoke.texi: Remove documentation of flags
1819 -fremove-all-movables and -freduce-all-givs.
1821 2004-09-11 Roger Sayle <roger@eyesopen.com>
1824 * tree-sra.c (generate_element_zero): Revert recent build_int_cst
1825 change. elt->type may be a floating point type, so use fold_convert.
1827 2004-09-11 Geoffrey Keating <geoffk@apple.com>
1829 * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
1830 the thing referenced as used, not the stub itself.
1832 2004-09-11 Joseph S. Myers <jsm@polyomino.org.uk>
1834 * c-tree.h (enum c_storage_class): New.
1835 (struct c_declspecs): Add storage_class, inline_p and thread_p.
1836 * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
1837 declarations and "auto" or "register" in file scope empty
1838 declarations. Give more specific warnings for other cases of
1839 storage class specifiers in empty declarations.
1840 (grokdeclarator): Update for new structures. Don't check for
1841 multiple storage classes. Diagnose file-scope "register" if
1843 (build_null_declspecs): Update.
1844 (declspecs_add_scspec): Update. Diagnose multiple storage class
1845 specifiers and invalid uses of "__thread".
1847 2004-09-11 Zack Weinberg <zack@codesourcery.com>
1849 * tree.c (tree_code_size): New function, bulk of code from tree_size.
1850 (tree_size, make_node): Use it.
1851 * tree-ssa-pre.c (init_pre): Use it.
1852 * tree.h: Prototype it.
1854 2004-09-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1856 * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
1857 * tree-dfa.c (compute_immediate_uses, add_immediate_use,
1858 redirect_immediate_use): Use PHI_DF.
1859 * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
1860 (bb_for_stmt): Use PHI_BB.
1861 (get_immediate_uses): Use PHI_DF.
1862 * tree-ssa-dse.c (max_stmt_uid): New variable.
1863 (get_stmt_uid): New function.
1864 (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
1866 * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
1867 (max_uid): Renamed to max_stmt_uid.
1868 (get_stmt_uid): New function.
1869 (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
1870 phi node annotations.
1871 * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
1872 * tree.h (PHI_BB, PHI_DF): New accessor functions.
1873 (struct tree_phi_node): Add bb and df fields.
1875 2004-09-11 Richard Henderson <rth@redhat.com>
1878 * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
1881 2004-09-11 Jan Hubicka <jh@suse.cz>
1883 * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
1884 (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
1885 * i386.md (i387_cw): Add 'uninitialized' mode.
1887 * profile.c (BB_TO_GCOV_INDEX): move more to the front.
1888 (output_location): Break out from ....
1889 (branch_prob): ... here; handle gcov output on trees.
1890 * toplev.c (process_options): No longer be sorry about coverage for
1893 2004-09-11 Steven Bosscher <stevenb@suse.de>
1896 * fold-const.c (fold): Do not try to fold the operand of a
1897 CLEANUP_POINT_EXPR if that operand does itself not have any
1901 * langhooks.c (lhd_decl_printable_name): Make sure that this
1902 function is called with is a decl node that has an identifier.
1903 * tree-pretty-print.c (dump_function_name): New function to
1904 wrap PRINT_FUNCTION_NAME and dump_decl_name.
1905 (print_call_name): Use it.
1907 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
1909 * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
1912 2004-09-11 Jakub Jelinek <jakub@redhat.com>
1914 * tree-ssa-alias.c (collect_points_to_info_r): Handle
1915 pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
1918 2004-09-11 Richard Henderson <rth@redhat.com>
1920 * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
1921 (expand_expr_addr_expr): New function. Take ADDR_EXPR instead of the
1922 operand of the ADDR_EXPR.
1923 (expand_expr_real_1): Update to match.
1925 2004-09-11 David Edelsohn <edelsohn@gnu.org>
1928 * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
1929 choose 64-bit version.
1931 2004-09-11 Richard Henderson <rth@redhat.com>
1934 * c-typeck.c (build_unary_op): Add legacy offsetof hack.
1936 2004-09-11 Kazu Hirata <kazu@cs.umass.edu>
1938 * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
1939 doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
1940 Insert @: after i.e. or e.g.
1942 2004-09-10 Geoffrey Keating <geoffk@apple.com>
1944 * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
1945 D.xxx rather than <Dxxx>.
1947 2004-09-10 Adam Nemet <anemet@lnxw.com>
1949 * configure.ac (AC_MSG_CHECKING(what linker to use)):
1950 in_tree_ld_is_elf should be true for LynxOS.
1951 * configure: Regenerate.
1953 2004-09-10 Adam Nemet <anemet@lnxw.com>
1955 * Makefile.in (all.cross): Add srcextra.
1957 2004-09-10 Roger Sayle <roger@eyesopen.com>
1960 * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
1961 floating point comparison operators. Change aborts to gcc_asserts.
1963 2004-09-10 Geoffrey Keating <geoffk@apple.com>
1965 * final.c (output_asm_insn): Correct problem with -fverbose-asm.
1967 2004-09-10 James E Wilson <wilson@specifixinc.com>
1969 * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
1970 (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
1972 * convert.c (convert_to_vector): Replace recursive call with
1975 * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
1976 Add integer argument named constant. Use const_tiny_rtx instead of
1978 (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
1980 (init_emit_once): Fix users of gen_const_vector. Set CONST1_RTX for
1982 * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
1983 of gen_rtx_raw_CONST_VECTOR.
1985 2004-09-10 Eric Christopher <echristo@redhat.com>
1988 * c-parse.in (attribute): Add NULL_TREE for error case
1991 2004-09-10 Zack Weinberg <zack@codesourcery.com>
1993 * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
1994 (extract_interface_info): Delete prototype.
1995 * c-decl.c (extract_interface_info): Delete stub.
1996 * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
1997 it's not already been done ...
1998 (init_c_lex): ... not here.
1999 (fe_file_change): Don't call extract_interface_info.
2001 2004-09-11 Joseph S. Myers <jsm@polyomino.org.uk>
2003 * c-tree.h (struct c_declspecs): Remove typedef_decl. Add
2004 typedef_p and typedef_signed_p.
2005 * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
2006 (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
2007 Check typedef_p and typedef_signed_p, not typedef_decl.
2008 (grokfield): Check typedef_p, not typedef_decl.
2009 (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
2011 (declspecs_add_type): Set typedef_p and typedef_signed_p, not
2014 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2016 * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
2018 2004-09-10 Geoffrey Keating <geoffk@apple.com>
2020 * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
2021 temporary variables.
2023 * dbxout.c (dbxout_block): Update for
2024 current_function_func_begin_label a string.
2025 * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
2026 * except.c (dw2_output_call_site_table): Likewise.
2027 * toplev.c (current_function_func_begin_label): Likewise.
2028 * tree.h (current_function_func_begin_label): Likewise.
2029 * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
2031 * final.c (output_asm_insn): Use strtoul instead of atoi, save a
2034 * config/darwin.c: Include target.h.
2035 (struct machopic_indirection): Make ptr_name a string.
2036 (machopic_indirection_hash): Update for ptr_name a string.
2037 (machopic_indirection_eq): Likewise.
2038 (machopic_indirection_name): Likewise.
2039 (machopic_output_indirection): Likewise.
2040 (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
2041 string. Don't expect stub names to be in the identifier hash table.
2042 Do call strip_name_encoding before looking up entry in ID hash table.
2043 * config/t-darwin (darwin.o): Add target.h to dependencies.
2045 * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
2046 of fprintf for register names.
2048 * output.h (unlikely_section_label): Delete declaration.
2049 (unlikely_text_section_name): Likewise.
2050 * varasm.c (unlikely_section_label_printed): Make static.
2051 (unlikely_section_label): Likewise.
2052 (unlikely_text_section_name): Likewise.
2053 (assemble_start_function): Use reconcat.
2055 * rtl.def (REG): Add comment to describe third field.
2057 2004-09-10 Andrew Pinski <apinski@apple.com>
2059 * config/darwin.c (machopic_mcount_stub_name): Call
2060 machopic_indirection_name instead of making the string
2063 2004-09-10 Diego Novillo <dnovillo@redhat.com>
2067 2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
2069 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
2070 memory tag is call clobbered, so are its aliases.
2071 (group_aliases): When two memory tags being grouped, if one is
2072 call clobbered, so are the other and its aliases.
2073 (add_may_alias): Remove call-clobbering stuff.
2074 (replace_may_alias): Likewise.
2075 (merge_pointed_to_info): Merge pt_global_mem
2077 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2079 * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
2080 genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
2081 passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
2082 tree-scalar-evolution.c, tree-ssa-copyrename.c,
2083 tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
2085 2004-09-10 Richard Sandiford <rsandifo@redhat.com>
2087 * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
2088 (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
2089 pair. Remove match_dup from inputs. Remove masaccs handling.
2090 (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
2091 (masaccs, mdasaccs): Turn into define_insns.
2093 2004-09-10 Richard Sandiford <rsandifo@redhat.com>
2095 * tree-tailcall.c (process_assignment): Only do accumulator transforms
2096 for floating-point types if flag_unsafe_math_optimizations.
2098 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2100 * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
2101 config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
2102 config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
2103 config/h8300/h8300.md, config/i386/gmm_malloc.h,
2104 config/ia64/ia64.md, config/ip2k/libgcc.S,
2105 config/mips/mips-ps-3d.md, config/mips/mips.c,
2106 config/rs6000/rs6000.c, config/s390/s390.c,
2107 config/sh/symbian.c: Fix comment typos.
2109 2004-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
2111 * config/s390/s390.c (s390_emit_prologue): Added missing
2114 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2116 * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
2117 typos. Follow spelling conventions.
2119 2004-09-10 Joseph S. Myers <jsm@polyomino.org.uk>
2121 * toplev.c (warn_deprecated_use): Correct logic for saying "type"
2122 in diagnostic. Don't dereference NULL TYPE_NAME.
2124 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2126 * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
2127 tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
2128 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
2129 value-prof.c: Fix comment typos. Follow spelling conventions.
2131 2004-09-10 Jan Hubicka <jh@suse.cz>
2133 * tree-ssa-dce.c (remove_dead_stmt): Update profile.
2134 * tree-split_edge.c (tree_split_edge): Likewise.
2135 (thread_jumps): Likewise.
2137 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2139 * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
2142 2004-09-10 Paolo Bonzini <bonzini@gnu.org>
2144 * cgraph.h (cgraph_dump_file): Do not declare.
2145 * cgraphunit.c (cgraph_dump_file): Declare as static.
2147 * toplev.c (cgraph_dump_file): Do not declare.
2148 (compile_file): Call init_cgraph.
2149 * tree-dump.c (dump_files): Add IPA dump file, remove
2150 XML dump of call graph.
2151 (get_dump_file_name): Support IPA dump file naming scheme.
2152 * tree.h (enum tree_dump_index): Add IPA dump file, remove
2153 XML dump of call graph.
2154 * doc/invoke.texi (Debugging Options): Document the new options.
2156 2004-09-10 Richard Sandiford <rsandifo@redhat.com>
2158 * doc/extend.texi: Document the FR-V built-in functions.
2160 2004-09-09 James E Wilson <wilson@specifixinc.com>
2162 * doc/sourcebuild.texi: Delete libbanshee reference.
2164 2004-09-10 Kelley Cook <kcook@gcc.gnu.org>
2166 * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
2168 2004-09-09 James E Wilson <wilson@specifixinc.com>
2170 * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
2171 before calling vector_types_convertible_p.
2172 (digest_init): Check that inside_init has VECTOR_TYPE before calling
2173 vector_types_convertible_p. Don't give another error if
2174 convert_for_assignment returns error_mark_node.
2176 2004-09-09 Roger Sayle <roger@eyesopen.com>
2179 * fold-const.c (build_zero_vector): New function to construct a
2180 vector (either floating point or integer) of zeros.
2181 (fold_convert): Internally, enable conversions of integer zero
2182 to arbitrary vector types, using the new build_zero_vector.
2184 2004-09-09 Roger Sayle <roger@eyesopen.com>
2186 * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
2187 expand a left shift by an immediate constant as either an ashl or
2188 a sequence of additions.
2189 (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
2190 instead of calling gen_ashlsi3 with a constant directly.
2192 2004-09-09 Roger Sayle <roger@eyesopen.com>
2194 * config/i386/i386.c (ix86_split_long_move): When optimizing for
2195 size, and the low and high parts of a DImode constant are equal,
2196 copy one register to another instead of loading the same immediate
2199 2004-09-09 Richard Henderson <rth@redhat.com>
2202 * function.c (assign_parm_setup_block): Only put PARALLELs into
2203 a register if use_register_for_decl.
2205 2004-09-09 Eric Christopher <echristo@redhat.com>
2207 * ra-colorize.c (reset_lists): Move variable declaration inside
2208 ENABLE_CHECKING to avoid unused variable warnings when
2209 not --enable-checking.
2210 (check_colors): Ditto.
2212 2004-09-09 Mike Stump <mrs@apple.com>
2214 * version.c (version_string): Bump to 4.0.0.
2215 * doc/include/gcc-common.texi (version-GCC): Likewise.
2217 2004-09-10 Jakub Jelinek <jakub@redhat.com>
2219 * doc/extend.texi (nothrow attribute): The attribute is not
2220 implemented in 3.2 and earlier.
2222 2004-09-09 Steve Ellcey <sje@cup.hp.com>
2224 * genrecog.c (compute_predicate_codes): Use op0_codes
2227 2004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
2229 * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
2230 implementation changes.
2232 2004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
2234 * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
2235 a PARALLEL instead of a SET due to added clobbers.
2237 2004-09-09 Ulrich Weigand <uweigand@de.ibm.com>
2239 * reload.c (find_reloads_address): Pass correct operand to
2240 maybe_memory_address_p.
2242 2004-09-09 Daniel Berlin <dberlin@dberlin.org>
2244 * Makefile.in: Remove libbanshee, tree-alias-*.
2245 Remove tree-alias-common.h dependencies.
2246 * common.opt: Remove -ftree-points-to.
2247 * configure.ac: Remove libbanshee.
2248 * flags.h: Remove pta_type, flag_tree_points_to.
2249 * gengtype.c (open_base_files): Remove tree-alias-type.h.
2250 * opts.c (OPT_ftree_points_to): Remove.
2251 * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
2252 * tree-dfa.c: Remove tree-alias-common.h
2253 * tree-into-ssa.c: Ditto.
2254 * tree-outof-ssa.c: Ditto.
2255 * tree-ssa-copyrename.c: Ditto.
2256 * tree-ssa-live.c: Ditto.
2257 * tree-optimize.c: Ditto.
2258 * tree-ssa.c: Ditto.
2259 Remove pass_build_pta, pass_del_pta.
2260 * tree-pass.h: Ditto.
2261 * tree-ssa-alias.c: Remove tree-alias-common.h.
2262 (struct alias_stats_d): Remove pta_queries, pta_resolved.
2263 (pass_may_alias): Remove PROP_pta requirement.
2264 (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
2265 (get_tmt_for): Ditto.
2266 (dump_alias_stats): Ditto.
2267 * doc/passes.texi: Remove blurb about points-to analysis.
2268 * fortran/Make-lang.in: Remove tree-alias-*.o.
2270 2004-09-09 Richard Sandiford <rsandifo@redhat.com>
2272 * genattrtab.c (write_insn_cases): New function, split out from
2273 write_attr_case. Correctly handle define_peepholes when printing
2274 the instruction name.
2275 (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
2277 2004-09-09 Hans-Peter Nilsson <hp@axis.com>
2280 * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
2281 * config/cris/cris.c (cris_return_address_on_stack): New function.
2282 * config/cris/cris.md ("return"): For location of return address,
2283 also check cris_return_address_on_stack.
2285 2004-09-09 Diego Novillo <dnovillo@redhat.com>
2287 * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
2288 calling phi_ssa_name_p.
2290 2004-09-09 Richard Henderson <rth@redhat.com>
2293 * c-typeck.c (valid_compound_expr_initializer): Use only
2294 initializer_constant_valid_p, and not TREE_CONSTANT.
2295 (digest_init): Likewise.
2296 (output_init_element): Likewise.
2298 2004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2300 * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
2301 live_out_1, prune_hardregs_for_mode, init_one_web_common,
2302 reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
2303 record_conflict, compare_and_free_webs, init_webs_defs_uses,
2304 parts_to_webs_1, parts_to_webs, reset_conflicts,
2305 check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
2306 ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
2307 * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
2308 put_move, remove_move, combine, select_spill, colorize_one_web,
2309 try_recolor_web, insert_coalesced_conflicts, check_colors,
2310 break_precolored_alias, restore_conflicts_from_coalesce,
2311 sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
2312 * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
2313 reloads_to_loads, rewrite_program2, emit_colors): Likewise.
2314 * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
2315 check_df): Likewise.
2316 * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
2317 real_arithmetic, real_compare, real_exponent, real_ldexp,
2318 real_identical, real_to_integer, real_to_integer2, real_to_decimal,
2319 real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
2320 real_digit, real_nan, real_maxval, round_for_format, real_convert,
2321 real_to_target, real_from_target, real_hash, encode_ieee_single,
2322 encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
2323 encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
2324 encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
2325 * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
2326 extract_insn, peep2_next_insn, peep2_reg_dead_p,
2327 peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
2328 if_test_bypass_p): Likewise.
2329 * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
2330 stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
2331 emit_swap_insn, swap_to_top, move_for_stack_reg,
2332 subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
2333 compensate_edge, convert_regs_1): Likewise.
2334 * regclass.c (init_reg_sets, init_reg_sets_1,
2335 memory_move_secondary_cost): Likewise.
2336 * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
2338 * reload.c (push_secondary_reload, find_valid_class, push_reload,
2339 operands_match_p, decompose, immune_p, find_reloads,
2340 find_reloads_toplev, find_reloads_address_1, subst_reloads,
2341 copy_replacements, refers_to_regno_for_reload_p,
2342 reg_overlap_mentioned_for_reload_p): Likewise.
2343 * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
2344 count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
2345 verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
2346 reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
2347 choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
2348 do_output_reload, fixup_abnormal_edges): Likewise.
2349 * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
2350 fill_slots_from_thread, relax_delay_slots): Likewise.
2351 * resource.c (mark_referenced_resources, mark_set_resources):
2353 * rtl.c (copy_rtx, rtx_equal_p): Likewise.
2354 * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
2355 dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
2356 subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
2357 find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
2358 hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
2359 * rtlhooks.c (gen_lowpart_general): Likewise.
2360 * sbitmap.c (sbitmap_difference): Likewise.
2361 * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
2362 sched_analyze, add_forward_dependence): Likewise.
2363 * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
2364 * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
2365 schedule_insns): Likewise.
2366 * sched-vis.c (print_pattern): Likewise.
2367 * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
2368 * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
2369 simplify_const_relational_operation, simplify_ternary_operation,
2370 simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
2372 * sreal.c (copy, sreal_sub, sreal_div): Likewise.
2373 * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
2374 resolve_operand_name_1, expand_return, expand_decl,
2375 expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
2376 * stor-layout.c (put_pending_size, smallest_mode_for_size,
2377 int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
2378 set_sizetype, get_mode_bounds): Likewise.
2380 2004-09-09 Zack Weinberg <zack@codesourcery.com>
2382 * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
2383 * config/arm/pecoff.h, config/i386/beos-elf.h
2384 * config/i386/cygming.h, config/i386/i386-interix.h:
2385 Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove
2386 comment cloned from manual.
2387 * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
2389 2004-09-09 Frank Ch. Eigler <fche@redhat.com>
2391 * builtins.c (build_va_arg_indirect_ref): New function.
2392 (std_gimplify_va_arg_expr): Call it instead of mudflap check and
2393 build_fold_indirect_ref.
2394 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
2395 * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
2396 * tree.h: Declare new function.
2398 2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
2400 * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
2401 dumping for development builds.
2402 * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
2403 development builds only.
2404 * genattrtab.c (write_eligible_delay): Fix typo in previous
2406 * tree.c (iterative_hash_expr): Replace gcc_unreachable with
2409 2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
2411 * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
2412 cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
2413 process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
2414 hoist_code, extract_mentioned_regs_helper, compute_store_table,
2415 insert_store): Use gcc_assert and gcc_unreachable.
2416 * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
2417 gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
2418 ggc_record_overhead): Likewise.
2419 * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
2420 init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
2421 ggc_pop_context, clear_marks, validate_free_objects,
2422 ggc_pch_read): Likewise.
2423 * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
2424 ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
2425 ggc_push_context, check_cookies, ggc_collect,
2426 ggc_print_statistics): Likewise.
2427 * gimple-low.c (lower_function_body, lower_stmt,
2428 lower_bind_expr): Likewise.
2429 * gimplify.c (gimple_tree_eq, push_gimplify_context,
2430 pop_gimplify_context, gimple_pop_condition, create_tmp_var,
2431 declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
2432 mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
2433 gimplify_case_label_expr, gimplify_exit_block_expr,
2434 canonicalize_component_ref, gimplify_compound_lval,
2435 gimplify_self_mod_expr, gimplify_call_expr,
2436 gimplify_init_ctor_eval, gimplify_init_constructor,
2437 gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
2438 gimplify_expr, check_pointer_types_r,
2439 force_gimple_operand): Likewise.
2440 * global.c (global_alloc, build_insn_chain): Likewise.
2441 * graph.c (clean_graph_dump_file,
2442 finish_graph_dump_file): Likewise.
2443 gcov-io.c (gcov_open): Use GCOV_CHECK.
2445 2004-09-09 Richard Sandiford <rsandifo@redhat.com>
2447 * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
2449 2004-09-09 Jan Hubicka <jh@suse.cz>
2452 * tree-inline.c (expand_call_inline): Make overactive sanity check
2455 2004-09-09 Jan Hubicka <jh@suse.cz>
2457 * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
2460 2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
2462 * Makefile.in (gengtype): Use $(BUILD_ERRORS).
2463 (gengtype.o): Depend on errors.h.
2464 * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
2465 (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
2466 attr_alt_subset_p, attr_alt_subset_of_compl_p,
2467 attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
2468 write_test_expr, write_attr_value, write_eligible_delay,
2469 make_internal_attr, make_numeric_value): Likewise.
2470 * genautomata.c (regexp_name, get_str_vect,
2471 gen_presence_absence_set, automaton_decl_hash,
2472 automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
2473 decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
2474 process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
2475 test_unit_reserv, it_is_empty_reserv_sets,
2476 reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
2477 reserv_sets_and, output_cycle_reservs, get_free_state,
2478 intersected_state_reservs_p, states_union, remove_arc,
2479 copy_insn_regexp, transform_1, transform_2, transform_3,
2480 regexp_transform_func, store_alt_unit_usage,
2481 check_regexp_units_distribution, process_seq_for_forming_states,
2482 process_alts_for_forming_states, make_automaton,
2483 form_arcs_marked_by_insn, create_composed_state,
2484 set_out_arc_insns_equiv_num, partition_equiv_class,
2485 process_insn_equiv_class, set_insn_equiv_classes,
2486 units_to_automata_heuristic_distr, form_regexp,
2487 longest_path_length, output_dfa_max_issue_rate, add_vect,
2488 out_state_arcs_num, add_vect_el, output_trans_table,
2489 output_state_alts_table, output_dead_lock_vect,
2490 output_max_insn_queue_index_def,
2491 output_min_insn_conflict_delay_func,
2492 output_internal_insn_latency_func, output_print_reservation_func,
2493 output_cpu_unit_reservation_p, output_state_arcs,
2494 make_insn_alts_attr, make_internal_dfa_insn_code_attr,
2495 make_default_insn_latency_attr,
2496 form_important_insn_automata_lists): Likewise.
2497 * genemit.c (gen_exp, output_add_clobbers,
2498 output_added_clobbers_hard_reg_p): Likewise.
2499 * genextract.c (print_path, main): Likewise.
2500 * genflags.c (gen_macro): Likewise.
2501 * gengenrtl.c: Include errors.h
2502 (type_from_format, accessor_from_format): Likewise.
2503 * gengtype.c (get_file_basename, output_mangled_typename,
2504 walk_type, write_types_process_field,
2505 write_types_local_process_field): Likewise.
2506 * genmodes.c (complete_mode): Likewise.
2507 * genopinit.c (gen_insn): Likewise.
2508 * genoutput.c (output_insn_data, check_constraint_len,
2509 constraint_len): Likewise.
2510 * genpreds.c (add_mode_tests):Likewise.
2511 * gen-protos.c (add_hash): Likewise.
2512 * genrecog.c (find_operand, find_matching_operand,
2513 validate_pattern, add_to_sequence, maybe_both_true,
2514 nodes_identical_1, merge_trees, write_switch, write_cond,
2515 write_action, is_unconditional, make_insn_sequence,
2516 debug_decision_2): Likewise.
2517 * gensupport.c (is_predicable, collect_insn_data,
2518 alter_predicate_for_insn, maybe_eval_c_test): Likewise.
2520 2004-09-09 Jan Hubicka <jh@suse.cz>
2522 * basic-block.h (guess_outgoing_edge_probabilities): Declare.
2523 * cfgbuild.c (compute_outgoing_frequencies): When probability is
2525 (find_many_sub_basic_blocks): Do update profile only when it is
2527 * predict.c (set_even_probabilities): Break out from ...
2528 (combine_predictions_for_insn): ... here; deal with
2529 !can_predict_insn_p insns.
2530 (combine_predictions_for_bb): Use set_even_probabilities.
2531 (bb_estimate_probability_locally): Break out from ....
2532 (estimate_probability): ... here.
2533 (guess_outgoing_edge_probabilities): New entry point.
2535 2004-09-09 Nathan Sidwell <nathan@codesourcery.com>
2537 * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
2538 handle_braces, process_brace_body, main, used_arg,
2539 set_multilib_dir, print_multilib_info): Use fatal, not abort.
2541 * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
2543 * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
2544 * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
2545 Morgan's theorem in last checkin.
2547 2004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2548 Nathan Sidwell <nathan@codesourcery.com>
2550 * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
2551 Use gcc_assert, gcc_unreachable & internal_error instead of abort.
2552 * timevar.c (timevar_push, timevar_pop, timevar_start,
2553 timevar_stop): Likewise.
2554 * toplev.c (default_pch_valid_p): Likewise.
2555 * tracer.c (tail_duplicate): Likewise.
2556 * tree-alias-common.c (get_alias_var_decl,
2557 get_values_from_constructor, create_alias_var, delete_alias_vars,
2558 empty_points_to_set, same_points_to_set, ptr_may_alias_var):
2560 * tree.c (tree_size, make_node_stat, copy_node_stat,
2561 build_int_cst_wide, integer_all_onesp, list_length, chainon,
2562 tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
2563 substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
2564 build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
2565 lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
2566 build_method_type_directly, decl_type_context, get_callee_fndecl,
2567 get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
2568 tree_fold_gcd): Likewise.
2569 * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
2570 make_cond_expr_edges, group_case_labels, tree_merge_blocks,
2571 cleanup_control_expr_graph, find_taken_edge,
2572 find_taken_edge_switch_expr, phi_alternatives_equal,
2573 is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
2574 stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
2575 tree_split_edge, tree_verify_flow_info, thread_jumps,
2576 tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
2577 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
2578 chrec_fold_multiply_poly_poly): Likewise.
2579 * tree-complex.c (extract_component, expand_complex_division,
2580 expand_complex_comparison, expand_complex_operations_1,
2581 build_replicated_const, expand_vector_operations_1): Likewise.
2582 * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
2583 build_classic_dir_vector): Likewise.
2584 * tree-dfa.c (compute_immediate_uses_for_phi,
2585 compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
2586 create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
2587 * tree-dump.c (dequeue_and_dump): Likewise.
2588 * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
2589 record_in_finally_tree, replace_goto_queue_1,
2590 maybe_record_in_goto_queue, verify_norecord_switch_expr,
2591 do_return_redirection): Likewise.
2592 * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
2593 add_to_dst_predicate_list, find_phi_replacement_condition,
2594 replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
2596 * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
2597 initialize_inlined_parameters, declare_return_variable,
2598 estimate_num_insns_1, expand_call_inline, expand_calls_inline,
2599 optimize_inline_calls, copy_tree_r): Likewise.
2600 * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
2601 ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
2602 * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
2603 tsi_split_statement_list_after, tsi_split_statement_list_before):
2605 * tree-mudflap.c (mf_varname_tree): Likewise.
2606 * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
2607 lookup_tramp_for_decl, convert_all_function_calls): Likewise.
2608 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2609 * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
2610 coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
2611 free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
2613 * tree-phinodes.c (resize_phi_node, add_phi_arg,
2614 remove_all_phi_nodes_for): Likewise.
2615 * tree-pretty-print.c (op_prio, print_call_name): Likewise.
2616 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2617 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
2618 * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
2619 sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
2620 generate_one_element_ref, generate_element_copy,
2621 generate_element_zero, scalarize_copy, scalarize_init,
2622 scalarize_ldst): Likewise.
2623 * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
2624 add_may_alias, add_pointed_to_expr, add_pointed_to_var,
2625 collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
2626 * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
2627 * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
2628 set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
2629 widen_bitfield, ccp_fold_builtin): Likewise.
2630 * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
2631 replace_exp_1, propagate_tree_value): Likewise.
2632 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
2633 * tree-ssa-dce.c (set_control_dependence_map_bit,
2634 find_control_dependence, find_pdom, mark_operand_necessary,
2635 mark_stmt_if_obviously_necessary,
2636 mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
2637 * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
2638 simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
2639 eliminate_redundant_computations, avail_expr_eq): Likewise.
2640 * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
2641 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2642 duplicate_blocks): Likewise.
2643 * tree-ssa-loop-im.c (for_each_index, set_level,
2644 is_call_clobbered_ref): Likewise.
2645 * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
2646 stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
2647 find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
2648 peel_address, ptr_difference_cost, may_replace_final_value,
2649 determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
2650 rewrite_use, rewrite_uses): Likewise.
2651 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
2652 check_loop_closed_ssa_use): Likewise.
2653 * tree-ssanames.c (make_ssa_name): Likewise.
2654 * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
2655 finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
2656 get_stmt_operands, get_expr_operands, get_asm_expr_operands,
2657 get_indirect_ref_operands, add_stmt_operand): Likewise.
2658 * tree-ssa-pre.c (value_exists_in_set_bitmap,
2659 value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
2660 phi_translate, valid_in_set, compute_antic,
2661 find_or_generate_expression, create_expression_by_pieces, insert_aux,
2662 create_value_expr_from, eliminate): Likewise.
2663 * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
2664 * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
2666 * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
2667 eliminate_tail_call): Likewise.
2668 * tree-vectorizer.c (vect_create_index_for_array_ref,
2669 vect_align_data_ref, vect_create_data_ref,
2670 vect_create_destination_var, vect_get_vec_def_for_operand,
2671 vect_finish_stmt_generation, vect_transform_stmt,
2672 vect_transform_loop_bound, vect_transform_loop,
2673 vect_analyze_operations): Likewise.
2674 * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
2676 * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
2677 get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
2678 bsi_after_labels, bsi_last): Likewise.
2679 * tree-ssa-live.c (var_union, change_partition_var,
2680 create_ssa_var_map, calculate_live_on_entry, root_var_init,
2681 type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
2683 * tree-ssa-live.h (partition_is_global, live_entry_blocks,
2684 tpa_find_tree): Likewise.
2685 (register_ssa_partition_check): Declare.
2686 (register_ssa_partition): use it.
2687 * tree-ssa-live.c: Include errors.h.
2688 (register_ssa_partition_check): New.
2689 * tree-ssa-operands.c: Include errors.h.
2690 * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
2692 2004-09-09 Richard Sandiford <rsandifo@redhat.com>
2693 Catherine Moore <clm@redhat.com>
2695 * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
2696 (FRV_CPU_FR405): New processor enums.
2697 (frv_issue_rate, frv_acc_group): Declare.
2698 * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
2699 (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
2700 (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
2701 (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
2702 (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
2703 handled by CPP_SPEC.
2704 (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
2705 (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
2706 (ACC_MASK): New macro.
2707 (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
2708 (TARGET_MEDIA_FR450): New macro.
2709 (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
2710 (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
2711 (LABEL_ALIGN_AFTER_BARRIER): Define.
2712 (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
2713 (IACC_FIRST, IACC_LAST): New pair of SPRs.
2714 (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
2715 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
2716 (REGISTER_NAMES): Add entries for new registers.
2717 (REG_CLASS_CONTENTS): Update for new register ranges.
2718 (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
2719 (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
2720 (PACKING_FLAG_USED_P): Delete.
2721 (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
2722 (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
2723 (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
2724 (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
2725 (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
2726 (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
2727 (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
2728 (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
2729 (CPU_UNITS_QUERY): Define to 1.
2730 * config/frv/frv.c: Include gt-frv.h
2731 (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
2732 (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
2733 (frv_insn_group): New enumeration.
2734 (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
2735 (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
2736 (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
2737 (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the
2738 gap left by REGSTATE_LIVE.
2739 (regstate_t): New typedef.
2740 (TARGET_MACHINE_DEPENDENT_REORG): Define.
2741 (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
2742 (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
2743 Initialize frv_unit_codes[] and frv_type_to_unit[].
2744 (frv_conditional_register_usage): Remove redundant fixing of
2745 accumulator registers.
2746 (frv_insn_packing_flag): Update specification.
2747 (frv_function_prologue): Don't set frv_insn_packing_flag here.
2748 Zero out frv_nops[].
2749 (frv_expand_epilogue): Remove comments about the no-longer-present
2751 (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
2752 PACKING_FLAG_USED_P() when deciding whether to pack instructions.
2753 (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
2754 of the new meaning of frv_insn_packing_flag. Emit an mnop.p if
2755 packing is disabled and if INSN can only issue to M1.
2756 (call_operand): Check TARGET_LONG_CALLS.
2757 (acc_operand, even_acc_operand, quad_acc_operand)
2758 (accg_operand): Simplify. Don't accept pseudo registers.
2759 (output_move_single): Handle SPR<-zero moves.
2760 (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}.
2761 (frv_registers_update, frv_registers_used_p): Delete.
2762 (frv_registers_set_p): Delete.
2763 (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
2764 (frv_issues_to_branch_unit_p): New function.
2765 (frv_packet): New structure.
2766 (frv_cond_flags, frv_regstate_conflict_p): New functions.
2767 (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
2768 (frv_registers_update_1, frv_registers_update): New functions.
2769 (frv_start_packet, frv_start_packet_block, frv_finish_packet)
2770 (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
2771 (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
2772 (frv_sort_insn_group, frv_reorder_packet): New functions.
2773 (frv_pack_insns): Use frv_reorder_packet.
2774 (frv_packet_address): New variable.
2775 (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
2776 (frv_register_nop, frv_reorg): New functions.
2777 (bdesc_1arg): Add __SCUTSS.
2778 (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
2779 __SUBSS, __SLASS and __SCAN.
2780 (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
2781 (bdesc_int_void2arg, bdesc_prefetches): New arrays.
2782 (frv_init_builtins): Register the above builtins.
2783 (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
2784 registers. Turn the referenced accumulators into global registers.
2785 (frv_read_iacc_argument): New function.
2786 (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
2787 (frv_split_iacc_move): New function.
2788 (frv_expand_builtin): Handle the new builtins.
2789 * config/frv/frv.md: Replace old schedulers with new order-independent
2790 ones. Add schedulers for the FR405, FR450 and FR550. Describe new
2792 (cpu): Add fr550, fr450 and fr405.
2793 (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
2794 mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7.
2795 (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
2796 (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
2797 (fnop, mnop): New patterns.
2798 (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
2800 (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
2801 (mclracca8): Use ACC_MASK to determine the upper set of accumulator
2803 (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
2804 (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
2805 (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
2806 (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
2807 (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
2808 (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
2809 (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
2810 (frv_prefetch0, frv_prefetch): New patterns.
2811 * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
2812 -mcpu=simple. Add -mcpu=fr550.
2813 (MULTILIB_DIRNAMES): Update accordingly.
2814 (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
2816 * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
2817 -mlong-calls and -malign-labels options for FR-V.
2819 2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
2822 * c-tree.h (struct c_declspecs): New.
2823 (struct c_declarator, struct c_type_name, struct c_parm): Update
2825 (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
2826 start_function, start_decl, build_c_parm,
2827 make_pointer_declarator): Update prototypes.
2828 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
2829 declspecs_add_scspec, declspecs_add_attrs): New.
2830 (split_specs_attrs): Remove.
2831 * c-parse.in (%union): Add dsptype.
2832 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
2833 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
2834 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
2835 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
2836 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
2837 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
2838 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
2839 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
2840 declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
2841 declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
2842 maybe_type_quals_attrs): Change to dsptype.
2843 (struct c_declspec_stack): New.
2844 (current_declspecs, declspec_stack): Change type.
2845 (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
2847 (extdefs): Likewise.
2848 (setspecs): Likewise.
2849 (fndef): Use current_declspecs for empty declspecs list.
2850 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
2851 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
2852 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
2853 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
2854 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
2855 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
2856 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
2857 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
2858 structures and helper functions. Update comments.
2859 (typespec_nonattr): Correct comment.
2860 (maybe_type_quals_attrs, typename): Update to new structures.
2861 * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
2862 shadow_tag, shadow_tag_warned, start_function, start_decl,
2863 build_c_parm, make_pointer_declarator,
2864 set_array_declarator_inner, groktypename): Update to new
2866 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
2867 declspecs_add_scspec, declspecs_add_attrs): New.
2868 (split_specs_attrs): Remove.
2869 (shadow_tag_warned): Make warning for useless type names a
2870 pedwarn. Give hard error for long, short, signed, unsigned or
2871 _Complex used with struct, union or enum in empty declaration.
2872 Make found_tag a bool.
2873 (grokdeclarator): Remove checks now done at parse time.
2875 2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
2877 * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
2878 c_declarator, struct c_type_name, struct c_parm): New.
2879 (build_array_declarator, set_array_declarator_inner,
2880 get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
2881 start_function, start_decl, build_c_parm, build_attrs_declarator,
2882 build_function_declarator, make_pointer_declarator, c_cast_expr,
2883 store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
2884 (build_id_declarator): New.
2885 * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
2887 * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
2888 ARG_INFO_OTHERS): Remove.
2889 (build_id_declarator): New.
2890 (build_array_declarator, set_array_declarator_inner, groktypename,
2891 start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
2892 grokfield, start_function, store_parm_decls_newstyle,
2893 store_parm_decls_oldstyle, store_parm_decls,
2894 build_c_parm, build_attrs_declarator, build_function_declarator,
2895 make_pointer_declarator, grokdeclarator): Update to new
2897 * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
2899 (declarator, notype_declarator, after_type_declarator,
2900 parm_declarator, parm_declarator_starttypename,
2901 parm_declarator_nostarttypename, array_declarator, typename,
2902 absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
2903 absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
2904 parmlist_1, parmlist_2, parmlist_or_identifiers,
2905 parmlist_or_identifiers_1): Use these types.
2906 (primary, after_type_declarator, parm_declarator_starttypename,
2907 notype_declarator, component_decl, component_declarator,
2908 component_notype_declarator, typename, absdcl,
2909 absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
2910 parmlist_2, parmlist_or_identifiers_1): Update to new structures.
2912 2004-09-09 Joseph S. Myers <jsm@polyomino.org.uk>
2914 * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
2915 in_typeof, record_maybe_used_decl, pop_maybe_used,
2916 c_expr_sizeof_expr, c_expr_sizeof_type): New.
2917 * c-decl.c (parser_obstack): New.
2918 (c_init_decl_processing): Initialize parser_obstack.
2919 (c_write_global_declarations_1): Check for used but undefined
2921 * c-parse.in (%union): Add otype.
2922 (save_obstack_position): New.
2924 (unary_expr): Update in_sizeof and in_alignof. Use
2925 c_expr_sizeof_expr and c_expr_sizeof_type.
2926 (sizeof): Update in_sizeof.
2927 (alignof): Update in_alignof.
2928 (typeof): Update in_typeof.
2929 (typespec_nonreserved_nonattr): Call pop_maybe_used.
2930 * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
2931 maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
2932 pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
2933 (build_external_ref): Set C_DECL_USED or call
2934 record_maybe_used_decl if appropriate.
2935 * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
2937 2004-09-08 Eric Christopher <echristo@redhat.com>
2939 * builtins.c: Fix prototype for fold_builtin_atan.
2941 2004-09-08 Eric Christopher <echristo@redhat.com>
2943 * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
2944 fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
2945 fold_builtin_atan): New functions. Migrate function bodies...
2946 (fold_builtin_1): ... from here.
2948 2004-09-09 Alan Modra <amodra@bigpond.net.au>
2950 * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
2953 2004-09-08 David Edelsohn <edelsohn@gnu.org>
2955 * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
2956 * config/rs6000/power5.md (power5-lmul): Same.
2958 2004-09-08 Richard Henderson <rth@redhat.com>
2961 * function.c (expand_function_end): Have fall-off-the-end
2962 return path jump around return register setup.
2964 2004-09-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2966 * config/sparc/sparc.c (sparc_indent_opcode): New variable.
2967 (output_return): Do not test for the presence of the 'unimp' insn.
2968 Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
2969 as predicates instead of custom ones. Return raw strings when
2971 (output_sibcall): Likewise. Concatenate strings.
2972 (output_ubranch): Remove kludge for TurboSPARC.
2973 (output_cbranch): Remove 'noop' parameter. Do not output 'nop'.
2974 (output_v9branch): Likewise.
2975 (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
2976 <#>: Set sparc_indent_opcode if the delay slot is filled.
2978 <)>: New operand to emit the displacement from the saved PC on return.
2980 * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
2981 (ASM_OUTPUT_OPCODE): New macro.
2982 (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
2983 * config/sparc/sparc.md (normal_branch, inverted_branch,
2984 normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
2985 inverted_fpe_branch): Adjust call to output_cbranch.
2986 (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
2987 call to output_v9branch.
2988 * config/sparc/sparc-protos.h (output_cbranch): Adjust.
2989 (output_v9branch): Likewise.
2991 2004-09-08 Devang Patel <dpatel@apple.com>
2993 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
2994 -segs_read_only_addr and -segs_read_write_addr.
2995 (WORD_SWITCH_TAKES_ARG): Same.
2997 * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
2998 -segs_read_write_addr.
3000 2004-09-08 Richard Henderson <rth@redhat.com>
3002 * function.c (reference_callee_copied): New.
3003 (assign_parm_setup_reg): Use it.
3004 * calls.c (initialize_argument_information): Likewise.
3005 (emit_library_call_value_1): Likewise.
3006 * function.h (reference_callee_copied): Declare.
3008 * target.h (struct gcc_target): Add callee_copies.
3009 * target-def.h (TARGET_CALLEE_COPIES): New.
3010 (TARGET_PASS_BY_REFERENCE): Update default.
3011 * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3012 * targhooks.c (hook_callee_copies_named): New.
3013 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
3014 hook_pass_by_reference_false.
3015 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
3016 * targhooks.h: Update decls.
3017 * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
3018 * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3019 * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
3020 * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
3021 * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3022 * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
3023 * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3024 * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
3025 * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3026 * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
3027 (mips_callee_copies): New.
3028 * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3029 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
3030 * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3031 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
3032 * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3033 * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
3034 * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3035 * config/sh/sh.c (sh_callee_copies): New.
3036 (TARGET_CALLEE_COPIES): New.
3037 * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3038 * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
3039 * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
3040 * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
3041 for FUNCTION_ARG_CALLEE_COPIES.
3042 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
3044 2004-09-08 Devang Patel <dpatel@apple.com>
3046 * tree-if-conv.c (find_phi_replacement_condition): Return true
3048 (replace_phi_with_cond_modify_expr): Select conditional expr args
3049 based on true edge basic block.
3051 2004-09-08 Jan Hubicka <jh@suse.cz>
3053 * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
3054 variables being alias set.
3056 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
3058 * final.c (shorten_branches, final, get_insn_template,
3059 output_alternate_entry_point, final_scan_insn, alter_subreg,
3060 alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
3061 leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
3062 * fix-header.c (lookup_std_proto): Likewise.
3063 * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
3064 verify_local_live_at_start, update_life_info, mark_reg,
3065 calculate_global_regs_live, allocate_reg_life_data,
3066 init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
3067 ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
3068 attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
3069 * fold-const.c (force_fit_type, div_and_round_double,
3070 may_negate_without_overflow_p, int_const_binop, const_binop,
3071 size_binop, size_diffop, fold_convert_const, fold_convert,
3072 invert_tree_comparison, swap_tree_comparison,
3073 comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
3074 range_binop, make_range, fold_cond_expr_with_comparison,
3075 fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
3076 fold_abs_const, fold_not_const, fold_relational_const, round_up,
3077 round_down): Likewise.
3078 * function.c (find_function_data, assign_stack_temp_for_type,
3079 instantiate_virtual_regs_lossage, aggregate_value_p,
3080 assign_parm_find_entry_rtl, assign_parm_setup_block,
3081 expand_function_start, expand_function_end, keep_stack_depressed,
3082 handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
3084 2004-09-08 Daniel Berlin <dberlin@dberlin.org>
3086 * Makefile.in (tree-loop-linear.o): Added.
3087 (OBJS-common): Add tree-loop-linear.o
3088 * common.opt: New flag, ftree-loop-linear.
3089 * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
3090 * tree-flow.h: Add prototype for linear_transform_loops.
3091 * tree-optimize.c: Add linear transform after vectorization.
3092 * tree-pass.h: Add struct pass_linear_transform.
3093 * tree-ssa-loop.c: Add pass_linear_transform.
3094 * tree-loop-linear.c: New file.
3095 * lambda-code.c: gcc_assertify.
3096 (gcc_loop_to_lambda_loop): Handle all exit tests.
3097 Handle case where we have (invariant >= induction var).
3098 (find_induction_var_from_exit_cond): Ditto.
3100 2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
3102 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
3103 memory tag is call clobbered, so are its aliases.
3104 (group_aliases): When two memory tags being grouped, if one is
3105 call clobbered, so are the other and its aliases.
3106 (add_may_alias): Remove call-clobbering stuff.
3107 (replace_may_alias): Likewise.
3108 (merge_pointed_to_info): Merge pt_global_mem
3110 2004-09-08 Jan Hubicka <jh@suse.cz>
3112 * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
3113 * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
3114 (cgraph_expand_function): Remove stale cgraph edges of currently
3115 compiled function; fix non-unit-at-a-time code copying function
3116 node for later reuse.
3118 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
3120 * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
3121 (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
3122 (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
3123 (vec_gc_free, vec_heap_free): New.
3124 * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
3125 (DEF_VEC_P): Add allocator argument. Adjust.
3126 (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
3127 (DEF_VEC_O): Add allocator argument. Adjust.
3130 * tree.h (tree): Define a GC'd vector.
3131 * lamba-code.c (lambda_loop): Likewise.
3132 * value-prof.h (histogram_value): Likewise.
3134 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
3136 * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
3137 (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
3138 gen_lowpart_common, gen_highpart, gen_highpart_mode,
3139 subreg_highpart_offset, operand_subword, operand_subword_force,
3140 mem_expr_equal_p, set_mem_attributes_minus_bitpos,
3141 set_mem_alias_set, change_address_1, verify_rtx_sharing,
3142 copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
3143 try_split, add_insn_after, add_insn_before, remove_insn,
3144 remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
3145 emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
3146 emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
3147 set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
3148 gen_const_vector_0, emit_copy_of_insn_after): Likewise.
3149 * et-forest.c (set_prev, set_next, et_check_occ_sanity,
3150 record_path_before_1, check_path_after_1, check_path_after): Likewise.
3151 * except.c (gen_eh_region, resolve_one_fixup_region,
3152 remove_unreachable_regions, convert_from_eh_region_ranges_1,
3153 add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
3154 connect_post_landing_pads, sjlj_emit_function_exit,
3155 remove_exception_handler_label, remove_eh_handler,
3156 reachable_next_level, collect_one_action_chain,
3157 output_function_exception_table): Likewise.
3158 * explow.c (trunc_int_for_mode, copy_to_mode_reg,
3159 optimize_save_area_alloca, allocate_dynamic_stack_space,
3160 probe_stack_range, hard_function_value): Likewise.
3161 * expmed.c (mode_for_extraction, store_bit_field,
3162 store_fixed_bit_field, extract_bit_field, expand_shift,
3163 expand_mult_const, expand_mult, choose_multiplier,
3164 expand_mult_highpart, expand_divmod, emit_store_flag,
3165 do_cmp_and_jump): Likewise.
3166 * expr.c (convert_move, convert_modes, move_by_pieces,
3167 move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
3168 move_block_from_reg, gen_group_rtx, emit_group_load,
3169 emit_group_move, emit_group_store, use_reg, use_regs,
3170 can_store_by_pieces, store_by_pieces, store_by_pieces_1,
3171 emit_move_insn, emit_move_insn_1, emit_push_insn,
3172 expand_assignment, store_expr, count_type_elements,
3173 store_constructor, store_field, safe_from_p, expand_var,
3174 expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
3176 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
3178 * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
3179 gcc_assert and gcc_unreachable.
3180 * ddg.c (create_ddg_dependence, add_deps_for_def,
3181 add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
3182 * df.c (df_ref_unlink, df_ref_record, df_uses_record,
3183 df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
3184 df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
3185 df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
3186 df_bb_reg_live_end_p, df_bb_regs_lives_compare,
3187 df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
3188 dataflow_set_copy, hybrid_search, diagnostic.c,
3189 diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
3190 * dojump.c (do_jump): Likewise.
3191 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
3192 compute_dom_fast_query, calculate_dominance_info,
3193 free_dominance_info, get_immediate_dominator,
3194 set_immediate_dominator, get_dominated_by,
3195 redirect_immediate_dominators, nearest_common_dominator,
3196 dominated_by_p, verify_dominators, recount_dominator,
3197 iterate_fix_dominators, add_to_dominance_info,
3198 delete_from_dominance_info): Likewise.
3199 * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
3200 dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
3201 dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
3202 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
3203 initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
3204 flush_queued_reg_saves, dwarf2out_frame_debug_expr,
3205 dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
3206 output_call_frame_info, output_loc_operands, build_cfa_loc,
3207 decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
3208 AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
3209 AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
3210 splice_child_die, attr_checksum, same_dw_val_p,
3211 break_out_includes, build_abbrev_table, size_of_die, mark_dies,
3212 unmark_dies, value_format, output_loc_list, output_die,
3213 output_pubnames, output_aranges, base_type_die, is_base_type,
3214 modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
3215 mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
3216 field_byte_offset, add_data_member_location_attribute,
3217 add_const_value_attribute, rtl_for_decl_location,
3218 add_location_or_const_value_attribute, add_byte_size_attribute,
3219 add_bit_offset_attribute, add_bit_size_attribute,
3220 add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
3221 decl_start_label, gen_formal_parameter_die,
3222 gen_type_die_for_member, gen_subprogram_die, gen_label_die,
3223 gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
3224 force_decl_die, force_type_die, gen_decl_die,
3225 dwarf2out_imported_module_or_decl, prune_unused_types_prune,
3226 dwarf2out_finish): Likewise.
3228 2004-09-08 Andreas Tobler <toa@pop.agri.ch>
3230 * Makefile.in (builtins.o): Depend on tree-mudflap.h.
3231 * builtins.c: Include tree-mudflap.h.
3233 2004-09-08 Uros Bizjak <uros@kss-loka.si>
3235 * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
3236 force operand 0.0 into register in XFmode. Also do not force
3237 operand 0.0 into register if !TARGET_CMOVE.
3238 * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
3239 (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
3240 implement ftst x87 instruction.
3241 (*fp_jcc_7): New insn pattern. Change corresponding split
3242 pattern to handle "general_operand" instead of
3243 "nonimmediate_operand".
3245 2004-09-08 Ben Elliston <bje@au.ibm.com>
3247 * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
3249 2004-09-07 Frank Ch. Eigler <fche@redhat.com>
3251 * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
3252 generated from standard va_arg expansion.
3253 * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
3255 (mf_varname_tree, mf_file_function_line_tree): Add some support
3256 for column numbers if compiled with USE_MAPPED_LOCATION.
3258 2004-09-07 Ziemowit Laski <zlaski@apple.com>
3260 * c-decl.c (groktypename_in_parm_context): Remove function.
3261 * c-tree.h (groktypename_in_parm_context): Remove prototype.
3263 2004-09-07 Ziemowit Laski <zlaski@apple.com>
3265 * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
3266 * c-parse.in: Include c-common.h instead of objc-act.h.
3267 (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
3268 myparms, myparm): Remove %type declarations.
3269 (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
3270 objc_typename, objc_try_catch_stmt, optellipsis): Add %type
3272 (objc_inherit_code, objc_public_flag): Remove.
3273 (typespec_nonreserved_nonattr): Call
3274 objc_get_protocol_qualified_type() instead of get_static_reference()
3275 and get_protocol_reference().
3276 (stmt_nocomp): Call grokparm() on @catch parameter.
3277 (objcdef): Move semantic action to objc_finish_implementation().
3278 (classdef): Move semantic action to objc_start_class_interface(),
3279 objc_continue_interface(), objc_finish_interface(),
3280 objc_start_class_implementation(), objc_continue_implementation(),
3281 objc_start_category_interface() and
3282 objc_start_category_implementation().
3283 (protocoldef): Move semantic actions to objc_start_protocol() and
3284 objc_finish_interface().
3285 (ivar_decl_list): Remove nonterminal.
3286 (visibility_spec): Move semantic actions to objc_set_visibility().
3287 (ivar_decls): Remove assignment to $$.
3288 (ivar_decl): Rephrase in terms of component_decl; call
3289 objc_add_instance_variable().
3290 (ivars, ivar_declarator): Remove nonterminals.
3291 (opt_semi): New nonterminal.
3292 (methodtype): Remove semantic actions.
3293 (methoddef): Move semantic actions to objc_set_method_type(),
3294 objc_start_method_definition() and objc_finish_method_definition().
3295 (methodproto): Move semantic actions to objc_set_method_type() and
3296 objc_add_method_declaration().
3297 (methoddecl): Use objc_typename instead of typename; move semantic
3298 actions to objc_build_method_signature().
3299 (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
3300 (optparmlist): Express in terms of optparms and optellipsis.
3301 (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
3303 (keyworddecl): Use objc_typename instead of typename.
3304 (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
3305 and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
3307 2004-09-08 Alan Modra <amodra@bigpond.net.au>
3309 * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
3310 (MD_FALLBACK_FRAME_STATE_FOR): Update.
3311 * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
3312 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
3313 (MD_FROB_UPDATE_CONTEXT): Remove default.
3314 (uw_update_context_1): Instead #ifdef invocation.
3315 * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
3316 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
3317 * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
3318 (MD_UNWIND_SUPPORT): Undefine this instead.
3319 * config/i386/gnu.h: Likewise.
3320 * config/alpha/linux-unwind.h: New file, macro converted to
3321 function, extracted from..
3322 * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
3323 (MD_UNWIND_SUPPORT): Define.
3324 * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
3325 * config/i386/linux-unwind.h, config/i386/linux.h,
3326 config/i386/linux64.h: Likewise.
3327 * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
3328 MD_HANDLE_UNWABI too.
3329 * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
3330 * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
3331 * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
3332 * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
3333 * config/sparc/linux-unwind.h, config/sparc/linux.h,
3334 config/sparc/linux64.h: Likewise.
3335 * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
3336 SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
3337 * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
3338 config/rs6000/linux64.h: Likewise. Split out get_sigcontext
3339 function. Use ARG_POINTER_REGNUM for 32-bit temp reg too.
3341 2004-09-07 Jan Hubicka <jh@suse.cz>
3343 * cse.c (fold_rtx): Avoid building of
3344 (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
3346 * tree-ssa-pre.c (grand_bitmap_obstack): New.
3347 (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
3348 (init_pre): Initialize obstack.
3349 (fini_pre): Free obstack.
3351 2004-09-07 David Daney <ddaney@avtrex.com>
3353 * config.gcc: Added support for --with-divide=[breaks|traps] for
3355 * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
3356 (TARGET_DIVIDE_TRAPS): New macro.
3357 (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
3358 (OPTION_DEFAULT_SPECS): Added --with-divide= support.
3359 * config/mips/mips.c (mips_idiv_insns): Generate proper count on
3360 GENERATE_DIVIDE_TRAPS.
3361 (mips_output_division): Emit conditional trap if
3362 GENERATE_DIVIDE_TRAPS is set.
3363 * doc/install.texi: Document --with-divide.
3364 * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
3366 2004-09-07 Caroline Tice <ctice@apple.com>
3368 * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag,
3369 EDGE_CROSSING, to flags test case.
3371 2004-09-07 Jan Hubicka <jh@suse.cz>
3373 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
3376 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
3378 * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
3379 cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
3380 make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
3382 * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
3383 remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
3384 alloc_aux_for_edges, free_aux_for_edges): Likewise.
3385 * cfgcleanup.c (try_forward_edges,
3386 merge_blocks_move_predecessor_nojumps,
3387 merge_blocks_move_successor_nojumps): Likewise.
3388 * cfgexpand.c (expand_gimple_cond_expr,
3389 expand_gimple_tailcall): Likewise.
3390 * cfghooks.c (duplicate_block): Likewise.
3391 * cfglayout.c (record_effective_endpoints,
3392 insn_locators_initialize, change_scope, fixup_reorder_chain,
3393 verify_insn_chain, fixup_fallthru_exit_predecessor,
3394 duplicate_insn_chain, cfg_layout_finalize): Likewise.
3395 * cfgloopanal.c (check_irred): Likewise.
3396 * cfgloop.c (superloop_at_depth, flow_loops_free,
3397 flow_loop_entry_edges_find, flow_loops_find,
3398 flow_loop_outside_edge_p, get_loop_body,
3399 get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
3400 get_loop_exit_edges, num_loop_branches, cancel_loop,
3401 verify_loop_structure): Likewise.
3402 cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
3403 duplicate_loop_to_header_edge, create_preheader,
3404 create_loop_notes): Likewise.
3405 * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
3406 edirect_branch_edge, force_nonfallthru_and_redirect,
3407 rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
3408 commit_edge_insertions, commit_edge_insertions_watch_calls,
3409 purge_dead_edges, cfg_layout_redirect_edge_and_branch,
3410 cfg_layout_redirect_edge_and_branch_force,
3411 cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
3412 * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
3413 cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
3414 cgraph_varpool_node): Likewise.
3415 * cgraphunit.c (cgraph_finalize_function,
3416 cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
3417 cgraph_expand_function, cgraph_remove_unreachable_nodes,
3418 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3419 cgraph_mark_inline, cgraph_expand_all_functions,
3420 cgraph_build_static_cdtor): Likewise.
3421 * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx,
3422 simplify_logical, distribute_notes, insn_cuid): Likewise.
3423 * conflict.c (conflict_graph_add, print_conflict): Likewise.
3424 * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
3425 coverage_checksum_string): Likewise.
3426 * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
3427 hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
3428 cse_cc_succs, cse_condition_code_reg): Likewise.
3429 * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
3430 rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
3431 new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
3432 cselib_record_set): Likewise.
3434 2004-09-07 Jan Hubicka <jh@suse.cz>
3436 * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
3438 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
3440 * builtins.c (fold_builtin_strchr): Use build_int_cst, not
3442 (fold_builtin_strpbrk): Likewise.
3443 * expr.c (array_ref_low_bound): Likewise.
3444 * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
3445 interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
3446 * tree-sra.c (generate_element_zero): Likewise.
3447 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3448 * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
3449 add_old_iv_candidates, add_iv_candidates): Likewise.
3450 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3452 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
3454 * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
3455 * c-common.c (c_type_hash, c_common_nodes_and_builtins,
3456 c_expand_expr, boolean_increment, nonnull_check_p,
3457 check_function_arguments_recurse, fold_offsetof_1): Likewise.
3458 * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
3459 builtin_define_type_max): Likewise.
3460 * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
3461 implicit_decl_warning, builtin_function, build_compound_literal,
3462 complete_array_type, grokdeclarator, get_parm_info,
3463 start_function, store_parm_decls_oldstyle,
3464 c_write_global_declarations): Likewise.
3465 * c-format.c (get_constant, decode_format_attr,
3466 maybe_read_dollar_number, get_flag_spec, check_format_arg,
3467 check_format_types, format_type_warning,
3468 find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
3469 init_dynamic_diag_info, handle_format_attribute): Likewise.
3470 * c-gimplify.c (push_context, pop_context, finish_bc_block):
3471 * c-lex.c (c_lex_with_flags, lex_string): Likewise.
3472 * c-objc-common.c (c_tree_printer): Likewise.
3473 * c-pch.c (pch_init): Likewise.
3474 * c-pragma.c (maybe_apply_pragma_weak): Likewise.
3475 * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
3476 * c-typeck.c (c_incomplete_type_error, composite_type,
3477 common_pointer_type, common_type, same_translation_unit_p,
3478 tagged_types_tu_compatible_p, finish_init, pop_init_level,
3479 set_designator, set_nonincremental_init_from_string,
3480 process_init_element, c_finish_if_stmt): Likewise.
3481 * caller-save.c (init_caller_save, save_call_clobbered_regs,
3482 insert_restore, insert_save, insert_one_insn): Likewise.
3483 * calls.c (emit_call_1, compute_argument_block_size,
3484 precompute_arguments, expand_call, emit_library_call_value_1,
3485 store_one_arg): Likewise.
3487 2004-09-07 Nathan Sidwell <nathan@codesourcery.com>
3489 * configure.ac (enable-checking): Add release option. Reorganize
3490 to avoid repetition.
3491 * configure: Rebuilt.
3492 * doc/install.texi (enable-checking): Amend documentation.
3494 2004-09-06 H.J. Lu <hongjiu.lu@intel.com>
3497 * Makefile.in (specs.ready): Depend on cc1$(exeext).
3499 2004-09-06 James E Wilson <wilson@specifixinc.com>
3501 * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
3502 movdf_hardfloat_32bit): Split fG into two alternatives.
3503 (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
3505 * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
3507 2004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
3509 * final.c (output_in_slot): Delete.
3510 (final_scan_insn): Revert 2004-09-03 change.
3511 (output_asm_insn): Likewise.
3512 * config/sparc/sparc.c (output_return): Likewise.
3513 (output_sibcall): Likewise.
3515 2004-09-06 Jan Hubicka <jh@suse.cz>
3517 * loop.c (loop_dump_aux): Do not print RTL when not available.
3518 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
3519 frontend specific type nodes.
3520 (produce_memory_decl_rtl): Break out from ...
3521 (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly.
3522 (get_computation_at): Avoid random tree sharing.
3523 (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
3525 2004-09-06 Zack Weinberg <zack@codesourcery.com>
3527 * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
3528 unnecessary commands.
3530 2004-09-06 Mohan Embar <gnustuff@thisiscool.com>
3532 * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
3533 (bitmap.o): Likewise.
3535 2004-09-06 Paolo Bonzini <bonzini@gnu.org>
3537 Unify the management of RTL and tree-level dump files.
3539 * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
3540 Don't print function name to the dump file, the pass manager
3541 would do this for us. Add code from the top of
3542 rest_of_compilation, up to the initial RTL dump.
3543 * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
3544 close the DFI_sibling dump file.
3545 (rest_of_compilation): Don't do that here. Remove code up to the
3547 (init_optimization_passes): Remove.
3548 (pass_rest_of_compilation): Change pass name to NULL.
3549 * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
3550 Do not call init_optimization_passes.
3551 * toplev.h (init_optimization_passes): Remove.
3553 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
3554 finish_graph_dump_file): Remove SUFFIX parameter.
3555 * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
3556 finish_graph_dump_file): Likewise.
3558 * tree-pass.h (struct tree_opt_pass): Add `letter' field.
3559 * cfgexpand.c (pass_expand): Adjust.
3560 * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
3561 * passes.c (pass_rest_of_compilation): Adjust.
3562 * predict.c (pass_profile): Adjust.
3563 * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
3564 * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
3565 pass_split_crit_edges, pass_warn_function_return): Adjust.
3566 * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
3567 * tree-dfa.c (pass_referenced_vars): Adjust.
3568 * tree-eh.c (pass_lower_eh): Adjust.
3569 * tree-if-conv.c (pass_build_ssa): Adjust.
3570 * tree-into-ssa.c (pass_build_ssa): Adjust.
3571 * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
3572 * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
3573 * tree-nrv.c (pass_nrv): Adjust.
3574 * tree-optimize.c (pass_gimple, pass_all_optimizations,
3575 pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
3576 pass_init_datastructures): Adjust.
3577 * tree-outof-ssa.c (pass_del_ssa): Adjust.
3578 * tree-profile.c (pass_tree_profile): Adjust.
3579 * tree-sra.c (pass_sra): Adjust.
3580 * tree-ssa-alias.c (pass_may_alias): Adjust.
3581 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
3582 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
3583 * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
3584 * tree-ssa-dom.c (pass_dominator): Adjust.
3585 * tree-ssa-dse.c (pass_dse): Adjust.
3586 * tree-ssa-forwprop.c (pass_forwprop): Adjust.
3587 * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
3588 * tree-ssa-loop-ch.c (pass_ch): Adjust.
3589 * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
3590 pass_loop_done, pass_complete_unroll, pass_iv_canon,
3591 pass_iv_optimize, pass_vectorize): Adjust.
3592 * tree-ssa-phiopt.c (pass_phiopt): Adjust.
3593 * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
3594 * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
3595 pass_late_warn_uninnitialized): Adjust.
3596 * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
3598 * Makefile.in (tree-dump.o): Add new dependencies.
3599 * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
3600 * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
3602 * toplev.c (dump_file_name): New.
3603 * tree-dump.c (dump_enable_all): Add LETTER parameter.
3604 (struct dump_file_info): Add NUM and LETTER fields.
3605 (dump_files): Adjust and add RTL dump files.
3606 (dump_register): Add NUM and LETTER fields.
3607 (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
3608 (dump_begin): Use get_dump_file_name.
3609 (dump_switch_p_1): Adjust call to dump_enable_all.
3610 * tree-dump.h (dump_register): Adjust prototype.
3611 * tree-optimize.c (register_one_dump_file): Take dump file index.
3612 Support flags for RTL dumps.
3613 (register_dump_files): Fill in NUM field of struct dump_file_info.
3614 Track properties both when the gate is executed and when it is not.
3615 (execute_todo): Dump RTL. Add PROPERTIES parameter.
3616 (execute_one_pass): Pass properties to execute_todo. Handle VCG
3618 * tree-pass.h (dump_file_name): New.
3619 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
3622 * Makefile.in (passes.o): Add new dependencies.
3623 * passes.c (struct dump_file_info, enum dump_file_index,
3624 dump_file_tbl, init_optimization_passes): Remove.
3625 (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
3626 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
3628 (finish_optimization_passes): Update finish_graph_dump_file loop.
3629 (enable_rtl_dump_file): Remove.
3630 * tree-dump.c (dump_files): Adjust and add RTL dump files.
3631 (enable_rtl_dump_file): Add here.
3632 * tree.h (enum tree_dump_index): Add RTL dump file indices.
3633 * doc/invoke.texi (Debugging options): Document new RTL debugging
3636 2004-09-05 Kazu Hirata <kazu@cs.umass.edu>
3638 * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
3639 gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
3640 stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
3641 tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
3642 tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
3643 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
3644 tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
3645 vec.h: Fix comment formatting.
3647 2004-09-05 Kazu Hirata <kazu@cs.umass.edu>
3649 * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
3650 et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
3651 hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
3652 tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
3653 tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
3654 tree-ssa-loop-niter.c, tree-ssa-operands.c,
3655 tree-ssa-operands.h, tree-ssa-propagate.c,
3656 tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
3657 vec.c, vec.h: Fix comment typos. Follow spelling conventions.
3659 2004-09-05 Diego Novillo <dnovillo@redhat.com>
3661 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
3662 vectorizer is enabled.
3664 2004-09-05 Andreas Jaeger <aj@suse.de>
3666 * tree-if-conv.c: Spell check comments and clean up whitespace.
3668 2004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3670 * tree-ssa-loop-ivopts.c: New file.
3671 * Makefile.in (tree-ssa-loop-ivopts.c): Add.
3672 * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
3673 target_pres_cost, target_spill_cost): Declare.
3674 * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
3675 spill_cost): Renamed to ...
3676 (target_avail_regs, target_res_regs, target_small_cost,
3677 target_pres_cost, target_spill_cost): ... and exported.
3678 (init_set_costs, global_cost_for_size): Work with renamed variables.
3679 * common.opt (flag_ivopts): New flag.
3680 * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle
3682 * gimplify.c (struct gimplify_ctx): Add into_ssa field.
3683 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
3684 generating SSA form.
3685 (force_gimple_operand): New function.
3686 * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
3687 * tree-cfg.c (stmt_bsi): New function.
3688 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
3689 PARAM_IV_MAX_CONSIDERED_USES): New.
3690 * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
3691 bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
3692 ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
3693 * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
3694 * tree-nested.c (build_addr): Export.
3695 * tree-optimize.c (init_tree_optimization_passes): Add
3697 * tree-pass.h (pass_iv_optimize): Declare.
3698 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
3700 * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
3701 as a phi node argument.
3702 (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
3703 ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
3705 * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
3706 * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
3707 pass_iv_optimize): New pass.
3708 * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
3709 * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
3710 * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
3711 * tree.h (REF_ORIGINAL): New macro.
3712 (build_int_cst_type, unsigned_type_for, zero_p,
3713 cst_and_fits_in_hwi, build_addr): Declare.
3714 * doc/invoke.texi (-fivopts): Document.
3715 (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
3716 PARAM_IV_MAX_CONSIDERED_USES): Document.
3717 * doc/passes.texi: Document induction variable optimizations pass.
3719 2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3721 * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
3722 * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
3723 * c-common.c (c_common_attribute_table): Accept parameters to
3725 (check_function_sentinel, handle_sentinel_attribute): Likewise.
3726 * doc/extend.texi: Update accordingly.
3728 2004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3730 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
3732 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
3734 * c-common.c (handle_sentinel_attribute, check_function_sentinel):
3736 (c_common_attribute_table): Add `sentinel' attribute.
3737 (check_function_arguments): Handle `sentinel' attribute.
3738 * doc/extend.texi: Document `sentinel' attribute.
3740 2004-09-04 H.J. Lu <hongjiu.lu@intel.com>
3742 * configure: Regenerated.
3744 2004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3746 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
3748 * tree.c (save_expr): No longer TREE_READONLY.
3750 2004-09-04 Jan Hubicka <jh@suse.cz>
3752 * passes.c (rest_of_clean_state): Fix merge conflict made during
3753 commiting the patch.
3755 2004-09-04 Jan Hubicka <jh@suse.cz>
3757 * passes.c (rest_of_clean_state): Decompose the instruction stream.
3759 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
3761 * doc/md.texi (shift patterns): New anchor. Add reference to
3762 TARGET_SHIFT_TRUNCATION_MASK.
3763 * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
3764 * target.h (shift_truncation_mask): New target hook.
3765 * targhook.h (default_shift_truncation_mask): Declare.
3766 * targhook.c (default_shift_truncation_mask): Define.
3767 * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
3768 (TARGET_INITIALIZER): Include it.
3769 * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
3770 and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
3771 reject all out-of-range values. Fix sign-extension code for modes
3772 whose width is smaller than HOST_BITS_PER_WIDE_INT.
3773 * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
3774 (expand_superword_shift, expand_subword_shift): Likewise.
3775 (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
3776 (expand_binop): Use them to implement double-word shifts.
3777 * config/arm/arm.c (arm_shift_truncation_mask): New function.
3778 (TARGET_SHIFT_TRUNCATION_MASK): Define.
3780 2004-09-04 Jan Hubicka <jh@suse.cz>
3782 * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
3783 (mix): New macro copied from hashtab.c
3784 (iterative_hash_hashval_t, iterative_hash_pointer,
3785 iterative_hash_host_wide_int): New functions based on hashtab.c
3788 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
3790 * config/mips/mips.md (mask): New mode attribute.
3791 (zero_extendsidi2): Add memory alternative.
3792 (*zero_extendsidi2_mem): Delete.
3793 (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use
3794 memory_operand in the TARGET_MIPS16 check.
3795 (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
3796 Redefine using :GPR and :SHORT.
3797 (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
3799 2004-09-04 Uros Bizjak <uros@kss-loka.si>
3801 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
3803 (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
3804 expand_builtin_mathfn.
3805 * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
3806 btrunc?f patterns for btrunc_optab. Implement rint_optab using
3808 * optabs.c (init_optabs): Initialize rint_optab.
3809 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
3811 (btrunc_optab): Rename macro from trunc_optab.
3812 (rint_optab): Define corresponding macro.
3814 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
3815 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
3817 * config/i386/i386-protos.h (emit_i387_cw_initialization):
3818 Change prototype. Add new int parameter.
3819 * config/i386/i386.c (emit_i387_cw_initialization):
3820 Handle new rounding modes.
3822 * config/i386/i386.h (enum fp_cw_mode): Delete.
3823 (MODE_NEEDED): Handle new rounding modes.
3824 (EMIT_MODE_SET): Change condition to handle new rounding modes.
3826 * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
3827 UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
3828 represent different rounding modes of frndint insn.
3829 (type): Add frndint type.
3830 (i387, length, memory): Handle this type.
3831 (i387_cw): New attribute definition.
3832 (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
3833 *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
3834 *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
3835 Add "i387_cw" attribute defined to "trunc".
3836 (x86_fnstcw_1): Remove comment.
3837 (*frndintxf2): Rename insn definition to frndintxf2. Move
3838 insn definition near rint?f2 expanders.
3839 (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
3840 rintf and rintl built-ins as inline x87 intrinsics.
3841 (frndintxf2_floor): New pattern to implement floor rounding
3842 mode with frndint x87 instruction.
3843 (floordf2, floorsf2, floorxf2): New expanders to implement floor,
3844 floorf and floorl built-ins as inline x87 intrinsics.
3845 (frndintxf2_ceil): New pattern to implement ceil rounding
3846 mode with frndint x87 instruction.
3847 (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
3848 ceilf and ceill built-ins as inline x87 intrinsics.
3849 (frndintxf2_trunc): New pattern to implement trunc rounding
3850 mode with frndint x87 instruction.
3851 (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
3852 truncf and truncl built-ins as inline x87 intrinsics.
3853 (frndintxf2_mask_pm): New pattern to implement rounding
3854 mode with exceptions with frndint x87 instruction.
3855 (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
3856 implement nearbyint, nearbyintf and nearbyintl built-ins as
3857 inline x87 intrinsics.
3859 2004-09-04 Richard Sandiford <rsandifo@redhat.com>
3861 * config/mips/mips.md (SHORT): New mode macro.
3862 (size): New mode attribute.
3863 (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
3864 (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
3865 *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if
3867 (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
3868 *extend[qh]isi2_hw patterns and extending them to di.
3869 (extendqihi2): Implement as define_insn_and_split that produces
3870 extendqisi2 after reload.
3872 2004-09-03 Devang Patel <dpatel@apple.com>
3874 * Makefile.in (OBJS-common): Add tree-if-conv.o
3875 (tree-if-conv.o): New rule.
3876 * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
3877 (get_loop_body_in_bfs_order): New.
3878 * cfgloop.h (get_loop_body_in_bfs_order): New.
3879 * tree-flow.h (enum move_pos): Move here from ..
3880 * tree-ssa-loop-im.c (enum move_pos): here.
3881 (movement_possibility): Make externally visible.
3882 * tree-optimize.c (init_tree_optimization_passes): New entry for
3884 * tree-pass.h (pass_if_conversion): New.
3885 * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
3886 * tree-if-conv.c: New file.
3887 * doc/passes.texi: Document tree if-conversion pass.
3888 * doc/tree-ssa.texi: Same.
3890 2004-09-03 H.J. Lu <hongjiu.lu@intel.com>
3893 Makefile.in (LIB2ADDEHSTATIC): New.
3894 (LIB2ADDEHSHARED): New.
3896 (LIBUNWINDDEP): New.
3897 (SHLIBUNWIND_LINK): New.
3898 (SHLIBUNWIND_INSTALL): New.
3899 (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
3900 LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
3901 (clean): Remove libunwind*
3902 (stage1-start): Remove and copy stage1/libunwind*.
3903 (stage2-start): Remove and copy stage2/libunwind*.
3904 (stage3-start): Remove and copy stage3/libunwind*.
3905 (stage4-start): Remove and copy stage4/libunwind*.
3906 (stageprofile-start): Remove and copy stageprofile/libunwind*.
3907 (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
3909 * config.gcc (ia64*-*-linux*): Always add t-libunwind to
3910 tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
3911 tmake_file if --with-system-libunwind isn't used.
3913 * config/ia64/t-glibc-libunwind: New file.
3914 * config/t-libunwind-elf: Likewise.
3915 * unwind-compat.c: Likewise.
3916 * unwind-compat.h: Likewise.
3917 * unwind-dw2-fde-compat.c: Likewise.
3919 * config/ia64/t-glibc (LIB2ADDEH): Updated.
3920 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
3922 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
3924 * unwind-dw2-fde-glibc.c: Likewise.
3925 * unwind-dw2.c: Likewise.
3927 * config/t-libunwind (LIB2ADDEH): Updated.
3928 (LIB2ADDEHSTATIC): New.
3929 (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
3930 (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
3932 * configure.ac: Change --enable-libunwind-exceptions to
3933 --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
3934 * configure: Regenerated.
3935 * config.in: Updated.
3937 * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
3938 above and mention --with-system-libunwind.
3939 (ia64-*-hpux*): Mention --enable-libunwind-exceptions is