OSDN Git Service

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