1 2004-10-27 James E Wilson <wilson@specifixinc.com>
4 * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
5 sibcall alloc instruction.
6 (process_set): Handle sibcall alloc instruction.
8 2004-10-27 Geoffrey Keating <geoffk@apple.com>
10 * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
12 * config/darwin.h (GTHREAD_USE_WEAK): Define.
14 2004-10-28 Ben Elliston <bje@au.ibm.com>
16 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
17 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
18 * params.h (SRA_MAX_STRUCTURE_SIZE): New.
19 (SRA_FIELD_STRUCTURE_RATIO): Likewise.
20 * tree-sra.c: Include "params.h".
21 (decide_block_copy): Use new parameters.
22 * doc/invoke.texi (Optimize Options): Document new SRA pass
23 parameters sra-max-structure-size and sra-field-structure-ratio.
25 2004-10-27 Nicolas Pitre <nico@cam.org>
27 * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
29 2004-10-27 Zdenek Dvorak <dvorakz@suse.cz>
31 PR tree-optimization/18048
32 * fold-const.c (try_move_mult_to_index): New function.
33 (fold): Use try_move_mult_to_index.
34 * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
35 * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
36 an all-ones unsigned constant without extra bits.
37 * tree.c (build_low_bits_mask): New function.
38 * tree.h (build_low_bits_mask): Declare.
40 2004-10-27 David Edelsohn <edelsohn@gnu.org>
43 * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
49 2004-10-27 Kazu Hirata <kazu@cs.umass.edu>
51 * tree-cfg.c (thread_jumps): Speed up by reordering the two
52 conditions for entering basic blocks into worklist.
54 2004-10-27 Kazu Hirata <kazu@cs.umass.edu>
56 * tree-cfg.c (thread_jumps): Speed up by pretending to have
57 ENTRY_BLOCK_PTR in worklist.
59 2004-10-27 Kazu Hirata <kazu@cs.umass.edu>
61 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
62 <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
64 2004-10-27 Daniel Berlin <dberlin@dberlin.org>
66 Fix PR tree-optimization/17133
68 * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
71 * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
72 (get_v_must_def_result_ptr): Modify for new structure of
74 (get_v_must_def_kill_ptr): New.
75 (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
76 (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
77 (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
78 (op_iter_init): Initialize new mustu members.
79 (op_iter_next_mustdef): New function.
80 (op_iter_init_mustdef): Ditto.
82 * tree-flow.h (rewrite_def_def_chains): New function.
84 * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
85 (ssa_mark_def_sites): Ditto.
86 (rewrite_stmt): Ditto.
87 (ssa_rewrite_stmt): Ditto.
88 (rewrite_blocks): Factor out from rewrite_into_ssa.
89 (mark_def_block_sites): Ditto.
90 (rewrite_def_def_chains): New function, just rewrites def-def
91 chains without phi node insertion.
93 * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
95 * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
97 * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
98 they include the rhs now.
100 * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
103 * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
105 (mark_really_necessary_kill_operand_phis): New function.
106 (perform_tree_ssa_dce): Call it.
107 (pass_dce): Add TODO_fix_def_def_chains.
108 (pass_cd_dce): Ditto.
110 * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
112 (rewrite_mem_refs): Ditto.
114 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
117 * tree-ssa-operands.c (allocate_v_may_def_optype):
118 v_may_def_operand_type_t became v_def_use_operand_type_t.
119 (allocate_v_must_def_optype) Ditto.
120 (finalize_ssa_v_must_defs): Update for new operand type, as well
121 as setting the use portion as well.
122 (copy_virtual_operands): Copy the kill operand as well.
123 (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
126 * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
127 v_def_use_operand_type.
128 (v_must_def_optype_d): Use v_def_use_operand_type.
129 (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
130 (V_MUST_DEF_KILL_*): New macros.
131 (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
133 Rename existing must_i and num_v_must members to mustd_i and
135 (SSA_OP_VMUSTDEFKILL): New flag.
136 (SSA_OP_VIRTUAL_KILLS): New flag.
137 (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
138 (SSA_OP_ALL_KILLS): New flag.
139 (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
141 * tree-ssa.c (verify_ssa): Verify virtual kills as well.
143 * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
144 became V_MUST_DEF_RESULT.
145 (rename_variables_in_bb): Rename kill pointer as well.
147 * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
150 2004-10-27 Richard Sandiford <rsandifo@redhat.com>
152 * dbxout.c (dbxout_source_line): Move declaration of begin_label to
153 the block that needs it.
155 2004-10-27 Zack Weinberg <zack@codesourcery.com>
157 * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
160 2004-10-27 Zack Weinberg <zack@codesourcery.com>
162 * c-lex.c (cb_def_pragma): Clean up code for making location
163 palatable to diagnostic.c.
165 2004-10-27 Steven Bosscher <stevenb@suse.de>
167 PR tree-optimization/17757
168 * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
169 without any PHI arguments left. Make sure the argument that
170 we're supposed to remove exists at all.
172 2004-10-27 Paul Brook <paul@codesourcery.com>
174 * configure.ac: Don't test for [build] __cxa_atexit when building a
176 * configure: Regenerate.
178 2004-10-27 Paul Brook <paul@codeosurcery.com>
180 * configure.ac: Use build_exeext not host_exeext when lookin for
182 * configure: Regenerate.
184 2004-10-27 Andreas Krebbel <krebbel1@de.ibm.com>
186 * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
188 2004-10-27 Andreas Krebbel <krebbel1@de.ibm.com>
189 patch originally created by Kelley Cook <kcook@gcc.gnu.org>
192 * opts.c (OPT_fprofile_generate): Default to -funroll-loops
193 to match -fprofile-use.
195 2004-10-27 Kazu Hirata <kazu@cs.umass.edu>
197 * config/rs6000/rs6000.c: Fix a comment typo.
199 2004-10-27 Zack Weinberg <zack@codesourcery.com>
201 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
204 2004-10-27 Andreas Schwab <schwab@suse.de>
206 * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
208 (default_stabs_asm_out_constructor): Likewise.
210 2004-10-26 Geoffrey Keating <geoffk@apple.com>
212 * builtins.c (fold_builtin_unordered_cmp): Always bring both
213 operands to the same type.
215 2004-10-26 James E Wilson <wilson@specifixinc.com>
218 * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
220 2004-10-26 Zack Weinberg <zack@codesourcery.com>
222 * dbxout.c: Include obstack.h.
223 (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
225 (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
227 (DBX_CONTIN_LENGTH): Move definition with others.
228 (DBX_FINISH_STABS): New target macro.
229 (current_sym_code, current_sym_value, current_sym_addr)
230 (current_sym_nchars, CHARS, dbxout_continue)
231 (print_int_cst_octal, print_octal, print_wide_int)
232 (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
233 (stabstr_ob, stabstr_last_contin_point): New variables.
234 (NUMBER_FMT_LOOP): New improper macro.
235 (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
236 (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
237 (dbxout_stab_value_internal_label_diff, dbxout_stabd)
238 (dbxout_begin_stabn, dbxout_begin_stabn_sline)
239 (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
240 (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
241 (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
242 (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
243 New functions and/or proper function-like macros.
244 (CONTIN): Use stabstr_continue, unconditionally.
245 (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
246 (dbxout_init): Initialize stabstr_ob. Check
247 NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label
248 if it was used. Use the new interfaces.
249 (dbxout_source_file): Remove file argument; always write to
250 asm_out_file. Use the new interfaces.
251 (dbxout_type_method_1): Remove second argument which is always
252 DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces.
253 (dbxout_type_methods): Remove write-only variables. Use the
255 (dbxout_parms): Refactor to remove code duplicated in each of
256 several successive if-else-if blocks. Use the new interfaces.
257 (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
258 (dbxout_source_line, dbxout_finish, dbxout_type_index)
259 (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
260 (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
261 (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
262 (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
263 Use the new interfaces.
264 * Makefile.in (dbxout.o): Update dependencies.
266 * defaults.h: Don't define ASM_STABD_OP.
267 * output.h: Prototype new dbxout_* interfaces.
268 * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
269 * varasm.c: Don't define ASM_STABS_OP.
270 (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
271 Use the new dbxout.c interfaces. Call sorry if neither
272 DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
274 * xcoffout.h: Don't define ASM_STABS_OP.
275 (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
276 (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
277 (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
278 (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
279 do { ... } while (0) idiom.
281 * config/alpha/alpha.c (num_source_filenames): Export.
282 * config/alpha/alpha.h (num_source_filenames): Declare.
283 (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
284 (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
285 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
286 Always use .debugsym. Update commentary.
287 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
288 (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
289 * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
291 * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
292 (macho_branch_islands): Use new interfaces.
294 * doc/tm.texi: Update.
296 2004-10-26 Aldy Hernandez <aldyh@redhat.com>
298 * expr.c (emit_group_store): Do not treat floats as BLKmode.
299 (emit_group_load): Same.
301 2004-10-26 Joseph S. Myers <jsm@polyomino.org.uk>
303 * c-parse.in (datadef): Use pedwarn rather than error and warning
304 for diagnostic in case of no declaration specifiers.
306 2004-10-26 Richard Sandiford <rsandifo@redhat.com>
309 * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
310 reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
311 can be used to work around this.
313 2004-10-26 Aldy Hernandez <aldyh@redhat.com>
315 * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
318 2004-10-26 Kazu Hirata <kazu@cs.umass.edu>
320 * stmt.c (expand_case): Update a comment.
322 2004-10-26 Kazu Hirata <kazu@cs.umass.edu>
324 * stmt.c (expand_case): Put an assertion that index_expr is
325 never INTEGER_CST. Don't special case for constant
328 2004-10-26 Andrew Pinski <pinskia@physics.uc.edu>
331 * c-parse.in (designator): Finish with a semi-colon.
333 2004-10-26 Fariborz Jahanian <fjahanian@apple.com>
335 * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
338 2004-10-26 Kazu Hirata <kazu@cs.umass.edu>
340 * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
343 2004-10-26 Aldy Hernandez <aldyh@redhat.com>
345 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
347 (spe_build_register_parallel): New.
348 (rs6000_spe_function_arg): Handle e500 doubles.
349 (function_arg): Same.
350 (spe_func_has_64bit_regs_p): Same.
351 (rs6000_function_value): Same.
352 (rs6000_libcall_value): Same.
353 (legitimate_lo_sum_address_p): Return false for e500 doubles.
355 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
357 (DATA_ALIGNMENT): Same.
358 (CANNOT_CHANGE_MODE_CLASS): Same.
360 2004-10-26 Aldy Hernandez <aldyh@redhat.com>
362 * expr.c (emit_group_load): Handle floats.
363 (emit_group_store): Same.
365 2004-10-26 Nathan Sidwell <nathan@codesourcery.com>
367 * c-lex.c (get_nonpadding_token): Remove.
368 (c_lex_with_flags): Push timevar and eat padding here. Improve
369 stray token diagnostic.
370 (lex_string): Replace logic with switch statement, eat padding
373 2004-10-26 Geoffrey Keating <geoffk@apple.com>
376 * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
378 2004-10-25 Geoffrey Keating <geoffk@apple.com>
380 * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
382 (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
383 (ASM_MAKE_LABEL_LINKONCE): Delete.
384 (ASM_WEAKEN_DECL): New.
385 (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
386 (ASM_DECLARE_FUNCTION_NAME): Likewise.
387 (TEXT_SECTION_ASM_OP): Add a tab.
388 (DATA_SECTION_ASM_OP): Likewise.
389 (SECTION_FUNCTION): Add a tab. Use fputs. Don't call
390 data_section on every section change.
391 (EXTRA_SECTIONS): Add a bunch of new extra sections.
392 (EXTRA_SECTION_FUNCTIONS): Likewise.
393 (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
394 (JCR_SECTION_NAME): Define.
395 (TARGET_SECTION_TYPE_FLAGS): Don't define.
396 * config/darwin.c (darwin_encode_section_info): A symbol is defined
397 in this file if it is not weak.
398 (textcoal_section): Delete.
399 (datacoal_section): Delete.
400 (darwin_make_decl_one_only): Delete.
401 (machopic_select_section): Handle functions.
402 (darwin_asm_named_section): Add a tab.
403 (darwin_section_type_flags): Delete.
404 (darwin_unique_section): Delete contents.
405 (darwin_emit_unwind_label): Add a tab. Make decls weak if
407 * config/darwin-protos.h (darwin_section_type_flags): Delete.
408 (darwin_make_decl_one_only): Delete.
409 (text_coal_section): New.
410 (text_unlikely_section): New.
411 (text_unlikely_coal_section): New.
412 (const_coal_section): New.
413 (data_coal_section): New.
414 (const_data_coal_section): New.
415 * varasm.c (function_section): Honour
416 USE_SELECT_SECTION_FOR_FUNCTIONS.
417 * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
418 TARGET_USES_WEAK_UNWIND_INFO is in effect.
419 * dbxout.c (dbxout_source_file): Don't change sections while
420 a function is being output.
422 2004-10-25 David Ayers <d.ayers@inode.at>
424 * c-common.h: Remove RID_ID.
425 * c-parse.in: Remove OBJECTNAME and references to RID_ID.
426 (typespec_reserved_attr): Add rule for TYPENAME
427 non_empty_protocolrefs.
428 (yylexname): Remove special handling of RID_ID.
430 2004-10-25 James E Wilson <wilson@specifixinc.com>
432 * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
434 2004-10-25 Joseph S. Myers <jsm@polyomino.org.uk>
437 * c-parse.in (array_designator): New.
438 (designator): Use it.
439 (initelt): Only permit array_designator without '=', not ".foo".
441 2004-10-25 Kenneth Zadeck <zadeck@naturalbridge.com>
442 * gcc/Makefile.in: removed ggc for cgraphunit.
443 * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
444 * gcc/cgraph.h: removed static var analysis data structures and calls.
446 cgraph_mark_local_and_external_functions:changed name to
447 cgraph_mark_local_functions
448 (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
449 cgraph_reset_static_var_maps,get_global_static_vars_info,
450 get_global_statics_not_read,get_global_statics_not_written,searchc,
451 cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
452 check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
453 scan_for_static_refs,cgraph_characterize_statics_local,
454 clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
456 (cgraph_optimize,init_cgraph): removed calls to static vars analysis
457 * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
459 * gcc/tree-flow.h static_vars_info: removed
460 * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
461 removed calls to static vars analysis.
462 get_call_expr_operands: removed callee variable.
464 2004-10-25 Kazu Hirata <kazu@cs.umass.edu>
466 * cfg.c (unchecked_make_edge, redirect_edge_succ,
467 redirect_edge_pred): Use VEC_safe_push instead of
469 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
471 2004-10-25 Kazu Hirata <kazu@cs.umass.edu>
473 * cfgloopmanip.c (loopify): Take two more arguments true_edge
475 * cfgloop.h: Adjust the corresponding prototype.
476 * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
477 * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
479 2004-10-25 Jakub Jelinek <jakub@redhat.com>
481 * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
482 DECL_INCOMING_RTL is NULL.
484 2004-10-25 Steven Bosscher <stevenb@suse.de>
486 * timevar.def (TV_FIND_REFERENCED_VARS): New.
487 * tree-dfa.c (pass_referenced_var): Use it.
489 2004-10-25 Roger Sayle <roger@eyesopen.com>
490 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
492 * cse.c: Change encoding of quantity numbers to avoid undefined
493 pointer arithmetic on qty_table.
494 (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
495 (get_cse_reg_info): Initialize reg_qty to a unique negative value.
496 (new_basic_block): Assign "real" quantity numbers from zero.
497 (delete_reg_equiv): Do nothing if quantity is invalid. Reset the
498 REG_QTY to its unique negative value.
499 (merge_equiv_classes): Calculate need_rehash if quantity is valid.
500 (cse_main): Don't include max_reg when determining max_qty.
501 (cse_basic_block): Avoid subtracting a large offset from qty_table,
502 which causes undefined C99 behaviour. Only allocate needed memory.
504 2004-10-25 Kazu Hirata <kazu@cs.umass.edu>
506 * stmt.c (expand_case): Remove an obsolete comment.
508 2004-10-25 Andrew Pinski <pinskia@physics.uc.edu>
511 * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
512 layout_type as it is already done by build_array_type.
513 * tree.c (build_array_type): Layout the type even
515 2004-10-25 Alexandre Oliva <aoliva@redhat.com>
517 * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
519 2004-10-25 Alexandre Oliva <aoliva@redhat.com>
521 * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
522 with wider-than-32-bit HOST_WIDE_INTs.
524 2004-10-25 David Billinghurst <David.Billinghurst@riotinto.com>
526 * config/mips/mips.c(mips_output_filename): Remove unused
527 array ltext_label_name
529 2004-10-24 Geoffrey Keating <geoffk@geoffk.org>
531 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
533 2004-10-25 Ben Elliston <bje@au.ibm.com>
535 * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
537 2004-10-23 Andrew Pinski <pinskia@physics.uc.edu>
539 * predict.c (predict_loops): Call scev_finalize instead of
542 2004-10-24 Kazu Hirata <kazu@cs.umass.edu>
544 * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
545 config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
546 config/sh/ushmedia.h, config/sparc/elf.h,
547 config/sparc/sp64-elf.h: Update copyright.
549 2004-10-24 Kazu Hirata <kazu@cs.umass.edu>
551 * stmt.c (expand_case): Handle the default label outside of
552 the for loop. Remove code to handle a missing default label.
554 2004-10-23 Kazu Hirata <kazu@cs.umass.edu>
556 * dbxout.c (dbxout_function_decl): Don't use
557 DBX_OUTPUT_FUNCTION_END.
558 * system.h: Poison DBX_OUTPUT_FUNCTION_END.
559 * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
561 2004-10-23 Andrew Pinski <pinskia@physics.uc.edu>
564 * tree-cfg.c (remove_usless_stmts_cond): Don't Fold statement.
566 2004-10-23 Daniel Berlin <dberlin@dberlin.org>
568 * tree-ssa-dom.c (record_equality): Use loop depth to determine
569 which way to record the equality as well.
570 (loop_depth_of_name): New function.
572 2004-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
575 * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
576 through the operand if it is a useless type conversion.
578 2004-10-23 Ben Elliston <bje@au.ibm.com>
580 * cfg.c (remove_edge): Use VEC_unordered_remove.
581 (redirect_edge_succ): Likewise.
582 (redirect_edge_pred): Likewise.
583 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
585 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
587 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
590 2004-10-22 Eric Christopher <echristo@redhat.com>
592 * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
595 2004-10-22 Aldy Hernandez <aldyh@redhat.com>
597 * config/rs6000/spe.md (spe_extendsfdf2): New.
598 (movdf_e500_double): New.
599 (spe_truncdfsf2): New.
606 (spe_floatsidf2): New.
607 (spe_floatunssidf2): New.
608 (fix_truncdfsi2): New.
609 (spe_fixuns_truncdfsi2): New.
611 * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
612 (fpr_truncdfsf2): New.
613 (negdf2): Change to expander.
615 (fpr_nabsdf2): Name pattern.
616 (adddf3): Change to expander.
618 (subdf3): Change to expander.
620 (muldf3): Change to expander.
622 (divdf3): Change to expander.
624 (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
625 (cmpdf): Allow for TARGET_E500_DOUBLE.
627 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
629 * c-semantics.c (re_push_stmt_list): Remove.
630 * c-common.h: Remove the corresponding prototype.
632 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
634 * stmt.c (asm_op_is_mem_input): Remove.
635 * tree.h: Remove the corresponding prototype.
637 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
639 * tree-gimple.c (is_gimple_constructor_elt): Remove.
640 * tree-gimple.h: Remove the corresponding prototype.
642 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
644 * varasm.c (get_pool_mode_for_function, get_pool_offset):
646 * rtl.h: Remove the corresponding prototypes.
648 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
650 * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
651 edge information when we commit ourselves to threading a
654 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
656 * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
657 into worklist instead of their indexes.
659 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
661 * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
662 final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
663 lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
664 pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
665 tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
666 tree-scalar-evolution.c, tree-ssa-dom.c,
667 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
668 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
669 tree-vectorizer.c, vec.h: Fix comment formatting.
671 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
673 * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
674 libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
676 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
678 * config/ptx4.h, config/mcore/mcore-pe.h,
679 config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
681 2004-10-22 Peter Barada <peter@the-baradas.com>
683 * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
684 * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
685 renaming of non-live registers in interrupt functions.
686 * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
688 2004-10-22 Zdenek Dvorak <dvorakz@suse.cz>
690 * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
691 Use integer for loop counter.
692 (num_ending_zeros): New function.
693 (number_of_iterations_cond): Use num_ending_zeros.
695 2004-10-21 Aldy Hernandez <aldyh@redhat.com>
697 * config.gcc: Add support for --enable-e500_double.
699 * config/rs6000/e500-double.h: New file.
701 * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
704 * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
707 * config/rs6000/linuxspe.h: Same.
709 * doc/invoke.texi (Option Summary): Document new options for
711 (RS/6000 and PowerPC Options): Same.
713 * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
715 (rs6000_override_options): Use it. Use
716 SUB3TARGET_OVERRIDE_OPTIONS.
717 Add 8548 to processor_target_table.
718 (rs6000_legitimate_address): Handle e500 doubles.
719 (rs6000_legitimize_address): Same.
720 (rs6000_legitimize_reload_address): Same.
721 (rs6000_hard_regno_nregs): Same.
722 (spe_func_has_64bit_regs_p): Same.
723 (emit_frame_save): Same.
724 (gen_frame_mem_offset): Same.
725 (rs6000_dwarf_register_span): Same.
726 (rs6000_generate_compare): Same.
727 (easy_fp_constant): Same.
728 (legitimate_offset_address_p): Same.
730 * config/rs6000/spe.md: (cmdfeq_gpr): New.
739 2004-10-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
741 * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
743 2004-10-21 Zack Weinberg <zack@codesourcery.com>
745 * dbxout.c: Remove unnecessary #undefs.
746 (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
747 (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
748 definition into use sites.
749 (cwd): Make local to dbxout_init.
750 (dbxout_init): Restructure cwd-using logic for clarity. Use
752 * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
753 STABS_GCC_MARKER folded in here.
754 * system.h: Poison now-unused macros.
755 * doc/tm.texi: Remove documentation of now-unused macros.
757 2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
760 * c-opts.c (push_command_line_include): Use the current file
761 name instead of the main one.
763 2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
766 * tree.c (staticp): A CONST_DECL has static storage if either
767 TREE_STATIC or DECL_EXTERNAL is set.
768 * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
771 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
773 * expr.c (store_expr): Remove dont_store_target.
775 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
777 * tree-cfg.c (thread_jumps): Speed up by using a worklist.
779 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
781 * tree-cfg.c (thread_jumps): Move a part of it to ...
782 (thread_jumps_from_bb): ... here.
784 2004-10-21 David Edelsohn <edelsohn@gnu.org>
786 * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
787 * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
789 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
791 * expr.c (store_expr): Clean up by renaming want_value to
794 2004-10-21 Kaz Kojima <kkojima@gcc.gnu.org>
796 * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
799 2004-10-21 Aldy Hernandez <aldyh@redhat.com>
802 * expmed.c (store_bit_field): Pass original 'value' before
805 2004-10-21 Nicolas Pitre <nico@cam.org>
807 * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
808 * config/arm/ieee754-df.S: Ditto.
810 2004-10-20 Zack Weinberg <zack@codesourcery.com>
812 * dbxout.c (asmfile): Delete. All uses changed to asm_out_file.
813 (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
815 (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
816 When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
817 an internal label and an N_SLINE .stabn whose value is the
818 difference between that label and the function entry label.
819 (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
820 but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
821 label and an N_SO stab with an empty string referring to it.
822 (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
823 of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
824 (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
825 (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
826 macro is never defined.
827 * sdbout.c (sdbout_source_line_counter): Delete.
828 (PUT_SDB_SRC_FILE): Delete. Uses replaced with sole definition.
829 (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
831 * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
833 * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
834 * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
835 definitions (identical to default).
836 * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
837 * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
838 Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
839 DBX_OUTPUT_MAIN_SOURCE_FILE_END.
840 * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
841 * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
842 Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
843 * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
844 * config/alpha/alpha.c: Move declaration of num_source_filenames up.
845 (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
846 (sym_lineno): Delete.
847 (alpha_output_filename): Do not emit N_SOL stabs here. Remove
849 (alpha_output_lineno): Delete.
850 * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
851 * config/mips/mips.c (mips_output_filename): Don't use
852 ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
853 (mips_output_lineno): Delete.
854 (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
855 * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
856 SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
857 * config/mips/mips.h: Likewise. Don't define ASM_OUTPUT_FILENAME.
858 * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
859 * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
860 * config/mmix/mmix.h: Likewise.
861 * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
862 * config/mmix/mmix-protos.h: Don't prototype it.
863 * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
864 no need to #undef ASM_OUTPUT_SOURCE_LINE.
865 * config/arm/aout.h: Remove RISCiX-specific definition of
866 DBX_OUTPUT_MAIN_SOURCE_FILENAME.
867 * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
868 ASM_OUTPUT_SOURCE_LINE.
869 * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
870 DBX_OUTPUT_SOURCE_LINE. Don't use current_function_func_begin_label.
871 * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
873 * doc/tm.texi: Update.
875 2004-10-20 Richard Henderson <rth@redhat.com>
877 * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
879 2004-10-20 Kelley Cook <kcook@gcc.gnu.org>
881 * configure.ac: Revert my previous patch.
882 * configure: Regenerate.
884 2004-10-20 Ben Elliston <bje@au.ibm.com>
886 * config/rs6000/rs6000.c
887 (rs6000_va_start): Use build_va_arg_indirect_ref.
888 (rs6000_gimplify_va_arg): Likewise.
890 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
893 * configure.ac: Declare AM_LANGINFO_CODESET.
894 * aclocal.m4: Define AM_LANGINFO_CODESET.
895 * configure, config.in: Rebuilt.
897 2004-10-20 Kazu Hirata <kazu@cs.umass.edu>
899 * expr.c (store_expr): Remove code that is run when
900 want_value & 1 is nonzero.
902 2004-10-20 Mark Mitchell <mark@codesourcery.com>
904 * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
905 from function pointer to void *.
907 2004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
910 * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
911 the frame pointer adjustment when exception handling is enabled.
913 2004-10-20 Kazu Hirata <kazu@cs.umass.edu>
915 * stor-layout.c: Fix a comment typo.
917 2004-10-20 Kazu Hirata <kazu@cs.umass.edu>
919 * expr.c (store_field): Remove two arguments value_mode and
921 (expand_assignment, store_constructor_field,
922 expand_expr_real_1): Adjust calls to store_field.
924 2004-10-18 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
926 * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
929 * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
930 REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
931 base and index register for loads.
933 * config/arc/t-arc: Fix multilib handling.
935 2004-10-20 Hans-Peter Nilsson <hp@bitrange.com>
937 * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
938 don't inspect BLOCK_FOR_INSN for barriers.
939 * emit-rtl.c (emit_barrier_before): Revert last change.
940 (emit_barrier_after, emit_barrier): Ditto.
942 * doc/extend.texi (Extended Asm): Warn and provide example
943 solution for using a call-clobbered asm register.
944 (Local Reg Vars): Similar. Cross-reference example.
946 2004-10-19 Andrew Pinski <pinskia@physics.uc.edu>
948 * tree-cfg.c (group_case_labels): Look at the second to last
949 case statement for combing with the default case.
951 2004-10-19 Richard Hendeson <rth@redhat.com>
954 * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
956 2004-10-19 Richard Hendeson <rth@redhat.com>
958 * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
959 succeeds, only expand the result.
961 2004-10-19 Richard Hendeson <rth@redhat.com>
964 * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
967 2004-10-19 Kazu Hirata <kazu@cs.umass.edu>
969 * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
972 2004-10-19 Kazu Hirata <kazu@cs.umass.edu>
974 * expr.c (expand_assignment): Remove the last argument.
975 Change the return type to void.
976 * expr.h: Update the prototype of expand_assignment.
977 * function.c (assign_parm_setup_reg): Update a call to
979 * stmt.c (expand_asm_expr): Likewise.
981 2004-10-19 Kazu Hirata <kazu@cs.umass.edu>
983 * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
984 unnecessary assignments to temp. Return const0_rtx.
986 2004-10-19 Kaz Kojima <kkojima@gcc.gnu.org>
988 * config/sh/sh.c (sh5_schedule_saves): Fix typo.
990 2004-10-18 Kelley Cook <kcook@gcc.gnu.org>
992 * configure.ac (powerpc-*-darwin*): Require assembler to support
994 * configure: Regenerate.
996 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
998 * reload1.c (ior_hard_reg_set): Remove.
999 (finish_spills): Use IOR_HARD_REG_SET instead of
1002 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
1004 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
1005 the currently visited word to right.
1007 2004-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
1010 * expmed.c (expand_smod_pow2): Handle modes whose size
1011 is greater than that of HOST_WIDE_INT.
1013 2004-10-18 Ziemowit Laski <zlaski@apple.com>
1015 * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
1017 2004-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
1018 Roger Sayle <roger@eyesopen.com>
1021 * dojump.c (discard_pending_stack_adjust): New function.
1022 (clear_pending_stack_adjust): Call it.
1023 * expr.h (discard_pending_stack_adjust): Declare it.
1024 * explow.c (emit_stack_save): Emit pending stack adjustments
1025 before saving the stack pointer.
1026 (emit_stack_restore): Discard pending stack adjustments before
1027 restoring the stack pointer.
1029 2004-10-18 Richard Henderson <rth@redhat.com>
1031 * c-common.c (handle_mode_attribute): Allow scalar->vector
1034 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
1036 * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
1037 value to expand_assignment.
1039 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
1041 * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
1043 (thread_jumps): Iterate until no new forwarder block arises.
1045 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
1047 * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
1048 (thread_jumps): Use forwardable as cache of
1049 tree_forwarder_block_p throughout the function.
1051 2004-10-18 Andreas Krebbel <krebbel1@de.ibm.com>
1053 * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
1055 2004-10-18 Andrew Pinski <pinskia@physics.uc.edu>
1059 * tree-cfg.c (remove_bb): If we have a label expression in the
1060 basic block and the label we have taken the address, move the
1061 label expression to the basic block which is previous in the
1063 (tree_verify_flow_info): Fix printing out the label name of the
1064 problematic label expression.
1066 2004-10-18 Pat Haugen <pthaugen@us.ibm.com>
1068 PR rtl-optimization/18002
1069 * simplify-rtx.c (mode_signbit_p): Externalize function...
1070 * rtl.h (mode_signbit_p): ... to here.
1071 * combine.c (simplify_shift_const): Recognize PLUS signbit as
1072 canonical form of XOR signbit and move to outer op.
1074 2004-10-18 Diego Novillo <dnovillo@redhat.com>
1076 * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
1078 * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
1079 Don't call fold_stmt more than once, use bsi_replace.
1081 2004-10-18 Diego Novillo <dnovillo@redhat.com>
1083 PR tree-optimization/17656
1084 * tree-ssa.c (replace_immediate_uses): When replacing a
1085 constant, if the call to fold_stmt produced a different
1086 statement, get an appropriate statement pointer by scanning
1089 2004-10-18 Richard Henderson <rth@redhat.com>
1091 * pointer-set.c (hash1): Don't use libm functions in fallback case.
1093 2004-10-18 H.J. Lu <hongjiu.lu@intel.com>
1096 * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
1097 (stage1-start): Remove and copy libunwind.a and
1098 libunwind*$(SHLIB_EXT) instead of libunwind*.
1099 (stage2-start): Likewise.
1100 (stage3-start): Likewise.
1101 (stage4-start): Likewise.
1102 (stageprofile-start): Likewise.
1103 (stagefeedback-start): Likewise.
1105 * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
1106 the shared library to be created and don't remove the existing
1108 * config/arm/t-netbsd (SHLIB_LINK): Likewise.
1109 * config/i386/t-nwld (SHLIB_LINK): Likewise.
1110 * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
1111 * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
1112 * config/sh/t-linux (SHLIB_LINK): Likewise.
1113 * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
1114 * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
1115 * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
1116 * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1118 * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
1121 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
1123 * basic-block.h (reg_set_iterator): New.
1124 (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
1125 (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
1126 (EXECUTE_IF_AND_IN_REG_SET): Likewise.
1127 * caller-save.c (save_call_clobbered_regs): Adjust to the new
1129 * cfgcleanup.c (thread_jump): Likewise.
1130 * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
1131 * conflict.c (conflict_graph_compute): Likewise.
1132 * flow.c (verify_local_live_at_start, update_life_info,
1133 initialize_uninitialized_subregs, propagate_one_insn,
1134 init_propagate_block_info, free_propagate_block_info,
1135 propagate_block, dump_regset): Likewise.
1136 * global.c (global_conflicts): Likewise.
1137 * graph.c (start_bb): Likewise.
1138 * local-alloc.c (update_equiv_regs): Likewise.
1139 * loop.c (load_mems): Likewise.
1140 * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
1141 find_reg, finish_spills): Likewise.
1142 * resource.c (mark_target_live_regs): Likewise.
1143 * sched-deps.c (sched_analyze_insn): Likewise.
1144 * sched-rgn.c (sched-rgn.c): Likewise.
1145 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1147 2004-10-18 Jakub Jelinek <jakub@redhat.com>
1149 * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
1150 operand 1 instead of 2
1152 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
1154 * loop-unroll.c: Fix comment typos.
1156 2004-10-18 Revital Eres <eres@il.ibm.com>
1158 * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
1159 * loop-unroll.c: Include varray.h.
1160 (struct var_to_expand, struct opt_info): Rename split_ivs_info to
1161 opt_info and expand it to support variable expansion.
1162 (analyze_insns_in_loop): Rename analyze_ivs_to_split and
1163 expand it to support variable expansion.
1164 (pt_info_start_duplication): Rename si_info_start_duplication.
1165 (apply_opt_in_copies): Rename split_ivs_in_copies and add support
1166 to the variable expansion optimization.
1167 (free_opt_info): Rename free_si_info.
1168 (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
1169 expand_var_during_unrolling, insert_var_expansion_initialization,
1170 combine_var_copies_in_loop_exit, release_var_copies,
1171 get_expansion): New functions.
1172 (peel_loop_completely, unroll_loop_constant_iterations,
1173 unroll_loop_runtime_iterations, peel_loop_simple,
1174 unroll_loop_stupid): Change uses of struct si_info
1176 and add uses of fvariable-expansion-in-unroller flag.
1177 * params.def: Add parameter to restrict the number of expansions.
1178 * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
1179 the number of expansions.
1180 * common.opt: (fvariable-expansion-in-unroller): New flag.
1181 * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
1183 2004-10-18 Danny Smith <dannysmith@users.sourceforge.net>
1185 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1186 __GXX_MERGED_TYPEINFO_NAMES to 0.
1188 2004-10-17 Hans-Peter Nilsson <hp@bitrange.com>
1190 * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
1191 handle barriers in a bb by checking that it points to a NULL bb.
1192 * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
1193 (emit_barrier_after, emit_barrier): Ditto.
1195 2004-10-18 Joseph S. Myers <jsm@polyomino.org.uk>
1197 * doc/extend.texi (Attribute Syntax): Clarify details of
1198 attributes on parameters.
1200 2004-10-17 Zdenek Dvorak <dvorakz@suse.cz>
1202 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
1205 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
1208 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
1210 * c-typeck.c (default_function_array_conversion): Always create
1211 &a[0] for array types.
1212 (build_unary_op): Do not fold &a[x] into a + x.
1214 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
1217 * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
1218 block if there is a goto with a locus.
1220 2004-10-17 Kazu Hirata <kazu@cs.umass.edu>
1222 * config/elfos.h, config/gofast.h, config/interix.h,
1223 config/netbsd.h, config/svr3.h, config/vxworks.h,
1224 config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
1225 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1226 config/alpha/netbsd.h, config/arm/arm-modes.def,
1227 config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
1228 config/cris/aout.h, config/frv/frv-modes.def,
1229 config/i386/beos-elf.h, config/i386/gas.h,
1230 config/i386/i386-coff.h, config/i386/i386-modes.def,
1231 config/i386/linux.h, config/i386/linux64.h,
1232 config/i386/mingw32.h, config/i386/netbsd-elf.h,
1233 config/i386/netbsd64.h, config/i386/sco5.h,
1234 config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
1235 config/ia64/ia64-modes.def, config/ia64/itanium1.md,
1236 config/ia64/itanium2.md, config/m68k/m68k-modes.def,
1237 config/mips/mips-modes.def, config/mips/sdb.h,
1238 config/mips/vr.h, config/mips/vxworks.h,
1239 config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1240 config/pa/pa32-linux.h, config/rs6000/40x.md,
1241 config/rs6000/7450.md, config/rs6000/8540.md,
1242 config/rs6000/linuxspe.h, config/rs6000/power4.md,
1243 config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
1244 config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
1245 config/s390/s390-modes.def, config/sh/elf.h,
1246 config/sh/sh-modes.def, config/sh/sh64.h,
1247 config/sparc/ultra1_2.md, config/sparc/ultra3.md,
1248 config/stormy16/stormy16.md, config/v850/v850-protos.h,
1249 config/vax/vax.md: Update copyright.
1251 2004-10-17 Kazu Hirata <kazu@cs.umass.edu>
1253 * expr.c (expand_expr_real_1): Remove an obsolete comment.
1255 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
1257 * c-typeck.c (default_function_array_conversion): Always create
1258 &a[0] for array types.
1259 (build_unary_op): Do not fold &a[x] into a + x.
1261 2004-10-17 Jakub Jelinek <jakub@redhat.com>
1263 * pointer-set.c (hash1): Use integer part of 2^64 / phi
1264 instead 2^32 / phi if long is 64-bit.
1266 2004-10-17 Joseph S. Myers <jsm@polyomino.org.uk>
1268 * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
1270 * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
1272 (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
1273 __ptrextent__, __ptrvalue and __ptrvalue__.
1274 (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
1277 2004-10-16 Dale Johannesen <dalej@apple.com>
1279 * c-common.c (c_common_get_alias_set): Use GGC for type_hash_table.
1281 2004-10-16 Zdenek Dvorak <dvorakz@suse.cz>
1283 PR tree-optimization/17766
1284 * basic-block.h (enum dom_state): DOM_CONS_OK removed.
1285 (dom_info_available_p): Declare.
1286 * cfghooks.c (split_block, make_forwarder_block): Use
1287 dom_info_available_p.
1288 * dominance.c (compute_dom_fast_query, calculate_dominance_info,
1289 free_dominance_info, verify_dominators): Ditto.
1290 (dom_info_available_p): New function.
1291 * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
1292 (thread_jumps): Use dom_info_available_p.
1293 * tree-complex.c (expand_complex_div_wide): Ditto.
1294 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1296 2004-10-16 Zdenek Dvorak <dvorakz@suse.cz>
1298 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
1299 (find_best_candidate): Take also important candidates into account.
1300 (find_optimal_iv_set): Initialize important_candidates bitmap.
1302 2004-10-16 Zdenek Dvorak <dvorakz@suse.cz>
1304 PR tree-optimization/17560
1305 * predict.c (tree_estimate_probability): Mark irreducible
1308 2004-10-16 Zdenek Dvorak <dvorakz@suse.cz>
1310 PR rtl-optimization/17723
1311 * cfgcleanup.c (merge_memattrs): Handle case when
1312 MEM_SIZE == NULL_RTX.
1314 2004-10-15 Andrew Pinski <pinskia@physics.uc.edu>
1316 * toplev.c (dump_file_name): Change type to be const.
1318 2004-10-15 Joseph S. Myers <jsm@polyomino.org.uk>
1320 * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
1321 non_lvalue to stop something being a null pointer constant.
1323 2004-10-15 Aldy Hernandez <aldyh@redhat.com>
1325 * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
1326 available for TARGET_FPRS.
1327 (FUNCTION_VALUE_REGNO_P): Same.
1329 2004-10-15 Geoffrey Keating <geoffk@apple.com>
1331 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1332 -maltivec in same style as other ISA options.
1334 2004-10-15 Jon Grimm <jgrimm2@us.ibm.com>
1336 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
1339 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
1341 * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
1342 collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
1343 gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
1344 genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
1345 gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
1346 gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
1347 lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
1348 predict.def, predict.h, protoize.c, reload.h, resource.h,
1349 rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
1350 tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
1351 unwind-sjlj.c, value-prof.h: Update copyright.
1353 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
1355 * pointer-set.c, tree-vectorizer.c: Fix comment typos.
1357 2004-10-15 Diego Novillo <dnovillo@redhat.com>
1359 * tree-optimize.c (execute_one_pass): Stop timer right after
1362 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1365 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1368 * tree-cfg.c (remove_usless_stmts_cond): Fold statement.
1369 (remove_useless_stmts_1): Fold trees we know how to fold.
1371 2004-10-14 David Edelsohn <edelsohn@gnu.org>
1373 * configure.ac: Add .machine power4 directive when testing for
1375 * configure: Regenerate.
1377 2004-10-14 Geoffrey Keating <geoffk@apple.com>
1379 * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
1381 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1383 * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
1386 2004-10-14 Daniel Jacobowitz <dan@codesourcery.com>
1388 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
1389 for 'f' if !TARGET_FPRS.
1391 2004-10-14 Richard Henderson <rth@redhat.com>
1394 * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
1396 2004-10-14 Richard Henderson <rth@redhat.com>
1399 * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
1401 * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
1402 instaed of current_function_decl non-null.
1404 2004-10-14 Matt Austern <austern@apple.com>
1406 * pointer-set.c: New file, special-purpose hash table.
1407 * pointer-set.h: New file.
1408 * tree.h (struct pointer_set_t): Declare as opaque type.
1409 (tree_walk): Last argument is pointer_set_t* now.
1410 * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
1412 (walk_tree): Convert from htab_t to pointer_set_t for keeping
1413 track of which nodes have already been visited.
1414 (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
1415 * cgraphunit.c (cgraph_create_edges): Likewise.
1416 (cgraph_characterize_statics_local): Likewise.
1417 * tree-dfa.c (collect_dfa_stats): Likewise.
1418 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
1420 * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
1421 * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
1422 of walk_subtrees is pointer_set_t* now.
1423 * Makefile.in (OBJS-common): add pointer-set.o
1424 (tree-inline.o): Depends on pointer-set.h
1425 (tree-dfa.o): Likewise
1426 (cgraphunit.o): Likewise
1428 2004-10-14 Geoffrey Keating <geoffk@apple.com>
1430 * config/rs6000/darwin.h (ASM_SPEC): Delete.
1431 (TARGET_ASM_FILE_START): Define.
1432 * config/darwin.h (ASM_SPEC): Define.
1433 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
1434 -mlong-double-128, it's the default. Update comment about reason
1435 for force_cpusubtype_ALL.
1436 * config/rs6000/darwin-vecsave.asm: Supply .machine.
1437 * config/rs6000/darwin-world.asm: Likewise.
1438 * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
1439 (symbolic_operand): Delete #if 0ed code.
1441 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1443 * stmt.c (add_case_node): Make sure that we have integer
1444 constant before calling tree_int_cst_compare.
1446 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1450 * tree-cfg.c (remove_usless_stmts_cond): Fold statement.
1451 (remove_useless_stmts_1): Fold trees we know how to fold.
1453 2004-10-14 Joseph S. Myers <joseph@codesourcery.com>
1455 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
1456 config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
1459 2004-10-14 Ulrich Weigand <uweigand@de.ibm.com>
1461 * reload.c (find_reloads): When reloading a PLUS with constant
1462 operand, make sure the constant is pushed to the constant pool
1464 * config/s390/s390.c (s390_secondary_input_reload_class): Remove
1465 reload bug workaround.
1466 (s390_expand_plus_operand): Likewise.
1468 2004-10-14 David Edelsohn <edelsohn@gnu.org>
1470 * opts.c (common_handle_option): Do not enable
1471 flag_speculative_prefetching for -fprofile-generate/use.
1473 2004-10-14 Devang Patel <dpatel@apple.com>
1476 * tree-if-conv.c (process_phi_nodes): Process latch block.
1477 (combine_blocks): Process latch block and update loop structure.
1479 2004-10-14 Olga Golovanevsky <olga@il.ibm.com>
1481 * tree-vectorizer.c (vect_generate_tmps_on_preheader):
1482 (vect_update_ivs_after_vectorizer):
1483 (vect_transform_for_unknown_loop_bound):
1484 (tree_duplicate_loop_to_edge):
1485 (allocate_new_names):
1488 (rename_variables_in_bb):
1490 (rename_variables_in_loop):
1492 (update_phis_for_duplicate_loop):
1493 (update_phi_nodes_for_guard):
1494 (make_loop_iterate_ntimes):
1495 (tree_duplicate_loop_to_edge_cfg):
1497 (vect_analyze_loop_with_symbolic_num_of_iters):
1498 (verify_loop_for_duplication):
1499 (vect_gen_niters_for_prolog_loop):
1500 (vect_update_niters_after_peeling):
1501 (vect_update_inits_of_dr):
1502 (vect_update_inits_of_drs):
1503 (vect_build_loop_niters):
1504 (vect_do_peeling_for_alignment): New functions.
1505 (vect_transform_loop): Add unknown and known but indivisible loop
1506 bound support; add peeling for unalignment support.
1507 (vect_analyze_loop_form): Support symbolic number of iterations.
1508 (vect_transform_loop_bound): New input parameter.
1509 (vect_get_loop_niters): Change input parameter type.
1510 (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
1511 (vectorizable_store): Allow unaligned access.
1512 (vectorize_loops): Add rewrite_into_loop_closed_ssa.
1513 (vect_analyze_data_refs_alignment): Allowed one unaligned
1515 * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
1517 (LOOP_VINFO_INT_NITERS): New macro.
1518 (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
1519 (do_peeling_for_alignment):
1520 (unaligned_drs): New members of _loop_vec_info.
1521 (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
1523 2004-10-14 Ranjit Mathew <rmathew@hotmail.com>
1525 * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
1526 (struct tree_string): Remove "const" qualifier for "str".
1528 2004-10-14 Ira Rosen <irar@il.ibm.com>
1530 * tree-vectorizer.c (vect_analyze_data_refs): Call
1531 vect_get_base_and_bit_offset to get memory tag for array ref.
1532 (vect_create_addr_base_for_vector_ref): Remove redundant checks.
1534 2004-10-14 Richard Earnshaw <rearnsha@arm.com>
1536 * configure.ac: Use $LN_S for creating symlinks (not $LN).
1537 * configure: Regenerate.
1539 2004-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1541 * doc/install.texi (*-*-solaris2*): Update with info about kernel
1542 patches to solve spurious testsuite failures.
1544 2004-10-14 Dorit Naishlos <dorit@il.bim.com>
1546 * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
1547 Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
1548 (vect_analyze_operations): Make sure the vectorization factor > 1. Add
1549 gcc_assert under ENABLE_CHECKING.
1550 (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
1551 get_vectype_for_scalar_type).
1553 (vect_get_vec_def_for_operand): Remove redundant variables.
1554 (vect_transform_loop): Likewise.
1556 2004-10-14 Richard Sandiford <rsandifo@redhat.com>
1558 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
1559 global for -mcaller-super-interworking.
1560 (CALLER_INTERWORKING_SLOT_SIZE): New macro.
1561 * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
1562 CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
1563 not need a frame pointer.
1564 (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
1565 the soft frame pointer offset.
1566 (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
1567 * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
1568 _interwork_{r7,r11}_call_via_rN if some arguments are passed on
1569 the stack. Use frame_pointer_needed to choose between them.
1570 * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
1571 (interwork_with_frame): New macro.
1572 (interwork): Add _interwork_{r7,r11}_call_via_rN().
1574 2004-10-14 Ben Elliston <bje@au.ibm.com>
1577 * diagnostic.c (trim_filename): Fix logic bug in walking backwards
1578 up the filename looking for a previous directory separator.
1580 2004-10-14 Joseph S. Myers <jsm@polyomino.org.uk>
1582 * c-tree.h (enum c_typespec_kind, struct c_typespec,
1583 parser_xref_tag): New.
1584 (struct c_declspecs): Add tag_defined_p. Adjust definition of
1586 (declspecs_add_type): Adjust prototypes.
1587 * c-parse.in (%union): Add tstype.
1588 (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
1589 typespec_reserved_attr, typespec_nonreserved_nonattr,
1590 structsp_attr, structsp_nonattr): Change to tstype. Update
1592 * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
1593 (declspecs_add_type): Update to take struct c_typespec argument.
1594 Set tag_defined_p and typedef_p as appropriate.
1595 (xref_tag): Rename to parser_xref_tag and replace by wrapper.
1596 Update to return struct c_typespec.
1597 (shadow_tag_warned): Don't let empty declarations with qualifiers
1598 or storage class specifiers redeclare a tag if a previous
1599 declaration is visible.
1601 2004-10-13 Richard Henderson <rth@redhat.com>
1604 * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
1605 for DECL_INCOMING_RTL.
1607 2004-10-14 Hans-Peter Nilsson <hp@axis.com>
1610 * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
1611 trunc_int_for_mode for constants used in shortened mode.
1613 2004-10-13 Richard Henderson <rth@redhat.com>
1616 * c-common.c (handle_mode_attribute): Disallow mode changes that
1617 alter the CODE of the top-level type.
1619 * crtstuff.c (__FRAME_END__): Remove mode attribute. Find 32-bit
1620 integer from internal limits macros.
1621 * config/i386/mm3dnow.h (__v2sf): Fix base type.
1623 2004-10-13 Richard Henderson <rth@redhat.com>
1626 * function.c (instantiate_decl): Recurse for CONCAT.
1628 2004-10-13 David Edelsohn <edelsohn@gnu.org>
1630 * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
1633 (extzvdi_internal1): Add attribute "compare".
1634 (extzvdi_internal2): Same.
1636 2004-10-12 Tom Tromey <tromey@redhat.com>
1638 * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
1640 2004-10-13 Dale Johannesen <dalej@apple.com>
1642 * doc/extend.texi (Extended Asm): Rewrite asm volatile description.
1644 2004-10-13 Frank Ch. Eigler <fche@redhat.com>
1646 * toplev.c (compile_file): Call mudflap_finish_file from here ...
1647 * c-decl.c (c_write_global_declarations): ... instead of here ...
1648 * cp/decl.c (cp_finish_file): ... and here.
1649 * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
1651 2004-10-13 Andrew Pinski <pinskia@physics.uc.edu>
1653 * tree-ssa-dom.c (record_range): Free the element if we are not
1656 2004-10-13 Tom Tromey <tromey@redhat.com>
1659 * gcc.c (option_map): Added --extdirs and --encoding.
1661 2004-10-13 Eric Botcazou <ebotcazou@libertysurf.fr>
1664 * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
1665 sparc_can_output_mi_thunk.
1666 (sparc_output_mi_thunk): Simplify handling of delta offset. Add
1667 handling of vcall offset.
1668 (sparc_can_output_mi_thunk): New predicate.
1669 * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
1670 (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
1671 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
1673 * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
1675 * config/sparc/sparc.md (movdi): Remove redundant test.
1677 2004-10-13 Paolo Bonzini <bonzini@gnu.org>
1679 * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
1680 TDF_IPA from -fdump-tree-*-all.
1682 2004-10-13 Paul Brook <paul@codesourcery.com>
1684 * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
1685 * config/arm/arm.c (thumb_find_work_register): Update comments.
1686 (arm_load_pic_register): Add argument for scratch register.
1687 (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
1688 * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
1690 2004-10-13 Kazu Hirata <kazu@cs.umass.edu>
1692 * tree-data-ref.c: Fix comment typos.
1694 2004-10-13 Jakub Jelinek <jakub@redhat.com>
1695 Zdenek Dvorak <dvorakz@suse.cz>
1697 PR tree-optimization/17724
1698 * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
1700 2004-10-13 Dorit Naishlos <dorit@il.ibm.com>
1702 * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
1703 (altivec_builtin_mask_for_store): Likewise.
1704 (altivec_init_builtins): Use lang_hooks.builtin_function to
1705 create the decls for builtin_altivec_mask_for_load/store.
1707 2004-10-13 Nick Clifton <nickc@redhat.com>
1709 * config/c4x/c4x.c: Remove inclusion of loop.h.
1711 2004-10-12 Ben Elliston <bje@au.ibm.com>
1713 * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
1714 (ei_container): New; renamed.
1715 (ei_start, ei_last): New macros.
1716 (ei_start_1, ei_last_1): Renamed from ei_start.
1717 (ei_last_1, ei_end_p): Use ei_container() where applicable.
1718 (ei_one_before_end_p, ei_next, ei_edge): Likewise.
1719 * gcse.c (remove_reachable_equiv_notes): Use ei_container().
1721 2004-10-11 Sebastian Pop <pop@cri.ensmp.fr>
1723 * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
1724 * cfgloop.c (initialize_loops_parallel_p): New.
1725 (flow_loops_find): Initialize the parallel_p field to true for all
1727 * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
1728 (estimate_numbers_of_iterations_loop): Infers the loop bounds from
1729 the size of the data accessed in the loop.
1730 (struct nb_iter_bound): Moved...
1731 * cfgloop.h (struct nb_iter_bound): ... here.
1732 (estimated_nb_iterations, parallel_p): New fields in struct loop.
1733 (record_estimate): Declare extern here.
1734 * tree-chrec.c: Fix comments.
1735 (nb_vars_in_chrec): New function.
1736 * tree-chrec.h (nb_vars_in_chrec): Declared here.
1737 * tree-data-ref.c: Don't include lambda.h, that is already included
1739 (tree_fold_divides_p): Don't check for integer_onep.
1740 (tree_fold_bezout): Removed.
1741 (gcd): New static duplicated function.
1742 (int_divides_p, dump_subscript): New.
1743 (dump_data_dependence_relation): Use dump_subscript.
1744 (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
1745 estimate_niter_from_size_of_data): New.
1746 (analyze_array_indexes, analyze_array): Call
1747 estimate_niter_from_size_of_data during the detection of array
1748 references. Pass in a pointer to the statement that contains the
1750 (all_chrecs_equal_p): New.
1751 (compute_distance_vector): Renamed compute_subscript_distance.
1752 Deal with multivariate conflict functions.
1753 (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
1754 DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
1755 (non_affine_dependence_relation): New.
1756 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
1757 analyze_siv_subscript, analyze_miv_subscript,
1758 analyze_overlapping_iterations, subscript_dependence_tester):
1759 Initialize and return last_conflicts function.
1760 (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
1761 compute_overlap_steps_for_affine_1_2): New.
1762 (analyze_siv_subscript_affine_cst): Removed.
1763 (analyze_subscript_affine_affine): Disprove dependences based on the
1764 iteration domains. Solve the univariate dependence case as before,
1765 but use lambda_matrix_right_hermite instead of tree_fold_bezout.
1766 Implement the multivariate case of 2 versus 1 variables.
1767 (build_classic_dist_vector, build_classic_dir_vector): Implement some
1769 (find_data_references_in_loop): Compute and initialize
1770 loop->estimated_nb_iterations and loop->parallel_p.
1771 (analyze_all_data_dependences): Modify the debug dump order.
1772 * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
1773 subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
1774 (SUB_LAST_CONFLICT, subscript->last_conflict,
1775 data_dependence_relation->affine_p, data_dependence_relation->size_vect,
1776 DDR_AFFINE_P, DDR_SIZE_VECT): New.
1777 (find_data_references_in_loop, initialize_data_dependence_relation,
1778 dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
1780 2004-10-12 Kelley Cook <kcook@gcc.gnu.org>
1782 * configure: Regenerate.
1784 2004-10-12 Fariborz Jahanian <fjahanian@apple.com>
1787 * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
1788 (simplify_rhs_and_lookup_avail_expr): Disallow associativity
1789 and constant folding of floating point MULT_EXPR/PLUS_EXPR
1792 2004-10-12 Ulrich Weigand <uweigand@de.ibm.com>
1794 * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
1795 (s390_gimplify_va_arg): Likewise.
1797 2004-10-12 Daniel Jacobowitz <dan@debian.org>
1799 * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
1800 (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
1801 (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
1802 * regclass.c (record_address_regs): Remove ifdef. Use
1803 REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1804 * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
1806 (scan_rtx_address, replace_oldest_value_addr): Use
1807 REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1808 * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
1809 unnecessary definitions.
1810 (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
1811 and MODE_BASE_REG_REG_CLASS.
1812 * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
1813 (MODE_BASE_REG_REG_CLASS): Define.
1814 (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
1815 (REG_MODE_OK_FOR_REG_BASE_P): Define.
1816 * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
1817 REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
1819 2004-10-12 Daniel Berlin <dberlin@dberlin.org>
1821 * tree-ssa-alias.c (verify_name_tags): New function.
1822 (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
1823 (verify_alias_info): Call verify_name_tags.
1825 2004-10-12 Kazu Hirata <kazu@cs.umass.edu>
1827 PR rtl-optimization/17931
1828 * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
1831 2004-10-12 Richard Earnshaw <rearnsha@arm.com>
1833 * arm.c (arm_print_operand): Use output_operand_lossage where possible
1834 rather than aborting.
1836 2004-10-12 Paul Brook <paul@coudesourcery.com>
1838 * config.gcc: Add armv6{k,z,zk}
1839 * config/arm/arm-cores.def: Add arm1176 and mpcore.
1840 * config/arm/tune.md: Regenerate.
1841 * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
1843 (all_architectures): Add armv6k, armv6z, armv6zk.
1844 * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
1845 * doc/invoke.texi: Document new arch and cpu values.
1847 2004-10-12 Paul Brook <paul@coodesourcery.com>
1849 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
1852 2004-10-12 Paul Brook <paul@codesourcery.com>
1854 * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
1855 Handle negative constants.
1857 2004-10-12 Joseph S. Myers <jsm@polyomino.org.uk>
1860 * c-typeck.c (convert_arguments): Return error_mark_node if there
1861 are too few arguments.
1862 (build_function_call): Handle error_mark_node return from
1865 2004-10-06 Paolo Bonzini <bonzini@gnu.org>
1867 * configure.ac (symbolic_link): Replace with $LN_S.
1868 (Assembler/Linker): Hard link from gas and binutils trees.
1869 * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
1870 * configure: Regenerate.
1872 2004-10-12 Paul Brook <paul@codesourcery.com>
1874 * configure.ac: Don't look for host assembler when building a canadian
1876 * configure: Regenerate.
1878 2004-10-11 Roger Sayle <roger@eyesopen.com>
1881 * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
1882 (c_common_init_options): Remove #ifdef CL_F77 code. Scan command
1883 line options for "-lang-asm" and if found allow any of the C-family
1885 (c_common_handle_option): Remove last use of permit_fortran_options.
1887 2004-10-11 Ulrich Weigand <uweigand@de.ibm.com>
1889 * config/s390/s390.c (print_operand): Support 'S' format flag.
1890 * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
1891 ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
1892 ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
1893 ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
1894 ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
1895 ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
1896 ("*movstricthi"): Likewise.
1897 ("*load_multiple_di", "*load_multiple_si"): Likewise.
1898 ("*store_multiple_di", "*store_multiple_si"): Likewise.
1899 ("*sethiqisi", "*sethihisi"): Likewise.
1900 ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
1901 ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
1902 ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
1903 ("*xorqi3", "*xc", "*xc_zero"): Likewise.
1904 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
1906 ("*tmhi_full"): Fix incorrect op_type attribute.
1908 ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
1909 ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
1910 ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
1911 ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
1913 2004-10-11 Andrew Pinski <pinskia@physics.uc.edu
1916 * function.c (temp_slots_at_level): Fix typo which creates too
1917 many temp stack slots levels.
1919 2004-10-11 Ulrich Weigand <uweigand@de.ibm.com>
1921 * config/s390/s390.c (s390_trampoline_template): Generate shorter
1923 (s390_trampoline_instantiate): Adapt.
1924 * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
1926 2004-10-11 Roger Sayle <roger@eyesopen.com>
1929 * stmt.c (add_case_node): Add additional type argument. Declare
1930 as static to match prototype. Convert the upper and lower bounds
1931 to the specified index type. Optimize away case ranges/values
1932 that are outside the index type's bounds. Truncate case ranges
1933 that span the index type's bounds.
1934 (expand_case): Avoid unnessary computation and memory allocation
1935 when index type is error_mark_node. Pass index_type as required
1936 by change to add_case_node API. No need to convert case range
1937 bounds to index_type, this is now done by add_case_node.
1939 2004-10-11 Ulrich Weigand <uweigand@de.ibm.com>
1941 * config/s390/s390-protos.h (s390_offset_p): Add prototype.
1942 * config/s390/s390.c (s390_offset_p): New function.
1943 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
1944 "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
1945 transform Q->Q alternatives to *clc pattern.
1947 ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
1948 "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
1949 to transform Q->Q alternatives to *mvc pattern.
1950 ("*mvc"): Move. Add peephole to merge adjacent MVCs.
1951 ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
1952 "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
1953 transform Q->Q alternatives to *nc pattern.
1954 ("*nc"): New insn. New peephole to merge adjacent NCs.
1955 ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
1956 "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
1957 transform Q->Q alternatives to *oc pattern.
1958 ("*oc"): New insn. New peephole to merge adjacent OCs.
1959 ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
1960 transform Q->Q alternatives to *xc pattern.
1961 ("*xc"): New insn. New peephole to merge adjacent XCs.
1962 ("*xc_zero"): Move. Add peephole to merge adjacent XCs.
1964 2004-10-11 Andrew Pinski <pinskia@physics.uc.edu>
1966 * gimplify.c (gimple_push_condition): Make sure that we don't
1967 have any saved condition cleanup if we were at the top level.
1969 2004-10-11 Richard Sandiford <rsandifo@redhat.com>
1971 * config/frv/frv.md (*adddi3_internal): Change name to...
1972 (adddi3): ...replacing the exisiting define_expand. Combine
1973 alternatives. Fix the range of the constant constraints ('J' instead
1974 of 'NOP'). Remove bogus operands[2] check. Use simplify_gen_subreg
1975 to extract the lower and upper halves of the DImode operands.
1976 Always use addi3_lower and adddi3_upper, not the subdi3 forms.
1977 (adddi3_lower): Fix the range of the constant constraints and
1978 remove the bogus operands[2] check.
1979 (adddi3_upper): Use gpr_or_int10_operand as the predicate for
1980 operand 2. Use addxi to handle constant operands.
1981 (subdi3_lower, subdi3_upper): Don't handle constant operands.
1983 2004-10-11 Nathan Sidwell <nathan@codesourcery.com>
1985 * gengtype-lex.l: Add commented } & ) characters to unconfuse
1986 editor's paren matching. Allow #define inside a struct.
1988 2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
1991 part of PR c++/17657
1992 * fold-const.c (fold_build_cleanup_point_expr): New function.
1993 * tree.h (fold_build_cleanup_point_expr): Prototype.
1995 2004-10-10 Eric Christopher <echristo@redhat.com>
1997 * dwarf2out.c: Move attribute to subprogram declaration
1998 instead of subroutine type.
2000 2004-10-10 Kazu Hirata <kazu@cs.umass.edu>
2002 * basic-block.h: Remove the prototypes for can_hoist_insn_p,
2003 hoist_insn_after, and hoist_insn_to_edge.
2004 * rtl.h: Remove the prototypes for reg_referenced_between_p,
2005 no_jumps_between_p, and insn_dependent_p.
2006 * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
2007 insn_dependent_p, insn_dependent_p_1, hoist_test_store,
2008 can_hoist_insn_p, hoist_update_store, hoist_insn_after,
2009 hoist_insn_to_edge): Remove.
2011 2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk>
2014 * c-decl.c (grokparms): Don't warn for parameters of incomplete
2015 type in declarations that are not definitions except for the case
2016 of parameters of void type.
2018 2004-10-10 Kazu Hirata <kazu@cs.umass.edu>
2020 * tree-cfg.c: Fix comment typos.
2022 2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk>
2025 * builtins.c (expand_builtin_va_start): Check for too few
2026 arguments to va_start.
2028 2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk>
2031 * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
2032 fields a pedwarn. Pedwarn here for unnamed structs/unions if
2034 * c-parse.in (component_decl): Don't pedwarn here for unnamed
2037 2004-10-09 Zdenek Dvorak <dvorakz@suse.cz>
2039 PR tree-optimization/17906
2040 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
2041 copy non-gimple reg arguments.
2043 2004-10-09 Roger Sayle <roger@eyesopen.com>
2045 PR rtl-optimization/17853
2046 * simplify-rtx.c (simplify_relational_operation): Correct comment.
2047 Reorganize handling of comparison operations with floating point
2048 results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
2049 Likewise, introduce support for comparison operations with vector
2050 result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
2052 * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
2053 * doc/tm.texi: Likewise.
2055 2004-10-09 Steven Bosscher <stevenb@suse.de>
2057 * regs.h (struct reg_info_def): Remove the last_node_uid and
2058 changes_mode fields.
2059 (REGNO_LAST_NOTE_UID): Don't define.
2060 * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
2061 * regmove.c (copy_src_to_dest): Likewise.
2063 2004-10-09 Roger Sayle <roger@eyesopen.com>
2066 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
2067 relational comparison operator op needs to be swapped/reversed when
2068 C1 is negative. i.e. X/-10 < 1 becomes X >= -9, not X < -9.
2070 2004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
2073 * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
2074 instead of bsi_start.
2075 (value_replacement): Likewise.
2076 (abs_replacement): Likewise
2078 2004-10-09 Steven Bosscher <stevenb@suse.de>
2080 * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
2081 (expand_gimple_cond_expr, expand_gimple_tailcall,
2082 expand_gimple_basic_block): Use it to dump RTL for each stmt.
2083 (tree_expand_cfg): Announce full RTL function dump.
2084 * tree-optimize.c (execute_one_pass): Use normal RTL printing,
2085 not the graph version.
2086 * tree-pretty-print.c (dump_generic_node): Allow empty statements
2087 in the arms of a COND_EXPR for lowered nodes.
2089 2004-10-08 Joseph S. Myers <joseph@codesourcery.com>
2091 * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
2092 atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
2093 strtoufix16, strtoufix32, strtoufix64): Declare.
2095 2004-10-08 Joseph S. Myers <jsm@polyomino.org.uk>
2097 * c-lex.c (interpret_float): Give a pedwarn rather than a warning
2098 for an out-of-range floating point constant.
2099 * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
2100 warning if the target format does not support infinities.
2102 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
2104 * emit-rtl.c (last_label_num, base_label_num): Remove.
2105 (max_label_num): Always return label_num.
2106 (set_new_last_label_num, restore_emit_status): Remove.
2107 (init_emit): Don't initialize last_label_num.
2108 * function.c (pop_function_context_from): Don't call
2109 restore_emit_status.
2110 * function.h: Remove the prototype for restore_emit_status.
2111 * rtl.h: Remove the prototype for set_new_last_label_num.
2113 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
2115 * stmt.c (expand_decl_init): Remove.
2116 * tree.h: Remove the corresponding prototype.
2118 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
2120 * integrate.c (try_constants, subst_constants, mark_stores):
2122 * integrate.h: Remove the prototype for try_constants.
2124 2004-10-08 Joseph S. Myers <jsm@polyomino.org.uk>
2126 * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
2127 (convert_for_assignment): Handle ic_argpass_nonproto. Add
2128 comments about its relevance to errors.
2129 (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
2131 2004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
2134 * c-ppoutput.c (cb_ident): Don't quote string as it is already
2137 2004-10-08 Diego Novillo <dnovillo@redhat.com>
2139 * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
2140 reference_node_pool.
2142 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
2144 * tree-cfg.c: Fix a comment typo.
2146 2004-10-08 Andreas Krebbel <krebbel1@de.ibm.com>
2148 * config/s390/s390.c (s390_register_info): Don't save fprs for
2150 (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
2152 2004-10-08 Ulrich Weigand <uweigand@de.ibm.com>
2154 * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
2155 (TARGET_DEFAULT): Use symbolic values.
2156 * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
2157 (TARGET_DEFAULT): Use symbolic values.
2158 * config/s390/s390.c (s390_backchain_string): Initialize to
2159 TARGET_DEFAULT_BACKCHAIN.
2161 2004-10-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2163 * builtins.c (expand_builtin_mempcpy): Move tree handling code to
2164 fold_builtin_mempcpy. Accept a type parameter. Delete duplicate
2166 (expand_builtin_strcat): Accept a type parameter.
2167 (fold_builtin_mempcpy): Accept a type and endp parameter.
2169 * builtins.c (expand_builtin_strncpy): Delete duplicate code.
2170 Accept an `exp' instead of an `arglist'.
2172 2004-10-08 Nathan Sidwell <nathan@codesourcery.com>
2174 * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
2175 reverting my 2004-09-07 patch to use build_int_cst.
2177 2004-10-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2180 * config/sparc/sparc.c (input_operand): Remove redundant code
2181 for handling LO_SUM.
2182 (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
2183 <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
2184 Otherwise only accept it for TFmode if quad move insns are available.
2186 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
2188 * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
2189 common cases will be caught earlier than others.
2191 2004-10-08 Michael Matz <matz@suse.de>
2193 * loop-doloop.c (doloop_optimize): Extend count.
2195 2004-10-08 Kaz Kojima <kkojima@gcc.gnu.org>
2197 * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
2198 (prefetch): Convert to expander.
2200 2004-10-08 Kaz Kojima <kkojima@gcc.gnu.org>
2202 * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
2203 first argument of CALL.
2204 (tls_local_dynamic): Likewise.
2206 2004-10-08 Joseph S. Myers <jsm@polyomino.org.uk>
2208 * c-typeck.c (enum impl_conv): New.
2209 (convert_for_assignment): Use it. Take tree for function called
2210 instead of its name. Handle ObjC selectors for diagnostics at
2211 start of function. Select diagnostic text within the function
2212 using full sentences for diagnsotics. Use %qE to name functions
2214 (convert_arguments, build_modify_expr,
2215 c_convert_parm_for_inlining, digest_init, c_finish_return): Update
2216 callers to convert_for_assignment.
2217 (warn_for_assignment): Remove.
2219 2004-10-08 Nick Clifton <nickc@redhat.com>
2221 * config/sh/symbian.c (symbian_possibly_export_base_class):
2222 Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
2223 TYPE_CONTAINS_VPTR_P.
2225 2004-10-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2227 * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
2228 fixed registers form all_used_regs. Update call_really_used_regs.
2229 (CALL_REALLY_USED_REGISTERS): Define.
2230 * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
2231 with call_really_used_regs.
2233 2004-10-08 Alan Modra <amodra@bigpond.net.au>
2235 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
2236 for -profile as well as -p and -pg.
2238 2004-10-07 Andrew Pinski <pinskia@physics.uc.edu>
2240 * libgcc2.c (__moddi3): Cast &w to UDWtype*.
2242 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
2244 * tree-cfg.c (tree_block_forwards_to): Remove.
2245 * tree-flow.h: Remove the corresponding prototype.
2247 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
2249 * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
2250 for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
2252 2004-10-07 Geoffrey Keating <geoffk@apple.com>
2255 * config/rs6000/rs6000.c (rs6000_generate_compare): When
2256 flag_trapping_math is in effect, don't generate subtract
2259 2004-10-07 Ulrich Weigand <uweigand@de.ibm.com>
2261 * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
2262 * config/s390/s390.c (s390_narrow_logical_operator): New function.
2263 (s390_extra_constraint_str): Add 'A' constraints.
2264 (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
2265 * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
2266 (CONSTRAINT_LEN): Likewise.
2267 * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
2268 ("*andsi3_zarch", "*andsi3_esa"): Likewise.
2269 ("*andhi3_zarch", "*andhi3_esa"): Likewise.
2270 ("*iordi3"): Add OI alternative and splitter.
2271 ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2272 ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
2273 ("*xordi3"): Add XI alternative and splitter.
2274 ("*xorsi3", "*xorhi3"): Likewise.
2276 2004-10-07 Richard Sandiford <rsandifo@redhat.com>
2278 * config/mips/mips.c (mips_function_rodata_section): New function.
2279 (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
2281 2004-10-07 Devang Patel <dpatel@apple.com>
2283 * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
2284 UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
2285 UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
2286 UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
2287 UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
2288 UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
2289 UNSPEC_VCONDU_V16QI): New constant defines.
2290 (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
2291 vconduv16qi): New patterns.
2292 * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
2293 * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
2294 (get_vec_cmp_insn): Same.
2295 (get_vsel_insn): Same.
2296 (rs6000_emit_vector_compare): Same.
2297 (rs6000_emit_vector_select): Same.
2298 (INSN_NOT_AVAILABLE): New.
2300 2004-10-07 Zdenek Dvorak <dvorakz@suse.cz>
2302 PR tree-optimization/17749
2303 * tree-tailcall.c (find_tail_calls): Check that parameter is
2306 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
2308 * config/ia64/ia64.c: Fix a comment typo.
2310 2004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2312 * doc/install.texi (*-*-solaris2*): Fix marker for URL.
2314 2004-10-07 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2317 * tree-inline.c (expand_call_inline): Do not warn for functions
2318 marked with attribute noinline.
2320 2004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2323 * config/sparc/sparc.c (sparc_output_mi_thunk): Set
2324 current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
2326 * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
2327 of 0 as 4th argument to pass_by_reference.
2328 Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
2330 2004-10-06 Eric Christopher <echristo@redhat.com>
2332 * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
2335 2004-10-07 Richard Sandiford <rsandifo@redhat.com>
2338 * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
2340 2004-10-07 Zdenek Dvorak <dvorakz@suse.cz>
2342 PR rtl-optimization/17791
2343 * loop-doloop.c (doloop_modify): Take number of iterations as
2345 (doloop_optimize): Extend or shorten the number of iterations
2346 when changing mode of counter register.
2347 * loop-iv.c (lowpart_subreg): Export.
2348 * rtl.h (lowpart_subreg): Declare.
2350 2004-10-07 Zdenek Dvorak <dvorakz@suse.cz>
2352 PR tree-optimization/17806
2353 * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
2354 * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
2355 flags moved to split_edge.
2357 2004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2360 * expmed.c (expand_sdiv_pow2): Force a stack adjustment
2361 before tentatively building the conditional move sequence.
2363 2004-10-07 Richard Sandiford <rsandifo@redhat.com>
2366 * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
2368 * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
2369 function_arg_padding.
2371 2004-10-07 Richard Sandiford <rsandifo@redhat.com>
2374 * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
2376 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
2378 * hooks.c (hook_int_void_1, hook_void_int): Remove.
2379 * hooks.h: Remove the corresponding prototypes.
2381 2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
2384 * tree-nested.c (walk_stmt_info): Add changed field.
2385 (convert_nonlocal_reference): Set changed to when we
2386 change a decl to unnested decl.
2387 <case ADDR_EXPR>: Instead of checking if the immediate part
2388 of the ADDR_EXPR changed, check the field changed.
2389 Use recompute_tree_invarant_for_addr_expr instead of unsetting
2391 (convert_local_reference): Set changed to when we
2392 change a decl to unnested decl.
2393 <case ADDR_EXPR>: Instead of checking if the immediate part
2394 of the ADDR_EXPR changed, check the field changed.
2395 Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
2397 2004-10-06 Kazu Hirata <kazu@cs.umass.edu>
2399 * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2400 * dwarf2out.c (dwarf2out_init): Remove references to
2401 DWARF2_GENERATE_TEXT_SECTION_LABEL.
2402 * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
2403 * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2405 2004-10-06 Joseph S. Myers <jsm@polyomino.org.uk>
2407 * c-typeck.c (convert_arguments): Take expression for called
2408 function rather than its name. Handle ObjC selectors directly
2409 rather than relying on warn_for_assignment to do so. Call warning
2410 directly rather than warn_for_assignment. Use %qE in diagnostics.
2411 Say "argument" rather than "arg" in diagnostics.
2412 (build_function_call): Update call to convert_arguments.
2414 2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
2417 * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
2418 ENUMs specially instead of just saying we do.
2420 2004-10-06 Eric Christopher <echristo@redhat.com>
2422 * dwarf2.h: Sync with include/elf/dwarf2.h
2424 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
2426 * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
2429 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
2431 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
2432 to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
2434 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
2436 * lambda-code.c (compute_nest_using_fourier_motzkin): New
2438 (lambda_compute_auxillary_space): Split from here.
2440 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
2442 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
2443 * tree-flow.h: Add prototype.
2444 * lambda-code.c (invariant_in_loop_and_outer_loops): Use
2445 expr_invariant_in_loop.
2447 2004-10-06 Kazu Hirata <kazu@cs.umass.edu>
2449 * tree-cfg.c (thread_jumps): Remove a duplicate check for
2452 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
2454 * config/s390/s390-protos.h (s_imm_operand): Remove.
2455 (s390_pool_operand): Add prototype.
2456 * config/s390/s390.c (general_s_operand): Remove.
2457 (s_imm_operand): Remove.
2458 (s_operand): Merge contents of general_s_operand.
2459 (s390_pool_operand): New function.
2460 * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
2461 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
2462 ("*cmpdi_ccu"): Merge Q->Q alternative.
2463 ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
2464 ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
2466 ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
2467 ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
2468 ("*movstricthi"): Use memory_operand instead of s_imm_operand.
2470 2004-10-06 Steve Ellcey <sje@cup.hp.com>
2472 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
2473 call ia64_function_arg_boundary.
2474 * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
2475 * config/ia64/ia64.c (ia64_function_arg_boundary): New.
2476 (ia64_function_arg_advance): Do not put 128 bit floats into
2479 2004-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2481 * builtins.c (expand_builtin_strcpy): Delete duplicate code.
2482 Accept an expression instead of an arglist.
2483 (expand_builtin_stpcpy): Accept an expression instead of an
2486 2004-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2489 * doc/install.texi (*-*-solaris2*): Mention potential problem
2490 with Sun assembler + GNU linker and C++ programs.
2491 Document status of binutils 2.15 release.
2493 2004-10-06 Jan Hubicka <jh@suse.cz>
2495 * cse.c (cse_main): Kill push/pop context.
2497 2004-10-05 Zack Weinberg <zack@codesourcery.com>
2499 * pretty-print.c: Include tree.h.
2500 (pp_base_prepare_to_format): New function, logic from
2501 text_specifies_location.
2502 (pp_base_format_text): Use gcc_assert.
2503 * pretty-print.h (pp_prepare_to_format): New macro.
2504 (pp_base_prepare_to_format): Prototype.
2505 * diagnostic.c (text_specifies_location): Delete.
2506 (bug_report_request): Delete.
2507 (diagnostic_set_info): Don't call text_specifies_location.
2508 (diagnostic_action_after_output): Put text from
2509 bug_report_request inline here. Use gcc_unreachable.
2510 (diagnostic_report_current_function): Fix comment.
2511 (diagnostic_report_diagnostic): Clarify logic for error recursion.
2512 Call pp_prepare_to_format before diagnostic_starter.
2513 (trim_filename): Use IS_DIR_SEPARATOR.
2514 (fatal_error, internal_error): Use gcc_unreachable.
2515 (error_recursion): Call diagnostic_action_after_output to
2516 issue the bug_report_request message and exit.
2517 * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
2519 * c-parse.in: Add list of diagnostic messages to insulate
2520 translation template from version of yacc/bison used to
2521 compile the grammar.
2523 2004-10-06 Alan Modra <amodra@bigpond.net.au>
2526 * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
2528 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2530 * basic-block.h: Remove the prototype for
2531 flow_preorder_transversal_compute.
2532 * cfganal.c (dfst_node): Remove.
2533 (flow_preorder_transversal_compute): Likewise.
2534 * rtl.h: Remove the prototype for get_jump_table_offset.
2535 * rtlanal.c (get_jump_table_offset): Remove.
2537 2004-10-05 Richard Henderson <rth@redhat.com>
2540 * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
2542 2004-10-05 Kelley Cook <kcook@gcc.gnu.org>
2545 * Makefile.in: Stage the build directory too.
2547 2004-10-05 Aldy Hernandez <aldyh@redhat.com>
2549 * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
2551 * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
2552 (frv_emit_move): Same.
2554 * config/frv/frv.c (frv_emit_move): New.
2555 (frv_legitimize_address): New.
2557 * config/frv/frv.md ("movsi"): Call frv_emit_move.
2564 2004-10-05 Joseph S. Myers <jsm@polyomino.org.uk>
2566 * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
2569 2004-10-05 Joseph S. Myers <jsm@polyomino.org.uk>
2571 * c-decl.c (pushdecl): When an extern declaration at block scope
2572 refers to a visible entity with internal linkage, use the old DECL
2573 rather than the new one.
2575 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2577 * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
2580 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2582 * tree-cfg.c (thread_jumps): Remove a duplicate check for
2585 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2587 * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
2588 of FOR_BB_BETWEEN. Remove a useless check for unreachable
2591 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2593 * tree-cfg.c (cleanup_tree_cfg): Don't call
2594 delete_unreachable_blosk() after thread_jumps().
2595 (thread_jumps): Always remove basic blocks as they become
2598 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2600 * tree-cfg.c (cleanup_tree_cfg): Remove variable
2601 something_changed. Simplify the while loop.
2603 2004-10-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2605 * builtins.c (expand_builtin_memmove): Delete duplicate code
2606 and accept a tree type for the result.
2607 (expand_builtin_bcopy): Accept a tree type for the result.
2608 (fold_builtin_memmove): Accept an arglist and tree type for
2611 2004-10-05 Ulrich Weigand <uweigand@de.ibm.com>
2613 * config/s390/s390.c (s390_dump_pool): Remove return value.
2614 Use gen_pool_align, gen_pool_section_start/end instead of
2615 gen_pool_start/end_31/64.
2616 * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
2617 (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
2618 ("pool_start_31", "pool_end_31"): Remove.
2619 ("pool_start_64", "pool_end_64"): Likewise.
2620 ("pool_align", "pool_section_start", "pool_section_end": New insns.
2622 * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
2623 (TARGET_CANNOT_COPY_INSN_P): Define.
2624 (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
2625 (struct constant_pool): New member 'execute'.
2626 (s390_add_execute, s390_find_execute): New functions.
2627 (s390_execute_label, s390_execute_target): Likewise.
2628 (s390_dump_pool): Output in-pool execute target templates.
2629 (s390_dump_execute): New function.
2630 (s390_alloc_pool, s390_free_pool): Handle execute templates.
2631 (s390_mainpool_start, s390_mainpool_finish): Likewise.
2632 (s390_chunkify_start, s390_chunkify_finish): Likewise.
2633 * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
2634 ("*execute"): New insn pattern.
2635 ("movmem_short", "*movmem_short"): Use splitters to generate
2636 explicit execute pattern, remove embedded execute.
2637 ("clrmem_short", "*clrmem_short"): Likewise.
2638 ("cmpmem_short", "*cmpmem_short"): Likewise.
2640 2004-10-05 Daniel Berlin <dberlin@dberlin.org>
2642 * tree-ssa.c (verify_ssa): Verify phi arguments only
2643 contain renamed names.
2645 2004-10-05 Alan Modra <amodra@bigpond.net.au>
2647 * config/rs6000/linux.h: Formatting, whitespace.
2648 * config/rs6000/linux64.h: Likewise.
2649 * config/rs6000/rs6000-protos.h: Likewise.
2650 * config/rs6000/rs6000.c: Likewise.
2651 (easy_vector_splat_const): Add fall thru comments.
2652 (output_vec_const_move): Likewise.
2654 2004-10-05 Kelley Cook <kcook@gcc.gnu.org>
2656 * Makefile.in: Update -Wno-error exceptions for move to build dir.
2658 2004-10-05 Chao-Ying Fu <fu@mips.com>
2659 Richard Sandiford <rsandifo@redhat.com>
2661 * doc/invoke.texi (-mpaired-single): Link to the new description of the
2662 built-in functions. Document dependencies.
2663 (-mips3d): Add link here too.
2664 * doc/extend.texi (MIPS Paired-Single Support): New section.
2666 2004-10-04 Chao-ying Fu <fu@mips.com>
2668 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
2670 2004-10-04 Diego Novillo <dnovillo@redhat.com>
2672 * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2673 Initialize OPT_STATS to 0.
2675 2004-10-04 Kazu Hirata <kazu@cs.umass.edu>
2677 * tree-data-ref.c: Fix comment typos.
2679 2004-10-04 Sebastian Pop <pop@cri.ensmp.fr>
2681 * tree-data-ref.c (array_base_name_differ_p): Fix comments. When
2682 the predicate cannot be computed, don't initialize the result to
2685 2004-10-01 Eric Christopher <echristo@redhat.com>
2687 * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
2688 locally defined enum.
2689 * dwarf2out.c (add_calling_convention_attribute): Don't
2692 2004-10-03 Andrew Pinski <pinskia@physics.uc.edu>
2694 PR c/17178, PR c/17820
2695 * c-decl.c (pop_scope): Do not warn about unused static
2696 variables as they warned in the middle-end.
2698 2004-10-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2700 * builtins.c (expand_builtin_memcpy): Delete duplicate code
2701 and make the first parameter the expression not the arglist.
2703 2004-10-03 Ulrich Weigand <uweigand@de.ibm.com>
2705 * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
2706 as valid modes to expand address expressions.
2708 2004-10-03 Joseph S. Myers <jsm@polyomino.org.uk>
2710 * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
2711 c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
2712 c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
2713 code formatting conventions.
2715 2004-10-03 Richard Sandiford <rsandifo@redhat.com>
2717 * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
2719 2004-10-03 Kazu Hirata <kazu@cs.umass.edu>
2721 PR tree-optimization/16632
2722 * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
2723 fold (A & C) == D into 0, fold ~C. Similarly, for the case
2724 where | is used instead of &.
2726 2004-10-03 Kazu Hirata <kazu@cs.umass.edu>
2728 * ginclude/stddef.h: Fix a comment typo.
2730 2004-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2733 * config.gcc (i?86-*-solaris2*): Restore correct logic
2734 for --enable-threads option.
2735 (sparc64-*-solaris2*): Likewise.
2736 (sparc-*-solaris2*): Likewise.
2738 2004-10-03 Alan Modra <amodra@bigpond.net.au>
2740 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
2741 (OS_MISSING_POWERPC64): Move, and comment.
2742 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
2743 (OS_MISSING_POWERPC64): Move, and comment.
2745 2004-10-02 Ian Lance Taylor <ian@wasabisystems.com>
2747 * arm.c (output_call_mem): Add missing \t.
2749 2004-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2751 * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
2752 expand_builtin_strncmp): Delete duplicate code.
2754 2004-10-02 Frank Ch. Eigler <fche@redhat.com>
2756 * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
2757 take check-base and -limit arguments.
2758 (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
2759 check ranges for ARRAY_REF and COMPONENT_REF.
2760 (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
2763 2004-10-02 Joseph S. Myers <jsm@polyomino.org.uk>
2765 * c-objc-common.c (c_tree_printer): Correct description of %E.
2766 Don't fall through after printing an expression.
2768 2004-10-02 Kazu Hirata <kazu@cs.umass.edu>
2770 * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
2772 2004-10-02 Kazu Hirata <kazu@cs.umass.edu>
2774 * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
2775 delete_unrechable_blocks() only when necessary.
2777 2004-10-02 P.J. Darcy <darcypj@us.ibm.com>
2779 * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
2780 (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
2781 (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
2782 __gthread_recursive_mutex_unlock): New functions.
2784 2004-10-02 P.J. Darcy <darcypj@us.ibm.com>
2786 * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
2787 * config/s390/tpf-eh.c: Remove file.
2788 * config/s390/tpf-unwind.h: New file.
2789 * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
2790 (MD_UNWIND_SUPPORT): Define.
2792 2004-10-02 Joseph S. Myers <jsm@polyomino.org.uk>
2794 * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
2796 2004-10-01 Ulrich Weigand <uweigand@de.ibm.com>
2798 * config/s390/s390-protos.h (s390_comparison): Add prototype.
2799 * config/s390/s390.c (s390_comparison): New function.
2800 (s390_branch_condition_mask): Return -1 for invalid comparisons.
2801 (s390_branch_condition_mnemonic): Assert valid comparison.
2802 * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
2803 * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
2804 "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
2805 s390_comparison instead of comparison_operator.
2807 * config/s390/s390.md (UNSPEC_CMPINT): New constant.
2808 ("cmpmemdi"): Remove.
2809 ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
2810 ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
2811 ("cmpint_si"): Rename to ...
2812 ("*cmpint_si"): ... this. Use UNSPEC_CMPINT.
2813 ("cmpint_di", "*cmpint_di"): Likewise.
2814 * config/s390/s390.c (s390_canonicalize_comparison): Remove
2815 redundant UNSPEC_CMPINT conversions.
2816 (s390_expand_cmpmem): Adapt to cmpint pattern changes.
2818 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
2820 * collect2.c (COLLECT_PARSE_FLAG): Remove.
2821 (main): Remove a reference to COLLECT_PARSE_FLAG
2822 * system.h: Poison COLLECT_PARSE_FLAG.
2823 * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
2825 2004-10-01 Paul Brook <paul@codesourcery.com>
2827 * config/arm/crti.asm: Give _init and _fini function type.
2829 2004-10-01 Zdenek Dvorak <dvorakz@suse.cz>
2831 * common.opt (ftree-loop-ivcanon): Enable by default.
2832 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2833 Enable complete loop unrolling.
2834 (canonicalize_induction_variables, tree_unroll_loops_completely):
2837 2004-10-01 Paul Brook <paul@codesourcery.com>
2839 * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
2840 not register number.
2841 (thumb_find_work_register): Search full register range.
2843 2004-10-01 Andrew Pinski <pinskia@physics.uc.edu>
2846 * tree-cfg.c (group_case_labels): Get the label and not
2847 the case expr for the default case.
2848 When the label we looking at is the default, decrement the
2851 2004-10-01 Jan Hubicka <jh@suse.cz>
2853 * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
2854 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2855 * toplev.h (tree_rest_of_compilation): Update prototype.
2856 * tree-optimize.c (tree_rest_of_compilation): Kill nested_p argument.
2858 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
2860 * tree-cfg.c (cleanup_tree_cfg): Pull a call to
2861 cleanup_control_flow() out of the while loop.
2863 2004-10-01 Paolo Bonzini <bonzini@gnu.org>
2865 * tree-vectorizer.c (vectorizable_operation): Fail unless
2866 the mode for the vector type is indeed a vector mode.
2868 2004-10-01 Zdenek Dvorak <dvorakz@suse.cz>
2870 * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
2871 chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
2873 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2874 add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
2875 follow_ssa_edge_in_rhs): Ditto.
2876 * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
2877 (dump_iv): Dump base_object.
2878 (dump_use, dump_cand): Use dump_iv.
2879 (determine_base_object): New function.
2880 (alloc_iv): Initialize base_object field.
2881 (record_use): Clear the ssa_name field of iv.
2882 (get_computation_cost_at): Do not use difference of addresses of
2883 two different objects.
2884 (may_eliminate_iv): Do not require the loop to have just single exit.
2885 * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
2886 (nonzero_p): New function.
2887 (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
2888 tree_simplify_using_condition, simplify_using_initial_conditions,
2889 loop_niter_by_eval, find_loop_niter_by_eval,
2890 estimate_numbers_of_iterations_loop, compare_trees,
2891 upper_bound_in_type, lower_bound_in_type,
2892 can_count_iv_in_wider_type_bound): Use buildN instead of build. Use
2893 fold_convert or build_int_cst_type instead of convert. Use (non)zero_p
2894 instead of integer_(non)zerop.
2896 2004-10-01 Jakub Jelinek <jakub@redhat.com>
2899 2004-09-29 Jakub Jelinek <jakub@redhat.com>
2901 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2902 and TI_VA_LIST_FPR_COUNTER_FIELD.
2903 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2904 * tree-pass.h (pass_stdarg): Add.
2905 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2906 * tree-stdarg.c: New file.
2907 * Makefile.in (OBJS-common): Add tree-stdarg.o.
2908 (tree-stdarg.o): Add dependencies.
2909 * function.h (struct function): Add va_list_gpr_size and
2910 va_list_fpr_size fields.
2911 * function.c (allocate_struct_function): Initialize them.
2913 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2914 va_list_{g,f}pr_counter_field.
2915 (ix86_setup_incoming_varargs): Don't do anything if reg_save
2916 area will not be used. Only save registers that tree-stdarg.c
2917 detected they need saving.
2918 (ix86_va_start): Don't set up fields that won't be used.
2920 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2921 va_list_{g,f}pr_counter_field.
2922 (setup_incoming_varargs): Don't do anything if reg_save
2923 area will not be used. Only save registers that tree-stdarg.c
2924 detected they need saving.
2925 (rs6000_va_start): Don't set up fields that won't be used.
2927 2004-09-30 Eric Christopher <echristo@redhat.com>
2929 * dwarf2.h (dwarf_calling_convention): Add enum for renesas
2931 * dwarf2out.c (add_calling_convention_attribute): New function.
2932 (gen_subroutine_type_die): Use.
2933 * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
2934 * target.h (gcc_target): Add dwarf_calling_convention.
2935 * hooks.c (hook_int_tree_0): New function.
2936 * hooks.h: Prototype.
2937 * config/sh/sh.c: Include dwarf2.h.
2938 (sh_dwarf_calling_convention): New function.
2939 (TARGET_DWARF_CALLING_CONVENTION): Use.
2940 * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
2942 2004-09-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2944 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2945 expand_builtin_strrchr, expand_builtin_strpbrk,
2946 expand_builtin_strncat, expand_builtin_strspn,
2947 expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
2950 2004-09-30 Ulrich Weigand <uweigand@de.ibm.com>
2952 * config/s390/s390-protos.h (s390_expand_logical_operator): Add
2954 (s390_logical_operator_ok_p): Likewise.
2955 * config/s390/s390.c (s390_expand_logical_operator): New function.
2956 (s390_logical_operator_ok_p): Likewise.
2957 * config/s390/s390.md ("anddi3"): New expander.
2958 ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
2959 ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
2960 ("andsi3"): Use s390_expand_logical_operator.
2961 ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
2962 ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
2963 ("andhi3"): New expander.
2964 ("*andhi3_zarch", "*andhi3_esa"): New patterns.
2965 ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
2966 ("andqi3"): New expander.
2967 ("*andqi3_zarch", "*andqi3_esa"): New patterns.
2968 ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
2969 ("iordi3"): New expander.
2970 ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
2971 ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
2972 ("iorsi3"): Use s390_expand_logical_operator.
2973 ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
2974 ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
2975 ("iorhi3"): New expiorer.
2976 ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
2977 ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
2978 ("iorqi3"): New expiorer.
2979 ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
2980 ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
2981 ("xordi3"): New expander.
2982 ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
2983 ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
2984 ("xorsi3"): New expander.
2985 ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
2986 ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
2987 ("xorhi3"): New expander.
2988 ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
2989 ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
2990 ("xorqi3"): New expander.
2991 ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
2992 ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
2994 2004-09-30 Roger Sayle <roger@eyesopen.com>
2996 * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
2997 (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
2998 machine mode as the result.
3000 2004-09-30 Ben Elliston <bje@au.ibm.com>
3003 * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
3004 FOR_EACH_EDGE macros.
3006 2004-09-30 Joseph S. Myers <jsm@polyomino.org.uk>
3008 * c-tree.h (readonly_error): Remove.
3009 * c-typeck (enum lvalue_use): New.
3010 (lvalue_or_else, readonly_error): Use it. All callers changed.
3011 (readonly_error): Make static.
3013 2004-09-30 Jan Hubicka <jh@suse.cz>
3016 * cfgrtl.c (try_redirect_by_replacing_jump,
3017 force_nonfallthru_and_redirect, commit_one_edge_insertion,
3018 cfg_layout_merge_blocks): Do not attach any line number information
3019 to newly inserted instructions.
3020 * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
3022 (emit_*insn_before, emit_insn*_after): New.
3023 (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
3025 * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
3026 (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
3028 2004-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3030 * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
3031 (s390_return_address_offset): Remove.
3032 (s390_can_eliminate): Add prototype.
3033 (s390_initial_elimination_offset): Add prototype.
3034 * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
3035 (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
3036 * config/s390/s390.c (s390_arg_frame_offset): Remove.
3037 (s390_return_address_offset): Remove.
3038 (s390_can_eliminate, s390_initial_elimination_offset): New functions.
3039 (struct machine_function): New member split_branches_pending_p.
3040 (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
3041 (s390_mainpool_finish): Likewise. Clear base_reg if pool empty.
3042 (s390_optimize_prologue): Remove base_used argument. Call
3043 s390_update_frame_layout instead of s390_register_info. Handle
3044 prologue/epilogue insns that touch only RETURN_REGNUM.
3045 (s390_reorg): Remove base_used. Clear split_branches_pending_p.
3046 (s390_register_info): Remove base_used and return_addr_used
3047 arguments, compute special register usage inline. Return live
3048 register data to caller.
3049 (s390_frame_info): Remove arguments, do not call s390_register_info.
3050 (s390_init_frame_layout): New function.
3051 (s390_update_frame_layout): Likewise.
3052 (s390_emit_prologue): Call s390_update_frame_layout; some code
3053 move to there. Do not emit pool placeholder insn if unnecessary.
3055 2004-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3057 * config/s390/s390.c (legitimate_reload_constant_p): Remove
3058 floating point constant workaround.
3059 (s390_secondary_input_reload_class): Handle PLUS reloads
3060 with too-large constant.
3061 (s390_expand_plus_operand): Likewise.
3062 * config/s390/s390.md ("movdi"): Do not call force_const_mem.
3063 ("movsi"): Likewise. Also, remove workaround for non-general
3065 ("movdf"): Do not call force_const_mem.
3066 ("movsf"): Likewise. Merge expander with *movsf insn.
3067 ("*movsf"): Remove, merge with movsf expander.
3069 2004-09-30 Paul Brook <paul@codesourcery.com>
3071 * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
3072 (ENDFILE_SPEC): Define.
3073 * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
3075 2004-09-30 Richard Henderson <rth@redhat.com>
3077 * config/alpha/qrnnd.asm: Mark for noexecstack.
3079 2004-09-30 Kazu Hirata <kazu@cs.umass.edu>
3081 * protoize.c, tree-cfg.c: Fix comment typos.
3083 2004-09-30 Joseph S. Myers <jsm@polyomino.org.uk>
3086 * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
3088 2004-09-30 Diego Novillo <dnovillo@redhat.com>
3090 * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
3092 (add_pointed_to_expr): ... here.
3093 Call add_pointed_to_expr for variables with DECL_INITIAL set.
3094 * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
3095 pointer variable, if set.
3097 2004-09-30 Kazu Hirata <kazu@cs.umass.edu>
3099 * config/sh/sh.c: Follow spelling conventions.
3101 2004-09-29 Richard Henderson <rth@redhat.com>
3103 * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
3104 * doc/tm.texi (DWARF_ZERO_REG): New.
3106 * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
3107 alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
3108 * config/alpha/alpha.h (DWARF_ZERO_REG): New.
3110 2004-09-29 Ulrich Weigand <uweigand@de.ibm.com>
3112 * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
3113 with a PLUS as source operand.
3114 (expand_movstr): Likewise.
3115 (expand_builtin_stpcpy): Likewise.
3117 2004-09-29 Richard Henderson <rth@redhat.com>
3120 * tree-gimple.c (is_gimple_reg): Reject hard registers.
3121 (is_gimple_asm_val): New.
3122 * tree-gimple.h (is_gimple_asm_val): Declare.
3123 * gimplify.c (gimplify_asm_expr): Use it.
3124 * tree-pretty-print.c (print_declaration): Dump hard regs.
3125 * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
3126 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3127 * tree-ssa-pre.c (is_undefined_value): Likewise.
3128 * tree-ssa-copy.c (may_propagate_copy): Likewise.
3129 (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
3130 * tree-ssa.c (warn_uninit): Likewise.
3131 * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
3133 2004-09-29 Fariborz Jahanian <fjahanian@apple.com>
3135 * c-decl.c (merge_decls): Use comptype when comparing
3136 types to decide on DECL_SIZE save of olddecl.
3138 2004-09-29 Daniel Berlin <dberlin@dberlin.org>
3140 * tree.h (INDIRECT_REF_P): New macro.
3141 * alias.c (get_alias_set): Use it
3142 (nonoverlapping_memrefs_p): Ditto.
3143 * emit-rtl.c (mem_expr_equal_p): Ditto.
3144 (set_mem_attributes_minus_bitpos): Ditto.
3145 (is_gimple_addressable): Ditto.
3146 (get_base_address): Ditto.
3147 * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
3148 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
3149 * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
3150 * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
3151 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
3152 (add_address_candidates): Ditto.
3153 (rewrite_address_base): Ditto.
3155 2004-09-30 Ben Elliston <bje@au.ibm.com>
3157 * tree-flow.h (struct bb_ann_d): Remove num_preds member.
3158 * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
3159 (rewrite_ssa_into_ssa): Likewise.
3160 * tree-phinodes.c (create_phi_node): Access the number of
3161 predecessor edges using EDGE_COUNT() and not num_preds.
3163 2004-09-29 Joseph S. Myers <jsm@polyomino.org.uk>
3166 * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
3168 2004-09-29 Eric Christopher <echristo@redhat.com>
3170 * fold-const.c (tree_swap_operands_p): Remove duplicated code.
3172 2004-09-29 Hans-Peter Nilsson <hp@axis.com>
3174 * config/cris/cris.md (moverside, movemside): With MEM, make sure
3175 the address is (plus reg mem).
3177 2004-09-29 David Edelsohn <edelsohn@gnu.org>
3179 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
3181 2004-09-29 Nathan Sidwell <nathan@codesourcery.com>
3183 * tree.c (make_node_stat): Fix uninitialized warning. Replace
3184 cascaded if ... else if with a switch.
3186 2004-09-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3188 * read-rtl.c (apply_macro_to_string): Replace index with strchr.
3190 2004-09-29 Jakub Jelinek <jakub@redhat.com>
3192 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3193 and TI_VA_LIST_FPR_COUNTER_FIELD.
3194 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3195 * tree-pass.h (pass_stdarg): Add.
3196 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3197 * tree-stdarg.c: New file.
3198 * Makefile.in (OBJS-common): Add tree-stdarg.o.
3199 (tree-stdarg.o): Add dependencies.
3200 * function.h (struct function): Add va_list_gpr_size and
3201 va_list_fpr_size fields.
3202 * function.c (allocate_struct_function): Initialize them.
3204 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3205 va_list_{g,f}pr_counter_field.
3206 (ix86_setup_incoming_varargs): Don't do anything if reg_save
3207 area will not be used. Only save registers that tree-stdarg.c
3208 detected they need saving.
3209 (ix86_va_start): Don't set up fields that won't be used.
3211 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3212 va_list_{g,f}pr_counter_field.
3213 (setup_incoming_varargs): Don't do anything if reg_save
3214 area will not be used. Only save registers that tree-stdarg.c
3215 detected they need saving.
3216 (rs6000_va_start): Don't set up fields that won't be used.
3218 2004-09-29 Jakub Jelinek <jakub@redhat.com>
3220 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
3221 BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
3222 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
3223 BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
3224 * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
3225 ATTR_NONNULL_1_4): New.
3227 2004-09-29 Jakub Jelinek <jakub@redhat.com>
3229 PR tree-optimization/17697
3230 * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
3233 2004-09-28 Per Bothner <per@bothner.com>
3235 * profile.c (branch_prob): Pass correct value to output_location,
3236 even when USE_MAPPED_LOCATION. Fixes bug from 09-11.
3238 2004-09-28 Richard Henderson <rth@redhat.com>
3241 * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
3242 * tree-flow.h (may_propagate_copy_into_asm): Declare.
3243 * tree-ssa-ccp.c (replace_uses_in): Use it.
3244 * tree-ssa-dom.c (cprop_operand): Likewise.
3246 2004-09-28 Jeff Law <law@redhat.com>
3248 * tree-ssa-threadupdate.c (create_block_for_threading): Request
3249 that no outgoing edges be left in the duplicate block. Do no
3250 update information on outgoing edges or PHI nodes in target
3252 (remove_ctrl_stmt_and_useless_edges): Renamed from
3253 remove_last_stmt_and_useless_edges. Handle case where the
3254 block is empty or has no control statements. Do not update edge
3256 (thread_block): Create a template block rather than copying the
3257 original block every time. Create outgoing edges from the
3258 duplicate blocks and update PHIs at the target of the outgoing
3259 edges here. Fix edge flags for the original block if necessary.
3260 * cfghooks (duplicate_block): No longer assert that the original
3261 block has incoming edges.
3263 2004-09-29 Hans-Peter Nilsson <hp@bitrange.com>
3265 * doc/extend.texi (Extended Asm): Add blurb about using Explicit
3266 Reg Vars to enforce register allocation with general constraints.
3267 (Explicit Reg Vars): Clarify relation to asm statements.
3268 (Local Reg Vars): Similar.
3270 2004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
3272 * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
3273 TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
3274 build_control_flow, new_edge): Remove.
3275 (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
3276 (bitlst, bitlst_table_last, bitlst_table): Remove.
3277 (bblst): Store basic_block pointer instead of block index.
3278 (bblst_table): Likewise.
3279 (edgelst): Store edge pointer instead of edge index.
3280 (edgelst_table, edgelst_last): New variables.
3281 (extract_bitlst): Rename to ...
3282 (extract_edgelst): ... this. Return edge pointers, not indices.
3283 (split_edges): Update call.
3284 (rgn_edges): Store edge pointers instead of indices.
3285 (edge_to_bit): Remove.
3286 (EDGE_TO_BIT): Store per-region edge index in edge->aux.
3287 (SET_EDGE_TO_BIT): New macro.
3288 (is_cfg_nonregular): Check for simple cases of unreachable blocks.
3289 (find_rgns): Remove edge_list parameter. Traverse standard CFG
3290 data structures instead of haifa_edge et al. Use edge pointers
3291 instead of edge indices everywhere.
3292 (compute_dom_prob_ps): Use standard CFG data structures. Account
3294 (compute_trg_info): Likewise.
3295 (propagate_deps): Likewise.
3296 (debug_candidate): Account for bblst data structure change.
3297 (check_live_1, update_live_1, is_pfree): Likewise.
3298 (IS_REACHABLE): Use standard CFG data structures.
3299 (init_ready_list): Update bblst_table/edgelst_table allocation.
3300 (schedule_region): Update alloc/cleanup code to data structure
3301 changes. Use edge->aux to store per-region edge index.
3302 (init_regions): No longer call build_control_flow. Do not
3303 create edge list any more.
3305 2004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
3307 * cse.c (cse_insn): Avoid creating direct non-local jumps.
3308 * combine.c (can_combine_p): Likewise.
3309 * local-alloc. (update_equiv_regs): Likewise.
3311 2004-09-28 Richard Henderson <rth@redhat.com>
3314 * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
3315 Don't check VOIDmode here. Force PLUS operands to common type.
3316 (expand_expr_addr_expr): Do VOIDmode check earlier. Force use of
3317 Pmode if given a non pointer type.
3319 2004-09-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3322 * optabs.c (expand_binop): Force constants to the correct mode.
3324 2004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
3326 * config/s390/s390.c (s390_adjust_cost): Remove.
3327 (TARGET_SCHED_ADJUST_COST): Do not redefine.
3328 (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
3329 * config/s390/s390.md ("main_pool"): Use "larl" type
3330 attribute if TARGET_CPU_ZARCH.
3332 2004-09-28 Jakub Jelinek <jakub@redhat.com>
3334 * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
3337 2004-09-28 Diego Novillo <dnovillo@redhat.com>
3339 * tree-ssa-loop.c (pass_record_bounds): Do not assign a
3342 2004-09-28 Steven Bosscher <stevenb@suse.de>
3344 * common.opt (flag_gcse_sm): Disable by default.
3345 (flag_gcse_las): Likewise.
3346 (flag_web): Likewise. Create from this file.
3347 * flags.h: Remove flag_web declaration.
3348 * toplev.c (flag_web): Likewise.
3349 (process_options): Never set flag_web.
3351 2004-09-28 Steven Bosscher <stevenb@suse.de>
3353 * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
3354 * tree-ssa-propagate.c: Include vec.h.
3355 (interesting_ssa_edges, varying_ssa_edges): Make these VECs
3357 (cfg_blocks_add): Assert the block is not already in the worklist.
3358 Update uses of interesting_ssa_edges and varying_ssa_edges.
3359 (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
3360 ssa_propagate): Likewise.
3362 2004-09-28 Joseph S. Myers <jsm@polyomino.org.uk>
3365 * c-decl.c (start_decl): Check for initializing incomplete array
3367 (build_compound_literal): Check for TYPE being error_mark_node.
3368 * c-parse.in (primary): Check for VLA compound literals.
3370 2004-09-28 Diego Novillo <dnovillo@redhat.com>
3372 * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
3373 with --disable-checking.
3375 2004-09-28 Devang Patel <dpatel@apple.com>
3377 * tree-pretty-print.c (dump_generic_node): Print vector types.
3379 2004-09-28 Nick Clifton <nickc@redhat.com>
3381 * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
3382 invocation of the function sh_init_cumulative_args.
3383 (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
3384 (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
3385 * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
3386 * config/sh/sh.c (sh_init_cumulative_args): New function based
3387 on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
3388 heuristic added to determine the setting of force_mem when a
3389 library function is being called.
3391 2004-09-28 Diego Novillo <dnovillo@redhat.com>
3393 * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
3394 Skip constant arguments.
3396 2004-09-28 Diego Novillo <dnovillo@redhat.com>
3398 * tree-ssa-alias.c (create_name_tags): If PTR points to a
3399 volatile type, mark the tag volatile.
3400 (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
3403 2004-09-28 Andrew Pinski <pinskia@physics.uc.edu>
3405 * tree.def (vec_cond_expr): Fix. Change 'e'
3408 2004-09-28 Kazu Hirata <kazu@cs.umass.edu>
3410 * basic-block.h: Fix a comment typo.
3412 2004-09-28 Kazu Hirata <kazu@cs.umass.edu>
3414 * optabs.c, optabs.h: Fix comment typos.
3416 2004-09-28 Eric Botcazou <ebotcazou@act-europe.fr>
3418 * config/sparc/sparc.md (call_address_struct_value_sp32):
3419 Properly mask the immediate field of the 'unimp' instruction.
3420 (call_symbolic_struct_value_sp32): Likewise.
3422 2004-09-28 Ben Elliston <bje@au.ibm.com>
3423 Steven Bosscher <stevenb@suse.de>
3424 Andrew Pinski <pinskia@physics.uc.edu>
3426 Merge from edge-vector-branch:
3427 * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
3428 (struct edge_def): Remove pred_next, succ_next members.
3429 (struct basic_block_def): Remove pred, succ members. Add preds
3430 and succs members of type VEC(edge).
3431 (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
3432 (BRANCH_EDGE): Likewise.
3433 (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
3434 (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
3435 (edge_iterator): New.
3436 (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
3437 (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
3438 (FOR_EACH_EDGE): New.
3439 * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
3441 (rotate_loop): Likewise.
3442 (find_traces_1_route): Likewise.
3443 (bb_to_key): Likewise.
3444 (connect_traces): Likewise.
3445 (copy_bb_p): Likewise.
3446 (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
3447 (add_labels_and_missing_jumps): Likewise.
3448 (fix_up_fall_thru_edges): Likewise.
3449 (find_jump_block): Likewise.
3450 (fix_crossing_conditional_branches): Likewise.
3451 (fix_crossing_unconditional_branches): Likewise.
3452 (add_reg_crossing_jump_notes): Likewise.
3453 * bt-load.c (augment_live_range): Likewise.
3454 * cfg.c (clear_edges): Likewise.
3455 (unchecked_make_edge): Likewise.
3456 (cached_make_edge): Likewise.
3457 (make_single_succ_edge): Likewise.
3458 (remove_edge): Likewise.
3459 (redirect_edge_succ_nodup): Likewise.
3460 (check_bb_profile): Likewise.
3461 (dump_flow_info): Likewise.
3462 (alloc_aux_for_edges): Likewise.
3463 (clear_aux_for_edges): Likewise.
3464 (dump_cfg_bb_info): Likewise.
3465 * cfganal.c (forwarder_block_p): Likewise.
3466 (can_fallthru): Likewise.
3467 (could_fall_through): Likewise.
3468 (mark_dfs_back_edges): Likewise.
3469 (set_edge_can_fallthru_flag): Likewise.
3470 (find_unreachable_blocks): Likewise.
3471 (create_edge_list): Likewise.
3472 (verify_edge_list): Likewise.
3473 (add_noreturn_fake_exit_edges): Likewise.
3474 (connect_infinite_loops_to_exit): Likewise.
3475 (flow_reverse_top_sort_order_compute): Likewise.
3476 (flow_depth_first_order_compute): Likewise.
3477 (flow_preorder_transversal_compute): Likewise.
3478 (flow_dfs_compute_reverse_execute): Likewise.
3479 (dfs_enumerate_from): Likewise.
3480 (compute_dominance_frontiers_1):