OSDN Git Service

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