OSDN Git Service

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