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