OSDN Git Service

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