OSDN Git Service

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