1 2005-02-28 Dale Johannesen <dalej@apple.com>
2 Stan Shebs <shebs@apple.com>
4 Rewrite of 64-bit Darwin structure-by-value pass/return.
5 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
6 intoffset, use_stack, named.
7 * config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
8 (rs6000_darwin64_record_arg_advance_flush): New.
9 (rs6000_darwin64_record_arg_advance_recurse): New.
10 (rs6000_darwin64_record_arg_flush): New.
11 (rs6000_darwin64_record_arg_recurse): New.
12 (rs6000_darwin64_record_arg): New.
13 (rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
14 (function_arg_boundary): Handle 128-bit aligned structs.
15 (function_arg_advance): Rewrite darwin64 struct handling.
16 (function_arg): Call rs6000_darwin64_record_arg.
17 (function_arg_partial_nregs): Handle darwin64 structs.
18 (rs6000_darwin64_function_value): Remove.
19 (rs6000_function_value): Call rs6000_darwin64_record_arg.
21 2005-02-28 Roger Sayle <roger@eyesopen.com>
23 PR tree-optimization/20216
24 * tree-chrec.c (tree_fold_factorial): Delete.
25 (tree_fold_binomial): Change argument list to take a return type
26 and change the type of K to unsigned int. Rewrite to avoid explicit
27 evaluation of factorials, and (recursively) calling fold to perform
28 compile-time arithmetic. Return NULL on (internal) overflow.
29 (chrec_evaluate): Change type of K to an unsigned int. Avoid
30 calling tree_fold_binomial unnecessarily. Return chrec_dont_know
31 if any intermediate calculation overflows.
32 (chrec_apply): Update call to chrec_evaluate.
34 2005-02-28 James E Wilson <wilson@specifixinc.com>
36 * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
38 2005-02-28 Joseph S. Myers <joseph@codesourcery.com>
41 * c-parser.c (c_parser_compound_statement): Return error_mark_node
42 instead of NULL_TREE on error.
44 2005-02-28 David Edelsohn <edelsohn@gnu.org>
46 * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
47 (EASY_VECTOR_15_ADD_SELF): Remove.
48 (num_insns_constant_wide): Not static.
49 (validate_condition_mode): Not static.
50 (toc_relative_expr_p): Not static.
51 (legitimate_indirect_address_p): Not static.
52 (macho_lo_sum_memory_operand): Not static.
53 (invalid_e500_subreg): Not static.
54 (easy_vector_same): Not static.
55 (easy_vector_splat_const): Not static.
56 (RS6000_SYMBOL_REF_TLS_P): Remove.
57 (any_operand): Delete.
58 (any_parallel_operand): Delete.
59 (count_register_operand): Delete.
60 (altivec_register_operand): Delete.
61 (xer_operand): Delete.
62 (s8bit_cint_operand): Delete.
63 (short_cint_operand): Delete.
64 (u_short_cint_operand): Delete.
65 (non_short_cint_operand): Delete.
66 (exact_log2_cint_operand): Delete.
67 (gpc_reg_operand): Delete.
68 (cc_reg_operand): Delete.
69 (cc_reg_not_cr0_operand): Delete.
70 (reg_or_short_operand): Delete.
71 (reg_or_neg_short_operand): Delete.
72 (reg_or_aligned_short_operand): Delete.
73 (reg_or_u_short_operand): Delete.
74 (reg_or_cint_operand): Delete.
75 (reg_or_arith_cint_operand): Delete.
76 (reg_or_add_cint64_operand): Delete.
77 (reg_or_sub_cint64_operand): Delete.
78 (reg_or_logical_cint_operand): Delete.
79 (got_operand): Delete.
80 (got_no_const_operand): Delete.
81 (easy_fp_constant): Delete.
82 (easy_vector_constant): Delete.
83 (easy_vector_constant_add_self): Delete.
84 (zero_constant): Delete.
85 (zero_fp_constant): Delete.
86 (volatile_mem_operand): Delete.
87 (offsettable_mem_operand): Delete.
88 (mem_or_easy_const_operand): Delete.
89 (add_operand): Delete.
90 (non_add_cint_operand): Delete.
91 (logical_operand): Delete.
92 (non_logical_cint_operand): Delete.
93 (mask_operand): Delete.
94 (mask_operand_wrap): Delete.
95 (mask64_operand): Delete.
96 (mask64_2_operand): Delete.
97 (and64_operand): Delete.
98 (and64_2_operand): Delete.
99 (and_operand): Delete.
100 (reg_or_mem_operand): Delete.
101 (lwa_operand): Delete.
102 (symbol_ref_operand): Delete.
103 (call_operand): Delete.
104 (current_file_function_operand): Delete.
105 (input_operand): Delete.
106 (rs6000_nonimmediate_operand): Delete.
107 (rs6000_tls_symbol_ref): Delete.
108 (save_world_operation): Delete.
109 (restore_world_operation): Delete.
110 (load_multiple_operation): Delete.
111 (store_multiple_operation): Delete.
112 (vrsave_operation): Delete.
113 (mfcr_operation): Delete.
114 (mtcrf_operation): Delete.
115 (lmw_operation): Delete.
116 (stmw_operation): Delete.
117 (branch_comparison_operator): Delete.
118 (branch_positive_comparison_operator): Delete.
119 (scc_comparison_operator): Delete.
120 (trap_comparison_operator): Delete.
121 (boolean_operator): Delete.
122 (boolean_or_operator): Delete.
123 (min_max_operator): Delete.
124 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
125 (EASY_VECTOR_15): Moved to here.
126 (EASY_VECTOR_15_ADD_SELF): Move to here.
127 (PREDICATE_CODES): Delete.
128 * config/rs6000/rs6000-protos.h: Delete predicate functions.
129 Declare functions no longer static.
130 * config/rs6000/predicates.md: New.
131 * config/rs6000/rs6000.md: Include predicates.md
133 2005-02-28 Kazu Hirata <kazu@cs.umass.edu>
135 * calls.c (emit_call_1): Don't use REG_ALWAYS_RETURN.
136 (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
138 * cfgrtl.c (need_fake_edge_p): Likewise.
139 * combine.c (distribute_notes): Likewise.
140 * emit-rtl.c (try_split): Likewise.
141 * recog.c (peephole2_opimize): Likewise.
142 * reg-notes.def (ALWAYS_RETURN): Remove.
143 * rtl.h (LCT_ALWAYS_RETURN): Remove.
144 * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
145 * tree.h (ECF_ALWAYS_RETURN): Remove.
147 2005-02-28 Roger Sayle <roger@eyesopen.com>
150 * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
151 between different machine modes is never a "useless" conversion.
153 2005-02-28 Geert Bosch <bosch@gnat.com>
156 * doc/contrib.texi: List contributors for Ada front end
158 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
160 * simplify-rtx.c (simplify_unary_operation_1,
161 simplify_const_unary_operation): New, extracted from...
162 (simplify_unary_operation): ... this one.
163 (simplify_binary_operation_1,
164 simplify_const_binary_operation): New, extracted from...
165 (simplify_binary_operation): ... this one.
166 * rtl.h (simplify_const_unary_operation,
167 simplify_const_binary_operation): Add prototypes.
169 2005-02-28 Julian Brown <julian@codesourcery.com>
171 * config/elfos.h: Revert my patch from 2005-02-25 since it broke
172 building libjava and caused PR regression/20228.
174 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
177 * Makefile.in (host_subdir): New.
178 (build_objdir): New. Replace ../$(build_subdir) with it throughout.
179 * configure: Regenerate.
181 2005-02-27 Zack Weinberg <zack@codesourcery.com>
183 * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
184 * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
185 installation directory first.
187 2005-02-28 Hans-Peter Nilsson <hp@axis.com>
190 * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
191 not including (reg). Do not check for reg being CRIS_PC_REGNUM.
192 (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
193 * config/cris/cris.md: Tweak comments referring to Q.
194 ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
195 ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
196 ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
197 ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
198 ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
199 Insert spaces in constraints to align alternatives vertically for
201 ("cmphi"): Ditto. Add separate alternative for operand 0 "Q>",
204 2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
206 PR rtl-optimization/17728
207 * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
208 operand 0 from general_operand to move_dest_operand.
210 2005-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
212 * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
213 instead of trying to save and restore TREE_SYMBOL_REFERENCED.
214 * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
215 (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
217 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
219 * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
220 * configure: Regenerate.
221 * libada-mk.in: Remove CC; rename
222 cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
224 2005-02-26 Andrew Pinski <pinskia@physics.uc.edu>
227 * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
228 for the lhs, also walk over the tree. Likewise for rhs.
230 2005-02-26 Zdenek Dvorak <dvorakz@suse.cz>
232 * tree-ssa-dom.c (simple_iv_increment_p): New function.
233 (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
234 Do not propagate value of iv before increment over the increment.
236 2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
238 * c-parser.c: New file.
239 * c-parse.in: Remove.
240 * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
242 (c-parser.o): Add dependencies.
243 (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
244 maintainer-clean, TAGS): Update.
245 * c-config-lang.in (gtfiles): Update.
246 * gengtype-lex.l: Don't handle "@@".
247 * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
248 objc_build_synchronized, objc_begin_try_stmt,
249 objc_begin_catch_clause, objc_finish_catch_clause,
250 objc_build_finally_clause, objc_finish_try_stmt): New.
251 * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
253 (c_parse_init): Update comment.
254 * c-decl.c (c_init_decl_processing): Update comment.
255 (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
256 declspecs_add_scspec, declspecs_add_attrs): Initialize and update
257 new c_declspecs members.
259 2005-02-25 Julian Brown <julian@codesourcery.com>
261 * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
262 from being used for symbols with vague linkage when
263 HAVE_GAS_COMDAT_GROUP is true.
265 2005-02-25 Mark Mitchell <mark@codesourcery.com>
267 * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
269 2005-02-25 Steve Ellcey <sje@cup.hp.com>
272 * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
273 (LIBGCC2_HAS_DF_MODE): New.
274 (LIBGCC2_HAS_XF_MODE): New.
275 (LIBGCC2_HAS_TF_MODE): New.
276 * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
277 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
278 * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
279 (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
280 (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
281 * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
282 and add _fixtfdi, _fixunstfdi, _floatditf
283 * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
284 L_fixunstfdi, L_floatditf.
285 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
286 (LIBGCC2_HAS_TF_MODE): Define.
288 2005-02-25 Diego Novillo <dnovillo@redhat.com>
290 PR tree-optimization/20204
291 * tree-into-ssa.c (insert_phi_nodes_for): Do not use
292 REWRITE_THIS_STMT markers on PHI nodes.
293 (rewrite_initialize_block): Likewise.
295 2005-02-25 Mark Mitchell <mark@codesourcery.com>
297 * version.c (version_string): Update to 4.1.
299 2005-02-25 Paolo Carlini <pcarlini@suse.de>
301 * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
302 Clarify that the alternative way doesn't work in GNU C++.
304 2005-02-25 Zdenek Dvorak <dvorakz@suse.cz>
306 PR tree-optimization/19937
307 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
308 to the type of the induction variable.
310 2005-02-25 Kaz Kojima <kkojima@gcc.gnu.org>
312 PR rtl-optimization/20117
313 * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
314 the block including noncopyable insn.
316 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
318 * cse.c (delete_trivially_dead_insns): Speed up by minimizing
319 calls to find_reg_note.
321 2005-02-24 Richard Henderson <rth@redhat.com>
324 * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
327 2005-02-24 Fariborz Jahanian <fjahanian@apple.com>
329 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
330 vector types if to use base reg for misaligned non-word ld/std.
332 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
335 * config/cris/cris.c (cris_target_asm_function_prologue): Create
336 dwarf2 label manually and put it after, not before the prologue.
338 2005-02-24 David Edelsohn <edelsohn@gnu.org>
341 * reload.c (operands_match_p): Only increment register number for
342 SCALAR_INT_MODE_P modes in multiple hard registers.
344 * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
347 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
349 * ChangeLog.5: Fix log message typo(s).
350 * ChangeLog.7: Likewise.
351 * ChangeLog.tree-ssa: Likewise.
352 * cfgexpand.c: Fix comment typo(s).
353 * conflict.c: Likewise.
354 * defaults.h: Likewise.
355 * dwarf2out.c: Likewise.
357 * ggc-page.c: Likewise.
358 * tree-eh.c: Likewise.
359 * tree-ssa-dom.c: Likewise.
361 2005-02-24 Jakub Jelinek <jakub@redhat.com>
364 * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
365 * config/rs6000/darwin-ldouble.c: Only use the .symver directives
366 if SHARED is defined.
369 * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
370 allow splitting only if operands 0 and 3 don't overlap.
372 2005-02-24 Richard Henderson <rth@redhat.com>
375 * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
376 (fold_builtin_1): Call them.
377 * fold-const.c (fold_complex_mult_parts): Split out from ...
378 (fold_complex_mult): ... here. Fix typo in both imaginary case.
379 (fold_complex_div_parts, fold_complex_div): New.
381 * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
383 2005-02-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
385 * tree-ssa-ccp.c (visit_assignment): Verify that result of
386 VIEW_CONVERT_EXPR is_gimple_min_invariant.
388 * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
389 (print_node): Likewise.
390 Print TYPE_SIZES_GIMPLIFIED.
392 2005-02-24 Hans-Peter Nilsson <hp@axis.com>
394 * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
395 ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
396 operands as commutative in constraints.
398 2005-02-24 Diego Novillo <dnovillo@redhat.com>
400 * tree-into-ssa.c: Re-organize internal functions.
402 2005-02-24 Richard Henderson <rth@redhat.com>
405 * c-opts.c (c_common_post_options): Set flag_complex_method to 2
407 * common.opt (fcx-limited-range): New.
408 * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
409 * toplev.c (flag_complex_method): Initialize to 1.
410 (process_options): Set flag_complex_method to 0 if
411 flag_cx_limited_range.
412 * doc/invoke.texi (-fcx-limited-range): New.
414 2005-02-24 Kazu Hirata <kazu@cs.umass.edu>
416 * cse.c (delete_trivially_dead_insns): Speed up by using
417 NEXT_INSN and PREV_INSN directly instead of next_real_insn and
420 2005-02-24 Andrea Tarani <andrea.tarani@gilbarco.com>
422 * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
423 functions when -mid-shared-library is being used.
425 2005-02-23 Daniel Jacobowitz <dan@codesourcery.com>
427 * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
428 (LINK_LIBGCC_SPECIAL_1): Don't mention it.
429 * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
430 * system.h: Poison LINK_LIBGCC_SPECIAL.
432 2005-02-23 James E Wilson <wilson@specifixinc.com>
434 * gengtype.c (note_insn_name): Make 1 element larger.
436 2005-02-23 Roger Sayle <roger@eyesopen.com>
439 PR rtl-optimization/20097
440 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
441 BImode SUBREGs of SImode registers which confuse the ia64 backend.
443 2005-02-23 David Edelsohn <edelsohn@gnu.org>
445 * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
446 * t-aix52 (SHLIB_INSTALL): Same.
448 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
450 * genpreds.c: Update copyright.
452 2005-02-23 Michael Beach <michaelb@ieee.org>
455 * config/sparc/t-elf (startup files): Assemble with CPP.
457 2005-02-23 Paolo Bonzini <bonzini@gnu.org>
459 * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
460 (write_predicate_expr): Likewise.
462 2005-02-22 Diego Novillo <dnovillo@redhat.com>
464 PR tree-optimization/20100
465 PR tree-optimization/20115
466 * tree-optimize.c (init_tree_optimization_passes): Remove
467 pass_maybe_create_global_var.
468 * tree-pass.h (pass_maybe_create_global_var): Remove.
469 * tree-ssa-alias.c (aliases_computed_p): Declare.
470 (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
471 (count_calls_and_maybe_create_global_var): Remove.
472 (pass_maybe_create_global_var): Remove.
473 (init_alias_info): Do not declare aliases_computed_p.
474 (maybe_create_global_var): If the function contains no
475 call-clobbered variables and a mix of pure/const and regular
476 function calls, create .GLOBAL_VAR.
477 Mark all call-clobbered variables for renaming.
478 (merge_pointed_to_info): Update comment.
479 (add_pointed_to_var): Likewise.
480 (is_escape_site): Likewise.
481 Accept struct alias_info * instead of size_t *.
483 Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
485 * tree-ssa-operands.c (get_call_expr_operands): If
486 ALIASES_COMPUTED_P is false, do not add call-clobbering
488 * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
489 (delete_tree_ssa): Likewise.
491 2005-02-22 James E Wilson <wilson@specifixinc.com>
493 * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
494 (do_compile): Do call it here.
496 2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
498 PR rtl-optimization/20017.
499 * passes.c (rest_of_handle_combine, rest_of_handle_cse,
500 rest_of_handle_cse2, rest_of_handle_gcse): Call
501 delete_dead_jumptables immediately before calling cleanup_cfg.
503 2005-02-22 Devang Patel <dpatel@apple.com>
506 * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
509 2005-02-22 David Edelsohn <edelsohn@gnu.org>
511 * config/rs6000/aix.h (WINT_TYPE): Define.
513 2005-02-22 Stan Shebs <shebs@apple.com>
515 * config/rs6000/rs6000.c (rs6000_override_options): Default to
516 natural alignment for 64-bit Darwin.
517 (rs6000_parse_alignment_option): Warn about uses of -malign-power
519 * doc/invoke.texi: Document this.
521 2005-02-22 DJ Delorie <dj@redhat.com>
523 * c-common.c (c_common_type_for_mode): Pass the mode's precision
524 to make_[un]signed_type, not the mode itself.
526 2005-02-22 Kazu Hirata <kazu@cs.umass.edu>
528 * cfg.c (cached_make_edge): Call make_edge if edge cache is
529 not available. Use tail calls wherever possible.
530 (make_edge): Call unchecked_make_edge to create an edge.
532 * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
533 (coalesce_ssa_name): Don't check for
534 SSANORM_USE_COALESCE_LIST.
535 (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
537 2005-02-22 Diego Novillo <dnovillo@redhat.com>
539 * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
540 (rewrite_into_ssa): ... here.
542 2005-02-21 Alexandre Oliva <aoliva@redhat.com>
544 PR tree-optimization/19786
545 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
546 tag to another's may-alias bitmap when adding to the other's list.
548 2005-02-21 DJ Delorie <dj@redhat.com>
550 * tree-ssa-loop-ivopts.c (computation_cost): Start register
551 numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
552 registers in unsupported ways.
553 * expmed.c (init_expmed): Likewise.
555 2005-02-21 Stan Cox <scox@redhat.com>
557 * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
559 2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
561 * tree-cfg.c (fold_cond_expr_cond): New.
562 (make_edges): Call fold_cond_expr_cond.
563 (find_taken_edge): Accept nothing but INTEGER_CST.
564 (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
566 (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
568 * flow.c (delete_dead_jumptables): Speed up by scanning insns
569 that do not belong to any basic block.
571 2005-02-21 Jeff Law <law@redhat.com>
573 * cfganal.c (find_unreachable_blocks): Manually CSE load of
576 2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
578 * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
579 (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
580 Adjust their definitions.
581 (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
582 (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
584 * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
585 genautomata.c, langhooks.c, langhooks.h, system.h,
586 config/arm/lib1funcs.asm: Update copyright.
588 2005-02-21 Ulrich Weigand <uweigand@de.ibm.com>
590 * dbxout.c (dbxout_function_end): Emit Lscope label always.
592 2005-02-21 Richard Guenther <rguenth@gcc.gnu.org>
595 * doc/install.texi: Document --with-gc.
597 2005-02-21 Paolo Bonzini <bonzini@gnu.org>
599 * simplify-rtx.c (simplify_unary_operation): Add a missing
602 2005-02-21 Eric Botcazou <ebotcazou@libertysurf.fr>
604 PR tree-optimization/18663
605 * tree-ssa-dom.c (extract_range_from_cond): Return 0
606 if the type has variable bounds.
608 2005-02-20 Kazu Hirata <kazu@cs.umass.edu>
610 * gcse.c: Remove an obsolete comment.
612 * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
614 2005-02-20 Hans-Peter Nilsson <hp@axis.com>
616 * doc/extend.texi (Function Attributes) <Attribute const>: The
617 attribute "pure" is below this text, not above.
619 2005-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
621 * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
622 (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
623 * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
625 2005-02-20 Zack Weinberg <zack@codesourcery.com>
628 * langhooks.h (struct lang_hooks): Add to_target_charset.
629 * langhooks.c (lhd_to_target_charset): New function.
630 * langhooks-def.h: Declare lhd_to_target_charset.
631 (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
632 (LANG_HOOKS_INITIALIZER): Update.
633 * c-common.c (c_common_to_target_charset): New function.
634 * c-common.h: Declare it.
635 * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
636 c_common_to_target_charset.
638 * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
639 (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
641 * system.h: Poison them.
642 * doc/tm.texi: Don't discuss them.
643 * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
644 * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
645 (pp_c_char): Do not attempt to generate letter escapes for
647 * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
648 * config/mips/mips.c (mips_output_ascii): Likewise.
650 2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
652 PR tree-optimization/19951
653 * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
656 2005-02-19 Steven Bosscher <stevenb@suse.de>
659 * function.h (struct function): New field `max_loop_depth'.
660 * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
661 (flow_loops_find): Reset the max loop depth count before finding loops.
662 * flow.c (MAX_LIVENESS_ROUNDS): New constant.
663 (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
664 (calculate_global_regs_live): Make sure the loop will terminate
665 when the initial sets are not empty.
667 2005-02-19 Zack Weinberg <zack@codesourcery.com>
669 * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
671 * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
673 2005-02-19 Richard Sandiford <rsandifo@redhat.com>
676 * doc/invoke.texi: Remove documentation of %M spec.
678 (init_spec): Remove %M suffix from -lgcc_s.
679 (do_spec_1): Remove 'M' case.
680 * mklibgcc.in: Remove SHLIB_MULTILIB handling. Expect SHLIB_LINK
681 to put shared libraries in the multilib directory. Remove the
682 shlib_so_soname substitution variable. Don't add a multilib encoding
683 to shlib_base_name. Set shlib_slibdir_qual to the full pathname
684 reported by -print-multi-os-directory. Pass @multilib_dir@ to
685 SHLIB_INSTALL as well as SHLIB_LINK.
686 * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
687 (SHLIB_NAME): Delete.
688 (SHLIB_DIR): New macro.
689 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
690 (SHLIB_INSTALL): Adjust accordingly.
691 * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
692 * config/t-slibgcc-sld: Likewise.
693 * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
694 (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
695 (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
697 (SHLIBUNWIND_INSTALL): Adjust accordingly.
698 * config/i386/t-nwld (SHLIB_SONAME): Delete.
699 (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
700 Use @shlib_base_name@ instead of @shlib_so_name@.
701 * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
702 and @shlib_base_name@.so in @multilib_dir@.
703 (SHLIB_INSTALL): Adjust accordingly. Add @shlib_slibdir_qual@
705 * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
706 (SHLIB_LINK): Remove previous workaround.
707 * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
708 (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
709 (SHLIB_INSTALL): Adjust accordingly. Add $(SHLIB_SLIBDIR_QUAL) to
711 * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
712 @multilib_dir@. Use @multilib_dir@ to check for threading libraries.
713 (SHLIB_INSTALL): Adjust accordingly.
714 (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
715 * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
716 * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
717 config/t-slibgcc-elf-ver.
719 2005-02-19 Zdenek Dvorak <dvorakz@suse.cz>
720 Jakub Jelinek <jakub@redhat.com>
722 PR tree-optimization/19828
723 * tree-ssa-loop-im.c: Add a TODO comment.
724 (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
725 without side-effects.
727 2005-02-18 James A. Morrison <phython@gcc.gnu.org>
729 * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
732 2005-02-18 James E. Wilson <wilson@specifixinc.com>
734 * doc/invoke.texi (IA-64 Options): Delete -mb-step.
735 * config/ia64/ia64.c (last_group, group_idx): Delete variables.
736 (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
738 (ia64_reorg): Delete fixup_errata call.
739 * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
740 (TARGET_SWITCHES): Delete -mb-step entry.
742 2005-02-19 Jakub Jelinek <jakub@redhat.com>
745 * c-typeck.c (composite_type): Handle quals in transparent unions.
746 (type_lists_compatible_p): Likewise.
748 2005-02-18 Stan Shebs <shebs@apple.com>
750 * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
751 expressions in the .literal8 section.
753 2005-02-18 Geoffrey Keating <geoffk@apple.com>
755 * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
757 2005-02-18 Roger Sayle <roger@eyesopen.com>
759 * fold-const.c (constant_boolean_node): Always create values of the
760 specified type, don't bother calling truthvalue_conversion.
762 2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
764 * except.c (output_function_exception_table): Call
765 assemble_external_libcall (eh_personality_libfunc).
767 2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
770 * config/ia64/ia64.h (struct machine_function): Add state_num.
771 * config/ia64/ia64.c (process_epilogue,
772 process_for_unwind_directive): Use new unwind state numbers each
773 time rather than state 1.
775 2005-02-18 Ulrich Weigand <uweigand@de.ibm.com>
778 * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
779 before the "*llgt_didi" pattern.
781 2005-02-18 Jason Merrill <jason@redhat.com>
783 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
785 2005-02-18 Richard Earnshaw <rearnsha@arm.com>
787 * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
788 (div0): Use it in place of ARM_FUNC_ALIAS.
789 (lshrdi3, ashrdi3, ashlrdi3): Likewise.
791 2005-02-18 Andrew Pinski <pinskia@physics.uc.edu>
794 * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
795 access, the lower bound of the array type if it exists.
797 2005-02-18 Alexandre Oliva <aoliva@redhat.com>
800 * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
801 cases that are out-of-range for the index type.
803 2005-02-18 James A. Morrison <phython@gcc.gnu.org>
805 * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
806 (estimate_case_costs): Don't call convert.
807 * expmed.c (expand_shift): Likewise.
808 (make_tree): Call fold_convert instead of convert.
810 2005-02-18 Jakub Jelinek <jakub@redhat.com>
813 * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
814 that ref to be marked MEM_READONLY_P doesn't have base that needs
817 2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
819 * genautomata.c (output_get_cpu_unit_code_func,
820 output_cpu_unit_reservation_p): Don't generate old-style function
823 2005-02-18 Jakub Jelinek <jakub@redhat.com>
826 PR tree-optimization/20009
827 * convert.c (convert_to_integer): Revert 2005-02-16 change.
829 PR tree-optimization/18947
830 * cgraphunit.c (cgraph_finalize_function): When redefining an extern
831 inline, remove all nodes that are inlined into the extern inline
834 2005-02-17 Kazu Hirata <kazu@cs.umass.edu>
836 * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
837 loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
838 tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
839 config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
842 2005-02-17 Roger Sayle <roger@eyesopen.com>
844 PR tree-optimization/19917
845 * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
846 to be potentially trapping.
848 2005-02-17 Kazu Hirata <kazu@cs.umass.edu>
850 * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
852 2005-02-17 Andreas Krebbel <krebbel1@de.ibm.com>
854 * builtins.c (expand_builtin_return_addr): Remove tem parameter.
855 tem becomes a local variable which is set to the value of the
856 back end defined INITIAL_FRAME_ADDRESS macro.
857 (expand_builtin_frame_address): Omit the base parameter to
858 expand_builtin_return_addr.
859 (expand_builtin_profile_func): Likewise.
860 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
861 (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
862 * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
864 2005-02-17 Jakub Jelinek <jakub@redhat.com>
866 * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
867 s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
868 * config/frv/frv.c (frv_function_epilogue): Likewise.
870 2005-02-17 Daniel Berlin <dberlin@dberlin.org>
872 * lambda-code (perfect_nestify): Remove mark/unmark
874 * tree-loop-linear.c (linear_transform_loops): Add
875 rewrite_into_ssa call so that ssa is correct for
876 rewriting into loop closed.
878 2005-02-17 Nathan Sidwell <nathan@codesourcery.com>
880 * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
881 * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
883 * bt-load.c (btr_def_live_range, combine_btr_defs,
884 migrate_btr_def, migrate_btr_defs): Likewise.
885 * cfgcleanup.c (thread_jump): Likewise.
886 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
887 * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
888 df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
889 df_rd_local_compute, df_reg_info_compute): Likewise.
890 * dominance.c (init_dom_info, free_dom_info): Likewise.
891 * flow.c (init_propagate_block_info,
892 free_propagate_block_info): Likewise.
893 * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
894 * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
895 modify_reg_pav): Likewise.
896 * loop-invariant.c (find_defs, find_invariant_insn,
897 find_invariants, free_inv_motion_data): Likewise.
898 * predict.c (tree_predict_by_opcode,
899 estimate_bb_frequencies): Likewise.
900 * stmt.c (expand_case): Likewise.
901 * tree-cfg.c (tree_duplicate_sese_region): Likewise.
902 * tree-dfa.c (mark_new_vars_to_rename): Likewise.
903 * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
904 * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
905 get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
906 rewrite_ssa_into_ssa): Likewise.
907 * tree-optimize.c (tree_rest_of_compilation): Likewise.
908 * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
909 analyze_edges_for_bb, perform_edge_inserts): Likewise.
910 * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
911 * tree-sra.c (tree_sra): Likewise.
912 * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
913 * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
914 * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
915 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
916 * tree-ssa-dse.c (tree_ssa_dse): Likewise.
917 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
919 * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
920 calculate_live_on_entry, calculate_live_on_exit,
921 build_tree_conflict_graph): Likewise.
922 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
923 record_important_candidates, set_use_iv_cost, find_depends,
924 determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
925 tree_ssa_iv_optimize_finalize): Likewise.
926 * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
927 find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
928 tree_duplicate_loop_to_header_edge): Likewise.
929 * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
930 * tree-ssa.c (verify_flow_insensitive_alias_info,
931 verify_name_tags, verify_ssa, init_tree_ssa,
932 delete_tree_ssa): Likewise.
933 * tree-ssanames.c (marked_ssa_names, init_ssanames,
934 fini_ssanames): Likewise.
935 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
937 2005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>
939 * config/rs6000/t-rtems: Completely reworked.
941 2005-02-17 Ira Rosen <irar@il.ibm.com>
943 * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
945 2005-02-17 Ira Rosen <irar@il.ibm.com>
947 * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
948 POINTER_TYPE_P when checking that type is a pointer.
949 (vect_get_memtag): Remove.
950 (vect_address_analysis): Use POINTER_TYPE_P. Call
951 vect_object_analysis with dummy parameter for memtag.
952 (vect_object_analysis): Extract memtag (functionality that
953 used to be in vect_get_memtag and moved here). Fix printings.
954 (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
955 with correct parameters. Remove call to vect_get_memtag.
957 2005-02-17 Dorit Naishlos <dorit@il.ibm.com>
959 * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
960 (tree-vectorizer.o): Added missing dependencies.
962 * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
964 (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
965 declaration in tree-vectorizer.c, now has an extern declaration in
967 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
968 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
969 get_vectype_for_scalar_type, vect_is_simple_use,
970 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
971 vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
972 new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
973 vectorizable_store, vectorizable_operation, vectorizable_assignment,
974 vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
975 find_loop_location): Likewise.
977 * tree-vectorizer.c (langhooks.h): #include removed.
978 (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
979 moved to tree-vectorized.h.
980 (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
981 slpeel_verify_cfg_after_peeling, vect_strip_conversion,
982 get_vectype_for_scalar_type, vect_is_simple_use,
983 vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
984 vect_supportable_dr_alignment, new_loop_vec_info,
985 destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
986 vect_set_verbosity_level, find_loop_location): Likewise.
988 (vect_analyze_loop): Function externalized. Declaration moved to
989 tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
990 (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
991 (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
992 vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
993 vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
994 vect_enhance_data_refs_alignment, vect_analyze_operations,
995 exist_non_indexing_operands_for_use_p, vect_mark_relevant,
996 vect_stmt_relevant_p, vect_get_loop_niters,
997 vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
998 vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
999 vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
1000 vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
1001 vect_get_memtag): Likewise.
1003 (vectorizable_load): Function externalized. Declaration moved to
1004 tree-vectorized.h. Function definition moved to tree-vect-transform.c.
1005 (vectorizable_store, vectorizable_operation, vectorizable_assignment,
1006 vect_transform_loop): Likewise.
1007 (vect_transform_stmt): Moved to tree-vect-transform.c.
1008 (vect_align_data_ref, vect_create_destination_var,
1009 vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
1010 vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
1011 vect_get_vec_def_for_operand, vect_init_vector,
1012 vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
1013 vect_build_loop_niters, vect_update_ivs_after_vectorizer,
1014 vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
1015 vect_update_inits_of_drs, vect_do_peeling_for_alignment,
1016 vect_do_peeling_for_loop_bound): Likewise.
1018 * tree-vect-analyze.c: New file.
1019 * tree-vect-transform.c: New file.
1021 2005-02-17 Jason Merrill <jason@redhat.com>
1023 PR mudflap/19319, c++/19317
1024 * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
1027 2005-02-17 Gerald Pfeifer <gerald@pfeifer.com>
1029 * doc/install.texi (Specific): Update link for Darwin-specific
1032 2005-02-16 James A. Morrison <phython@gcc.gnu.org>
1034 * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
1035 constant_boolean_node.
1037 2005-02-16 David Edelsohn <edelsohn@gnu.org>
1040 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
1041 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
1043 2005-02-16 Richard Henderson <rth@redhat.com>
1046 * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
1048 (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
1049 replace uses with Wtype_MAXp1_F.
1050 (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
1051 L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
1052 L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
1053 L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
1054 and HAVE_TFMODE as appropriate.
1055 (__fixunssfDI): Provide an implementation that doesn't need DFmode.
1056 (__floatdisf): Likewise.
1057 * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
1058 (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
1059 (Wtype_MAXp1_F): New.
1060 (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
1061 __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
1063 2005-02-16 Richard Earnshaw <rearnsha@arm.com>
1066 * arm.c (arm_apply_result_size): New function.
1067 * arm.h (APPLY_RESULT_SIZE): Define.
1068 * arm-protos.h (arm_apply_result_size): Add prototype.
1069 * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
1070 (movxf): New expand.
1071 (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
1072 (call_value_symbol): Remove predicate for operand 0.
1073 (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
1074 (untyped_call): Rework to correclty return values for any type.
1075 (untyped_return): New expand.
1076 * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
1078 2005-02-16 Stan Shebs <shebs@apple.com>
1080 * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
1081 * config/rs6000/t-darwin8: New, for 64-bit multilib.
1083 2005-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1085 * doc/install.texi (sparc-sun-solaris2*): Document required GMP
1086 configure settings on Solaris 7 and later.
1088 2005-02-16 Diego Novillo <dnovillo@redhat.com>
1090 PR tree-optimization/19865
1091 * tree-optimize.c (init_tree_optimization_passes): Run
1092 pass_may_alias after pass_sra.
1094 2005-02-16 Richard Henderson <rth@redhat.com>
1095 Stuart Hastings <stuart@apple.com>
1098 * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
1099 Do nothing if debug info suppressed for this function.
1100 (dbxout_begin_function): Early exit if debug info suppressed for
1103 2005-02-16 Kazu Hirata <kazu@cs.umass.edu>
1106 * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
1108 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1110 PR tree-optimization/19967
1111 * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
1112 expand_builtin_strchr, expand_builtin_strrchr): Take a new
1113 argument TYPE. Adjust calls to fold_builtin_XXX.
1114 (expand_builtin, fold_builtin_1): Adjust calls to
1116 (fold_builtin_strchr, fold_builtin_strpbrk,
1117 fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
1118 result to a requested type TYPE.
1120 2005-02-16 Jakub Jelinek <jakub@redhat.com>
1123 * fold-const.c (fold): Don't optimize (T)(x & cst) to
1124 (T)x & (T)cst if (T)cst overflows.
1125 * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
1126 TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
1128 2005-02-15 Jeff Law <law@redhat.com>
1130 * gcse.c (blocks_with_calls): New bitmap.
1131 (alloc_gcse_mem): Allocate it.
1132 (free_gcse_mem): Free it.
1133 (clear_modifY_mem_tables): Clear it.
1134 (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
1135 when we encounter CALL_INSNs.
1136 (compute_transp, case MEM): Handle blocks with calls separate
1137 from blocks without calls. Use bitmap iterators rather than
1140 2005-02-15 Peter O'Gorman <peter@pogma.com>
1143 * mklibgcc.in (vis_hide): Use a temporary object file, not
1146 2005-02-15 Andy Hutchinson <HutchinsonAndy@netscape.net>
1149 * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
1150 access optimization.
1152 2005-02-15 David Edelsohn <edelsohn@gnu.org>
1153 Alan Modra <amodra@bigpond.net.au>
1156 * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
1157 (_xlqsub): Rename to __gcc_qsub.
1158 (_xlqmul): Rename to __gcc_qmul.
1159 (_xlqdiv): Rename to __gcc_qdiv.
1160 Provide versioned symbol aliases with old names.
1161 * config/rs6000/libgcc-ppc64.ver: Rename symbols.
1162 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
1163 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
1164 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
1165 * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
1167 2005-02-15 James A. Morrison <phython@gcc.gnu.org>
1169 * fold-const.c (fold): Fold -(~A) to A + 1. Fold ~(-A) to A - 1.
1170 Fold ~(A - 1) and ~(A + -1) to -A.
1172 2005-02-15 James A. Morrison <phython@gcc.gnu.org>
1176 * config/host-linux.c (linux_gt_pch_use_address): Copy from
1177 config/pa/pa-host.c:pa_gt_pch_use_address.
1179 2005-02-15 Daniel Berlin <dberlin@dberlin.org>
1181 * tree-vn.c (get_value_handle): Make sure that given an
1182 is_gimple_min_invariant expression, we always return it.
1184 2005-02-15 Kazu Hirata <kazu@cs.umass.edu>
1186 * passes.c (rest_of_handle_gcse): Fix a comment.
1188 2005-02-15 Jeff Law <law@redhat.com>
1190 * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
1192 (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
1193 (canon_list_insert, record_last_mem_set_info): Similarly.
1194 (clear_modify_mem_tables): Similarly.
1196 2005-02-15 Kazu Hirata <kazu@cs.umass.edu>
1198 * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
1199 tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
1200 config/mips/mips.md, config/rs6000/aix.h,
1201 config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
1203 2005-02-15 Richard Henderson <rth@redhat.com>
1205 * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
1206 call to be best_edge.
1208 2005-02-14 Kazu Hirata <kazu@cs.umass.edu>
1210 * basic-block.h: Adjust the prototype for find_basic_blocks.
1211 * cfgbuild.c (find_basic_blocks): Remove unused arguments.
1212 * passes.c (rest_of_handle_loop_optimize): Adjust the call to
1215 * flow.c (recompute_reg_usage): Remove all arguments.
1216 * passes.c (rest_of_compilation): Adjust the call to
1217 recompute_reg_usage.
1218 * rtl.h: Adjust the prototype for recompute_reg_usage.
1220 2005-02-14 Daniel Berlin <dberlin@dberlin.org>
1222 * tree-dump.c (dump_files): Update to reflect new member
1224 (dump_register): Add new argument.
1226 (dump_switch_p_1): Check against glob name if doglob was passed.
1227 (dump_switch_p): Check against regular first, then glob if
1228 we didn't have any hits on the dump name.
1229 * tree-optimize.c (register_one_dump_file):
1230 Pass in glob name as well.
1231 * tree-pass.h (struct dump_file_info): Add glob
1234 2005-02-14 Joseph S. Myers <joseph@codesourcery.com>
1236 PR preprocessor/16323
1237 * doc/invoke.texi: Document that -Wendif-labels is on by default.
1239 2005-02-14 David Edelsohn <edelsohn@gnu.org>
1242 * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
1243 (trunctfdf2_internal1): New.
1244 (trunctfdf2_internal2): Renamed from trunctfdf2.
1246 2005-02-14 Diego Novillo <dnovillo@redhat.com>
1248 PR tree-optimization/19853
1249 * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
1251 2005-02-14 Kazu Hirata <kazu@cs.umass.edu>
1253 * passes.c (rest_of_handle_loop_optimize): Remove calls to
1254 delete_dead_jumptables and cleanup_cfg.
1256 2005-02-14 Ulrich Weigand <uweigand@de.ibm.com>
1258 * reload.c (find_reloads): Swap address_reloaded flags when
1259 swapping commutative operands.
1261 2005-02-14 Sebastian Pop <pop@cri.ensmp.fr>
1263 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
1264 Use standard_iv_increment_position for computing the bsi position
1266 * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
1269 2005-02-13 Zdenek Dvorak <dvorakz@suse.cz>
1272 * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
1273 life range of hard registers.
1274 * value-prof.c (insn_prefetch_values_to_profile): Only
1277 * value-prof.c (rtl_find_values_to_profile): Do not look for values to
1278 profile in libcalls.
1280 2005-02-13 Nathan Sidwell <nathan@codesourcery.com>
1282 * bitmap.h (bitmap_and_compl_into): Return bool.
1283 * bitmap.c (bitmap_and_compl_into): Return changed flag.
1285 2005-02-13 James A. Morrison <phython@gcc.gnu.org>
1287 PR tree-optimization/19944
1288 * fold-const.c (fold): Re-add ABS_EXPR folding.
1290 2005-02-13 David Edelsohn <edelsohn@gnu.org>
1293 * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
1294 {TARGET,MASK}_XL_COMPAT.
1295 (SUBTARGET_SWITCHES): Rename xl-call to xl-compat. Use
1297 * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
1298 * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
1300 (rs6000_arg_partial_bytes): Same.
1301 (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
1302 and XL compatibility enabled.
1303 * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
1304 * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
1305 test to final condition.
1306 (cmptf_internal2): New.
1307 * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
1308 xl-compat. Add TFmode information to description.
1310 2005-02-13 Kazu Hirata <kazu@cs.umass.edu>
1312 * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
1314 2005-02-13 Jason Merrill <jason@redhat.com>
1317 * fold-const.c (fold_indirect_ref_1): Split out from...
1318 (build_fold_indirect_ref): Here.
1319 (fold_indirect_ref): New fn.
1320 * tree.h: Declare it.
1321 * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
1322 (gimplify_modify_expr_rhs): Likewise.
1323 (gimplify_expr): Likewise.
1325 2005-02-13 James A. Morrison <phython@gcc.gnu.org>
1327 PR tree-optimization/14303
1328 PR tree-optimization/15784
1329 * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
1330 Fold ABS_EXPR<x> < 0 to false. Fold ABS_EXPR<x> == 0 to x == 0 and
1331 ABS_EXPR<x> != 0 to x != 0.
1333 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
1335 * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
1336 simplify-rtx.c, tree-ssa-live.h: Fix comment typos. Follow
1337 spelling conventions.
1339 * passes.c (rest_of_handle_gcse): Don't run cse_main and
1340 delete_trivially_dead_insns too many times.
1342 * passes.c (rest_of_handle_gcse): Remove dead assignments to
1345 2005-02-12 Ira Rosen <irar@il.ibm.com>
1347 * tree-vectorizer.c (vect_get_base_and_offset): Remove.
1348 (vect_is_simple_iv_evolution): Remove redundant parameter
1350 (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
1351 without last parameter.
1352 (vect_analyze_pointer_ref_access): Get access_fn as parameter.
1353 Return pointer step. Call vect_is_simple_iv_evolution without
1354 last parameter. Check only that the step is multiple of size
1355 type. Remove stmt_vinfo updates.
1356 (vect_get_memtag_and_dr): Remove.
1357 (vect_get_memtag): New function.
1358 (vect_address_analysis): New function.
1359 (vect_object_analysis): New function.
1360 (vect_analyze_data_refs): Call vect_object_analysis and
1361 vect_get_memtag. Update stmt_vinfo fields.
1363 2005-02-12 Ira Rosen <irar@il.ibm.com>
1365 * tree-data-ref.c (array_base_name_differ_p): Check that the bases
1366 exist and are objects. Remove checks for pointer.
1367 * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
1368 STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
1369 (vect_create_data_ref_ptr): Likewise.
1370 (vect_base_addr_differ_p): New function.
1371 (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
1372 (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
1373 Don't set the DR_BASE_NAME field of data-ref.
1374 (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
1376 2005-02-12 Uros Bizjak <uros@kss-loka.si>
1378 * optabs.h (enum optab_index): Add new OTI_ldexp.
1379 (ldexp_optab): Define corresponding macro.
1380 * optabs.c (init_optabs): Initialize ldexp_optab.
1381 * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
1383 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
1385 (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
1386 expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
1388 * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
1389 to implement ldexpf, ldexp and ldexpl built-ins as inline x87
1392 2005-02-12 Ira Rosen <irar@il.ibm.com>
1394 * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
1396 * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
1398 (vect_get_base_and_offset): Always return an address.
1399 (vect_create_addr_base_for_vector_ref): Remove treatment for
1400 different data reference types.
1401 (vect_compute_data_ref_alignment): Rename base to base_address in
1402 stmt_vec_info. Get the object in order to force its alignment.
1403 (vect_get_memtag_and_dr): Rename base to base_address in
1404 stmt_vec_info. Extract the object for memtag analysis.
1406 2005-02-12 Hans-Peter Nilsson <hp@axis.com>
1408 PR regression/19898.
1409 * config/cris/cris.c (cris_notice_update_cc): When testing if insn
1410 changes cc_status, use apply modified_in_p to part of cc_status
1411 and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
1414 2005-02-11 Richard Henderson <rth@redhat.com>
1416 * tree-complex.c (expand_complex_libcall): New.
1417 (expand_complex_multiplication): Use it for c99 compliance.
1418 (expand_complex_division): Likewise.
1419 * fold-const.c (fold_complex_add, fold_complex_mult): New.
1421 * builtins.c (built_in_names): Remove const.
1422 * tree.c (build_common_builtin_nodes): Build complex arithmetic
1424 * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
1425 (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
1426 (built_in_names): Remove const.
1427 * c-common.c (c_common_type_for_mode): Handle complex modes.
1428 * flags.h, toplev.c (flag_complex_method): Rename from
1429 flag_complex_divide_method.
1430 * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
1431 __mulsc3, __muldc3, __mulxc3, __multc3): New.
1432 * libgcc2.h: Declare them.
1433 * libgcc-std.ver: Export them.
1434 * mklibgcc.in (lib2funcs): Build them.
1436 2005-02-11 Steven Bosscher <stevenb@suse.de>
1438 PR tree-optimization/19876
1439 Partially revert my change from 2005-01-14
1440 * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
1441 (compute_antic): ...and remove the loop here.
1443 2005-02-11 Jakub Jelinek <jakub@redhat.com>
1446 * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
1447 is number of inner's bits, avoid creating a BIT_FIELD_REF.
1449 * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
1450 crtend.o if -pie. Use %{x:a;:b} spec syntax.
1452 2005-02-11 Daniel Jacobowitz <dan@codesourcery.com>
1454 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1455 offsets for the big-endian 32-bit case.
1457 2005-02-11 Joseph S. Myers <joseph@codesourcery.com>
1459 * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1461 2005-02-11 Dale Johannesen <dalej@apple.com>
1463 * cselib.c (cselib_process_insn): Clear out regs where
1464 HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
1465 * reload.c (find_equiv_reg): Ditto.
1467 2005-02-11 Ian Lance Taylor <ian@airs.com>
1469 * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
1472 * tree.c (build_function_type_list): Work correctly if there are
1475 2005-02-11 Ulrich Weigand <uweigand@de.ibm.com>
1477 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
1478 "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
1479 ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
1480 TARGET_ZARCH instead of TARGET_64BIT.
1482 2005-02-11 Ralf Corsepius <ralf.corsepius@rtems.org>
1484 * config/rs6000/t-rtems:
1485 (MULTILIB_OPTIONS): Remove mcpu=602.
1486 (MUTLILIB_DIRNAMES): Remove m602.
1487 (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
1488 Let mcpu=602 match mcpu=603.
1489 (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
1491 2005-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1493 * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
1496 2005-02-10 David Daney <ddaney@avtrex.com>
1498 * config/alpha/linux-unwind.h: Add exception clause to copyright.
1499 * config/i386/linux-unwind.h: Likewise.
1500 * config/ia64/linux-unwind.h: Likewise.
1501 * config/mips/linux-unwind.h: Likewise.
1502 * config/pa/linux-unwind.h: Likewise.
1503 * config/rs6000/linux-unwind.h: Likewise.
1504 * config/s390/linux-unwind.h: Likewise.
1505 * config/sh/linux-unwind.h: Likewise.
1506 * config/sparc/linux-unwind.h: Likewise.
1508 2005-02-10 Steven Bosscher <stevenb@suse.de>
1510 PR tree-optimization/17549
1511 * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
1512 TER to replace a DEF with its expression if the DEF and the
1513 rhs of the expression we replace into have the same root
1516 2005-02-10 Richard Sandiford <rsandifo@redhat.com>
1518 * config/mips/mips.md: Fix the placement of the match_scratch in the
1521 2005-02-10 Kazu Hirata <kazu@cs.umass.edu>
1523 * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
1526 2005-02-10 Zdenek Dvorak <dvorakz@suse.cz>
1528 * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
1529 (strip_offset): Handle addresses.
1530 (add_address_candidates): Use strip_offset.
1531 (difference_cost): Reflect strip_offset change.
1532 (force_var_cost, difference_cost): Strip nops.
1534 2005-02-10 Kazu Hirata <kazu@cs.umass.edu>
1536 * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
1538 * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
1539 tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
1540 config/cris/cris-protos.h, config/cris/cris.c: Update
1543 2005-02-10 Jeff Law <law@redhat.com>
1545 * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
1546 (lookup_avail_expr): Similarly.
1548 2005-02-10 Richard Guenther <rguenth@gcc.gnu.org>
1550 * builtins.c (fold_builtin_powi): New function.
1551 (fold_builtin_1): Call it.
1553 2005-02-10 Steven Bosscher <stevenb@suse.de>
1555 PR documentation/19309
1556 * doc/cpp.texi: The __GNUC__ and related predefined macros
1557 are also defined for the "standalone" cpp.
1558 Some non-GCC compilers may also define __GNUC__.
1560 2005-02-10 Jakub Jelinek <jakub@redhat.com>
1563 * c-typeck.c (common_type): New routine. Old common_type renamed
1565 (c_common_type): ...this.
1566 (build_conditional_expr, build_binary_op): Use c_common_type instead
1569 2005-02-10 Steven Bosscher <stevenb@suse.de>
1571 * doc/md.texi: Replace @samp{length} with @code{length}.
1573 2005-02-09 Zdenek Dvorak <dvorakz@suse.cz>
1575 PR tree-optimization/18687
1576 * tree-flow.h (find_loop_niter): Declare.
1577 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
1578 Try using scev even for loops with more than one exit.
1579 * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
1580 (struct ivopts_data): Added niters field.
1581 (struct nfe_cache_elt): New.
1582 (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
1584 (tree_ssa_iv_optimize_init): Initialize niters cache.
1585 (determine_number_of_iterations): Removed.
1586 (find_induction_variables): Do not call determine_number_of_iterations.
1587 Access niters for single exit through niter_for_single_dom_exit.
1588 (add_iv_outer_candidates): Access niters for single exit through
1589 niter_for_single_dom_exit.
1590 (may_eliminate_iv): Take data argument. Use niter_for_exit. Do not use
1591 number_of_iterations_cond.
1592 (iv_period): New function.
1593 (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
1594 (may_replace_final_value): Take data argument. Use
1595 niter_for_single_dom_exit.
1596 (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
1597 (rewrite_use_compare): Pass data to may_eliminate_iv.
1598 (rewrite_use_outer): Pass data to may_replace_final_value.
1599 (free_loop_data): Clean up the niters cache.
1600 (tree_ssa_iv_optimize_finalize): Free the niters cache.
1601 (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
1602 * tree-ssa-loop-niter.c (find_loop_niter): New function.
1603 (find_loop_niter_by_eval): Use tree_int_cst_lt.
1604 (num_ending_zeros): Moved to tree.c.
1605 * tree.h (num_ending_zeros): Declare.
1606 * tree.c (num_ending_zeros): Moved from tree.c.
1608 2005-02-09 Richard Henderson <rth@redhat.com>
1610 * builtins.c (DEF_BUILTIN): Add COND argument.
1611 * tree.h (DEF_BUILTIN): Likewise.
1612 * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
1613 DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
1615 (DEF_BUILTIN_STUB): New.
1616 (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
1617 BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
1618 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
1619 * c-common.c (DEF_BUILTIN): Add COND argument.
1620 * tree.c (local_define_builtin): New.
1621 (build_common_builtin_nodes): New.
1623 2005-02-09 Roger Sayle <roger@eyesopen.com>
1625 * fold-const.c (fold_strip_sign_ops): New function to simplify a
1626 floating point expression ignoring the sign of the result.
1627 (fold) <ABS_EXPR>: Use it to simplify fabs(x).
1628 (fold) <MULT_EXPR>: Use it to simplify x*x.
1629 * tree.h (fold_strip_sign_ops): Prototype here.
1630 * builtins.c (fold_builtin_copysign): Take an additional FNDECL
1631 argument. Use fold_strip_sign_ops to simplify the first argument.
1632 (fold_builtin_pow): Use fold_strip_sign_ops to simplify the
1633 first argument when the second argument is an even integer
1634 constant, but only with -funsafe_math_optimizations.
1635 (fold_builtin_1): Update call to fold_builtin_copysign.
1637 2005-02-09 Ian Lance Taylor <ian@airs.com>
1640 * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
1641 just check whether EH_FILTER_FAILURE falls through.
1643 2005-02-09 Andreas Krebbel <krebbel1@de.ibm.com>
1645 * gcc/haifa-sched.c (schedule_block): Make queued sched group
1646 insns return to ready list in the next turn.
1648 2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
1651 * builtins.def: New __builtin_powi[lf].
1652 * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
1653 (expand_builtin_powi): New function.
1654 (expand_builtin): Dispatch to expand_builtin_powi.
1655 * libgcc2.h: Add prototypes for __builtin_powi[lf].
1656 * libgcc2.c: Add __builtin_powi[lf] implementation.
1657 * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
1658 * optabs.h: Add powi_optab.
1659 * optabs.c (init_optabs): Initialize powi_optab.
1660 * doc/extend.texi: Document __builtin_powi[lf].
1662 2005-02-09 Dorit Naishlos <dorit@il.ibm.com>
1664 * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
1667 2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
1670 * fold-const.c (try_move_mult_to_index): Remove redundant
1671 type argument. Create ADDR_EXPR with correct type.
1672 (fold): Update callers of try_move_mult_to_index. Convert
1673 result to the appropriate type.
1675 2005-02-09 Roger Sayle <roger@eyesopen.com>
1678 * config/avr/avr.c (default_rtx_costs): Delete.
1679 (avr_operand_rtx_cost): New function.
1680 (avr_rtx_costs): Completely rewrite.
1682 2005-02-08 Hans-Peter Nilsson <hp@axis.com>
1685 * config/cris/cris.c (in_code): New variable.
1686 (cris_output_addr_const): Now a static function, a wrapper for
1688 (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
1689 case from old cris_output_addr_const.
1690 (cris_asm_output_label_ref): Similar for LABEL_REF.
1691 (cris_output_addr_const_extra): Similar for UNSPEC.
1692 * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
1693 (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
1694 * config/cris/cris-protos.h (cris_output_addr_const): Remove
1696 (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
1697 (cris_asm_output_label_ref): Declare.
1699 2005-02-08 Paolo Bonzini <bonzini@gnu.org>
1701 PR preprocessor/19801
1702 * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
1703 filenames that changed when libcpp was moved to the toplevel.
1705 2005-02-07 Roger Sayle <roger@eyesopen.com>
1707 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1708 zero extensions of BImode operands. Call lowpart_subreg instead
1709 of gen_lowpart_common and gen_lowpart_SUBREG.
1711 2005-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
1714 * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
1715 * configure.ac: Set cc_for_cross_gnattools.
1716 * configure: Regenerate.
1718 2005-02-08 Alan Modra <amodra@bigpond.net.au>
1721 * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
1723 2005-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
1726 * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
1727 of nested functions.
1729 2005-02-07 Jonathan Wakely <redi@gcc.gnu.org>
1731 * doc/extend.texi: Document deprecated extensions allowing
1732 static floating-point members to have initializers and allowing
1733 floating-point literals in integral constant expressions.
1735 2005-02-07 Kazu Hirata <kazu@cs.umass.edu>
1737 * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
1738 config/darwin7.h, config/mips/mips.c,
1739 config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
1742 * cse.c: Update comments.
1744 2005-02-07 Richard Guenther <rguenth@gcc.gnu.org>
1747 * builtins.c (fold_builtin_sqrt): Transform
1748 sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
1751 2005-02-07 Leehod Baruch <leehod@il.ibm.com>
1752 Dorit Naishlos <dorit@il.ibm.com>
1754 * doc/invoke.texi (ftree-vectorizer-verbose): New.
1755 * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
1756 * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
1758 * tree.h (vect_set_verbosity_level): New extern function declaration
1760 * tree-vectorizer.h (verbosity_levels): New enum type.
1761 * tree-vectorizer.c (vect_debug_stats): Function removed.
1762 (vect_debug_details): Likewise.
1763 (vect_verbosity_level): Global variable was defined and initialized.
1764 (vect_dump): Global variable definition.
1765 (vect_print_dump_info): New function.
1766 (vect_set_dump_settings): New function.
1767 (vect_set_verbosity_level): New function.
1768 (vectorize_loops): Add call to vect_set_dump_settings.
1770 (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
1771 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1772 (slpeel_tree_peel_loop_to_edge): Likewise.
1774 (vect_analyze_offset_expr): Call to vect_print_dump_info with
1775 appropriate verbosity level instead of call to vect_debug_details
1776 or vect_debug_stats.
1777 (vect_get_base_and_offset):
1778 (vect_create_addr_base_for_vector_ref):
1779 (get_vectype_for_scalar_type):
1780 (vect_create_data_ref_ptr):
1782 (vect_get_vec_def_for_operand):
1783 (vect_finish_stmt_generation):
1784 (vectorizable_assignment):
1785 (vectorizable_operation):
1786 (vectorizable_store):
1787 (vectorizable_load):
1788 (vect_transform_stmt):
1789 (vect_update_ivs_after_vectorizer):
1790 (vect_do_peeling_for_loop_bound):
1791 (vect_update_inits_of_drs):
1792 (vect_do_peeling_for_alignment):
1793 (vect_transform_loop):
1794 (vect_is_simple_use):
1795 (vect_analyze_operations):
1796 (vect_is_simple_iv_evolution):
1797 (vect_analyze_scalar_cycles):
1798 (vect_analyze_data_ref_dependence):
1799 (vect_analyze_data_ref_dependences):
1800 (vect_compute_data_ref_alignment):
1801 (vect_enhance_data_refs_alignment):
1802 (vect_analyze_data_refs_alignment):
1803 (vect_analyze_data_ref_access):
1804 (vect_analyze_data_ref_accesses):
1805 (vect_analyze_pointer_ref_access):
1806 (vect_get_memtag_and_dr):
1807 (vect_analyze_data_refs):
1808 (vect_mark_relevant):
1809 (vect_stmt_relevant_p):
1810 (vect_mark_stmts_to_be_vectorized):
1811 (vect_can_advance_ivs_p):
1812 (vect_get_loop_niters):
1813 (vect_analyze_loop_form):
1814 (vect_analyze_loop):
1815 (vectorize_loops): Likewise.
1817 (vect_do_peeling_for_loop_bound): Dump format slightly changed.
1818 (vect_update_inits_of_drs):
1819 (vect_do_peeling_for_alignment):
1820 (vect_transform_loop):
1821 (vect_analyze_operations):
1822 (vect_analyze_scalar_cycles):
1823 (vect_analyze_data_ref_dependences):
1824 (vect_analyze_data_refs_alignment):
1825 (vect_analyze_data_ref_accesses):
1826 (vect_analyze_data_refs):
1827 (vect_mark_stmts_to_be_vectorized):
1828 (vect_get_loop_niters):
1829 (vect_analyze_loop_form):
1830 (vect_analyze_loop): Likewise.
1831 (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
1833 2005-02-07 Richard Sandiford <rsandifo@redhat.com>
1837 2005-01-26 Richard Sandiford <rsandifo@redhat.com>
1838 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
1839 either -ffast-math or -funsafe-math-optimizations is in use.
1841 2005-01-24 Richard Sandiford <rsandifo@redhat.com>
1842 * config/mips/irix-csr.c: New file.
1843 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
1844 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
1845 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
1848 2005-02-07 Alexandre Oliva <aoliva@redhat.com>
1850 * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
1851 redundant, incorrect definitions.
1853 * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
1855 ("*tls_indirect_call"): New, reference hard regs directly.
1856 * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
1858 2005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
1860 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
1861 Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
1863 2005-02-06 Roger Sayle <roger@eyesopen.com>
1865 PR rtl-optimization/19800
1866 * simplify_rtx.c (simplify_relational_operation_1): Explicitly
1867 call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
1870 2005-02-07 Ralf Corsepius <ralf.corsepius@rtems.org>
1872 * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
1874 2005-02-07 Joseph S. Myers <joseph@codesourcery.com>
1877 * doc/invoke.texi: Correct documentation of -freorder-functions.
1879 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
1882 * doc/invoke.texi: Don't mention gccbug.
1884 2005-02-06 Roger Sayle <roger@eyesopen.com>
1885 Andrew Pinski <pinskia@physics.uc.edu>
1886 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
1888 * simplify-rtx.c (simplify_relational_operation_1): Simplify
1889 (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
1890 into just (zero_extract:SI FOO (const_int 1) BAR).
1892 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
1894 * doc/cpp.texi: Include gcc-common.texi. Don't define gcctabopt
1895 macro locally. Don't give last revision date. Use GCC version
1896 number from gcc-common.texi.
1897 * doc/cppinternals.texi: Include gcc-common.texi. Don't give last
1898 revision date. Use GCC version number from gcc-common.texi.
1899 Describe being a library as current state rather than as 3.x
1901 * doc/gcc.texi: Remove last update date.
1902 * doc/gccint.texi: Likewise. Update copyright dates.
1903 * doc/install.texi: Update copyright dates.
1905 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
1908 * doc/invoke.texi: Mention for each option included in -Wall that
1909 it is included in -Wall.
1910 * doc/gcc.texi: Update copyright and last modification date.
1912 2005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
1914 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
1915 unnecessary cast to original induction variable increments.
1917 2005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
1919 PR tree-optimization/18219
1920 * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
1921 in distributed form.
1923 2005-02-06 Richard Sandiford <rsandifo@redhat.com>
1925 * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
1926 Set bitpos and offset later in the function. Do nothing if the
1927 target is a register and if the bitfield lies completely outside
1929 (extract_bit_field): Make the same SUBREG, bitpos and offset changes
1930 here. Return an uninitialised register if the source value is stored
1931 in a register and the bitfield lies completely outside that register.
1933 2005-02-06 Steven Bosscher <stevenb@suse.de>
1935 * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
1938 2005-02-06 Marcin Dalecki <martin@dalecki.de>
1940 * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
1942 2005-02-06 Geoffrey Keating <geoffk@apple.com>
1944 * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
1945 * config/darwin8.h: New.
1946 * config/darwin7.h: Update comment.
1948 2005-02-03 Leehod Baruch <leehod@il.ibm.com>
1949 Dorit Naishlos <dorit@il.ibm.com>
1951 * tree-vectorizer.h (LOC): New type.
1952 (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
1953 (loop_line_number): New field in struct _loop_vec_info.
1954 (LOOP_VINFO_LOC, LOOP_LOC): New macros.
1956 * tree-vectorizer.c (input.h): Included.
1957 (find_loop_location): New function.
1958 (vect_debug_stats): Argument changed from loop to LOC. Computation of
1959 loop line number removed.
1960 (vect_debug_details): Likewise.
1961 (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
1963 (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
1964 call to vect_debug_details/stats changed from loop to loop_loc.
1965 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1966 (slpeel_tree_peel_loop_to_edge): Likewise.
1968 (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
1969 changed from NULL to UNKNOWN_LOC.
1970 (vect_get_base_and_offset):
1971 (vect_create_addr_base_for_vector_ref):
1972 (get_vectype_for_scalar_type):
1973 (vect_create_data_ref_ptr):
1975 (vect_get_vec_def_for_operand):
1976 (vect_finish_stmt_generation):
1977 (vectorizable_assignment):
1978 (vectorizable_operation):
1979 (vectorizable_store):
1980 (vectorizable_load):
1981 (vect_transform_stmt):
1982 (vect_update_ivs_after_vectorizer):
1983 (vect_do_peeling_for_loop_bound):
1984 (vect_do_peeling_for_alignment):
1985 (vect_transform_loop):
1986 (vect_is_simple_use):
1987 (vect_analyze_operations):
1988 (vect_is_simple_iv_evolution):
1989 (vect_analyze_scalar_cycles):
1990 (vect_analyze_data_ref_dependences):
1991 (vect_compute_data_ref_alignment):
1992 (vect_enhance_data_refs_alignment):
1993 (vect_analyze_data_ref_access):
1994 (vect_analyze_data_ref_accesses):
1995 (vect_analyze_pointer_ref_access):
1996 (vect_get_memtag_and_dr):
1997 (vect_analyze_data_refs):
1998 (vect_mark_relevant):
1999 (vect_stmt_relevant_p):
2000 (vect_mark_stmts_to_be_vectorized):
2001 (vect_can_advance_ivs_p):
2002 (vect_get_loop_niters):
2003 (vect_analyze_loop):
2004 (vectorize_loops): Likewise.
2006 (vectorizable_load): Argument in call to vect_debug_details/stats
2007 changed from loop to LOOP_LOC (loop_vinfo).
2008 (vect_transform_loop):
2009 (vect_analyze_operations):
2010 (vect_analyze_scalar_cycles):
2011 (vect_analyze_data_ref_dependence):
2012 (vect_enhance_data_refs_alignment):
2013 (vect_analyze_data_ref_accesses):
2014 (vect_analyze_pointer_ref_access):
2015 (vect_analyze_data_refs):
2016 (vect_analyze_loop): Likewise.
2018 (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
2019 changed from loop to loop_loc.
2021 (vect_enhance_data_refs_alignment): Removed unused variable loop.
2023 2005-02-03 Leehod Baruch <leehod@il.ibm.com>
2024 Dorit Naishlos <dorit@il.ibm.com>
2026 * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
2028 (vect_analyze_data_ref_dependences): Likewise.
2030 (vect_is_simple_use): Argument changed from loop structure to
2031 loop_vect_info structure.
2032 (vect_can_advance_ivs_p): Likewise.
2033 (vect_create_index_for_vector_ref): Likewise.
2034 (vect_update_ivs_after_vectorizer): Likewise.
2035 (new_stmt_vec_info): Likewise.
2037 (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
2038 changed from loop to loop_vinfo.
2039 (vect_create_data_ref_ptr): First argument in call to
2040 vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
2041 (vectorizable_assignment): Second argument in call to vect_is_simple_use
2042 was changed from loop to loop_vinfo.
2043 (vectorizable_operation): Likewise.
2044 (vectorizable_store): Likewise.
2045 (vect_mark_stmts_to_be_vectorized): Likewise.
2046 (vect_do_peeling_for_loop_bound): First argument in call to
2047 vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
2048 (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
2049 was changed from loop to loop_vinfo.
2050 (vect_analyze_data_ref_dependences): Third argument in call to
2051 vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2053 (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
2054 (vect_create_data_ref_ptr): Likewise.
2055 (vect_init_vector): Likewise.
2056 (vect_get_vec_def_for_operand): Likewise.
2057 (vectorizable_assignment): Likewise.
2058 (vectorizable_operation): Likewise.
2059 (vectorizable_store): Likewise.
2060 (vectorizable_load): Likewise.
2061 (vect_update_ivs_after_vectorizer): Likewise.
2062 (vect_is_simple_use): Likewise.
2063 (vect_analyze_data_ref_dependence): Likewise.
2064 (vect_analyze_pointer_ref_access): Likewise.
2065 (vect_can_advance_ivs_p): Likewise.
2067 * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
2068 before _stmt_vec_info.
2069 (_stmt_vec_info): Loop field replaced by loop_vec_info.
2070 (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
2071 (new_stmt_vec_info): Argument changed from loop structure to
2072 loop_vect_info structure
2074 (vect_analyze_data_ref_dependences): Unnecessary line was removed.
2075 (vect_analyze_offset_expr): Avoid 80 columns overflow.
2076 (vect_create_addr_base_for_vector_ref): Likewise.
2077 (vect_analyze_pointer_ref_access): Likewise.
2079 2005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
2082 * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
2083 phi flag if the phi is abnormal.
2085 2005-02-03 Andrew Pinski <pinskia@physics.uc.edu>
2088 * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
2089 information for the new statement.
2091 2005-02-03 Joseph S. Myers <joseph@codesourcery.com>
2094 * gcc.c (main): Include the target in -v output.
2096 2005-02-03 Alexandre Oliva <aoliva@redhat.com>
2098 * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
2099 Do not drop the extend if we'd have to add a paradoxical subreg
2100 later. Include optabs.h and insn-codes.h.
2101 * Makefile.in (combine.o): Depend on $(OPTABS_H).
2103 2005-02-02 Roger Sayle <roger@eyesopen.com>
2106 * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
2107 * fold-const.c (const_binop): Avoid constant folding floating
2108 point operations in modes that use composite representations.
2109 * simplify-rtx.c (simplify_binary_operation): Likewise.
2111 2005-02-02 Geoffrey Keating <geoffk@apple.com>
2113 * config/rs6000/altivec.md (altivec_dst): Make the first operand
2115 (altivec_dstt): Likewise.
2116 (altivec_dstst): Likewise.
2117 (altivec_dststt): Likewise.
2118 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
2121 2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2123 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
2124 EXPR_LOCUS from orig_cond to the new cond_stmt.
2125 (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
2128 2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2130 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
2131 standard_iv_increment_position. Remove call to bsi_next
2132 (no need to bump the iterator anymore).
2133 (vect_create_index_for_vector_ref): Call
2134 standard_iv_increment_position. Remove second function argument.
2135 (vect_finish_stmt_generation): Remove call to bsi_next
2136 (no need to bump the iterator anymore).
2137 (vect_create_data_ref_ptr): Remove second argument (bsi) in call
2138 to vect_create_index_for_vector_ref.
2140 2005-02-03 Dorit Naishlos <dorit@il.ibm.com>
2142 * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
2143 phis are used out of the loop.
2145 2005-02-03 Joseph S. Myers <joseph@codesourcery.com>
2148 * c-decl.c (undef_nested_function): New variable.
2149 (pop_scope): Diagnose undefined nested functions.
2150 (finish_function): Don't attempt cgraph processing or genericizing
2151 if current top-level function contained an undefined nested
2152 function. Reset undef_nested_function at the end of a top-level
2155 2005-02-02 Zdenek Dvorak <dvorakz@suse.cz>
2157 * tree.c (build_int_cst_type): Take sign of the value into account
2158 when deciding whether sign extend the value.
2160 2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2163 * gcc.c (cpp_unique_options): Remove %{trigraphs}.
2164 (cpp_options, cc1_options): Change %{std*&ansi} to
2165 %{std*&ansi&trigraphs}.
2167 2005-02-02 Kazu Hirata <kazu@cs.umass.edu>
2169 * cse.c: Update comments.
2171 2005-02-02 Aldy Hernandez <aldyh@redhat.com>
2173 * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
2174 arguments go on the stack. Do not put complex doubles in odd/even
2177 2005-02-02 Steven Bosscher <stevenb@suse.de>
2179 * doc/invoke.texi: Update the options enabled at -O1, -O2,
2180 and -O3. Update the documentation for -fgcse-sm, -fgcse-las,
2181 -ftree-pre, and -fthread-jumps.
2183 2005-02-02 Richard Sandiford <rsandifo@redhat.com>
2185 PR tree-optimization/19578
2186 * tree-flow.h (modified_noreturn_calls): Declare.
2187 (noreturn_call_p): Declare.
2188 * tree-flow-inline.h (noreturn_call_p): New function.
2189 (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
2190 * tree-cfg.c (modified_noreturn_calls): New variable.
2191 (cleanup_control_flow): Use noreturn_call_p. Split basic blocks
2192 that contain a mid-block noreturn call.
2193 * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
2195 2005-02-02 Kazu Hirata <kazu@cs.umass.edu>
2197 * df.c (df_def_record_1, df_uses_record): Don't use
2199 * df.h (DF_FOR_REGALLOC): Remove.
2201 2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2204 * c-typeck.c (really_start_incremental_init): Reset
2205 constructor_max_index for arrays of incomplete type.
2207 2005-02-02 Jeff Law <law@redhat.com>
2209 * gcse.c (struct reg_set): Store the block index where the register
2210 was set rather than the setting insn.
2211 (record_one_set, compute_transp): Corresponding changes.
2212 (pre_insert_copy_insn): Do not call replace_one_set.
2213 (replace_one_set): Remove.
2215 2005-02-02 Joseph S. Myers <joseph@codesourcery.com>
2218 * doc/gcov.texi: Fix typo.
2220 2005-02-01 Richard Henderson <rth@redhat.com
2223 * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
2224 * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
2226 (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
2227 * config/i386/i386-protos.h: Update.
2229 2005-02-01 Steven Bosscher <stevenb@suse.de>
2231 PR tree-optimization/19217
2232 * tree-cfg.c (verify_expr): Use the data field to see if TP was
2233 seen inside a PHI node. Do not do the ADDR_EXPR check if it was.
2234 (verify_stmts): Pass (void*)1 as data to verify_expr to signal
2235 that it is walking a PHI node.
2237 2005-02-01 Joseph S. Myers <joseph@codesourcery.com>
2239 * doc/extend.texi (Nested Functions): Update.
2241 2005-02-01 Richard Henderson <rth@redhat.com>
2244 * optabs.c (expand_copysign_absneg): Export.
2245 * optabs.h (expand_copysign_absneg): Declare.
2246 * config/rs6000/rs6000.md (copysigntf3): New.
2248 2005-02-01 Diego Novillo <dnovillo@redhat.com>
2250 PR tree-optimization/19633
2251 * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
2252 * tree-ssa-alias.c (init_alias_info): Initialize.
2253 (merge_pointed_to_info): Set.
2254 (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
2255 (dump_points_to_info_for): Show value of pt_null.
2256 (struct count_ptr_d): Declare.
2257 (find_ptr_dereference): Remove.
2258 (ptr_is_dereferenced_by): Remove.
2259 (count_ptr_derefs): New local function.
2260 (count_uses_and_derefs): New local function.
2261 (compute_points_to_and_addr_escape): Call it. If the number
2262 of dereferences is greater than zero, mark the pointer as
2263 dereferenced. If there are fewer dereferences than uses of
2264 the pointer, the pointer's value escapes.
2266 2005-02-01 Diego Novillo <dnovillo@redhat.com>
2268 PR tree-optimization/19670
2269 * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
2271 (verify_use): ... set it here, instead.
2273 2005-02-01 Janis Johnson <janis187@us.ibm.com>
2275 * doc/sourcebuild.texi (Test directives): Fix formatting.
2277 * doc/sourcebuild.texi (Test directives): Describe selector
2280 2005-02-01 Segher Boessenkool <segher@kernel.crashing.org>
2282 * config.gcc (powerpc64-*-linux*): Default to -m64 also for
2283 specific 64-bit CPUs.
2285 2005-02-01 Richard Earnshaw <rearnsha@arm.com>
2288 * arm.c (arm_eliminable_register): New function.
2289 (adjacent_mem_locations): Don't allow eliminable registers. Use
2290 HOST_WIDE_INT for address offsets.
2291 * arm-protos.h (arm_eliminable_register): Add prototype.
2293 2005-02-01 Steven Bosscher <stevenb@suse.de>
2295 PR optimization/15242
2296 * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
2297 * basic-block.h (duplicate_computed_gotos): Add prototype.
2298 * bb-reorder.c (duplicate_computed_gotos): New function to
2299 duplicate sufficiently small blocks ending in a computed jump.
2300 * passes.c (rest_of_compilation): Call duplicate_computed_gotos
2301 if not optimizing for size.
2302 * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
2303 never do tail merging for blocks ending in a computed jump.
2304 * doc/invoke.texi: Document the max-goto-duplication-insns param.
2306 2005-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
2308 Patch from Richard Sandiford <rsandifo@redhat.com>
2309 * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
2310 from inheriting a subreg equivalence with a non-spill register.
2312 * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
2314 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
2316 * config/frv/frv.c (movcc_fp_destination_operand): New.
2317 (gpr_or_memory_operand): Fix typo in comment.
2318 (gpr_or_memory_operand_with_scratch): New.
2319 * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
2320 * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
2321 movcc_fp_destination_operand.
2322 (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
2323 Legitimize memory addresses using a scratch register.
2325 2005-01-31 Jeff Law <law@redhat.com>
2327 * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
2328 bitmap a sparse bitmap instead of a simple bitmap.
2329 (mark_def_sites_initialize_block): Corresponding changes.
2330 (ssa_mark_def_sites_initialize_block): Likewise.
2331 (ssa_mark_phi_uses): Likewise.
2332 (mark_def_site, ssa_mark_def_sites): Likewise.
2333 (mark_def_site_blocks): Likewise.
2334 (rewrite_ssa_into_ssa): Likewise.
2336 * tree-ssa-dom.c (record_cond): Pass correct variable type
2337 for last argument to htab_find_slot_with_hash.
2339 * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
2340 effects when optimizing 0 % X. Do not try to optimize X % 0.
2342 2005-01-31 James E. Wilson <wilson@specifixinc.com>
2344 * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
2347 2005-02-01 Eric Christopher <echristo@redhat.com>
2349 * config/mips/mips.c (override_options): Warn if -mint64
2351 * doc/invoke.texi (MIPS Options): Document that -mint64 is
2354 2005-02-01 Kazu Hirata <kazu@cs.umass.edu>
2356 * cse.c (cse_reg_info): Remove hash_next, next, regno. Add
2358 (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
2359 REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
2360 cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
2361 (cached_regno): Initialize to INVALID_REGNUM.
2362 (cse_reg_info_table_size,
2363 cse_reg_info_table_first_uninitialized,
2364 cse_reg_info_timestamp): New.
2365 (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
2367 (init_cse_reg_info, get_cse_reg_info_1): New.
2368 (get_cse_reg_info): Cache the last look-up.
2369 (new_basic_block): Update the code to clear mappings from
2370 registers to cse_reg_info entries.
2371 (cse_main): Call init_cse_reg_info.
2373 * cse.c (get_cse_reg_info): Update a comment.
2375 2005-01-31 Steven Bosscher <stevenb@suse.de>
2378 * c-decl.c (start_decl): Do not warn about arrays of elements with
2379 an incomplete type here.
2380 (grokdeclarator): Do it here by making a pedwarn an error.
2381 * c-typeck.c (push_init_level): If there were previous errors with
2382 the constructor type, do not warn about braces for initializers.
2383 (process_init_element): Likewise for excess initializer elements.
2385 2005-01-31 Kazu Hirata <kazu@cs.umass.edu>
2387 * cse.c (delete_trivially_dead_insn): Don't iterate.
2389 2005-01-31 Andrew Pinski <pinskia@physics.uc.edu>
2391 * config/rs6000/rs6000.md (copysignsf3): New expand.
2392 (copysigndf3): Likewise.
2394 2005-01-31 Steven Bosscher <stevenb@suse.de>
2396 * recog.c (constrain_operands): Only look for earlyclobber operand
2397 conflicts if an '&' constraint was seen.
2399 2005-01-31 Marc Espie <espie@openbsd.org>
2401 * config.gcc: Don't include embedded systems fragment, switches default
2402 debugging format to ELF.
2403 * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
2404 longer pick it up there.
2406 2005-01-31 Dale Johannesen <dalej@apple.com>
2408 * doc/extend.texi (nested functions): Fix linkage description.
2409 Clarify that static is not allowed.
2411 2005-01-31 Dale Johannesen <dalej@apple.com>
2413 * config/rs6000/darwin.md (movsf_low_di): Make work.
2414 (movdf_low_di): Make work.
2416 2005-01-31 Dale Johannesen <dalej@apple.com>
2418 * config/rs6000/darwin-tramp.asm (__trampoline_setup):
2419 Make work for 64 bit.
2421 2005-01-31 Roger Sayle <roger@eyesopen.com>
2422 Dale Johannesen <dalej@apple.com>
2425 * fold-const.c (fold_binary_op_with_conditional_arg):
2426 Make types match original operands, before STRIP_NOPS.
2428 2005-01-31 Alan Modra <amodra@bigpond.net.au>
2430 * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
2431 (struct gcc_regs): Rename from gcc_pt_regs. Add more regs.
2432 (struct gcc_sigcontext): Delete. Merge contents to..
2433 (struct gcc_ucontext): ..here.
2434 (get_sigcontext): Delete.
2435 (get_regs): New function, like get_sigcontext but return regs ptr.
2436 64-bit version finds regs from r1 to support vdso.
2437 (ppc_linux_aux_vector): New function.
2438 (ppc_fallback_frame_state): Modify for get_regs. Restore fprs
2441 2005-01-31 Ira Rosen <irar@il.ibm.com>
2443 * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
2445 (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
2446 redundant fold. Fix misalignment for MINUS_EXPR.
2447 (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
2448 (vect_analyze_pointer_ref_access): Likewise.
2449 (vect_get_memtag_and_dr): Likewise.
2451 2005-01-31 Richard Henderson <rth@redhat.com>
2453 * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
2454 (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
2455 absnegdf2_i387, absnegxf2_i387): Likewise.
2457 2005-01-31 Richard Henderson <rth@redhat.com>
2460 * optabs.c (expand_copysign_absneg): New.
2461 (expand_copysign_bit): Split out from ...
2462 (expand_copysign): ... here. Use expand_copysign_absneg.
2464 2005-01-30 Roger Sayle <roger@eyesopen.com>
2467 * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
2468 constant as the second operand and a register as the third.
2470 2005-01-31 Danny Smith <dannysmith@users.sourceforge.net>
2473 * config/i386/i386.c (ix86_function_ok_for_sibcall): Also check
2474 that dllimport'd functions do not use all call-clobbered registers
2477 2005-01-30 Richard Henderson <rth@redhat.com>
2480 * optabs.c (expand_absneg_bit): Split out from expand_unop and
2481 expand_abs_nojump and generalize. Use operand_subword and
2482 emit_no_conflict_block. Support large modes.
2483 (expand_abs_nojump): Use it. Use HONOR_SIGNED_ZEROS to fall
2485 (expand_unop): Likewise. Use HONOR_SIGNED_ZEROS to fall back
2486 negation to subtraction.
2487 (expand_copysign): Check that the format has signed zeros.
2488 Use operand_subword and emit_no_conflict_block. Support large modes.
2490 2005-01-30 Daniel Berlin <dberlin@dberlin.org>
2492 Fix PR tree-optimization/19624
2494 * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
2495 * tree-ssa-pre.c: Add cfgloop.h.
2497 (pre_stats): New member, constified.
2498 (inserted_exprs): New static variable.
2499 (NECESSARY): New macro.
2500 (create_expression_by_pieces): Fold the expression, and
2501 mark it as defaulting to not necessary. Also put in
2503 (fully_constant_expression): New function.
2504 (insert_into_preds_of_block): Modify to not insert phis when we
2505 are playing with induction variables.
2506 Push phis onto the inserted_exprs vector, and mark them as not
2507 necessary by default.
2508 (insert_aux): Call fully_constant_expression on eprime.
2509 If all edges produce the same value, mark it constant.
2510 (mark_operand_necessary): New function.
2511 (remove_dead_inserted_code): New function.
2512 (init_pre): Init loop optimizer to get loop info.
2513 (fini_pre): Free loop_optimizer, and inserted_exprs vec.
2514 (execute_pre): Commit edge inserts, then remove dead code.
2516 2005-01-30 Richard Henderson <rth@redhat.com>
2518 * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
2519 * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
2521 2005-01-30 Richard Henderson <rth@redhat.com>
2524 * config/i386/i386.c (ix86_expand_copysign): New.
2525 (ix86_split_copysign_const): New.
2526 (ix86_split_copysign_var): Rename from ix86_split_copysign,
2527 rearrange op1/nmask operands.
2528 * config/i386/i386-protos.h: Update.
2529 * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
2530 (copysigndf3): Likewise.
2531 (copysignsf3_const, copysigndf3_const): New.
2532 (copysignsf3_var): Rename from copysignsf3, split out splitter
2533 and fix split predicate for X constraint.
2534 (copysigndf3_var): Similarly.
2536 2005-01-30 Kazu Hirata <kazu@cs.umass.edu>
2538 * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
2539 doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
2540 doc/tm.texi, doc/tree-ssa.texi: Update copyright.
2542 2005-01-29 Richard Henderson <rth@redhat.com>
2545 * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
2546 of # and * in constraints.
2548 2005-01-29 Richard Henderson <rth@redhat.com>
2551 * expr.c (store_field): Don't strip sub-mode cast when the input
2552 data is even smaller.
2554 2005-01-29 Richard Henderson <rth@redhat.com>
2557 * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
2560 2005-01-29 Richard Henderson <rth@redhat.com>
2562 * combine.c (make_field_assignment): Fix argument order
2565 2005-01-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
2567 PR tree-optimization/15791
2568 * fold-const.c (extract_array_ref): New function.
2569 (fold): Fold comparisons between &a[i] and &a[j] or
2570 semantically equivalent trees.
2572 2005-01-29 Jeff Law <law@redhat.com>
2574 * gcse.c (insert_expr_in_table): Revamp handling of available
2575 and anticipatable occurrence lists to avoid unnecessary list
2577 (insert_set_in_table): Similarly.
2579 2005-01-29 Joseph S. Myers <joseph@codesourcery.com>
2581 * c-common.c (fix_string_type): Just use c_build_qualified_type to
2583 (c_build_qualified_type): Build qualified array types with
2584 TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
2585 * c-decl.c (c_make_fname_decl): Build unqualified array type
2586 before qualified type.
2587 (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
2588 type is qualified, not just if type itself is. Don't apply
2589 qualifiers to array type when declarator is processed. Apply
2590 qualifiers to field type whether or not it is an array type.
2591 Don't handle array types specially for applying qualifiers to
2593 * c-typeck.c (composite_type): Build unqualified element type and
2594 array type when forming composite of array types.
2595 (common_pointer_type, comptypes, comp_target_types,
2596 type_lists_compatible_p, build_indirect_ref, build_array_ref,
2597 convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
2599 (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
2600 (args2) in variables a1 and a2.
2602 2005-01-29 Kazu Hirata <kazu@cs.umass.edu>
2604 * cse.c (n_elements_made, max_elements_made): Remove.
2605 (insert): Don't touch n_elements_made.
2606 (cse_main): Don't touch n_elements_made or max_elements_made.
2608 2005-01-28 Stephane Carrez <stcarrez@nerim.fr>
2611 * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
2612 configuration part of dp-bit.c to be lost.
2614 2005-01-28 Roger Sayle <roger@eyesopen.com>
2616 * expmed.c (expand_mult_highpart_optab): When attempting to use
2617 a non-widening multiplication in a wider mode, the operands need
2618 to be converted (zero or sign extended) to that mode.
2620 2005-01-28 Ian Lance Taylor <ian@airs.com>
2624 * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
2625 through if both operands fall through.
2627 2005-01-28 Kazu Hirata <kazu@cs.umass.edu>
2629 * cse.c (fold_rtx) <PC>: Don't optimize.
2631 2005-01-28 Jeff Law <law@redhat.com>
2633 * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
2634 (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
2636 2005-01-28 Kazu Hirata <kazu@cs.umass.edu>
2638 * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
2639 cse_reg_info_used_list_end): Remove.
2640 (cse_reg_info_list, cse_reg_info_list_free): New.
2641 (get_cse_reg_info): When allocating an instance of
2642 cse_reg_info, add it to the beginning of the cse_reg_info_list
2643 list. Remove code to maintain cse_reg_info_used_list.
2644 (new_basic_block): Reset the free list to the beginning of
2647 2005-01-28 Richard Sandiford <rsandifo@redhat.com>
2649 * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
2650 (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
2651 (frv_expand_mdpackh_builtin): New function.
2652 (frv_expand_builtin): Use it to expand __MDPACKH.
2653 * doc/extend.texi (__MDPACKH): Update documentation.
2655 2005-01-28 Uros Bizjak <uros@kss-loka.si>
2657 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
2658 SSE_FLOAT_MODE_P for use_sse computation.
2660 2005-01-28 Ralf Corsepius <ralf.corsepius@rtems.org>
2663 * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
2665 2005-01-27 Richard Henderson <rth@redhat.com>
2667 * builtins.c (expand_builtin_copysign): New.
2668 (expand_builtin): Call it.
2669 * genopinit.c (optabs): Add copysign_optab.
2670 * optabs.c (init_optabs): Initialize it.
2671 (expand_copysign): New.
2672 * optabs.h (OTI_copysign, copysign_optab): New.
2673 (expand_copysign): Declare.
2675 * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
2676 (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
2678 * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
2679 (ix86_expand_fp_absneg_operator): ... here.
2680 (ix86_split_copysign): New.
2681 * config/i386/i386-protos.h: Update.
2682 * config/i386/i386.md (UNSPEC_COPYSIGN): New.
2683 (copysignsf3, copysigndf3): New.
2685 * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
2686 (copysignsf3, ncopysignsf3): New.
2687 (copysigndf3, ncopysigndf3): New.
2688 (copysignxf3, ncopysignxf3): New.
2689 * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
2691 2005-01-27 Arend Bayer <arend.bayer@web.de>
2692 Kazu Hirata <kazu@cs.umass.edu>
2694 * cse.c: (find_best_addr): Don't call copy_rtx before calling
2695 fold_rtx. Save cost recomputation if fold_rtx did nothing.
2696 (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
2699 2005-01-27 Jeff Law <law@redhat.com>
2701 * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
2702 definitions of SSA_NAMEs which are not being rewritten.
2703 (rewrite_ssa_into_ssa): Only initialize the current definition
2704 of an SSA_NAME if that SSA_NAME has been marked for rewriting.
2705 If checking is enabled, assert that SSA_NAME_AUX is clear for all
2706 SSA_NAMEs before returning.
2708 2005-01-27 Kazu Hirata <kazu@cs.umass.edu>
2710 * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
2711 cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
2712 tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
2713 config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
2714 config/mips/iris6.h, config/sh/sh.c: Update copyright.
2716 2005-01-27 Steven Bosscher <stevenb@suse.de>
2719 * opts.c (decode_options): Move flag_thread_jumps from -O1 and
2720 higher to -O2 and higher. Likewise for tree PRE.
2721 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
2724 2005-01-27 Ian Lance Taylor <ian@airs.com>
2727 * gimple-low.c (try_catch_may_fallthru): New static function.
2728 (block_may_fallthru): Handle TRY_CATCH_EXPR.
2729 * tree-inline.c (expand_call_inline): Don't warn about reaching
2730 the end of a non-void function being inlined if the function uses
2733 2005-01-27 Jakub Jelinek <jakub@redhat.com>
2735 * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
2738 * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
2739 (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
2740 (implicitly_declare): Handle error_mark_node.
2742 2005-01-27 Richard Henderson <rth@redhat.com>
2745 * tree.h (struct tree_decl): Add debug_expr_is_from.
2746 (DECL_DEBUG_EXPR_IS_FROM): New.
2747 (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
2748 * dwarf2out.c (dwarf2out_var_location): Update to match.
2749 * tree-outof-ssa.c (create_temp): Likewise.
2750 * var-tracking.c (track_expr_p): Likewise.
2751 * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
2752 * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
2753 * toplev.c (default_tree_printer): Likewise.
2755 2005-01-27 Alexandre Oliva <aoliva@redhat.com>
2757 * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
2758 GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
2760 2005-01-27 Steven Bosscher <stevenb@suse.de>
2762 * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
2763 CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2764 ASM_CLOBBERS): Add tree checks.
2766 * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
2767 (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
2768 * c-common.def (SWITCH_STMT): Update to match.
2769 * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
2770 macros instead of SWITCH_EXPR ones.
2771 * c-dump.c (c_dump_tree): Likewise.
2772 * c-gimplify.c (gimplify_switch_stmt): Likewise.
2773 * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
2775 * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
2777 2005-01-27 Alan Modra <amodra@bigpond.net.au>
2779 * unwind-dw2.c (execute_stack_op): Add missing cases for
2780 DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
2782 2005-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
2784 * config.gcc (Obsolete configurations): Remove 'dummy', add
2785 sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
2788 2005-01-26 Diego Novillo <dnovillo@redhat.com>
2790 PR tree-optimization/19633
2791 * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
2793 (maybe_create_global_var): Do not create .GLOBAL_VAR if there
2794 are no call-clobbered variables.
2795 * tree-outof-ssa.c (check_replaceable): Return false for calls
2798 2005-01-26 Ulrich Weigand <uweigand@de.ibm.com>
2800 * dbxout.c (dbxout_symbol_location): Resolve constant pool references
2801 even for variables with NULL DECL_INITIAL.
2803 2005-01-26 Stuart Hastings <stuart@apple.com>
2805 * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
2807 2005-01-26 Richard Henderson <rth@redhat.com>
2810 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2812 * expr.c (store_field): Strip conversions to odd-bit-sized types
2813 if the destination field width matches.
2815 2005-01-26 Richard Henderson <rth@redhat.com>
2817 * c-decl.c, expmed.c, expr.c: Revert last change.
2819 2005-01-26 Richard Henderson <rth@redhat.com>
2822 * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2824 * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
2825 if we don't need the bits above those present in the current mode.
2826 * expr.c (store_field): Strip conversions to odd-bit-sized types
2827 if the destination field width matches.
2829 2005-01-26 Richard Sandiford <rsandifo@redhat.com>
2831 * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2832 either -ffast-math or -funsafe-math-optimizations is in use.
2834 2005-01-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
2838 * config/avr/avr.c (notice_update_cc): Only set condition code for
2839 ashrqi3 if shift count > 0.
2840 (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
2841 (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
2842 ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
2843 count <= 0 as a no-op, and shift count >= width by copying zero
2844 or sign bit to all bits of the result.
2845 * config/avr/avr.md (all shifts): Add alternatives for zero shift
2846 count, with attribute "length" set to 0 and "cc" set to "none".
2848 2005-01-26 Aldy Hernandez <aldyh@redhat.com>
2850 * doc/invoke.texi: Document -mTLS.
2852 * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
2853 * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
2854 * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
2855 * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
2856 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
2857 * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
2858 * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
2859 * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
2861 * configure.ac: Check for a TLS capable gas.
2863 * configure: Regenerate.
2865 2005-01-26 Richard Henderson <rth@redhat.com>
2868 * combine.c (make_field_assignment): Simplify store to zero_extract
2869 from a source with an overlapping mask.
2871 2005-01-26 Aldy Hernandez <aldyh@redhat.com>
2873 2004-11-11 Eric Christopher <echristo@redhat.com>
2875 * config/frv/frv.md: Add fr400_integer automaton. Don't
2876 allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
2879 2005-01-26 Steven Bosscher <stevenb@suse.de>
2882 * cfgbuild.c (make_edges): Do not clear or set
2883 current_function_has_computed_jump.
2884 * function.h (struct function): Remove the has_computed_jump field.
2885 (current_function_has_computed_jump): Do not define.
2886 * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
2887 in a computed jump. Ignore current_function_has_computed_jump.
2889 2005-01-26 Richard Henderson <rth@redhat.com>
2892 * expr.c (categorize_ctor_elements): New argument p_must_clear.
2893 (categorize_ctor_elements_1): Likewise. Detect a union that isn't
2895 (mostly_zeros_p): Update for new categorize_ctor_elements argument.
2896 * gimplify.c (gimplify_init_constructor): Likewise. Only shove
2897 objects into static storage if they have more than one non-zero value.
2898 * tree.h (categorize_ctor_elements): Update decl.
2900 2005-01-26 Steven Bosscher <stevenb@suse.de>
2903 * tree.h (CALL_EXPR_TAILCALL): Add comment.
2904 * calls.c (check_sibcall_argument_overlap_1): Revert the change
2905 to this function from 2004-07-10.
2906 * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
2907 the current function for tail call optimizations if the address
2908 of one of it its arguments is taken.
2910 2005-01-26 Kazu Hirata <kazu@cs.umass.edu>
2912 * cse.c (fold_rtx): Call equiv_constant only when necessary.
2914 2005-01-26 Bernd Schmidt <bernd.schmidt@analog.com>
2916 * function.c (expand_function_end): If current_function_calls_alloca,
2917 emit stack restore in a place that is reached when the function falls
2920 2005-01-26 Alexandre Oliva <aoliva@redhat.com>
2922 * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
2923 rule to avoid matching inappropriate suffix rule.
2925 2005-01-26 Jan Hubicka <jh@suse.cz>
2927 PR tree-optimization/19241
2928 * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
2930 2005-01-26 Hans-Peter Nilsson <hp@axis.com>
2932 * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
2933 -lsyssim. Wrap -lc -lsyssim in --start-group --end-group instead
2935 (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
2936 <sim*>: Always use crt1.o, regardless of N in simN.
2937 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
2938 (ENDFILE_SPEC): Add crtn.o, after crtend.o.
2939 (CRT_CALL_STATIC_FUNCTION): Remove.
2940 * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
2941 use crt1.o, regardless of N in simN.
2942 <!sim>: Drop support for -pg and -p variants; always use crt0.o.
2943 (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
2944 (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
2945 case isystem setting.
2946 (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
2948 2005-01-25 Ian Lance Taylor <ian@airs.com>
2950 * gimple-low.c (block_may_fallthru): Correct handling of
2951 SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
2953 2005-01-26 Hans-Peter Nilsson <hp@axis.com>
2955 * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
2956 handlers to match indentation; nested under the mtune=* handler.
2957 Similar for mcpu= and march=.
2959 2005-01-25 Daniel Jacobowitz <dan@codesourcery.com>
2961 * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
2962 * config/mips/linux64.h (LIB_SPEC): Likewise.
2963 * config/mn10300/linux.h (LIB_SPEC): Likewise.
2964 * config/sh/linux.h (LIB_SPEC): Likewise.
2966 2005-01-25 Aldy Hernandez <aldyh@redhat.com>
2968 * config/frv/frv.c (frv_legitimize_tls_address): New.
2969 (TARGET_HAVE_TLS): Define.
2970 (FRV_SYMBOL_REF_TLS_P): Define.
2971 (frv_override_options): Handle new register classes.
2972 (frv_legitimate_address_p): Reject tls addresses.
2973 (frv_legitimize_address): Handle TLS addresses.
2974 (gen_inlined_tls_plt): New.
2976 (frv_legitimize_tls_address): New.
2977 (unspec_got_name): Add TLS entries.
2978 (got12_operand): Add R_FRV_TLSMOFF12 case.
2979 (frv_emit_move): Fixup TLS addresses.
2980 (frv_emit_movsi): Legitimize TLS addresses.
2982 * config/frv/frv.h (MASK_BIG_TLS): New.
2983 (TARGET_BIG_TLS): New.
2984 (HAVE_AS_TLS): Define.
2985 (TARGET_SWITCHES): Add -mTLS and -mtls options.
2986 (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
2987 (REG_CLASS_NAMES): Same.
2988 (REG_CLASS_CONTENTS): Same.
2989 (CONSTRAINT_LEN): New.
2990 (REG_CLASS_FROM_CONSTRAINT): New.
2991 (PREDICATE_CODES): Add symbolic_operand.
2993 * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
2994 UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
2995 UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
2996 UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
2997 R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
2998 R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
2999 R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
3000 GR9_REG, GR14_REG, LRREG.
3001 (type): Add load_or_call attribute.
3002 ("load_or_call"): New reservation.
3003 ("call_gettlsoff"): New.
3004 ("tls_indirect_call"): New.
3005 ("tls_load_gottlsoff12"): New.
3006 ("tlsoff_hilo"): New.
3007 ("tls_tlsdesc_ldd"): New.
3008 ("tls_tlsoff_ld"): New.
3011 * config/frv/frv-protos.h (symbolic_operand): Protoize.
3013 2005-01-25 Alexandre Oliva <aoliva@redhat.com>
3015 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3016 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
3017 * config/frv/frv.c (TLS_BIAS): Define.
3018 (frv_output_dwarf_dtprel): New.
3020 2005-01-26 Jakub Jelinek <jakub@redhat.com>
3022 PR rtl-optimization/19579
3023 * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
3024 both A and B, see if they don't clobber registers the other expr uses.
3026 2005-01-25 J"orn Rennecke <joern.rennecke@st.com>
3028 * real.c (do_add): Initialize signalling and canonical members.
3030 * real.c (real_from_integer): Zero out destination.
3032 2005-01-18 Jan Hubicka <jh@suse.cz>
3034 PR tree-optimize/19337
3035 * tree-inline.c (initialize_inlined_parameters): Copy
3036 saved_static_chain_decl only.
3038 2005-01-25 Richard Henderson <rth@redhat.com>
3042 * config/i386/i386.c (x86_inter_unit_moves): Zero.
3043 (ix86_preferred_reload_class): Rewrite fp-constant section, with
3044 80387 enabled, to return a proper subclass. Return the subset that
3045 overlaps with GENERAL_REGS for PLUS.
3046 * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
3048 2005-01-25 Richard Henderson <rth@redhat.com>
3051 * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
3053 2005-01-25 Roger Sayle <roger@eyesopen.com>
3055 * expmed.c (choose_multiplier): Change interface to return the
3056 multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
3057 (expand_divmod): Update calls to choose_multiplier.
3059 2005-01-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3062 * expmed.c (extract_bit_field): Use adjust_address instead of
3063 gen_lowpart when op0 is a MEM.
3065 2005-01-24 Steven Bosscher <stevenb@suse.de>
3067 * cfgexpand.c (expand_gimple_tailcall): Fix typo.
3069 2005-01-24 Richard Sandiford <rsandifo@redhat.com>
3071 * config/mips/irix-csr.c: New file.
3072 * config/mips/t-iris6 (irix-csr.o): New rule to build it.
3073 (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
3074 * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
3077 2005-01-24 Eric Botcazou <ebotcazou@libertysurf.fr>
3080 * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
3081 sparc/elf.h, add sparc/sp-elf.h.
3082 (sparc-*-rtems*): Likewise.
3083 (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
3084 tm-dwarf2.h, add sparc/sp-elf.h.
3085 (sparc86x-*-elf): Likewise.
3086 (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
3087 * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
3088 TARGET_OS_CPP_BUILTINS.
3089 * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3090 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3092 * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
3093 * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
3094 (SWITCH_TAKES_ARG): Likewise.
3095 (LOCAL_LABEL_PREFIX): Likewise.
3096 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3097 (TARGET_N_FORMAT_TYPES): Delete.
3098 (TARGET_FORMAT_TYPES): Likewise.
3099 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
3100 * config/sparc/elf.h: Delete.
3101 * config/sparc/sp-elf.h: New file.
3103 2005-01-24 Kazu Hirata <kazu@cs.umass.edu>
3105 * tree-flow-inline.h (phi_arg_from_edge): Remove.
3106 * tree-flow.h: Remove the corresponding prototype.
3107 * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
3108 tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
3110 2005-01-24 Jakub Jelinek <jakub@redhat.com>
3113 * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
3114 for AIX ABI or ELF -fPIC.
3115 (rs6000_emit_load_toc_table): Don't create toc_section here.
3116 (rs6000_xcoff_file_start): Nor here.
3118 2005-01-24 J"orn Rennecke <joern.rennecke@st.com>
3120 * sh.c (ra.h): Don't #include.
3121 (hard_regs_intersect_p): New function, resurrected from ra.c.
3123 * sh.c: Fix 1996 Copyright.
3125 2005-01-24 Richard Henderson <rth@redhat.com>
3126 Aldy Hernandez <aldyh@redhat.com>
3128 * regrename.c (note_sets): Handle subregs.
3130 2005-01-24 Joseph S. Myers <joseph@codesourcery.com>
3133 * genconditions.c (write_header, write_conditions): Elide file if
3136 2005-01-24 Kazu Hirata <kazu@cs.umass.edu>
3138 * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
3139 config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
3142 2005-01-24 Jakub Jelinek <jakub@redhat.com>
3144 * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
3145 expand_builtin_printf, expand_builtin_fprintf,
3146 expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
3147 checking against POINTER_TYPE.
3148 (validate_arglist): Handle POINTER_TYPE code by checking
3151 2005-01-24 Paolo Bonzini <bonzini@gnu.org>
3153 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
3155 (for_each_rtx): Call for_each_rtx_1.
3156 * rtl.h (init_rtlanal): Declare.
3157 * toplev.c (backend_init): Call init_rtlanal.
3159 2005-01-24 Jakub Jelinek <jakub@redhat.com>
3161 * flow.c (propagate_one_insn): Formatting.
3164 * flow.c (libcall_dead_p): Be more conservative if unsure.
3165 If there are any instructions between insn and call, see if they are
3166 all dead before saying the libcall is dead.
3168 2005-01-24 Uros Bizjak <uros@kss-loka.si>
3170 * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
3171 operand constraint for operand 0.
3173 2005-01-23 Richard Henderson <rth@redhat.com>
3176 * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
3177 edges leading to join block.
3179 2005-01-23 Roger Sayle <roger@eyesopen.com>
3181 * expmed.c (expand_mult_highpart): Make static. Change type of
3182 constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
3183 (expand_divmod): Updates calls to expand_mult_highpart by using
3184 gen_int_mode to pass a CONST_INT rtx.
3185 * rtl.h (expand_mult_highpart): Remove prototype.
3187 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3189 * flow.c (regset_bytes, regset_size): Remove.
3191 * cfganal.c: Fix a reference to Harvey's paper.
3193 2005-01-23 Steven Bosscher <stevenb@suse.de>
3195 PR rtl-optimization/19464
3196 * tree-optimize.c (init_tree_optimization_passes): Add one more
3197 copyrename pass just before out-of-ssa.
3199 2005-01-23 Joseph S. Myers <joseph@codesourcery.com>
3202 * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
3203 * ggc-none.c (ggc_free): Define.
3205 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3207 * cse.c (max_reg, max_insn_uid): Remove.
3208 (cse_main): Don't access max_reg or max_insn_uid.
3210 * c-common.c (explicit_flag_signed_bitfields,
3211 lang_statement_code_p, lang_expand_function_end): Remove.
3212 * c-common.h: Remove the corresponding declarations.
3213 * c-opts.c (c_common_handle_option): Remove all write access
3214 to explicit_flag_signed_bitfields.
3216 * cgraph.c (cgraph_varpool_n_nodes): Remove.
3217 (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
3218 * cgraph.h: Remove the corresponding declaration.
3220 * gcse.c (null_pointer_info): Remove.
3222 2005-01-23 Roger Sayle <roger@eyesopen.com>
3223 Eric Botcazou <ebotcazou@libertysurf.fr>
3225 * combine.c (simplify_logical): Only simplify logical expressions
3226 of the form ior(and(x,y),z) by the inverse distributive law if the
3227 result is cheaper than the original.
3229 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3231 * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
3232 fold-const.c, gimplify.c, params.h, tree-data-ref.c,
3233 tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
3234 tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
3235 config/freebsd-spec.h, config/arm/arm.h,
3236 config/h8300/h8300.md, config/i386/i386.md,
3237 config/i386/predicates.md, config/i386/sse.md,
3238 config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
3239 config/vax/vax.md: Fix comment typos. Follow spelling
3242 2005-01-23 Steven Bosscher <stevenb@suse.de>
3244 * gengtype.c (walk_type): Produce `not equal to' compares for loop
3245 tests, instead of `less than'.
3247 2005-01-23 Richard Sandiford <rsandifo@redhat.com>
3249 * function.c (assign_parm_setup_block): When creating a new stack slot
3250 for a parameter, get its alignment from the parameter's DECL_ALIGN
3251 rather than the type's TYPE_ALIGN. Make sure that the parameter
3252 is at least word aligned.
3254 2005-01-22 Roger Sayle <roger@eyesopen.com>
3257 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
3259 2005-01-22 Richard Henderson <rth@redhat.com>
3262 * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
3263 in both compare operands.
3264 (movdfcc_1_sse_max): Likewise.
3265 (movsfcc_1_sse): Likewise. Add earlyclobber for scratch.
3266 (movdfcc_1_sse): Likewise.
3267 * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
3268 scratch register as needed.
3270 2005-01-22 Richard Henderson <rth@redhat.com>
3272 * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
3274 * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
3276 2005-01-22 Richard Henderson <rth@redhat.com>
3278 * genopinit.c (optabs): Use smin/smax for floating point too.
3279 * doc/md.texi: Update to match. Clarify that floating point
3280 results are undefined for +0/-0 and NaN.
3281 * doc/rtl.texi: Likewise.
3282 * rtl.def (SMIN, SMAX): Likewise
3283 * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
3285 * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
3286 leading 's' to the name.
3287 * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
3288 smaxxf3, sminxf3): Likewise.
3289 * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
3292 2005-01-22 Paul Brook <paul@codesourcery.com>
3294 * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
3296 2005-01-21 Mark Dettinger <dettinge@de.ibm.com>
3298 * config/s390/s390.c (struct processor_costs): New fields
3299 dlgr, dlr, dr, dsgfr, dsgr.
3300 (z900_cost, z990_cost): Values for new fields.
3301 (s390_rtx_costs): New cases MEM und COMPARE in switch
3302 statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
3303 DIV, MOD, UDIV, UMOD.
3305 2005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
3307 * config/s390/s390.md ("doloop_si64"): Reload input value directly
3308 into the register being decremented.
3309 ("doloop_si31", "doloop_di"): Likewise.
3310 ("*doloop_si_long"): Adapt pattern.
3312 2005-01-21 Ulrich Weigand <uweigand@de.ibm.com>
3314 * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
3316 (CLASS_MAX_NREGS): Likewise.
3318 2005-01-21 Daniel Berlin <dberlin@dberlin.org>
3320 * doc/tree-ssa.texi (Statement Operands): Add example for new
3321 must-def macro. Note deprecation of old operands interface.
3323 2005-01-22 Richard Sandiford <rsandifo@redhat.com>
3325 PR tree-optimization/19484
3326 * tree-cfg.c (remove_fallthru_edge): New function.
3327 (cleanup_control_flow): Remove fallthru edges from calls that are
3328 now known not to return.
3330 2005-01-20 Daniel Berlin <dberlin@dberlin.org>
3332 Fix PR tree-optimization/19038
3333 * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
3334 copies with loop variant ones.
3336 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
3338 * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
3339 config/alpha/alpha-protos.h, config/alpha/alpha.h,
3340 config/alpha/alpha.md, config/alpha/predicates.md,
3341 config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
3342 config/sparc/sol2.h: Update copyright.
3344 * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
3345 first label to see if it is a nonlocal label.
3347 2005-01-22 David Edelsohn <edelsohn@gnu.org>
3348 Andrew Pinski <pinskia@physics.uc.edu>
3351 * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
3352 maximum number of GPRs. Saturate n_fpr at maximum number of FPRs.
3354 2005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
3356 * config/rs6000/rtems.h: Update copyright.
3358 2005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
3361 * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
3362 (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
3363 (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
3365 2005-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3368 * c-typeck.c (convert_arguments): Check for error_mark_node.
3370 2005-01-21 Ian Lance Taylor <ian@airs.com>
3372 PR tree-optimization/13000
3373 * tree-inline.c: Include "tree-flow.h".
3374 (expand_call_inline): If warn_return_type, warn if non-void inline
3375 function falls through.
3376 * tree-cfg.c (execute_warn_function_return): Don't warn about
3377 control reaching end if TREE_NO_WARNING is set. Set
3379 * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
3381 * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
3382 branch if we don't need one.
3383 * c-typeck.c: Include "tree-flow.h"
3384 (c_finish_bc_stmt): Don't add a goto if the current statement
3385 list doesn't fall through to the current point.
3387 2005-01-21 Roger Sayle <roger@eyesopen.com>
3389 PR rtl-optimization/576
3390 * real.c (real_arithmetic): Change return type from void to bool
3391 to return an indication that the result may be inexact.
3392 * real.h (real_arithmeric): Update prototype.
3393 * fold-const.c (const_binop): Don't constant fold floating
3394 point expressions when the user specifies -frounding-math and
3395 the result may depend upon the run-time rounding mode.
3396 (fold_convert_const_real_from_real): Clean-up.
3397 (fold_initializer): Ignore flag_rounding_math for initializers.
3398 * simplify-rtx.c (simplify_binary_operation): Likewise, don't
3399 constant fold FP operations with flag_rounding_math if the
3400 result may depend upon the run-time rounding mode.
3402 2005-01-21 Tom Tromey <tromey@redhat.com>
3404 * c-cppbuiltin.c (define__GNUC__): Correct assertion.
3406 2005-01-21 Kazu Hirata <kazu@cs.umass.edu>
3408 * tree-cfg.c: Fix comment typos.
3410 2005-01-21 J"orn Rennecke <joern.rennecke@st.com>
3412 * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
3413 around the call to rest_of_handle_branch_target_load_optimize.
3415 2005-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
3417 * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
3418 (sparc64-*-openbsd*): Likewise.
3419 (sparclite-*-elf*): Include tm-dwarf2.h.
3420 (sparc86x-*-elf*): Likewise.
3421 (sparc64-*-elf*): Likewise.
3422 * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
3423 (DBX_DEBUGGING_INFO): Likewise.
3424 * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
3425 (PREFERRED_DEBUGGING_TYPE): Likewise.
3426 * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
3427 * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
3428 (PREFERRED_DEBUGGING_TYPE): Likewise.
3429 * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
3430 (PREFERRED_DEBUGGING_TYPE): Likewise.
3431 * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
3433 2005-01-21 Hans-Peter Nilsson <hp@bitrange.com>
3436 * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
3438 2005-01-20 Paul Brook <paul@codesourcery.com>
3440 * doc/rtl.texi: Document value extension requirements for CONST_INT.
3442 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3444 * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
3445 label is first in a sequence of labels.
3447 * tree-cfg.c (tree_verify_flow_info): Fix a typo.
3449 2005-01-20 Janis Johnson <janis187@us.ibm.com>
3450 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3452 * doc/sourcebuild.texi (Test Directives): New.
3454 2005-01-20 Roger Sayle <roger@eyesopen.com>
3456 * real.c (real_floor): Don't leave the result uninitialized when
3457 mode is VOIDMode, but return the unrounded intermediate value.
3458 (real_ceil): Likewise.
3460 2005-01-20 Paul Brook <paul@codesourcery.com>
3462 * config/arm/arm.md (insv): Use gen_int_mode.
3464 2005-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
3466 * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
3467 * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3468 * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3469 * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3470 * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3472 2005-01-20 Daniel Berlin <dberlin@dberlin.org>
3475 * dwarf2out.c (concat_loc_descriptor): We don't know we can use
3476 fbreg, so we have to assume we can't.
3477 (loc_descriptor_from_tree_1): Ditto.
3478 (containing_function_has_frame_base): New function.
3479 (add_location_or_const_value_attribute): Use it.
3480 Also try to generate a frame_base from a single element location
3483 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3485 PR tree-optimization/15349
3486 * timevar.def (TV_TREE_MERGE_PHI): New.
3487 * tree-cfg.c (tree_forwarder_block_p): Add a new argument
3489 (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
3490 calls to tree_forwarder_block_p.
3491 (remove_forwarder_block_with_phi, merge_phi_nodes,
3492 gate_merge_phi, pass_merge_phi): New.
3493 * tree-optimize.c (init_tree_optimization_passes): Add
3495 * tree-pass.h: Add an extern for pass_merge_phi;
3497 2005-01-20 Richard Henderson <rth@redhat.com>
3500 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
3501 (_mm_castps_pd, _mm_castps_si128): New.
3502 (_mm_castsi128_ps, _mm_castsi128_pd): New.
3504 2005-01-20 Richard Henderson <rth@redhat.com>
3507 * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
3508 __builtin_ia32_vec_init_v2si.
3509 (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
3510 * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
3511 (ix86_init_mmx_sse_builtins): Create it.
3512 (ix86_expand_builtin): Expand it.
3513 (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
3514 * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
3515 (vec_extractv2si_0, vec_extractv2si_1): New.
3517 2005-01-20 Richard Henderson <rth@redhat.com>
3520 * config/i386/i386.c (ix86_expand_push): New.
3521 * config/i386/mmx.md (push<MMXMODE>1): New.
3522 * config/i386/sse.md (push<SSEMODE>1): New.
3523 * config/i386/i386-protos.h: Update.
3525 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3527 * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
3530 2005-01-20 Richard Henderson <rth@redhat.com>
3532 * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
3533 * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
3535 2005-01-19 Richard Henderson <rth@redhat.com>
3538 * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
3539 to V4SFmode in SSE1 fallback load path.
3541 2005-01-19 Richard Henderson <rth@redhat.com>
3543 * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
3544 in QImode expansion to ix86_expand_vector_set.
3545 (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
3547 2005-01-19 Richard Henderson <rth@redhat.com>
3550 * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
3551 subclass of the input class.
3552 (ix86_secondary_memory_needed): Always true for cross-MMX classes.
3553 Always true for cross-SSE1 classes. Rationalize conditionals.
3554 * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
3555 * config/i386/i386.md (movsi_1): Add MMX/SSE zeros. Fix alternatives
3556 for SSE1. Don't check TARGET_INTER_UNIT_MOVES.
3557 (movdi_2): Add MMX/SSE zeros.
3558 (movdi_1_rex64): Likewise. Don't check TARGET_INTER_UNIT_MOVES.
3559 (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
3560 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
3561 (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
3562 (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
3563 (zero_extendsidi2_rex64_1): Remove.
3564 (MOV0 peephole): Check GENERAL_REG_P.
3566 2005-01-19 Richard Henderson <rth@redhat.com>
3569 * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
3571 (ix86_expand_vector_extract): Likewise.
3573 2005-01-19 Richard Henderson <rth@redhat.com>
3576 * expr.c (emit_move_change_mode): New argument force; use
3577 simplify_gen_subreg if true.
3578 (emit_move_via_alt_mode): Merge into ...
3579 (emit_move_via_integer): ... here.
3580 (emit_move_ccmode): Use emit_move_change_mode directly.
3582 2005-01-19 Richard Henderson <rth@redhat.com>
3585 * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
3586 (alpha_preferred_reload_class): Handle CONST_VECTOR.
3587 (alpha_emit_set_const_1): Add no_output parameter; don't emit
3589 (alpha_emit_set_const): Likewise. Make static.
3590 (alpha_emit_set_long_const): Make static.
3591 (alpha_extract_integer): Split out from alpha_expand_mov.
3592 (alpha_split_const_mov): Likewise.
3593 (alpha_expand_mov): Use them. Handle CONST_VECTOR.
3594 (alpha_legitimate_constant_p): New.
3595 * config/alpha/alpha-protos.h: Update.
3596 * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
3597 (LEGITIMATE_CONSTANT_P): Re-implement with a function.
3598 * config/alpha/alpha.md (movsi): Add n alternative.
3599 (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
3600 (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
3601 (splitters for all of the above): Use alpha_split_const_mov.
3602 * config/alpha/predicates.md (non_add_const_operand): New.
3603 (non_zero_const_operand): New.
3604 (input_operand): Use alpha_legitimate_constant_p after reload.
3606 2005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
3608 PR tree-optimization/19038
3609 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
3610 (add_candidate): Add ivs with increment in latch only if
3611 allow_ip_end_pos_p is true.
3612 (determine_iv_cost): Use empty_block_p.
3614 2005-01-19 Daniel Berlin <dberlin@dberlin.org>
3616 * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
3617 (compute_dominance_frontiers): Ditto.
3619 2005-01-19 Ralf Corsepius <ralf.corsepius@rtems.org>
3622 * config/sh/t-rtems: New.
3623 * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
3625 2005-01-19 Zdenek Dvorak <dvorakz@suse.cz>
3627 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
3628 the offset of the selected field.
3630 2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
3632 * tree-cfg.c (remove_forwarder_block): Fix the check to
3633 prevent a nonlocal label from appearing in the middle of a
3636 2005-01-19 Hans-Peter Nilsson <hp@axis.com>
3638 PR rtl-optimization/19462
3639 * reorg.c (find_end_label): Create return insn only if
3640 current_function_epilogue_delay_list is empty.
3642 2005-01-19 Paolo Bonzini <bonzini@gnu.org>
3644 * doc/passes.texi: Remove paragraph mentioning new-ra.
3646 2005-01-19 Jakub Jelinek <jakub@redhat.com>
3648 PR rtl-optimization/15139
3649 * combine.c: Include params.h.
3650 (count_rtxs): New function.
3651 (record_value_for_reg): If replace_rtx would replace at least
3652 2 occurrences of REG in VALUE and TEM is really large, replace REG with
3653 (clobber (const_int 0)) instead of TEM.
3654 * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
3655 * params.h (MAX_LAST_VALUE_RTL): New.
3656 * Makefile.in (combine.o): Depend on $(PARAMS_H).
3657 * doc/invoke.texi (--param max-last-value-rtl=N): Document.
3660 * c-typeck.c (digest_init): Only call build_vector if all constructor
3661 elements are *_CST nodes.
3662 * gimplify.c (gimplify_init_constructor): Likewise.
3665 * c-typeck.c (digest_init): Only call build_vector if inside_init
3668 2005-01-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
3670 * toplev.c (init_asm_output): Remove dead #ifdef.
3672 2005-01-18 Kaz Kojima <kkojima@gcc.gnu.org>
3674 * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
3676 2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
3678 * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
3679 accessing DECL_FUNCTION_CODE.
3680 * dojump.c (do_jump): Likewise.
3681 * gimplify.c (gimplify_call_expr): Likewise.
3682 * predict.c (expr_expected_value): Likewise.
3683 (strip_builtin_expect): Likewise.
3684 * tree-inline.c (estimate_num_insns_1): Likewise.
3685 * tree-ssa-loop-im.c (stmt_cost): Likewise
3686 * fold-const.c (fold): Test for BUILT_IN_NORMAL.
3687 (tree_expr_nonnegative_p): Likewise.
3689 2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
3691 * config/sparc/sparc.c (load_pic_register): Emit the appropriate
3692 variant of the load_pcrel_sym pattern.
3693 * config/sparc/sparc.md (P macro): Move to the top.
3694 (load_pcrel_sym): Macroize using P.
3695 (save_register_window): Likewise.
3697 2005-01-18 Aldy Hernandez <aldyh@redhat.com>
3699 * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
3702 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
3705 * c-typeck.c (build_asm_expr): Strip nops off
3706 input memory operands.
3708 2005-01-18 David Edelsohn <edelsohn@gnu.org>
3710 * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
3711 _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
3712 * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
3713 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
3715 2005-01-18 Joel Sherrill <joel.sherrill@oarcorp.com>
3718 * config/i386/i386.c (override_options): If the 80387 is disabled,
3719 then do not return FP values using FP registers.
3721 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
3723 * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
3724 c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
3725 combine.c, config.gcc, coverage.h, cse.c, cselib.c,
3726 defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
3727 flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
3728 gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
3729 output.h, postreload-gcse.c, postreload.c, recog.c,
3730 resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
3731 targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
3732 tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
3733 tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
3734 tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
3735 tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
3736 tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
3737 unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
3739 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
3740 config/alpha/alpha.c, config/arm/vfp.md,
3741 config/i386/emmintrin.h, config/i386/i386-modes.def,
3742 config/i386/i386-protos.h, config/i386/i386.h,
3743 config/i386/pmmintrin.h, config/i386/ppro.md,
3744 config/i386/predicates.md, config/i386/xmmintrin.h,
3745 config/i860/i860.c, config/ia64/ia64-modes.def,
3746 config/ia64/ia64-protos.h, config/ia64/ia64.h,
3747 config/ia64/ia64.md, config/ia64/itanium1.md,
3748 config/ia64/itanium2.md, config/ia64/predicates.md,
3749 config/iq2000/iq2000.h, config/mips/linux64.h,
3750 config/rs6000/aix41.h, config/rs6000/aix43.h,
3751 config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
3752 config/rs6000/rs6000.c, config/rs6000/rs6000.h,
3753 config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
3754 config/sparc/linux64.h, config/sparc/litecoff.h,
3755 config/sparc/sp64-elf.h, config/sparc/sparc.c,
3756 config/sparc/sparc.h, config/sparc/sparc.md,
3757 config/sparc/sysv4-only.h: Update copyright.
3759 2005-01-18 Richard Henderson <rth@redhat.com>
3762 * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
3764 2005-01-18 Marc Espie <espie@openbsd.org>
3765 * config/i386/openbsdelf.h: Typo.
3767 2005-01-18 Richard Henderson <rth@redhat.com>
3769 * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
3770 special case for sse.
3771 * config/i386/predicates.md (sse_comparison_operator): Likewise.
3773 2005-01-18 Dorit Naishlos <dorit@il.ibm.com>
3775 * tree-inline.c (estimate_num_insns_1): Added cases for
3776 ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
3778 2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
3780 PR rtl-optimization/19296
3781 * combine.c (simplify_comparison): Rewrite the condition under
3782 which a non-paradoxical SUBREG of a PLUS can be lifted when
3783 compared against a constant.
3785 2005-01-18 Andi Kleen <ak@muc.de>
3787 * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
3788 * c.opt (-Wpointer-sign): Add.
3789 * doc/invoke.texi: (-Wpointer-sign): Add.
3791 2005-01-18 Uros Bizjak <uros@kss-loka.si>
3793 * config/i386/i386.c (override_options): Revert 2004-11-24 change.
3794 * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
3795 *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
3796 logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
3797 exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
3798 nearbyintsf2): Disable for TARGET_SSE_MATH. Leave patterns enabled
3799 for TARGET_MIX_SSE_I387.
3800 (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
3801 sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
3802 atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
3803 log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
3804 floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
3805 (TARGET_SSE2 && TARGET_SSE_MATH). Leave patterns enabled for
3806 TARGET_MIX_SSE_I387.
3807 (atan2sf3, atan2df3, atan2xf3): Remove register constraints
3810 2005-01-18 Uros Bizjak <uros@kss-loka.si>
3813 * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
3814 Add movaps alternative for xmm reg->reg move.
3816 2005-01-17 Jeff Law <law@redhat.com>
3818 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
3819 at the end of the main DOM loop rather than just before DOM exits.
3821 2005-01-17 Diego Novillo <dnovillo@redhat.com>
3823 PR tree-optimization/19121
3824 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
3825 adding aliases to a name tag, also add them to the pointer's
3827 * tree-ssa-copy.c (merge_alias_info): Do not merge flow
3828 sensitive alias info at all. Only check that the two pointers
3829 have compatible pointed-to sets.
3830 * tree-ssa.c (verify_name_tags): Verify that the alias set of
3831 a pointer's type tag is a superset of the alias set of the
3834 2005-01-17 James E Wilson <wilson@specifixinc.com>
3837 * config/ia64/ia64.md (movxf): Handle general register source. Adjust
3838 comment to document why.
3840 2005-01-17 Richard Henderson <rth@redhat.com>
3842 * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
3843 sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
3844 sse2_vmsmaxv2df3_finite, sminv2df3_finite,
3845 sse2_vmsminv2df3_finite): New.
3846 (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
3847 sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
3848 Force op1 into register.
3850 2005-01-17 Kelley Cook <kcook@gcc.gnu.org>
3852 * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
3853 bubblestrap from always rebuilding build directory.
3855 2005-01-17 Ulrich Weigand <uweigand@de.ibm.com>
3857 * config/s390/s390.md ("*clc"): Remove incorrect '='.
3858 ("*cmpmem_short"): Likewise.
3860 2005-01-17 Steven Bosscher <stevenb@suse.de>
3862 * basic-block.h: Document BB_* flags.
3863 * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
3864 use an sbitmap instead.
3865 * sched-rgn.c (compute_trg_info): Likewise.
3867 2005-01-17 Richard Sandiford <rsandifo@redhat.com>
3869 * config.gcc (mips64*-*-linux*): Set the default abi to n32. Remove
3870 redundant target_cpu_default and extra_parts lines. Use the default
3872 * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
3873 (SUBTARGET_EXTRA_SPECS): Delete.
3874 (DRIVER_SELF_SPECS): Remove architecture lines. Set the ABI directly.
3875 (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
3876 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
3877 and "n32" for -mabi=n32.
3879 2005-01-17 Ian Lance Taylor <ian@airs.com>
3882 * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
3883 fold constant variables into initial values.
3885 2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
3887 * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
3889 * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
3890 through the statements backward.
3892 2005-01-17 Ian Lance Taylor <ian@airs.com>
3894 PR middle-end/13127:
3895 * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
3896 a variable set to the return value of the inlined function.
3898 2005-01-17 Mark Dettinger <dettinge@de.ibm.com>
3900 * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
3901 when modes are tieable.
3903 2005-01-17 Ranjit Mathew <rmathew@hotmail.com>
3905 * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
3906 of pthread_create to find out if threads are enabled.
3907 * gthr-posix95.h (__gthread_active_p): Likewise.
3909 2005-01-17 Paolo Bonzini <bonzini@gnu.org>
3911 * common.opt (-fnew-ra): Remove.
3913 * toplev.h (flag_new_regalloc): Remove.
3914 * Makefile.in (ra*.*): Don't mention.
3915 * passes.c (rest_of_handle_new_regalloc): Remove.
3916 (rest_of_handle_combine, rest_of_compilation): Always consider
3917 flag_new_regalloc as false.
3918 * doc/invoke.texi: Don't document -fnew-ra.
3920 2005-01-17 Paolo Bonzini <bonzini@gnu.org>
3922 * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
3923 last parameter to reg_scan.
3924 * loop.c (loop_optimize): Likewise.
3925 * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
3926 rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
3927 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
3928 rest_of_handle_gcse, rest_of_handle_loop_optimize,
3929 rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
3930 * regclass.c (reg_scan): Likewise, for the declaration.
3931 * rtl.h (reg_scan): Likewise, for the prototype.
3933 2005-01-17 Kazu Hirata <kazu@cs.umass.edu>
3935 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
3936 mark_dfs_back_edges.
3938 2005-01-16 Daniel Berlin <dberlin@dberlin.org>
3940 * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
3941 (compute_avail): Uses don't go in tmp_gen.
3943 2005-01-16 Steven Bosscher <stevenb@suse.de>
3945 * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
3946 loop to look for a free slot in a page entry.
3948 2005-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3951 * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
3952 * toplev.c (compile_file): Call process_pending_assemble_output_defs
3953 just before targetm.asm_out.file_end.
3954 * tree.h (process_pending_assemble_output_defs): Declare.
3955 * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
3957 (assemble_alias): Defer generation of assembly code for defines when
3958 TARGET_DEFERRED_OUTPUT_DEFS is true.
3959 * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
3960 * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
3961 * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
3963 2005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3966 * pa.c (pa_scalar_mode_supported_p): New function.
3967 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3968 * pa.h (MIN_UNITS_PER_WORD): Add comment.
3970 * pa-protos.h (prefetch_operand): Delete.
3971 (prefetch_cc_operand, prefetch_nocc_operand): New declations.
3972 * pa.c (prefetch_operand): Delete.
3973 (prefetch_cc_operand, prefetch_nocc_operand): New functions.
3974 * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
3975 (PREDICATE_CODES): Delete prefetch_operand. Add prefetch_cc_operand
3976 and prefetch_nocc_operand.
3977 * pa.md (prefetch): Rework to avoid reload problems handling short
3978 displacements when a cache control completer needs to be provided.
3979 (prefetch_32, prefetch_64): Delete.
3980 (prefetch_cc, prefetch_nocc): New patterns.
3982 2005-01-15 David Edelsohn <edelsohn@gnu.org>
3984 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
3986 2005-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3989 * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
3990 exceeds maximum alignment for global common data.
3991 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
3992 * som.h (MAX_OFILE_ALIGNMENT): Likewise.
3994 2004-01-15 Roger Sayle <roger@eyesopen.com>
3996 * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
3998 2004-01-15 Roger Sayle <roger@eyesopen.com>
4000 * harg-reg-set.h (reg_class_names): Prototype global array.
4001 * regclass.c (reg_class_names): Declare here and initialize to
4003 (dump_regclass): Remove local declaration of reg_class_names.
4004 (regclass): Likewise.
4005 * cfg.c (dump_flow_info): Likewise.
4006 * ra-debug.c (reg_class_names): Likewise.
4007 * regrename.c (reg_class_names): Likewise.
4008 * reload.c (reg_class_names): Likewise.
4009 * reload1.c (spill_failure): Likewise.
4010 * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
4012 2005-01-15 Ulrich Weigand <uweigand@de.ibm.com>
4014 * config/s390/s390.md ("reload_outti"): Remove predicate for
4015 output operand. Abort if operand is not a MEM.
4016 ("reload_outdi", "reload_outdf"): Likewise.
4018 2005-01-15 Marc Espie <espie@openbsd.org>
4020 * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
4021 (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
4022 * config/openbsd.h: Fix C++ includes for native configurations.
4023 Add proper OS_CPP_BUILTINS. Fix libspec for recent OpenBSD.
4024 Add trampoline support.
4025 * config/i386/openbsdelf.h: New.
4027 2005-01-15 Marc Espie <espie@openbsd.org>
4029 * collect2.c (main): Explicitly parse -dynamic-linker option.
4031 2005-01-15 Jakub Jelinek <jakub@redhat.com>
4033 PR tree-optimization/19060
4034 * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
4035 Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
4036 (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
4037 and handle extract_range_from_cond returning false.
4038 * fold-const.c (fold): Optimize comparisons with min/max even for
4039 width > HOST_BITS_PER_WIDE_INT.
4041 2005-01-15 Ralf Corsepius <ralf.corsepius@rtems.org>
4043 * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
4044 * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
4045 Remove little endian multilib variants.
4046 Add mips32 multilib variant.
4048 2005-01-15 Kazu Hirata <kazu@cs.umass.edu>
4050 * explow.c (copy_all_reg, stabilize): Remove.
4051 * expr.h: Remove the corresponding prototypes.
4053 * rtlanal.c (regs_set_between_p): Remove.
4054 * rtl.h: Remove the corresponding prototype.
4056 2005-01-14 David Edelsohn <edelsohn@gnu.org>
4058 * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
4059 to rs6000_nonimmediate_operand.
4060 * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
4061 rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
4062 * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
4063 rs6000_nonimmediate_operand.
4064 * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
4065 rs6000_nonimmediate_operand.
4067 2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
4069 * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
4071 2005-01-14 Aldy Hernandez <aldyh@redhat.com>
4073 * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
4075 (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
4076 (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
4078 * config/rs6000/rs6000.c (invalid_e500_subreg): New.
4079 (rs6k_nonimmediate_operand): New.
4080 (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
4082 (legitimate_lo_sum_address_p): Same.
4083 (rs6000_legitimize_address): Same.
4084 (rs6000_legitimize_reload_address): Same.
4085 (rs6000_legitimate_address): Same.