OSDN Git Service

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