1 2004-10-26 James E Wilson <wilson@specifixinc.com>
4 * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
6 2004-10-26 Zack Weinberg <zack@codesourcery.com>
8 * dbxout.c: Include obstack.h.
9 (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
11 (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
13 (DBX_CONTIN_LENGTH): Move definition with others.
14 (DBX_FINISH_STABS): New target macro.
15 (current_sym_code, current_sym_value, current_sym_addr)
16 (current_sym_nchars, CHARS, dbxout_continue)
17 (print_int_cst_octal, print_octal, print_wide_int)
18 (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
19 (stabstr_ob, stabstr_last_contin_point): New variables.
20 (NUMBER_FMT_LOOP): New improper macro.
21 (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
22 (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
23 (dbxout_stab_value_internal_label_diff, dbxout_stabd)
24 (dbxout_begin_stabn, dbxout_begin_stabn_sline)
25 (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
26 (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
27 (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
28 (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
29 New functions and/or proper function-like macros.
30 (CONTIN): Use stabstr_continue, unconditionally.
31 (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
32 (dbxout_init): Initialize stabstr_ob. Check
33 NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label
34 if it was used. Use the new interfaces.
35 (dbxout_source_file): Remove file argument; always write to
36 asm_out_file. Use the new interfaces.
37 (dbxout_type_method_1): Remove second argument which is always
38 DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces.
39 (dbxout_type_methods): Remove write-only variables. Use the
41 (dbxout_parms): Refactor to remove code duplicated in each of
42 several successive if-else-if blocks. Use the new interfaces.
43 (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
44 (dbxout_source_line, dbxout_finish, dbxout_type_index)
45 (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
46 (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
47 (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
48 (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
49 Use the new interfaces.
50 * Makefile.in (dbxout.o): Update dependencies.
52 * defaults.h: Don't define ASM_STABD_OP.
53 * output.h: Prototype new dbxout_* interfaces.
54 * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
55 * varasm.c: Don't define ASM_STABS_OP.
56 (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
57 Use the new dbxout.c interfaces. Call sorry if neither
58 DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
60 * xcoffout.h: Don't define ASM_STABS_OP.
61 (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
62 (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
63 (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
64 (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
65 do { ... } while (0) idiom.
67 * config/alpha/alpha.c (num_source_filenames): Export.
68 * config/alpha/alpha.h (num_source_filenames): Declare.
69 (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
70 (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
71 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
72 Always use .debugsym. Update commentary.
73 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
74 (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
75 * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
77 * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
78 (macho_branch_islands): Use new interfaces.
80 * doc/tm.texi: Update.
82 2004-10-26 Aldy Hernandez <aldyh@redhat.com>
84 * expr.c (emit_group_store): Do not treat floats as BLKmode.
85 (emit_group_load): Same.
87 2004-10-26 Joseph S. Myers <jsm@polyomino.org.uk>
89 * c-parse.in (datadef): Use pedwarn rather than error and warning
90 for diagnostic in case of no declaration specifiers.
92 2004-10-26 Richard Sandiford <rsandifo@redhat.com>
95 * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
96 reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
97 can be used to work around this.
99 2004-10-26 Aldy Hernandez <aldyh@redhat.com>
101 * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
104 2004-10-26 Kazu Hirata <kazu@cs.umass.edu>
106 * stmt.c (expand_case): Update a comment.
108 2004-10-26 Kazu Hirata <kazu@cs.umass.edu>
110 * stmt.c (expand_case): Put an assertion that index_expr is
111 never INTEGER_CST. Don't special case for constant
114 2004-10-26 Andrew Pinski <pinskia@physics.uc.edu>
117 * c-parse.in (designator): Finish with a semi-colon.
119 2004-10-26 Fariborz Jahanian <fjahanian@apple.com>
121 * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
124 2004-10-26 Kazu Hirata <kazu@cs.umass.edu>
126 * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
129 2004-10-26 Aldy Hernandez <aldyh@redhat.com>
131 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
133 (spe_build_register_parallel): New.
134 (rs6000_spe_function_arg): Handle e500 doubles.
135 (function_arg): Same.
136 (spe_func_has_64bit_regs_p): Same.
137 (rs6000_function_value): Same.
138 (rs6000_libcall_value): Same.
139 (legitimate_lo_sum_address_p): Return false for e500 doubles.
141 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
143 (DATA_ALIGNMENT): Same.
144 (CANNOT_CHANGE_MODE_CLASS): Same.
146 2004-10-26 Aldy Hernandez <aldyh@redhat.com>
148 * expr.c (emit_group_load): Handle floats.
149 (emit_group_store): Same.
151 2004-10-26 Nathan Sidwell <nathan@codesourcery.com>
153 * c-lex.c (get_nonpadding_token): Remove.
154 (c_lex_with_flags): Push timevar and eat padding here. Improve
155 stray token diagnostic.
156 (lex_string): Replace logic with switch statement, eat padding
159 2004-10-26 Geoffrey Keating <geoffk@apple.com>
162 * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
164 2004-10-25 Geoffrey Keating <geoffk@apple.com>
166 * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
168 (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
169 (ASM_MAKE_LABEL_LINKONCE): Delete.
170 (ASM_WEAKEN_DECL): New.
171 (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
172 (ASM_DECLARE_FUNCTION_NAME): Likewise.
173 (TEXT_SECTION_ASM_OP): Add a tab.
174 (DATA_SECTION_ASM_OP): Likewise.
175 (SECTION_FUNCTION): Add a tab. Use fputs. Don't call
176 data_section on every section change.
177 (EXTRA_SECTIONS): Add a bunch of new extra sections.
178 (EXTRA_SECTION_FUNCTIONS): Likewise.
179 (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
180 (JCR_SECTION_NAME): Define.
181 (TARGET_SECTION_TYPE_FLAGS): Don't define.
182 * config/darwin.c (darwin_encode_section_info): A symbol is defined
183 in this file if it is not weak.
184 (textcoal_section): Delete.
185 (datacoal_section): Delete.
186 (darwin_make_decl_one_only): Delete.
187 (machopic_select_section): Handle functions.
188 (darwin_asm_named_section): Add a tab.
189 (darwin_section_type_flags): Delete.
190 (darwin_unique_section): Delete contents.
191 (darwin_emit_unwind_label): Add a tab. Make decls weak if
193 * config/darwin-protos.h (darwin_section_type_flags): Delete.
194 (darwin_make_decl_one_only): Delete.
195 (text_coal_section): New.
196 (text_unlikely_section): New.
197 (text_unlikely_coal_section): New.
198 (const_coal_section): New.
199 (data_coal_section): New.
200 (const_data_coal_section): New.
201 * varasm.c (function_section): Honour
202 USE_SELECT_SECTION_FOR_FUNCTIONS.
203 * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
204 TARGET_USES_WEAK_UNWIND_INFO is in effect.
205 * dbxout.c (dbxout_source_file): Don't change sections while
206 a function is being output.
208 2004-10-25 David Ayers <d.ayers@inode.at>
210 * c-common.h: Remove RID_ID.
211 * c-parse.in: Remove OBJECTNAME and references to RID_ID.
212 (typespec_reserved_attr): Add rule for TYPENAME
213 non_empty_protocolrefs.
214 (yylexname): Remove special handling of RID_ID.
216 2004-10-25 James E Wilson <wilson@specifixinc.com>
218 * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
220 2004-10-25 Joseph S. Myers <jsm@polyomino.org.uk>
223 * c-parse.in (array_designator): New.
224 (designator): Use it.
225 (initelt): Only permit array_designator without '=', not ".foo".
227 2004-10-25 Kenneth Zadeck <zadeck@naturalbridge.com>
228 * gcc/Makefile.in: removed ggc for cgraphunit.
229 * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
230 * gcc/cgraph.h: removed static var analysis data structures and calls.
232 cgraph_mark_local_and_external_functions:changed name to
233 cgraph_mark_local_functions
234 (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
235 cgraph_reset_static_var_maps,get_global_static_vars_info,
236 get_global_statics_not_read,get_global_statics_not_written,searchc,
237 cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
238 check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
239 scan_for_static_refs,cgraph_characterize_statics_local,
240 clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
242 (cgraph_optimize,init_cgraph): removed calls to static vars analysis
243 * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
245 * gcc/tree-flow.h static_vars_info: removed
246 * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
247 removed calls to static vars analysis.
248 get_call_expr_operands: removed callee variable.
250 2004-10-25 Kazu Hirata <kazu@cs.umass.edu>
252 * cfg.c (unchecked_make_edge, redirect_edge_succ,
253 redirect_edge_pred): Use VEC_safe_push instead of
255 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
257 2004-10-25 Kazu Hirata <kazu@cs.umass.edu>
259 * cfgloopmanip.c (loopify): Take two more arguments true_edge
261 * cfgloop.h: Adjust the corresponding prototype.
262 * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
263 * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
265 2004-10-25 Jakub Jelinek <jakub@redhat.com>
267 * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
268 DECL_INCOMING_RTL is NULL.
270 2004-10-25 Steven Bosscher <stevenb@suse.de>
272 * timevar.def (TV_FIND_REFERENCED_VARS): New.
273 * tree-dfa.c (pass_referenced_var): Use it.
275 2004-10-25 Roger Sayle <roger@eyesopen.com>
276 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
278 * cse.c: Change encoding of quantity numbers to avoid undefined
279 pointer arithmetic on qty_table.
280 (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
281 (get_cse_reg_info): Initialize reg_qty to a unique negative value.
282 (new_basic_block): Assign "real" quantity numbers from zero.
283 (delete_reg_equiv): Do nothing if quantity is invalid. Reset the
284 REG_QTY to its unique negative value.
285 (merge_equiv_classes): Calculate need_rehash if quantity is valid.
286 (cse_main): Don't include max_reg when determining max_qty.
287 (cse_basic_block): Avoid subtracting a large offset from qty_table,
288 which causes undefined C99 behaviour. Only allocate needed memory.
290 2004-10-25 Kazu Hirata <kazu@cs.umass.edu>
292 * stmt.c (expand_case): Remove an obsolete comment.
294 2004-10-25 Andrew Pinski <pinskia@physics.uc.edu>
297 * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
298 layout_type as it is already done by build_array_type.
299 * tree.c (build_array_type): Layout the type even
301 2004-10-25 Alexandre Oliva <aoliva@redhat.com>
303 * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
305 2004-10-25 Alexandre Oliva <aoliva@redhat.com>
307 * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
308 with wider-than-32-bit HOST_WIDE_INTs.
310 2004-10-25 David Billinghurst <David.Billinghurst@riotinto.com>
312 * config/mips/mips.c(mips_output_filename): Remove unused
313 array ltext_label_name
315 2004-10-24 Geoffrey Keating <geoffk@geoffk.org>
317 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
319 2004-10-25 Ben Elliston <bje@au.ibm.com>
321 * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
323 2004-10-23 Andrew Pinski <pinskia@physics.uc.edu>
325 * predict.c (predict_loops): Call scev_finalize instead of
328 2004-10-24 Kazu Hirata <kazu@cs.umass.edu>
330 * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
331 config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
332 config/sh/ushmedia.h, config/sparc/elf.h,
333 config/sparc/sp64-elf.h: Update copyright.
335 2004-10-24 Kazu Hirata <kazu@cs.umass.edu>
337 * stmt.c (expand_case): Handle the default label outside of
338 the for loop. Remove code to handle a missing default label.
340 2004-10-23 Kazu Hirata <kazu@cs.umass.edu>
342 * dbxout.c (dbxout_function_decl): Don't use
343 DBX_OUTPUT_FUNCTION_END.
344 * system.h: Poison DBX_OUTPUT_FUNCTION_END.
345 * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
347 2004-10-23 Andrew Pinski <pinskia@physics.uc.edu>
350 * tree-cfg.c (remove_usless_stmts_cond): Don't Fold statement.
352 2004-10-23 Daniel Berlin <dberlin@dberlin.org>
354 * tree-ssa-dom.c (record_equality): Use loop depth to determine
355 which way to record the equality as well.
356 (loop_depth_of_name): New function.
358 2004-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
361 * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
362 through the operand if it is a useless type conversion.
364 2004-10-23 Ben Elliston <bje@au.ibm.com>
366 * cfg.c (remove_edge): Use VEC_unordered_remove.
367 (redirect_edge_succ): Likewise.
368 (redirect_edge_pred): Likewise.
369 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
371 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
373 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
376 2004-10-22 Eric Christopher <echristo@redhat.com>
378 * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
381 2004-10-22 Aldy Hernandez <aldyh@redhat.com>
383 * config/rs6000/spe.md (spe_extendsfdf2): New.
384 (movdf_e500_double): New.
385 (spe_truncdfsf2): New.
392 (spe_floatsidf2): New.
393 (spe_floatunssidf2): New.
394 (fix_truncdfsi2): New.
395 (spe_fixuns_truncdfsi2): New.
397 * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
398 (fpr_truncdfsf2): New.
399 (negdf2): Change to expander.
401 (fpr_nabsdf2): Name pattern.
402 (adddf3): Change to expander.
404 (subdf3): Change to expander.
406 (muldf3): Change to expander.
408 (divdf3): Change to expander.
410 (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
411 (cmpdf): Allow for TARGET_E500_DOUBLE.
413 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
415 * c-semantics.c (re_push_stmt_list): Remove.
416 * c-common.h: Remove the corresponding prototype.
418 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
420 * stmt.c (asm_op_is_mem_input): Remove.
421 * tree.h: Remove the corresponding prototype.
423 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
425 * tree-gimple.c (is_gimple_constructor_elt): Remove.
426 * tree-gimple.h: Remove the corresponding prototype.
428 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
430 * varasm.c (get_pool_mode_for_function, get_pool_offset):
432 * rtl.h: Remove the corresponding prototypes.
434 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
436 * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
437 edge information when we commit ourselves to threading a
440 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
442 * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
443 into worklist instead of their indexes.
445 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
447 * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
448 final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
449 lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
450 pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
451 tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
452 tree-scalar-evolution.c, tree-ssa-dom.c,
453 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
454 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
455 tree-vectorizer.c, vec.h: Fix comment formatting.
457 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
459 * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
460 libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
462 2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
464 * config/ptx4.h, config/mcore/mcore-pe.h,
465 config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
467 2004-10-22 Peter Barada <peter@the-baradas.com>
469 * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
470 * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
471 renaming of non-live registers in interrupt functions.
472 * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
474 2004-10-22 Zdenek Dvorak <dvorakz@suse.cz>
476 * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
477 Use integer for loop counter.
478 (num_ending_zeros): New function.
479 (number_of_iterations_cond): Use num_ending_zeros.
481 2004-10-21 Aldy Hernandez <aldyh@redhat.com>
483 * config.gcc: Add support for --enable-e500_double.
485 * config/rs6000/e500-double.h: New file.
487 * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
490 * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
493 * config/rs6000/linuxspe.h: Same.
495 * doc/invoke.texi (Option Summary): Document new options for
497 (RS/6000 and PowerPC Options): Same.
499 * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
501 (rs6000_override_options): Use it. Use
502 SUB3TARGET_OVERRIDE_OPTIONS.
503 Add 8548 to processor_target_table.
504 (rs6000_legitimate_address): Handle e500 doubles.
505 (rs6000_legitimize_address): Same.
506 (rs6000_legitimize_reload_address): Same.
507 (rs6000_hard_regno_nregs): Same.
508 (spe_func_has_64bit_regs_p): Same.
509 (emit_frame_save): Same.
510 (gen_frame_mem_offset): Same.
511 (rs6000_dwarf_register_span): Same.
512 (rs6000_generate_compare): Same.
513 (easy_fp_constant): Same.
514 (legitimate_offset_address_p): Same.
516 * config/rs6000/spe.md: (cmdfeq_gpr): New.
525 2004-10-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
527 * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
529 2004-10-21 Zack Weinberg <zack@codesourcery.com>
531 * dbxout.c: Remove unnecessary #undefs.
532 (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
533 (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
534 definition into use sites.
535 (cwd): Make local to dbxout_init.
536 (dbxout_init): Restructure cwd-using logic for clarity. Use
538 * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
539 STABS_GCC_MARKER folded in here.
540 * system.h: Poison now-unused macros.
541 * doc/tm.texi: Remove documentation of now-unused macros.
543 2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
546 * c-opts.c (push_command_line_include): Use the current file
547 name instead of the main one.
549 2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
552 * tree.c (staticp): A CONST_DECL has static storage if either
553 TREE_STATIC or DECL_EXTERNAL is set.
554 * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
557 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
559 * expr.c (store_expr): Remove dont_store_target.
561 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
563 * tree-cfg.c (thread_jumps): Speed up by using a worklist.
565 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
567 * tree-cfg.c (thread_jumps): Move a part of it to ...
568 (thread_jumps_from_bb): ... here.
570 2004-10-21 David Edelsohn <edelsohn@gnu.org>
572 * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
573 * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
575 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
577 * expr.c (store_expr): Clean up by renaming want_value to
580 2004-10-21 Kaz Kojima <kkojima@gcc.gnu.org>
582 * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
585 2004-10-21 Aldy Hernandez <aldyh@redhat.com>
588 * expmed.c (store_bit_field): Pass original 'value' before
591 2004-10-21 Nicolas Pitre <nico@cam.org>
593 * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
594 * config/arm/ieee754-df.S: Ditto.
596 2004-10-20 Zack Weinberg <zack@codesourcery.com>
598 * dbxout.c (asmfile): Delete. All uses changed to asm_out_file.
599 (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
601 (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
602 When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
603 an internal label and an N_SLINE .stabn whose value is the
604 difference between that label and the function entry label.
605 (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
606 but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
607 label and an N_SO stab with an empty string referring to it.
608 (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
609 of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
610 (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
611 (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
612 macro is never defined.
613 * sdbout.c (sdbout_source_line_counter): Delete.
614 (PUT_SDB_SRC_FILE): Delete. Uses replaced with sole definition.
615 (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
617 * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
619 * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
620 * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
621 definitions (identical to default).
622 * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
623 * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
624 Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
625 DBX_OUTPUT_MAIN_SOURCE_FILE_END.
626 * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
627 * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
628 Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
629 * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
630 * config/alpha/alpha.c: Move declaration of num_source_filenames up.
631 (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
632 (sym_lineno): Delete.
633 (alpha_output_filename): Do not emit N_SOL stabs here. Remove
635 (alpha_output_lineno): Delete.
636 * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
637 * config/mips/mips.c (mips_output_filename): Don't use
638 ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
639 (mips_output_lineno): Delete.
640 (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
641 * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
642 SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
643 * config/mips/mips.h: Likewise. Don't define ASM_OUTPUT_FILENAME.
644 * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
645 * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
646 * config/mmix/mmix.h: Likewise.
647 * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
648 * config/mmix/mmix-protos.h: Don't prototype it.
649 * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
650 no need to #undef ASM_OUTPUT_SOURCE_LINE.
651 * config/arm/aout.h: Remove RISCiX-specific definition of
652 DBX_OUTPUT_MAIN_SOURCE_FILENAME.
653 * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
654 ASM_OUTPUT_SOURCE_LINE.
655 * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
656 DBX_OUTPUT_SOURCE_LINE. Don't use current_function_func_begin_label.
657 * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
659 * doc/tm.texi: Update.
661 2004-10-20 Richard Henderson <rth@redhat.com>
663 * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
665 2004-10-20 Kelley Cook <kcook@gcc.gnu.org>
667 * configure.ac: Revert my previous patch.
668 * configure: Regenerate.
670 2004-10-20 Ben Elliston <bje@au.ibm.com>
672 * config/rs6000/rs6000.c
673 (rs6000_va_start): Use build_va_arg_indirect_ref.
674 (rs6000_gimplify_va_arg): Likewise.
676 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
679 * configure.ac: Declare AM_LANGINFO_CODESET.
680 * aclocal.m4: Define AM_LANGINFO_CODESET.
681 * configure, config.in: Rebuilt.
683 2004-10-20 Kazu Hirata <kazu@cs.umass.edu>
685 * expr.c (store_expr): Remove code that is run when
686 want_value & 1 is nonzero.
688 2004-10-20 Mark Mitchell <mark@codesourcery.com>
690 * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
691 from function pointer to void *.
693 2004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
696 * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
697 the frame pointer adjustment when exception handling is enabled.
699 2004-10-20 Kazu Hirata <kazu@cs.umass.edu>
701 * stor-layout.c: Fix a comment typo.
703 2004-10-20 Kazu Hirata <kazu@cs.umass.edu>
705 * expr.c (store_field): Remove two arguments value_mode and
707 (expand_assignment, store_constructor_field,
708 expand_expr_real_1): Adjust calls to store_field.
710 2004-10-18 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
712 * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
715 * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
716 REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
717 base and index register for loads.
719 * config/arc/t-arc: Fix multilib handling.
721 2004-10-20 Hans-Peter Nilsson <hp@bitrange.com>
723 * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
724 don't inspect BLOCK_FOR_INSN for barriers.
725 * emit-rtl.c (emit_barrier_before): Revert last change.
726 (emit_barrier_after, emit_barrier): Ditto.
728 * doc/extend.texi (Extended Asm): Warn and provide example
729 solution for using a call-clobbered asm register.
730 (Local Reg Vars): Similar. Cross-reference example.
732 2004-10-19 Andrew Pinski <pinskia@physics.uc.edu>
734 * tree-cfg.c (group_case_labels): Look at the second to last
735 case statement for combing with the default case.
737 2004-10-19 Richard Hendeson <rth@redhat.com>
740 * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
742 2004-10-19 Richard Hendeson <rth@redhat.com>
744 * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
745 succeeds, only expand the result.
747 2004-10-19 Richard Hendeson <rth@redhat.com>
750 * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
753 2004-10-19 Kazu Hirata <kazu@cs.umass.edu>
755 * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
758 2004-10-19 Kazu Hirata <kazu@cs.umass.edu>
760 * expr.c (expand_assignment): Remove the last argument.
761 Change the return type to void.
762 * expr.h: Update the prototype of expand_assignment.
763 * function.c (assign_parm_setup_reg): Update a call to
765 * stmt.c (expand_asm_expr): Likewise.
767 2004-10-19 Kazu Hirata <kazu@cs.umass.edu>
769 * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
770 unnecessary assignments to temp. Return const0_rtx.
772 2004-10-19 Kaz Kojima <kkojima@gcc.gnu.org>
774 * config/sh/sh.c (sh5_schedule_saves): Fix typo.
776 2004-10-18 Kelley Cook <kcook@gcc.gnu.org>
778 * configure.ac (powerpc-*-darwin*): Require assembler to support
780 * configure: Regenerate.
782 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
784 * reload1.c (ior_hard_reg_set): Remove.
785 (finish_spills): Use IOR_HARD_REG_SET instead of
788 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
790 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
791 the currently visited word to right.
793 2004-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
796 * expmed.c (expand_smod_pow2): Handle modes whose size
797 is greater than that of HOST_WIDE_INT.
799 2004-10-18 Ziemowit Laski <zlaski@apple.com>
801 * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
803 2004-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
804 Roger Sayle <roger@eyesopen.com>
807 * dojump.c (discard_pending_stack_adjust): New function.
808 (clear_pending_stack_adjust): Call it.
809 * expr.h (discard_pending_stack_adjust): Declare it.
810 * explow.c (emit_stack_save): Emit pending stack adjustments
811 before saving the stack pointer.
812 (emit_stack_restore): Discard pending stack adjustments before
813 restoring the stack pointer.
815 2004-10-18 Richard Henderson <rth@redhat.com>
817 * c-common.c (handle_mode_attribute): Allow scalar->vector
820 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
822 * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
823 value to expand_assignment.
825 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
827 * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
829 (thread_jumps): Iterate until no new forwarder block arises.
831 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
833 * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
834 (thread_jumps): Use forwardable as cache of
835 tree_forwarder_block_p throughout the function.
837 2004-10-18 Andreas Krebbel <krebbel1@de.ibm.com>
839 * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
841 2004-10-18 Andrew Pinski <pinskia@physics.uc.edu>
845 * tree-cfg.c (remove_bb): If we have a label expression in the
846 basic block and the label we have taken the address, move the
847 label expression to the basic block which is previous in the
849 (tree_verify_flow_info): Fix printing out the label name of the
850 problematic label expression.
852 2004-10-18 Pat Haugen <pthaugen@us.ibm.com>
854 PR rtl-optimization/18002
855 * simplify-rtx.c (mode_signbit_p): Externalize function...
856 * rtl.h (mode_signbit_p): ... to here.
857 * combine.c (simplify_shift_const): Recognize PLUS signbit as
858 canonical form of XOR signbit and move to outer op.
860 2004-10-18 Diego Novillo <dnovillo@redhat.com>
862 * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
864 * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
865 Don't call fold_stmt more than once, use bsi_replace.
867 2004-10-18 Diego Novillo <dnovillo@redhat.com>
869 PR tree-optimization/17656
870 * tree-ssa.c (replace_immediate_uses): When replacing a
871 constant, if the call to fold_stmt produced a different
872 statement, get an appropriate statement pointer by scanning
875 2004-10-18 Richard Henderson <rth@redhat.com>
877 * pointer-set.c (hash1): Don't use libm functions in fallback case.
879 2004-10-18 H.J. Lu <hongjiu.lu@intel.com>
882 * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
883 (stage1-start): Remove and copy libunwind.a and
884 libunwind*$(SHLIB_EXT) instead of libunwind*.
885 (stage2-start): Likewise.
886 (stage3-start): Likewise.
887 (stage4-start): Likewise.
888 (stageprofile-start): Likewise.
889 (stagefeedback-start): Likewise.
891 * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
892 the shared library to be created and don't remove the existing
894 * config/arm/t-netbsd (SHLIB_LINK): Likewise.
895 * config/i386/t-nwld (SHLIB_LINK): Likewise.
896 * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
897 * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
898 * config/sh/t-linux (SHLIB_LINK): Likewise.
899 * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
900 * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
901 * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
902 * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
904 * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
907 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
909 * basic-block.h (reg_set_iterator): New.
910 (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
911 (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
912 (EXECUTE_IF_AND_IN_REG_SET): Likewise.
913 * caller-save.c (save_call_clobbered_regs): Adjust to the new
915 * cfgcleanup.c (thread_jump): Likewise.
916 * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
917 * conflict.c (conflict_graph_compute): Likewise.
918 * flow.c (verify_local_live_at_start, update_life_info,
919 initialize_uninitialized_subregs, propagate_one_insn,
920 init_propagate_block_info, free_propagate_block_info,
921 propagate_block, dump_regset): Likewise.
922 * global.c (global_conflicts): Likewise.
923 * graph.c (start_bb): Likewise.
924 * local-alloc.c (update_equiv_regs): Likewise.
925 * loop.c (load_mems): Likewise.
926 * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
927 find_reg, finish_spills): Likewise.
928 * resource.c (mark_target_live_regs): Likewise.
929 * sched-deps.c (sched_analyze_insn): Likewise.
930 * sched-rgn.c (sched-rgn.c): Likewise.
931 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
933 2004-10-18 Jakub Jelinek <jakub@redhat.com>
935 * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
936 operand 1 instead of 2
938 2004-10-18 Kazu Hirata <kazu@cs.umass.edu>
940 * loop-unroll.c: Fix comment typos.
942 2004-10-18 Revital Eres <eres@il.ibm.com>
944 * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
945 * loop-unroll.c: Include varray.h.
946 (struct var_to_expand, struct opt_info): Rename split_ivs_info to
947 opt_info and expand it to support variable expansion.
948 (analyze_insns_in_loop): Rename analyze_ivs_to_split and
949 expand it to support variable expansion.
950 (pt_info_start_duplication): Rename si_info_start_duplication.
951 (apply_opt_in_copies): Rename split_ivs_in_copies and add support
952 to the variable expansion optimization.
953 (free_opt_info): Rename free_si_info.
954 (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
955 expand_var_during_unrolling, insert_var_expansion_initialization,
956 combine_var_copies_in_loop_exit, release_var_copies,
957 get_expansion): New functions.
958 (peel_loop_completely, unroll_loop_constant_iterations,
959 unroll_loop_runtime_iterations, peel_loop_simple,
960 unroll_loop_stupid): Change uses of struct si_info
962 and add uses of fvariable-expansion-in-unroller flag.
963 * params.def: Add parameter to restrict the number of expansions.
964 * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
965 the number of expansions.
966 * common.opt: (fvariable-expansion-in-unroller): New flag.
967 * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
969 2004-10-18 Danny Smith <dannysmith@users.sourceforge.net>
971 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
972 __GXX_MERGED_TYPEINFO_NAMES to 0.
974 2004-10-17 Hans-Peter Nilsson <hp@bitrange.com>
976 * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
977 handle barriers in a bb by checking that it points to a NULL bb.
978 * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
979 (emit_barrier_after, emit_barrier): Ditto.
981 2004-10-18 Joseph S. Myers <jsm@polyomino.org.uk>
983 * doc/extend.texi (Attribute Syntax): Clarify details of
984 attributes on parameters.
986 2004-10-17 Zdenek Dvorak <dvorakz@suse.cz>
988 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
991 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
994 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
996 * c-typeck.c (default_function_array_conversion): Always create
997 &a[0] for array types.
998 (build_unary_op): Do not fold &a[x] into a + x.
1000 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
1003 * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
1004 block if there is a goto with a locus.
1006 2004-10-17 Kazu Hirata <kazu@cs.umass.edu>
1008 * config/elfos.h, config/gofast.h, config/interix.h,
1009 config/netbsd.h, config/svr3.h, config/vxworks.h,
1010 config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
1011 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1012 config/alpha/netbsd.h, config/arm/arm-modes.def,
1013 config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
1014 config/cris/aout.h, config/frv/frv-modes.def,
1015 config/i386/beos-elf.h, config/i386/gas.h,
1016 config/i386/i386-coff.h, config/i386/i386-modes.def,
1017 config/i386/linux.h, config/i386/linux64.h,
1018 config/i386/mingw32.h, config/i386/netbsd-elf.h,
1019 config/i386/netbsd64.h, config/i386/sco5.h,
1020 config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
1021 config/ia64/ia64-modes.def, config/ia64/itanium1.md,
1022 config/ia64/itanium2.md, config/m68k/m68k-modes.def,
1023 config/mips/mips-modes.def, config/mips/sdb.h,
1024 config/mips/vr.h, config/mips/vxworks.h,
1025 config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1026 config/pa/pa32-linux.h, config/rs6000/40x.md,
1027 config/rs6000/7450.md, config/rs6000/8540.md,
1028 config/rs6000/linuxspe.h, config/rs6000/power4.md,
1029 config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
1030 config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
1031 config/s390/s390-modes.def, config/sh/elf.h,
1032 config/sh/sh-modes.def, config/sh/sh64.h,
1033 config/sparc/ultra1_2.md, config/sparc/ultra3.md,
1034 config/stormy16/stormy16.md, config/v850/v850-protos.h,
1035 config/vax/vax.md: Update copyright.
1037 2004-10-17 Kazu Hirata <kazu@cs.umass.edu>
1039 * expr.c (expand_expr_real_1): Remove an obsolete comment.
1041 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
1043 * c-typeck.c (default_function_array_conversion): Always create
1044 &a[0] for array types.
1045 (build_unary_op): Do not fold &a[x] into a + x.
1047 2004-10-17 Jakub Jelinek <jakub@redhat.com>
1049 * pointer-set.c (hash1): Use integer part of 2^64 / phi
1050 instead 2^32 / phi if long is 64-bit.
1052 2004-10-17 Joseph S. Myers <jsm@polyomino.org.uk>
1054 * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
1056 * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
1058 (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
1059 __ptrextent__, __ptrvalue and __ptrvalue__.
1060 (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
1063 2004-10-16 Dale Johannesen <dalej@apple.com>
1065 * c-common.c (c_common_get_alias_set): Use GGC for type_hash_table.
1067 2004-10-16 Zdenek Dvorak <dvorakz@suse.cz>
1069 PR tree-optimization/17766
1070 * basic-block.h (enum dom_state): DOM_CONS_OK removed.
1071 (dom_info_available_p): Declare.
1072 * cfghooks.c (split_block, make_forwarder_block): Use
1073 dom_info_available_p.
1074 * dominance.c (compute_dom_fast_query, calculate_dominance_info,
1075 free_dominance_info, verify_dominators): Ditto.
1076 (dom_info_available_p): New function.
1077 * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
1078 (thread_jumps): Use dom_info_available_p.
1079 * tree-complex.c (expand_complex_div_wide): Ditto.
1080 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1082 2004-10-16 Zdenek Dvorak <dvorakz@suse.cz>
1084 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
1085 (find_best_candidate): Take also important candidates into account.
1086 (find_optimal_iv_set): Initialize important_candidates bitmap.
1088 2004-10-16 Zdenek Dvorak <dvorakz@suse.cz>
1090 PR tree-optimization/17560
1091 * predict.c (tree_estimate_probability): Mark irreducible
1094 2004-10-16 Zdenek Dvorak <dvorakz@suse.cz>
1096 PR rtl-optimization/17723
1097 * cfgcleanup.c (merge_memattrs): Handle case when
1098 MEM_SIZE == NULL_RTX.
1100 2004-10-15 Andrew Pinski <pinskia@physics.uc.edu>
1102 * toplev.c (dump_file_name): Change type to be const.
1104 2004-10-15 Joseph S. Myers <jsm@polyomino.org.uk>
1106 * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
1107 non_lvalue to stop something being a null pointer constant.
1109 2004-10-15 Aldy Hernandez <aldyh@redhat.com>
1111 * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
1112 available for TARGET_FPRS.
1113 (FUNCTION_VALUE_REGNO_P): Same.
1115 2004-10-15 Geoffrey Keating <geoffk@apple.com>
1117 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1118 -maltivec in same style as other ISA options.
1120 2004-10-15 Jon Grimm <jgrimm2@us.ibm.com>
1122 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
1125 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
1127 * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
1128 collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
1129 gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
1130 genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
1131 gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
1132 gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
1133 lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
1134 predict.def, predict.h, protoize.c, reload.h, resource.h,
1135 rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
1136 tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
1137 unwind-sjlj.c, value-prof.h: Update copyright.
1139 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
1141 * pointer-set.c, tree-vectorizer.c: Fix comment typos.
1143 2004-10-15 Diego Novillo <dnovillo@redhat.com>
1145 * tree-optimize.c (execute_one_pass): Stop timer right after
1148 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1151 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1154 * tree-cfg.c (remove_usless_stmts_cond): Fold statement.
1155 (remove_useless_stmts_1): Fold trees we know how to fold.
1157 2004-10-14 David Edelsohn <edelsohn@gnu.org>
1159 * configure.ac: Add .machine power4 directive when testing for
1161 * configure: Regenerate.
1163 2004-10-14 Geoffrey Keating <geoffk@apple.com>
1165 * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
1167 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1169 * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
1172 2004-10-14 Daniel Jacobowitz <dan@codesourcery.com>
1174 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
1175 for 'f' if !TARGET_FPRS.
1177 2004-10-14 Richard Henderson <rth@redhat.com>
1180 * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
1182 2004-10-14 Richard Henderson <rth@redhat.com>
1185 * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
1187 * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
1188 instaed of current_function_decl non-null.
1190 2004-10-14 Matt Austern <austern@apple.com>
1192 * pointer-set.c: New file, special-purpose hash table.
1193 * pointer-set.h: New file.
1194 * tree.h (struct pointer_set_t): Declare as opaque type.
1195 (tree_walk): Last argument is pointer_set_t* now.
1196 * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
1198 (walk_tree): Convert from htab_t to pointer_set_t for keeping
1199 track of which nodes have already been visited.
1200 (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
1201 * cgraphunit.c (cgraph_create_edges): Likewise.
1202 (cgraph_characterize_statics_local): Likewise.
1203 * tree-dfa.c (collect_dfa_stats): Likewise.
1204 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
1206 * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
1207 * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
1208 of walk_subtrees is pointer_set_t* now.
1209 * Makefile.in (OBJS-common): add pointer-set.o
1210 (tree-inline.o): Depends on pointer-set.h
1211 (tree-dfa.o): Likewise
1212 (cgraphunit.o): Likewise
1214 2004-10-14 Geoffrey Keating <geoffk@apple.com>
1216 * config/rs6000/darwin.h (ASM_SPEC): Delete.
1217 (TARGET_ASM_FILE_START): Define.
1218 * config/darwin.h (ASM_SPEC): Define.
1219 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
1220 -mlong-double-128, it's the default. Update comment about reason
1221 for force_cpusubtype_ALL.
1222 * config/rs6000/darwin-vecsave.asm: Supply .machine.
1223 * config/rs6000/darwin-world.asm: Likewise.
1224 * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
1225 (symbolic_operand): Delete #if 0ed code.
1227 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1229 * stmt.c (add_case_node): Make sure that we have integer
1230 constant before calling tree_int_cst_compare.
1232 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu>
1236 * tree-cfg.c (remove_usless_stmts_cond): Fold statement.
1237 (remove_useless_stmts_1): Fold trees we know how to fold.
1239 2004-10-14 Joseph S. Myers <joseph@codesourcery.com>
1241 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
1242 config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
1245 2004-10-14 Ulrich Weigand <uweigand@de.ibm.com>
1247 * reload.c (find_reloads): When reloading a PLUS with constant
1248 operand, make sure the constant is pushed to the constant pool
1250 * config/s390/s390.c (s390_secondary_input_reload_class): Remove
1251 reload bug workaround.
1252 (s390_expand_plus_operand): Likewise.
1254 2004-10-14 David Edelsohn <edelsohn@gnu.org>
1256 * opts.c (common_handle_option): Do not enable
1257 flag_speculative_prefetching for -fprofile-generate/use.
1259 2004-10-14 Devang Patel <dpatel@apple.com>
1262 * tree-if-conv.c (process_phi_nodes): Process latch block.
1263 (combine_blocks): Process latch block and update loop structure.
1265 2004-10-14 Olga Golovanevsky <olga@il.ibm.com>
1267 * tree-vectorizer.c (vect_generate_tmps_on_preheader):
1268 (vect_update_ivs_after_vectorizer):
1269 (vect_transform_for_unknown_loop_bound):
1270 (tree_duplicate_loop_to_edge):
1271 (allocate_new_names):
1274 (rename_variables_in_bb):
1276 (rename_variables_in_loop):
1278 (update_phis_for_duplicate_loop):
1279 (update_phi_nodes_for_guard):
1280 (make_loop_iterate_ntimes):
1281 (tree_duplicate_loop_to_edge_cfg):
1283 (vect_analyze_loop_with_symbolic_num_of_iters):
1284 (verify_loop_for_duplication):
1285 (vect_gen_niters_for_prolog_loop):
1286 (vect_update_niters_after_peeling):
1287 (vect_update_inits_of_dr):
1288 (vect_update_inits_of_drs):
1289 (vect_build_loop_niters):
1290 (vect_do_peeling_for_alignment): New functions.
1291 (vect_transform_loop): Add unknown and known but indivisible loop
1292 bound support; add peeling for unalignment support.
1293 (vect_analyze_loop_form): Support symbolic number of iterations.
1294 (vect_transform_loop_bound): New input parameter.
1295 (vect_get_loop_niters): Change input parameter type.
1296 (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
1297 (vectorizable_store): Allow unaligned access.
1298 (vectorize_loops): Add rewrite_into_loop_closed_ssa.
1299 (vect_analyze_data_refs_alignment): Allowed one unaligned
1301 * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
1303 (LOOP_VINFO_INT_NITERS): New macro.
1304 (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
1305 (do_peeling_for_alignment):
1306 (unaligned_drs): New members of _loop_vec_info.
1307 (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
1309 2004-10-14 Ranjit Mathew <rmathew@hotmail.com>
1311 * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
1312 (struct tree_string): Remove "const" qualifier for "str".
1314 2004-10-14 Ira Rosen <irar@il.ibm.com>
1316 * tree-vectorizer.c (vect_analyze_data_refs): Call
1317 vect_get_base_and_bit_offset to get memory tag for array ref.
1318 (vect_create_addr_base_for_vector_ref): Remove redundant checks.
1320 2004-10-14 Richard Earnshaw <rearnsha@arm.com>
1322 * configure.ac: Use $LN_S for creating symlinks (not $LN).
1323 * configure: Regenerate.
1325 2004-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1327 * doc/install.texi (*-*-solaris2*): Update with info about kernel
1328 patches to solve spurious testsuite failures.
1330 2004-10-14 Dorit Naishlos <dorit@il.bim.com>
1332 * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
1333 Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
1334 (vect_analyze_operations): Make sure the vectorization factor > 1. Add
1335 gcc_assert under ENABLE_CHECKING.
1336 (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
1337 get_vectype_for_scalar_type).
1339 (vect_get_vec_def_for_operand): Remove redundant variables.
1340 (vect_transform_loop): Likewise.
1342 2004-10-14 Richard Sandiford <rsandifo@redhat.com>
1344 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
1345 global for -mcaller-super-interworking.
1346 (CALLER_INTERWORKING_SLOT_SIZE): New macro.
1347 * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
1348 CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
1349 not need a frame pointer.
1350 (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
1351 the soft frame pointer offset.
1352 (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
1353 * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
1354 _interwork_{r7,r11}_call_via_rN if some arguments are passed on
1355 the stack. Use frame_pointer_needed to choose between them.
1356 * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
1357 (interwork_with_frame): New macro.
1358 (interwork): Add _interwork_{r7,r11}_call_via_rN().
1360 2004-10-14 Ben Elliston <bje@au.ibm.com>
1363 * diagnostic.c (trim_filename): Fix logic bug in walking backwards
1364 up the filename looking for a previous directory separator.
1366 2004-10-14 Joseph S. Myers <jsm@polyomino.org.uk>
1368 * c-tree.h (enum c_typespec_kind, struct c_typespec,
1369 parser_xref_tag): New.
1370 (struct c_declspecs): Add tag_defined_p. Adjust definition of
1372 (declspecs_add_type): Adjust prototypes.
1373 * c-parse.in (%union): Add tstype.
1374 (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
1375 typespec_reserved_attr, typespec_nonreserved_nonattr,
1376 structsp_attr, structsp_nonattr): Change to tstype. Update
1378 * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
1379 (declspecs_add_type): Update to take struct c_typespec argument.
1380 Set tag_defined_p and typedef_p as appropriate.
1381 (xref_tag): Rename to parser_xref_tag and replace by wrapper.
1382 Update to return struct c_typespec.
1383 (shadow_tag_warned): Don't let empty declarations with qualifiers
1384 or storage class specifiers redeclare a tag if a previous
1385 declaration is visible.
1387 2004-10-13 Richard Henderson <rth@redhat.com>
1390 * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
1391 for DECL_INCOMING_RTL.
1393 2004-10-14 Hans-Peter Nilsson <hp@axis.com>
1396 * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
1397 trunc_int_for_mode for constants used in shortened mode.
1399 2004-10-13 Richard Henderson <rth@redhat.com>
1402 * c-common.c (handle_mode_attribute): Disallow mode changes that
1403 alter the CODE of the top-level type.
1405 * crtstuff.c (__FRAME_END__): Remove mode attribute. Find 32-bit
1406 integer from internal limits macros.
1407 * config/i386/mm3dnow.h (__v2sf): Fix base type.
1409 2004-10-13 Richard Henderson <rth@redhat.com>
1412 * function.c (instantiate_decl): Recurse for CONCAT.
1414 2004-10-13 David Edelsohn <edelsohn@gnu.org>
1416 * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
1419 (extzvdi_internal1): Add attribute "compare".
1420 (extzvdi_internal2): Same.
1422 2004-10-12 Tom Tromey <tromey@redhat.com>
1424 * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
1426 2004-10-13 Dale Johannesen <dalej@apple.com>
1428 * doc/extend.texi (Extended Asm): Rewrite asm volatile description.
1430 2004-10-13 Frank Ch. Eigler <fche@redhat.com>
1432 * toplev.c (compile_file): Call mudflap_finish_file from here ...
1433 * c-decl.c (c_write_global_declarations): ... instead of here ...
1434 * cp/decl.c (cp_finish_file): ... and here.
1435 * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
1437 2004-10-13 Andrew Pinski <pinskia@physics.uc.edu>
1439 * tree-ssa-dom.c (record_range): Free the element if we are not
1442 2004-10-13 Tom Tromey <tromey@redhat.com>
1445 * gcc.c (option_map): Added --extdirs and --encoding.
1447 2004-10-13 Eric Botcazou <ebotcazou@libertysurf.fr>
1450 * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
1451 sparc_can_output_mi_thunk.
1452 (sparc_output_mi_thunk): Simplify handling of delta offset. Add
1453 handling of vcall offset.
1454 (sparc_can_output_mi_thunk): New predicate.
1455 * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
1456 (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
1457 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
1459 * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
1461 * config/sparc/sparc.md (movdi): Remove redundant test.
1463 2004-10-13 Paolo Bonzini <bonzini@gnu.org>
1465 * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
1466 TDF_IPA from -fdump-tree-*-all.
1468 2004-10-13 Paul Brook <paul@codesourcery.com>
1470 * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
1471 * config/arm/arm.c (thumb_find_work_register): Update comments.
1472 (arm_load_pic_register): Add argument for scratch register.
1473 (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
1474 * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
1476 2004-10-13 Kazu Hirata <kazu@cs.umass.edu>
1478 * tree-data-ref.c: Fix comment typos.
1480 2004-10-13 Jakub Jelinek <jakub@redhat.com>
1481 Zdenek Dvorak <dvorakz@suse.cz>
1483 PR tree-optimization/17724
1484 * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
1486 2004-10-13 Dorit Naishlos <dorit@il.ibm.com>
1488 * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
1489 (altivec_builtin_mask_for_store): Likewise.
1490 (altivec_init_builtins): Use lang_hooks.builtin_function to
1491 create the decls for builtin_altivec_mask_for_load/store.
1493 2004-10-13 Nick Clifton <nickc@redhat.com>
1495 * config/c4x/c4x.c: Remove inclusion of loop.h.
1497 2004-10-12 Ben Elliston <bje@au.ibm.com>
1499 * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
1500 (ei_container): New; renamed.
1501 (ei_start, ei_last): New macros.
1502 (ei_start_1, ei_last_1): Renamed from ei_start.
1503 (ei_last_1, ei_end_p): Use ei_container() where applicable.
1504 (ei_one_before_end_p, ei_next, ei_edge): Likewise.
1505 * gcse.c (remove_reachable_equiv_notes): Use ei_container().
1507 2004-10-11 Sebastian Pop <pop@cri.ensmp.fr>
1509 * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
1510 * cfgloop.c (initialize_loops_parallel_p): New.
1511 (flow_loops_find): Initialize the parallel_p field to true for all
1513 * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
1514 (estimate_numbers_of_iterations_loop): Infers the loop bounds from
1515 the size of the data accessed in the loop.
1516 (struct nb_iter_bound): Moved...
1517 * cfgloop.h (struct nb_iter_bound): ... here.
1518 (estimated_nb_iterations, parallel_p): New fields in struct loop.
1519 (record_estimate): Declare extern here.
1520 * tree-chrec.c: Fix comments.
1521 (nb_vars_in_chrec): New function.
1522 * tree-chrec.h (nb_vars_in_chrec): Declared here.
1523 * tree-data-ref.c: Don't include lambda.h, that is already included
1525 (tree_fold_divides_p): Don't check for integer_onep.
1526 (tree_fold_bezout): Removed.
1527 (gcd): New static duplicated function.
1528 (int_divides_p, dump_subscript): New.
1529 (dump_data_dependence_relation): Use dump_subscript.
1530 (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
1531 estimate_niter_from_size_of_data): New.
1532 (analyze_array_indexes, analyze_array): Call
1533 estimate_niter_from_size_of_data during the detection of array
1534 references. Pass in a pointer to the statement that contains the
1536 (all_chrecs_equal_p): New.
1537 (compute_distance_vector): Renamed compute_subscript_distance.
1538 Deal with multivariate conflict functions.
1539 (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
1540 DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
1541 (non_affine_dependence_relation): New.
1542 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
1543 analyze_siv_subscript, analyze_miv_subscript,
1544 analyze_overlapping_iterations, subscript_dependence_tester):
1545 Initialize and return last_conflicts function.
1546 (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
1547 compute_overlap_steps_for_affine_1_2): New.
1548 (analyze_siv_subscript_affine_cst): Removed.
1549 (analyze_subscript_affine_affine): Disprove dependences based on the
1550 iteration domains. Solve the univariate dependence case as before,
1551 but use lambda_matrix_right_hermite instead of tree_fold_bezout.
1552 Implement the multivariate case of 2 versus 1 variables.
1553 (build_classic_dist_vector, build_classic_dir_vector): Implement some
1555 (find_data_references_in_loop): Compute and initialize
1556 loop->estimated_nb_iterations and loop->parallel_p.
1557 (analyze_all_data_dependences): Modify the debug dump order.
1558 * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
1559 subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
1560 (SUB_LAST_CONFLICT, subscript->last_conflict,
1561 data_dependence_relation->affine_p, data_dependence_relation->size_vect,
1562 DDR_AFFINE_P, DDR_SIZE_VECT): New.
1563 (find_data_references_in_loop, initialize_data_dependence_relation,
1564 dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
1566 2004-10-12 Kelley Cook <kcook@gcc.gnu.org>
1568 * configure: Regenerate.
1570 2004-10-12 Fariborz Jahanian <fjahanian@apple.com>
1573 * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
1574 (simplify_rhs_and_lookup_avail_expr): Disallow associativity
1575 and constant folding of floating point MULT_EXPR/PLUS_EXPR
1578 2004-10-12 Ulrich Weigand <uweigand@de.ibm.com>
1580 * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
1581 (s390_gimplify_va_arg): Likewise.
1583 2004-10-12 Daniel Jacobowitz <dan@debian.org>
1585 * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
1586 (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
1587 (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
1588 * regclass.c (record_address_regs): Remove ifdef. Use
1589 REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1590 * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
1592 (scan_rtx_address, replace_oldest_value_addr): Use
1593 REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1594 * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
1595 unnecessary definitions.
1596 (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
1597 and MODE_BASE_REG_REG_CLASS.
1598 * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
1599 (MODE_BASE_REG_REG_CLASS): Define.
1600 (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
1601 (REG_MODE_OK_FOR_REG_BASE_P): Define.
1602 * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
1603 REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
1605 2004-10-12 Daniel Berlin <dberlin@dberlin.org>
1607 * tree-ssa-alias.c (verify_name_tags): New function.
1608 (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
1609 (verify_alias_info): Call verify_name_tags.
1611 2004-10-12 Kazu Hirata <kazu@cs.umass.edu>
1613 PR rtl-optimization/17931
1614 * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
1617 2004-10-12 Richard Earnshaw <rearnsha@arm.com>
1619 * arm.c (arm_print_operand): Use output_operand_lossage where possible
1620 rather than aborting.
1622 2004-10-12 Paul Brook <paul@coudesourcery.com>
1624 * config.gcc: Add armv6{k,z,zk}
1625 * config/arm/arm-cores.def: Add arm1176 and mpcore.
1626 * config/arm/tune.md: Regenerate.
1627 * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
1629 (all_architectures): Add armv6k, armv6z, armv6zk.
1630 * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
1631 * doc/invoke.texi: Document new arch and cpu values.
1633 2004-10-12 Paul Brook <paul@coodesourcery.com>
1635 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
1638 2004-10-12 Paul Brook <paul@codesourcery.com>
1640 * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
1641 Handle negative constants.
1643 2004-10-12 Joseph S. Myers <jsm@polyomino.org.uk>
1646 * c-typeck.c (convert_arguments): Return error_mark_node if there
1647 are too few arguments.
1648 (build_function_call): Handle error_mark_node return from
1651 2004-10-06 Paolo Bonzini <bonzini@gnu.org>
1653 * configure.ac (symbolic_link): Replace with $LN_S.
1654 (Assembler/Linker): Hard link from gas and binutils trees.
1655 * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
1656 * configure: Regenerate.
1658 2004-10-12 Paul Brook <paul@codesourcery.com>
1660 * configure.ac: Don't look for host assembler when building a canadian
1662 * configure: Regenerate.
1664 2004-10-11 Roger Sayle <roger@eyesopen.com>
1667 * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
1668 (c_common_init_options): Remove #ifdef CL_F77 code. Scan command
1669 line options for "-lang-asm" and if found allow any of the C-family
1671 (c_common_handle_option): Remove last use of permit_fortran_options.
1673 2004-10-11 Ulrich Weigand <uweigand@de.ibm.com>
1675 * config/s390/s390.c (print_operand): Support 'S' format flag.
1676 * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
1677 ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
1678 ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
1679 ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
1680 ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
1681 ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
1682 ("*movstricthi"): Likewise.
1683 ("*load_multiple_di", "*load_multiple_si"): Likewise.
1684 ("*store_multiple_di", "*store_multiple_si"): Likewise.
1685 ("*sethiqisi", "*sethihisi"): Likewise.
1686 ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
1687 ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
1688 ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
1689 ("*xorqi3", "*xc", "*xc_zero"): Likewise.
1690 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
1692 ("*tmhi_full"): Fix incorrect op_type attribute.
1694 ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
1695 ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
1696 ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
1697 ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
1699 2004-10-11 Andrew Pinski <pinskia@physics.uc.edu
1702 * function.c (temp_slots_at_level): Fix typo which creates too
1703 many temp stack slots levels.
1705 2004-10-11 Ulrich Weigand <uweigand@de.ibm.com>
1707 * config/s390/s390.c (s390_trampoline_template): Generate shorter
1709 (s390_trampoline_instantiate): Adapt.
1710 * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
1712 2004-10-11 Roger Sayle <roger@eyesopen.com>
1715 * stmt.c (add_case_node): Add additional type argument. Declare
1716 as static to match prototype. Convert the upper and lower bounds
1717 to the specified index type. Optimize away case ranges/values
1718 that are outside the index type's bounds. Truncate case ranges
1719 that span the index type's bounds.
1720 (expand_case): Avoid unnessary computation and memory allocation
1721 when index type is error_mark_node. Pass index_type as required
1722 by change to add_case_node API. No need to convert case range
1723 bounds to index_type, this is now done by add_case_node.
1725 2004-10-11 Ulrich Weigand <uweigand@de.ibm.com>
1727 * config/s390/s390-protos.h (s390_offset_p): Add prototype.
1728 * config/s390/s390.c (s390_offset_p): New function.
1729 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
1730 "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
1731 transform Q->Q alternatives to *clc pattern.
1733 ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
1734 "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
1735 to transform Q->Q alternatives to *mvc pattern.
1736 ("*mvc"): Move. Add peephole to merge adjacent MVCs.
1737 ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
1738 "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
1739 transform Q->Q alternatives to *nc pattern.
1740 ("*nc"): New insn. New peephole to merge adjacent NCs.
1741 ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
1742 "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
1743 transform Q->Q alternatives to *oc pattern.
1744 ("*oc"): New insn. New peephole to merge adjacent OCs.
1745 ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
1746 transform Q->Q alternatives to *xc pattern.
1747 ("*xc"): New insn. New peephole to merge adjacent XCs.
1748 ("*xc_zero"): Move. Add peephole to merge adjacent XCs.
1750 2004-10-11 Andrew Pinski <pinskia@physics.uc.edu>
1752 * gimplify.c (gimple_push_condition): Make sure that we don't
1753 have any saved condition cleanup if we were at the top level.
1755 2004-10-11 Richard Sandiford <rsandifo@redhat.com>
1757 * config/frv/frv.md (*adddi3_internal): Change name to...
1758 (adddi3): ...replacing the exisiting define_expand. Combine
1759 alternatives. Fix the range of the constant constraints ('J' instead
1760 of 'NOP'). Remove bogus operands[2] check. Use simplify_gen_subreg
1761 to extract the lower and upper halves of the DImode operands.
1762 Always use addi3_lower and adddi3_upper, not the subdi3 forms.
1763 (adddi3_lower): Fix the range of the constant constraints and
1764 remove the bogus operands[2] check.
1765 (adddi3_upper): Use gpr_or_int10_operand as the predicate for
1766 operand 2. Use addxi to handle constant operands.
1767 (subdi3_lower, subdi3_upper): Don't handle constant operands.
1769 2004-10-11 Nathan Sidwell <nathan@codesourcery.com>
1771 * gengtype-lex.l: Add commented } & ) characters to unconfuse
1772 editor's paren matching. Allow #define inside a struct.
1774 2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
1777 part of PR c++/17657
1778 * fold-const.c (fold_build_cleanup_point_expr): New function.
1779 * tree.h (fold_build_cleanup_point_expr): Prototype.
1781 2004-10-10 Eric Christopher <echristo@redhat.com>
1783 * dwarf2out.c: Move attribute to subprogram declaration
1784 instead of subroutine type.
1786 2004-10-10 Kazu Hirata <kazu@cs.umass.edu>
1788 * basic-block.h: Remove the prototypes for can_hoist_insn_p,
1789 hoist_insn_after, and hoist_insn_to_edge.
1790 * rtl.h: Remove the prototypes for reg_referenced_between_p,
1791 no_jumps_between_p, and insn_dependent_p.
1792 * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
1793 insn_dependent_p, insn_dependent_p_1, hoist_test_store,
1794 can_hoist_insn_p, hoist_update_store, hoist_insn_after,
1795 hoist_insn_to_edge): Remove.
1797 2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk>
1800 * c-decl.c (grokparms): Don't warn for parameters of incomplete
1801 type in declarations that are not definitions except for the case
1802 of parameters of void type.
1804 2004-10-10 Kazu Hirata <kazu@cs.umass.edu>
1806 * tree-cfg.c: Fix comment typos.
1808 2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk>
1811 * builtins.c (expand_builtin_va_start): Check for too few
1812 arguments to va_start.
1814 2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk>
1817 * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
1818 fields a pedwarn. Pedwarn here for unnamed structs/unions if
1820 * c-parse.in (component_decl): Don't pedwarn here for unnamed
1823 2004-10-09 Zdenek Dvorak <dvorakz@suse.cz>
1825 PR tree-optimization/17906
1826 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
1827 copy non-gimple reg arguments.
1829 2004-10-09 Roger Sayle <roger@eyesopen.com>
1831 PR rtl-optimization/17853
1832 * simplify-rtx.c (simplify_relational_operation): Correct comment.
1833 Reorganize handling of comparison operations with floating point
1834 results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
1835 Likewise, introduce support for comparison operations with vector
1836 result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
1838 * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
1839 * doc/tm.texi: Likewise.
1841 2004-10-09 Steven Bosscher <stevenb@suse.de>
1843 * regs.h (struct reg_info_def): Remove the last_node_uid and
1844 changes_mode fields.
1845 (REGNO_LAST_NOTE_UID): Don't define.
1846 * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
1847 * regmove.c (copy_src_to_dest): Likewise.
1849 2004-10-09 Roger Sayle <roger@eyesopen.com>
1852 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
1853 relational comparison operator op needs to be swapped/reversed when
1854 C1 is negative. i.e. X/-10 < 1 becomes X >= -9, not X < -9.
1856 2004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
1859 * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
1860 instead of bsi_start.
1861 (value_replacement): Likewise.
1862 (abs_replacement): Likewise
1864 2004-10-09 Steven Bosscher <stevenb@suse.de>
1866 * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
1867 (expand_gimple_cond_expr, expand_gimple_tailcall,
1868 expand_gimple_basic_block): Use it to dump RTL for each stmt.
1869 (tree_expand_cfg): Announce full RTL function dump.
1870 * tree-optimize.c (execute_one_pass): Use normal RTL printing,
1871 not the graph version.
1872 * tree-pretty-print.c (dump_generic_node): Allow empty statements
1873 in the arms of a COND_EXPR for lowered nodes.
1875 2004-10-08 Joseph S. Myers <joseph@codesourcery.com>
1877 * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
1878 atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
1879 strtoufix16, strtoufix32, strtoufix64): Declare.
1881 2004-10-08 Joseph S. Myers <jsm@polyomino.org.uk>
1883 * c-lex.c (interpret_float): Give a pedwarn rather than a warning
1884 for an out-of-range floating point constant.
1885 * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
1886 warning if the target format does not support infinities.
1888 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
1890 * emit-rtl.c (last_label_num, base_label_num): Remove.
1891 (max_label_num): Always return label_num.
1892 (set_new_last_label_num, restore_emit_status): Remove.
1893 (init_emit): Don't initialize last_label_num.
1894 * function.c (pop_function_context_from): Don't call
1895 restore_emit_status.
1896 * function.h: Remove the prototype for restore_emit_status.
1897 * rtl.h: Remove the prototype for set_new_last_label_num.
1899 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
1901 * stmt.c (expand_decl_init): Remove.
1902 * tree.h: Remove the corresponding prototype.
1904 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
1906 * integrate.c (try_constants, subst_constants, mark_stores):
1908 * integrate.h: Remove the prototype for try_constants.
1910 2004-10-08 Joseph S. Myers <jsm@polyomino.org.uk>
1912 * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
1913 (convert_for_assignment): Handle ic_argpass_nonproto. Add
1914 comments about its relevance to errors.
1915 (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
1917 2004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
1920 * c-ppoutput.c (cb_ident): Don't quote string as it is already
1923 2004-10-08 Diego Novillo <dnovillo@redhat.com>
1925 * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
1926 reference_node_pool.
1928 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
1930 * tree-cfg.c: Fix a comment typo.
1932 2004-10-08 Andreas Krebbel <krebbel1@de.ibm.com>
1934 * config/s390/s390.c (s390_register_info): Don't save fprs for
1936 (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
1938 2004-10-08 Ulrich Weigand <uweigand@de.ibm.com>
1940 * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
1941 (TARGET_DEFAULT): Use symbolic values.
1942 * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
1943 (TARGET_DEFAULT): Use symbolic values.
1944 * config/s390/s390.c (s390_backchain_string): Initialize to
1945 TARGET_DEFAULT_BACKCHAIN.
1947 2004-10-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1949 * builtins.c (expand_builtin_mempcpy): Move tree handling code to
1950 fold_builtin_mempcpy. Accept a type parameter. Delete duplicate
1952 (expand_builtin_strcat): Accept a type parameter.
1953 (fold_builtin_mempcpy): Accept a type and endp parameter.
1955 * builtins.c (expand_builtin_strncpy): Delete duplicate code.
1956 Accept an `exp' instead of an `arglist'.
1958 2004-10-08 Nathan Sidwell <nathan@codesourcery.com>
1960 * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
1961 reverting my 2004-09-07 patch to use build_int_cst.
1963 2004-10-08 Eric Botcazou <ebotcazou@libertysurf.fr>
1966 * config/sparc/sparc.c (input_operand): Remove redundant code
1967 for handling LO_SUM.
1968 (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
1969 <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
1970 Otherwise only accept it for TFmode if quad move insns are available.
1972 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
1974 * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
1975 common cases will be caught earlier than others.
1977 2004-10-08 Michael Matz <matz@suse.de>
1979 * loop-doloop.c (doloop_optimize): Extend count.
1981 2004-10-08 Kaz Kojima <kkojima@gcc.gnu.org>
1983 * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
1984 (prefetch): Convert to expander.
1986 2004-10-08 Kaz Kojima <kkojima@gcc.gnu.org>
1988 * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
1989 first argument of CALL.
1990 (tls_local_dynamic): Likewise.
1992 2004-10-08 Joseph S. Myers <jsm@polyomino.org.uk>
1994 * c-typeck.c (enum impl_conv): New.
1995 (convert_for_assignment): Use it. Take tree for function called
1996 instead of its name. Handle ObjC selectors for diagnostics at
1997 start of function. Select diagnostic text within the function
1998 using full sentences for diagnsotics. Use %qE to name functions
2000 (convert_arguments, build_modify_expr,
2001 c_convert_parm_for_inlining, digest_init, c_finish_return): Update
2002 callers to convert_for_assignment.
2003 (warn_for_assignment): Remove.
2005 2004-10-08 Nick Clifton <nickc@redhat.com>
2007 * config/sh/symbian.c (symbian_possibly_export_base_class):
2008 Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
2009 TYPE_CONTAINS_VPTR_P.
2011 2004-10-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2013 * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
2014 fixed registers form all_used_regs. Update call_really_used_regs.
2015 (CALL_REALLY_USED_REGISTERS): Define.
2016 * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
2017 with call_really_used_regs.
2019 2004-10-08 Alan Modra <amodra@bigpond.net.au>
2021 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
2022 for -profile as well as -p and -pg.
2024 2004-10-07 Andrew Pinski <pinskia@physics.uc.edu>
2026 * libgcc2.c (__moddi3): Cast &w to UDWtype*.
2028 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
2030 * tree-cfg.c (tree_block_forwards_to): Remove.
2031 * tree-flow.h: Remove the corresponding prototype.
2033 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
2035 * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
2036 for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
2038 2004-10-07 Geoffrey Keating <geoffk@apple.com>
2041 * config/rs6000/rs6000.c (rs6000_generate_compare): When
2042 flag_trapping_math is in effect, don't generate subtract
2045 2004-10-07 Ulrich Weigand <uweigand@de.ibm.com>
2047 * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
2048 * config/s390/s390.c (s390_narrow_logical_operator): New function.
2049 (s390_extra_constraint_str): Add 'A' constraints.
2050 (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
2051 * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
2052 (CONSTRAINT_LEN): Likewise.
2053 * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
2054 ("*andsi3_zarch", "*andsi3_esa"): Likewise.
2055 ("*andhi3_zarch", "*andhi3_esa"): Likewise.
2056 ("*iordi3"): Add OI alternative and splitter.
2057 ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2058 ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
2059 ("*xordi3"): Add XI alternative and splitter.
2060 ("*xorsi3", "*xorhi3"): Likewise.
2062 2004-10-07 Richard Sandiford <rsandifo@redhat.com>
2064 * config/mips/mips.c (mips_function_rodata_section): New function.
2065 (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
2067 2004-10-07 Devang Patel <dpatel@apple.com>
2069 * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
2070 UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
2071 UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
2072 UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
2073 UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
2074 UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
2075 UNSPEC_VCONDU_V16QI): New constant defines.
2076 (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
2077 vconduv16qi): New patterns.
2078 * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
2079 * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
2080 (get_vec_cmp_insn): Same.
2081 (get_vsel_insn): Same.
2082 (rs6000_emit_vector_compare): Same.
2083 (rs6000_emit_vector_select): Same.
2084 (INSN_NOT_AVAILABLE): New.
2086 2004-10-07 Zdenek Dvorak <dvorakz@suse.cz>
2088 PR tree-optimization/17749
2089 * tree-tailcall.c (find_tail_calls): Check that parameter is
2092 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
2094 * config/ia64/ia64.c: Fix a comment typo.
2096 2004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2098 * doc/install.texi (*-*-solaris2*): Fix marker for URL.
2100 2004-10-07 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2103 * tree-inline.c (expand_call_inline): Do not warn for functions
2104 marked with attribute noinline.
2106 2004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2109 * config/sparc/sparc.c (sparc_output_mi_thunk): Set
2110 current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
2112 * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
2113 of 0 as 4th argument to pass_by_reference.
2114 Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
2116 2004-10-06 Eric Christopher <echristo@redhat.com>
2118 * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
2121 2004-10-07 Richard Sandiford <rsandifo@redhat.com>
2124 * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
2126 2004-10-07 Zdenek Dvorak <dvorakz@suse.cz>
2128 PR rtl-optimization/17791
2129 * loop-doloop.c (doloop_modify): Take number of iterations as
2131 (doloop_optimize): Extend or shorten the number of iterations
2132 when changing mode of counter register.
2133 * loop-iv.c (lowpart_subreg): Export.
2134 * rtl.h (lowpart_subreg): Declare.
2136 2004-10-07 Zdenek Dvorak <dvorakz@suse.cz>
2138 PR tree-optimization/17806
2139 * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
2140 * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
2141 flags moved to split_edge.
2143 2004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr>
2146 * expmed.c (expand_sdiv_pow2): Force a stack adjustment
2147 before tentatively building the conditional move sequence.
2149 2004-10-07 Richard Sandiford <rsandifo@redhat.com>
2152 * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
2154 * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
2155 function_arg_padding.
2157 2004-10-07 Richard Sandiford <rsandifo@redhat.com>
2160 * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
2162 2004-10-07 Kazu Hirata <kazu@cs.umass.edu>
2164 * hooks.c (hook_int_void_1, hook_void_int): Remove.
2165 * hooks.h: Remove the corresponding prototypes.
2167 2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
2170 * tree-nested.c (walk_stmt_info): Add changed field.
2171 (convert_nonlocal_reference): Set changed to when we
2172 change a decl to unnested decl.
2173 <case ADDR_EXPR>: Instead of checking if the immediate part
2174 of the ADDR_EXPR changed, check the field changed.
2175 Use recompute_tree_invarant_for_addr_expr instead of unsetting
2177 (convert_local_reference): Set changed to when we
2178 change a decl to unnested decl.
2179 <case ADDR_EXPR>: Instead of checking if the immediate part
2180 of the ADDR_EXPR changed, check the field changed.
2181 Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
2183 2004-10-06 Kazu Hirata <kazu@cs.umass.edu>
2185 * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2186 * dwarf2out.c (dwarf2out_init): Remove references to
2187 DWARF2_GENERATE_TEXT_SECTION_LABEL.
2188 * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
2189 * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2191 2004-10-06 Joseph S. Myers <jsm@polyomino.org.uk>
2193 * c-typeck.c (convert_arguments): Take expression for called
2194 function rather than its name. Handle ObjC selectors directly
2195 rather than relying on warn_for_assignment to do so. Call warning
2196 directly rather than warn_for_assignment. Use %qE in diagnostics.
2197 Say "argument" rather than "arg" in diagnostics.
2198 (build_function_call): Update call to convert_arguments.
2200 2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
2203 * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
2204 ENUMs specially instead of just saying we do.
2206 2004-10-06 Eric Christopher <echristo@redhat.com>
2208 * dwarf2.h: Sync with include/elf/dwarf2.h
2210 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
2212 * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
2215 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
2217 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
2218 to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
2220 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
2222 * lambda-code.c (compute_nest_using_fourier_motzkin): New
2224 (lambda_compute_auxillary_space): Split from here.
2226 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
2228 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
2229 * tree-flow.h: Add prototype.
2230 * lambda-code.c (invariant_in_loop_and_outer_loops): Use
2231 expr_invariant_in_loop.
2233 2004-10-06 Kazu Hirata <kazu@cs.umass.edu>
2235 * tree-cfg.c (thread_jumps): Remove a duplicate check for
2238 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
2240 * config/s390/s390-protos.h (s_imm_operand): Remove.
2241 (s390_pool_operand): Add prototype.
2242 * config/s390/s390.c (general_s_operand): Remove.
2243 (s_imm_operand): Remove.
2244 (s_operand): Merge contents of general_s_operand.
2245 (s390_pool_operand): New function.
2246 * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
2247 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
2248 ("*cmpdi_ccu"): Merge Q->Q alternative.
2249 ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
2250 ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
2252 ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
2253 ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
2254 ("*movstricthi"): Use memory_operand instead of s_imm_operand.
2256 2004-10-06 Steve Ellcey <sje@cup.hp.com>
2258 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
2259 call ia64_function_arg_boundary.
2260 * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
2261 * config/ia64/ia64.c (ia64_function_arg_boundary): New.
2262 (ia64_function_arg_advance): Do not put 128 bit floats into
2265 2004-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2267 * builtins.c (expand_builtin_strcpy): Delete duplicate code.
2268 Accept an expression instead of an arglist.
2269 (expand_builtin_stpcpy): Accept an expression instead of an
2272 2004-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2275 * doc/install.texi (*-*-solaris2*): Mention potential problem
2276 with Sun assembler + GNU linker and C++ programs.
2277 Document status of binutils 2.15 release.
2279 2004-10-06 Jan Hubicka <jh@suse.cz>
2281 * cse.c (cse_main): Kill push/pop context.
2283 2004-10-05 Zack Weinberg <zack@codesourcery.com>
2285 * pretty-print.c: Include tree.h.
2286 (pp_base_prepare_to_format): New function, logic from
2287 text_specifies_location.
2288 (pp_base_format_text): Use gcc_assert.
2289 * pretty-print.h (pp_prepare_to_format): New macro.
2290 (pp_base_prepare_to_format): Prototype.
2291 * diagnostic.c (text_specifies_location): Delete.
2292 (bug_report_request): Delete.
2293 (diagnostic_set_info): Don't call text_specifies_location.
2294 (diagnostic_action_after_output): Put text from
2295 bug_report_request inline here. Use gcc_unreachable.
2296 (diagnostic_report_current_function): Fix comment.
2297 (diagnostic_report_diagnostic): Clarify logic for error recursion.
2298 Call pp_prepare_to_format before diagnostic_starter.
2299 (trim_filename): Use IS_DIR_SEPARATOR.
2300 (fatal_error, internal_error): Use gcc_unreachable.
2301 (error_recursion): Call diagnostic_action_after_output to
2302 issue the bug_report_request message and exit.
2303 * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
2305 * c-parse.in: Add list of diagnostic messages to insulate
2306 translation template from version of yacc/bison used to
2307 compile the grammar.
2309 2004-10-06 Alan Modra <amodra@bigpond.net.au>
2312 * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
2314 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2316 * basic-block.h: Remove the prototype for
2317 flow_preorder_transversal_compute.
2318 * cfganal.c (dfst_node): Remove.
2319 (flow_preorder_transversal_compute): Likewise.
2320 * rtl.h: Remove the prototype for get_jump_table_offset.
2321 * rtlanal.c (get_jump_table_offset): Remove.
2323 2004-10-05 Richard Henderson <rth@redhat.com>
2326 * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
2328 2004-10-05 Kelley Cook <kcook@gcc.gnu.org>
2331 * Makefile.in: Stage the build directory too.
2333 2004-10-05 Aldy Hernandez <aldyh@redhat.com>
2335 * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
2337 * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
2338 (frv_emit_move): Same.
2340 * config/frv/frv.c (frv_emit_move): New.
2341 (frv_legitimize_address): New.
2343 * config/frv/frv.md ("movsi"): Call frv_emit_move.
2350 2004-10-05 Joseph S. Myers <jsm@polyomino.org.uk>
2352 * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
2355 2004-10-05 Joseph S. Myers <jsm@polyomino.org.uk>
2357 * c-decl.c (pushdecl): When an extern declaration at block scope
2358 refers to a visible entity with internal linkage, use the old DECL
2359 rather than the new one.
2361 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2363 * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
2366 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2368 * tree-cfg.c (thread_jumps): Remove a duplicate check for
2371 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2373 * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
2374 of FOR_BB_BETWEEN. Remove a useless check for unreachable
2377 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2379 * tree-cfg.c (cleanup_tree_cfg): Don't call
2380 delete_unreachable_blosk() after thread_jumps().
2381 (thread_jumps): Always remove basic blocks as they become
2384 2004-10-05 Kazu Hirata <kazu@cs.umass.edu>
2386 * tree-cfg.c (cleanup_tree_cfg): Remove variable
2387 something_changed. Simplify the while loop.
2389 2004-10-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2391 * builtins.c (expand_builtin_memmove): Delete duplicate code
2392 and accept a tree type for the result.
2393 (expand_builtin_bcopy): Accept a tree type for the result.
2394 (fold_builtin_memmove): Accept an arglist and tree type for
2397 2004-10-05 Ulrich Weigand <uweigand@de.ibm.com>
2399 * config/s390/s390.c (s390_dump_pool): Remove return value.
2400 Use gen_pool_align, gen_pool_section_start/end instead of
2401 gen_pool_start/end_31/64.
2402 * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
2403 (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
2404 ("pool_start_31", "pool_end_31"): Remove.
2405 ("pool_start_64", "pool_end_64"): Likewise.
2406 ("pool_align", "pool_section_start", "pool_section_end": New insns.
2408 * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
2409 (TARGET_CANNOT_COPY_INSN_P): Define.
2410 (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
2411 (struct constant_pool): New member 'execute'.
2412 (s390_add_execute, s390_find_execute): New functions.
2413 (s390_execute_label, s390_execute_target): Likewise.
2414 (s390_dump_pool): Output in-pool execute target templates.
2415 (s390_dump_execute): New function.
2416 (s390_alloc_pool, s390_free_pool): Handle execute templates.
2417 (s390_mainpool_start, s390_mainpool_finish): Likewise.
2418 (s390_chunkify_start, s390_chunkify_finish): Likewise.
2419 * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
2420 ("*execute"): New insn pattern.
2421 ("movmem_short", "*movmem_short"): Use splitters to generate
2422 explicit execute pattern, remove embedded execute.
2423 ("clrmem_short", "*clrmem_short"): Likewise.
2424 ("cmpmem_short", "*cmpmem_short"): Likewise.
2426 2004-10-05 Daniel Berlin <dberlin@dberlin.org>
2428 * tree-ssa.c (verify_ssa): Verify phi arguments only
2429 contain renamed names.
2431 2004-10-05 Alan Modra <amodra@bigpond.net.au>
2433 * config/rs6000/linux.h: Formatting, whitespace.
2434 * config/rs6000/linux64.h: Likewise.
2435 * config/rs6000/rs6000-protos.h: Likewise.
2436 * config/rs6000/rs6000.c: Likewise.
2437 (easy_vector_splat_const): Add fall thru comments.
2438 (output_vec_const_move): Likewise.
2440 2004-10-05 Kelley Cook <kcook@gcc.gnu.org>
2442 * Makefile.in: Update -Wno-error exceptions for move to build dir.
2444 2004-10-05 Chao-Ying Fu <fu@mips.com>
2445 Richard Sandiford <rsandifo@redhat.com>
2447 * doc/invoke.texi (-mpaired-single): Link to the new description of the
2448 built-in functions. Document dependencies.
2449 (-mips3d): Add link here too.
2450 * doc/extend.texi (MIPS Paired-Single Support): New section.
2452 2004-10-04 Chao-ying Fu <fu@mips.com>
2454 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
2456 2004-10-04 Diego Novillo <dnovillo@redhat.com>
2458 * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2459 Initialize OPT_STATS to 0.
2461 2004-10-04 Kazu Hirata <kazu@cs.umass.edu>
2463 * tree-data-ref.c: Fix comment typos.
2465 2004-10-04 Sebastian Pop <pop@cri.ensmp.fr>
2467 * tree-data-ref.c (array_base_name_differ_p): Fix comments. When
2468 the predicate cannot be computed, don't initialize the result to
2471 2004-10-01 Eric Christopher <echristo@redhat.com>
2473 * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
2474 locally defined enum.
2475 * dwarf2out.c (add_calling_convention_attribute): Don't
2478 2004-10-03 Andrew Pinski <pinskia@physics.uc.edu>
2480 PR c/17178, PR c/17820
2481 * c-decl.c (pop_scope): Do not warn about unused static
2482 variables as they warned in the middle-end.
2484 2004-10-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2486 * builtins.c (expand_builtin_memcpy): Delete duplicate code
2487 and make the first parameter the expression not the arglist.
2489 2004-10-03 Ulrich Weigand <uweigand@de.ibm.com>
2491 * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
2492 as valid modes to expand address expressions.
2494 2004-10-03 Joseph S. Myers <jsm@polyomino.org.uk>
2496 * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
2497 c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
2498 c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
2499 code formatting conventions.
2501 2004-10-03 Richard Sandiford <rsandifo@redhat.com>
2503 * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
2505 2004-10-03 Kazu Hirata <kazu@cs.umass.edu>
2507 PR tree-optimization/16632
2508 * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
2509 fold (A & C) == D into 0, fold ~C. Similarly, for the case
2510 where | is used instead of &.
2512 2004-10-03 Kazu Hirata <kazu@cs.umass.edu>
2514 * ginclude/stddef.h: Fix a comment typo.
2516 2004-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2519 * config.gcc (i?86-*-solaris2*): Restore correct logic
2520 for --enable-threads option.
2521 (sparc64-*-solaris2*): Likewise.
2522 (sparc-*-solaris2*): Likewise.
2524 2004-10-03 Alan Modra <amodra@bigpond.net.au>
2526 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
2527 (OS_MISSING_POWERPC64): Move, and comment.
2528 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
2529 (OS_MISSING_POWERPC64): Move, and comment.
2531 2004-10-02 Ian Lance Taylor <ian@wasabisystems.com>
2533 * arm.c (output_call_mem): Add missing \t.
2535 2004-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2537 * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
2538 expand_builtin_strncmp): Delete duplicate code.
2540 2004-10-02 Frank Ch. Eigler <fche@redhat.com>
2542 * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
2543 take check-base and -limit arguments.
2544 (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
2545 check ranges for ARRAY_REF and COMPONENT_REF.
2546 (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
2549 2004-10-02 Joseph S. Myers <jsm@polyomino.org.uk>
2551 * c-objc-common.c (c_tree_printer): Correct description of %E.
2552 Don't fall through after printing an expression.
2554 2004-10-02 Kazu Hirata <kazu@cs.umass.edu>
2556 * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
2558 2004-10-02 Kazu Hirata <kazu@cs.umass.edu>
2560 * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
2561 delete_unrechable_blocks() only when necessary.
2563 2004-10-02 P.J. Darcy <darcypj@us.ibm.com>
2565 * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
2566 (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
2567 (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
2568 __gthread_recursive_mutex_unlock): New functions.
2570 2004-10-02 P.J. Darcy <darcypj@us.ibm.com>
2572 * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
2573 * config/s390/tpf-eh.c: Remove file.
2574 * config/s390/tpf-unwind.h: New file.
2575 * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
2576 (MD_UNWIND_SUPPORT): Define.
2578 2004-10-02 Joseph S. Myers <jsm@polyomino.org.uk>
2580 * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
2582 2004-10-01 Ulrich Weigand <uweigand@de.ibm.com>
2584 * config/s390/s390-protos.h (s390_comparison): Add prototype.
2585 * config/s390/s390.c (s390_comparison): New function.
2586 (s390_branch_condition_mask): Return -1 for invalid comparisons.
2587 (s390_branch_condition_mnemonic): Assert valid comparison.
2588 * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
2589 * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
2590 "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
2591 s390_comparison instead of comparison_operator.
2593 * config/s390/s390.md (UNSPEC_CMPINT): New constant.
2594 ("cmpmemdi"): Remove.
2595 ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
2596 ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
2597 ("cmpint_si"): Rename to ...
2598 ("*cmpint_si"): ... this. Use UNSPEC_CMPINT.
2599 ("cmpint_di", "*cmpint_di"): Likewise.
2600 * config/s390/s390.c (s390_canonicalize_comparison): Remove
2601 redundant UNSPEC_CMPINT conversions.
2602 (s390_expand_cmpmem): Adapt to cmpint pattern changes.
2604 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
2606 * collect2.c (COLLECT_PARSE_FLAG): Remove.
2607 (main): Remove a reference to COLLECT_PARSE_FLAG
2608 * system.h: Poison COLLECT_PARSE_FLAG.
2609 * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
2611 2004-10-01 Paul Brook <paul@codesourcery.com>
2613 * config/arm/crti.asm: Give _init and _fini function type.
2615 2004-10-01 Zdenek Dvorak <dvorakz@suse.cz>
2617 * common.opt (ftree-loop-ivcanon): Enable by default.
2618 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2619 Enable complete loop unrolling.
2620 (canonicalize_induction_variables, tree_unroll_loops_completely):
2623 2004-10-01 Paul Brook <paul@codesourcery.com>
2625 * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
2626 not register number.
2627 (thumb_find_work_register): Search full register range.
2629 2004-10-01 Andrew Pinski <pinskia@physics.uc.edu>
2632 * tree-cfg.c (group_case_labels): Get the label and not
2633 the case expr for the default case.
2634 When the label we looking at is the default, decrement the
2637 2004-10-01 Jan Hubicka <jh@suse.cz>
2639 * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
2640 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2641 * toplev.h (tree_rest_of_compilation): Update prototype.
2642 * tree-optimize.c (tree_rest_of_compilation): Kill nested_p argument.
2644 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
2646 * tree-cfg.c (cleanup_tree_cfg): Pull a call to
2647 cleanup_control_flow() out of the while loop.
2649 2004-10-01 Paolo Bonzini <bonzini@gnu.org>
2651 * tree-vectorizer.c (vectorizable_operation): Fail unless
2652 the mode for the vector type is indeed a vector mode.
2654 2004-10-01 Zdenek Dvorak <dvorakz@suse.cz>
2656 * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
2657 chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
2659 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2660 add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
2661 follow_ssa_edge_in_rhs): Ditto.
2662 * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
2663 (dump_iv): Dump base_object.
2664 (dump_use, dump_cand): Use dump_iv.
2665 (determine_base_object): New function.
2666 (alloc_iv): Initialize base_object field.
2667 (record_use): Clear the ssa_name field of iv.
2668 (get_computation_cost_at): Do not use difference of addresses of
2669 two different objects.
2670 (may_eliminate_iv): Do not require the loop to have just single exit.
2671 * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
2672 (nonzero_p): New function.
2673 (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
2674 tree_simplify_using_condition, simplify_using_initial_conditions,
2675 loop_niter_by_eval, find_loop_niter_by_eval,
2676 estimate_numbers_of_iterations_loop, compare_trees,
2677 upper_bound_in_type, lower_bound_in_type,
2678 can_count_iv_in_wider_type_bound): Use buildN instead of build. Use
2679 fold_convert or build_int_cst_type instead of convert. Use (non)zero_p
2680 instead of integer_(non)zerop.
2682 2004-10-01 Jakub Jelinek <jakub@redhat.com>
2685 2004-09-29 Jakub Jelinek <jakub@redhat.com>
2687 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2688 and TI_VA_LIST_FPR_COUNTER_FIELD.
2689 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2690 * tree-pass.h (pass_stdarg): Add.
2691 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2692 * tree-stdarg.c: New file.
2693 * Makefile.in (OBJS-common): Add tree-stdarg.o.
2694 (tree-stdarg.o): Add dependencies.
2695 * function.h (struct function): Add va_list_gpr_size and
2696 va_list_fpr_size fields.
2697 * function.c (allocate_struct_function): Initialize them.
2699 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2700 va_list_{g,f}pr_counter_field.
2701 (ix86_setup_incoming_varargs): Don't do anything if reg_save
2702 area will not be used. Only save registers that tree-stdarg.c
2703 detected they need saving.
2704 (ix86_va_start): Don't set up fields that won't be used.
2706 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2707 va_list_{g,f}pr_counter_field.
2708 (setup_incoming_varargs): Don't do anything if reg_save
2709 area will not be used. Only save registers that tree-stdarg.c
2710 detected they need saving.
2711 (rs6000_va_start): Don't set up fields that won't be used.
2713 2004-09-30 Eric Christopher <echristo@redhat.com>
2715 * dwarf2.h (dwarf_calling_convention): Add enum for renesas
2717 * dwarf2out.c (add_calling_convention_attribute): New function.
2718 (gen_subroutine_type_die): Use.
2719 * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
2720 * target.h (gcc_target): Add dwarf_calling_convention.
2721 * hooks.c (hook_int_tree_0): New function.
2722 * hooks.h: Prototype.
2723 * config/sh/sh.c: Include dwarf2.h.
2724 (sh_dwarf_calling_convention): New function.
2725 (TARGET_DWARF_CALLING_CONVENTION): Use.
2726 * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
2728 2004-09-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2730 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2731 expand_builtin_strrchr, expand_builtin_strpbrk,
2732 expand_builtin_strncat, expand_builtin_strspn,
2733 expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
2736 2004-09-30 Ulrich Weigand <uweigand@de.ibm.com>
2738 * config/s390/s390-protos.h (s390_expand_logical_operator): Add
2740 (s390_logical_operator_ok_p): Likewise.
2741 * config/s390/s390.c (s390_expand_logical_operator): New function.
2742 (s390_logical_operator_ok_p): Likewise.
2743 * config/s390/s390.md ("anddi3"): New expander.
2744 ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
2745 ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
2746 ("andsi3"): Use s390_expand_logical_operator.
2747 ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
2748 ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
2749 ("andhi3"): New expander.
2750 ("*andhi3_zarch", "*andhi3_esa"): New patterns.
2751 ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
2752 ("andqi3"): New expander.
2753 ("*andqi3_zarch", "*andqi3_esa"): New patterns.
2754 ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
2755 ("iordi3"): New expander.
2756 ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
2757 ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
2758 ("iorsi3"): Use s390_expand_logical_operator.
2759 ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
2760 ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
2761 ("iorhi3"): New expiorer.
2762 ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
2763 ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
2764 ("iorqi3"): New expiorer.
2765 ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
2766 ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
2767 ("xordi3"): New expander.
2768 ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
2769 ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
2770 ("xorsi3"): New expander.
2771 ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
2772 ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
2773 ("xorhi3"): New expander.
2774 ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
2775 ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
2776 ("xorqi3"): New expander.
2777 ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
2778 ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
2780 2004-09-30 Roger Sayle <roger@eyesopen.com>
2782 * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
2783 (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
2784 machine mode as the result.
2786 2004-09-30 Ben Elliston <bje@au.ibm.com>
2789 * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
2790 FOR_EACH_EDGE macros.
2792 2004-09-30 Joseph S. Myers <jsm@polyomino.org.uk>
2794 * c-tree.h (readonly_error): Remove.
2795 * c-typeck (enum lvalue_use): New.
2796 (lvalue_or_else, readonly_error): Use it. All callers changed.
2797 (readonly_error): Make static.
2799 2004-09-30 Jan Hubicka <jh@suse.cz>
2802 * cfgrtl.c (try_redirect_by_replacing_jump,
2803 force_nonfallthru_and_redirect, commit_one_edge_insertion,
2804 cfg_layout_merge_blocks): Do not attach any line number information
2805 to newly inserted instructions.
2806 * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
2808 (emit_*insn_before, emit_insn*_after): New.
2809 (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
2811 * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
2812 (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
2814 2004-09-30 Ulrich Weigand <uweigand@de.ibm.com>
2816 * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
2817 (s390_return_address_offset): Remove.
2818 (s390_can_eliminate): Add prototype.
2819 (s390_initial_elimination_offset): Add prototype.
2820 * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
2821 (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
2822 * config/s390/s390.c (s390_arg_frame_offset): Remove.
2823 (s390_return_address_offset): Remove.
2824 (s390_can_eliminate, s390_initial_elimination_offset): New functions.
2825 (struct machine_function): New member split_branches_pending_p.
2826 (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
2827 (s390_mainpool_finish): Likewise. Clear base_reg if pool empty.
2828 (s390_optimize_prologue): Remove base_used argument. Call
2829 s390_update_frame_layout instead of s390_register_info. Handle
2830 prologue/epilogue insns that touch only RETURN_REGNUM.
2831 (s390_reorg): Remove base_used. Clear split_branches_pending_p.
2832 (s390_register_info): Remove base_used and return_addr_used
2833 arguments, compute special register usage inline. Return live
2834 register data to caller.
2835 (s390_frame_info): Remove arguments, do not call s390_register_info.
2836 (s390_init_frame_layout): New function.
2837 (s390_update_frame_layout): Likewise.
2838 (s390_emit_prologue): Call s390_update_frame_layout; some code
2839 move to there. Do not emit pool placeholder insn if unnecessary.
2841 2004-09-30 Ulrich Weigand <uweigand@de.ibm.com>
2843 * config/s390/s390.c (legitimate_reload_constant_p): Remove
2844 floating point constant workaround.
2845 (s390_secondary_input_reload_class): Handle PLUS reloads
2846 with too-large constant.
2847 (s390_expand_plus_operand): Likewise.
2848 * config/s390/s390.md ("movdi"): Do not call force_const_mem.
2849 ("movsi"): Likewise. Also, remove workaround for non-general
2851 ("movdf"): Do not call force_const_mem.
2852 ("movsf"): Likewise. Merge expander with *movsf insn.
2853 ("*movsf"): Remove, merge with movsf expander.
2855 2004-09-30 Paul Brook <paul@codesourcery.com>
2857 * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
2858 (ENDFILE_SPEC): Define.
2859 * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
2861 2004-09-30 Richard Henderson <rth@redhat.com>
2863 * config/alpha/qrnnd.asm: Mark for noexecstack.
2865 2004-09-30 Kazu Hirata <kazu@cs.umass.edu>
2867 * protoize.c, tree-cfg.c: Fix comment typos.
2869 2004-09-30 Joseph S. Myers <jsm@polyomino.org.uk>
2872 * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
2874 2004-09-30 Diego Novillo <dnovillo@redhat.com>
2876 * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
2878 (add_pointed_to_expr): ... here.
2879 Call add_pointed_to_expr for variables with DECL_INITIAL set.
2880 * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
2881 pointer variable, if set.
2883 2004-09-30 Kazu Hirata <kazu@cs.umass.edu>
2885 * config/sh/sh.c: Follow spelling conventions.
2887 2004-09-29 Richard Henderson <rth@redhat.com>
2889 * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
2890 * doc/tm.texi (DWARF_ZERO_REG): New.
2892 * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
2893 alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
2894 * config/alpha/alpha.h (DWARF_ZERO_REG): New.
2896 2004-09-29 Ulrich Weigand <uweigand@de.ibm.com>
2898 * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
2899 with a PLUS as source operand.
2900 (expand_movstr): Likewise.
2901 (expand_builtin_stpcpy): Likewise.
2903 2004-09-29 Richard Henderson <rth@redhat.com>
2906 * tree-gimple.c (is_gimple_reg): Reject hard registers.
2907 (is_gimple_asm_val): New.
2908 * tree-gimple.h (is_gimple_asm_val): Declare.
2909 * gimplify.c (gimplify_asm_expr): Use it.
2910 * tree-pretty-print.c (print_declaration): Dump hard regs.
2911 * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
2912 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
2913 * tree-ssa-pre.c (is_undefined_value): Likewise.
2914 * tree-ssa-copy.c (may_propagate_copy): Likewise.
2915 (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
2916 * tree-ssa.c (warn_uninit): Likewise.
2917 * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
2919 2004-09-29 Fariborz Jahanian <fjahanian@apple.com>
2921 * c-decl.c (merge_decls): Use comptype when comparing
2922 types to decide on DECL_SIZE save of olddecl.
2924 2004-09-29 Daniel Berlin <dberlin@dberlin.org>
2926 * tree.h (INDIRECT_REF_P): New macro.
2927 * alias.c (get_alias_set): Use it
2928 (nonoverlapping_memrefs_p): Ditto.
2929 * emit-rtl.c (mem_expr_equal_p): Ditto.
2930 (set_mem_attributes_minus_bitpos): Ditto.
2931 (is_gimple_addressable): Ditto.
2932 (get_base_address): Ditto.
2933 * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
2934 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
2935 * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
2936 * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
2937 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
2938 (add_address_candidates): Ditto.
2939 (rewrite_address_base): Ditto.
2941 2004-09-30 Ben Elliston <bje@au.ibm.com>
2943 * tree-flow.h (struct bb_ann_d): Remove num_preds member.
2944 * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
2945 (rewrite_ssa_into_ssa): Likewise.
2946 * tree-phinodes.c (create_phi_node): Access the number of
2947 predecessor edges using EDGE_COUNT() and not num_preds.
2949 2004-09-29 Joseph S. Myers <jsm@polyomino.org.uk>
2952 * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
2954 2004-09-29 Eric Christopher <echristo@redhat.com>
2956 * fold-const.c (tree_swap_operands_p): Remove duplicated code.
2958 2004-09-29 Hans-Peter Nilsson <hp@axis.com>
2960 * config/cris/cris.md (moverside, movemside): With MEM, make sure
2961 the address is (plus reg mem).
2963 2004-09-29 David Edelsohn <edelsohn@gnu.org>
2965 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
2967 2004-09-29 Nathan Sidwell <nathan@codesourcery.com>
2969 * tree.c (make_node_stat): Fix uninitialized warning. Replace
2970 cascaded if ... else if with a switch.
2972 2004-09-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2974 * read-rtl.c (apply_macro_to_string): Replace index with strchr.
2976 2004-09-29 Jakub Jelinek <jakub@redhat.com>
2978 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2979 and TI_VA_LIST_FPR_COUNTER_FIELD.
2980 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2981 * tree-pass.h (pass_stdarg): Add.
2982 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2983 * tree-stdarg.c: New file.
2984 * Makefile.in (OBJS-common): Add tree-stdarg.o.
2985 (tree-stdarg.o): Add dependencies.
2986 * function.h (struct function): Add va_list_gpr_size and
2987 va_list_fpr_size fields.
2988 * function.c (allocate_struct_function): Initialize them.
2990 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2991 va_list_{g,f}pr_counter_field.
2992 (ix86_setup_incoming_varargs): Don't do anything if reg_save
2993 area will not be used. Only save registers that tree-stdarg.c
2994 detected they need saving.
2995 (ix86_va_start): Don't set up fields that won't be used.
2997 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2998 va_list_{g,f}pr_counter_field.
2999 (setup_incoming_varargs): Don't do anything if reg_save
3000 area will not be used. Only save registers that tree-stdarg.c
3001 detected they need saving.
3002 (rs6000_va_start): Don't set up fields that won't be used.
3004 2004-09-29 Jakub Jelinek <jakub@redhat.com>
3006 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
3007 BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
3008 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
3009 BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
3010 * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
3011 ATTR_NONNULL_1_4): New.
3013 2004-09-29 Jakub Jelinek <jakub@redhat.com>
3015 PR tree-optimization/17697
3016 * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
3019 2004-09-28 Per Bothner <per@bothner.com>
3021 * profile.c (branch_prob): Pass correct value to output_location,
3022 even when USE_MAPPED_LOCATION. Fixes bug from 09-11.
3024 2004-09-28 Richard Henderson <rth@redhat.com>
3027 * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
3028 * tree-flow.h (may_propagate_copy_into_asm): Declare.
3029 * tree-ssa-ccp.c (replace_uses_in): Use it.
3030 * tree-ssa-dom.c (cprop_operand): Likewise.
3032 2004-09-28 Jeff Law <law@redhat.com>
3034 * tree-ssa-threadupdate.c (create_block_for_threading): Request
3035 that no outgoing edges be left in the duplicate block. Do no
3036 update information on outgoing edges or PHI nodes in target
3038 (remove_ctrl_stmt_and_useless_edges): Renamed from
3039 remove_last_stmt_and_useless_edges. Handle case where the
3040 block is empty or has no control statements. Do not update edge
3042 (thread_block): Create a template block rather than copying the
3043 original block every time. Create outgoing edges from the
3044 duplicate blocks and update PHIs at the target of the outgoing
3045 edges here. Fix edge flags for the original block if necessary.
3046 * cfghooks (duplicate_block): No longer assert that the original
3047 block has incoming edges.
3049 2004-09-29 Hans-Peter Nilsson <hp@bitrange.com>
3051 * doc/extend.texi (Extended Asm): Add blurb about using Explicit
3052 Reg Vars to enforce register allocation with general constraints.
3053 (Explicit Reg Vars): Clarify relation to asm statements.
3054 (Local Reg Vars): Similar.
3056 2004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
3058 * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
3059 TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
3060 build_control_flow, new_edge): Remove.
3061 (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
3062 (bitlst, bitlst_table_last, bitlst_table): Remove.
3063 (bblst): Store basic_block pointer instead of block index.
3064 (bblst_table): Likewise.
3065 (edgelst): Store edge pointer instead of edge index.
3066 (edgelst_table, edgelst_last): New variables.
3067 (extract_bitlst): Rename to ...
3068 (extract_edgelst): ... this. Return edge pointers, not indices.
3069 (split_edges): Update call.
3070 (rgn_edges): Store edge pointers instead of indices.
3071 (edge_to_bit): Remove.
3072 (EDGE_TO_BIT): Store per-region edge index in edge->aux.
3073 (SET_EDGE_TO_BIT): New macro.
3074 (is_cfg_nonregular): Check for simple cases of unreachable blocks.
3075 (find_rgns): Remove edge_list parameter. Traverse standard CFG
3076 data structures instead of haifa_edge et al. Use edge pointers
3077 instead of edge indices everywhere.
3078 (compute_dom_prob_ps): Use standard CFG data structures. Account
3080 (compute_trg_info): Likewise.
3081 (propagate_deps): Likewise.
3082 (debug_candidate): Account for bblst data structure change.
3083 (check_live_1, update_live_1, is_pfree): Likewise.
3084 (IS_REACHABLE): Use standard CFG data structures.
3085 (init_ready_list): Update bblst_table/edgelst_table allocation.
3086 (schedule_region): Update alloc/cleanup code to data structure
3087 changes. Use edge->aux to store per-region edge index.
3088 (init_regions): No longer call build_control_flow. Do not
3089 create edge list any more.
3091 2004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
3093 * cse.c (cse_insn): Avoid creating direct non-local jumps.
3094 * combine.c (can_combine_p): Likewise.
3095 * local-alloc. (update_equiv_regs): Likewise.
3097 2004-09-28 Richard Henderson <rth@redhat.com>
3100 * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
3101 Don't check VOIDmode here. Force PLUS operands to common type.
3102 (expand_expr_addr_expr): Do VOIDmode check earlier. Force use of
3103 Pmode if given a non pointer type.
3105 2004-09-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3108 * optabs.c (expand_binop): Force constants to the correct mode.
3110 2004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
3112 * config/s390/s390.c (s390_adjust_cost): Remove.
3113 (TARGET_SCHED_ADJUST_COST): Do not redefine.
3114 (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
3115 * config/s390/s390.md ("main_pool"): Use "larl" type
3116 attribute if TARGET_CPU_ZARCH.
3118 2004-09-28 Jakub Jelinek <jakub@redhat.com>
3120 * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
3123 2004-09-28 Diego Novillo <dnovillo@redhat.com>
3125 * tree-ssa-loop.c (pass_record_bounds): Do not assign a
3128 2004-09-28 Steven Bosscher <stevenb@suse.de>
3130 * common.opt (flag_gcse_sm): Disable by default.
3131 (flag_gcse_las): Likewise.
3132 (flag_web): Likewise. Create from this file.
3133 * flags.h: Remove flag_web declaration.
3134 * toplev.c (flag_web): Likewise.
3135 (process_options): Never set flag_web.
3137 2004-09-28 Steven Bosscher <stevenb@suse.de>
3139 * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
3140 * tree-ssa-propagate.c: Include vec.h.
3141 (interesting_ssa_edges, varying_ssa_edges): Make these VECs
3143 (cfg_blocks_add): Assert the block is not already in the worklist.
3144 Update uses of interesting_ssa_edges and varying_ssa_edges.
3145 (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
3146 ssa_propagate): Likewise.
3148 2004-09-28 Joseph S. Myers <jsm@polyomino.org.uk>
3151 * c-decl.c (start_decl): Check for initializing incomplete array
3153 (build_compound_literal): Check for TYPE being error_mark_node.
3154 * c-parse.in (primary): Check for VLA compound literals.
3156 2004-09-28 Diego Novillo <dnovillo@redhat.com>
3158 * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
3159 with --disable-checking.
3161 2004-09-28 Devang Patel <dpatel@apple.com>
3163 * tree-pretty-print.c (dump_generic_node): Print vector types.
3165 2004-09-28 Nick Clifton <nickc@redhat.com>
3167 * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
3168 invocation of the function sh_init_cumulative_args.
3169 (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
3170 (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
3171 * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
3172 * config/sh/sh.c (sh_init_cumulative_args): New function based
3173 on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
3174 heuristic added to determine the setting of force_mem when a
3175 library function is being called.
3177 2004-09-28 Diego Novillo <dnovillo@redhat.com>
3179 * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
3180 Skip constant arguments.
3182 2004-09-28 Diego Novillo <dnovillo@redhat.com>
3184 * tree-ssa-alias.c (create_name_tags): If PTR points to a
3185 volatile type, mark the tag volatile.
3186 (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
3189 2004-09-28 Andrew Pinski <pinskia@physics.uc.edu>
3191 * tree.def (vec_cond_expr): Fix. Change 'e'
3194 2004-09-28 Kazu Hirata <kazu@cs.umass.edu>
3196 * basic-block.h: Fix a comment typo.
3198 2004-09-28 Kazu Hirata <kazu@cs.umass.edu>
3200 * optabs.c, optabs.h: Fix comment typos.
3202 2004-09-28 Eric Botcazou <ebotcazou@act-europe.fr>
3204 * config/sparc/sparc.md (call_address_struct_value_sp32):
3205 Properly mask the immediate field of the 'unimp' instruction.
3206 (call_symbolic_struct_value_sp32): Likewise.
3208 2004-09-28 Ben Elliston <bje@au.ibm.com>
3209 Steven Bosscher <stevenb@suse.de>
3210 Andrew Pinski <pinskia@physics.uc.edu>
3212 Merge from edge-vector-branch:
3213 * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
3214 (struct edge_def): Remove pred_next, succ_next members.
3215 (struct basic_block_def): Remove pred, succ members. Add preds
3216 and succs members of type VEC(edge).
3217 (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
3218 (BRANCH_EDGE): Likewise.
3219 (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
3220 (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
3221 (edge_iterator): New.
3222 (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
3223 (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
3224 (FOR_EACH_EDGE): New.
3225 * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
3227 (rotate_loop): Likewise.
3228 (find_traces_1_route): Likewise.
3229 (bb_to_key): Likewise.
3230 (connect_traces): Likewise.
3231 (copy_bb_p): Likewise.
3232 (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
3233 (add_labels_and_missing_jumps): Likewise.
3234 (fix_up_fall_thru_edges): Likewise.
3235 (find_jump_block): Likewise.
3236 (fix_crossing_conditional_branches): Likewise.
3237 (fix_crossing_unconditional_branches): Likewise.
3238 (add_reg_crossing_jump_notes): Likewise.
3239 * bt-load.c (augment_live_range): Likewise.
3240 * cfg.c (clear_edges): Likewise.
3241 (unchecked_make_edge): Likewise.
3242 (cached_make_edge): Likewise.
3243 (make_single_succ_edge): Likewise.
3244 (remove_edge): Likewise.
3245 (redirect_edge_succ_nodup): Likewise.
3246 (check_bb_profile): Likewise.
3247 (dump_flow_info): Likewise.
3248 (alloc_aux_for_edges): Likewise.
3249 (clear_aux_for_edges): Likewise.
3250 (dump_cfg_bb_info): Likewise.
3251 * cfganal.c (forwarder_block_p): Likewise.
3252 (can_fallthru): Likewise.
3253 (could_fall_through): Likewise.
3254 (mark_dfs_back_edges): Likewise.
3255 (set_edge_can_fallthru_flag): Likewise.
3256 (find_unreachable_blocks): Likewise.
3257 (create_edge_list): Likewise.
3258 (verify_edge_list): Likewise.
3259 (add_noreturn_fake_exit_edges): Likewise.
3260 (connect_infinite_loops_to_exit): Likewise.
3261 (flow_reverse_top_sort_order_compute): Likewise.
3262 (flow_depth_first_order_compute): Likewise.
3263 (flow_preorder_transversal_compute): Likewise.
3264 (flow_dfs_compute_reverse_execute): Likewise.
3265 (dfs_enumerate_from): Likewise.
3266 (compute_dominance_frontiers_1): Likewise.
3267 * cfgbuild.c (make_edges): Likewise.
3268 (compute_outgoing_frequencies): Likewise.
3269 (find_many_sub_basic_blocks): Likewise.
3270 (find_sub_basic_blocks): Likewise.
3271 * cfgcleanup.c (try_simplify_condjump): Likewise.
3272 (thread_jump): Likewise.
3273 (try_forward_edges): Likewise.
3274 (merge_blocks_move): Likewise.
3275 (outgoing_edges_match): Likewise.
3276 (try_crossjump_to_edge): Likewise.
3277 (try_crossjump_bb): Likewise.
3278 (try_optimize_cfg): Likewise.
3279 (merge_seq_blocks): Likewise.
3280 * cfgexpand.c (expand_gimple_tailcall): Likewise.
3281 (expand_gimple_basic_block): Likewise.
3282 (construct_init_block): Likewise.
3283 (construct_exit_block): Likewise.
3284 * cfghooks.c (verify_flow_info): Likewise.
3285 (dump_bb): Likewise.
3286 (delete_basic_block): Likewise.
3287 (split_edge): Likewise.
3288 (merge_blocks): Likewise.
3289 (make_forwarder_block): Likewise.
3290 (tidy_fallthru_edges): Likewise.
3291 (can_duplicate_block_p): Likewise.
3292 (duplicate_block): Likewise.
3293 * cfglayout.c (fixup_reorder_chain): Likewise.
3294 (fixup_fallthru_exit_predecessor): Likewise.
3295 (can_copy_bbs_p): Likewise.
3296 (copy_bbs): Likewise.
3297 * cfgloop.c (flow_loops_cfg_dump): Likewise.
3298 (flow_loop_entry_edges_find): Likewise.
3299 (flow_loop_exit_edges_find): Likewise.
3300 (flow_loop_nodes_find): Likewise.
3301 (mark_single_exit_loops): Likewise.
3302 (flow_loop_pre_header_scan): Likewise.
3303 (flow_loop_pre_header_find): Likewise.
3304 (update_latch_info): Likewise.
3305 (canonicalize_loop_headers): Likewise.
3306 (flow_loops_find): Likewise.
3307 (get_loop_body_in_bfs_order): Likewise.
3308 (get_loop_exit_edges): Likewise.
3309 (num_loop_branches): Likewise.
3310 (verify_loop_structure): Likewise.
3311 (loop_latch_edge): Likewise.
3312 (loop_preheader_edge): Likewise.
3313 * cfgloopanal.c (mark_irreducible_loops): Likewise.
3314 (expected_loop_iterations): Likewise.
3315 * cfgloopmanip.c (remove_bbs): Likewise.
3316 (fix_bb_placement): Likewise.
3317 (fix_irreducible_loops): Likewise.
3318 (remove_path): Likewise.
3319 (scale_bbs_frequencies): Likewise.
3320 (loopify): Likewise.
3322 (fix_loop_placement): Likewise.
3323 (loop_delete_branch_edge): Likewise.
3324 (duplicate_loop_to_header_edge): Likewise.
3325 (mfb_keep_just): Likewise.
3326 (create_preheader): Likewise.
3327 (force_single_succ_latches): Likewise.
3328 (loop_split_edge_with): Likewise.
3329 (create_loop_notes): Likewise.
3330 * cfgrtl.c (rtl_split_block): Likewise.
3331 (rtl_merge_blocks): Likewise.
3332 (rtl_can_merge_blocks): Likewise.
3333 (try_redirect_by_replacing_jump): Likewise.
3334 (force_nonfallthru_and_redirect): Likewise.
3335 (rtl_tidy_fallthru_edge): Likewise.
3336 (commit_one_edge_insertion): Likewise.
3337 (commit_edge_insertions): Likewise.
3338 (commit_edge_insertions_watch_calls): Likewise.
3339 (rtl_verify_flow_info_1): Likewise.
3340 (rtl_verify_flow_info): Likewise.
3341 (purge_dead_edges): Likewise.
3342 (cfg_layout_redirect_edge_and_branch): Likewise.
3343 (cfg_layout_can_merge_blocks_p): Likewise.
3344 (rtl_flow_call_edges_add): Likewise.
3345 * cse.c (cse_cc_succs): Likewise.
3346 * df.c (hybrid_search): Likewise.
3347 * dominance.c (calc_dfs_tree_nonrec): Likewise.
3348 (calc_dfs_tree): Likewise.
3349 (calc_idoms): Likewise.
3350 (recount_dominator): Likewise.
3351 * domwalk.c (walk_dominator_tree): Likewise.
3352 * except.c (emit_to_new_bb_before): Likewise.
3353 (connect_post_landing_pads): Likewise.
3354 (sjlj_emit_function_enter): Likewise.
3355 (sjlj_emit_function_exit): Likewise.
3356 (finish_eh_generation): Likewise.
3357 * final.c (compute_alignments): Likewise.
3358 * flow.c (calculate_global_regs_live): Likewise.
3359 (initialize_uninitialized_subregs): Likewise.
3360 (init_propagate_block_info): Likewise.
3361 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3362 * gcse.c (find_implicit_sets): Likewise.
3363 (bypass_block): Likewise.
3364 (bypass_conditional_jumps): Likewise.
3365 (compute_pre_data): Likewise.
3366 (insert_insn_end_bb): Likewise.
3367 (insert_store): Likewise.
3368 (remove_reachable_equiv_notes): Likewise.
3369 * global.c (global_conflicts): Likewise.
3370 (calculate_reg_pav): Likewise.
3371 * graph.c (print_rtl_graph_with_bb): Likewise.
3372 * ifcvt.c (mark_loop_exit_edges): Likewise.
3373 (merge_if_block): Likewise.
3374 (find_if_header): Likewise.
3375 (block_jumps_and_fallthru_p): Likewise.
3376 (find_if_block): Likewise.
3377 (find_cond_trap): Likewise.
3378 (block_has_only_trap): Likewise.
3379 (find_if_case1): Likewise.
3380 (find_if_case_2): Likewise.
3381 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
3382 (perfect_nestify): Likewise.
3383 * lcm.c (compute_antinout_edge): Likewise.
3384 (compute_laterin): Likewise.
3385 (compute_available): Likewise.
3386 (compute_nearerout): Likewise.
3387 * loop-doloop.c (doloop_modify): Likewise.
3388 * loop-init.c (loop_optimizer_init): Likewise.
3389 * loop-invariant.c (find_exits): Likewise.
3390 * loop-iv.c (simplify_using_initial_values): Likewise.
3391 (check_simple_exit): Likewise.
3392 (find_simple_exit): Likewise.
3393 * loop-unroll.c (peel_loop_completely): Likewise.
3394 (unroll_loop_constant_iterations): Likewise.
3395 (unroll_loop_runtime_iterations): Likewise.
3396 * loop-unswitch.c (may_unswitch_on): Likewise.
3397 (unswitch_loop): Likewise.
3398 * modulo-sched.c (generate_prolog_epilog): Likewise.
3399 (sms_schedule): Likewise.
3400 * postreload-gcse.c (eliminate_partially_redundant_load):
3402 * predict.c (can_predict_insn_p): Likewise.
3403 (set_even_probabilities): Likewise.
3404 (combine_predictions_for_bb): Likewise.
3405 (predict_loops): Likewise.
3406 (estimate_probability): Likewise.
3407 (tree_predict_by_opcode): Likewise.
3408 (tree_estimate_probability): Likewise.
3409 (last_basic_block_p): Likewise.
3410 (propagate_freq): Likewise.
3411 (estimate_loops_at_level): Likewise.
3412 (estimate_bb_frequencies): Likewise.
3413 * profile.c (instrument_edges): Likewise.
3414 (get_exec_counts): Likewise.
3415 (compute_branch_probabilities): Likewise.
3416 (branch_prob): Likewise.
3417 * ra-build.c (live_in): Likewise.
3418 * ra-rewrite.c (rewrite_program2): Likewise.
3419 * ra.c (reg_alloc): Likewise.
3420 * reg-stack.c (reg_to_stack): Likewise.
3421 (convert_regs_entry): Likewise.
3422 (compensate_edge): Likewise.
3423 (convert_regs_1): Likewise,
3424 (convert_regs_2): Likewise.
3425 (convert_regs): Likewise.
3426 * regrename.c (copyprop_hardreg_forward): Likewise.
3427 * reload1.c (fixup_abnormal_edges): Likewise.
3428 * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
3429 (sbitmap_insersection_of_preds): Likewise.
3430 (sbitmap_union_of_succs): Likewise.
3431 (sbitmap_union_of_preds): Likewise.
3432 * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
3433 (fix_basic_block_boundaries): Likewise.
3434 (sched_ebbs): Likewise.
3435 * sched-rgn.c (build_control_flow): Likewise.
3436 (find_rgns): Likewise.
3437 * tracer.c (find_best_successor): Likewise.
3438 (find_best_predecessor): Likewise.
3439 (tail_duplicate): Likewise.
3440 * tree-cfg.c (make_edges): Likewise.
3441 (make_ctrl_stmt_edges): Likewise.
3442 (make_goto_expr_edges): Likewise.
3443 (tree_can_merge_blocks_p): Likewise.
3444 (tree_merge_blocks): Likewise.
3445 (cfg_remove_useless_stmts_bb): Likewise.
3446 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3447 (tree_block_forwards_to): Likewise.
3448 (cleanup_control_expr_graph): Likewise.
3449 (find_taken_edge): Likewise.
3450 (dump_cfg_stats): Likewise.
3451 (tree_cfg2vcg): Likewise.
3452 (disband_implicit_edges): Likewise.
3453 (tree_find_edge_insert_loc): Likewise.
3454 (bsi_commit_edge_inserts): Likewise.
3455 (tree_split_edge): Likewise.
3456 (tree_verify_flow_info): Likewise.
3457 (tree_make_forwarder_block): Likewise.
3458 (tree_forwarder_block_p): Likewise.
3459 (thread_jumps): Likewise.
3460 (tree_try_redirect_by_replacing_jump): Likewise.
3461 (tree_split_block): Likewise.
3462 (add_phi_args_after_copy_bb): Likewise.
3463 (rewrite_to_new_ssa_names_bb): Likewise.
3464 (dump_function_to_file): Likewise.
3465 (print_pred_bbs): Likewise.
3466 (print_loop): Likewise.
3467 (tree_flow_call_edges_add): Likewise.
3468 (split_critical_edges): Likewise.
3469 (execute_warn_function_return): L