OSDN Git Service

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