OSDN Git Service

PR tree-optimization/19937
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
2
3         PR tree-optimization/19937
4         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
5         to the type of the induction variable.
6
7 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
8
9         PR rtl-optimization/20117
10         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
11         the block including noncopyable insn.
12
13 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
14
15         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
16         calls to find_reg_note.
17
18 2005-02-24  Richard Henderson  <rth@redhat.com>
19
20         PR tree-opt/20127
21         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
22         the type.
23
24 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
25
26         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
27         vector types if to use base reg for misaligned non-word ld/std.
28
29 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
30
31         PR target/14619
32         * config/cris/cris.c (cris_target_asm_function_prologue): Create
33         dwarf2 label manually and put it after, not before the prologue.
34
35 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
36
37         PR target/19019
38         * reload.c (operands_match_p): Only increment register number for
39         SCALAR_INT_MODE_P modes in multiple hard registers.
40
41         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
42         Fix formatting.
43
44 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
45
46         * ChangeLog.5: Fix log message typo(s).
47         * ChangeLog.7: Likewise.
48         * ChangeLog.tree-ssa: Likewise.
49         * cfgexpand.c: Fix comment typo(s).
50         * conflict.c: Likewise.
51         * defaults.h: Likewise.
52         * dwarf2out.c: Likewise.
53         * gcse.c: Likewise.
54         * ggc-page.c: Likewise.
55         * tree-eh.c: Likewise.
56         * tree-ssa-dom.c: Likewise.
57
58 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
59
60         PR target/19019
61         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
62         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
63         if SHARED is defined.
64
65         PR target/20196
66         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
67         allow splitting only if operands 0 and 3 don't overlap.
68
69 2005-02-24  Richard Henderson  <rth@redhat.com>
70
71         PR middle-end/19953
72         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
73         (fold_builtin_1): Call them.
74         * fold-const.c (fold_complex_mult_parts): Split out from ...
75         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
76         (fold_complex_div_parts, fold_complex_div): New.
77         (fold): Use them.
78         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
79
80 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
81
82         * tree-ssa-ccp.c (visit_assignment): Verify that result of
83         VIEW_CONVERT_EXPR is_gimple_min_invariant.
84
85         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
86         (print_node): Likewise.
87         Print TYPE_SIZES_GIMPLIFIED.
88
89 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
90
91         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
92         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
93         operands as commutative in constraints.
94
95 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
96
97         * tree-into-ssa.c: Re-organize internal functions.
98
99 2005-02-24  Richard Henderson  <rth@redhat.com>
100
101         PR middle-end/18902
102         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
103         for c99.
104         * common.opt (fcx-limited-range): New.
105         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
106         * toplev.c (flag_complex_method): Initialize to 1.
107         (process_options): Set flag_complex_method to 0 if
108         flag_cx_limited_range.
109         * doc/invoke.texi (-fcx-limited-range): New.
110
111 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
112
113         * cse.c (delete_trivially_dead_insns): Speed up by using
114         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
115         prev_real_insn.
116
117 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
118
119         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
120         functions when -mid-shared-library is being used.
121
122 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
123
124         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
125         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
126         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
127         * system.h: Poison LINK_LIBGCC_SPECIAL.
128
129 2005-02-23  James E Wilson  <wilson@specifixinc.com>
130
131         * gengtype.c (note_insn_name): Make 1 element larger.
132
133 2005-02-23  Roger Sayle  <roger@eyesopen.com>
134
135         PR target/20018
136         PR rtl-optimization/20097
137         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
138         BImode SUBREGs of SImode registers which confuse the ia64 backend.
139
140 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
141
142         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
143         * t-aix52 (SHLIB_INSTALL): Same.
144
145 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
146
147         * genpreds.c: Update copyright.
148
149 2005-02-23  Michael Beach  <michaelb@ieee.org>
150
151         PR target/20159
152         * config/sparc/t-elf (startup files): Assemble with CPP.
153
154 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
155
156         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
157         (write_predicate_expr): Likewise.
158
159 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
160
161         PR tree-optimization/20100
162         PR tree-optimization/20115
163         * tree-optimize.c (init_tree_optimization_passes): Remove
164         pass_maybe_create_global_var.
165         * tree-pass.h (pass_maybe_create_global_var): Remove.
166         * tree-ssa-alias.c (aliases_computed_p): Declare.
167         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
168         (count_calls_and_maybe_create_global_var): Remove.
169         (pass_maybe_create_global_var): Remove.
170         (init_alias_info): Do not declare aliases_computed_p.
171         (maybe_create_global_var): If the function contains no
172         call-clobbered variables and a mix of pure/const and regular
173         function calls, create .GLOBAL_VAR.
174         Mark all call-clobbered variables for renaming.
175         (merge_pointed_to_info): Update comment.
176         (add_pointed_to_var): Likewise.
177         (is_escape_site): Likewise.
178         Accept struct alias_info * instead of size_t *.
179         Update all users.
180         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
181         as necessary.
182         * tree-ssa-operands.c (get_call_expr_operands): If
183         ALIASES_COMPUTED_P is false, do not add call-clobbering
184         operands.
185         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
186         (delete_tree_ssa): Likewise.
187
188 2005-02-22  James E Wilson  <wilson@specifixinc.com>
189
190         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
191         (do_compile): Do call it here.
192
193 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
194
195         PR rtl-optimization/20017.
196         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
197         rest_of_handle_cse2, rest_of_handle_gcse): Call
198         delete_dead_jumptables immediately before calling cleanup_cfg.
199
200 2005-02-22  Devang Patel  <dpatel@apple.com>
201
202         PR 19952
203         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip 
204         all labels
205         
206 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
207
208         * config/rs6000/aix.h (WINT_TYPE): Define.
209
210 2005-02-22  Stan Shebs  <shebs@apple.com>
211
212         * config/rs6000/rs6000.c (rs6000_override_options): Default to
213         natural alignment for 64-bit Darwin.
214         (rs6000_parse_alignment_option): Warn about uses of -malign-power
215         on 64-bit Darwin.
216         * doc/invoke.texi: Document this.
217
218 2005-02-22  DJ Delorie  <dj@redhat.com>
219
220         * c-common.c (c_common_type_for_mode): Pass the mode's precision
221         to make_[un]signed_type, not the mode itself.
222
223 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
224
225         * cfg.c (cached_make_edge): Call make_edge if edge cache is
226         not available.  Use tail calls wherever possible.
227         (make_edge): Call unchecked_make_edge to create an edge.
228
229         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
230         (coalesce_ssa_name): Don't check for
231         SSANORM_USE_COALESCE_LIST.
232         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
233
234 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
235
236         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
237         (rewrite_into_ssa): ... here.
238
239 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
240
241         PR tree-optimization/19786
242         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
243         tag to another's may-alias bitmap when adding to the other's list.
244
245 2005-02-21  DJ Delorie  <dj@redhat.com>
246
247         * tree-ssa-loop-ivopts.c (computation_cost): Start register
248         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
249         registers in unsupported ways.
250         * expmed.c (init_expmed): Likewise.
251         
252 2005-02-21  Stan Cox  <scox@redhat.com>
253
254         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
255
256 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
257
258         * tree-cfg.c (fold_cond_expr_cond): New.
259         (make_edges): Call fold_cond_expr_cond.
260         (find_taken_edge): Accept nothing but INTEGER_CST.
261         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
262         and 1.
263         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
264
265         * flow.c (delete_dead_jumptables): Speed up by scanning insns
266         that do not belong to any basic block.
267
268 2005-02-21  Jeff Law  <law@redhat.com>
269
270         * cfganal.c (find_unreachable_blocks): Manually CSE load of
271         e->dest.
272
273 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
274
275         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
276         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
277         Adjust their definitions.
278         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
279         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
280
281         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
282         genautomata.c, langhooks.c, langhooks.h, system.h,
283         config/arm/lib1funcs.asm: Update copyright.
284
285 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
286
287         * dbxout.c (dbxout_function_end): Emit Lscope label always.
288
289 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
290
291         PR bootstrap/13770
292         * doc/install.texi: Document --with-gc.
293
294 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
295
296         * simplify-rtx.c (simplify_unary_operation): Add a missing
297         "break" statement.
298
299 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
300
301         PR tree-optimization/18663
302         * tree-ssa-dom.c (extract_range_from_cond): Return 0
303         if the type has variable bounds.
304
305 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
306
307         * gcse.c: Remove an obsolete comment.
308
309         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
310
311 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
312
313         * doc/extend.texi (Function Attributes) <Attribute const>: The
314         attribute "pure" is below this text, not above.
315
316 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
317
318         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
319         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
320         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
321
322 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
323
324         PR 18785
325         * langhooks.h (struct lang_hooks): Add to_target_charset.
326         * langhooks.c (lhd_to_target_charset): New function.
327         * langhooks-def.h: Declare lhd_to_target_charset.
328         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
329         (LANG_HOOKS_INITIALIZER): Update.
330         * c-common.c (c_common_to_target_charset): New function.
331         * c-common.h: Declare it.
332         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
333         c_common_to_target_charset.
334
335         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
336         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
337         Delete definitions.
338         * system.h: Poison them.
339         * doc/tm.texi: Don't discuss them.
340         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
341         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
342         (pp_c_char): Do not attempt to generate letter escapes for
343         newline, tab, etc.
344         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
345         * config/mips/mips.c (mips_output_ascii): Likewise.
346
347 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
348
349         PR tree-optimization/19951
350         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
351         is abnormal.
352
353 2005-02-19  Steven Bosscher  <stevenb@suse.de>
354
355         PR middle-end/19698
356         * function.h (struct function): New field `max_loop_depth'.
357         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
358         (flow_loops_find): Reset the max loop depth count before finding loops.
359         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
360         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
361         (calculate_global_regs_live): Make sure the loop will terminate
362         when the initial sets are not empty.
363
364 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
365
366         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
367         object inside.
368         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
369
370 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
371
372         PR other/19525
373         * doc/invoke.texi: Remove documentation of %M spec.
374         * gcc.c: Likewise.
375         (init_spec): Remove %M suffix from -lgcc_s.
376         (do_spec_1): Remove 'M' case.
377         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
378         to put shared libraries in the multilib directory.  Remove the
379         shlib_so_soname substitution variable.  Don't add a multilib encoding
380         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
381         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
382         SHLIB_INSTALL as well as SHLIB_LINK.
383         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
384         (SHLIB_NAME): Delete.
385         (SHLIB_DIR): New macro.
386         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
387         (SHLIB_INSTALL): Adjust accordingly.
388         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
389         * config/t-slibgcc-sld: Likewise.
390         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
391         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
392         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
393         in $(SHLIB_DIR).
394         (SHLIBUNWIND_INSTALL): Adjust accordingly.
395         * config/i386/t-nwld (SHLIB_SONAME): Delete.
396         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
397         Use @shlib_base_name@ instead of @shlib_so_name@.
398         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
399         and @shlib_base_name@.so in @multilib_dir@.
400         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
401         to the install path.
402         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
403         (SHLIB_LINK): Remove previous workaround.
404         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
405         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
406         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
407         the install path.
408         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
409         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
410         (SHLIB_INSTALL): Adjust accordingly.
411         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
412         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
413         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
414         config/t-slibgcc-elf-ver.
415
416 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
417             Jakub Jelinek  <jakub@redhat.com>
418
419         PR tree-optimization/19828
420         * tree-ssa-loop-im.c: Add a TODO comment.
421         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
422         without side-effects.
423
424 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
425
426         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
427         call fold_convert.
428
429 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
430
431         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
432         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
433         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
434         functions.
435         (ia64_reorg): Delete fixup_errata call.
436         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
437         (TARGET_SWITCHES): Delete -mb-step entry.
438
439 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
440
441         PR c/20043
442         * c-typeck.c (composite_type): Handle quals in transparent unions.
443         (type_lists_compatible_p): Likewise.
444
445 2005-02-18  Stan Shebs  <shebs@apple.com>
446
447         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
448         expressions in the .literal8 section.
449
450 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
451
452         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
453
454 2005-02-18  Roger Sayle  <roger@eyesopen.com>
455
456         * fold-const.c (constant_boolean_node): Always create values of the
457         specified type, don't bother calling truthvalue_conversion.
458
459 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
460
461         * except.c (output_function_exception_table): Call
462         assemble_external_libcall (eh_personality_libfunc).
463
464 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
465
466         PR target/19886
467         * config/ia64/ia64.h (struct machine_function): Add state_num.
468         * config/ia64/ia64.c (process_epilogue,
469         process_for_unwind_directive): Use new unwind state numbers each
470         time rather than state 1.
471
472 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
473
474         PR target/20054
475         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
476         before the "*llgt_didi" pattern.
477
478 2005-02-18  Jason Merrill  <jason@redhat.com>
479
480         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
481
482 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
483
484         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
485         (div0): Use it in place of ARM_FUNC_ALIAS.
486         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
487
488 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
489
490         PR middle-end/20030
491         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
492         access, the lower bound of the array type if it exists.
493
494 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
495
496         PR c++/20008
497         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
498         cases that are out-of-range for the index type.
499
500 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
501
502         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
503         (estimate_case_costs): Don't call convert.
504         * expmed.c (expand_shift): Likewise.
505         (make_tree): Call fold_convert instead of convert.
506
507 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
508
509         PR c++/19813
510         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
511         that ref to be marked MEM_READONLY_P doesn't have base that needs
512         constructing.
513
514 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
515
516         * genautomata.c (output_get_cpu_unit_code_func,
517         output_cpu_unit_reservation_p): Don't generate old-style function
518         definitions.
519
520 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
521
522         PR c++/20023
523         PR tree-optimization/20009
524         * convert.c (convert_to_integer): Revert 2005-02-16 change.
525
526         PR tree-optimization/18947
527         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
528         inline, remove all nodes that are inlined into the extern inline
529         being redefined.
530
531 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
532
533         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
534         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
535         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
536         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
537         Update copyright.
538
539 2005-02-17  Roger Sayle  <roger@eyesopen.com>
540
541         PR tree-optimization/19917
542         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
543         to be potentially trapping.
544
545 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
546
547         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
548
549 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
550
551         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
552         tem becomes a local variable which is set to the value of the
553         back end defined INITIAL_FRAME_ADDRESS macro.
554         (expand_builtin_frame_address): Omit the base parameter to
555         expand_builtin_return_addr.
556         (expand_builtin_profile_func): Likewise.
557         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
558         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
559         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
560
561 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
562
563         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
564         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
565         * config/frv/frv.c (frv_function_epilogue): Likewise.
566
567 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
568
569         * lambda-code (perfect_nestify): Remove mark/unmark
570         for rewriting hack.
571         * tree-loop-linear.c (linear_transform_loops): Add
572         rewrite_into_ssa call so that ssa is correct for
573         rewriting into loop closed.
574
575 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
576
577         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
578         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
579         BITMAP_FREE.
580         * bt-load.c (btr_def_live_range, combine_btr_defs,
581         migrate_btr_def, migrate_btr_defs): Likewise.
582         * cfgcleanup.c (thread_jump): Likewise.
583         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
584         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
585         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
586         df_rd_local_compute, df_reg_info_compute): Likewise.
587         * dominance.c (init_dom_info, free_dom_info): Likewise.
588         * flow.c (init_propagate_block_info,
589         free_propagate_block_info): Likewise.
590         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
591         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
592         modify_reg_pav): Likewise.
593         * loop-invariant.c (find_defs, find_invariant_insn,
594         find_invariants, free_inv_motion_data): Likewise.
595         * predict.c (tree_predict_by_opcode,
596         estimate_bb_frequencies): Likewise.
597         * stmt.c (expand_case): Likewise.
598         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
599         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
600         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
601         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
602         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
603         rewrite_ssa_into_ssa): Likewise.
604         * tree-optimize.c (tree_rest_of_compilation): Likewise.
605         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
606         analyze_edges_for_bb, perform_edge_inserts): Likewise.
607         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
608         * tree-sra.c (tree_sra): Likewise.
609         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
610         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
611         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
612         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
613         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
614         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
615         Likewise.
616         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
617         calculate_live_on_entry, calculate_live_on_exit,
618         build_tree_conflict_graph): Likewise.
619         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
620         record_important_candidates, set_use_iv_cost, find_depends,
621         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
622         tree_ssa_iv_optimize_finalize): Likewise.
623         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
624         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
625         tree_duplicate_loop_to_header_edge): Likewise.
626         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
627         * tree-ssa.c (verify_flow_insensitive_alias_info,
628         verify_name_tags, verify_ssa, init_tree_ssa,
629         delete_tree_ssa): Likewise.
630         * tree-ssanames.c (marked_ssa_names, init_ssanames,
631         fini_ssanames): Likewise.
632         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
633
634 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
635
636         * config/rs6000/t-rtems: Completely reworked.
637
638 2005-02-17  Ira Rosen  <irar@il.ibm.com>
639
640         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
641
642 2005-02-17  Ira Rosen  <irar@il.ibm.com>
643
644         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
645         POINTER_TYPE_P when checking that type is a pointer.
646         (vect_get_memtag): Remove.
647         (vect_address_analysis): Use POINTER_TYPE_P. Call
648         vect_object_analysis with dummy parameter for memtag.
649         (vect_object_analysis): Extract memtag (functionality that
650         used to be in vect_get_memtag and moved here). Fix printings.
651         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
652         with correct parameters. Remove call to vect_get_memtag.
653
654 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
655
656         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
657         (tree-vectorizer.o): Added missing dependencies.
658
659         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
660         decleration.
661         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
662         declaration in tree-vectorizer.c, now has an extern declaration in
663         tree-vectorizer.h).
664         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
665         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
666         get_vectype_for_scalar_type, vect_is_simple_use,
667         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
668         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
669         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
670         vectorizable_store, vectorizable_operation, vectorizable_assignment,
671         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
672         find_loop_location): Likewise.
673
674         * tree-vectorizer.c (langhooks.h): #include removed.
675         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
676         moved to tree-vectorized.h.
677         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
678         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
679         get_vectype_for_scalar_type, vect_is_simple_use,
680         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
681         vect_supportable_dr_alignment, new_loop_vec_info,
682         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
683         vect_set_verbosity_level, find_loop_location): Likewise.
684
685         (vect_analyze_loop): Function externalized. Declaration moved to
686         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
687         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
688         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
689         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
690         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
691         vect_enhance_data_refs_alignment, vect_analyze_operations,
692         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
693         vect_stmt_relevant_p, vect_get_loop_niters,
694         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
695         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
696         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
697         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
698         vect_get_memtag): Likewise.
699
700         (vectorizable_load): Function externalized. Declaration moved to
701         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
702         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
703         vect_transform_loop): Likewise.
704         (vect_transform_stmt): Moved to tree-vect-transform.c.
705         (vect_align_data_ref, vect_create_destination_var,
706         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
707         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
708         vect_get_vec_def_for_operand, vect_init_vector,
709         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
710         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
711         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
712         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
713         vect_do_peeling_for_loop_bound): Likewise.
714
715         * tree-vect-analyze.c: New file.
716         * tree-vect-transform.c: New file.
717
718 2005-02-17  Jason Merrill  <jason@redhat.com>
719
720         PR mudflap/19319, c++/19317
721         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
722         slot explicit.
723
724 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
725
726         * doc/install.texi (Specific): Update link for Darwin-specific
727         tool binary site.
728
729 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
730
731         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
732         constant_boolean_node.
733
734 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
735
736         PR target/19019
737         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
738         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
739
740 2005-02-16  Richard Henderson  <rth@redhat.com>
741
742         PR 19920
743         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
744         with W_TYPE_SIZE.
745         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
746         replace uses with Wtype_MAXp1_F.
747         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
748         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
749         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
750         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
751         and HAVE_TFMODE as appropriate.
752         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
753         (__floatdisf): Likewise.
754         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
755         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
756         (Wtype_MAXp1_F): New.
757         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
758         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
759
760 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
761
762         * PR target/19162
763         * arm.c (arm_apply_result_size): New function.
764         * arm.h (APPLY_RESULT_SIZE): Define.
765         * arm-protos.h (arm_apply_result_size): Add prototype.
766         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
767         (movxf): New expand.
768         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
769         (call_value_symbol): Remove predicate for operand 0.
770         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
771         (untyped_call): Rework to correclty return values for any type.
772         (untyped_return): New expand.
773         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
774
775 2005-02-16  Stan Shebs  <shebs@apple.com>
776
777         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
778         * config/rs6000/t-darwin8: New, for 64-bit multilib.
779
780 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
781
782         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
783         configure settings on Solaris 7 and later.
784
785 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
786
787         PR tree-optimization/19865
788         * tree-optimize.c (init_tree_optimization_passes): Run
789         pass_may_alias after pass_sra.
790
791 2005-02-16  Richard Henderson  <rth@redhat.com>
792             Stuart Hastings  <stuart@apple.com>
793
794         PR debug/19521
795         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
796         Do nothing if debug info suppressed for this function.
797         (dbxout_begin_function): Early exit if debug info suppressed for
798         this function.
799
800 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
801
802         PR target/20007
803         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
804         find_basic_blocks.
805         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
806
807         PR tree-optimization/19967
808         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
809         expand_builtin_strchr, expand_builtin_strrchr): Take a new
810         argument TYPE.  Adjust calls to fold_builtin_XXX.
811         (expand_builtin, fold_builtin_1): Adjust calls to
812         expand_builtin_XXX.
813         (fold_builtin_strchr, fold_builtin_strpbrk,
814         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
815         result to a requested type TYPE.
816
817 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
818
819         PR middle-end/19857
820         * fold-const.c (fold): Don't optimize (T)(x & cst) to
821         (T)x & (T)cst if (T)cst overflows.
822         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
823         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
824
825 2005-02-15  Jeff Law  <law@redhat.com>
826
827         * gcse.c (blocks_with_calls): New bitmap.
828         (alloc_gcse_mem): Allocate it.
829         (free_gcse_mem): Free it.
830         (clear_modifY_mem_tables): Clear it.
831         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
832         when we encounter CALL_INSNs.
833         (compute_transp, case MEM): Handle blocks with calls separate
834         from blocks without calls.  Use bitmap iterators rather than
835         FOR_EACH_BB.
836
837 2005-02-15  Peter O'Gorman  <peter@pogma.com>
838
839         PR bootstrap/18810
840         * mklibgcc.in (vis_hide): Use a temporary object file, not
841         -o /dev/null.
842
843 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
844
845         PR target/19924
846         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
847         access optimization.
848
849 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
850             Alan Modra  <amodra@bigpond.net.au>
851
852         PR target/19019
853         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
854         (_xlqsub): Rename to __gcc_qsub.
855         (_xlqmul): Rename to __gcc_qmul.
856         (_xlqdiv): Rename to __gcc_qdiv.
857         Provide versioned symbol aliases with old names.
858         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
859         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
860         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
861         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
862         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
863
864 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
865
866         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
867         Fold ~(A - 1) and ~(A + -1) to -A.
868
869 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
870
871         PR pch/14940
872         PR target/19300
873         * config/host-linux.c (linux_gt_pch_use_address): Copy from
874         config/pa/pa-host.c:pa_gt_pch_use_address.
875
876 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
877
878         * tree-vn.c (get_value_handle): Make sure that given an
879         is_gimple_min_invariant expression, we always return it.
880
881 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
882
883         * passes.c (rest_of_handle_gcse): Fix a comment.
884
885 2005-02-15  Jeff Law  <law@redhat.com>
886
887         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
888         bitmap.
889         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
890         (canon_list_insert, record_last_mem_set_info): Similarly.
891         (clear_modify_mem_tables): Similarly.
892
893 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
894
895         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
896         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
897         config/mips/mips.md, config/rs6000/aix.h,
898         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
899
900 2005-02-15  Richard Henderson  <rth@redhat.com>
901
902         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
903         call to be best_edge.
904
905 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
906
907         * basic-block.h: Adjust the prototype for find_basic_blocks.
908         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
909         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
910         find_basic_blocks.
911
912         * flow.c (recompute_reg_usage): Remove all arguments.
913         * passes.c (rest_of_compilation): Adjust the call to
914         recompute_reg_usage.
915         * rtl.h: Adjust the prototype for recompute_reg_usage.
916
917 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
918
919         * tree-dump.c (dump_files): Update to reflect new member
920         of dump_file_info.
921         (dump_register): Add new argument.
922         Set glob name.
923         (dump_switch_p_1): Check against glob name if doglob was passed.
924         (dump_switch_p): Check against regular first, then glob if
925         we didn't have any hits on the dump name.
926         * tree-optimize.c (register_one_dump_file):
927         Pass in glob name as well.
928         * tree-pass.h (struct dump_file_info): Add glob
929         member.
930
931 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
932
933         PR preprocessor/16323
934         * doc/invoke.texi: Document that -Wendif-labels is on by default.
935
936 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
937
938         PR target/19019
939         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
940         (trunctfdf2_internal1): New.
941         (trunctfdf2_internal2): Renamed from trunctfdf2.
942
943 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
944
945         PR tree-optimization/19853
946         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
947
948 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
949
950         * passes.c (rest_of_handle_loop_optimize): Remove calls to
951         delete_dead_jumptables and cleanup_cfg.
952
953 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
954
955         * reload.c (find_reloads): Swap address_reloaded flags when
956         swapping commutative operands.
957
958 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
959
960         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
961         Use standard_iv_increment_position for computing the bsi position
962         for create_iv.
963         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
964         the bsi position.
965
966 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
967
968         PR target/17428
969         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
970         life range of hard registers.
971         * value-prof.c (insn_prefetch_values_to_profile): Only
972         scan normal insns.
973
974         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
975         profile in libcalls.
976
977 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
978
979         * bitmap.h (bitmap_and_compl_into): Return bool.
980         * bitmap.c (bitmap_and_compl_into): Return changed flag.
981
982 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
983
984         PR tree-optimization/19944
985         * fold-const.c (fold): Re-add ABS_EXPR folding.
986
987 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
988
989         PR target/19019
990         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
991         {TARGET,MASK}_XL_COMPAT.
992         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
993         MASK_XL_COMPAT.
994         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
995         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
996         TARGET_XL_COMPAT.
997         (rs6000_arg_partial_bytes): Same.
998         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
999         and XL compatibility enabled.
1000         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
1001         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
1002         test to final condition.
1003         (cmptf_internal2): New.
1004         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
1005         xl-compat.  Add TFmode information to description.
1006
1007 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
1008
1009         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
1010
1011 2005-02-13  Jason Merrill  <jason@redhat.com>
1012
1013         PR c++/16405
1014         * fold-const.c (fold_indirect_ref_1): Split out from...
1015         (build_fold_indirect_ref): Here.
1016         (fold_indirect_ref): New fn.
1017         * tree.h: Declare it.
1018         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
1019         (gimplify_modify_expr_rhs): Likewise.
1020         (gimplify_expr): Likewise.
1021
1022 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
1023
1024         PR tree-optimization/14303
1025         PR tree-optimization/15784
1026         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
1027         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
1028         ABS_EXPR<x> != 0 to x != 0.
1029
1030 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
1031
1032         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
1033         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
1034         spelling conventions.
1035
1036         * passes.c (rest_of_handle_gcse): Don't run cse_main and
1037         delete_trivially_dead_insns too many times.
1038
1039         * passes.c (rest_of_handle_gcse): Remove dead assignments to
1040         tem and tem2.
1041
1042 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1043
1044         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
1045         (vect_is_simple_iv_evolution): Remove redundant parameter
1046         and step check.
1047         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
1048         without last parameter.
1049         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
1050         Return pointer step. Call vect_is_simple_iv_evolution without
1051         last parameter. Check only that the step is multiple of size
1052         type. Remove stmt_vinfo updates.
1053         (vect_get_memtag_and_dr): Remove.
1054         (vect_get_memtag): New function.
1055         (vect_address_analysis): New function.
1056         (vect_object_analysis): New function.
1057         (vect_analyze_data_refs): Call vect_object_analysis and
1058         vect_get_memtag. Update stmt_vinfo fields.
1059
1060 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1061
1062         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
1063         exist and are objects. Remove checks for pointer.
1064         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
1065         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
1066         (vect_create_data_ref_ptr): Likewise.
1067         (vect_base_addr_differ_p): New function.
1068         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
1069         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
1070         Don't set the DR_BASE_NAME field of data-ref.
1071         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
1072
1073 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
1074
1075         * optabs.h (enum optab_index): Add new OTI_ldexp.
1076         (ldexp_optab): Define corresponding macro.
1077         * optabs.c (init_optabs): Initialize ldexp_optab.
1078         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
1079         patterns.
1080         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
1081         using ldexp_optab.
1082         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
1083         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
1084
1085         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
1086         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
1087         intrinsics.
1088
1089 2005-02-12  Ira Rosen  <irar@il.ibm.com>
1090
1091         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
1092         to base_address.
1093         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
1094         stmt_vec_info.
1095         (vect_get_base_and_offset): Always return an address.
1096         (vect_create_addr_base_for_vector_ref): Remove treatment for
1097         different data reference types.
1098         (vect_compute_data_ref_alignment): Rename base to base_address in
1099         stmt_vec_info. Get the object in order to force its alignment.
1100         (vect_get_memtag_and_dr): Rename base to base_address in
1101         stmt_vec_info. Extract the object for memtag analysis.
1102
1103 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
1104
1105         PR regression/19898.
1106         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
1107         changes cc_status, use apply modified_in_p to part of cc_status
1108         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
1109         body.
1110
1111 2005-02-11  Richard Henderson  <rth@redhat.com>
1112
1113         * tree-complex.c (expand_complex_libcall): New.
1114         (expand_complex_multiplication): Use it for c99 compliance.
1115         (expand_complex_division): Likewise.
1116         * fold-const.c (fold_complex_add, fold_complex_mult): New.
1117         (fold): Call them.
1118         * builtins.c (built_in_names): Remove const.
1119         * tree.c (build_common_builtin_nodes): Build complex arithmetic
1120         builtins.
1121         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
1122         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
1123         (built_in_names): Remove const.
1124         * c-common.c (c_common_type_for_mode): Handle complex modes.
1125         * flags.h, toplev.c (flag_complex_method): Rename from
1126         flag_complex_divide_method.
1127         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
1128         __mulsc3, __muldc3, __mulxc3, __multc3): New.
1129         * libgcc2.h: Declare them.
1130         * libgcc-std.ver: Export them.
1131         * mklibgcc.in (lib2funcs): Build them.
1132
1133 2005-02-11  Steven Bosscher  <stevenb@suse.de>
1134
1135         PR tree-optimization/19876
1136         Partially revert my change from 2005-01-14
1137         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
1138         (compute_antic): ...and remove the loop here.
1139
1140 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
1141
1142         PR middle-end/19858
1143         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
1144         is number of inner's bits, avoid creating a BIT_FIELD_REF.
1145
1146         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
1147         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
1148
1149 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
1150
1151         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1152         offsets for the big-endian 32-bit case.
1153
1154 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
1155
1156         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1157
1158 2005-02-11  Dale Johannesen  <dalej@apple.com>
1159
1160         * cselib.c (cselib_process_insn):  Clear out regs where
1161         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
1162         * reload.c (find_equiv_reg): Ditto.
1163
1164 2005-02-11  Ian Lance Taylor  <ian@airs.com>
1165
1166         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
1167         with no elements.
1168
1169         * tree.c (build_function_type_list): Work correctly if there are
1170         no arguments.
1171
1172 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
1173
1174         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
1175         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
1176         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
1177         TARGET_ZARCH instead of TARGET_64BIT.
1178
1179 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
1180
1181         * config/rs6000/t-rtems:
1182         (MULTILIB_OPTIONS): Remove mcpu=602.
1183         (MUTLILIB_DIRNAMES): Remove m602.
1184         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
1185         Let mcpu=602 match mcpu=603.
1186         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
1187
1188 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1189
1190         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
1191         signal trampolines.
1192
1193 2005-02-10  David Daney  <ddaney@avtrex.com>
1194
1195         * config/alpha/linux-unwind.h: Add exception clause to copyright.
1196         * config/i386/linux-unwind.h: Likewise.
1197         * config/ia64/linux-unwind.h: Likewise.
1198         * config/mips/linux-unwind.h: Likewise.
1199         * config/pa/linux-unwind.h: Likewise.
1200         * config/rs6000/linux-unwind.h: Likewise.
1201         * config/s390/linux-unwind.h: Likewise.
1202         * config/sh/linux-unwind.h: Likewise.
1203         * config/sparc/linux-unwind.h: Likewise.
1204
1205 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1206
1207         PR tree-optimization/17549
1208         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
1209         TER to replace a DEF with its expression if the DEF and the
1210         rhs of the expression we replace into have the same root
1211         variable.
1212
1213 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
1214
1215         * config/mips/mips.md: Fix the placement of the match_scratch in the
1216         lea64 peephole2.
1217
1218 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
1219
1220         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
1221         Fix comment typos.
1222
1223 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
1224
1225         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
1226         (strip_offset): Handle addresses.
1227         (add_address_candidates): Use strip_offset.
1228         (difference_cost): Reflect strip_offset change.
1229         (force_var_cost, difference_cost): Strip nops.
1230
1231 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
1232
1233         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
1234
1235         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
1236         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
1237         config/cris/cris-protos.h, config/cris/cris.c: Update
1238         copyright.
1239
1240 2005-02-10  Jeff Law  <law@redhat.com>
1241
1242         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
1243         (lookup_avail_expr): Similarly.
1244
1245 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
1246
1247         * builtins.c (fold_builtin_powi): New function.
1248         (fold_builtin_1): Call it.
1249
1250 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1251
1252         PR documentation/19309
1253         * doc/cpp.texi: The __GNUC__ and related predefined macros
1254         are also defined for the "standalone" cpp.
1255         Some non-GCC compilers may also define __GNUC__.
1256
1257 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
1258
1259         PR c/19342
1260         * c-typeck.c (common_type): New routine.  Old common_type renamed
1261         to...
1262         (c_common_type): ...this.
1263         (build_conditional_expr, build_binary_op): Use c_common_type instead
1264         of common_type.
1265
1266 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1267
1268         * doc/md.texi: Replace @samp{length} with @code{length}.
1269
1270 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
1271
1272         PR tree-optimization/18687
1273         * tree-flow.h (find_loop_niter): Declare.
1274         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
1275         Try using scev even for loops with more than one exit.
1276         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
1277         (struct ivopts_data): Added niters field.
1278         (struct nfe_cache_elt): New.
1279         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
1280         functions.
1281         (tree_ssa_iv_optimize_init): Initialize niters cache.
1282         (determine_number_of_iterations): Removed.
1283         (find_induction_variables): Do not call determine_number_of_iterations.
1284         Access niters for single exit through niter_for_single_dom_exit.
1285         (add_iv_outer_candidates): Access niters for single exit through
1286         niter_for_single_dom_exit.
1287         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
1288         number_of_iterations_cond.
1289         (iv_period): New function.
1290         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
1291         (may_replace_final_value): Take data argument.  Use
1292         niter_for_single_dom_exit.
1293         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
1294         (rewrite_use_compare): Pass data to may_eliminate_iv.
1295         (rewrite_use_outer): Pass data to may_replace_final_value.
1296         (free_loop_data): Clean up the niters cache.
1297         (tree_ssa_iv_optimize_finalize): Free the niters cache.
1298         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
1299         * tree-ssa-loop-niter.c (find_loop_niter): New function.
1300         (find_loop_niter_by_eval): Use tree_int_cst_lt.
1301         (num_ending_zeros): Moved to tree.c.
1302         * tree.h (num_ending_zeros): Declare.
1303         * tree.c (num_ending_zeros): Moved from tree.c.
1304
1305 2005-02-09  Richard Henderson  <rth@redhat.com>
1306
1307         * builtins.c (DEF_BUILTIN): Add COND argument.
1308         * tree.h (DEF_BUILTIN): Likewise.
1309         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
1310         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
1311         match.
1312         (DEF_BUILTIN_STUB): New.
1313         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
1314         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
1315         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
1316         * c-common.c (DEF_BUILTIN): Add COND argument.
1317         * tree.c (local_define_builtin): New.
1318         (build_common_builtin_nodes): New.
1319
1320 2005-02-09  Roger Sayle  <roger@eyesopen.com>
1321
1322         * fold-const.c (fold_strip_sign_ops): New function to simplify a
1323         floating point expression ignoring the sign of the result.
1324         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
1325         (fold) <MULT_EXPR>: Use it to simplify x*x.
1326         * tree.h (fold_strip_sign_ops): Prototype here.
1327         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
1328         argument.  Use fold_strip_sign_ops to simplify the first argument.
1329         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
1330         first argument when the second argument is an even integer
1331         constant, but only with -funsafe_math_optimizations.
1332         (fold_builtin_1): Update call to fold_builtin_copysign.
1333
1334 2005-02-09  Ian Lance Taylor  <ian@airs.com>
1335
1336         PR middle-end/19583
1337         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
1338         just check whether EH_FILTER_FAILURE falls through.
1339
1340 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1341
1342         * gcc/haifa-sched.c (schedule_block): Make queued sched group
1343         insns return to ready list in the next turn.
1344
1345 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
1346
1347         PR middle-end/19402
1348         * builtins.def: New __builtin_powi[lf].
1349         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
1350         (expand_builtin_powi): New function.
1351         (expand_builtin): Dispatch to expand_builtin_powi.
1352         * libgcc2.h: Add prototypes for __builtin_powi[lf].
1353         * libgcc2.c: Add __builtin_powi[lf] implementation.
1354         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
1355         * optabs.h: Add powi_optab.
1356         * optabs.c (init_optabs): Initialize powi_optab.
1357         * doc/extend.texi: Document __builtin_powi[lf].
1358
1359 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
1360
1361         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
1362         exists.
1363
1364 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
1365
1366         PR middle-end/19854
1367         * fold-const.c (try_move_mult_to_index): Remove redundant
1368         type argument.  Create ADDR_EXPR with correct type.
1369         (fold): Update callers of try_move_mult_to_index.  Convert
1370         result to the appropriate type.
1371
1372 2005-02-09  Roger Sayle  <roger@eyesopen.com>
1373
1374         PR target/19597
1375         * config/avr/avr.c (default_rtx_costs): Delete.
1376         (avr_operand_rtx_cost): New function.
1377         (avr_rtx_costs): Completely rewrite.
1378
1379 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
1380
1381         PR target/19806
1382         * config/cris/cris.c (in_code): New variable.
1383         (cris_output_addr_const): Now a static function, a wrapper for
1384         output_addr_const.
1385         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
1386         case from old cris_output_addr_const.
1387         (cris_asm_output_label_ref): Similar for LABEL_REF.
1388         (cris_output_addr_const_extra): Similar for UNSPEC.
1389         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
1390         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
1391         * config/cris/cris-protos.h (cris_output_addr_const): Remove
1392         declaration.
1393         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
1394         (cris_asm_output_label_ref): Declare.
1395
1396 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
1397
1398         PR preprocessor/19801
1399         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
1400         filenames that changed when libcpp was moved to the toplevel.
1401
1402 2005-02-07  Roger Sayle  <roger@eyesopen.com>
1403
1404         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1405         zero extensions of BImode operands.  Call lowpart_subreg instead
1406         of gen_lowpart_common and gen_lowpart_SUBREG.
1407
1408 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
1409
1410         PR ada/19489
1411         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
1412         * configure.ac: Set cc_for_cross_gnattools.
1413         * configure: Regenerate.
1414
1415 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
1416
1417         PR target/19803
1418         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
1419
1420 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1421
1422         PR debug/19327
1423         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
1424         of nested functions.
1425
1426 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
1427
1428         * doc/extend.texi: Document deprecated extensions allowing
1429         static floating-point members to have initializers and allowing
1430         floating-point literals in integral constant expressions.
1431
1432 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
1433
1434         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
1435         config/darwin7.h, config/mips/mips.c,
1436         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
1437         Update copyright.
1438
1439         * cse.c: Update comments.
1440
1441 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
1442
1443         PR middle-end/19775
1444         * builtins.c (fold_builtin_sqrt): Transform
1445         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
1446         pow(x,y*0.5).
1447
1448 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
1449             Dorit Naishlos  <dorit@il.ibm.com>
1450
1451         * doc/invoke.texi (ftree-vectorizer-verbose): New.
1452         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
1453         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
1454         was added.
1455         * tree.h (vect_set_verbosity_level): New extern function declaration
1456         added.
1457         * tree-vectorizer.h (verbosity_levels): New enum type.
1458         * tree-vectorizer.c (vect_debug_stats): Function removed.
1459         (vect_debug_details): Likewise.
1460         (vect_verbosity_level): Global variable was defined and initialized.
1461         (vect_dump): Global variable definition.
1462         (vect_print_dump_info): New function.
1463         (vect_set_dump_settings): New function.
1464         (vect_set_verbosity_level): New function.
1465         (vectorize_loops): Add call to vect_set_dump_settings.
1466
1467         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
1468         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1469         (slpeel_tree_peel_loop_to_edge): Likewise.
1470
1471         (vect_analyze_offset_expr): Call to vect_print_dump_info with
1472         appropriate verbosity level instead of call to vect_debug_details
1473         or vect_debug_stats.
1474         (vect_get_base_and_offset):
1475         (vect_create_addr_base_for_vector_ref):
1476         (get_vectype_for_scalar_type):
1477         (vect_create_data_ref_ptr):
1478         (vect_init_vector):
1479         (vect_get_vec_def_for_operand):
1480         (vect_finish_stmt_generation):
1481         (vectorizable_assignment):
1482         (vectorizable_operation):
1483         (vectorizable_store):
1484         (vectorizable_load):
1485         (vect_transform_stmt):
1486         (vect_update_ivs_after_vectorizer):
1487         (vect_do_peeling_for_loop_bound):
1488         (vect_update_inits_of_drs):
1489         (vect_do_peeling_for_alignment):
1490         (vect_transform_loop):
1491         (vect_is_simple_use):
1492         (vect_analyze_operations):
1493         (vect_is_simple_iv_evolution):
1494         (vect_analyze_scalar_cycles):
1495         (vect_analyze_data_ref_dependence):
1496         (vect_analyze_data_ref_dependences):
1497         (vect_compute_data_ref_alignment):
1498         (vect_enhance_data_refs_alignment):
1499         (vect_analyze_data_refs_alignment):
1500         (vect_analyze_data_ref_access):
1501         (vect_analyze_data_ref_accesses):
1502         (vect_analyze_pointer_ref_access):
1503         (vect_get_memtag_and_dr):
1504         (vect_analyze_data_refs):
1505         (vect_mark_relevant):
1506         (vect_stmt_relevant_p):
1507         (vect_mark_stmts_to_be_vectorized):
1508         (vect_can_advance_ivs_p):
1509         (vect_get_loop_niters):
1510         (vect_analyze_loop_form):
1511         (vect_analyze_loop):
1512         (vectorize_loops): Likewise.
1513
1514         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
1515         (vect_update_inits_of_drs):
1516         (vect_do_peeling_for_alignment):
1517         (vect_transform_loop):
1518         (vect_analyze_operations):
1519         (vect_analyze_scalar_cycles):
1520         (vect_analyze_data_ref_dependences):
1521         (vect_analyze_data_refs_alignment):
1522         (vect_analyze_data_ref_accesses):
1523         (vect_analyze_data_refs):
1524         (vect_mark_stmts_to_be_vectorized):
1525         (vect_get_loop_niters):
1526         (vect_analyze_loop_form):
1527         (vect_analyze_loop): Likewise.
1528         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
1529
1530 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
1531
1532         PR bootstrap/19796
1533         Revert:
1534         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
1535         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
1536         either -ffast-math or -funsafe-math-optimizations is in use.
1537
1538         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
1539         * config/mips/irix-csr.c: New file.
1540         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
1541         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
1542         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
1543         executables.
1544
1545 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
1546
1547         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
1548         redundant, incorrect definitions.
1549
1550         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
1551         expand.
1552         ("*tls_indirect_call"): New, reference hard regs directly.
1553         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
1554
1555 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
1556
1557         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
1558         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
1559
1560 2005-02-06  Roger Sayle  <roger@eyesopen.com>
1561
1562         PR rtl-optimization/19800
1563         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
1564         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
1565         gen_lowpart.
1566
1567 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
1568
1569         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
1570
1571 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
1572
1573         PR other/17135
1574         * doc/invoke.texi: Correct documentation of -freorder-functions.
1575
1576 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1577
1578         PR other/14402
1579         * doc/invoke.texi: Don't mention gccbug.
1580
1581 2005-02-06  Roger Sayle  <roger@eyesopen.com>
1582             Andrew Pinski  <pinskia@physics.uc.edu>
1583             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
1584
1585         * simplify-rtx.c (simplify_relational_operation_1): Simplify
1586         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
1587         into just (zero_extract:SI FOO (const_int 1) BAR).
1588
1589 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1590
1591         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
1592         macro locally.  Don't give last revision date.  Use GCC version
1593         number from gcc-common.texi.
1594         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
1595         revision date.  Use GCC version number from gcc-common.texi.
1596         Describe being a library as current state rather than as 3.x
1597         history.
1598         * doc/gcc.texi: Remove last update date.
1599         * doc/gccint.texi: Likewise.  Update copyright dates.
1600         * doc/install.texi: Update copyright dates.
1601
1602 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1603
1604         PR other/7549
1605         * doc/invoke.texi: Mention for each option included in -Wall that
1606         it is included in -Wall.
1607         * doc/gcc.texi: Update copyright and last modification date.
1608
1609 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
1610
1611         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
1612         unnecessary cast to original induction variable increments.
1613
1614 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
1615
1616         PR tree-optimization/18219
1617         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
1618         in distributed form.
1619
1620 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
1621
1622         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
1623         Set bitpos and offset later in the function.  Do nothing if the
1624         target is a register and if the bitfield lies completely outside
1625         that register.
1626         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
1627         here.  Return an uninitialised register if the source value is stored
1628         in a register and the bitfield lies completely outside that register.
1629
1630 2005-02-06  Steven Bosscher  <stevenb@suse.de>
1631
1632         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
1633         not SET_DEST.
1634
1635 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
1636
1637         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
1638
1639 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
1640
1641         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
1642         * config/darwin8.h: New.
1643         * config/darwin7.h: Update comment.
1644
1645 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
1646             Dorit Naishlos  <dorit@il.ibm.com>
1647
1648         * tree-vectorizer.h (LOC): New type.
1649         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
1650         (loop_line_number): New field in struct _loop_vec_info.
1651         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
1652
1653         * tree-vectorizer.c (input.h): Included.
1654         (find_loop_location): New function.
1655         (vect_debug_stats): Argument changed from loop to LOC. Computation of
1656         loop line number removed.
1657         (vect_debug_details): Likewise.
1658         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
1659
1660         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
1661         call to vect_debug_details/stats changed from loop to loop_loc.
1662         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1663         (slpeel_tree_peel_loop_to_edge): Likewise.
1664
1665         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
1666         changed from NULL to UNKNOWN_LOC.
1667         (vect_get_base_and_offset):
1668         (vect_create_addr_base_for_vector_ref):
1669         (get_vectype_for_scalar_type):
1670         (vect_create_data_ref_ptr):
1671         (vect_init_vector):
1672         (vect_get_vec_def_for_operand):
1673         (vect_finish_stmt_generation):
1674         (vectorizable_assignment):
1675         (vectorizable_operation):
1676         (vectorizable_store):
1677         (vectorizable_load):
1678         (vect_transform_stmt):
1679         (vect_update_ivs_after_vectorizer):
1680         (vect_do_peeling_for_loop_bound):
1681         (vect_do_peeling_for_alignment):
1682         (vect_transform_loop):
1683         (vect_is_simple_use):
1684         (vect_analyze_operations):
1685         (vect_is_simple_iv_evolution):
1686         (vect_analyze_scalar_cycles):
1687         (vect_analyze_data_ref_dependences):
1688         (vect_compute_data_ref_alignment):
1689         (vect_enhance_data_refs_alignment):
1690         (vect_analyze_data_ref_access):
1691         (vect_analyze_data_ref_accesses):
1692         (vect_analyze_pointer_ref_access):
1693         (vect_get_memtag_and_dr):
1694         (vect_analyze_data_refs):
1695         (vect_mark_relevant):
1696         (vect_stmt_relevant_p):
1697         (vect_mark_stmts_to_be_vectorized):
1698         (vect_can_advance_ivs_p):
1699         (vect_get_loop_niters):
1700         (vect_analyze_loop):
1701         (vectorize_loops): Likewise.
1702
1703         (vectorizable_load): Argument in call to vect_debug_details/stats
1704         changed from loop to LOOP_LOC (loop_vinfo).
1705         (vect_transform_loop):
1706         (vect_analyze_operations):
1707         (vect_analyze_scalar_cycles):
1708         (vect_analyze_data_ref_dependence):
1709         (vect_enhance_data_refs_alignment):
1710         (vect_analyze_data_ref_accesses):
1711         (vect_analyze_pointer_ref_access):
1712         (vect_analyze_data_refs):
1713         (vect_analyze_loop): Likewise.
1714
1715         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
1716         changed from loop to loop_loc.
1717
1718         (vect_enhance_data_refs_alignment): Removed unused variable loop.
1719
1720 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
1721             Dorit Naishlos  <dorit@il.ibm.com>
1722
1723         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
1724         declaration added.
1725         (vect_analyze_data_ref_dependences): Likewise.
1726
1727         (vect_is_simple_use): Argument changed from loop structure to
1728         loop_vect_info structure.
1729         (vect_can_advance_ivs_p): Likewise.
1730         (vect_create_index_for_vector_ref): Likewise.
1731         (vect_update_ivs_after_vectorizer): Likewise.
1732         (new_stmt_vec_info): Likewise.
1733
1734         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
1735         changed from loop to loop_vinfo.
1736         (vect_create_data_ref_ptr): First argument in call to
1737         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
1738         (vectorizable_assignment): Second argument in call to vect_is_simple_use
1739         was changed from loop to loop_vinfo.
1740         (vectorizable_operation): Likewise.
1741         (vectorizable_store): Likewise.
1742         (vect_mark_stmts_to_be_vectorized): Likewise.
1743         (vect_do_peeling_for_loop_bound): First argument in call to
1744         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
1745         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
1746         was changed from loop to loop_vinfo.
1747         (vect_analyze_data_ref_dependences): Third argument in call to
1748         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
1749
1750         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
1751         (vect_create_data_ref_ptr): Likewise.
1752         (vect_init_vector): Likewise.
1753         (vect_get_vec_def_for_operand): Likewise.
1754         (vectorizable_assignment): Likewise.
1755         (vectorizable_operation): Likewise.
1756         (vectorizable_store): Likewise.
1757         (vectorizable_load): Likewise.
1758         (vect_update_ivs_after_vectorizer): Likewise.
1759         (vect_is_simple_use): Likewise.
1760         (vect_analyze_data_ref_dependence): Likewise.
1761         (vect_analyze_pointer_ref_access): Likewise.
1762         (vect_can_advance_ivs_p): Likewise.
1763
1764         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
1765         before _stmt_vec_info.
1766         (_stmt_vec_info): Loop field replaced by loop_vec_info.
1767         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
1768         (new_stmt_vec_info): Argument changed from loop structure to
1769         loop_vect_info structure
1770
1771         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
1772         (vect_analyze_offset_expr): Avoid 80 columns overflow.
1773         (vect_create_addr_base_for_vector_ref): Likewise.
1774         (vect_analyze_pointer_ref_access): Likewise.
1775
1776 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
1777
1778         PR tree-opt/19768
1779         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
1780         phi flag if the phi is abnormal.
1781
1782 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
1783
1784         PR tree-opt/19736
1785         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
1786         information for the new statement.
1787
1788 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
1789
1790         PR driver/19117
1791         * gcc.c (main): Include the target in -v output.
1792
1793 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
1794
1795         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
1796         Do not drop the extend if we'd have to add a paradoxical subreg
1797         later.  Include optabs.h and insn-codes.h.
1798         * Makefile.in (combine.o): Depend on $(OPTABS_H).
1799
1800 2005-02-02  Roger Sayle  <roger@eyesopen.com>
1801
1802         PR middle-end/19405
1803         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
1804         * fold-const.c (const_binop): Avoid constant folding floating
1805         point operations in modes that use composite representations.
1806         * simplify-rtx.c (simplify_binary_operation): Likewise.
1807
1808 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
1809
1810         * config/rs6000/altivec.md (altivec_dst): Make the first operand
1811         a REG, not a MEM.
1812         (altivec_dstt): Likewise.
1813         (altivec_dstst): Likewise.
1814         (altivec_dststt): Likewise.
1815         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
1816         of first operand.
1817
1818 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1819
1820         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
1821         EXPR_LOCUS from orig_cond to the new cond_stmt.
1822         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
1823         the new vec_stmt.
1824
1825 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1826
1827         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
1828         standard_iv_increment_position. Remove call to bsi_next
1829         (no need to bump the iterator anymore).
1830         (vect_create_index_for_vector_ref): Call
1831         standard_iv_increment_position. Remove second function argument.
1832         (vect_finish_stmt_generation): Remove call to bsi_next
1833         (no need to bump the iterator anymore).
1834         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
1835         to vect_create_index_for_vector_ref.
1836
1837 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1838
1839         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
1840         phis are used out of the loop.
1841
1842 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
1843
1844         PR c/17807
1845         * c-decl.c (undef_nested_function): New variable.
1846         (pop_scope): Diagnose undefined nested functions.
1847         (finish_function): Don't attempt cgraph processing or genericizing
1848         if current top-level function contained an undefined nested
1849         function.  Reset undef_nested_function at the end of a top-level
1850         function.
1851
1852 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
1853
1854         * tree.c (build_int_cst_type): Take sign of the value into account
1855         when deciding whether sign extend the value.
1856
1857 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1858
1859         PR c/18502
1860         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
1861         (cpp_options, cc1_options): Change %{std*&ansi} to
1862         %{std*&ansi&trigraphs}.
1863
1864 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1865
1866         * cse.c: Update comments.
1867
1868 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
1869
1870         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
1871         arguments go on the stack.  Do not put complex doubles in odd/even
1872         pairs.
1873
1874 2005-02-02  Steven Bosscher  <stevenb@suse.de>
1875
1876         * doc/invoke.texi: Update the options enabled at -O1, -O2,
1877         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
1878         -ftree-pre, and -fthread-jumps.
1879
1880 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
1881
1882         PR tree-optimization/19578
1883         * tree-flow.h (modified_noreturn_calls): Declare.
1884         (noreturn_call_p): Declare.
1885         * tree-flow-inline.h (noreturn_call_p): New function.
1886         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
1887         * tree-cfg.c (modified_noreturn_calls): New variable.
1888         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
1889         that contain a mid-block noreturn call.
1890         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
1891
1892 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1893
1894         * df.c (df_def_record_1, df_uses_record): Don't use
1895         DF_FOR_REGALLOC.
1896         * df.h (DF_FOR_REGALLOC): Remove.
1897
1898 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1899
1900         PR c/19435
1901         * c-typeck.c (really_start_incremental_init): Reset
1902         constructor_max_index for arrays of incomplete type.
1903
1904 2005-02-02  Jeff Law  <law@redhat.com>
1905
1906         * gcse.c (struct reg_set): Store the block index where the register
1907         was set rather than the setting insn.
1908         (record_one_set, compute_transp): Corresponding changes.
1909         (pre_insert_copy_insn): Do not call replace_one_set.
1910         (replace_one_set): Remove.
1911
1912 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1913
1914         PR other/15514
1915         * doc/gcov.texi: Fix typo.
1916
1917 2005-02-01  Richard Henderson  <rth@redhat.com
1918
1919         PR target/19680
1920         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
1921         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
1922         type to bool.
1923         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
1924         * config/i386/i386-protos.h: Update.
1925
1926 2005-02-01  Steven Bosscher  <stevenb@suse.de>
1927
1928         PR tree-optimization/19217
1929         * tree-cfg.c (verify_expr): Use the data field to see if TP was
1930         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
1931         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
1932         that it is walking a PHI node.
1933
1934 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
1935
1936         * doc/extend.texi (Nested Functions): Update.
1937
1938 2005-02-01  Richard Henderson  <rth@redhat.com>
1939
1940         PR 19696
1941         * optabs.c (expand_copysign_absneg): Export.
1942         * optabs.h (expand_copysign_absneg): Declare.
1943         * config/rs6000/rs6000.md (copysigntf3): New.
1944
1945 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
1946
1947         PR tree-optimization/19633
1948         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
1949         * tree-ssa-alias.c (init_alias_info): Initialize.
1950         (merge_pointed_to_info): Set.
1951         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
1952         (dump_points_to_info_for): Show value of pt_null.
1953         (struct count_ptr_d): Declare.
1954         (find_ptr_dereference): Remove.
1955         (ptr_is_dereferenced_by): Remove.
1956         (count_ptr_derefs): New local function.
1957         (count_uses_and_derefs): New local function.
1958         (compute_points_to_and_addr_escape): Call it.  If the number
1959         of dereferences is greater than zero, mark the pointer as
1960         dereferenced.  If there are fewer dereferences than uses of
1961         the pointer, the pointer's value escapes.
1962
1963 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
1964
1965         PR tree-optimization/19670
1966         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
1967         here...
1968         (verify_use): ... set it here, instead.
1969
1970 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
1971
1972         * doc/sourcebuild.texi (Test directives): Fix formatting.
1973
1974         * doc/sourcebuild.texi (Test directives): Describe selector
1975         expressions.
1976
1977 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
1978
1979         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
1980         specific 64-bit CPUs.
1981
1982 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
1983
1984         PR target/16201
1985         * arm.c (arm_eliminable_register): New function.
1986         (adjacent_mem_locations): Don't allow eliminable registers.  Use
1987         HOST_WIDE_INT for address offsets.
1988         * arm-protos.h (arm_eliminable_register): Add prototype.
1989
1990 2005-02-01  Steven Bosscher  <stevenb@suse.de>
1991
1992         PR optimization/15242
1993         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
1994         * basic-block.h (duplicate_computed_gotos): Add prototype.
1995         * bb-reorder.c (duplicate_computed_gotos): New function to
1996         duplicate sufficiently small blocks ending in a computed jump.
1997         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
1998         if not optimizing for size.
1999         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
2000         never do tail merging for blocks ending in a computed jump.
2001         * doc/invoke.texi: Document the max-goto-duplication-insns param.
2002
2003 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2004
2005         Patch from Richard Sandiford <rsandifo@redhat.com>
2006         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
2007         from inheriting a subreg equivalence with a non-spill register.
2008
2009         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
2010
2011 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
2012
2013         * config/frv/frv.c (movcc_fp_destination_operand): New.
2014         (gpr_or_memory_operand): Fix typo in comment.
2015         (gpr_or_memory_operand_with_scratch): New.
2016         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
2017         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
2018         movcc_fp_destination_operand.
2019         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
2020         Legitimize memory addresses using a scratch register.
2021
2022 2005-01-31  Jeff Law  <law@redhat.com>
2023
2024         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
2025         bitmap a sparse bitmap instead of a simple bitmap.
2026         (mark_def_sites_initialize_block):  Corresponding changes.
2027         (ssa_mark_def_sites_initialize_block): Likewise.
2028         (ssa_mark_phi_uses): Likewise.
2029         (mark_def_site, ssa_mark_def_sites): Likewise.
2030         (mark_def_site_blocks): Likewise.
2031         (rewrite_ssa_into_ssa): Likewise.
2032
2033         * tree-ssa-dom.c (record_cond): Pass correct variable type
2034         for last argument to htab_find_slot_with_hash.
2035
2036         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
2037         effects when optimizing 0 % X.  Do not try to optimize X % 0.
2038
2039 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
2040
2041         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
2042         1_mmalua.
2043
2044 2005-02-01  Eric Christopher  <echristo@redhat.com>
2045
2046         * config/mips/mips.c (override_options): Warn if -mint64
2047         is used.
2048         * doc/invoke.texi (MIPS Options): Document that -mint64 is
2049         deprecated.
2050
2051 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
2052
2053         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
2054         timestamp.
2055         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
2056         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
2057         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
2058         (cached_regno): Initialize to INVALID_REGNUM.
2059         (cse_reg_info_table_size,
2060         cse_reg_info_table_first_uninitialized,
2061         cse_reg_info_timestamp): New.
2062         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
2063         get_cse_reg_info.
2064         (init_cse_reg_info, get_cse_reg_info_1): New.
2065         (get_cse_reg_info): Cache the last look-up.
2066         (new_basic_block): Update the code to clear mappings from
2067         registers to cse_reg_info entries.
2068         (cse_main): Call init_cse_reg_info.
2069
2070         * cse.c (get_cse_reg_info): Update a comment.
2071
2072 2005-01-31  Steven Bosscher  <stevenb@suse.de>
2073
2074         PR c/19333
2075         * c-decl.c (start_decl): Do not warn about arrays of elements with
2076         an incomplete type here.
2077         (grokdeclarator): Do it here by making a pedwarn an error.
2078         * c-typeck.c (push_init_level): If there were previous errors with
2079         the constructor type, do not warn about braces for initializers.
2080         (process_init_element): Likewise for excess initializer elements.
2081
2082 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
2083
2084         * cse.c (delete_trivially_dead_insn): Don't iterate.
2085
2086 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
2087
2088         * config/rs6000/rs6000.md (copysignsf3): New expand.
2089         (copysigndf3): Likewise.
2090
2091 2005-01-31  Steven Bosscher  <stevenb@suse.de>
2092
2093         * recog.c (constrain_operands): Only look for earlyclobber operand
2094         conflicts if an '&' constraint was seen.
2095
2096 2005-01-31  Marc Espie <espie@openbsd.org>
2097
2098         * config.gcc: Don't include embedded systems fragment, switches default
2099         debugging format to ELF.
2100         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
2101         longer pick it up there.
2102
2103 2005-01-31  Dale Johannesen  <dalej@apple.com>
2104
2105         * doc/extend.texi (nested functions): Fix linkage description.
2106         Clarify that static is not allowed.
2107
2108 2005-01-31  Dale Johannesen  <dalej@apple.com>
2109
2110         * config/rs6000/darwin.md (movsf_low_di):  Make work.
2111         (movdf_low_di):  Make work.
2112
2113 2005-01-31  Dale Johannesen  <dalej@apple.com>
2114
2115         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
2116         Make work for 64 bit.
2117
2118 2005-01-31  Roger Sayle  <roger@eyesopen.com>
2119             Dale Johannesen  <dalej@apple.com>
2120
2121         PR middle-end/19650
2122         * fold-const.c (fold_binary_op_with_conditional_arg):
2123         Make types match original operands, before STRIP_NOPS.
2124
2125 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
2126
2127         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
2128         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
2129         (struct gcc_sigcontext): Delete.  Merge contents to..
2130         (struct gcc_ucontext): ..here.
2131         (get_sigcontext): Delete.
2132         (get_regs): New function, like get_sigcontext but return regs ptr.
2133         64-bit version finds regs from r1 to support vdso.
2134         (ppc_linux_aux_vector): New function.
2135         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
2136         and vector regs.
2137
2138 2005-01-31  Ira Rosen  <irar@il.ibm.com>
2139
2140         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
2141         sizetype.
2142         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
2143         redundant fold. Fix misalignment for MINUS_EXPR.
2144         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
2145         (vect_analyze_pointer_ref_access): Likewise.
2146         (vect_get_memtag_and_dr): Likewise.
2147
2148 2005-01-31  Richard Henderson  <rth@redhat.com>
2149
2150         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
2151         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
2152         absnegdf2_i387, absnegxf2_i387): Likewise.
2153
2154 2005-01-31  Richard Henderson  <rth@redhat.com>
2155
2156         PR 19696
2157         * optabs.c (expand_copysign_absneg): New.
2158         (expand_copysign_bit): Split out from ...
2159         (expand_copysign): ... here.  Use expand_copysign_absneg.
2160
2161 2005-01-30  Roger Sayle  <roger@eyesopen.com>
2162
2163         PR middle-end/19697
2164         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
2165         constant as the second operand and a register as the third.
2166
2167 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
2168
2169         PR target/19704
2170         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
2171         that dllimport'd functions do not use all call-clobbered registers
2172         to pass parameters.
2173
2174 2005-01-30  Richard Henderson  <rth@redhat.com>
2175
2176         PR 19696
2177         * optabs.c (expand_absneg_bit): Split out from expand_unop and
2178         expand_abs_nojump and generalize.  Use operand_subword and
2179         emit_no_conflict_block.  Support large modes.
2180         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
2181         back to maximum.
2182         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
2183         negation to subtraction.
2184         (expand_copysign): Check that the format has signed zeros.
2185         Use operand_subword and emit_no_conflict_block.  Support large modes.
2186
2187 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
2188
2189         Fix PR tree-optimization/19624
2190
2191         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
2192         * tree-ssa-pre.c: Add cfgloop.h.
2193         Update comment.
2194         (pre_stats): New member, constified.
2195         (inserted_exprs): New static variable.
2196         (NECESSARY): New macro.
2197         (create_expression_by_pieces): Fold the expression, and
2198         mark it as defaulting to not necessary. Also put in
2199         inserted_exprs.
2200         (fully_constant_expression): New function.
2201         (insert_into_preds_of_block): Modify to not insert phis when we
2202         are playing with induction variables.
2203         Push phis onto the inserted_exprs vector, and mark them as not
2204         necessary by default.
2205         (insert_aux): Call fully_constant_expression on eprime.
2206         If all edges produce the same value, mark it constant.
2207         (mark_operand_necessary): New function.
2208         (remove_dead_inserted_code): New function.
2209         (init_pre): Init loop optimizer to get loop info.
2210         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
2211         (execute_pre): Commit edge inserts, then remove dead code.
2212
2213 2005-01-30  Richard Henderson  <rth@redhat.com>
2214
2215         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
2216         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
2217
2218 2005-01-30  Richard Henderson  <rth@redhat.com>
2219
2220         PR target/19700
2221         * config/i386/i386.c (ix86_expand_copysign): New.
2222         (ix86_split_copysign_const): New.
2223         (ix86_split_copysign_var): Rename from ix86_split_copysign,
2224         rearrange op1/nmask operands.
2225         * config/i386/i386-protos.h: Update.
2226         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
2227         (copysigndf3): Likewise.
2228         (copysignsf3_const, copysigndf3_const): New.
2229         (copysignsf3_var): Rename from copysignsf3, split out splitter
2230         and fix split predicate for X constraint.
2231         (copysigndf3_var): Similarly.
2232
2233 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
2234
2235         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
2236         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
2237         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
2238
2239 2005-01-29  Richard Henderson  <rth@redhat.com>
2240
2241         PR target/19690
2242         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
2243         of # and * in constraints.
2244
2245 2005-01-29  Richard Henderson  <rth@redhat.com>
2246
2247         PR middle-end/19689
2248         * expr.c (store_field): Don't strip sub-mode cast when the input
2249         data is even smaller.
2250
2251 2005-01-29  Richard Henderson  <rth@redhat.com>
2252
2253         PR middle-end/19687
2254         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
2255         union being empty.
2256
2257 2005-01-29  Richard Henderson  <rth@redhat.com>
2258
2259         * combine.c (make_field_assignment): Fix argument order
2260         to gen_int_mode.
2261
2262 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
2263
2264         PR tree-optimization/15791
2265         * fold-const.c (extract_array_ref): New function.
2266         (fold): Fold comparisons between &a[i] and &a[j] or
2267         semantically equivalent trees.
2268
2269 2005-01-29  Jeff Law  <law@redhat.com>
2270
2271         * gcse.c (insert_expr_in_table): Revamp handling of available
2272         and anticipatable occurrence lists to avoid unnecessary list
2273         walking.
2274         (insert_set_in_table): Similarly.
2275
2276 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
2277
2278         * c-common.c (fix_string_type): Just use c_build_qualified_type to
2279         build string type.
2280         (c_build_qualified_type): Build qualified array types with
2281         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
2282         * c-decl.c (c_make_fname_decl): Build unqualified array type
2283         before qualified type.
2284         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
2285         type is qualified, not just if type itself is.  Don't apply
2286         qualifiers to array type when declarator is processed.  Apply
2287         qualifiers to field type whether or not it is an array type.
2288         Don't handle array types specially for applying qualifiers to
2289         variables.
2290         * c-typeck.c (composite_type): Build unqualified element type and
2291         array type when forming composite of array types.
2292         (common_pointer_type, comptypes, comp_target_types,
2293         type_lists_compatible_p, build_indirect_ref, build_array_ref,
2294         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
2295         types.
2296         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
2297         (args2) in variables a1 and a2.
2298
2299 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
2300
2301         * cse.c (n_elements_made, max_elements_made): Remove.
2302         (insert): Don't touch n_elements_made.
2303         (cse_main): Don't touch n_elements_made or max_elements_made.
2304
2305 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
2306
2307         PR target/15384
2308         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
2309         configuration part of dp-bit.c to be lost.
2310
2311 2005-01-28  Roger Sayle  <roger@eyesopen.com>
2312
2313         * expmed.c (expand_mult_highpart_optab): When attempting to use
2314         a non-widening multiplication in a wider mode, the operands need
2315         to be converted (zero or sign extended) to that mode.
2316
2317 2005-01-28  Ian Lance Taylor  <ian@airs.com>
2318
2319         PR middle-end/16558
2320         PR middle-end/19583
2321         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
2322         through if both operands fall through.
2323
2324 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2325
2326         * cse.c (fold_rtx) <PC>: Don't optimize.
2327
2328 2005-01-28  Jeff Law  <law@redhat.com>
2329
2330         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
2331         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
2332
2333 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2334
2335         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
2336         cse_reg_info_used_list_end): Remove.
2337         (cse_reg_info_list, cse_reg_info_list_free): New.
2338         (get_cse_reg_info): When allocating an instance of
2339         cse_reg_info, add it to the beginning of the cse_reg_info_list
2340         list.  Remove code to maintain cse_reg_info_used_list.
2341         (new_basic_block): Reset the free list to the beginning of
2342         cse_reg_info_list.
2343
2344 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
2345
2346         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
2347         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
2348         (frv_expand_mdpackh_builtin): New function.
2349         (frv_expand_builtin): Use it to expand __MDPACKH.
2350         * doc/extend.texi (__MDPACKH): Update documentation.
2351
2352 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
2353
2354         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
2355         SSE_FLOAT_MODE_P for use_sse computation.
2356
2357 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
2358
2359         PR target/19663
2360         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
2361
2362 2005-01-27  Richard Henderson  <rth@redhat.com>
2363
2364         * builtins.c (expand_builtin_copysign): New.
2365         (expand_builtin): Call it.
2366         * genopinit.c (optabs): Add copysign_optab.
2367         * optabs.c (init_optabs): Initialize it.
2368         (expand_copysign): New.
2369         * optabs.h (OTI_copysign, copysign_optab): New.
2370         (expand_copysign): Declare.
2371
2372         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
2373         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
2374
2375         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
2376         (ix86_expand_fp_absneg_operator): ... here.
2377         (ix86_split_copysign): New.
2378         * config/i386/i386-protos.h: Update.
2379         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
2380         (copysignsf3, copysigndf3): New.
2381
2382         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
2383         (copysignsf3, ncopysignsf3): New.
2384         (copysigndf3, ncopysigndf3): New.
2385         (copysignxf3, ncopysignxf3): New.
2386         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
2387
2388 2005-01-27  Arend Bayer  <arend.bayer@web.de>
2389             Kazu Hirata  <kazu@cs.umass.edu>
2390
2391         * cse.c: (find_best_addr): Don't call copy_rtx before calling
2392         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
2393         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
2394         NULL_RTX.
2395
2396 2005-01-27  Jeff Law  <law@redhat.com>
2397
2398         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
2399         definitions of SSA_NAMEs which are not being rewritten.
2400         (rewrite_ssa_into_ssa): Only initialize the current definition
2401         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
2402         If checking is enabled, assert that SSA_NAME_AUX is clear for all
2403         SSA_NAMEs before returning.
2404
2405 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
2406
2407         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
2408         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
2409         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
2410         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
2411         config/mips/iris6.h, config/sh/sh.c: Update copyright.
2412
2413 2005-01-27  Steven Bosscher  <stevenb@suse.de>
2414
2415         PR middle-end/17278
2416         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
2417         higher to -O2 and higher.  Likewise for tree PRE.
2418         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
2419         and better.
2420
2421 2005-01-27  Ian Lance Taylor  <ian@airs.com>
2422
2423         PR middle-end/19583
2424         * gimple-low.c (try_catch_may_fallthru): New static function.
2425         (block_may_fallthru): Handle TRY_CATCH_EXPR.
2426         * tree-inline.c (expand_call_inline): Don't warn about reaching
2427         the end of a non-void function being inlined if the function uses
2428         a return slot.
2429
2430 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
2431
2432         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
2433
2434         PR c/18946
2435         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
2436         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
2437         (implicitly_declare): Handle error_mark_node.
2438
2439 2005-01-27  Richard Henderson  <rth@redhat.com>
2440
2441         PR tree-opt/14329
2442         * tree.h (struct tree_decl): Add debug_expr_is_from.
2443         (DECL_DEBUG_EXPR_IS_FROM): New.
2444         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
2445         * dwarf2out.c (dwarf2out_var_location): Update to match.
2446         * tree-outof-ssa.c (create_temp): Likewise.
2447         * var-tracking.c (track_expr_p): Likewise.
2448         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
2449         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
2450         * toplev.c (default_tree_printer): Likewise.
2451
2452 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
2453
2454         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
2455         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
2456
2457 2005-01-27  Steven Bosscher  <stevenb@suse.de>
2458
2459         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
2460         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2461         ASM_CLOBBERS): Add tree checks.
2462
2463         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
2464         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
2465         * c-common.def (SWITCH_STMT): Update to match.
2466         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
2467         macros instead of SWITCH_EXPR ones.
2468         * c-dump.c (c_dump_tree): Likewise.
2469         * c-gimplify.c (gimplify_switch_stmt): Likewise.
2470         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
2471
2472         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
2473
2474 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
2475
2476         * unwind-dw2.c (execute_stack_op): Add missing cases for
2477         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
2478
2479 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
2480
2481         * config.gcc (Obsolete configurations): Remove 'dummy', add
2482         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
2483         sparc-*-openbsd*.
2484
2485 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
2486
2487         PR tree-optimization/19633
2488         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
2489         CALL_EXPRs.
2490         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
2491         are no call-clobbered variables.
2492         * tree-outof-ssa.c (check_replaceable): Return false for calls
2493         with side-effects.
2494
2495 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
2496
2497         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
2498         even for variables with NULL DECL_INITIAL.
2499
2500 2005-01-26  Stuart Hastings  <stuart@apple.com>
2501
2502         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
2503
2504 2005-01-26  Richard Henderson  <rth@redhat.com>
2505
2506         PR middle-end/18008
2507         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2508         field's type.
2509         * expr.c (store_field): Strip conversions to odd-bit-sized types
2510         if the destination field width matches.
2511
2512 2005-01-26  Richard Henderson  <rth@redhat.com>
2513
2514         * c-decl.c, expmed.c, expr.c: Revert last change.
2515
2516 2005-01-26  Richard Henderson  <rth@redhat.com>
2517
2518         PR middle-end/18008
2519         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2520         field's type.
2521         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
2522         if we don't need the bits above those present in the current mode.
2523         * expr.c (store_field): Strip conversions to odd-bit-sized types
2524         if the destination field width matches.
2525
2526 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
2527
2528         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2529         either -ffast-math or -funsafe-math-optimizations is in use.
2530
2531 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2532
2533         PR target/19293
2534         PR target/19329
2535         * config/avr/avr.c (notice_update_cc): Only set condition code for
2536         ashrqi3 if shift count > 0.
2537         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
2538         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
2539         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
2540         count <= 0 as a no-op, and shift count >= width by copying zero
2541         or sign bit to all bits of the result.
2542         * config/avr/avr.md (all shifts): Add alternatives for zero shift
2543         count, with attribute "length" set to 0 and "cc" set to "none".
2544
2545 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
2546
2547         * doc/invoke.texi: Document -mTLS.
2548
2549         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
2550         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
2551         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
2552         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
2553         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
2554         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
2555         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
2556         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
2557
2558         * configure.ac: Check for a TLS capable gas.
2559
2560         * configure: Regenerate.
2561
2562 2005-01-26  Richard Henderson  <rth@redhat.com>
2563
2564         PR middle-end/18008
2565         * combine.c (make_field_assignment): Simplify store to zero_extract
2566         from a source with an overlapping mask.
2567
2568 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
2569
2570         2004-11-11  Eric Christopher  <echristo@redhat.com>
2571
2572         * config/frv/frv.md: Add fr400_integer automaton. Don't
2573         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
2574         to TYPE_MACC.
2575
2576 2005-01-26  Steven Bosscher  <stevenb@suse.de>
2577
2578         PR middle-end/16585
2579         * cfgbuild.c (make_edges): Do not clear or set
2580         current_function_has_computed_jump.
2581         * function.h (struct function): Remove the has_computed_jump field.
2582         (current_function_has_computed_jump): Do not define.
2583         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
2584         in a computed jump.  Ignore current_function_has_computed_jump.
2585
2586 2005-01-26  Richard Henderson  <rth@redhat.com>
2587
2588         PR middle-end/19515
2589         * expr.c (categorize_ctor_elements): New argument p_must_clear.
2590         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
2591         fully initialized.
2592         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
2593         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
2594         objects into static storage if they have more than one non-zero value.
2595         * tree.h (categorize_ctor_elements): Update decl.
2596
2597 2005-01-26  Steven Bosscher  <stevenb@suse.de>
2598
2599         PR middle-end/19616
2600         * tree.h (CALL_EXPR_TAILCALL): Add comment.
2601         * calls.c (check_sibcall_argument_overlap_1): Revert the change
2602         to this function from 2004-07-10.
2603         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
2604         the current function for tail call optimizations if the address
2605         of one of it its arguments is taken.
2606
2607 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2608
2609         * cse.c (fold_rtx): Call equiv_constant only when necessary.
2610
2611 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
2612
2613         * function.c (expand_function_end): If current_function_calls_alloca,
2614         emit stack restore in a place that is reached when the function falls
2615         through at the end.
2616
2617 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
2618
2619         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
2620         rule to avoid matching inappropriate suffix rule.
2621
2622 2005-01-26  Jan Hubicka  <jh@suse.cz>
2623
2624         PR tree-optimization/19241
2625         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
2626
2627 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
2628
2629         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
2630         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
2631         of doubling.
2632         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
2633         <sim*>: Always use crt1.o, regardless of N in simN.
2634         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
2635         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
2636         (CRT_CALL_STATIC_FUNCTION): Remove.
2637         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
2638         use crt1.o, regardless of N in simN.
2639         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
2640         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
2641         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
2642         case isystem setting.
2643         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
2644
2645 2005-01-25  Ian Lance Taylor  <ian@airs.com>
2646
2647         * gimple-low.c (block_may_fallthru): Correct handling of
2648         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
2649
2650 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
2651
2652         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
2653         handlers to match indentation; nested under the mtune=* handler.
2654         Similar for mcpu= and march=.
2655
2656 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
2657
2658         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
2659         * config/mips/linux64.h (LIB_SPEC): Likewise.
2660         * config/mn10300/linux.h (LIB_SPEC): Likewise.
2661         * config/sh/linux.h (LIB_SPEC): Likewise.
2662
2663 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
2664
2665         * config/frv/frv.c (frv_legitimize_tls_address): New.
2666         (TARGET_HAVE_TLS): Define.
2667         (FRV_SYMBOL_REF_TLS_P): Define.
2668         (frv_override_options): Handle new register classes.
2669         (frv_legitimate_address_p): Reject tls addresses.
2670         (frv_legitimize_address): Handle TLS addresses.
2671         (gen_inlined_tls_plt): New.
2672         (gen_tlsmoff): New.
2673         (frv_legitimize_tls_address): New.
2674         (unspec_got_name): Add TLS entries.
2675         (got12_operand): Add R_FRV_TLSMOFF12 case.
2676         (frv_emit_move): Fixup TLS addresses.
2677         (frv_emit_movsi): Legitimize TLS addresses.
2678
2679         * config/frv/frv.h (MASK_BIG_TLS): New.
2680         (TARGET_BIG_TLS): New.
2681         (HAVE_AS_TLS): Define.
2682         (TARGET_SWITCHES): Add -mTLS and -mtls options.
2683         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
2684         (REG_CLASS_NAMES): Same.
2685         (REG_CLASS_CONTENTS): Same.
2686         (CONSTRAINT_LEN): New.
2687         (REG_CLASS_FROM_CONSTRAINT): New.
2688         (PREDICATE_CODES): Add symbolic_operand.
2689
2690         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
2691         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
2692         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
2693         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
2694         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
2695         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
2696         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
2697         GR9_REG, GR14_REG, LRREG.
2698         (type): Add load_or_call attribute.
2699         ("load_or_call"): New reservation.
2700         ("call_gettlsoff"): New.
2701         ("tls_indirect_call"): New.
2702         ("tls_load_gottlsoff12"): New.
2703         ("tlsoff_hilo"): New.
2704         ("tls_tlsdesc_ldd"): New.
2705         ("tls_tlsoff_ld"): New.
2706         ("tls_lddi"): New.
2707
2708         * config/frv/frv-protos.h (symbolic_operand): Protoize.
2709
2710         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
2711
2712         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2713         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
2714         * config/frv/frv.c (TLS_BIAS): Define.
2715         (frv_output_dwarf_dtprel): New.
2716
2717 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
2718
2719         PR rtl-optimization/19579
2720         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
2721         both A and B, see if they don't clobber registers the other expr uses.
2722
2723 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
2724
2725         * real.c (do_add): Initialize signalling and canonical members.
2726
2727         * real.c (real_from_integer): Zero out destination.
2728
2729 2005-01-18  Jan Hubicka  <jh@suse.cz>
2730
2731         PR tree-optimize/19337
2732         * tree-inline.c (initialize_inlined_parameters): Copy
2733         saved_static_chain_decl only.
2734
2735 2005-01-25  Richard Henderson  <rth@redhat.com>
2736
2737         PR target/19556
2738         PR target/19584
2739         * config/i386/i386.c (x86_inter_unit_moves): Zero.
2740         (ix86_preferred_reload_class): Rewrite fp-constant section, with
2741         80387 enabled, to return a proper subclass.  Return the subset that
2742         overlaps with GENERAL_REGS for PLUS.
2743         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
2744
2745 2005-01-25  Richard Henderson  <rth@redhat.com>
2746
2747         PR middle-end/19609
2748         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
2749
2750 2005-01-25  Roger Sayle  <roger@eyesopen.com>
2751
2752         * expmed.c (choose_multiplier): Change interface to return the
2753         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
2754         (expand_divmod): Update calls to choose_multiplier.
2755
2756 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2757
2758         PR middle-end/19330
2759         * expmed.c (extract_bit_field): Use adjust_address instead of
2760         gen_lowpart when op0 is a MEM.
2761
2762 2005-01-24  Steven Bosscher  <stevenb@suse.de>
2763
2764         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
2765
2766 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
2767
2768         * config/mips/irix-csr.c: New file.
2769         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
2770         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
2771         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
2772         executables.
2773
2774 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2775
2776         PR bootstrap/19364
2777         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
2778         sparc/elf.h, add sparc/sp-elf.h.
2779         (sparc-*-rtems*): Likewise.
2780         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
2781         tm-dwarf2.h, add sparc/sp-elf.h.
2782         (sparc86x-*-elf): Likewise.
2783         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
2784         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
2785         TARGET_OS_CPP_BUILTINS.
2786         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2787         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2788         Undefine it.
2789         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
2790         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
2791         (SWITCH_TAKES_ARG): Likewise.
2792         (LOCAL_LABEL_PREFIX): Likewise.
2793         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2794         (TARGET_N_FORMAT_TYPES): Delete.
2795         (TARGET_FORMAT_TYPES): Likewise.
2796         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
2797         * config/sparc/elf.h: Delete.
2798         * config/sparc/sp-elf.h: New file.
2799
2800 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2801
2802         * tree-flow-inline.h (phi_arg_from_edge): Remove.
2803         * tree-flow.h: Remove the corresponding prototype.
2804         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
2805         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
2806
2807 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2808
2809         PR target/17751
2810         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
2811         for AIX ABI or ELF -fPIC.
2812         (rs6000_emit_load_toc_table): Don't create toc_section here.
2813         (rs6000_xcoff_file_start): Nor here.
2814
2815 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
2816
2817         * sh.c (ra.h): Don't #include.
2818         (hard_regs_intersect_p): New function, resurrected from ra.c.
2819
2820         * sh.c: Fix 1996 Copyright.
2821
2822 2005-01-24  Richard Henderson  <rth@redhat.com>
2823             Aldy Hernandez  <aldyh@redhat.com>
2824
2825         * regrename.c (note_sets): Handle subregs.
2826
2827 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
2828
2829         PR bootstrap/18058
2830         * genconditions.c (write_header, write_conditions): Elide file if
2831         not GCC >= 3.0.1.
2832
2833 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2834
2835         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
2836         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
2837         Update copyright.
2838
2839 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2840
2841         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
2842         expand_builtin_printf, expand_builtin_fprintf,
2843         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
2844         checking against POINTER_TYPE.
2845         (validate_arglist): Handle POINTER_TYPE code by checking
2846         POINTER_TYPE_P.
2847
2848 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
2849
2850         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
2851         init_rtlanal): New.
2852         (for_each_rtx): Call for_each_rtx_1.
2853         * rtl.h (init_rtlanal): Declare.
2854         * toplev.c (backend_init): Call init_rtlanal.
2855
2856 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2857
2858         * flow.c (propagate_one_insn): Formatting.
2859
2860         PR middle-end/19551
2861         * flow.c (libcall_dead_p): Be more conservative if unsure.
2862         If there are any instructions between insn and call, see if they are
2863         all dead before saying the libcall is dead.
2864
2865 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
2866
2867         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
2868         operand constraint for operand 0.
2869
2870 2005-01-23  Richard Henderson  <rth@redhat.com>
2871
2872         PR 19486
2873         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
2874         edges leading to join block.
2875
2876 2005-01-23  Roger Sayle  <roger@eyesopen.com>
2877
2878         * expmed.c (expand_mult_highpart): Make static.  Change type of
2879         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
2880         (expand_divmod): Updates calls to expand_mult_highpart by using
2881         gen_int_mode to pass a CONST_INT rtx.
2882         * rtl.h (expand_mult_highpart): Remove prototype.
2883
2884 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2885
2886         * flow.c (regset_bytes, regset_size): Remove.
2887
2888         * cfganal.c: Fix a reference to Harvey's paper.
2889
2890 2005-01-23  Steven Bosscher  <stevenb@suse.de>
2891
2892         PR rtl-optimization/19464
2893         * tree-optimize.c (init_tree_optimization_passes): Add one more
2894         copyrename pass just before out-of-ssa.
2895
2896 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
2897
2898         PR bootstrap/18058
2899         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
2900         * ggc-none.c (ggc_free): Define.
2901
2902 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2903
2904         * cse.c (max_reg, max_insn_uid): Remove.
2905         (cse_main): Don't access max_reg or max_insn_uid.
2906
2907         * c-common.c (explicit_flag_signed_bitfields,
2908         lang_statement_code_p, lang_expand_function_end): Remove.
2909         * c-common.h: Remove the corresponding declarations.
2910         * c-opts.c (c_common_handle_option): Remove all write access
2911         to explicit_flag_signed_bitfields.
2912
2913         * cgraph.c (cgraph_varpool_n_nodes): Remove.
2914         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
2915         * cgraph.h: Remove the corresponding declaration.
2916
2917         * gcse.c (null_pointer_info): Remove.
2918
2919 2005-01-23  Roger Sayle  <roger@eyesopen.com>
2920             Eric Botcazou  <ebotcazou@libertysurf.fr>
2921
2922         * combine.c (simplify_logical): Only simplify logical expressions
2923         of the form ior(and(x,y),z) by the inverse distributive law if the
2924         result is cheaper than the original.
2925
2926 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2927
2928         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
2929         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
2930         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
2931         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
2932         config/freebsd-spec.h, config/arm/arm.h,
2933         config/h8300/h8300.md, config/i386/i386.md,
2934         config/i386/predicates.md, config/i386/sse.md,
2935         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
2936         config/vax/vax.md: Fix comment typos.  Follow spelling
2937         conventions.
2938
2939 2005-01-23  Steven Bosscher  <stevenb@suse.de>
2940
2941         * gengtype.c (walk_type): Produce `not equal to' compares for loop
2942         tests, instead of `less than'.
2943
2944 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
2945
2946         * function.c (assign_parm_setup_block): When creating a new stack slot
2947         for a parameter, get its alignment from the parameter's DECL_ALIGN
2948         rather than the type's TYPE_ALIGN.  Make sure that the parameter
2949         is at least word aligned.
2950
2951 2005-01-22  Roger Sayle  <roger@eyesopen.com>
2952
2953         PR middle-end/19378
2954         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2955
2956 2005-01-22  Richard Henderson  <rth@redhat.com>
2957
2958         PR target/19506
2959         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
2960         in both compare operands.
2961         (movdfcc_1_sse_max): Likewise.
2962         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
2963         (movdfcc_1_sse): Likewise.
2964         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
2965         scratch register as needed.
2966
2967 2005-01-22  Richard Henderson  <rth@redhat.com>
2968
2969         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
2970
2971         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
2972
2973 2005-01-22  Richard Henderson  <rth@redhat.com>
2974
2975         * genopinit.c (optabs): Use smin/smax for floating point too.
2976         * doc/md.texi: Update to match.  Clarify that floating point
2977         results are undefined for +0/-0 and NaN.
2978         * doc/rtl.texi: Likewise.
2979         * rtl.def (SMIN, SMAX): Likewise
2980         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
2981
2982         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
2983         leading 's' to the name.
2984         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
2985         smaxxf3, sminxf3): Likewise.
2986         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
2987         Likewise.
2988
2989 2005-01-22  Paul Brook  <paul@codesourcery.com>
2990
2991         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
2992
2993 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
2994
2995         * config/s390/s390.c (struct processor_costs): New fields
2996         dlgr, dlr, dr, dsgfr, dsgr.
2997         (z900_cost, z990_cost): Values for new fields.
2998         (s390_rtx_costs): New cases MEM und COMPARE in switch
2999         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
3000         DIV, MOD, UDIV, UMOD.
3001
3002 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
3003
3004         * config/s390/s390.md ("doloop_si64"): Reload input value directly
3005         into the register being decremented.
3006         ("doloop_si31", "doloop_di"): Likewise.
3007         ("*doloop_si_long"): Adapt pattern.
3008
3009 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
3010
3011         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
3012         access registers.
3013         (CLASS_MAX_NREGS): Likewise.
3014
3015 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
3016
3017         * doc/tree-ssa.texi (Statement Operands): Add example for new
3018         must-def macro. Note deprecation of old operands interface.
3019
3020 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
3021
3022         PR tree-optimization/19484
3023         * tree-cfg.c (remove_fallthru_edge): New function.
3024         (cleanup_control_flow): Remove fallthru edges from calls that are
3025         now known not to return.
3026
3027 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
3028
3029         Fix PR tree-optimization/19038
3030         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
3031         copies with loop variant ones.
3032
3033 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
3034
3035         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
3036         config/alpha/alpha-protos.h, config/alpha/alpha.h,
3037         config/alpha/alpha.md, config/alpha/predicates.md,
3038         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
3039         config/sparc/sol2.h: Update copyright.
3040
3041         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
3042         first label to see if it is a nonlocal label.
3043
3044 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
3045             Andrew Pinski  <pinskia@physics.uc.edu>
3046
3047         PR target/19491
3048         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
3049         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
3050
3051 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
3052
3053         * config/rs6000/rtems.h: Update copyright.
3054
3055 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
3056
3057         PR target/19548
3058         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
3059         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
3060         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
3061
3062 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3063
3064         PR c/18809
3065         * c-typeck.c (convert_arguments): Check for error_mark_node.
3066
3067 2005-01-21  Ian Lance Taylor  <ian@airs.com>
3068
3069         PR tree-optimization/13000
3070         * tree-inline.c: Include "tree-flow.h".
3071         (expand_call_inline): If warn_return_type, warn if non-void inline
3072         function falls through.
3073         * tree-cfg.c (execute_warn_function_return): Don't warn about
3074         control reaching end if TREE_NO_WARNING is set.  Set
3075         TREE_NO_WARNING.
3076         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
3077         has been lowered.
3078         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
3079         branch if we don't need one.
3080         * c-typeck.c: Include "tree-flow.h"
3081         (c_finish_bc_stmt): Don't add a goto if the current statement
3082         list doesn't fall through to the current point.
3083
3084 2005-01-21  Roger Sayle  <roger@eyesopen.com>
3085
3086         PR rtl-optimization/576
3087         * real.c (real_arithmetic): Change return type from void to bool
3088         to return an indication that the result may be inexact.
3089         * real.h (real_arithmeric): Update prototype.
3090         * fold-const.c (const_binop):  Don't constant fold floating
3091         point expressions when the user specifies -frounding-math and
3092         the result may depend upon the run-time rounding mode.
3093         (fold_convert_const_real_from_real): Clean-up.
3094         (fold_initializer): Ignore flag_rounding_math for initializers.
3095         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
3096         constant fold FP operations with flag_rounding_math if the
3097         result may depend upon the run-time rounding mode.
3098
3099 2005-01-21  Tom Tromey  <tromey@redhat.com>
3100
3101         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
3102
3103 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
3104
3105         * tree-cfg.c: Fix comment typos.
3106
3107 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
3108
3109         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
3110         around the call to rest_of_handle_branch_target_load_optimize.
3111
3112 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3113
3114         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
3115         (sparc64-*-openbsd*): Likewise.
3116         (sparclite-*-elf*): Include tm-dwarf2.h.
3117         (sparc86x-*-elf*): Likewise.
3118         (sparc64-*-elf*): Likewise.
3119         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
3120         (DBX_DEBUGGING_INFO): Likewise.
3121         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
3122         (PREFERRED_DEBUGGING_TYPE): Likewise.
3123         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
3124         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
3125         (PREFERRED_DEBUGGING_TYPE): Likewise.
3126         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
3127         (PREFERRED_DEBUGGING_TYPE): Likewise.
3128         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
3129
3130 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
3131
3132         PR target/18701
3133         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
3134
3135 2005-01-20  Paul Brook  <paul@codesourcery.com>
3136
3137         * doc/rtl.texi: Document value extension requirements for CONST_INT.
3138
3139 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3140
3141         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
3142         label is first in a sequence of labels.
3143
3144         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
3145
3146 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
3147             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3148
3149         * doc/sourcebuild.texi (Test Directives): New.
3150
3151 2005-01-20  Roger Sayle  <roger@eyesopen.com>
3152
3153         * real.c (real_floor): Don't leave the result uninitialized when
3154         mode is VOIDMode, but return the unrounded intermediate value.
3155         (real_ceil): Likewise.
3156
3157 2005-01-20  Paul Brook  <paul@codesourcery.com>
3158
3159         * config/arm/arm.md (insv): Use gen_int_mode.
3160
3161 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
3162
3163         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
3164         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3165         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3166         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3167         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
3168
3169 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
3170
3171         Fix PR debug/19124
3172         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
3173         fbreg, so we have to assume we can't.
3174         (loc_descriptor_from_tree_1): Ditto.
3175         (containing_function_has_frame_base): New function.
3176         (add_location_or_const_value_attribute): Use it.
3177         Also try to generate a frame_base from a single element location
3178         list.
3179
3180 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3181
3182         PR tree-optimization/15349
3183         * timevar.def (TV_TREE_MERGE_PHI): New.
3184         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
3185         PHI_WANTED.
3186         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
3187         calls to tree_forwarder_block_p.
3188         (remove_forwarder_block_with_phi, merge_phi_nodes,
3189         gate_merge_phi, pass_merge_phi): New.
3190         * tree-optimize.c (init_tree_optimization_passes): Add
3191         pass_merge_phi.
3192         * tree-pass.h: Add an extern for pass_merge_phi;
3193
3194 2005-01-20  Richard Henderson  <rth@redhat.com>
3195
3196         PR target/19418
3197         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
3198         (_mm_castps_pd, _mm_castps_si128): New.
3199         (_mm_castsi128_ps, _mm_castsi128_pd): New.
3200
3201 2005-01-20  Richard Henderson  <rth@redhat.com>
3202
3203         PR target/19530
3204         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
3205         __builtin_ia32_vec_init_v2si.
3206         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
3207         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
3208         (ix86_init_mmx_sse_builtins): Create it.
3209         (ix86_expand_builtin): Expand it.
3210         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
3211         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
3212         (vec_extractv2si_0, vec_extractv2si_1): New.
3213
3214 2005-01-20  Richard Henderson  <rth@redhat.com>
3215
3216         PR target/16533
3217         * config/i386/i386.c (ix86_expand_push): New.
3218         * config/i386/mmx.md (push<MMXMODE>1): New.
3219         * config/i386/sse.md (push<SSEMODE>1): New.
3220         * config/i386/i386-protos.h: Update.
3221
3222 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3223
3224         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
3225         copyright.
3226
3227 2005-01-20  Richard Henderson  <rth@redhat.com>
3228
3229         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
3230         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
3231
3232 2005-01-19  Richard Henderson  <rth@redhat.com>
3233
3234         PR target/19350
3235         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
3236         to V4SFmode in SSE1 fallback load path.
3237
3238 2005-01-19  Richard Henderson  <rth@redhat.com>
3239
3240         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
3241         in QImode expansion to ix86_expand_vector_set.
3242         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
3243
3244 2005-01-19  Richard Henderson  <rth@redhat.com>
3245
3246         PR target/19511
3247         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
3248         subclass of the input class.
3249         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
3250         Always true for cross-SSE1 classes.  Rationalize conditionals.
3251         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
3252         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
3253         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
3254         (movdi_2): Add MMX/SSE zeros.
3255         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
3256         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
3257         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
3258         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
3259         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
3260         (zero_extendsidi2_rex64_1): Remove.
3261         (MOV0 peephole): Check GENERAL_REG_P.
3262
3263 2005-01-19  Richard Henderson  <rth@redhat.com>
3264
3265         PR target/19427
3266         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
3267         shufps elements.
3268         (ix86_expand_vector_extract): Likewise.
3269
3270 2005-01-19  Richard Henderson  <rth@redhat.com>
3271
3272         PR middle-end/19304
3273         * expr.c (emit_move_change_mode): New argument force; use
3274         simplify_gen_subreg if true.
3275         (emit_move_via_alt_mode): Merge into ...
3276         (emit_move_via_integer): ... here.
3277         (emit_move_ccmode): Use emit_move_change_mode directly.
3278
3279 2005-01-19  Richard Henderson  <rth@redhat.com>
3280
3281         PR target/19518
3282         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
3283         (alpha_preferred_reload_class): Handle CONST_VECTOR.
3284         (alpha_emit_set_const_1): Add no_output parameter; don't emit
3285         rtl if true.
3286         (alpha_emit_set_const): Likewise.  Make static.
3287         (alpha_emit_set_long_const): Make static.
3288         (alpha_extract_integer): Split out from alpha_expand_mov.
3289         (alpha_split_const_mov): Likewise.
3290         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
3291         (alpha_legitimate_constant_p): New.
3292         * config/alpha/alpha-protos.h: Update.
3293         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
3294         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
3295         * config/alpha/alpha.md (movsi): Add n alternative.
3296         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
3297         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
3298         (splitters for all of the above): Use alpha_split_const_mov.
3299         * config/alpha/predicates.md (non_add_const_operand): New.
3300         (non_zero_const_operand): New.
3301         (input_operand): Use alpha_legitimate_constant_p after reload.
3302
3303 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
3304
3305         PR tree-optimization/19038
3306         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
3307         (add_candidate): Add ivs with increment in latch only if
3308         allow_ip_end_pos_p is true.
3309         (determine_iv_cost): Use empty_block_p.
3310
3311 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
3312
3313         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
3314         (compute_dominance_frontiers): Ditto.
3315
3316 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
3317
3318         PR target/19529
3319         * config/sh/t-rtems: New.
3320         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
3321
3322 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
3323
3324         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
3325         the offset of the selected field.
3326
3327 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
3328
3329         * tree-cfg.c (remove_forwarder_block): Fix the check to
3330         prevent a nonlocal label from appearing in the middle of a
3331         basic block.
3332
3333 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
3334
3335         PR rtl-optimization/19462
3336         * reorg.c (find_end_label): Create return insn only if
3337         current_function_epilogue_delay_list is empty.
3338
3339 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
3340
3341         * doc/passes.texi: Remove paragraph mentioning new-ra.
3342
3343 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
3344
3345         PR rtl-optimization/15139
3346         * combine.c: Include params.h.
3347         (count_rtxs): New function.
3348         (record_value_for_reg): If replace_rtx would replace at least
3349         2 occurrences of REG in VALUE and TEM is really large, replace REG with
3350         (clobber (const_int 0)) instead of TEM.
3351         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
3352         * params.h (MAX_LAST_VALUE_RTL): New.
3353         * Makefile.in (combine.o): Depend on $(PARAMS_H).
3354         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
3355
3356         PR c/17297
3357         * c-typeck.c (digest_init): Only call build_vector if all constructor
3358         elements are *_CST nodes.
3359         * gimplify.c (gimplify_init_constructor): Likewise.
3360
3361         PR middle-end/19164
3362         * c-typeck.c (digest_init): Only call build_vector if inside_init
3363         is a CONSTRUCTOR.
3364
3365 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3366
3367         * toplev.c (init_asm_output): Remove dead #ifdef.
3368
3369 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3370
3371         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
3372
3373 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3374
3375         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
3376         accessing DECL_FUNCTION_CODE.
3377         * dojump.c (do_jump): Likewise.
3378         * gimplify.c (gimplify_call_expr): Likewise.
3379         * predict.c (expr_expected_value): Likewise.
3380         (strip_builtin_expect): Likewise.
3381         * tree-inline.c (estimate_num_insns_1): Likewise.
3382         * tree-ssa-loop-im.c (stmt_cost): Likewise
3383         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
3384         (tree_expr_nonnegative_p): Likewise.
3385
3386 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3387
3388         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
3389         variant of the load_pcrel_sym pattern.
3390         * config/sparc/sparc.md (P macro): Move to the top.
3391         (load_pcrel_sym): Macroize using P.
3392         (save_register_window): Likewise.
3393
3394 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
3395
3396         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
3397         ("sordered"): Same.
3398
3399 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3400
3401         PR C/19472
3402         * c-typeck.c (build_asm_expr): Strip nops off
3403         input memory operands.
3404
3405 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
3406
3407         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
3408         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
3409         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
3410         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
3411
3412 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
3413
3414         PR target/19379
3415         * config/i386/i386.c (override_options): If the 80387 is disabled,
3416         then do not return FP values using FP registers.
3417
3418 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3419
3420         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
3421         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
3422         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
3423         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
3424         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
3425         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
3426         output.h, postreload-gcse.c, postreload.c, recog.c,
3427         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
3428         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
3429         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
3430         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
3431         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
3432         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
3433         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
3434         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
3435
3436         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
3437         config/alpha/alpha.c, config/arm/vfp.md,
3438         config/i386/emmintrin.h, config/i386/i386-modes.def,
3439         config/i386/i386-protos.h, config/i386/i386.h,
3440         config/i386/pmmintrin.h, config/i386/ppro.md,
3441         config/i386/predicates.md, config/i386/xmmintrin.h,
3442         config/i860/i860.c, config/ia64/ia64-modes.def,
3443         config/ia64/ia64-protos.h, config/ia64/ia64.h,
3444         config/ia64/ia64.md, config/ia64/itanium1.md,
3445         config/ia64/itanium2.md, config/ia64/predicates.md,
3446         config/iq2000/iq2000.h, config/mips/linux64.h,
3447         config/rs6000/aix41.h, config/rs6000/aix43.h,
3448         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
3449         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
3450         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
3451         config/sparc/linux64.h, config/sparc/litecoff.h,
3452         config/sparc/sp64-elf.h, config/sparc/sparc.c,
3453         config/sparc/sparc.h, config/sparc/sparc.md,
3454         config/sparc/sysv4-only.h: Update copyright.
3455
3456 2005-01-18  Richard Henderson  <rth@redhat.com>
3457
3458         PR target/19496
3459         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
3460
3461 2005-01-18  Marc Espie  <espie@openbsd.org>
3462         * config/i386/openbsdelf.h: Typo.
3463
3464 2005-01-18  Richard Henderson  <rth@redhat.com>
3465
3466         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
3467         special case for sse.
3468         * config/i386/predicates.md (sse_comparison_operator): Likewise.
3469
3470 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
3471
3472         * tree-inline.c (estimate_num_insns_1): Added cases for
3473         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
3474
3475 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3476
3477         PR rtl-optimization/19296
3478         * combine.c (simplify_comparison): Rewrite the condition under
3479         which a non-paradoxical SUBREG of a PLUS can be lifted when
3480         compared against a constant.
3481
3482 2005-01-18  Andi Kleen <ak@muc.de>
3483
3484         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
3485         * c.opt (-Wpointer-sign): Add.
3486         * doc/invoke.texi: (-Wpointer-sign): Add.
3487
3488 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
3489
3490         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
3491         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
3492         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
3493         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
3494         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
3495         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
3496         for TARGET_MIX_SSE_I387.
3497         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
3498         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
3499         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
3500         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
3501         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
3502         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
3503         TARGET_MIX_SSE_I387.
3504         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
3505         from expander.
3506
3507 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
3508
3509         PR target/19424
3510         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
3511         Add movaps alternative for xmm reg->reg move.
3512
3513 2005-01-17  Jeff Law  <law@redhat.com>
3514
3515         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
3516         at the end of the main DOM loop rather than just before DOM exits.
3517
3518 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
3519
3520         PR tree-optimization/19121
3521         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
3522         adding aliases to a name tag, also add them to the pointer's
3523         type tag.
3524         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
3525         sensitive alias info at all.  Only check that the two pointers
3526         have compatible pointed-to sets.
3527         * tree-ssa.c (verify_name_tags): Verify that the alias set of
3528         a pointer's type tag is a superset of the alias set of the
3529         pointer's name tag.
3530
3531 2005-01-17  James E Wilson  <wilson@specifixinc.com>
3532
3533         PR target/19357
3534         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
3535         comment to document why.
3536
3537 2005-01-17  Richard Henderson  <rth@redhat.com>
3538
3539         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
3540         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
3541         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
3542         sse2_vmsminv2df3_finite): New.
3543         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
3544         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
3545         Force op1 into register.
3546
3547 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
3548
3549         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
3550         bubblestrap from always rebuilding build directory.
3551
3552 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
3553
3554         * config/s390/s390.md ("*clc"): Remove incorrect '='.
3555         ("*cmpmem_short"): Likewise.
3556
3557 2005-01-17  Steven Bosscher  <stevenb@suse.de>
3558
3559         * basic-block.h: Document BB_* flags.
3560         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
3561         use an sbitmap instead.
3562         * sched-rgn.c (compute_trg_info): Likewise.
3563
3564 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
3565
3566         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
3567         redundant target_cpu_default and extra_parts lines.  Use the default
3568         "from-abi" ISA.
3569         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
3570         (SUBTARGET_EXTRA_SPECS): Delete.
3571         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
3572         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
3573         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
3574         and "n32" for -mabi=n32.
3575
3576 2005-01-17  Ian Lance Taylor  <ian@airs.com>
3577
3578         PR c/5675
3579         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
3580         fold constant variables into initial values.
3581
3582 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
3583
3584         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
3585
3586         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
3587         through the statements backward.
3588
3589 2005-01-17  Ian Lance Taylor  <ian@airs.com>
3590
3591         PR middle-end/13127:
3592         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
3593         a variable set to the return value of the inlined function.
3594
3595 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
3596
3597         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
3598         when modes are tieable.
3599
3600 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
3601
3602         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
3603         of pthread_create to find out if threads are enabled.
3604         * gthr-posix95.h (__gthread_active_p): Likewise.
3605
3606 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
3607
3608         * common.opt (-fnew-ra): Remove.
3609         * ra*.*: Remove.
3610         * toplev.h (flag_new_regalloc): Remove.
3611         * Makefile.in (ra*.*): Don't mention.
3612         * passes.c (rest_of_handle_new_regalloc): Remove.
3613         (rest_of_handle_combine, rest_of_compilation): Always consider
3614         flag_new_regalloc as false.
3615         * doc/invoke.texi: Don't document -fnew-ra.
3616
3617 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
3618
3619         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
3620         last parameter to reg_scan.
3621         * loop.c (loop_optimize): Likewise.
3622         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
3623         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
3624         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
3625         rest_of_handle_gcse, rest_of_handle_loop_optimize,
3626         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
3627         * regclass.c (reg_scan): Likewise, for the declaration.
3628         * rtl.h (reg_scan): Likewise, for the prototype.
3629
3630 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
3631
3632         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
3633         mark_dfs_back_edges.
3634
3635 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
3636
3637         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
3638         (compute_avail): Uses don't go in tmp_gen.
3639
3640 2005-01-16  Steven Bosscher  <stevenb@suse.de>
3641
3642         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
3643         loop to look for a free slot in a page entry.
3644
3645 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3646
3647         PR target/16304
3648         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
3649         * toplev.c (compile_file): Call process_pending_assemble_output_defs
3650         just before targetm.asm_out.file_end.
3651         * tree.h (process_pending_assemble_output_defs): Declare.
3652         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
3653         New functions.
3654         (assemble_alias): Defer generation of assembly code for defines when
3655         TARGET_DEFERRED_OUTPUT_DEFS is true.
3656         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
3657         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
3658         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
3659
3660 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3661
3662         PR target/19336
3663         * pa.c (pa_scalar_mode_supported_p): New function.
3664         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3665         * pa.h (MIN_UNITS_PER_WORD): Add comment.
3666
3667         * pa-protos.h (prefetch_operand): Delete.
3668         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
3669         * pa.c (prefetch_operand): Delete.
3670         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
3671         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
3672         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
3673         and prefetch_nocc_operand.
3674         * pa.md (prefetch): Rework to avoid reload problems handling short
3675         displacements when a cache control completer needs to be provided.
3676         (prefetch_32, prefetch_64): Delete.
3677         (prefetch_cc, prefetch_nocc): New patterns.
3678
3679 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
3680
3681         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
3682
3683 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3684
3685         PR ada/19388
3686         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
3687         exceeds maximum alignment for global common data.
3688         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
3689         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
3690
3691 2004-01-15  Roger Sayle  <roger@eyesopen.com>
3692
3693         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
3694
3695 2004-01-15  Roger Sayle  <roger@eyesopen.com>
3696
3697         * harg-reg-set.h (reg_class_names): Prototype global array.
3698         * regclass.c (reg_class_names): Declare here and initialize to
3699         REG_CLASS_NAMES.
3700         (dump_regclass): Remove local declaration of reg_class_names.
3701         (regclass): Likewise.
3702         * cfg.c (dump_flow_info): Likewise.
3703         * ra-debug.c (reg_class_names): Likewise.
3704         * regrename.c (reg_class_names): Likewise.
3705         * reload.c (reg_class_names): Likewise.
3706         * reload1.c (spill_failure): Likewise.
3707         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
3708
3709 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
3710
3711         * config/s390/s390.md ("reload_outti"): Remove predicate for
3712         output operand.  Abort if operand is not a MEM.
3713         ("reload_outdi", "reload_outdf"): Likewise.
3714
3715 2005-01-15  Marc Espie  <espie@openbsd.org>
3716
3717         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
3718         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
3719         * config/openbsd.h:  Fix C++ includes for native configurations.
3720         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
3721         Add trampoline support.
3722         * config/i386/openbsdelf.h: New.
3723
3724 2005-01-15  Marc Espie  <espie@openbsd.org>
3725
3726         * collect2.c (main): Explicitly parse -dynamic-linker option.
3727
3728 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
3729
3730         PR tree-optimization/19060
3731         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
3732         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
3733         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
3734         and handle extract_range_from_cond returning false.
3735         * fold-const.c (fold): Optimize comparisons with min/max even for
3736         width > HOST_BITS_PER_WIDE_INT.
3737
3738 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
3739
3740         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
3741         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
3742         Remove little endian multilib variants.
3743         Add mips32 multilib variant.
3744
3745 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3746
3747         * explow.c (copy_all_reg, stabilize): Remove.
3748         * expr.h: Remove the corresponding prototypes.
3749
3750         * rtlanal.c (regs_set_between_p): Remove.
3751         * rtl.h: Remove the corresponding prototype.
3752
3753 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
3754
3755         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
3756         to rs6000_nonimmediate_operand.
3757         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
3758         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
3759         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
3760         rs6000_nonimmediate_operand.
3761         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
3762         rs6000_nonimmediate_operand.
3763
3764 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
3765
3766         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
3767
3768 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3769
3770         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
3771         on e500v2.
3772         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
3773         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
3774
3775         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
3776         (rs6k_nonimmediate_operand): New.
3777         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
3778         correctly.
3779         (legitimate_lo_sum_address_p): Same.
3780         (rs6000_legitimize_address): Same.
3781         (rs6000_legitimize_reload_address): Same.
3782         (rs6000_legitimate_address): Same.
3783         (spe_build_register_parallel): Pass DF and DC modes in a DI
3784         register.
3785
3786         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
3787         to rs6k_nonimmediate_operand.
3788
3789         * config/rs6000/spe.md ("*frob_df_di"): New.
3790         ("*frob_di_df"): New.
3791         ("*frob_di_df_2"): New.
3792         ("*mov_sidf_e500_subreg0"): New.
3793         ("*mov_sidf_e500_subreg4"): New.
3794         ("*movdf_e500_double"): Change predicate to
3795         rs6k_nonimmediate_operand.
3796
3797 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3798
3799         * postreload.c (move2add_note_store): Only call
3800         trunc_int_for_mode on scalar integers.
3801
3802 2005-01-14  Steven Bosscher  <stevenb@suse.de>
3803
3804         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
3805         replace BB_VISITED uses.
3806         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
3807         (propagate_necessity): Check the bitmap instead of BB_VISITED.
3808         (tree_dce_done): Free visited_control_parents.
3809         (perform_tree_ssa_dce): Allocate and clear it.
3810         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
3811         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
3812         instead of BB_VISITED.
3813
3814 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
3815
3816         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
3817         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
3818         Remove unused prototypes.
3819
3820 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3821
3822         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
3823         64-bit register usage.
3824         (spe_func_has_64bit_regs_p): Add FIXME note.
3825
3826 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3827
3828         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
3829         flag_finite_math_only with flag_unsafe_math_optimizations.
3830
3831 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
3832
3833         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
3834         end-of-stack check.
3835         (__tpf_eh_return): Copy TPF private stack area from the module
3836         boundary stack frame.  Add check for when module addresses are
3837         equal, but no stub address is found.
3838
3839 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
3840
3841         PR target/7525
3842         * arm.h (struct machine_function): Add call_via field.
3843         (thumb_call_via_label): Declare.
3844         * arm.c (thumb_call_via_label): New variable.
3845         (thumb_call_reg_needed): New variable.
3846         (arm_output_function_epilogue): For Thumb code, output any per-function
3847         call-indirect trampolines.
3848         (thumb_call_via_reg): New function.
3849         (arm_file_end): New function.
3850         (TARGET_ASM_FILE_END): Call arm_file_end.
3851         (aof_file_end): Likewise.
3852         * arm-protos.h (thumb_call_via_reg): Declare.
3853         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
3854         thumb_call_via_reg in normal case.
3855
3856 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
3857
3858         PR middle-end/19084
3859         PR rtl-optimization/19348
3860         * recog.c (peephole2_optimize): Do global life update if some peephole
3861         decides it doesn't need at least one of its inputs and that change
3862         influences liveness at the start of the basic block.
3863
3864         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
3865         arguments instead of 1.
3866
3867 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
3868
3869         PR middle-end/18820
3870         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
3871         zero for nested functions needing a static chain or functions
3872         with a non-constant address.
3873
3874 2005-01-13  Roger Sayle  <roger@eyesopen.com>
3875
3876         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
3877         (and (sign_extend X) C) into (zero_extend (and X C)).
3878
3879 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
3880
3881         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
3882
3883 2005-01-13  Richard Henderson  <rth@redhat.com>
3884
3885         PR target/19009
3886         PR target/19250
3887         PR target/19252
3888         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
3889         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
3890         not just TARGET_SSE.
3891         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
3892         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
3893         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
3894         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
3895         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
3896         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
3897         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
3898         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
3899         (movdicc_c_rex64): Rename with '*'.
3900         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
3901         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
3902         (movsfcc_1_387): Rename from movsfcc_1.
3903         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
3904         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
3905         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
3906         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
3907         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
3908         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
3909         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
3910         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
3911         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3912         sse_movdfcc_const0_4): Remove.
3913         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
3914         recognize min/max early.  Update for changed sse cmove patterns.
3915         (ix86_split_sse_movcc): New.
3916         * config/i386/i386-protos.h: Update.
3917
3918 2005-01-13  Steven Bosscher  <stevenb@suse.de>
3919
3920         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
3921         (fix_stmt_v_may_defs): Likewise.
3922
3923 2005-01-13  Richard Henderson  <rth@redhat.com>
3924
3925         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
3926         for converting the mask.
3927
3928 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
3929
3930         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
3931         definition to 600.
3932
3933 2005-01-13  Richard Henderson  <rth@redhat.com>
3934
3935         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
3936         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
3937         IX86_BUILTIN_MOVDQ2Q): Remove.
3938         (IX86_BUILTIN_VEC_EXT_V4SI): New.
3939         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
3940         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
3941         shuffling.
3942         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
3943         (sse2_pextrw): Fix immediate constraint.
3944         (sse2_loadq, sse2_loadq_rex64): Remove.
3945         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
3946         Use __builtin_ia32_vec_ext_<size>.
3947         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
3948
3949 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
3950
3951         * function.c (assign_parm_setup_block): Look inside original
3952         entry_parm when inspecting PARALLEL.
3953
3954 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
3955             Joel Sherrill  <joel@oarcorp.com>
3956
3957         PR target/19399
3958         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
3959         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
3960         rtems_gxx_recursive_mutex_init.
3961         (__gthread_recursive_mutex_lock): New function.
3962         (__gthread_recursive_mutex_trylock): Likewise.
3963         (__gthread_recursive_mutex_unlock): Likewise.
3964
3965 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
3966
3967         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
3968
3969 2005-01-13  Jan Beulich  <jbeulich@novell.com>
3970
3971         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
3972         (ashrti3_internal): Indicate output is early clobber. Generate result
3973         into output rather than first input. Use move for low word of output
3974         if shift count is exactly 64.
3975         (lshrti3_internal): Likewise.
3976
3977 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
3978
3979         PR target/18329
3980         PR target/18330
3981         * reload1.c (delete_output_reload): Don't delete an output reload
3982         if the pseudo lives longer than a single basic block.  Adjust and
3983         improve wording of comment.
3984
3985 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
3986
3987         PR target/19334
3988         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
3989         of TYPE_SIZE where we mean the number of bytes.
3990
3991 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
3992
3993         * function.c (assign_parm_setup_block): Relax condition on
3994         multi-register optimization.
3995
3996 2005-01-12  Nick Clifton  <nickc@redhat.com>
3997
3998         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
3999         an "in_delay_slot" attribute of "no" to prevent them being used in
4000         delay slots.  This is forbidden because they might generate
4001         exceptions.
4002
4003 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
4004
4005         PR target/19389
4006         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
4007         with r->Y and Y->r.
4008
4009 2005-01-12  Nick Clifton  <nickc@redhat.com>
4010
4011         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
4012         passed on to GAS) but do not define, as GAS no longer supports or
4013         needs the -m2000 option.
4014
4015 2005-01-11  Roger Sayle  <roger@eyesopen.com>
4016
4017         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
4018         type as args of unprototyped builtins aren't automatically promoted.
4019         (fold_builtin_abs): Likewise.
4020
4021 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4022
4023         * Makefile.in: Set a `build-warn' variable.
4024
4025 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
4026
4027         PR tree-optimization/17949
4028         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
4029         (find_interesting_uses_address): Use it.
4030
4031 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
4032
4033         * regrename.c (kill_value): Handle subreg's that won't simplify.
4034
4035 2005-01-11  Richard Henderson  <rth@redhat.com>
4036
4037         PR target/13366
4038         * config/i386/i386.h (enum ix86_builtins): Move ...
4039         * config/i386/i386.c: ... here.
4040         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
4041         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
4042         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
4043         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
4044         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
4045         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
4046         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
4047         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
4048         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
4049         IX86_BUILTIN_LOADDDUP): Remove.
4050         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
4051         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
4052         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
4053         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
4054         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
4055         (ix86_init_builtins): Make static.
4056         (ix86_init_mmx_sse_builtins): Update for changed builtins.
4057         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
4058         if all the modes match.  Otherwise, fake it.
4059         (get_element_number, ix86_expand_vec_init_builtin,
4060         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
4061         (ix86_expand_builtin): Make static.  Update for changed builtins.
4062         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
4063         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
4064         (ix86_expand_vector_init_duplicate): New.
4065         (ix86_expand_vector_init_low_nonzero): New.
4066         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
4067         Split out from ix86_expand_vector_init; handle integer modes.
4068         (ix86_expand_vector_init): Use them.
4069         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
4070         * config/i386/i386-protos.h: Update.
4071         * config/i386/predicates.md (reg_or_0_operand): New.
4072         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
4073         (movv2sf_internal): Likewise.  And a splitter to match them all.
4074         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
4075         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
4076         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
4077         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
4078         (mmx_pinsrw): Fix operand ordering.
4079         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
4080         rather than sse_loadss expander.
4081         (movv2df splitter): Similarly.
4082         (sse_loadss, sse_loadlss): Remove.
4083         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
4084         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
4085         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
4086         (sse3_movddup): Rename with '*'.
4087         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
4088         (sse2_loadsd): Remove.
4089         (vec_dupv2df_sse3): Rename from sse3_loadddup.
4090         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
4091         (sse2_pinsrw): Fix argument ordering.
4092         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
4093         (sse2_stored): Remove 'r' destination.
4094         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
4095         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
4096         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
4097         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
4098         vec_extractv16qi, vec_initv16qi): New.
4099
4100         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
4101         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
4102         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
4103         constructor form.
4104         (_mm_load_pd, _mm_store_pd): Use plain dereference.
4105         (_mm_load_si128, _mm_store_si128): Likewise.
4106         (_mm_load1_pd): Use _mm_set1_pd.
4107         (_mm_load_sd): Use _mm_set_sd.
4108         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
4109         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
4110         (_mm_set_epi64): Use _mm_set_epi64x.
4111         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
4112         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
4113         _mm_setr_epi8): Use _mm_set_foo form.
4114         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
4115         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
4116         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
4117         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
4118         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
4119         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
4120         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
4121         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
4122         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
4123         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
4124         (_mm_movedup_pd): Use _mm_shuffle_pd.
4125         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
4126         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
4127         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
4128         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
4129         Use _mm_setzero_ps.
4130         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
4131         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
4132         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
4133         (_mm_store_ps): Use raw dereference.
4134         (_mm_store1_ps): Use _mm_storeu_ps.
4135         (_mm_storer_ps): Use _mm_store_ps.
4136         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
4137         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
4138
4139 2005-01-11  Stan Shebs  <shebs@apple.com>
4140
4141         * config/rs6000/rs6000.c (machopic_output_stub): Issue
4142         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
4143
4144 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
4145
4146         PR target/18761
4147         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
4148         Skip all DECLs except for FIELD_DECLs.
4149
4150 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
4151
4152         * config/s390/s390.c (override_options): Return error if
4153         -mbackchain, -mpacked-stack and -mhard-float are used together.
4154         (s390_va_start): Remove the backchain && packed-stack special case.
4155         (s390_gimplify_va_arg): Likewise.
4156         * doc/invoke.texi: Remove the ABI incompatibility note.
4157
4158 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
4159
4160         * config/s390/s390.c (struct s390_frame_layout): Remove
4161         save_backchain_p.
4162         (s390_frame_info, s390_emit_prologue): Replace occurrences of
4163         save_backchain_p with TARGET_BACKCHAIN.
4164
4165 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
4166
4167         PR target/18916
4168         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
4169         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
4170         * function.c (locate_and_pad_parm): Set new field.
4171         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
4172         Tweak where_pad test to include "none".  Always set mem align for
4173         stack_parm.
4174         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
4175         not sufficient for type.
4176         (assign_parm_setup_block): If stack_parm is zero on entry, always
4177         make a new stack local.  Block move old stack parm if necessary
4178         to new aligned stack local.
4179         (assign_parm_setup_stack): Use a block move to handle
4180         potentially misaligned entry_parm.
4181         (assign_parms_unsplit_complex): Specify required alignment when
4182         creating stack local.
4183         * calls.c (compute_argument_addresses): Override alignment of stack
4184         arg calculated from its type with the alignment given by
4185         FUNCTION_ARG_BOUNDARY.
4186         (store_one_arg): Likewise.
4187
4188 2005-01-11  Jan Beulich  <jbeulich@novell.com>
4189
4190         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
4191         Change respective itanium_class attribute to ialu.
4192         (shladdp4_internal): New.
4193         * config/ia64/predicates.md (shladd_log2_operand): New.
4194
4195 2005-01-11  Richard Henderson  <rth@redhat.com>
4196
4197         * expr.c (store_constructor): Use rtvec_alloc instead of
4198         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
4199
4200 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
4201
4202         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
4203
4204 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
4205
4206         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
4207         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
4208         (TARGET_RWRELOC): Define.
4209         (ia64_rwreloc_section_type_flags): Delete.
4210         (ia64_section_type_flags): New function.
4211         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
4212         (TARGET_RWRELOC): Define.
4213
4214 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
4215
4216         PR target/18987
4217         * config/ia64/ia64.c (process_set): For alloc insn, only call
4218         process_epilogue is !frame_pointer_needed.
4219
4220 2005-01-10  Roger Sayle  <roger@eyesopen.com>
4221
4222         PR c++/19355
4223         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
4224         unary operator and can't be treated as a binary/comparison operator.
4225
4226 2005-01-10  Richard Henderson  <rth@redhat.com>
4227
4228         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
4229         (ix86_return_in_memory): Likewise.
4230         (function_arg_advance):  Likewise.  Mirror structure in function_arg
4231         for choosing register to advance.
4232
4233 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
4234
4235         * tree-vectorizer.c, tree.def: Fix comment typos.
4236
4237 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
4238
4239         * config/s390/s390.c (struct processor_costs): 4 new fields:
4240         ddbr, ddr, debr, der.
4241         (s390_rtx_costs): More precise handling of divide instructions.
4242
4243 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
4244
4245         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
4246
4247 2005-01-10  Jan Beulich  <jbeulich@novell.com>
4248
4249         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
4250         names resulting from -ffunction-sections/-fdata-sections and linkonce
4251         ones.
4252         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
4253         based on the section name. Rearrange the section name comparison logic
4254         slightly so that each section name is compared against at most once.
4255
4256 2005-01-10  Ben Elliston  <bje@au.ibm.com>
4257
4258         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
4259         targets for which -fPIC reduces limitations on the GOT size.
4260
4261 2005-01-09  Falk Hueffner  <falk@debian.org>
4262
4263         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
4264         X/C1 cmpop C2.
4265
4266 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
4267
4268         PR target/18720
4269         * collect2.c (main): Set aixrtl_flag for -brtl option.
4270         (resolve_lib_name): Search for .so file extension before .a
4271         if aixrtl_flag set.
4272
4273 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
4274
4275         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
4276         (vect_analyze_data_refs_alignment): Add dump prints.
4277
4278 2005-01-09  Ira Rosen  <irar@il.ibm.com>
4279
4280         * tree-vectorizer.c (vect_analyze_offset_expr): Use
4281         expr_invariant_in_loop_p.
4282         Initialize outputs first thing in the function.
4283         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
4284         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
4285         (vect_analyze_pointer_ref_access): Check that the initial condition of
4286         the access function is loop invariant.
4287
4288 2005-01-09  Richard Henderson  <rth@redhat.com>
4289
4290         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
4291         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
4292         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
4293         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
4294         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
4295         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
4296         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
4297         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
4298         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
4299         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
4300         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
4301         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
4302         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
4303         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
4304         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
4305         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
4306         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
4307         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
4308         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
4309         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
4310         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
4311         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
4312         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
4313         mmx_ prefix.
4314         (mmx_clrdi, pavgusb): Remove.
4315         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
4316         with leading sse_ prefix.
4317         * config/i386/sse.md: Receive them.
4318         * config/i386/mmx.md: New file.
4319         (MMXMODE12, MMXMODE24, mmxvecsize): New.
4320         (subrv2sf3): Turn into expander for normal subtraction.
4321         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
4322         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
4323         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
4324         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
4325         commutative; use ix86_binary_operator_ok.
4326         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
4327         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
4328         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
4329         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
4330         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
4331         Macroize from existing patterns; use ix86_binary_operator_ok.
4332         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
4333         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
4334         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
4335         with vec_select+vec_concat.
4336         (mmx_pshufw, mmx_pshufw_1): Likewise.
4337         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
4338         (mmx_uavgv4hi3): Model correctly.
4339         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
4340         _mm_xor_si64): Remove casts.
4341
4342 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
4343
4344         PR tree-optimization/19224
4345         * tree-scalar-evolution.c (get_instantiated_value,
4346         set_instantiated_value): New functions.
4347         (instantiate_parameters_1): Cache the results.
4348         (instantiate_parameters, resolve_mixers): Initialize and free
4349         the cache.
4350
4351 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
4352
4353         * config/i386/i386.md (addhi_4): Correct reference in comment.
4354         (addqi_4): Same.
4355
4356 2005-01-08  Richard Henderson  <rth@redhat.com>
4357
4358         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
4359         (_mm_cvtsi128_si64x): Likewise.
4360         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
4361         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
4362         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
4363         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
4364         * config/i386/i386-protos.h: Update.
4365         * config/i386/i386.c (print_operand): Add 'H'.
4366         (ix86_fixup_binary_operands): Split out from ...
4367         (ix86_expand_binary_operator): ... here.
4368         (ix86_fixup_binary_operands_no_copy): New.
4369         (ix86_expand_fp_absneg_operator): Handle vector mode results.
4370         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
4371         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
4372         (safe_vector_operand): Use CONST0_RTX.
4373         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
4374         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
4375         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
4376         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
4377         special cases.
4378         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
4379         (IX86_BUILTIN_CMPNGESS): New.
4380         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
4381         (attr type): Add sselog1.
4382         (attr unit, attr memory): Handle it.
4383         (movti, movti_internal, movti_rex64): Move near other integer moves.
4384         (movtf, movtf_internal): Move near other fp moves.
4385         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
4386         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
4387         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
4388         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
4389         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
4390         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
4391         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
4392         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
4393         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
4394         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
4395         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
4396         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
4397         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
4398         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
4399         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
4400         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
4401         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
4402         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
4403         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
4404         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
4405         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
4406         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
4407         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
4408         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
4409         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
4410         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
4411         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
4412         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
4413         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
4414         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
4415         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
4416         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
4417         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
4418         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
4419         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
4420         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
4421         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
4422         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
4423         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
4424         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
4425         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
4426         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
4427         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
4428         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
4429         same time.
4430         (SSEPUSH, push<SSEPUSH>): Remove.
4431         (MMXPUSH, push<MMXPUSH>): Remove.
4432         (sse_movaps, sse_movaps_1, sse_movups): Remove.
4433         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
4434         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
4435         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
4436         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
4437         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
4438         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
4439         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
4440         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
4441         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
4442         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
4443         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
4444         (ppro_sse_log_V4SF): Handle sselog1.
4445         * config/i386/predicates.md (const_0_to_1_operand): New.
4446         (const_0_to_255_mul_8_operand): New.
4447         (const_1_to_31_operand): Rename from const_int_1_31_operand.
4448         (const_2_to_3_operand, const_4_to_7_operand): New.
4449         * config/i386/sse.md: New file.
4450         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
4451         (sse_movups): Rename from sse_movups_1.
4452         (sse_loadlss): Rename from sse_loadss_1.
4453         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
4454         from the name.
4455         (negv4sf2): Use ix86_expand_fp_absneg_operator.
4456         (absv4sf2, negv2df, absv2df): New.
4457         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
4458         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
4459         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
4460         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
4461         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
4462         (sse3_addsubv4sf3): Model correctly.
4463         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
4464         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
4465         (sse_movhlps): Model with vec_select+vec_concat.
4466         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
4467         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
4468         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
4469         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
4470         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
4471         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
4472         sse2_pshufhw_1): Likewise.
4473         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
4474         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
4475         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
4476         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
4477         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
4478         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
4479         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
4480         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
4481         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
4482         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
4483         sminv8hi3): Mark commutative
4484         operands.  Use ix86_binary_operator_ok.
4485         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
4486         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
4487         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
4488         sse2_punpcklqdq): Allow operand2 in memory.
4489         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
4490         sse2_movsd): Add memory alternatives.
4491         (sse_storelps): Turn expander into an insn; split after reload.
4492         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
4493         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
4494
4495 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4496
4497         * configure.ac (DWARF-2 debug_line): Use objdump.
4498         * configure: Regenerate.
4499
4500 2005-01-08  Jeff Law  <law@redhat.com>
4501             Diego Novillo  <dnovillo@redhat.com>
4502
4503         PR tree-optimization/18241
4504         * tree-nrv.c (tree_nrv): Ignore volatile return values.
4505         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
4506         statements with volatile operands.
4507         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
4508         operands after marking a statement with has_volatile_ops.
4509
4510 2005-01-08  Roger Sayle  <roger@eyesopen.com>
4511
4512         * tree.c (int_fits_type_p): Always honor integer constant
4513         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
4514
4515 2005-01-08  Roger Sayle  <roger@eyesopen.com>
4516
4517         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
4518         the latent bug in rtl_delete_block has been resolved.
4519
4520 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
4521
4522         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
4523         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
4524
4525 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
4526
4527         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
4528         library as @multilib_dir@/$(SHLIB_SONAME).
4529
4530 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4531
4532         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
4533         * configure: Regenerate.
4534
4535 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
4536
4537         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
4538         TYPE_MODE.
4539
4540 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
4541
4542         PR target/13674
4543         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4544         Convert non-word aligned offset address using ld/std into
4545         indirect address.
4546
4547 2005-01-07  Richard Henderson  <rth@redhat.com>
4548
4549         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
4550
4551 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
4552
4553         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
4554
4555 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
4556
4557         PR tree-optimization/19283
4558         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
4559         is not shorter than the original type.
4560
4561         PR rtl-optimization/19012
4562         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
4563
4564         PR rtl-optimization/18861
4565         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
4566         (FULL_STATE): Define.
4567         (mark_tablejump_edge): New function.
4568         (purge_dead_tablejump_edges): New function.
4569         (find_bb_boundaries): Use it.
4570
4571         PR tree-optimization/18828
4572         * builtins.c (expand_builtin_next_arg): Remove argument and all
4573         the argument checking.
4574         (expand_builtin): Adjust caller.
4575         (expand_builtin_va_start): Likewise.  Remove error for too many
4576         arguments.
4577         (fold_builtin_next_arg): Issue error for too many arguments.
4578         After checking arguments, replace them with magic arguments that
4579         prevent further checking of the args.
4580
4581 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4582
4583         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
4584
4585 2005-01-06  Roger Sayle  <roger@eyesopen.com>
4586
4587         PR target/6077
4588         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
4589         and %{.S:...} (and their negative variants) to test whether the
4590         input file is assembler or pre-processed-assembler independent of
4591         the actual filename extension.
4592
4593 2005-01-06  Roger Sayle  <roger@eyesopen.com>
4594
4595         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
4596         of sign or zero extended values.
4597
4598 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
4599
4600         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
4601         for IBM long double format correctly.
4602
4603 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
4604
4605         Fix PR tree-optimization/18792
4606
4607         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
4608         to first_loop_depth, and use loop depth instead of loop number.
4609         (build_classic_dir_vector): Ditto.
4610         (compute_data_dependences_for_loop): Use depth, not loop number.
4611         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
4612         number. Pass in loops, instead of loop numbers.
4613         (gather_interchange_stats): Ditto.
4614         (linear_transform_loops): Ditto.
4615
4616 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
4617
4618         PR rtl-opt/13299
4619         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
4620         biv_fits_mode_p, extension_within_bounds_p): New functions.
4621         (check_ext_dependent_givs): Use them.
4622
4623 2005-01-06  Roger Sayle  <roger@eyesopen.com>
4624
4625         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
4626         more than one barrier, in which case we should delete them all.
4627
4628 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4629
4630         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
4631
4632 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
4633
4634         Fix PR middle-end/19286
4635         Fix PR debug/19267
4636         * dwarf2out.c (gen_subprogram_die): If we've already tried to
4637         output this subprogram, simply ignore this attempt to do it again.
4638         (add_abstract_origin_attribute): Don't abort trying to add the abstract
4639         origin attribute if it's not possible.
4640         (gen_block_die): Don't ignore subblocks of "unused" blocks.
4641         (decls_for_scope): Ditto.
4642         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
4643         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
4644
4645 2005-01-05  Richard Henderson  <rth@redhat.com>
4646
4647         PR target/11327
4648         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
4649         (bdesc_2arg): Use it.
4650         (ix86_expand_binop_builtin): Force operands into registers
4651         when optimizing.
4652         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
4653         ix86_expand_sse_compare, ix86_expand_sse_comi,
4654         ix86_expand_builtin): Likewise.
4655
4656 2005-01-05  Richard Henderson  <rth@redhat.com>
4657
4658         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
4659         and VEC_SELECT.
4660         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
4661         (mulv4hi3): Set itanium_class mmmul.
4662         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
4663         (fpack): Rename from fpack_sfsf.
4664
4665 2005-01-05  Richard Henderson  <rth@redhat.com>
4666
4667         PR rtl-opt/10692
4668         * reload1.c (do_input_reload): Restrict the optimization deleteing
4669         a previous output reload to RELOAD_FOR_INPUT.
4670
4671 2005-01-05  Steven Bosscher  <stevenb@suse.de>
4672
4673         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
4674         comment that we fall through after case.
4675         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
4676         (distribute_links): Likewise.
4677         * cse.c (cse_insn): Likewise.
4678         * cselib.c (cselib_invalidate_mem): Likewise.
4679         * df.c: Update comments at the top of the file.
4680         (read_modify_subreg_p): Update comments here too.
4681         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
4682         * flow.c (mark_set_1): Likewise.
4683         (mark_used_regs): Likewise.
4684         * gcse.c (mems_conflict_for_gcse_p): Likewise.
4685         (canon_list_insert): Likewise.
4686         (mark_set): Likewise.
4687         (try_replace_reg): Likewise.
4688         (store_killed_in_insn): Likewise.
4689         * loop.c (count_one_set): Likewise.
4690         (basic_induction_var): Likewise.
4691         * postreload-gcse.c (find_mem_conflicts): Likewise.
4692         * postreload.c (reload_combine_note_store): Likewise.
4693         (move2add_note_store): Likewise.
4694         * reload.c (find_equiv_reg): Likewise.
4695         (mark_referenced_resources): Likewise.
4696         * rtlanal.c (set_noop_p): Likewise.
4697         (note_stores): Likewise.
4698         (note_uses): Likewise.
4699         * sched-deps.c (sched_analyze_1): Likewise.
4700         * sched-rgn.c (check_live_1): Likewise.
4701         (update_live_1): Likewise.
4702         * config/i860/i860.c: Likewise.
4703
4704         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
4705         an lvalue.
4706         (ZERO_EXTRACT): Mention that this one can be an lvalue.
4707
4708         * doc/rtl.texi: Update documentation for bit-fields and SET.
4709
4710 2005-01-05  Roger Sayle  <roger@eyesopen.com>
4711
4712         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
4713
4714 2005-01-05  Jan Hubicka  <jh@suse.cz>
4715             Richard Henderson  <rth@redhat.com>
4716
4717         PR target/18910
4718         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
4719         with an offset.
4720
4721 2005-01-05  Richard Henderson  <rth@redhat.com>
4722
4723         PR target/12902
4724         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
4725         (sse_shufps): Change operand 3 to const_int_operand.
4726         (sse2_storelps): Fix typo in template.
4727         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
4728         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
4729         (ix86_expand_builtin): Likewise.
4730
4731 2005-01-05  Julian Brown  <julian@codesourcery.com>
4732
4733         * config/arm/arm.c (arm_return_in_memory): Treat complex types
4734         as aggregates for AAPCS ABIs.
4735
4736 2005-01-05  Stan Shebs  <shebs@apple.com>
4737
4738         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
4739         Mach-O getters if ppc64.
4740         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
4741         size argument.
4742         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
4743         signed four-byte field for global code case.
4744         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
4745
4746 2005-01-05  Roger Sayle  <roger@eyesopen.com>
4747
4748         PR middle-end/19100
4749         * c-common.c: Include real.h.
4750         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
4751         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
4752         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
4753         * Makefile.in (c-common.o): Update dependencies.
4754
4755 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
4756
4757         * c-parse.in (asm_string): Add trailing semicolon.
4758
4759 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
4760
4761         * c-parse.in (asm_string): New.  Don't allow wide strings in
4762         'asm'.
4763         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
4764         asm_string instead of STRING.
4765
4766 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
4767
4768         * c-typeck.c (constructor_no_implicit): Remove.
4769         (set_designator, process_init_element): Don't check
4770         constructor_no_implicit.
4771
4772 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
4773             Kaz Kojima  <kkojima@gcc.gnu.org>
4774
4775         PR target/16482
4776         * lcm.c (create_pre_exit): New.
4777         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
4778         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
4779
4780 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
4781
4782         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
4783         -msoft-float in target_float_switch.
4784         * arm.c (arm_override_options): Fix processing of target_float_switch.
4785
4786 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
4787
4788         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
4789         preferencing.
4790
4791 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
4792
4793         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
4794         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
4795
4796 2005-01-04  Roger Sayle  <roger@eyesopen.com>
4797
4798         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
4799         if deleting the then-block allows the test-block to fallthru to the
4800         else-block.
4801
4802 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
4803
4804         PR c/19152
4805         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
4806         after the full declaration if the are in two different TUs.
4807
4808 2005-01-04  Richard Henderson  <rth@redhat.com>
4809
4810         PR tree-opt/19158
4811         * tree-sra.c (generate_one_element_init): Just
4812         call gimplify_and_add.
4813         (generate_element_init): Record the
4814         new referenced variables and mark them for renaming
4815         and split out to ...
4816         (generate_element_init_1): This.
4817         (scalarize_init): Don't call push_gimplify_context/
4818         pop_gimplify_context.
4819
4820 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
4821
4822         * toplev.c (get_src_pwd): Handle failure of getpwd().
4823
4824 2005-01-04  Roger Sayle  <roger@eyesopen.com>
4825
4826         * fold-const.c (fold_single_bit_test): Delete unreachable handling
4827         of TRUTH_NOT_EXPR.
4828         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
4829         all the cases handled by it are inverted by invert_truthvalue.
4830
4831 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4832
4833         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
4834         (save_register_windowsi): Likewise.
4835
4836 2005-01-04  Richard Henderson  <rth@redhat.com>
4837
4838         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
4839
4840 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
4841
4842         PR middle-end/17767
4843         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
4844         any simplifications of vector mode comparison operators.
4845         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
4846
4847 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
4848             Devang Patel  <dpatel@apple.com>
4849
4850         PR tree-optimization/18308
4851         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
4852         the operands before creating a new expression.
4853         * dojump.c (do_jump): Make drop_through_label available
4854         for all cases.  Add expansion of COND_EXPR.
4855
4856 2005-01-04  Ira Rosen  <irar@il.ibm.com>
4857
4858         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
4859         INTEGER_CST instead of TREE_CONSTANT.
4860         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
4861         instead of TREE_CONSTANT.
4862         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
4863         instead of TREE_CONSTANT.
4864
4865 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4866
4867         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
4868
4869 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
4870
4871         PR target/19240
4872         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
4873         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
4874
4875 2005-01-03  Richard Henderson  <rth@redhat.com>
4876
4877         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
4878         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
4879         fold_convert_const_real_from_real): Split out from ...
4880         (fold_convert_const): ... here.
4881
4882 2005-01-03  Richard Henderson  <rth@redhat.com>
4883
4884         PR target/19235
4885         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
4886         (mov<MMXMODEI>_internal): Likewise.
4887         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
4888         Add V2SF case; use it for SSE1; don't use TI.
4889         (movdf_integer): Likewise.
4890         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
4891
4892 2005-01-03  Ira Rosen  <irar@il.ibm.com>
4893
4894         * tree-vectorizer.c (vect_strip_conversions): New function.
4895         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
4896         check for binary class.
4897
4898 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
4899
4900         Fix PR debug/17924
4901         Fix PR debug/19191
4902         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
4903         is a decl.
4904         * gimple-low.c (mark_blocks_with_used_vars): New function.
4905         (mark_blocks_with_used_subblocks): Ditto.
4906         (mark_used_blocks): Ditto.
4907         (pass_mark_used_blocks): New pass.
4908         * tree-inline.c: Include debug.h.
4909         (expand_call_inline): Call outlining_inline_function here.
4910         * tree-optimize.c (init_tree_optimization_passes): Add
4911         pass_mark_used_blocks.
4912         * tree-pass.h (pass_mark_used_blocks): New.
4913         * Makefile.in (tree-inline.o): Add debug.h dependency.
4914
4915 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
4916
4917         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
4918         VAR_DECLs to have weak_import attribute.
4919
4920         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
4921         'struct ucontext'.
4922
4923 2004-01-03  Steven Bosscher  <stevenb@suse.de>
4924
4925         * passes.c (rest_of_compilation): Don't run regmove if only
4926         flag_expensive_optimizations, require flag_regmove instead.
4927
4928 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4929
4930         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
4931         register "sparc".
4932         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
4933         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
4934         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
4935         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
4936
4937 2005-01-03  Richard Henderson  <rth@redhat.com>
4938
4939         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
4940         (ia64_const_ok_for_letter_p): New.
4941         (ia64_const_double_ok_for_letter_p): New.
4942         (ia64_extra_constraint): New.
4943         (ia64_expand_vecint_compare): New.
4944         (ia64_expand_vcondu_v2si): New.
4945         (ia64_expand_vecint_cmov): New.
4946         (ia64_expand_vecint_minmax): New.
4947         (ia64_print_operand): Add 'v'.
4948         (ia64_preferred_reload_class): New.
4949         (ia64_vector_mode_supported_p): New.
4950         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
4951         (PREFERRED_RELOAD_CLASS): Move to function.
4952         (CONST_OK_FOR_LETTER_P): Move to function.
4953         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
4954         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
4955         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
4956         (EXTRA_CONSTRAINT): Move to function.
4957         * config/ia64/ia64.md: Include vect.md.
4958         (itanium_class): Add mmalua.
4959         (type): Handle it.
4960         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
4961         (1b_mmalua): New.
4962         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
4963         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
4964         CONST0_RTX.
4965         (const_int_2bit_operand): New.
4966         (fr_reg_or_0_operand): New.
4967         * config/ia64/ia64-modes.def: Add vector modes.
4968         * config/ia64/ia64-protos.h: Update.
4969         * config/ia64/vect.md: New file.
4970
4971 2005-01-03  Richard Henderson  <rth@redhat.com>
4972
4973         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
4974
4975 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
4976
4977         PR target/19236
4978         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
4979         to SFmode.
4980         (log1pdf2): Change mode of operands[0,1] to DFmode.
4981
4982 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4983
4984         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
4985         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
4986         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
4987         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
4988         SPARC_RELAXED_ORDERING.
4989
4990 2005-01-03  Richard Henderson  <rth@redhat.com>
4991             Uros Bizjak  <uros@kss-loka.si>
4992
4993         PR target/14631
4994         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
4995         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
4996         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
4997         handling.
4998         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
4999         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
5000         const_pow2_1_to_128_operand): New predicates.
5001
5002 2005-01-02  Greg McGary  <greg@mcgary.org>
5003
5004         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
5005         anonymous decls.
5006         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
5007         object.  [ptr_type]: Remove unused variable.
5008         Remember nearest addressable array-element or record-component
5009         when checking bitfield components.  Tolerate empty BIND_EXPR.
5010
5011 2005-01-01  Richard Henderson  <rth@redhat.com>
5012
5013         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
5014         that don't narrow the value.  Fail for other conversions.
5015
5016 2005-01-01  Richard Henderson  <rth@redhat.com>
5017
5018         PR c/19031
5019         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
5020         * c-lang.c (finish_file): Don't do it here.
5021         * objc/objc-act.c (objc_finish_file): Likewise.
5022
5023         * cgraph.c (decl_assembler_name_equal): New.
5024         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
5025         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
5026         * cgraph.h (struct cgraph_varpool_node): Add next.
5027         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
5028         * varasm.c (assemble_alias): Mark the target as needed.
5029
5030 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
5031
5032         PR middle-end/19221
5033         * function.c (get_arg_pointer_save_area): Use entry_of_function
5034         instead of get_insns.
5035
5036 2005-01-01  Roger Sayle  <roger@eyesopen.com>
5037             Andrew Pinski  <pinskia@physics.uc.edu>
5038             James E. Wilson  <wilson@specifixinc.com>
5039
5040         PR rtl-optimization/12092
5041         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
5042         is zero.
5043
5044 2005-01-01  Roger Sayle  <roger@eyesopen.com>
5045             Olivier Hainque  <hainque@act-europe.fr>
5046
5047         * tree.c (int_fits_type_p): A narrower type always fits in a
5048         wider one, except for negative values into unsigned types.
5049
5050 2005-01-01  Roger Sayle  <roger@eyesopen.com>
5051
5052         * tree.c (int_fits_type_p): Compare the result of force_fit_type
5053         with the original constant rather than require TREE_OVERFLOW.
5054
5055 2005-01-01  Steven Bosscher  <stevenb@suse.de>
5056
5057         PR middle-end/17544
5058         * c-decl.c (finish_function): If compiling C99, annotate the
5059         compiler generated return with the current file name and line 0.
5060         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
5061         the source line is greater than 0.
5062         (remove_bb): Likewise.
5063
5064 See ChangeLog.12 for earlier changes.