OSDN Git Service

* doc/install.texi: Update the URL for Jacks.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
2
3         * doc/install.texi: Update the URL for Jacks.
4         * doc/sourcebuild.texi: Likewise.
5
6 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7
8         PR target/17245
9         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
10         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
11
12 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
13
14         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
15
16 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
17
18         * config/v850/v850-protos.h (override_options): Delete.
19         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
20         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
21         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
22         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
23         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
24         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
25         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
26         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
27         (OVERRIDE_OPTIONS): Delete.
28         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
29         (small_memory_info): Remove the value field.
30         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
31         TARGET_NO_APP_REGS.
32         * config/v850/v850.c (small_memory): Remove the value field.
33         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
34         (override_options): Delete.
35         (v850_handle_memory_option, v850_handle_option): New functions.
36         * config/v850/v850.opt: New file.
37
38 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
39
40         * config.host: Add a section for generic hosts, and a subsection
41         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
42         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
43         * config/host-darwin.h: New.
44         * config/x-darwin: New.
45         * config/i386/host-i386-darwin.c: New.
46         * config/i386/x-darwin: New.
47         * config/rs6000/host-darwin.c: Include host-darwin.h.
48         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
49         (darwin_rs6000_gt_pch_use_address): Likewise.
50         * config/rs6000/x-darwin: Change name of .o built, update
51         dependencies for changes to rs6000/host-darwin.c.
52
53 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
54
55         PR target/17824
56         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
57
58 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
59
60         * tree-vect-analyze.c (vect_analyze_loop_form): Call
61         split_loop_exit_edge instead of loop_split_edge_with. 
62
63 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
64
65         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
66         UNSPEC_SET_VSCR): New constants, used throughout.
67         (*andc3_v4sf): New.
68         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
69         Replace with...
70         (altivec_vspltis<VI_char>): ... this pattern, using
71         a QImode const_int_operand for the immediate.
72         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
73         define_expands.
74
75 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
76
77         PR target/17822
78         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
79
80 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
81
82         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
83
84 2005-04-06  Ben Elliston  <bje@au.ibm.com>
85
86         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
87         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
88         macros as living in "this file" and not gcc.h.
89
90 2005-04-06  Ben Elliston  <bje@au.ibm.com>
91
92         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
93         -ftree-live_range_split.  Perhaps renamed at some point?
94
95 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
96
97         PR target/20625
98         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
99         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
100
101 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
102
103         * tree-flow.h (number_of_iterations_cond): Declaration removed.
104         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
105         (number_of_iterations_special): New function.
106         (number_of_iterations_exit): Use number_of_iterations_special.
107         Use simplify_using_outer_evolutions only at -O3.
108         (number_of_iterations_cond, tree_simplify_using_condition,
109         simplify_using_initial_conditions, loop_niter_by_eval,
110         compare_trees, can_count_iv_in_wider_type_bound,
111         simplify_using_outer_evolutions): Use fold_build.
112
113 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
114
115         * doc/install.texi (Configuration): Document --with-java-home.
116
117 2005-04-05  Richard Henderson  <rth@redhat.com>
118
119         PR target/20342
120         PR target/20447
121         * config/i386/i386.c (print_operand): Handle vector zeros.
122         (ix86_split_to_parts): Handle CONST_VECTOR.
123         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
124         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
125         what modes to tie for MMX and SSE registers.
126         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
127         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
128         to vector modes as well.
129         * config/i386/predicates.md (const0_operand): Handle VOIDmode
130         properly as an input mode.
131
132 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
133
134         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
135
136 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
137
138         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
139
140 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
141
142         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
143         and local functions, set sse_nregs to 8 and float_in_sse.
144         (function_arg_advance, function_arg): If float_in_sse, pass
145         SFmode and DFmode arguments in SSE registers.
146         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
147
148         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
149         of -funit-at-a-time.
150
151 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
152
153         * config/i386/i386-protos.h (ix86_function_value): Accept two
154         arguments, like the target macro.
155         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
156         * config/i386/i386.c (ix86_function_value): Accept the second
157         argument of the target macro.
158         (ix86_function_ok_for_sibcall): Pass a function pointer to
159         ix86_function_value.
160         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
161         call to ix86_value_regno).
162         (ix86_value_regno): Add support for returning floating point values
163         in SSE registers.
164
165 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
166
167         PR tree-optimization/20076
168         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
169         that call __builtin_return or __builtin_apply_args.
170
171 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
172
173         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
174         Use immediate use iterator.
175         (stmt_is_bumper_for_loop): Use immediate use iterator.
176         * predict.c (strip_builtin_expect): Use update_stmt.
177         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
178         on all elements of a STATEMENT_LIST.
179         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
180         (bsi_remove): Remove imm_use links and mark the stmt as modified.
181         (bsi_replace): Mark stmt as modified and the update it.
182         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
183         (expand_complex_libcal): Call update_stmt.
184         (expand_complex_comparison): Call mark_stmt_modified.
185         (expand_complex_operations_1): Call update_stmt_if_modified.
186         (expand_vector_operations_1): Call mark_stmt_modified.
187         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
188         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
189         add_immediate_use, redirect_immediate_use,
190         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
191         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
192         (mark_new_vars_to_rename): Call update_stmt.
193         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
194         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.  
195         Ignore PHI nodes.
196         (unmodify_stmt): Delete.
197         (update_stmt): New.  Force an update of a stmt.
198         (update_stmt_if_modified): update a stmt if it is out of date.
199         (get_stmt_operands): Verify stmt is NOT modified. 
200         (stmt_modified_p): Update comment.
201         (delink_imm_use): Remove a use node from its immuse list.
202         (link_imm_use_to_list): Link a use node to a specific list.
203         (link_imm_use): Link a node to the correct list.
204         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
205         it in the correct list, if appropriate.
206         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
207         (relink_imm_use): Link a use node in place of another node in a list.
208         (relink_imm_use_stmt): LInk a node in place of another node, and set
209         the stmt pointer.
210         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
211         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
212         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
213         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
214         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
215         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
216         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
217         (has_zero_uses): New.  Return true if there are no uses of a var.
218         (has_single_use): New.  Return true if there is only a single use of a
219         variable.
220         (single_imm_use): New.  Return the simgle immediate use.
221         (num_imm_uses): New.  Return the number of immediate uses.
222         (get_v_must_def_ops): Use is now a pointer.
223         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
224         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of 
225         the use node.
226         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
227         (delink_stmt_imm_use): Delink all immuses from a stmt.
228         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
229         * tree-flow.h (struct dataflow_d): Delete.
230         (immediate_use_iterator_d): New.  Immediate use iterator struct.
231         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
232         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
233         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe 
234         iteration.
235         (struct stmt_ann_d): Remove dataflow_t from struct.
236         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
237         (if_convertible_phi_p): Use FAST immuse iterator.
238         (if_convertible_loop_p): Don't call compute_immediate_uses.
239         (replace_phi_with_cond_modify_expr): Call update_stmt.
240         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call 
241         update_stmt_if_modified.
242         (rewrite_all_into_ssa): Initialize ssa operands.
243         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
244         compute_immediate_uses.
245         * tree-optimize.c (execute_todo): Call verify_ssa whenever the 
246         ssa_property is available.
247         (execute_one_pass):  Change parameters passed to execute_todo.
248         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
249         (remove_ssa_form): Call fini_ssa_operands.
250         (insert_backedge_copies): Delete call to modify_stmt.
251         * tree-phinodes.c (make_phi_node): Initialize use nodes.
252         (release_phi_node): Delink any use nodes before releasing.
253         (resize_phi_node): Relink any use nodes.
254         (remove_phi_arg_num): Delink the use node.
255         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
256         (remove_all_phi_nodes_for): Release phi node first.
257         * tree-pretty-print.c (dump_generic_node): Print stmt address.
258         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
259         (scalarize_use, scalarize_copy): Call update_stmt.
260         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
261         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
262         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
263         (ccp_initialize): Remove call to compute_immediate_uses.
264         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
265         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified 
266         stmts.
267         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
268         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
269         (eliminate_redundant_computations): Call mark_stmt_modified.
270         (cprop_operand): Call mark_stmt_modified.
271         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
272         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
273         (dse_optimize_stmt): Use new immuse interface.
274         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
275         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
276         (substitute_single_use_vars): Use new immuse interface.
277         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
278         and compute_immediate_uses.
279         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse 
280         interface.
281         (rewrite_mem_refs): Call update_stmt.
282         (determine_lsm): Remove call to compute_imm_uses and free_df.
283         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
284         (try_unroll_loop_completely): Call update_stmt.
285         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
286         (rewrite_use_compare): Call update_stmt.
287         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
288         (rewrite_use) : Call update_stmt.
289         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
290         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call 
291         update_stmt.
292         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
293         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
294         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
295         use nodes.
296         (initialize_vuse_operand): New.  Initialize a vuse operand.
297         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
298         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
299         (finalize_ssa_defs): Use stmt parameter.
300         (correct_use_link): Ensure a use node is in the correct list, and has
301         the correct stmt pointer.
302         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
303         finalize_ssa_v_must_defs): Also initialize use nodes.
304         (finalize_ssa_stmt_operands): Pass extra stmt operands.
305         (build_ssa_operands): Seperate parsing from final operand construction.
306         (parse_ssa_operands): New.  Parse entry point for operand building.
307         (swap_tree_operands): New.  Swap 2 tree operands.
308         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
309         operands.
310         (get_expr_operands): Call swap_tree_operands when needed.
311         (copy_virtual_operands): Use initialize routines for virtual use ops.
312         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
313         (verify_abort): New.  Issue imm_use error.
314         (verify_imm_links): New Verify imm_use links for a var.
315         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
316         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
317         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
318         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
319         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
320         (NULL_USE_OPERAND_P) Define.
321         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
322         use node.
323         (struct vuse_operand_type): New struct.
324         (SET_USE): Call set_ssa_use_from_ptr.
325         (USE_STMT): Define.
326         (PHI_ARG_INDEX_FROM_USE): Define.
327         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi 
328         argument via SET_USE, not PHI_ARG_DEF_TREE.
329         * tree-ssa-pre.c (eliminate): Call update_stmt.
330         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
331         call free_df.
332         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
333         (nearest_common_dominator_of_uses): Use imm_use iterator.
334         (statement_sink_location): Use imm_use iterator and interface.
335         (execute_sink_code): Don't call compute_immediate_uses or free-df.
336         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
337         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
338         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
339         (verify_ssa): Ensure no stmt is marked modify after optimization pass
340         if new parameter is true.
341         (init_tree_ssa): Don't initialize operand cache here.
342         (delete_tree_ssa): Don't destroy operand cache here.
343         (propagate_into_addr): Pass in a use pointer, return true if anything
344         was changed.
345         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
346         (check_phi_redundancy): Use imm_use iterator.
347         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or 
348         free_df.
349         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
350         (release_ssa_name): Delink node and all elements in its imm_use list.
351         * tree-tailcall.c (adjust_return_value): Call update_stmt.
352         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
353         * tree-vectorizer.c (need_imm_uses_for): Delete.
354         (vectorize_loops): Dont call compute_immediate_uses or free_df.
355         * tree.h (struct ssa_imm_use_d): Define.
356         (SSA_NAME_IMM_USE_NODE): Define.
357         (struct tree_ssa_name): Add imm_use node.
358         (PHI_DF): Delete.
359         (PHI_ARG_IMM_USE_NODE): Define.
360         (struct phi_arg_d): Add imm_use node.
361         (struct tree_phi_node): Remove struct dataflow_d element.
362         (TDF_STMTADDR): Define.
363
364 2005-04-05  Dale Johannesen  <dalej@apple.com>
365
366         * doc/invoke.texi (Optimization Options):  Remove
367         duplicate -fcse-follow-jumps.  Add -fweb.
368         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
369         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
370
371 2005-04-05  Per Bothner  <per@bothner.com>
372
373         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
374         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
375         (warn_uninit): Get EXPR_LOCUS from context now instead.
376         This fixes a USE_MAPPED_LOCATION testsuite failure.
377
378         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
379
380 2005-04-05  Per Bothner  <per@bothner.com>
381
382         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
383         of the artification 'return 0' in main() to BUILTINS_LOCATION.
384         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
385         before warning. 
386
387 2004-04-05  Devang Patel  <dpatel@apple.com>
388
389         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
390         (lhsr<mode>3): ... new name.
391         (altivec_vsra<VI_char>): Rename to ..
392         (ashr<mode>3): ... new name.
393         * config/rs6000/rs6000.c (builtin_description): Rename shift
394         operations.
395         
396 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
397
398         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
399         gen_lowpart_for_combine.
400         * cse.c (gen_lowpart_if_possible): Move...
401         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
402         gen_lowpart_SUBREG.
403         (gen_lowpart_no_emit_general): Use it.
404
405 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
406
407         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
408         overriding.
409
410 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
411
412         * system.h: Fix typo.
413
414 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
415
416         * config/bfin/bfin-modes.def: New file.
417         * config/bfin/bfin-protos.h: New file.
418         * config/bfin/bfin.c: New file.
419         * config/bfin/bfin.h: New file.
420         * config/bfin/bfin.md: New file.
421         * config/bfin/bfin.opt: New file.
422         * config/bfin/crti.s: New file.
423         * config/bfin/crtn.s: New file.
424         * config/bfin/elf.h: New file.
425         * config/bfin/lib1funcs.asm: New file.
426         * config/bfin/predicates.md: New file.
427         * config/bfin/t-bfin: New file.
428         * config/bfin/t-bfin-elf: New file.
429         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
430         Document new attributes.
431         (interrupt, interrupt_handler, saveall): Update documentation for
432         these attributes.
433         * doc/install.texi (Specific): Add entry for the Blackfin.
434         * doc/invoke.texi (Blackfin Options): New section.
435         * doc/md.texi (Blackfin family): New section to document constraints.
436         * config.gcc: Add bfin*-* and bfin*-elf configurations.
437
438 2005-04-05  Olivier Hainque  <hainque@adacore.com>
439         
440         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
441         match what the system unwinder expects.
442         * config/mips/mips.c (mips_frame_set): If we're saving the return
443         address register and the dwarf return address column number differs
444         from the hard register number, adjust the note reg to refer to the
445         former.
446
447 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
448
449         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
450         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
451         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
452         (processor_type): New enum.
453         (mn10300_processor): New variable.
454         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
455         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
456         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
457         (PROCESSOR_DEFAULT): New macro.
458         * config/mn10300/mn10300.c (mn10300_processor): New variable.
459         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
460         (mn10300_handle_option, mn10300_override_options): New functions.
461         * config/mn10300/mn10300.opt: New file.
462
463 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
464             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
465
466         PR tree-optimization/19903
467         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
468         that don't fit in their type after conversion.
469
470 2005-04-05 Uros Bizjak <uros@kss-loka.si>
471
472         PR target/20421
473         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
474         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
475         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
476         flag here. Implement using define_insn_and_split.  
477         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
478         (frndintxf2_mask_pm_i387): New insn patterns.
479         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
480         Do not set ix86_optimize_mode_switching flag.
481         (ceilsf2, ceildf2, ceilxf2): Same.
482         (btruncsf2, btruncdf2, btruncxf2): Same.
483         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
484
485 2005-04-05  Ian Lance Taylor  <ian@airs.com>
486
487         PR debug/9963
488         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
489         i386_pe_record_external_function.
490         (i386_pe_record_external_function): Update declaration.
491         * config/i386/winnt.c (struct extern_list): Add decl field.
492         (i386_pe_record_external_function): Add decl parameter.
493         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
494         identifier.
495         * config/i386/i386-protos.h (i386_pe_record_external_function):
496         Update declaration.
497
498 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
499
500         * config/m68k/m68k-protos.h: Add a prototype for
501         valid_dbcc_comparison_p_2.
502         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
503         extend_operator, const_uint32_operand, const_sint32_operand,
504         general_src_operand, nonimmediate_src_operand,
505         memory_src_operand, post_inc_operand, pre_dec_operand,
506         pcrel_address): Move to predicates to predicates.md.
507         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
508         * config/m68k/m68k.md: Include predicates.md.
509         * config/m68k/predicates.md: New.
510
511 2005-04-04  Roger Sayle  <roger@eyesopen.com>
512
513         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
514
515         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
516
517 2005-04-04  Ian Lance Taylor  <ian@airs.com>
518
519         * c-typeck.c (struct c_switch): Rename switch_stmt field to
520         switch_expr.
521         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
522         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
523         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
524         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
525         * c-common.c (c_do_switch_warnings_1): New static function broken
526         out of c_do_switch_warnings.
527         (c_do_switch_warnings): Call c_do_switch_warnings_1.
528         (c_do_switch_expr_warnings): New function.
529         * c-common.h (c_do_switch_expr_warnings): Declare.
530
531 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
532             Daniel Jacobowitz  <dan@codesourcery.com>
533
534         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
535         trapping divide.
536         * rtlanal.c (may_trap_p): Same.
537
538 2005-04-04  Dale Johannesen  <dalej@apple.com>
539
540         * ChangeLog:  remove reference to ChangeLog.12.
541
542 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
543
544         CRIS epilogue as RTL.
545         * config/cris/cris.md: Change all 0 in unspec 0 to
546         CRIS_UNSPEC_PLT.
547         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
548         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
549         patterns.
550         ("return"): Change to define_expand.  Call cris_expand_return for
551         actual expansion.
552         ("*return_expanded"): New pattern.
553         ("epilogue"): New define_expand.
554         * config/cris/cris.h (PREDICATE_CODES): Add
555         cris_load_multiple_op.
556         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
557         type.
558         (enum cris_retinsn_type): New.
559         (struct machine_function): New member return_type.
560         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
561         (cris_target_asm_function_epilogue): Remove, moving RTLified
562         contents to...
563         (cris_expand_epilogue): New function.
564         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
565         (cris_gen_movem_load, cris_load_multiple_op)
566         (cris_return_address_on_stack_for_return, cris_expand_return): New
567         functions.
568         (cris_target_asm_function_prologue)
569         (cris_initial_frame_pointer_offset): Call
570         cris_reg_saved_in_regsave_area instead of complicated expression.
571         Call cris_return_address_on_stack instead of an expression.
572         (cris_print_operand) <case 'o', case 'O'>: New cases.
573         (cris_return_address_on_stack): Change return-type to bool.
574         (cris_simple_epilogue): Ditto.  Return false if registers are
575         saved.
576         * config/cris/cris-protos.h (cris_simple_epilogue)
577         (cris_return_address_on_stack): Adjust prototype return type.
578         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
579         (cris_return_address_on_stack_for_return): New prototypes.
580
581 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
582
583         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
584         gpr_or_int12_operand.
585
586         * config/frv/frv-protos.h: Add a prototype to
587         frv_legitimate_memory_operand and frv_const_unspec_p.
588         (frv_unspec): Move from frv.c.
589         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
590         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
591         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
592         gpr_or_fpr_operand, gpr_or_int12_operand,
593         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
594         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
595         int6_operand, int5_operand, uint5_operand, uint4_operand,
596         uint1_operand, int_2word_operand, uint16_operand,
597         upper_int16_operand, integer_register_operand,
598         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
599         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
600         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
601         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
602         move_destination_operand, movcc_fp_destination_operand,
603         frv_function_symbol_referenced_p, move_source_operand,
604         condexec_dest_operand, condexec_source_operand,
605         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
606         const_unspec_operand, gpr_or_memory_operand,
607         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
608         icc_operand, fcc_operand, cc_operand, icr_operand,
609         fcr_operand, cr_operand, call_operand, sibcall_operand,
610         symbolic_operand, relational_operator,
611         integer_relational_operator, float_relational_operator,
612         ccr_eqne_operator, minmax_operator,
613         condexec_si_binary_operator, condexec_si_media_operator,
614         condexec_si_divide_operator, condexec_si_unary_operator,
615         condexec_sf_conv_operator, condexec_sf_add_operator,
616         condexec_memory_operand, intop_compare_operator, acc_operand,
617         even_acc_operand, quad_acc_operand, accg_operand: Move to
618         predicates.md.
619         * config/frv/frv.h (PREDICATE_CODES): Remove.
620         * config/frv/frv.md: Include predicates.md.
621         * config/frv/predicates.md: New.
622
623 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
624
625         PR target/19537
626         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
627         * tree-ssa-loop-ivopts.c: Include langhooks.h.
628         (add_standard_iv_candidates_for_size): New function, extracting code
629         from add_standard_iv_candidates and parameterizing it by type size.
630         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
631
632 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
633
634         * system.h (GCOV_SIZE_TYPE): Unposion.
635         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
636         (GCOV_TYPE_SIZE): ...this new macro.
637         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
638         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
639         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
640         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
641         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
642         instead of unsigned_intSI_type_node.
643         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
644         (rtl_gen_one_value_profiler_no_edge_manipulation)
645         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
646         * value-prof.c: Include coverage.h.
647
648 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
649             Diego Novillo <dnovillo@redhat.com>
650             
651         Fix PR tree-optimization/20703
652         Fix PR tree-optimization/20725
653         
654         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
655         (create_expression_by_pieces): Ditto.
656         (valid_in_set): Ditto. Also handle tcc_declaration.
657         (find_or_generate_expression): Handle comparison class.
658         (insert_into_preds_of_block): Ditto.
659         (insert_aux): Ditto.
660         (create_value_expr_from): Handle comparison class, recursively
661         handle reference nodes.
662         (compute_avail): Handle comparison classes, rewrite a little cleaner.
663         (execute_pre): Fix spacing.
664         (do_fre): Renamed to execute_fre.
665
666 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
667
668         * doc/invoke.texi (SPARC options): Document that
669         -mlittle-endian is not supported on Linux either.
670
671 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
672
673         PR target/4198
674         PR target/12027
675         * config.gcc (Obsolete configurations): Remove
676         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
677         (sparclite-*-coff*): Delete.
678         (sparclite-*-elf*): Likewise.
679         (sparc86x-*-elf*): Likewise.
680         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
681         * config/sparc/lite.h: Delete.
682         * config/sparc/litecoff.h: Likewise.
683         * config/sparc/liteelf.h: Likewise.
684         * config/sparc/sp86x-elf.h: Likewise.
685         * config/sparc/t-sparclite: Likewise.
686         * config/sparc/t-sp86x: Likewise.
687
688 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
689
690         * config/s390/s390-protos.h: (s390_comparison,
691         s390_alc_comparison, s390_slb_comparison, const0_operand,
692         consttable_operand, larl_operand, s_operand,
693         shift_count_operand, bras_sym_operand, load_multiple_operation,
694         store_multiple_operation, s390_plus_operand): Remove prototypes.
695         (s390_legitimate_address_without_index_p): New prototype.
696         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
697         to s390.h.
698         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
699         const0_operand, consttable_operand, larl_operand, s_operand,
700         shift_count_operand, bras_sym_operand, load_multiple_operation,
701         store_multiple_operation, s390_plus_operand): Move to
702         predicates.md.
703         (check_mode): Remove.
704         (s390_branch_condition_mask): Remove 'static'. Move prototype to
705         s390-protos.h.
706         (s390_legitimate_address_without_index_p): New.
707         * config/s390/s390.h (PREDICATE_CODES): Remove.
708         * config/s390/s390.md: Include predicates.md.
709         * config/s390/predicates.md: New.
710
711 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
712
713         PR target/20446
714         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
715         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
716         (NEED_INDICATE_EXEC_STACK): Define to 1.
717         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
718         (NEED_INDICATE_EXEC_STACK): Define to 1.
719         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
720         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
721         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
722         (pic_helper_emitted_p): New global.
723         (emit_pic_helper): New function extracted from...
724         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
725         Do not call emit_pic_helper if delay_pic_helper is true.
726         (sparc_expand_prologue): Pass 'false' to load_pic_register.
727         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
728         (sparc_file_end): New function.
729
730 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
731
732         * config/mcore/mcore-protos.h: Remove the prototypes for
733         mcore_arith_reg_operand, mcore_general_movsrc_operand,
734         mcore_general_movdst_operand, mcore_reload_operand,
735         mcore_arith_J_operand, mcore_arith_K_operand,
736         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
737         mcore_arith_K_S_operand, mcore_arith_imm_operand,
738         mcore_arith_any_imm_operand, mcore_arith_O_operand,
739         mcore_literal_K_operand, mcore_addsub_operand,
740         mcore_compare_operand, mcore_load_multiple_operation,
741         mcore_store_multiple_operation, mcore_call_address_operand.
742         Add a prototype for const_ok_for_mcore.
743         * config/mcore/mcore.c (mcore_call_address_operand,
744         mcore_general_movsrc_operand, mcore_general_movdst_operand,
745         mcore_arith_reg_operand, mcore_reload_operand,
746         mcore_arith_J_operand, mcore_arith_K_operand,
747         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
748         mcore_arith_M_operand, mcore_arith_imm_operand,
749         mcore_arith_any_imm_operand, mcore_arith_O_operand,
750         mcore_literal_K_operand, mcore_addsub_operand,
751         mcore_compare_operand, mcore_load_multiple_operation,
752         mcore_store_multiple_operation): Move to predicates.md.
753         (const_ok_for_mcore): Export.
754         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
755         * config/mcore/mcore.md: Include predicates.md.
756         * config/mcore/predicates.md: New.
757
758         * config/mcore/predicates.md: Fix a comment typo.
759
760 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
761             Adrian Straetling  <straetling@de.ibm.com>
762
763         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
764         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
765         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
766         attribute.
767         ("imul"): Removed from "type" attribute.
768         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
769         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"): 
770         Changed type to imulsi.
771         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
772
773 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
774
775         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
776         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
777         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
778         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
779         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
780         (TARGET_SWITCHES, mcore_stack_increment_string)
781         (TARGET_OPTIONS): Delete.
782         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
783         than *_BIT constants.
784         (TARGET_8ALIGN): #undef old definition before redefining to 1.
785         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
786         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
787         (mcore_override_options): Delete mcore_stack_increment code.
788         Change use of M340_BIT to MASK_M340.
789         * config/mcore/mcore.opt: New file.
790
791 2005-04-04  Ian Lance Taylor  <ian@airs.com>
792
793         * config/arm/arm.c (replace_symbols_in_block): Remove static
794         function.
795
796 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
797
798         * config/fr30/fr30-protos.h: Remove the prototypes for
799         stack_add_operand, add_immediate_operand,
800         high_register_operand, low_register_operand, call_operand,
801         di_operand, and nonimmediate_di_operand.
802         * config/fr30/fr30.c (stack_add_operand,
803         add_immediate_operand, high_register_operand,
804         low_register_operand, call_operand, di_operand,
805         nonimmediate_di_operand): Move to predicates.md.
806         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
807         * config/fr30/fr30.md: Include predicates.md.
808         * config/fr30/predicates.md: New.
809
810         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
811         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
812         mcore_call_address_operand.
813
814         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
815         general_movsrc_operand.
816
817 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
818
819         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
820         after freeing.
821
822 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
823
824         PR target/14812
825         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
826         a negated value.
827
828 2005-04-04  Richard Henderson  <rth@redhat.com>
829             Jakub Jelinek  <jakub@redhat.com>
830
831         PR rtl-optimization/16104
832         * fold-const.c (fold_unary): Fix folding of vector conversions.
833
834 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
835
836         * config.gcc (xstormy16-*-elf): Set extra_options.
837         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
838         * config/stormy16/stormy16.opt: New file.
839
840 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
841
842         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
843         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
844         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
845         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
846         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
847         (TARGET_UNIX_ASM): Delete.
848         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
849         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
850         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
851         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
852         * config/pdp11/pdp11.opt: New file.
853
854 2005-04-03  Roger Sayle  <roger@eyesopen.com>
855             Alexandre Oliva  <aoliva@redhat.com>
856
857         PR c++/19199
858         * fold-const.c (non_lvalue): Split tests into...
859         (maybe_lvalue_p): New function.
860         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
861         C++ front-end prior to lowering into gimple form.
862
863 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
864
865         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
866         BUILT_IN_STRNCASECMP): New.
867         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
868         and strndup.
869
870 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
871
872         PR target/14812
873         * arm.md (addsi3_compare0_for_combiner): Delete.
874         (addsi3_compare0_scratch_for_combiner): Delete.
875         (cmpsi_neg_shiftsi): Delete.
876         (compare_negsi_si): New pattern.
877         (cmpsi_negshiftsi_si): New pattern.
878         (negated_cbranchsi4): Restrict to equality_operator.
879         
880         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
881         template.
882
883 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
884
885         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
886         Fix comment typos.
887
888         * doc/install.texi: Fix a typo.
889
890 2005-04-03  Steven Bosscher  <stevenb@suse.de>
891
892         PR middle-end/20648
893         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
894         a computed goto if the edge to the computed goto block has
895         incoming abnormal edges.  Clarify how the function works.
896
897 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
898
899         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
900         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
901         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
902         hash_scan_set, reg_set_between_after_reload_p,
903         reg_used_between_after_reload_p, get_avail_load_store_reg,
904         eliminate_partially_redundant_load): Likewise.
905         * postreload.c (reload_cse_simplify_set,
906         reload_combine_note_use): Likewise.
907         * predict.c (predict_insn, expected_value_to_br_prob,
908         propagate_freq, expensive_function_p): Likewise.
909         * print-rtl.c (print_rtx): Likewise.
910         * profile.c (instrument_edges, instrument_values,
911         compute_branch_probabilities, branch_prob, union_groups,
912         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
913         * protoize.c (in_system_include_dir, file_could_be_converted,
914         file_normally_convertible, gen_aux_info_file, seek_to_line,
915         do_cleaning): Likewise.
916         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
917         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
918         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
919
920 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
921
922         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
923         * modulo-sched.c (undo_replace_buff_elem): New structure.
924         (kernel_number_of_cycles, ps_unschedule_node,
925         undo_generate_reg_moves,free_undo_replace_buff,
926         undo_permute_partial_schedule,  loop_single_full_bb_p,
927         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
928         build_loops_structure, get_sched_window): New.
929         (generate_reg_moves): Return undo_replace_buff_elem and other
930         fixes.
931         (generate_prolog_epilog): Remove old loop versioning.
932         (sms_schedule): Use loop information and loop_version.
933         (sms_schedule_by_order): Split part of it to get_sched_window.
934         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
935         cfg_layout_finalize and free_dominance_info before/after SMS.
936
937 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
938
939         * cfghooks.c (lv_flush_pending_stmts,
940         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
941         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
942         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
943         lv_add_condition_to_bb,
944         lv_adjust_loop_header_phi, extract_cond_bb_edges,
945         flush_pending_stmts): New in cfg_hooks structure.
946         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
947         extract_cond_bb_edges, lv_adjust_loop_header_phi,
948         lv_add_condition_to_bb): New declarations.
949         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
950         bool.
951         (loop_version): Declare.
952         * cfgloopmanip.c (cfghooks.h): Include.
953         (duplicate_loop_to_header_edge): Change return type to bool.
954         (loop_version, lv_adjust_loop_entry_edge): Move here.
955         * cfgrtl.c (cfgloop.h): Include.
956         (rtl_verify_flow_info_1): Fix.
957         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
958         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
959         initialization.
960         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
961         tree_lv_add_condition_to_bb): New.
962         (tree_cfg_hooks): Add new hooks to initialization.
963         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
964         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
965
966 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
967
968         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
969         xstormy16_below100_or_register,
970         xstormy16_splittable_below100_or_register, and
971         nonimmediate_nonstack_operand.
972
973         * config/stormy16/stormy16-protos.h: Remove the prototypes for
974         xstormy16_ineqsi_operator, equality_operator,
975         inequality_operator, shift_operator,
976         xstormy16_below100_operand, xstormy16_below100_or_register,
977         xstormy16_splittable_below100_or_register,
978         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
979         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
980         equality_operator, inequality_operator,
981         xstormy16_below100_operand, xstormy16_below100_or_register,
982         xstormy16_splittable_below100_or_register,
983         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
984         nonimmediate_nonstack_operand, shift_operator): Move to
985         predicates.md.
986         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
987         * config/stormy16/stormy16.md: Include predicates.md.
988         * config/stormy16/predicates.md: New.
989
990 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
991
992         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
993         small_int, large_int, reg_or_0_operand, simple_memory_operand,
994         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
995         move_operand, power_of_2_operand): Move to predicates.md.
996         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
997         PREDICATE_CODE): Remove.
998         * config/iq2000/iq2000.md: Include predicates.md.
999         * config/iq2000/predicates.md: New.
1000
1001 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
1002
1003         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
1004         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
1005         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
1006         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
1007         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
1008         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
1009         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
1010         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1011         (TARGET_M68HC11): Delete.
1012         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
1013         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
1014         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
1015         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1016         (nb_soft_regs): Delete.
1017         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
1018         (m68hc11_override_options): Remove the code that caters for MASK_M6811
1019         and MASK_M6812 being set simultaneously.  Change the code that sets
1020         the default m68hc11_soft_reg_count to use integers instead of strings.
1021         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
1022         m68hc11_soft_reg_count (which now has an int type) as the number
1023         of soft registers.
1024         * config/m68hc11/m68hc11.opt: New file.
1025
1026 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1027
1028         * config/fr30/fr30.h (PREDICATE_CODES): Remove
1029         fp_displacement_operand, sp_displacement_operand.
1030
1031         * config/m68hc11/m68hc11-protos.h: Add a prototype for
1032         m68hcc_auto_inc_p.
1033         Remove the prototypes for tst_operand, cmp_operand,
1034         stack_register_operand, d_register_operand,
1035         hard_addr_reg_operand, splitable_operand,
1036         m68hc11_logical_operator, m68hc11_arith_operator,
1037         m68hc11_non_shift_operator, m68hc11_shift_operator,
1038         m68hc11_unary_operator, m68hc11_eq_compare_operator,
1039         non_push_operand, hard_reg_operand, and
1040         reg_or_some_mem_operand.
1041         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
1042         extern.
1043         (tst_operand, cmp_operand, non_push_operand,
1044         splitable_operand, reg_or_some_mem_operand,
1045         stack_register_operand, d_register_operand,
1046         hard_addr_reg_operand, hard_reg_operand,
1047         m68hc11_eq_compare_operator, m68hc11_logical_operator,
1048         m68hc11_arith_operator, m68hc11_non_shift_operator,
1049         m68hc11_shift_operator, m68hc11_unary_operator): Move to
1050         predicates.md.
1051         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
1052         * config/m68hc11/m68hc11.md: Include predicates.md.
1053         * config/m68hc11/predicates.md: New.
1054
1055 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1056
1057         PR debug/19345
1058         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
1059         change checked in along with 2005-03-03's patch for debug/20253.
1060         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
1061         (remap_decl): Insert type decl in map earlier.
1062
1063 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1064
1065         PR tree-optimization/20640
1066         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
1067         post-dominator if it has phi nodes.
1068         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
1069         before dead statements.
1070
1071 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1072
1073         PR middle-end/20491
1074         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
1075
1076 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1077
1078         PR rtl-optimization/20290
1079         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
1080         in every iteration if the entry point is the exit test.
1081
1082 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
1083
1084         * config/cris/cris.md (attribute "length"): Define.
1085
1086 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
1087
1088         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
1089         (word_offset_memref_operand): New.
1090         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
1091         (indexed_or_indirect_operand): Delete.
1092         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
1093         (indexed_or_indirect_operand): Delete.
1094
1095         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
1096
1097         PR 20650
1098         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
1099         a register.
1100
1101         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
1102         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
1103
1104 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1105
1106         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
1107
1108 2005-04-01  Ian Lance Taylor  <ian@airs.com>
1109
1110         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
1111         (rus, prus): Remove static variables.
1112         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
1113         (process_command): Permit report_times and use_pipes together.
1114
1115 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1116
1117         * c-decl.c (validate_proto_after_old_defn): Look at
1118         TYPE_MAIN_VARIANT of argument types.
1119
1120 2005-04-01  Paul Brook  <paul@codesourcery.com>
1121
1122         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
1123         (arm_output_function_epilogue): Allow call_via_SP.
1124         (thumb_call_via_reg, arm_file_end): Ditto.
1125         * config/arm/arm.h (struct machine_function): Include space for SP.
1126         (thumb_call_via_label): Update declaration.
1127
1128 2005-04-01  Ian Lance Taylor  <ian@airs.com>
1129
1130         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
1131         doing a peephole optimization, once again put any notes in the
1132         proper position.
1133
1134 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1135
1136         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
1137
1138 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
1139
1140         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
1141         (block_alloc, find_free_reg): Likewise.
1142         * loop-doloop.c (doloop_modify): Likewise.
1143         * loop-invariant.c (record_use): Likewise.
1144         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
1145         get_iv_value, canon_condition, eliminate_implied_condition,
1146         eliminate_implied_condition, simplify_using_initial_values,
1147         shorten_into_mode, canonicalize_iv_subregs,
1148         iv_number_of_iterations): Likewise.
1149         * loop-unroll.c (expand_var_during_unrolling): Likewise.
1150         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
1151         unswitch_loop): Likewise.
1152         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
1153         move_movables, replace_call_address, find_and_verify_loops,
1154         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
1155         record_giv, final_giv_value, general_induction_var,
1156         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
1157         loop_giv_dump): Likewise.
1158
1159         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
1160         GCOV_CHECK_WRITING): Remove.
1161         (gcov_position, gcov_rewrite): Use gcc_assert.
1162         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
1163         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
1164         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
1165         gcc_assert.
1166
1167 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1168
1169         * tree-inline.c: Fix a typo.
1170
1171 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
1172
1173         * configure.ac (enable-checking): Explicitly set all variables for
1174         collective switch values.  Alphabetize variables. Rename
1175         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
1176         synonym for 'no'.
1177         * doc/install.texi (enable-checking): Update documentation.
1178         * configure: Rebuilt.
1179
1180 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1181
1182         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
1183         possible.
1184
1185 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
1186
1187         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
1188         Also reject cases where this pattern will cause load delay stalls
1189         unless optimizing for size and it will produce a shorter sequence.
1190         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
1191         variants to avoid pre-adjusting the base when possible.
1192
1193 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
1194
1195         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
1196         the frame and argument pointers.
1197         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
1198         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
1199         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
1200         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
1201         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
1202         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
1203
1204 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
1205
1206         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
1207         with entry for selectany attribute.
1208         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
1209         Declare.
1210         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
1211         (i386_pe_asm_named_section): Handle sections generated by
1212         selectany attribute.
1213         * doc/extend.texi (selectany): Document attribute.
1214
1215 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
1216             Jan Hubicka  <jh@suse.cz>
1217
1218         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
1219         to fix addresses involving EBP and ESP.
1220         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
1221         for SUBREGed registers.
1222         (legitimate_address_p): Accept SUBREGed registers.
1223
1224 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
1225
1226         PR c++/19406
1227         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
1228         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
1229         for FIELD_DECLs.
1230
1231 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1232
1233         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
1234
1235 2005-04-01  James E Wilson  <wilson@specifixinc.com>
1236
1237         PR c++/20505
1238         * dwarf2out.c (rtl_for_decl_init): New function.
1239         (rtl_for_decl_location): Extracted from here.
1240         (tree_add_const_value_attribute): Call rtl_for_decl_init and
1241         add_const_value_attribute.  Delete initializer_constant_valid_p call.
1242
1243 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1244
1245         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
1246         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
1247         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
1248         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
1249         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
1250         config/i386/i386.md, config/rs6000/predicates.md,
1251         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
1252         config/s390/s390.c, config/stormy16/stormy16.c,
1253         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
1254         typos.
1255
1256 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1257
1258         PR c/17855
1259         * gimplify.c (gimplify_expr): Create a temporary for lvalue
1260         COND_EXPR and CALL_EXPR.
1261
1262 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
1263
1264         PR target/20632
1265         * genautomata.c (first_cycle_unit_presence): Check all alternative
1266         states for unit presence.
1267
1268         * doc/md.texi: Remove remark about impossibility to query unit
1269         presence in non nondeterministic automaton state.
1270         
1271         * config/ia64/ia64.c (get_template): Change order of unit querying.
1272
1273 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1274
1275         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
1276         obsolete comment.
1277
1278 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
1279
1280         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
1281         flag for edges outside any loops.
1282
1283 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
1284
1285         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
1286
1287 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1288
1289         * tree-ssa-alias.c: Follow spelling conventions.
1290         * doc/tree-ssa.texi: Fix a typo.
1291
1292 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
1293
1294         * postreload-gcse.c: Include target.h.
1295         (gcse_after_reload_main): Return early if we cannot modify jumps.
1296         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
1297
1298 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
1299
1300         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
1301         expensive operations.
1302
1303 2005-03-31  Ian Lance Taylor  <ian@airs.com>
1304
1305         * collect2.c (lderrout): New variable.
1306         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
1307         if it is set, to stderr.
1308         (handler): Unlink lderrout if it is set.
1309         (dump_file): Add "to" parameter.  Change all callers.
1310         (main): Initialize lderrout.
1311         (collect_execute): Add errname parameter.  Change all callers.
1312         Rename redir parameter to outname.  Never pass
1313         PEX_STDERR_TO_STDOUT to pex_run.
1314         * collect2.h (collect_execute, dump_file): Update declarations.
1315         * tlink.c (tlink_execute): Add errname parameter.  Change all
1316         callers.
1317         (do_tlink): Check lderrout as well as ldout.
1318
1319 2005-03-31  Caroline Tice  <ctice@apple.com>
1320
1321         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
1322         (bb-reorder.o): Add errors.h to list of requirements.
1323         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
1324         profiledbootstrap flags.
1325         * bb-reorder.c (errors.h): Add new include.
1326         (struct bbro_basic_block_data_def): Add new field, in_trace.
1327         (add_unlikely_executed_notes):  Remove function.
1328         (mark_bb_for_unlikely_executed_section): Remove function.
1329         (insert_section_boundary_note): New function.
1330         (verify_hot_cold_block_grouping): New function.
1331         (push_to_next_round_p): Remove variables and tests that push all
1332         cold blocks to last round.
1333         (find_traces): Remove code that added extra round of trace finding
1334         when doing partitioning.
1335         (find_traces_1_round) :  Remove variable last_round;  add code to 
1336         update new struct field, in_trace; correct trace_length where it was 
1337         incorrect before (after call to copy_bb); change code that pushed all 
1338         cold blocks to last round. Instead verify that all blocks going into 
1339         a trace belong in the same partition.
1340         (connect_traces): Modify to connect the traces in two passes, if the
1341         function contains both hot and cold blocks.  The first pass connects 
1342         all the traces for blocks in the partition that the first block in 
1343         the function belongs to; the second pass connnects all the traces 
1344         containing blocks that belong in the other partition.
1345         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
1346         code that automatically put the first block in a function into the
1347         hot partition if the function had any hot blocks.
1348         (fix_crossing_unconditional_branches): Check number of succ edges 
1349         before attempting to get one.
1350         (fix_edges_for_rarely_executed_code):  Update comment describing
1351         function.
1352         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
1353         remove call to add_unlikely_executed_notes; add call to 
1354         verify_hot_cold_block_grouping.
1355         (duplicate_computed_gotos): Don't change computed goto if it's a 
1356         crossing edge.
1357         (partition_hot_cold_basic_blocks):  Update function comment.
1358         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from 
1359         condition.
1360         (try_forward_edges): Likewise.
1361         (merge_blocks_move_predecessor_nojumps): Likewise.
1362         (merge_blocks_move_successor_nojumps): Likewise.
1363         (merge_blocks_move): Likewise.
1364         (try_crossjump_bb): Likewise.
1365         * cfglayout.c (update_unlikely_executed_notes): Remove function.
1366         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
1367         notes to cold bb's; remove call to update_unlikely_executed_notes.
1368         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1369         NOTE_INSN_SWITCH_TEXT_SECTIONS.
1370         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
1371         function declaration.
1372         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
1373         from consideration.
1374         (rtl_can_merge_blocks): Remove redundancy from condition.
1375         (try_redirect_by_replacing_jump): Likewise.
1376         (force_nonfallthru_and_redirect): Remove code for adding
1377         UNLIKELY_EXECUTED_CODE notes to cold bb's.
1378         (commit_one_edge_insertion): Likewise.
1379         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
1380         * dbxout.c (FORCE_TEXT): Replace function_section with 
1381         current_function_section.
1382         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
1383         function, switch_text_section.
1384         (struct xcoff_debug): Likewise.
1385         (dbxout_function_end): Add code to put out label diffs for both
1386         hot and cold sections.
1387         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
1388         for new debug_hooks funciton, switch_text_section..
1389         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
1390         switch_text_section.
1391         * dwarf2out.c (struct dw_fde_struct):  Add five new fields: 
1392         dw_fde_hot_section_label, dw_fde_hot_section_end_label, 
1393         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and 
1394         dw_fde_switched_sections.
1395         (output_call_frame_info):  Add test to see if function switches text
1396         sections in the middle; if so, use appropriate extra hot and cold 
1397         section labels to compute size deltas for the hot and cold sections.
1398         (dwarf2out_begin_prologue): Add code to initialize new fields in 
1399         dw_fde_struct.
1400         (dwarf2out_switch_text_section): New function (invoked through 
1401         debug_hook); updates new fields in dw_fde_struct appropriately and
1402         increments separate_line_info_table_in_use.
1403         (dwarf2_debug_hooks): Initialize switch_text_section function to be
1404         dwarf2out_switch_text_section.
1405         (struct var_loc_node): Add new field, section_label.
1406         (output_aranges): Add code to check whether in hot or cold section and
1407         use the appropriate label in calculating deltas.
1408         (output_ranges): Likewise.
1409         (output_line_info): Add code to check which section we're in and
1410         use appropriate hot/cold label.
1411         (add_location_or_constant_value_attribute): Likewise.
1412         (gen_subprogam_die): Modify arange attributes to use correct labels.
1413         (dwarf2out_begin_block): Change call to function_section into call to
1414         current_function_section.
1415         (dwarf2out_end_block): Likewise.
1416         (dwarf2out_source_line): Likewise.
1417         (dwarf2out_var_location): Add code to check whether in hot or cold 
1418         section and use the appropriate label.
1419         * except.c (output_function_exception_table): Change call to 
1420         function_section into call to current_function_section.
1421         * final.c (profile_function): Likewise.
1422         (scan_ahead_for_unlikely_executed_note): Remove function.
1423         (final_scan_insn):  Remove calls to 
1424         scan_ahead_for_unlikely_executed_note, and related code for switching 
1425         to cold section, except for the single time 
1426         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to 
1427         debug_hooks->switch_text_sections; replace appropriate calls to 
1428         function_section with calls to current_function_section.
1429         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add 
1430         test_bb to condition.
1431         (find_if_case_2): Likewise.
1432         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1433         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
1434         * opts.c (decode_options): Change warning about hot/cold partitioning
1435         with exceptionss to inform (so as not to cause bootstrap failures);
1436         remove warning about partitioning with DWARF debug info.
1437         * output.h (current_function_section): Add new function decl.
1438         (insert_section_boundary_note): Likewise.
1439         (enum in_section): Move this declaration here from varasm.c.
1440         (unlikely_section_label): Likewise.
1441         (unlikely_text_section_name): Likewise.
1442         (last_text_section_name): New global variable.
1443         (last_text_section): Likewise.
1444         (hot_section_label): Likewise.
1445         (hot_section_end_label): Likewise.
1446         (cold_section_end_label): Likewise.
1447         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
1448         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
1449         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
1450         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note 
1451         insn from consideration.
1452         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function, 
1453         switch_text_section.
1454         * varasm.c (basic-block.h): Add new include.
1455         (unlikely_section_label_printed): Remove global variable.
1456         (unlikely_section_label): Make global variable not be static any more.
1457         (unlikely_text_section_name): Likewise.
1458         (hot_section_end_label): New global variable (not static)
1459         (first_function_block_is_cold): Likewise.
1460         (hot_section_label): Likewise.
1461         (cold_section_end_label): Likewise..
1462         (last_text_section): New global variable, not static.
1463         (last_text_section_name): New global variable, not static.
1464         (initialize_cold_section_name): New function.
1465         (enum in_section): Move declaration to output.h.
1466         (text_section): Update last_text_section.
1467         (unlikely_text_section): Replace code to determine cold section name 
1468         with call to initialize_cold_section_name; Add code to update 
1469         last_text_section; remove code for printing out label.
1470         (named_section_real): Add code to update last_text_section and 
1471         last_text_section_name as appropriate.
1472         (function_section): Change test for 'unlikely' to depend on
1473         first_function_block_is_cold (moved old test to 
1474         current_function_section).
1475         (current_function_section): New function.
1476         (assemble_start_function): Move code that frees 
1477         unlikely_text_section_name; initialize hot_section_end_label; 
1478         print hot and cold section labels at the start of the function; 
1479         set first_function_block_is_cold, if appropriate; initialize l
1480         ast_text_section; add call to insert_section_boundary_note.
1481         (assemble_end_function):  Add code to write out hot and cold section
1482         end labels.
1483         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
1484         switch_text_section.
1485         * config/darwin.c (machopic_select_section): Replace incorrect 
1486         function in base_funs; update reloc for cold sections if necessary.
1487         * config/darwin.h (SECTION_FUNCTION):  Add code to update 
1488         last_text_section if appropriate.
1489         (text_unlikely_section): Remove.
1490         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
1491         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
1492         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
1493         partitioning for this architecture.
1494
1495 2005-03-31  Olivier Hainque  <hainque@adacore.com>
1496
1497         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
1498         defined and non-zero.
1499
1500 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1501
1502         PR c++/18644
1503         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
1504         semantics. 
1505
1506 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
1507
1508         PR target/20611
1509         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
1510         label operand.  Remove (use (unspec..)).  Don't emit a label on
1511         the offset word.
1512         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
1513         generate inline label for load_toc_v4_PIC_1b.
1514         (rs6000_emit_load_toc_table): Likewise.
1515
1516 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1517
1518         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
1519         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
1520
1521 2005-03-29  Devang Patel  <dpatel@apple.com>
1522
1523         * tree-sra.c (decide_block_copy): Disable scalarization of
1524         sub-elements.
1525         
1526 2005-03-30  Stuart Hastings  <stuart@apple.com>
1527             Dale Johannesen  <dalej@apple.com>
1528
1529         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
1530         * print-tree.c (print_node):  Add case STATEMENT_LIST.
1531
1532 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
1533
1534         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
1535         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
1536         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
1537         is given with "powerpc64*" or "all", or when --with-cpu chooses
1538         a 64-bit cpu.
1539
1540 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
1541
1542         PR debug/20268
1543         * dwarf2out.c (add_high_low_attributes): New function, extracted from
1544         gen_lexical_block_die.
1545         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
1546
1547 2005-03-31  Jan Hubicka  <jh@suse.cz>
1548
1549         2004-11-02  Jan Hubicka  <jh@suse.cz>
1550
1551         * cgraph.c (cgraph_varpool_node_name): New function.
1552         (dump_cgraph_varpool_node): New function.
1553         (dump_varpool): New function.
1554         * cgraphunit.c (cgraph_optimize): Dump varpool.
1555
1556         2004-10-16  Jan Hubicka  <jh@suse.cz>
1557
1558         * cgraph.c (decide_is_variable_needed): New function.
1559         (cgraph_varpool_finalize_decl): Use it.
1560         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
1561         unit-at-a-time.
1562         * final.c (output_addr_const): Do not call mark_referenced.
1563         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
1564         always go via cgraph.
1565         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
1566         (check_global_declarations): Ifdef out code clearing DECL_RTL.
1567         * tree-optimize.c (execute_inline): Mark functions called.
1568         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
1569
1570         2004-10-11  Jan Hubicka  <jh@suse.cz>
1571
1572         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
1573         (cgraph_varpool_last_needed_node): New static variable.
1574         (enqueue_needed_varpool_node): Break out from ...; add items to the
1575         end of queue; update first pointers.
1576         (cgraph_varpool_mark_needed_node): ... here.
1577         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
1578         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
1579         * cgraph.h (cgraph_varpool_node): Add analyzed field.
1580         (cgraph_varpool_first_unanalyzed_node): Declare.
1581         * cgraphunit.c: Include output.h.
1582         (cgraph_varpool_analyze_pending_decls): New function.
1583         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
1584         for errors, analyze pending decls.
1585         (cgraph_finalize_compilation_unit): Only analyze decls.
1586         (cgraph_optimize): Assemble the decls after expanding.
1587
1588 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
1589
1590         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
1591         subvars get marked properly in tags for grouping.
1592         (add_pointed_to_var): Mark only actual pointed to
1593         variables/subvars in addresses needed.
1594         (create_overlap_variables_for): Clear call clobbered on original
1595         variable.
1596         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
1597         addresable vars with subvars into list.
1598         * tree-ssa.c (verify_ssa_name): Verify original is not used where
1599         subvar should be.
1600
1601 2005-03-30  Richard Henderson  <rth@redhat.com>
1602
1603         * cgraph.h (struct cgraph_node): Add alias.
1604         * varasm.c (assemble_alias): Set it.
1605         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
1606         avoid calling cgraph_expand_function.
1607
1608 2005-03-30  Tom Tromey  <tromey@redhat.com>
1609
1610         * tree.def (FILE_TYPE): Removed.
1611         * typeclass.h (enum type_class): Removed file_type_class.
1612         * dwarf2out.c (is_base_type): Updated.
1613         (gen_type_die): Likewise.
1614         * dbxout.c (dbxout_type): Updated.
1615         * builtins.c (type_to_class): Updated.
1616         * tree.c (type_contains_placeholder_1): Updated.
1617         * config/sparc/sparc.c (sparc_type_code): Updated.
1618         * config/ia64/ia64.c (hfa_element_mode): Updated.
1619         * expr.c (count_type_elements): Updated.
1620         * stor-layout.c (layout_type): Updated.
1621         * tree-inline.c (remap_type): Updated.
1622         * tree-pretty-print.c (dump_generic_node): Updated.
1623
1624 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
1625
1626         * builtins.c (expand_builtin_powi): Fix mode of
1627         2nd argument to match int.
1628         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
1629         2nd argument type to int.
1630         * libgcc2.c: Change prototype of __powi* functions to use
1631         int.
1632
1633 2005-03-30  Dale Johannesen  <dalej@apple.com>
1634
1635         PR middle-end/19225
1636         * calls.c (expand_call):  Flush pending deferrals before
1637         throwing call.
1638
1639 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
1640
1641         PR c/772
1642         PR c/17913
1643         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
1644         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
1645         c_label_context, label_context_stack): New.
1646         * c-decl.c (define_label): Check for jumps into statement
1647         expressions.  Add label to list of defined labels.
1648         (start_function): Push context on label_context_stack.
1649         (finish_function): Pop context from label_context_stack.
1650         * c-typeck.c (label_context_stack): New.
1651         (c_finish_goto_label): Check for jumps into statement
1652         expressions.  Add label to list of jumped to labels.
1653         (struct c_switch): Add blocked_stmt_expr.
1654         (c_start_case): Initialize it.
1655         (do_case): Check it.
1656         (c_finish_case): Verify !blocked_stmt_expr.
1657         (c_begin_stmt_expr):  Push context on label_context_stack.
1658         Increment blocked_stmt_expr.  Mark labels jumped to from outside
1659         as undefinable.
1660         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
1661         defined in the statement expression and no longer jumpable to.
1662         Mark labels jumped to from just outside the statement expression
1663         as again definable.  Pop context from label_context_stack.
1664         * doc/extend.texi (Statement Exprs): Update.
1665
1666 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
1667
1668         PR c/20368
1669         * c-decl.c (start_function): Check for old_decl being
1670         error_mark_node.
1671
1672 2005-03-30  Ian Lance Taylor  <ian@airs.com>
1673
1674         * final.c (final): Remove prescan parameter.  Change all callers.
1675         (final_scan_insn): Remove prescan parameter.  Change all callers.
1676
1677 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
1678
1679         * tree-vectorizer.c: Fix comment typos.
1680
1681 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
1682
1683         * tree-scalar-evolution.c (instantiate_parameters_1): Return
1684         as soon as a chrec_dont_know is detected.
1685
1686 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
1687
1688         Merge from csl-arm-branch.
1689         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
1690
1691         * tlink.c (recompile_files): Do not assume that "rename" can
1692         overwrite an existing file.
1693
1694 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
1695
1696         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
1697         * gcc/configure: Regenerate.
1698
1699 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
1700
1701         * doc/install.texi: Update binutils requirement for powerpc*-linux.
1702
1703         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
1704
1705         * calls.c (struct arg_data): Update "partial" comment.
1706         (load_register_parameters): Update "nregs" comment.
1707
1708 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
1709
1710         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
1711         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
1712         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
1713         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
1714         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
1715         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
1716         than target_flags & 0.
1717         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
1718         (iq2000_arch, iq2000_parse_cpu): Delete.
1719         (TARGET_HANDLE_OPTION): Override default.
1720         (iq2000_handle_option): New function.
1721         (override_options): Remove -march= and -mcpu= handling.
1722         * config/iq2000/iq2000.opt: New file.
1723
1724 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
1725
1726         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
1727         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
1728         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
1729         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
1730         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
1731         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
1732         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
1733         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
1734         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
1735         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
1736         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
1737         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
1738         (c4x_rpts_cycles_string, c4x_cpu_version_string)
1739         (TARGET_OPTIONS): Delete.
1740         (c4x_rpts_cycles, c4x_cpu_version): Declare.
1741         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
1742         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
1743         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
1744         (c4x_cpu_version_string): Delete.
1745         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1746         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
1747         equivalent -mcpu= option.
1748         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
1749         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
1750         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
1751         or clearing the appropriate MASK_* bit.
1752         (c4x_file_start): Use c4x_cpu_version.
1753         * config/c4x/c4x.opt: New file.
1754
1755 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
1756
1757         * doc/options.texi: Document the new MaskExists flag.
1758         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
1759         if the option has the MaskExists flag.
1760
1761 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
1762
1763         * opt-functions.awk (flag_set_p, test_flag): New functions.
1764         (switch_flags): Use them.
1765         * opth-gen.awk: Use flag_set_p to check for flags.
1766         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
1767
1768 2005-03-30  Ian Lance Taylor  <ian@airs.com>
1769
1770         * config.host (i[34567]86-*-mingw32*): Don't set
1771         host_can_use_collect2 to no.
1772
1773 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
1774
1775         PR target/20203
1776         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
1777         Remove convert_memory_address call duplicating that in memory_address.
1778
1779 2005-03-29  Richard Henderson  <rth@redhat.com>
1780
1781         PR c/20519
1782         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
1783         (build_compound_literal): Likewise.  Propagate decl type into the
1784         initializer.
1785         (finish_decl): Likewise.  Use new return value from complete_array_type
1786         for zero sized arrays.
1787         (complete_array_type): Move ...
1788         * c-common.c (complete_array_type): ... here.  Change first argument
1789         to pointer-to-type-node.  Consistently use sizetype for the index
1790         except for zero sized arrays.  Detect zero sized arrays for pedantic
1791         mode diagnostics.  Create a new type node instead of modifying the
1792         old node in place.
1793         * c-tree.h (complete_array_type): Move decl ...
1794         * c-common.h (complete_array_type): ... here.
1795
1796 2005-03-29  Richard Henderson  <rth@redhat.com>
1797
1798         PR tree-opt/19108
1799         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
1800
1801 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
1802
1803         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
1804         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
1805         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
1806         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
1807
1808 2005-03-29  Eric Christopher  <echristo@redhat.com>
1809
1810         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
1811         truthvalue conversion removal.
1812
1813 2005-03-29  Ian Lance Taylor  <ian@airs.com>
1814
1815         PR bootstrap/14316
1816         * collect2.c: Never include <vfork.h>.
1817         (VFORK_STRING, vfork): Don't define.
1818         (pid): Remove global variable.
1819         (handler): Call raise instead of kill (getpid(), ...).
1820         (collect_wait): Add pex parameter.  Change all callers.  Use
1821         pex_get_status rather than pwait.
1822         (do_wait): Add pex parameter.  Change all callers.
1823         (collect_execute): Return struct pex_obj * rather than void.  Use
1824         pex routines rather than pexecute.
1825         (fork_execute): Get pex_obj from collect_execute, and pass it to
1826         do_wait.
1827         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
1828         Only declare quit_handler if SIGQUIT is defined.
1829         (scan_libraries): Likewise.
1830         * collect2.h (collect_execute): Update declaration.
1831         (collect_wait): Update declaration.
1832         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
1833         pass it to collect_wait.
1834
1835 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
1836
1837         PR c/20672
1838         * c-parser.c (c_parser_compound_statement_nostart): Give error
1839         message for EOF instead of just setting parser->error.
1840
1841 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
1842
1843         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
1844         (slpeel_update_phi_nodes_for_guard1): New function.
1845         (slpeel_update_phi_nodes_for_guard2): New function.
1846         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
1847         of slpeel_update_phi_nodes_for_guard.
1848         (vectorize_loops): Remove call to loop_closed_rewrite.
1849         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
1850         assertion.
1851
1852 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
1853
1854         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
1855         (TARGET_LITTLE_ENDIAN): New macro.
1856         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
1857         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
1858         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
1859         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
1860         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
1861         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
1862         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
1863         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
1864         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
1865         (TARGET_OPTIONS): Delete.
1866         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
1867         (CACHE_FLUSH_TRAP): Turn into an integer.
1868         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
1869         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
1870         -mflush-trap is in use.
1871         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
1872         (m32r_cache_flush_trap_string): Delete.
1873         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
1874         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
1875         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
1876         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1877         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
1878         -mmodel= and -msdata= handling from...
1879         (m32r_init): ...here.
1880         * config/m32r/m32r.opt: New file.
1881
1882 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
1883
1884         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
1885         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
1886         * tree-vect-analyze.c (vect_object_analysis): additional parm
1887         pass back a "struct ptr_info_def *" with the points-to info.
1888         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
1889         statement using info returned from vect_object_analysis.
1890         * tree-vect-transform.c (update_vuses_to_preheader): New function.
1891         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
1892         for virtual uses and defs when creating a replacement vector
1893         reference.  Call duplicate_ssa_name_ptr_info to define points-to
1894         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
1895         (vectorizable_store): copy_virtual_operands and update
1896         definition statements.
1897         (vectorizable_load): copy_virtual_operands.  Remove call to
1898         mark_call_clobbered_vars_to_rename for call to "const" builtin.
1899         * tree-vectorizer.c (vectorize_loops): Remove calls to
1900         rewrite_into_ssa and bitmap_clear (vars_to_rename).
1901         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
1902         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
1903         define macro STMT_VINFO_PTR_INFO for use in accessing.
1904         * tree.h add export of duplicate_ssa_name_ptr_info.
1905         * rs6000.c (altivec_init_builtins): Declare builtin function
1906         __builtin_altivec_mask_for_load to be "const".
1907
1908 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
1909
1910         PR middle-end/20622
1911         * cgraph.h (struct cgraph_varpool_node): Add alias field.
1912         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
1913         assemble_variable on aliases.
1914         * varasm.c (assemble_alias): Set node->alias.
1915         * toplev.c (wrapup_global_declarations): Don't call
1916         rest_of_decl_compilation on aliases again.
1917
1918 2005-03-29  Paul Brook  <paul@codesourcery.com>
1919
1920         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
1921         * config/arm/arm.c (arm_dbx_register_number): New function.
1922         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
1923
1924 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
1925
1926         PR middle-end/20263
1927         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
1928         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
1929
1930 2005-03-29  Dale Johannesen <dalej@apple.com>
1931
1932         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
1933         $(TREE_H) and $(COVERAGE_H).
1934         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
1935         * opts.c (common_handle_option): Enable tree-based value transforms.
1936         * toplev.c (process_options): Ditto.
1937         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
1938         refers to references to this type.
1939         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
1940         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
1941         for may_be_more, may_be_less.
1942         (rtl_gen_pow2_profiler): Adjust.
1943         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
1944         (rtl_gen_one_value_profiler): Adjust.
1945         (rtl_gen_const_delta_profiler): Adjust.
1946         * tree-profile.c (tree_gen_interval_profiler): Implement.
1947         (tree_gen_pow2_profiler): Ditto.
1948         (tree_gen_one_value_profiler): Ditto.
1949         (tree_profiling): New.
1950         (pass_tree_profile): Reference it.
1951         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
1952         tree.h, gcov-io.h.
1953         (insn_divmod_values_to_profile): Rename to
1954         rtl_divmod_values_to_profile. Adjust.
1955         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
1956         (insn_prefetch_values_to_profile): Adjust.
1957         (rtl_value_profile_transformations): Adjust.
1958         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
1959         (gen_mod_pow2): Rename to rtl_mod_pow2.
1960         (gen_mod_subtract): Rename to rtl_mod_subtract.
1961         (divmod_fixed_value_transform): Rename to
1962         rtl_divmod_fixed_value_transform.
1963         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
1964         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
1965         (rtl_find_values_to_profile): Adjust.
1966         (tree_value_profile_transformations): Implement.
1967         (tree_divmod_values_to_profile): New.
1968         (tree_values_to_profile): New.
1969         (tree_divmod_fixed_value): New.
1970         (tree_mod_pow2): New.
1971         (tree_mod_subtract): New.
1972         (tree_divmod_fixed_value_transform): New.
1973         (tree_mod_pow2_value_transform): New.
1974         (tree_mod_subtract_transform): New.
1975         (tree_find_values_to_profile): Implement.
1976         * profile.c (instrument_values):  Free histograms.
1977         (compute_value_histograms): Adjust. Implement tree version.
1978
1979 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
1980
1981         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
1982         * config/i386/i386.c (output_fix_trunc): Add new round_mode
1983         variable.  Output "fldcw" depending on round_mode.
1984         * config/i386/i386.md (UNSPEC_FIST): New.
1985         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
1986         New isns patterns to implement lrint and llrint built-ins as x87
1987         intrinsic function.
1988         (fistdi2, fist<mode>2 splitters): New splitters.
1989         (lrint<mode>2): New expanders.
1990
1991 2005-03-28  Ian Lance Taylor  <ian@airs.com>
1992
1993         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
1994         0 when calling final_scan_insn.
1995
1996 2005-03-28  Jan Hubicka  <jh@suse.cz>
1997
1998         PR middle-end/20635
1999         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
2000         as needed.
2001
2002         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
2003         types where possible.
2004
2005 2005-03-26  Per Bothner  <per@bothner.com>
2006
2007         Make -f[no-]show-column also control non-cpp diagnostics.
2008         * c.opt (fshow-column): Move option from here ...
2009         * common.opt (fshow-column): ... to here.
2010         * diagnostic.c (diagnostic_build_prefix): Only print column number
2011         if flag_show_column.
2012
2013 2005-03-27  Steven Bosscher  <stevenb@suse.de>
2014
2015         * vax-protos.h (vax_output_int_move, vax_output_int_add,
2016         vax_output_conditional_branch): New prototypes.
2017         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
2018         extracted from vax.md mov and add patterns.
2019         (vax_output_conditional_branch): New function to output conditional
2020         branch instructions.
2021         * vax.md: Use mode macros for arithmetic and mov patterns.
2022         Use code macros for the jump patterns.
2023
2024 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
2025
2026         * Makefile.in (libbackend.o): Depend on version files;
2027         add custom generation command.
2028
2029 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
2030
2031         PR target/20636
2032         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
2033         sure that we have a REG before getting its REGNO.
2034
2035 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2036
2037         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
2038         * builtins.def (BUILT_IN_STRNDUP): New.
2039
2040 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
2041
2042         PR tree-optimization/20470
2043         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
2044         ABS(x-y).
2045
2046 2005-03-25  Mike Stump  <mrs@apple.com>
2047
2048         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
2049         sized objects.
2050
2051 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
2052
2053         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
2054         Use our own structure definitions.
2055
2056         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
2057         (fix_truncdfsi2): Allow registers or memory as destination.
2058         When TARGET_PPC_GFXOPT, generate simplified pattern.
2059         (fix_truncdfsi2_internal): Use define_insn_and_split.
2060         (fix_truncdfsi2_internal_gfxopt): New.
2061         (fctiwz): Don't confuse register allocation by giving it no choices.
2062         (stfiwx): New.
2063         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
2064         (EXTRA_MEMORY_CONSTRAINT): Likewise.
2065         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
2066         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
2067
2068 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2069
2070         * dominance.c (free_dominance_info): Speed up by freeing et
2071         data structures without maintaining other nodes.
2072         * et-forest.c (et_free_tree_force): New.
2073         * et-forest.h: Add a prototype for et_free_tree_force.
2074
2075         * tree.c (get_set_constructor_bits,
2076         get_set_constructor_bytes): Remove.
2077         * tree.h: Remove the corresponding prototypes.
2078
2079 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
2080
2081         PR target/15491
2082         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
2083         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
2084         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
2085         PRE_DEC, NEG and NOT.
2086
2087 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2088
2089         * fold-const.c: Convert uses of fold (build (...)) to
2090         fold_buildN.
2091
2092 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
2093
2094         PR rtl-optimization/20249
2095         * cse.c (insert_regs): Do not record equivalence of registers in
2096         different modes.
2097
2098 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2099
2100         * emit-rtl.c (reverse_comparison): Remove.
2101         * rtl.h: Remove the corresponding prototype.
2102
2103 2005-03-24  James E Wilson  <wilson@specifixinc.com>
2104
2105         * doc/install.texi (--enable-altivec): Delete docs.
2106
2107 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
2108
2109         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
2110         SFmode and DFmode before reload when
2111         flag_unsafe_math_optimizations not enabled.
2112
2113 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
2114
2115         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
2116
2117         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
2118         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
2119
2120 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2121
2122         * configure.ac (enable-checking): Add 'runtime' option.
2123         * doc/install.texi (enable-checking): Document 'runtime' checking.
2124         * tsystem.h (gcc_assert, gcc_unreachable): Define.
2125         * config.in: Regenerated.
2126         * configure: Regenerated.
2127
2128 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
2129
2130         * optabs.h (enum optab_index): Remove OTI_llrint.
2131         (llrint_optab): Remove macro.
2132         * optabs.c (init_optabs): Remove llrint_optab initialization.
2133         * genopinit.c (optabs): Remove llrint_optab implementation.
2134         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
2135         using lrint_optab.
2136
2137 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
2138
2139         PR rtl-optimization/20532
2140         * simplify-rtx.c (simplify_binary_operation_1): Protect from
2141         overflow when adding coefficients for PLUS or MINUS.
2142         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
2143         two as multiplier.
2144
2145 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2146
2147         * langhooks.h (truthvalue_conversion): Remove.
2148         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
2149         LANG_HOOKS_TRUTHVALUE_CONVERSION.
2150         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
2151         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
2152         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2153
2154 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2155
2156         * params.def: Fix a typo.
2157         * config/mips/mips.c: Follow the spelling convensions.
2158         * doc/invoke.texi: Fix typos.
2159
2160 2005-03-18  Dale Johannese  <dalej@apple.com>
2161
2162         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
2163
2164 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
2165
2166         Fix PR tree-optimization/20601
2167
2168         * tree-ssa-pre.c (insert_aux): Add missing condition to
2169         constification.
2170
2171 2005-03-23  Ian Lance Taylor  <ian@airs.com>
2172
2173         * final.c (final_scan_insn): Don't remove no-op instructions.
2174         * reload1.c (reload): Remove simple no-op instructions even when
2175         not optimizing.
2176
2177 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
2178
2179         PR tree-optimization/20501
2180         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
2181         reporting that peeling for alignment is applied moved to...
2182         * (vect_analyze_data_refs_alignment): Here.
2183
2184 2005-03-23  Ian Lance Taylor  <ian@airs.com>
2185
2186         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
2187
2188 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2189
2190         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
2191         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
2192
2193 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
2194
2195         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
2196         imply that this is called once, independent of asms in code.
2197         Adjust to now being pased output and input lists.  Mention helper
2198         function decl_overlaps_hard_reg_set_p.
2199         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
2200         hook_tree_tree_identity and to take three trees, returning third.
2201         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
2202         prototype.
2203         * stmt.c: include hard-reg-set.h before tree.h.
2204         (decl_overlaps_hard_reg_set_p): New function, broken out from...
2205         (decl_conflicts_with_clobbers_p): Call
2206         decl_overlaps_hard_reg_set_p.
2207         (expand_asm_operands): Pass output and input lists in call to
2208         targetm.md_asm_clobbers.
2209         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
2210         hook_tree_tree_tree_tree_3rd_identity.
2211         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
2212         parameters.
2213         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
2214         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
2215         parameters, first two unused.
2216         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
2217         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
2218         in constraint letters and MOF is not mentioned as a asm-declared
2219         register in neither of the input and output lists.
2220
2221 2005-03-23  DJ Delorie  <dj@redhat.com>
2222
2223         * optabs.c (expand_binop): Make sure the first subword's result
2224         gets stored.
2225
2226 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2227
2228         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
2229         Call c_common_truthvalue_conversion rather than
2230         lang_hooks.truthvalue_conversion.
2231         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
2232         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
2233         c-typeck.c.
2234         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
2235         c_common_truthvalue_conversion.
2236         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
2237         c_parser_conditional_expression, c_parser_binary_expression): Call
2238         c_objc_common_truthvalue_conversion.
2239         * c-typeck.c (build_unary_op): Call
2240         c_objc_common_truthvalue_conversion.
2241         (build_conditional_expr): Do not call
2242         lang_hooks.truthvalue_conversion.
2243         (build_binary_op): Call c_common_truthvalue_conversion.
2244         (c_objc_common_truthvalue_conversion): Moved from
2245         c-objc-common.c.  Call default_function_array_conversion instead
2246         of default_conversion.
2247
2248 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2249
2250         * c-common.h (default_conversion): Remove.
2251         (perform_integral_promotions): Add.
2252         * c-tree.h (default_conversion): Add.
2253         * c-typeck.c (perform_integral_promotions): New, split out from
2254         default_conversion.
2255         * c-common.c (check_case_value): Use perform_integral_promotions,
2256         not default_conversion.
2257         (c_add_case_label): Don't continue processing case label after
2258         found to be pointer.
2259
2260 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
2261
2262         * gcc.c (do_spec_1): Do not add a -L path for a directory in
2263         the prefix list if we have already added a multilib directory
2264         based on that path.
2265         (main): Do not add MD_EXEC_PREFIX to the list of directories to
2266         search with -L.
2267
2268 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
2269
2270         * reload1.c (indirect_symref_ok, reload_obstack): Make them
2271         static.
2272         * reload.h: Remove the prototype for indirect_symref_ok.
2273
2274         * reload1.c (indirect_symref_ok): Make it global.
2275         * reload.h: Add a prototype for indirect_symref_ok.
2276
2277 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2278
2279         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
2280         ashlhi3 expander.
2281
2282 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2283
2284         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
2285
2286 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
2287
2288         * c-opts.c (c_common_parse_file): Only start/end main source file
2289         if debug hooks says the writer wants it.
2290         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
2291         member.
2292         (xcoff_debug_hooks): Ditto.
2293         * debug.c (do_nothing_hooks): Ditto.
2294         * debug.h (gcc_debug_hooks): Ditto.
2295         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
2296         * sdbout.c (sdb_debug_hooks): Ditto.
2297         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
2298
2299 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
2300
2301         * doc/extend.texi: Deprecate C++ min/max operators.
2302
2303 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
2304
2305         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
2306         artificial original candidates.
2307
2308 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
2309             Jan Hubicka  <jh@suse.cz>
2310             Steven Bosscher <stevenb@suse.de>
2311
2312         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
2313         call cost based on argument sizes.
2314         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
2315         inlining.
2316         * params.def: (max-inline-inssn-single): Set to 450.
2317         (max-inline-insns-auto): Set to 90.
2318         (max-inline-insns-recursive): Set to 450
2319         (max-inline-insns-recursive-auto): Set to 450.
2320         (large-function-insns): Set to 2700.
2321         (inline-call-cost): New parameter.
2322         * tree-inline.c (estimate_move_cost): New function.
2323         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
2324         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
2325         based on arguments.
2326         * tree-inline.h (estimate_move_cost): Declare.
2327         * invoke.texi: (max-inline-inssn-single): Change default to 450.
2328         (max-inline-insns-auto): Change default to 90.
2329         (max-inline-insns-recursive): Change default to 450
2330         (max-inline-insns-recursive-auto): Change default to 450.
2331         (large-function-insns): Change default to 2700.
2332         (inline-call-cost): Document new parameter.
2333
2334 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
2335
2336         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
2337         (TARGET_DEFAULT): Delete.
2338         * config/i860/i860.opt: New file.
2339
2340 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
2341
2342         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
2343         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
2344         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
2345         (frv_sched_lookahead): Delete.
2346         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
2347         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
2348         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
2349         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
2350         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
2351         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
2352         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
2353         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
2354         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
2355         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
2356         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
2357         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
2358         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
2359         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
2360         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
2361         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
2362         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
2363         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
2364         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
2365         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
2366         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
2367         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
2368         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
2369         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
2370         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
2371         (frv_sched_lookahead): Delete.
2372         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
2373         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2374         (frv_handle_option): New function.  Move -mcpu= handling from...
2375         (frv_override_options): ...here.  Remove handling of other
2376         TARGET_OPTIONS.
2377         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
2378         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
2379         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
2380         and TARGET_NO_MULTI_CE.
2381         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
2382         !TARGET_VLIW_BRANCH.
2383         * config/frv/frv.opt: New file.
2384
2385 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
2386
2387         * fold-const.c (fold_ternary): Take decomposed arguments of
2388         CALL_EXPR.
2389         (fold): Update a call to fold_ternary.
2390
2391         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
2392         * tree.h: Add corresponding prototypes.
2393
2394 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
2395
2396         PR target/20561
2397         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
2398         between jump table and its label.
2399         * final.c (shorten_branches): Handle notes in between ADDR_VEC
2400         resp. ADDR_DIFF_VEC and the label preceeding it.
2401         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
2402         is emitted in the right section.
2403
2404 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
2405
2406         * fold-const.c (fold_unary, fold_binary): Update comments
2407         about arguments.
2408
2409 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
2410
2411         PR rtl-optimization/20527
2412         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
2413         REG_INC note, test that the register also isn't mentioned in PRED
2414         or SUCC.
2415
2416 2005-03-22  Ben Elliston  <bje@au.ibm.com>
2417
2418         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
2419         and definition.
2420
2421 2005-03-21  Mike Stump  <mrs@apple.com>
2422
2423         * varasm.c (default_assemble_visibility): Remove extra ().
2424
2425 2005-03-21  Roger Sayle  <roger@eyesopen.com>
2426
2427         PR middle-end/20557
2428         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
2429         to determine whether a block can be duplicated, rather than test
2430         whether the block contains noncopyable insns ourselves.
2431
2432 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2433
2434         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
2435         predicates.
2436
2437 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
2438
2439         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
2440
2441 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
2442
2443         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
2444         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
2445         * config/fr30/fr30.opt: New file.
2446
2447 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
2448
2449         Fix PR tree-optimization/20542
2450
2451         * tree-flow-inline.h (overlap_subvar): Move to here.
2452         * tree-ssa-operands.c: From here.
2453         * tree-flow.h (overlap_subvar): Declare.
2454         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
2455         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
2456         for variables with subvars.
2457
2458 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
2459
2460         PR middle-end/20177
2461         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
2462         * modulo-sched.c (const_iteration_count): Return on NULL
2463         pre-header.
2464         (print_node_sched_params): Return on NULL dump_file.
2465         (generate_reg_moves): Handle reg-anti dependencies and disregard
2466         closing branch when generating register moves.
2467         (sms_schedule): Mark the SMSed block dirty.
2468         * passes.c (rest_of_handle_sms): Call update_life_info for all
2469         basic-blocks.
2470         * testsuite/gcc.dg/20050321-1.c: New test.
2471
2472 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
2473
2474         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
2475         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2476         movqi_internal): Likewise.
2477
2478 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
2479
2480         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
2481         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
2482         xtensa_b4const): Delete prototypes.
2483         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
2484         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
2485         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
2486         xtensa_extra_constraint): New prototypes.
2487         (add_operand, arith_operand, nonimmed_operand, mem_operand,
2488         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
2489         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
2490         move_operand, const_float_1_operand, fpmem_offset_operand,
2491         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
2492         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
2493         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
2494         argument type to HOST_WIDE_INT.
2495         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
2496         xtensa_mask_immediate): Likewise.
2497         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
2498         Likewise.  Also make these functions static.
2499         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
2500         (xtensa_const_ok_for_letter_p): New.
2501         (add_operand, arith_operand, nonimmed_operand, mem_operand,
2502         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
2503         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
2504         move_operand, const_float_1_operand, fpmem_offset_operand,
2505         branch_operator, ubranch_operator, boolean_operator): Move to
2506         predicates.md.
2507         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
2508         (xtensa_mem_offset): Change return type to bool.
2509         (xtensa_extra_constraint): New.
2510         (gen_int_relational): Update type of const_range_p function pointer.
2511         Use xtensa_b4const_or_zero.
2512         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
2513         xtensa_const_ok_for_letter_p.  Update comments.
2514         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
2515         (PREDICATE_CODES): Delete.
2516         * config/xtensa/xtensa.md: Include predicates.md.
2517         * config/xtensa/predicates.md: New file.
2518
2519 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2520
2521         * config/v850/v850-protos.h: Remove the prototypes for
2522         reg_or_int9_operand, reg_or_const_operand,
2523         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
2524         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
2525         movsi_source_operand, power_of_two_operand,
2526         not_power_of_two_operand, special_symbolref_operand,
2527         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
2528         register_is_ok_for_epilogue.
2529         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
2530         reg_or_int9_operand, reg_or_const_operand,
2531         call_address_operand, special_symbolref_operand,
2532         movsi_source_operand, power_of_two_operand,
2533         not_power_of_two_operand, register_is_ok_for_epilogue,
2534         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
2535         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
2536         predicates.md.
2537         * config/v850/v850.h (PREDICATE_CODES): Remove.
2538         * config/v850/v850.md: Include predicates.md.
2539         * config/v850/predicates.md: New.
2540
2541 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
2542
2543         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
2544         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
2545         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
2546         (itoolsdir, itoolsdatadir): Move definition above new first use.
2547         (install-itoolsdirs): New rule.
2548         (install-mkheaders): Depend on install-itoolsdirs, not
2549         install-include-dir.
2550
2551 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2552
2553         * tree-into-ssa.c: Remove obsolete comments.
2554
2555 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
2556
2557         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
2558         unrolling if -fpeel-loops is specified, too.
2559         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2560         Remove superfluous check for flag_unroll_loops.
2561
2562 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
2563
2564         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
2565         (lrint_optab, llrint_optab): Define corresponding macros.
2566         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
2567         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
2568         pattern and llrint_optab using llrintdi2 patterns.
2569         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
2570         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
2571         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
2572         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
2573         flag_unsafe_math_optimizations is set.
2574
2575 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
2576
2577         * combine.c (combine_simplify_rtx, simplify_if_then_else,
2578         simplify_logical, if_then_else_cond, known_cond,
2579         simplify_comparison): Adjust calls to reverse_comparison.
2580         Don't use combine_reversed_comparison_code).
2581         (combine_reversed_comparison_code): Remove.
2582         (reversed_comparison): Using reversed_comparison_code, move it...
2583         * jump.c (reversed_comparison): ... here.
2584         * rtl.h (reversed_comparison): Add prototype.
2585
2586 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2587
2588         * builtins.c (fold_builtin): Take decomposed arguments of
2589         CALL_EXPR.
2590         * fold-const.c (fold_ternary): Update a call to fold_builtin.
2591         * gimplify.c (gimplify_call_expr): Likewise.
2592         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
2593         * tree.h: Update the prototype of fold_builtin.
2594
2595 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
2596
2597         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
2598         * rtlhooks.c (gen_lowpart_no_emit_general): New.
2599         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
2600         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
2601         * simplify-rtx.c (simplify_binary_operation_1): Use it.
2602
2603 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2604
2605         * builtins.c (fold_builtin_1): Take decomposed arguments of
2606         CALL_EXPR.
2607         (fold_builtin): Update a call to fold_builtin_1.
2608
2609 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
2610
2611         PR other/20564
2612         * gcov.c (output_lines): Only output function block summary when
2613         outputting branch information.
2614         * doc/gcov.texi: Document format of preamble and additional block
2615         information lines.
2616
2617 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
2618
2619         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
2620         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
2621         the defaults false if BITS_PER_UNIT != 8.
2622         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
2623         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
2624         than BITS_PER_UNIT != 8.
2625         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
2626         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
2627         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
2628         #undefs.
2629         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
2630         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
2631
2632 2005-03-20  Roger Sayle  <roger@eyesopen.com>
2633
2634         PR middle-end/20539
2635         * fold-const.c (fold_binary): Fix type mismatch between
2636         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
2637         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
2638         for non-truth-valued expressions.
2639
2640         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
2641         and FUNCTION_DECL in the main switch.
2642         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2643         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
2644         we also need to convert their operands to match.
2645         <TRUTH_NOT_EXPR>: Likewise.
2646
2647 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
2648
2649         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
2650         diagnostic without checking whether an lvalue.
2651         * c-common.h (lvalue_p): Remove.
2652         (enum lvalue_use): Update comment.
2653         (lvalue_or_else): Replace by lvalue_error.
2654         * c-typeck.c (lvalue_p): Make static.
2655         (lvalue_or_else): New.  Call lvalue_error.
2656
2657 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
2658
2659         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
2660         (function_arg_advance): Use rs6000_parm_start.
2661         (function_arg, rs6000_arg_partial_bytes): Likewise.
2662
2663 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
2664
2665         * c-common.c (check_case_value): Adjust comment about stripping
2666         NOPs.
2667         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
2668         * c-typeck.c (default_conversion, convert_arguments,
2669         build_modify_expr, convert_for_assignment, store_init_value,
2670         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
2671         manually.  Remove inaccurate comments.
2672
2673 2005-03-20  Roger Sayle  <roger@eyesopen.com>
2674             Joseph S. Myers  <joseph@codesourcery.com>
2675
2676         * varasm.c (do_assemble_alias): Restore comment describing function.
2677         Annotate the target parameter as potentially unused.
2678
2679 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2680
2681         PR target/18551
2682         * config/avr/avr.c (avr_output_function_prologue): Do not use
2683         current_function_name() in a label, use a local label instead.
2684
2685 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
2686
2687         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
2688         flag_finite_math_only, not flag_unsafe_math_optimizations.
2689
2690 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2691
2692         * builtins.c (fold_builtin_1): Update a call to
2693         targetm.fold_builtin.
2694         * hooks.c (hook_tree_tree_bool_null): Rename to
2695         hook_tree_tree_tree_bool_null.  Take one more argument of type
2696         tree.
2697         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
2698         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
2699         hook_tree_tree_tree_bool_null.
2700         * target.h (gcc_target): Update the prototype of fold_builtin.
2701         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
2702         arguments of CALL_EXPR.
2703         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
2704         new prototype.
2705
2706 2005-03-20  Jan Hubicka  <jh@suse.cz>
2707
2708         * cgraph.h (cgraph_node): Add prev_clone pointer.
2709         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
2710         (cgraph_clone_node): Produce doubly linked chain.
2711
2712 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
2713
2714         * c-common.c (handle_aligned_attribute, check_function_sentinel,
2715         get_nonnull_operand, handle_sentinel_attribute,
2716         check_function_arguments_recurse): Do not strip NOPS from
2717         INTEGER_CSTs.
2718         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
2719         Likewise.
2720         * c-format.c (get_constant): Likewise.
2721         * c-parser.c (c_parser_postfix_expression): Likewise.
2722         * c-typeck.c (set_init_index): Likewise.
2723         (convert_arguments): Don't check for NOP_EXPR containing integer
2724         constant.
2725
2726 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2727
2728         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
2729         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
2730         Take decomposed arguments of CALL_EXPR.
2731         (fold_builtin_1): Update calls to the functions mentioned
2732         above.
2733
2734 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
2735
2736         * c-decl.c (check_bitfield_type_and_width): Require bit-field
2737         width to have integer type.
2738         (build_enumerator): Require enumerator value to have integer type.
2739
2740 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
2741
2742         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
2743         to __builtin_inff.
2744
2745 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
2746
2747         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
2748         std=iso9899:199x): Correct descriptions.
2749
2750 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
2751
2752         * config.gcc: Consistently use solaris2.1[0-9]* instead of
2753         solaris2.1[0-9].
2754
2755 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2756
2757         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
2758         of CALL_EXPR.
2759         (expand_builtin_memcpy, fold_builtin_1): Update calls to
2760         fold_builtin_memcpy.
2761
2762         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
2763         arguments of CALL_EXPR.
2764         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
2765         fold_builtin_found, fold_builtin_1): Update calls to
2766         fold_trunc_transparent_mathfn.
2767
2768 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2769
2770         PR middle-end/20493
2771         * fold-const.c (fold_widened_comparison): Don't optimize casts of
2772         function pointers on targets that require function pointer
2773         canonicalization.
2774         (fold_sign_changed_comparison): Likewise.
2775
2776 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
2777
2778         * combine.c (try_combine): When changing the mode of a hard reg, make
2779         sure that doing so is valid.
2780
2781 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
2782
2783         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
2784         (TARGET_HANDLE_OPTION): Override default.
2785         (avr_handle_option): New function.
2786         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
2787         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
2788         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
2789         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
2790         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
2791         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
2792         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
2793         (TARGET_OPTIONS): Delete.
2794         * config/avr/avr.opt: New file.
2795
2796 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2797
2798         * config/m32r/m32r-protos.h: Remove the prototypes for
2799         call_address_operand, symbolic_operand, seth_add3_operand,
2800         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
2801         reg_or_uint16_operand, reg_or_cmp_int16_operand,
2802         two_insn_const_operand, move_src_operand,
2803         move_double_src_operand, move_dest_operand,
2804         eqne_comparison_operator, signed_comparison_operator,
2805         large_insn_p, conditional_move_operand, carry_compare_operand,
2806         m32r_block_immediate_operand, extend_operand,
2807         reg_or_eq_int16_operand, int8_operand, and
2808         reg_or_zero_operand.
2809         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
2810         seth_add3_operand, int8_operand, cmp_int16_operand,
2811         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
2812         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
2813         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
2814         move_double_src_operand, move_dest_operand,
2815         eqne_comparison_operator, signed_comparison_operator,
2816         extend_operand, small_insn_p, large_insn_p,
2817         conditional_move_operand, carry_compare_operand,
2818         m32r_block_immediate_operand): Move to predicates.md.
2819         (MAX_MOVE_BYTES): Move to m32r.h.
2820         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
2821         * config/m32r/m32r.md: Include predicates.md.
2822         * config/m32r/predicates.md: New.
2823
2824 2005-03-18  James E Wilson  <wilson@specifixinc.com>
2825
2826         PR c++/19769
2827         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
2828         origin.
2829
2830 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2831
2832         * config/mn10300/mn10300-protos.h: Remove the prototypes for
2833         call_address_operand, const_8bit_operand.
2834         * config/mn10300/mn10300.c (call_address_operand,
2835         const_8bit_operand, const_1f_operand): Move to predicates.md.
2836         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
2837         * config/mn10300/mn10300.md: Include predicates.md.
2838         * config/mn10300/predicates.md: New.
2839
2840 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
2841
2842         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
2843         declarations in diagnostics and %E for identifiers, not %s.
2844
2845 2005-03-18  Jan Hubicka  <jh@suse.cz>
2846             Dale Johannesen  <dalej@apple.com>
2847
2848         * basic-block.h (scale_bbs_frequencies_int,
2849         scale_bbs_frequencies_gcov_type): Declare.
2850         * cfg.c (RDIV): New macro.
2851         (update_bb_frequency_for_threading): Fix.
2852         * basic-block.h (scale_bbs_frequencies_int,
2853         scale_bbs_frequencies_gcov_type): New.
2854         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
2855         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
2856         scale_bbs_frequencies_int.
2857         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
2858
2859 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2860
2861         * config/m32r/m32r-protos.h: Remove the prototypes for
2862         call_address_operand, symbolic_operand, seth_add3_operand,
2863         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
2864         reg_or_uint16_operand, reg_or_cmp_int16_operand,
2865         two_insn_const_operand, move_src_operand,
2866         move_double_src_operand, move_dest_operand,
2867         eqne_comparison_operator, signed_comparison_operator,
2868         large_insn_p, conditional_move_operand, carry_compare_operand,
2869         m32r_block_immediate_operand, extend_operand,
2870         reg_or_eq_int16_operand, int8_operand, and
2871         reg_or_zero_operand.
2872         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
2873         seth_add3_operand, int8_operand, cmp_int16_operand,
2874         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
2875         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
2876         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
2877         move_double_src_operand, move_dest_operand,
2878         eqne_comparison_operator, signed_comparison_operator,
2879         extend_operand, small_insn_p, large_insn_p,
2880         conditional_move_operand, carry_compare_operand,
2881         m32r_block_immediate_operand): Move to predicates.md.
2882         (MAX_MOVE_BYTES): Move to m32r.h.
2883         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
2884         * config/m32r/m32r.md: Include predicates.md.
2885         * config/m32r/predicates.md: New.
2886
2887         * config/pa/pa-protos.h: Add prototypes for magic_milli and
2888         shadd_constant_p.
2889         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
2890         symbolic_operand, symbolic_memory_operand,
2891         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
2892         indexed_memory_operand, move_dest_operand, move_src_operand,
2893         prefetch_cc_operand, prefetch_nocc_operand,
2894         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
2895         arith_operand, arith11_operand, pre_cint_operand,
2896         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
2897         ireg_operand, int5_operand, uint5_operand, int11_operand,
2898         uint32_operand, arith5_operand, and_operand, ior_operand,
2899         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
2900         pc_or_label_operand, div_operand, plus_xor_ior_operator,
2901         shadd_operand, movb_comparison_operator,
2902         cmpib_comparison_operator): Move to predicates.md.
2903         (magic_milli, shadd_constant_p): Make it extern.
2904         * config/pa/pa.h (PREDICATE_CODES): Remove.
2905         * config/pa/pa.md: Include predicates.md.
2906         * config/pa/predicates.md: New.
2907
2908         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
2909         predicate.
2910
2911 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2912
2913         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
2914         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
2915         config/alpha/freebsd.h, config/alpha/linux.h,
2916         config/alpha/netbsd.h, config/alpha/osf5.h,
2917         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
2918         config/h8300/h8300-protos.h, config/h8300/h8300.c,
2919         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
2920         doc/cppopts.texi: Update copyright.
2921
2922 2005-03-18  Jan Hubicka  <jh@suse.cz>
2923
2924         PR middle-end/20225
2925         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
2926         too late.
2927         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
2928         called too late.
2929
2930 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2931
2932         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
2933         VEC_safe_push.
2934
2935 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
2936
2937         * combine.c (gen_binary): Remove.
2938         (known_cond, simplify_shift_const, find_split_point,
2939         combine_simplify_rtx, simplify_if_then_else, simplify_set,
2940         simplify_logical, expand_field_assignment, extract_left_shift,
2941         force_to_mode, if_then_else_cond, apply_distributive_law,
2942         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
2943         simplify_comparison, reversed_comparison): Replace with
2944         simplify_gen_binary, simplify_gen_relational or
2945         distribute_and_simplify_rtx.
2946         (distribute_and_simplify_rtx): New function.
2947
2948 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
2949             Paolo Bonzini  <gcc.gnu.org>
2950
2951         * calls.c (setjmp_call_p, special_function_p): Update comments
2952         at the head of the functions.
2953
2954 2005-03-18  Jan Hubicka  <jh@suse.cz>
2955
2956         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
2957
2958         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
2959         function body should be released; do not proactively release function
2960         bodies in non-unit-at-a-time mode.
2961
2962 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
2963
2964         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
2965         mno-fp-ret-in-387 multilib variants.
2966
2967 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
2968
2969         * common.opt (m): Remove.
2970         * opts.c (handle_option): Pass 'm' options to set_target_switch if
2971         table lookup fails.
2972         (common_handle_option): Remove OPT_m case.
2973
2974 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2975
2976         * builtins.c (fold_builtin_bitop): Take decomposed arguments
2977         of CALL_EXPR.
2978         (fold_builtin_1): Update a call to fold_builtin_bitop.
2979
2980         * builtins.c (fold_builtin_signbit): Take decomposed arguments
2981         of CALL_EXPR.
2982         (fold_builtin_1): Update a call to fold_builtin_signbit.
2983
2984 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
2985
2986         PR tree-optimization/20474
2987         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
2988         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
2989
2990 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2991
2992         * config/h8300/h8300-protos.h: Remove prototypes for
2993         general_operand_src, general_operand_dst, single_one_operand,
2994         single_zero_operand, call_insn_operand,
2995         two_insn_adds_subs_operand, small_call_insn_operand,
2996         jump_address_operand, bit_operand, bit_memory_operand,
2997         stack_pointer_operand, const_int_gt_2_operand,
2998         const_int_ge_8_operand, const_int_qi_operand,
2999         const_int_hi_operand, incdec_operand, bit_operator,
3000         nshift_operator, eqne_operator, gtle_operator,
3001         gtuleu_operator, iorxor_operator.
3002         Add prototypes for h8sx_shift_type h8sx_classify_shift and
3003         h8300_ldm_stm_parallel.
3004         * config/h8300/h8300.c (h8sx_shift_type,): Move to
3005         h8300-protos.h.
3006         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
3007         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
3008         (h8300_ldm_stm_parallel): Make it extern.
3009         (h8300_ldm_parallel, h8300_stm_parallel,
3010         h8300_return_parallel, general_operand_src,
3011         general_operand_dst, h8300_dst_operand, h8300_src_operand,
3012         nibble_operand, reg_or_nibble_operand, single_one_operand,
3013         single_zero_operand, call_insn_operand,
3014         two_insn_adds_subs_operand, small_call_insn_operand,
3015         jump_address_operand, bit_operand, bit_memory_operand,
3016         stack_pointer_operand, const_int_gt_2_operand,
3017         const_int_ge_8_operand, const_int_qi_operand,
3018         const_int_hi_operand, incdec_operand, eqne_operator,
3019         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
3020         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
3021         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
3022         nshift_operator): Move to predicates.md.
3023         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
3024         * config/h8300/h8300.md: Include predicates.md.
3025         * config/h8300/predicates.md: New.
3026
3027 2005-03-17  Richard Henderson  <rth@redhat.com>
3028
3029         * config.gcc (ia64*-*-hpux*): Add extra_options.
3030         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
3031         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3032         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
3033         (ia64_tls_size_string, ia64_tune_string): Remove.
3034         (ia64_tune): Init to PROCESSOR_ITANIUM2.
3035         (TARGET_DEFAULT_TARGET_FLAGS): New.
3036         (TARGET_HANDLE_OPTION): New.
3037         (ia64_override_options): Move options parsing ...
3038         (ia64_handle_option): ... here.  New.
3039         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
3040         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
3041         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
3042         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
3043         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
3044         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
3045         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
3046         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
3047         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
3048         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
3049         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
3050         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
3051         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
3052         TARGET_EARLY_STOP_BITS): Remove.
3053         (TARGET_ILP32): Default false.
3054         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
3055         (enum ia64_inline_type): New.
3056         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3057         * config/ia64/ia64.md: Update for new definitions of
3058         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
3059         * config/ia64/ia64.opt: New file.
3060         * config/ia64/ilp32.opt: New file.
3061
3062 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3063
3064         PR target/18380
3065         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
3066
3067 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3068
3069         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
3070         instead of MASK_H8300S.
3071         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
3072         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
3073         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
3074         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
3075         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
3076         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
3077         TARGET_SWITCHES): Remove.
3078         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
3079         TARGET_H8300SX.
3080         * config/h8300/h8300.opt: New.
3081
3082         * config/alpha/alpha.opt, config/arc/arc.opt,
3083         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
3084         notices.
3085
3086 2005-03-17  Ian Lance Taylor  <ian@airs.com>
3087
3088         * gmon.c: Remove.
3089
3090 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
3091
3092         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
3093         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
3094         (TARGET_HANDLE_OPTION): Override default.
3095         (arc_handle_option): New function.
3096         (arc_init): Remove code to set arch_cpu_string.
3097         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
3098         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
3099         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
3100         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
3101         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
3102         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
3103         (arc_rodata_string, TARGET_OPTIONS): Delete.
3104         * config/arc/arc.opt: New file.
3105
3106 2005-03-17  Richard Henderson  <rth@redhat.com>
3107
3108         * doc/extend.texi (Weak Pragmas): New section.
3109         (attribute alias): Clarify that target must be in the same
3110         translation unit.
3111
3112 2005-03-17  Richard Henderson  <rth@redhat.com>
3113
3114         * config/alpha/alpha.opt: New file.
3115         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
3116         of alpha_cpu.
3117         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
3118         alpha_fprm_string, alpha_fptm_string): Make static.
3119         (alpha_tls_size_string): Remove.
3120         (alpha_handle_option): New.
3121         (override_options): Update for alpha_cpu/alpha_tune split.
3122         (alpha_file_start): Likewise.
3123         (TARGET_DEFAULT_TARGET_FLAGS): New.
3124         (TARGET_HANDLE_OPTION): New.
3125         * config/alpha/alpha.h (alpha_tune): Declare.
3126         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
3127         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
3128         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
3129         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
3130         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
3131         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
3132         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
3133         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
3134         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
3135         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
3136         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
3137         (TARGET_DEFAULT): Remove MASK_FP.
3138         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
3139         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
3140         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
3141         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
3142         alpha_tls_size_string): Remove.
3143         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
3144         (attribute tune): Rename from attribute cpu.
3145         * config/alpha/ev4.md: Update to match.
3146         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
3147         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
3148         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
3149         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
3150         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
3151         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
3152
3153 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
3154
3155         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
3156         and return without creating new state if before_nops_num is nonzero.
3157         * config/ia64/ia64.md (first_insn): New attribute.
3158         (alloc): Set it to yes.
3159
3160 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3161
3162         * tree-vectorizer.c (new_vec_stmt_info): Initialize
3163         STMT_VINFO_SUBVARS to NULL.
3164         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3165
3166 2005-03-16 Dale Johannesen  <dalej@apple.com>
3167
3168         * rtlanal.c (find_first_parameter_load):  Rewrite to
3169         return actual first param load or the call if none,
3170         instead of first in block, when not all loads exist.
3171
3172 2005-03-16  Roger Sayle  <roger@eyesopen.com>
3173
3174         * optabs.c (expand_copysign_absneg): Make static.
3175         * optabs.h (expand_copysign_absneg): Delete prototype.
3176         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
3177
3178 2005-03-16  Richard Henderson  <rth@redhat.com>
3179
3180         PR middle-end/15700
3181         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
3182         (alias_pairs): Rename from output_defs.
3183         (find_decl_and_mark_needed): Split out from assemble_alias.
3184         (do_assemble_alias): New.
3185         (assemble_output_def): Remove.
3186         (finish_aliases_1, finish_aliases_2): New.
3187         (process_pending_assemble_output_defs): Remove.
3188         (assemble_alias): Defer aliases for which we don't yet have a
3189         non-external decl for the target symbol.
3190         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
3191         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
3192         * toplev.c (compile_file): Use finish_aliases_2 instead of
3193         process_pending_assemble_output_defs.
3194         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
3195         (process_pending_assemble_output_defs): Remove.
3196
3197 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3198
3199         Fix PR tree-optimization/20489
3200
3201         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
3202         for empty structures.
3203
3204 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3205
3206         Fix PR tree-optimization/20490
3207
3208         * tree-ssa-pre.c (create_expression_by_pieces): Use
3209         force_gimple_operand on result of fold.
3210
3211 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
3212
3213         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
3214         of closing parenthesis.
3215
3216 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3217
3218         * builtins.c (expand_movstr): Update a call to
3219         fold_builtin_strcpy.
3220         (expand_builtin_strncpy): Update a call to
3221         fold_builtin_strncpy.
3222         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
3223         arguments of CALL_EXPR.
3224         (fold_builtin_1): Update calls to fold_builtin_strcpy and
3225         fold_builtin_strncpy.
3226         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
3227         * tree.h: Update the prototypes of fold_builtin_strcpy and
3228         fold_builtin_strncpy.
3229
3230 2005-03-16  Steven Bosscher  <stevenb@suse.de>
3231             Dorit Naishlos  <dorit@il.ibm.com>
3232
3233         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
3234         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
3235         error.
3236
3237 2005-03-16  Steven Bosscher  <stevenb@suse.de>
3238
3239         * tree-inline.c (walk_type_fields, walk_tree,
3240         walk_tree_without_duplicates): Move from here...
3241         * tree.c: ...to here.
3242
3243 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
3244
3245         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
3246         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
3247         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
3248         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
3249         (version): Define using $(BASEVER_c).
3250         (Makefile, config.status, build/gcov-iov.o): No longer depends on
3251         version.c.
3252         (version.o): Depend on version files; add custom generation command.
3253         (prefix.o): Define BASEVER on command line.
3254         (s-iov): Depend on version files; adjust command.
3255         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
3256         Add gcc-vers.texi.
3257         (gcc-vers.texi): New rule.
3258         (doc/%.info, doc/%.dvi): Add -I . to command line.
3259         (doc/gccinstall.dvi): Likewise.
3260         (PACKAGE): Delete.  All uses replaced with "gcc".
3261         * aclocal.m4: Do not include gcc-version.m4.
3262         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3263         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
3264         Set is_release based on contents of DEV-PHASE.
3265         Set gcc_version based on contents of BASE-VER.
3266         Define WIN32_REGISTRY_KEY only if the user overrode the default.
3267         * config.in, configure: Regenerate.
3268         * gccbug.in: Determine version of GCC in use at runtime.
3269         * gcov-iov.c: Get version number and development phase from
3270         command line, not by including version.c.
3271         * intl.c: Replace all uses of PACKAGE with "gcc".
3272         * libada-mk.in: Delete unused "gcc_version" variable.
3273         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
3274         * version.c: (VERSUFFIX): New hook for redistributors; adjust
3275         commentary to match.
3276         (version_string): Put together from pieces.
3277         * config/alpha/x-vms: Do not use $(gcc_version).
3278         * config/i386/t-nwld: Likewise.
3279         * doc/include/gcc-common.texi: Include gcc-vers.texi for
3280         version-GCC and DEVELOPMENT.
3281
3282 2005-03-15  Roger Sayle  <roger@eyesopen.com>
3283
3284         PR tree-optimization/17454
3285         * tree.c (tree_size): Add case for TREE_BINFO.
3286         * fold-const.c (fold_checksum_tree): Only clear the overloaded
3287         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
3288
3289 2005-03-15  Roger Sayle  <roger@eyesopen.com>
3290
3291         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
3292         op1 whilst expanding the signed widenening multiply variant.
3293
3294 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
3295
3296         * toplev.c (display_target_options): Avoid unused variable warning if
3297         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
3298         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
3299         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
3300         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
3301         (mips_isa_info): New variable.
3302         (mips_parse_cpu): Remove the first argument and leave the caller
3303         to report errors.
3304         (TARGET_HANDLE_OPTION): Override default.
3305         (mips_handle_option): New function.  Move option validation code from...
3306         (override_options): ...here.  Update calls to mips_parse_cpu.
3307         * config/mips/mips.h (mips_arch_string, mips_tune_string)
3308         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
3309         (SUBTARGET_TARGET_OPTIONS): Delete.
3310         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
3311         (mno-flush-func, mtune=): New options.
3312
3313 2005-03-15  Roger Sayle  <roger@eyesopen.com>
3314             Richard Henderson  <rth@redhat.com>
3315
3316         * real.c (c4x_single_format, c4x_extended_format): Provide values
3317         for signbit_ro for c4x's single and extended floating point formats.
3318         * optabs.c (expand_copysign): Use the floating point format's
3319         signbit_ro for expanding via expand_copysign_absneg, and it's
3320         signbit_rw field for expanding via expand_copysign_bit.
3321
3322 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
3323
3324         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
3325         known_alignment_for_access_p.
3326         (known_alignment_for_access_p): New.
3327         (do_peeling_for_alignment): Field made int instead of bool and renamed
3328         to peeling_for_alignment.
3329         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
3330         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
3331         functionality used to be in vect_analyze_operations.
3332         (vect_analyze_operations): Code to determine vectorization factor was
3333         moved to vect_determine_vectorization_factor.
3334         (vect_enhance_data_refs_alignment): Update to correct alignment when it
3335         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
3336         factor.
3337         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
3338         be part of vect_analyze_operations).
3339         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
3340         creating the guard condition, as the number of iterations may be
3341         constant.
3342         (slpeel_tree_peel_loop_to_edge): Use new name of
3343         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
3344         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
3345         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
3346         (vect_do_peeling_for_alignment): Use fold.
3347         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
3348
3349         (vect_update_inits_of_dr): Renamed to
3350         vect_update_init_of_dr.
3351         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
3352         (vectorizable_store): Fix assertion to use == instead of =.
3353
3354 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
3355
3356         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
3357         call_used_regs for wCG registers.
3358
3359 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
3360
3361         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
3362         for non-offsettable memory references to cope with outstanding reload
3363         replacements, take 2.
3364
3365 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
3366
3367         PR target/18668
3368         * config/i386/i386.h (x86_fisttp): New.
3369         (TARGET_FISTTP): New macro.
3370         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
3371         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
3372         instruction when fisttp flag is set.
3373         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
3374
3375         * config/i386/i386.md (type attribute): Add fisttp.
3376         (unit attribute): Set to i387 for fisttp type.
3377         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
3378         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
3379         TARGET_FISTTP.
3380         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
3381         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
3382         macros.
3383         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
3384         patterns for TARGET_FISTTP.  Enable patterns for
3385         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
3386         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
3387         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
3388         implement fisttp x87 insn.
3389         (fix_trunc*_i387_fisttp splitters): New patterns.
3390         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
3391         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
3392         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
3393         clobber.
3394         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
3395         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
3396         Implement using mode macros. Disable patterns for TARGET_FISTTP.
3397         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
3398         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
3399         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
3400         Disable patterns for TARGET_FISTTP.
3401         (fix_trunc*_i387 splitters): Implement usign mode macros.
3402         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
3403         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
3404         (fix_trunx*_sse peephole2s): Implement using mode macros.
3405
3406 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
3407
3408         PR rtl-optimization/20291
3409         * combine.c (try_combine): If splitting fails, re-try with
3410         original combined pattern, i.e. before clobber stripping.
3411
3412 2005-03-14  Eric Christopher  <echristo@redhat.com>
3413
3414         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
3415         STACK_GROWS_DOWNWARD.
3416
3417 2005-03-14  Roger Sayle  <roger@eyesopen.com>
3418
3419         * real.h (struct real_format): Split the signbit field into two
3420         two fields, signbit_ro and signbit_rw.
3421         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
3422         mips_double_format, ieee_extended_motorola_format,
3423         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
3424         ieee_extended_intel_128_format, ibm_extended_format,
3425         mips_extended_format, ieee_quad_format, mips_quad_format,
3426         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
3427         i370_double_format, c4x_single_format, c4x_extended_format,
3428         real_internal_format): Update initializers for new field.
3429         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
3430         real_format structure.
3431         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
3432         field of the real_format structure.
3433
3434 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
3435
3436         Fix PR tree-optimization/20458
3437
3438         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
3439         DECL_EXTERNAL on STRUCT_FIELD tags.
3440         (clear_call_clobbered): Ditto.
3441         * tree-ssa-operands.c (note_addressable): Make sure the original
3442         variable doesn't slip into the addressable list if we have
3443         subvars.
3444         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
3445         tags too.
3446
3447 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
3448
3449         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
3450         (-fwide-exec-charset): Likewise.
3451         (-finput-charset): Likewise.
3452         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
3453         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
3454         * c.opt (Wnormalized): New.
3455
3456 2005-03-14  Devang Patel  <dpatel@apple.com>
3457
3458         * doc/invoke.texi: Add reference to Visibility document.
3459
3460 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
3461
3462         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
3463         MASK_SPLIT_ADDRESSES.
3464         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
3465         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
3466         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
3467         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
3468         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
3469         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
3470         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
3471         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
3472         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
3473         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
3474         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
3475         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
3476         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
3477         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
3478         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
3479         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
3480         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
3481         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
3482         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
3483         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
3484         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
3485         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
3486         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
3487         (TARGET_EXPLICIT_RELOCS): Delete.
3488         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
3489         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
3490         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
3491         (override_options): Set MASK_LONG64 if -mint64 is given and no
3492         -mlongXX option is.  Complain about -mint64 -mlong32.
3493         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
3494         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
3495         * config/mips/mips.opt: New file.
3496
3497 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
3498
3499         * config.gcc (extra_options): New variable for listing option files.
3500         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
3501         * configure.ac (extra_opt_files): New AC_SUBST variable.
3502         (tm_file_list, tm_include_list): Include options.h first.
3503         * configure: Regenerate.
3504         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
3505         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
3506         (s-options-h): New rule.
3507         (options.h): Depend on it.
3508         (TEXI_GCCINT_FILES): Add options.texi.
3509         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
3510         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
3511         * target.h (gcc_target): Add default_target_flags and handle_option.
3512         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
3513         (TARGET_HANDLE_OPTION): New macros.
3514         (TARGET_INITIALIZER): Include them.
3515         * opt-functions.awk (opt_args, nth_arg): New functions.
3516         (switch_flags): Handle the "Target" flag.
3517         (var_args): Delete.
3518         (var_name): Use opt_args and nth_arg.
3519         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
3520         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
3521         macros for the "Mask" and "InverseMask" options.
3522         * opts.h (cl_var_cond): New enum.
3523         (cl_option): Replace the "has_set_value" and "set_value" fields with
3524         "var_cond" and "var_value".
3525         (CL_TARGET): New macro.
3526         (option_enabled, print_filtered_help): Declare.
3527         (decode_options): Move definition.
3528         * opts.c (handle_option): Search for the original option before
3529         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
3530         var_cond and var_value fields.  Use targetm.handle_option to handle
3531         target options.
3532         (decode_options): Set target_flags to targetm.default_target_flags.
3533         (print_filtered_help): Make global.  Handle CL_TARGET.
3534         (option_enabled): New function.
3535         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
3536         (display_target_options, set_target_switch, print_switch_values)
3537         (default_pch_valid_p): Guard uses of target_switches with
3538         #ifdef TARGET_SWITCHES.  Also...
3539         (display_target_options): Display the CL_TARGET entries in cl_options.
3540         (set_target_option): Don't complain about the "" option when
3541         TARGET_SWITCHES is undefined.
3542         (print_switch_values): Use option_enabled.
3543         (default_pch_valid_p): Check cl_options[] when looking for something
3544         that has changed the value of target_flags.
3545         * c.opt: Remove documentation from top of file.
3546         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
3547         * doc/sourecebuild.texi: Refer to the new options documentation
3548         instead of c.opt.  Document machine-specific .opt files.
3549         * doc/tm.texi (target_flags): Say that this variable is declared
3550         by options.h.
3551         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
3552         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
3553         an alternative.
3554         * doc/options.texi: New file.
3555
3556 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
3557
3558         PR middle-end/18628
3559         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
3560         register.
3561
3562 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
3563
3564         PR c++/20280
3565         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
3566         temporary variable of pointer type if an lvalues is required.
3567         (gimplify_modify_expr_rhs): Request an rvalue from it.
3568         (gimplify_expr): Pass fallback on.
3569
3570 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
3571
3572         * cfgbuild.c: Update comments.
3573
3574 2005-03-14  Roger Sayle  <roger@eyesopen.com>
3575
3576         PR rtl-optimization/17236
3577         * optabs.c (expand_doubleword_mult): New helper function split out
3578         from expand_binop.  Permute the order in which instructions are
3579         emitted to minimize the number of simultaneously live registers.
3580         (expand_binop): Call expand_doubleword_mult to synthesize a double
3581         word multiplication.
3582
3583 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
3584
3585         * basic-block.h: Update the prototypes of cached_make_edge and
3586         rtl_make_eh_edge.
3587         * cfg.c (cached_make_edge): Take edge_cache representing one
3588         row of the adjacency matrix of edges.
3589         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
3590         (make_edges): Initialize edge_cache to represent one row of
3591         the adjacency matrix of edges.
3592
3593 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
3594
3595         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
3596         New functions.
3597         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
3598         Remove unused removed_phis variable.
3599         (conditional_replacement): Use build1/build2.
3600         (abs_replacement): Use last_and_only_stmt and build1/build2.
3601
3602 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
3603
3604         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
3605         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
3606         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
3607         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
3608         * c-common.c (handle_novops_attribute): New function.
3609         (c_common_attribute_table): Add "no vops" entry.
3610         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
3611         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
3612         * tree-ssa-operands.c (get_call_expr_operands): Do not
3613         create virtual operands for calls with ECF_NOVOPS flag.
3614         * tree.h (DECL_IS_NOVOPS): New macro.
3615         (struct tree_decl): Add novops_flag.
3616         (ECF_NOVOPS): New constant.
3617
3618 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
3619
3620         PR target/17688
3621         * config/i386/i386.c (x86_use_himode_fiop): New.
3622         (x86_use_simode_fiop): Rename from x86_use_fiop.
3623         * config/i386/i386.h (x86_use_himode_fiop): Declare.
3624         (TARGET_USE_HIMODE_FIOP): New.
3625         (x86_use_simode_fiop): Rename from x86_use_fiop.
3626         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
3627
3628         * config/i386/i386.md (X87MODEI12): New mode macro define.
3629         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
3630         to implement x87 FP compare with HImode input operands.
3631         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
3632         Use X87MODEI12 mode macro to handle HImode input operands.
3633         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
3634         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
3635         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
3636         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
3637         macro to implement x87 operators with HImode input operands.
3638         (fop splitters): Use X87MODEI12 mode macro to handle HImode
3639         input operands.
3640
3641 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
3642
3643         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
3644         integer_zerop.
3645         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
3646         constants invariant.
3647
3648 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
3649
3650         * basic-block.h (BB_VISITED): Removed.
3651         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
3652
3653 2005-03-14  Falk Hueffner  <falk@debian.org>
3654
3655         PR bootstrap/20424
3656         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
3657
3658 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
3659
3660         * ggc-zone.c: Fix comment typos.
3661
3662         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
3663         stringpool.c, config/mips/mips-protos.h: Update copyright.
3664
3665 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
3666
3667         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
3668         throughout with its typedef, "rtx".
3669         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
3670         (rs6000_tls_symbol_ref_1): Remove inline keyword.
3671         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
3672         regs in comment to match code.
3673
3674 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
3675
3676         * except.c (check_handled): Make it static.
3677         * except.h: Remove the corresponding prototype.
3678
3679         * function.c (get_func_frame_size): Make it static.
3680         * function.h: Remove the corresponding type.
3681
3682         * regclass.c (reg_class_superclasses, reg_class_subclasses):
3683         Make them static.
3684         * hard-reg-set.h: Remove the corresponding declarations.
3685
3686         * tree-cfg.c (verify_stmts): Check that
3687         bb_for_stmt (stmt) == bb for every PHI node and statement.
3688
3689 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
3690
3691         * config.gcc: Remove excess indentation.
3692         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
3693
3694 2005-03-13  Roger Sayle  <roger@eyesopen.com>
3695
3696         PR middle-end/19331
3697         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
3698         * fold-const.c (fold_sign_changed_comparison): Likewise.
3699         (fold_binary): Optimize comparisons against widened operands if
3700         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
3701
3702 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3703
3704         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
3705         (sparc_override_options): Initialize it.
3706         (sparc_struct_value_rtx): Set it on the MEM to be returned.
3707
3708 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
3709
3710         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
3711         (reg_or_none500mem_operand): New predicate.
3712         (zero_reg_mem_operand): New predicate.
3713         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
3714         to reg_or_none500mem_operand.
3715         (extendsfdf2_fpr): Add MEM alternative.
3716         (extenddftf2_internal): Change operand2 predicate to
3717         zero_reg_mem_operand.
3718
3719 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
3720
3721         * ggc-zone.c: Rewritten.
3722
3723         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
3724         if there are none.
3725         * configure.ac: Define GGC_ZONE for --with-gc=zone.
3726         * config.in: Regenerated.
3727         * configure: Regenerated.
3728         * gengtype.c (write_types_process_field, write_func_for_structure):
3729         Pass new argument to gt_pch_note_object.
3730         * ggc-common.c (struct ptr_data): Add TYPE.
3731         (gt_pch_note_object): Take TYPE argument and save it.
3732         (call_count): Update call to ggc_pch_count_object.
3733         (call_alloc): Update call to ggc_pch_alloc_object.
3734         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
3735         file.
3736         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
3737         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
3738         (ggc_alloc_zone_stat): Delete.
3739         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
3740         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
3741         (ggc_pch_alloc_object): Update prototypes.
3742         (garbage_zone): Delete.
3743         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
3744         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
3745         pointers.
3746         (tree_id_zone): New variable.
3747         (ggc_alloc_cleared_zone): Remove unused.
3748         (ggc_alloc_zone): Define.
3749         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
3750         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
3751         ggc_alloc_zone_stat.
3752         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
3753         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
3754         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
3755         (make_node_stat): Likewise.  Use tree_id_zone.
3756
3757 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
3758             Joseph S. Myers  <joseph@codesourcery.com>
3759
3760         * configure.ac: Check for MIPS TLS.
3761         * configure: Regenerated.
3762         * config/mips/mips-protos.h (enum mips_symbol_type): Add
3763         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
3764         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
3765         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
3766         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
3767         (mips_classify_symbol, mips_symbolic_constant_p)
3768         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
3769         (mips_tls_operand_p, mips_call_tls_get_addr)
3770         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
3771         (mips_tls_symbol_ref_1): New functions.
3772         (mips_legitimize_address, mips_legitimize_const_move): Call
3773         mips_legitimize_tls_address.
3774         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
3775         for MIPS16.
3776         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
3777         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
3778         (mips_char_to_class): Document V1_REG.
3779         (HAVE_AS_TLS): Provide default.
3780         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
3781         constants.
3782         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
3783         !TARGET_ABICALLS.
3784         (tls_get_tp_<mode>): New instruction.
3785
3786 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
3787
3788         * configure.ac: Update checks for target tools.
3789         * configure: Regenerated.
3790
3791 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
3792
3793         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
3794
3795 2005-03-13  Roger Sayle  <roger@eyesopen.com>
3796
3797         * expmed.c (expand_mult): Use synthetic multiplication sequences for
3798         more classes of DImode multiplication by constant.  Allow both
3799         multiplication by small negative constants (by performing a
3800         multiplication by a positive constant and negating the result) and
3801         multiplications by large powers of two, by using a left shift.
3802
3803 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
3804
3805         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
3806         of basic blocks into work_stack.
3807
3808         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
3809         config/mips/vr.h: Update copyright.
3810
3811         * c-decl.c (c_init_decl_processing): Remove useless calls to
3812         build_function_type.
3813
3814         * builtins.c (fold_trunc_transparent_mathfn,
3815         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
3816         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
3817         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
3818         fold_builtin_strcpy, fold_builtin_strncpy,
3819         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
3820         TREE_TYPE (exp).
3821
3822         * builtins.c (expand_builtin_mathfn_3): Remove local variable
3823         before_call.
3824
3825         * lambda-code.c (lambda_compute_auxillary_space): Remove local
3826         variable determinant.
3827
3828         * tree-cfg.c (group_case_labels): Remove local variable type.
3829
3830         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
3831         variable ann.
3832
3833         * tree-ssa-phiopt.c (value_replacement): Remove local variable
3834         result.
3835
3836 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
3837
3838         PR target/18251
3839         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
3840         (*movmemqi_insn): Delete.
3841         (*movmemhi): Delete.
3842
3843 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
3844
3845         * builtins.c (fold_builtin_classify): Take decomposed
3846         arguments of CALL_EXPR.
3847         (fold_builtin_1): Update a call to fold_builtin_classify.
3848
3849 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
3850
3851         PR c/20402
3852         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
3853         through into call to parser_xref_tag after parse error.
3854         (c_parser_struct_declaration): Consistently return NULL_TREE on
3855         error.
3856
3857 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
3858
3859         * tree-flow-inline.h (ref_contains_array_ref): New function.
3860         (lookup_subvars_for_var): Ditto.
3861         (get_subvars_for_var): Ditto.
3862         (var_can_have_subvars): Ditto.
3863
3864         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
3865         (struct subvar): New type.
3866
3867         * tree-dfa.c (okay_component_ref_for_subvars): New function.
3868
3869         * tree-optimize.c (init_tree_optimization_passes): Call
3870         pass_create_structure_vars.
3871
3872         * tree-ssa-alias.c: Include vec.h.
3873         (init_alias_info): Don't auto-clear call clobbered on struct-field
3874         tags.
3875         (compute_flow_insensitive_aliasing): Handle subvars.
3876         (group_aliases): Handle STRUCT_FIELD aliases.
3877         (setup_pointers_and_addressables): Ditto.
3878         Don't mark variables non-addressable if they still have
3879         addressable subvars.
3880         Also mark subvars addressable when the real variable is marked
3881         addressable.
3882         (add_pointed_to_var): Try to prune the pointed-to set by only
3883         pointing to subvars when possible.
3884         Otherwise, make sure we set addresses_needed and pt_vars to
3885         properly include subvars.
3886         (bitpos_of_field): New function.
3887         (push_fields_onto_fieldstack): Ditto.
3888         (get_or_create_used_part_for): Ditto.
3889         (create_overlap_variables_for): Ditto.
3890         (find_used_portions): Ditto.
3891         (create_structure_vars): Ditto.
3892         (pass_create_structure_vars): New structure.
3893
3894         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
3895         (get_expr_operands): Handle subvars.  Also try to turn
3896         COMPONENT_REF accesses into must-defs now that we can accurately
3897         portray it.
3898         (note_addressable): Try to only mark as addressable those subvars
3899         we know a COMPONENT_REF touches.
3900         (overlap_subvar): New function.
3901
3902         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
3903         Handle subvar storing.
3904         (vect_address_analysis): Update caller of vect_object_analysis.
3905
3906         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
3907
3908         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
3909         (STMT_VINFO_SUBVARS): New macro.
3910
3911         * common.opts: add flag_tree_salias.
3912
3913         * opts.c (decode_options): flag_tree_salias defaults to on.
3914
3915         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
3916
3917         * doc/tree-ssa.texi: Document structural alias analysis.
3918
3919 2005-03-12  Steven Bosscher  <stevenb@suse.de>
3920
3921         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
3922         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
3923         * tree-ssa-operands.c (get_expr_operands): Likewise.
3924         (get_expr_operands): Likewise for ERROR_MARK.
3925
3926 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
3927
3928         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
3929         var.
3930
3931         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
3932         removed_phis.
3933
3934         * tree-ssa-pre.c (compute_avail): Remove local variable val.
3935         (mark_operand_necessary): Remove local variable ver.
3936
3937         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
3938         variable prefix_len.
3939
3940         * value-prof.c (mod_subtract_transform): Remove local variable
3941         value.
3942
3943         * builtins.c (fold_builtin_exponent): Take decomposed
3944         arguments of CALL_EXPR.
3945         (fold_builtin_1): Update a call to fold_builtin_exponent.
3946
3947         * builtins.c (fold_builtin_logarithm): Take decomposed
3948         arguments of CALL_EXPR.
3949         (fold_builtin_1): Update a call to fold_builtin_logarithm.
3950
3951         * c-decl.c (c_init_decl_processing): Remove local variables
3952         ptr_ftype_void and ptr_ftype_ptr.
3953
3954         * gimplify.c (gimplify_expr): Remove local variables r0 and
3955         r1.
3956
3957         * reg-stack.c (move_for_stack_reg): Remove local variable
3958         push_insn.
3959         (compare_for_stack_reg): Remove local variable flags_user.
3960         (convert_regs_1): Remove local variable deleted.
3961
3962         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
3963         variable new_cond.
3964         (combine_blocks): Remove local variables exits and new_e.
3965
3966         * tree-inline.c (expand_call_inline): Remove local variable
3967         decl.
3968
3969         * tree-ssa-live.c (create_ssa_var_map,
3970         calculate_live_on_entry): Remove local variable snn.
3971
3972 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
3973
3974         * c-lex.c (c_lex_with_flags): Add parameter to call to
3975         cpp_spell_token.
3976
3977 2005-03-11  Per Bothner  <per@bothner.com>
3978
3979         * c-tree.h (struct c_declarator): New id_loc field.
3980         * c-pragma.h (c_lex_with_flags): Take position reference.
3981         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
3982         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
3983         (c_lex): Pass dummy location to c_lex_with_flags.
3984         * c-parser.c (c_lex_one_token): Set c_token's location using
3985         c_lex_with_flags, instead of input_location, which might be "ahead".
3986         (c_parser_direct_declarator): Set declarator's id_loc from
3987         c_token's id_loc.
3988         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
3989         declarator's id_loc, rather than probably-imprecise input_location.
3990         (build_id_declarator): Initialize c_declarator's id_loc field.
3991
3992 2005-03-11  Roger Sayle  <roger@eyesopen.com>
3993
3994         PR middle-end/20419
3995         * builtins.c (expand_builtin_signbit): Force the signbit's word
3996         into an integer register to avoid SUBREGs of floating point modes.
3997
3998 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
3999
4000         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
4001         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
4002         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
4003         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
4004
4005 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
4006
4007         PR rtl-optimization/20306
4008         * expr.c (emit_move_complex): Set try_int false if mode is
4009         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
4010         emit_block_move if try_int is true.
4011
4012 2005-03-11  Richard Henderson  <rth@redhat.com>
4013
4014         PR target/20415
4015         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
4016         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
4017         to match.
4018
4019 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
4020
4021         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
4022         (TARGET_FIX_VR4130): New macro.
4023         (TARGET_OPTIONS): Add -mfix-vr4130.
4024         (ISA_HAS_MACCHI): New macro.
4025         (ASM_SPEC): Add -mfix-vr4130.
4026         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
4027         (override_options): Handle mips_fix_vr4130_string.
4028         (mips_avoid_hazards): Clear all_noreorder_p
4029         if we're working around VR4130 errata and the macc alternatives
4030         are not available.
4031         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
4032         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
4033         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
4034         (MULTILIB_DEFAULTS): Remove leading "march=".
4035         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
4036         if no architecture option is given.
4037         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
4038         VR4130 multilibs.
4039         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
4040         * doc/invoke.texi: Document -mfix-vr4130.
4041
4042 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
4043
4044         * config/mips/mips.c (override_options): Only warn about -mint64
4045         deprecation if TARGET_INT64.
4046
4047 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4048
4049         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
4050         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
4051         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
4052         are non-specific regarding the nonnull parameter positions.
4053         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
4054         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
4055         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
4056         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
4057
4058         * builtins.def: Use the non-specific "nonnull" attibute lists.
4059
4060 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
4061
4062         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
4063         single_pred_edge, single_succ, single_pred): Improve comments.
4064
4065 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
4066
4067         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
4068         single_pred_edge, single_succ, single_pred): New inline functions.
4069         * bb-reorder.c (rotate_loop, find_traces_1_round,
4070         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
4071         duplicate_computed_gotos): Use the single_succ/pred functions.
4072         * cfganal.c (forwarder_block_p): Ditto.
4073         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
4074         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4075         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
4076         merge_seq_blocks): Ditto.
4077         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
4078         * cfglayout.c (fixup_reorder_chain): Ditto.
4079         * cfgloop.c (mark_single_exit_loops, update_latch_info,
4080         canonicalize_loop_headers, verify_loop_structure): Ditto.
4081         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
4082         mfb_update_loops, create_preheader, force_single_succ_latches,
4083         create_loop_notes): Ditto.
4084         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
4085         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
4086         commit_one_edge_insertion, purge_dead_edges,
4087         cfg_layout_can_merge_blocks_p): Ditto.
4088         * except.c (sjlj_emit_function_enter): Ditto.
4089         * flow.c (init_propagate_block_info): Ditto.
4090         * function.c (thread_prologue_and_epilogue_insns): Ditto.
4091         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
4092         insert_insn_end_bb): Ditto.
4093         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
4094         find_if_case_2): Ditto.
4095         * lambda-code.c (perfect_nestify): Ditto.
4096         * lcm.c (optimize_mode_switching): Ditto.
4097         * loop-doloop.c (doloop_modify): Ditto.
4098         * loop-init.c (loop_optimizer_init): Ditto.
4099         * loop-iv.c (simplify_using_initial_values): Ditto.
4100         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
4101         * loop-unswitch.c (unswitch_loop): Ditto.
4102         * modulo-sched.c (generate_prolog_epilog): Ditto.
4103         * predict.c (combine_predictions_for_insn, estimate_probability,
4104         tree_estimate_probability, last_basic_block_p,
4105         estimate_bb_frequencies): Ditto.
4106         * profile.c (branch_prob): Ditto.
4107         * regrename.c (copyprop_hardreg_forward): Ditto.
4108         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
4109         * tracer.c (layout_superblocks): Ditto.
4110         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
4111         cfg_remove_useless_stmts_bb, cleanup_control_flow,
4112         cleanup_control_expr_graph, disband_implicit_edges,
4113         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
4114         tree_verify_flow_info, tree_make_forwarder_block,
4115         tree_forwarder_block_p, remove_forwarder_block,
4116         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
4117         * tree-if-conv.c (tree_if_conversion): Ditto.
4118         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
4119         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
4120         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
4121         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
4122         copy_loop_headers): Ditto.
4123         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
4124         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
4125         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
4126         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
4127         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
4128         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
4129         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
4130         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
4131         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
4132         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
4133         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
4134         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
4135         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
4136         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
4137         slpeel_add_loop_guard): Ditto.
4138
4139 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
4140
4141         PR tree-optimization/15784
4142         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
4143         and -1 - A to ~A.
4144
4145         * stmt.c (expand_case): Don't change index_type.  Convert minval
4146         to the proper type.
4147
4148         PR tree-optimization/20130
4149         * fold-const.c (fold): Fold x * -1 into -x.
4150
4151 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4152
4153         PR rtl-optimization/20331
4154         * rtlanal.c (modified_between_p): Check its address first for MEM.
4155         (modified_in_p): Likewise.
4156
4157 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
4158
4159         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
4160
4161 2005-03-10  Steven Bosscher  <stevenb@suse.de>
4162
4163         * expr.c (expand_expr_real_1): If possible, use a conditional
4164         move for expanding MIN_EXPR and MAX_EXPR.
4165         Use temp for moving around rtx-en.
4166
4167 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
4168
4169         PR rtl-opt/20412
4170         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
4171         correct mode.
4172
4173 2005-03-10  Roger Sayle  <roger@eyesopen.com>
4174
4175         * builtins.c (expand_builtin_signbit): Extend to handle floating
4176         point modes wider than the largest integer type, using the
4177         operand_subword_force function to obtain the signbit's word.
4178
4179 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
4180
4181         PR target/20322
4182         * combine.c (try_combine): If recog_for_combine added CLOBBERs
4183         to NEWI2PAT, fail to combine if they are used by NEWPAT.
4184
4185 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
4186
4187         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
4188
4189 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
4190
4191         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
4192         type void.
4193         (perform_edge_inserts): Unconditionally call
4194         free_dominator_info.
4195
4196         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
4197
4198 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
4199
4200         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
4201
4202 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
4203
4204         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
4205
4206         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
4207         gcc_unreachable.
4208         (rtl_register_value_prof_hooks,
4209         tree_value_profile_transformations,
4210         tree_register_value_prof_hooks): Likewise.
4211         * var-tracking.c (stack_adjust_offset_pre_post,
4212         variable_htab_free, variable_union, dataflow_set_different_2,
4213         count_uses, variable_was_changed, set_frame_base_location,
4214         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
4215         vt_add_function_parameters): Likewise.
4216         * varasm.c (named_section_real, named_section, make_decl_rtl,
4217         asm_emit_uninitialised, assemble_integer, decode_addr_const,
4218         const_hash_1, compare_constant, copy_constant, force_const_mem,
4219         output_constant_pool_2, output_constant_pool_1, output_constant,
4220         output_constructor, make_decl_one_only, decl_tls_model,
4221         default_no_named_section, default_elf_select_section_1,
4222         default_unique_section_1): Likewise.
4223         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
4224         * vmsdbgout.c (addr_const_to_string): Likewise.
4225
4226         PR c++/20375
4227         * function.c (struct assign_parm_data_one): Remove last_named
4228         field.
4229         (assign_parm_find_data_types): Don't determine last_named.
4230         Reorder named_parm determination.
4231         (assign_parms): Only setup varargs on the last non-varadic
4232         parameter.
4233
4234 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
4235
4236         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
4237         sda base address on medium model.
4238
4239 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
4240
4241         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
4242         * cfgloop.c (flow_loop_nodes_find): Export.
4243         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
4244         Declare.
4245         * cfgloopmanip.c (fix_loop_structure): New function.
4246         * predict.c (predict_loops): Clean up the loops information.
4247         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
4248         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
4249         loop structure.
4250         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
4251         (rewrite_into_loop_closed_ssa): Declaration changed.
4252         * tree-loop-linear.c (linear_transform_loops): Add argument to
4253         rewrite_into_loop_closed_ssa call.
4254         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
4255         * tree-ssa-loop-im.c (move_computations): Ditto.
4256         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
4257         * tree-vectorizer.c (vectorize_loops): Ditto.
4258         * tree-optimize.c: Include cfgloop.h.
4259         (execute_todo): Choose whether to call cleanup_tree_cfg or
4260         cleanup_tree_cfg_loop.
4261         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
4262         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
4263         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
4264         cleanup_tree_cfg_loop call.
4265         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
4266         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
4267         work on part of cfg.
4268
4269 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
4270
4271         PR inline-asm/20314
4272         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
4273         with multiple alternatives.
4274
4275         * stmt.c (parse_output_constraint): Fix a typo.
4276
4277 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
4278
4279         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
4280         assembly directive instead of deprecated "no-generics".
4281
4282 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
4283
4284         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
4285         for non-offsettable memory references to cope with outstanding reload
4286         replacements.
4287         * config/s390/s390.md ("reload_outti"): Call find_replacement to
4288         avoid losing outstanding address reloads.
4289         ("reload_outdi", "reload_outdf"): Likewise.
4290
4291 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4292
4293         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
4294         code.  Add more cbrt transformations.
4295
4296 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4297
4298         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
4299
4300 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
4301
4302         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
4303         NULL_TREE when a given tree is not simplified.
4304         (fold): Return the original tree when any of the functions
4305         mentioned above NULL_TREE.
4306
4307         * fold-const.c (fold_unary, fold_binary): Take decomposed
4308         arguments, code, type, op0, and op1 in case of fold_binary.
4309         (fold): Update calls to fold_unary and fold_binary.
4310
4311 2005-03-09  Roger Sayle  <roger@eyesopen.com>
4312
4313         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
4314         a fndecl and an arglist instead of a CALL_EXPR, exp.
4315
4316 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
4317
4318         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
4319
4320         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
4321
4322         * expr.c (expand_assignment): Remove orig_to_rtx.
4323
4324         * fold-const.c (int_const_binop): Remove no_overflow.
4325
4326         * ifcvt.c (noce_emit_move_insn): Remove inmode.
4327
4328         * loop-iv.c (get_biv_step_1): Remove lhs.
4329
4330         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
4331
4332         * real.c (real_nan): Remove neg.
4333
4334         * function.c (thread_prologue_and_epilogue_insns): Remove i
4335         and newinsn.
4336
4337         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
4338         tb.
4339
4340         * tree-eh.c (tree_could_trap_p): Remove idx.
4341
4342         * tree-into-ssa.c (ann): Remove ann.
4343
4344         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
4345
4346         * tree-sra.c (decide_block_copy): Remove inst_count.
4347
4348         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
4349
4350         * tree-ssa-loop-im.c (lhs): Remove.
4351
4352         * cfgbuild.c (state, STATE, SET_STATE,
4353         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
4354         make_edges.
4355         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
4356         (find_basic_blocks): Set the state of each basic block to
4357         BLOCK_NEW.
4358
4359 2005-03-08  Jeff Law  <law@redhat.com>
4360
4361         * tree-cfg.c (cleanup_control_flow): If removal of a computed
4362         goto results in the removal of edges in the CFG, then we need
4363         to recompute dominators.
4364
4365 2005-03-09  Ben Elliston  <bje@au.ibm.com>
4366
4367         * c-common.c (c_do_switch_warnings): Comment fix.
4368
4369 2005-03-08  Julian Brown  <julian@codesourcery.com>
4370
4371         * Patch from 2005-03-08 reverted for causing regressions and
4372         ppc-darwin bootstrap failure.
4373
4374 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
4375
4376         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
4377         Define the real function for ppc-darwin.
4378         * c-typeck.c (convert_arguments): Check for target-specific
4379         invalid argument call to unprototyped function.
4380         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
4381         New Macro.
4382         * target.h (invalid_arg_for_unprototyped_fn): New field
4383         in struct calls.
4384         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
4385         default target hook.
4386         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
4387         Declare.
4388
4389 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
4390
4391         * c-typeck.c (constructor_stack, constructor_range_stack,
4392         initializer_stack): Make them static.
4393
4394         * cfg.c (rbi_pool): Make it static.
4395
4396         * gimple-low.c (lower_stmt_body): Make it static.
4397         * tree-flow.h: Remove the corresponding prototype.  Don't
4398         declare lower_data.
4399
4400         * sched-deps.c (cache_size): Make it static.
4401
4402         * stor-layout.c (lang_adjust_rli): Make it static.
4403
4404 2005-03-08  Julian Brown  <julian@codesourcery.com>
4405
4406         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
4407         from being used for symbols with vague linkage when
4408         HAVE_GAS_COMDAT_GROUP is true.
4409
4410 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
4411
4412         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
4413         nlabel == JUMP_LABEL (jump).
4414
4415 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
4416
4417         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
4418         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
4419         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
4420         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
4421
4422 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
4423
4424         PR c/14411
4425         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
4426         * c-common.c (handle_returns_twice): New function.
4427         (c_common_attribute_table): Declare eturns_twice' attribute.
4428         * doc/extend.texi: Document eturns_twice' attribute.
4429         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
4430         (struct tree_decl): Add returns_twice_flag.
4431
4432 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
4433
4434         * tree-ssa-phiopt.c: Fix a comment typo.
4435
4436         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
4437         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
4438         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
4439         copyright.
4440
4441 2005-03-08  Richard Henderson  <rth@redhat.com>
4442
4443         * config/alpha/alpha.c (code_for_builtin): Replace special-case
4444         builtin codes with ctzdi2, clzdi2, popcountdi2.
4445         (struct alpha_builtin_def): Add is_const.
4446         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
4447         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
4448         (alpha_init_builtins): Init them.  Set nothrow and const attributes
4449         on builtins.
4450         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
4451         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
4452         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
4453         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
4454         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
4455         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
4456         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
4457         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
4458         (TARGET_FOLD_BUILTIN): New.
4459         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
4460         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
4461         (ffsdi2): Use ctz.
4462         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
4463
4464 2005-03-08  Ira Rosen  <irar@il.ibm.com>
4465
4466         PR tree-optimization/20122
4467         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
4468         condition of access function instead of base.
4469
4470 2005-03-07  Jeff Law  <law@redhat.com>
4471             Steven Bosscher  <stevenb@suse.de>
4472
4473         * tree-cfg.c (find_taken_edge_computed_goto): New function.
4474         (find_taken_edge): Call find_taken_edge_computed_goto as
4475         appropriate.  Allow any gimple invariant rather than just
4476         INTEGER_CST for VAL.
4477         (cleanup_control_flow): Cleanup a computed goto which has turned
4478         into a simple goto.
4479         (tree_merge_blocks): If block B has any forced labels, move
4480         them to the start of block A.
4481         * tree-ssa-dom.c (thread_across_edge): Allow threading across
4482         computed gotos as well.
4483         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
4484         removal of unnecessary computed gotos too.
4485         (lookup_redirection_data): Fix type of INSERT argument.  Callers
4486         updated.
4487
4488 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
4489
4490         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
4491         Remove trailing spaces.
4492
4493         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
4494         unshare_all_trees): Make them static.
4495         * tree-gimple.h: Remove the corresponding prototypes.
4496
4497         * diagnostic.h: Remove unused prototype
4498         debug_output_buffer.
4499         * modulo-sched.c: Remove unused prototype
4500         set_row_column_for_ps.
4501
4502         * tree-ssa-phiopt.c (tree_ssa_phiopt,
4503         replace_phi_edge_with_variable): Remove unused variable i.
4504
4505 2005-03-07  Per Bothner  <per@bothner.com>
4506
4507         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
4508
4509 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
4510
4511         PR tree-opt/17671
4512         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
4513         bbs on the COND_EXPR instead of the PHI_NODEs.
4514         (candidate_bb_for_phi_optimization): Remove.
4515         (replace_phi_with_stmt): Rename to ...
4516         (replace_phi_edge_with_variable): this and change so that we
4517         replace the phi argument instead of removing the PHI.
4518         (conditional_replacement): Change so we deal with PHI with more
4519         than two arguments.
4520         (value_replacement): Likewise.
4521         (abs_replacement): Likewise.
4522
4523 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
4524
4525         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
4526         output_e500_flip_gt_bit.
4527
4528         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
4529         as bit 31.
4530         (rs6000_generate_compare): Fix logic to look at the correct bits.
4531         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
4532         Look at GT bit.
4533         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
4534         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
4535         gen_move_from_CR_gt_bit.
4536
4537         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
4538         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
4539         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
4540
4541         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
4542         (E500_CR_IOR_COMPARE): New constant.
4543
4544 2005-03-08  Earl Chew <earl_chew@agilent.com>
4545             David Billinghurst <David.Billinghurst@riotinto.com>
4546
4547         * config/i386/host-cygwin.c: New file to support precompiled
4548         headers on cygwin
4549         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
4550         * config.host: Use above files for cygwin host.
4551
4552 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
4553
4554         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
4555         ordering ops from earlier change.
4556
4557 2005-03-07  Per Bothner  <per@bothner.com>
4558
4559         Various fixes to allow us to again build if --enable-mapped-location:
4560         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
4561         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
4562         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
4563         local variable loc. Change logic appropriately.
4564         * tree-vect-transform.c (vect_finish_stmt_generation): Use
4565         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
4566         * c-parser.c (c_parser_for_statement): Initialize loc variable.
4567         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
4568         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
4569
4570 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
4571
4572         PR rtl-optimization/19683
4573         * reload1.c (choose_reload_regs): Pass the number of bits, not the
4574         number of bytes, to smallest_int_for_mode.  Fix arguments to
4575         REG_CANNOT_CHANGE_MODE_P.
4576
4577 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4578
4579         * reorg.c (relax_delay_slots): Check that the jump is
4580         conditional before trying to invert it.
4581
4582 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
4583
4584         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
4585         Make them static.
4586
4587         * calls (stack_arg_under_construction): Make it static.
4588
4589         * flow.c (regs_live_at_setjmp): Make it static.
4590         * flow.h: Remove the corresponding prototype.
4591
4592         * reload1.c (reload_startobj, reload_firstobj,
4593         something_needs_operands_changed, reload_inherited,
4594         reload_inheritance_insn, reload_override_in,
4595         reload_spill_index): Make them static.
4596
4597         * recog.c (verify_changes): Make it static.
4598         * recog.h: Remove the corresponding prototype.
4599
4600         * cfgbuild.c (find_sub_basic_blocks): Remove.
4601         * basic-block.h: Remove the corresponding prototype.
4602         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
4603         in comments.
4604         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
4605
4606         * tree-ssa-operands.c (check_build_stmt): Remove.
4607
4608         * stor-layout.c (set_alignment): Remove.
4609         * tree.h: Remove the corresponding prototype.
4610
4611         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
4612
4613         * tree-ssa-dce.c (control_dependence_map,
4614         visited_control_parents): Make them static.
4615
4616         * cfghooks.c (verify_flow_info): Remove local variable
4617         num_bb_notes.
4618
4619         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
4620         last_bb_seen.
4621
4622         * loop-unswitch.c (unswitch_loop): Remove local variable src.
4623
4624 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
4625
4626         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
4627
4628 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
4629
4630         * config/ia64/hpux.h (LINK_SPEC): Add -z.
4631         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
4632         PARALLEL for an empty structure.
4633
4634 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
4635
4636         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
4637
4638         * fold-const.c (fold_binary): Unroll the very first "for"
4639         loop.
4640
4641 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
4642
4643         * config/rs6000/predicates.md (branch_comparison_operator): Remove
4644         redundant match_code test.
4645         (scc_comparison_operator): Swap match_operand and match_code
4646         tests.
4647         (branch_positive_comparison_operator): Same.
4648         (trap_comparison_operator): Use comparison_operator and swap with
4649         match_code test.
4650
4651 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4652
4653         PR target/20288
4654         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
4655         (out_movhi_r_mr): Read low byte of volatile MEM first.
4656         (out_movhi_mr_r): Write high byte of volatile MEM first.
4657
4658 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4659
4660         * cselib.c (reg_values, reg_values_size): Make them static.
4661
4662         * cse.c (cse_reg_info_table): Make it static.
4663
4664         * fold-const.c (fold_unary): Use build1 instead of copy_node.
4665
4666 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
4667
4668         * cse.c (find_best_addr): Use canon_for_address.
4669
4670 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4671
4672         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
4673         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
4674         SUBREG and MEM, respectively.
4675
4676         * fold-const.c (fold_binary): Use code instead of t.
4677
4678         * fold-const.c (optimize_minmax_comparison): Take decomposed
4679         arguments code, type, op0, and op1 instead of t.
4680         (fold_binary): Update a call to optimize_minmax_comparison.
4681
4682         * fold-const.c (fold_range_test): Take decomposed arguments
4683         code, type, op0, and op1 instead of t.
4684         (fold_binary): Update a call to fold_range_test.
4685
4686         * fold-const.c (fold_binary_op_with_conditional_arg): Take
4687         decomposed arguments code, type, op0, and op1 instead of t.
4688         (fold_binary): Update a call to fold_range_test.
4689
4690 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4691
4692         * fold-const.c (fold_binary): Avoid directly using the original
4693         expression t as much as possible.
4694
4695 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4696
4697         * c-semantics.c (build_stmt): Use TYPE_P instead of
4698         IS_NON_TYPE_CODE_CLASS.
4699         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
4700         (NON_TYPE_CHECK): Use TYPE_P instead of
4701         IS_NON_TYPE_CODE_CLASS.
4702
4703         * fold-const.c (fold): Remove handling of binary expressions.
4704
4705 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
4706
4707         * doc/c-tree.texi: Wrap comments in @r{}.
4708         * doc/cpp.texi: Likewise.
4709         * doc/cppinternals.texi: Likewise.
4710         * doc/extend.texi: Likewise.
4711         * doc/md.texi: Likewise.
4712         * doc/objc.texi: Likewise.
4713         * doc/sourcebuild.texi: Likewise.
4714         * doc/tm.texi: Likewise.
4715         * doc/tree-ssa.texi
4716
4717 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4718
4719         * predict.c (apply_return_prediction): Standardize PHI chain
4720         walking.
4721         * tree-ssa.c (ssa_redirect_edge): Likewise.
4722
4723         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
4724         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
4725         Update copyright.
4726
4727         * tree-phinodes.c (remove_phi_node): Drop the last argument.
4728         * tree-flow.h: Adjust the prototype for remove_phi_node.
4729         * lambda-code.c (perfect_nestify): Adjust a call to
4730         remove_phi_node.
4731         * tree-cfg.c
4732         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
4733         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
4734         Likewise.
4735         * tree-ssa-dce.c (remove_dead_phis): Likewise.
4736         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
4737         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
4738         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
4739
4740         * combine.c (simplify_and_const_int): Use gen_int_mode instead
4741         of GEN_INT (trunc_int_for_mode (...)).
4742         * loop-iv.c (iv_number_of_iterations): Likewise.
4743         * postreload.c (reload_cse_move2add): Likewise.
4744         * simplify-rtx.c (simplify_const_unary_operation,
4745         simplify_const_binary_operation): Likewise.
4746         * stor-layout.c (get_mode_bounds): Likewise.
4747
4748         * fold-const.c (fold_binary): New.
4749         (fold): Call fold_binary on binary expressions.
4750
4751 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
4752
4753         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
4754         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
4755         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
4756         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
4757         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
4758
4759 2005-03-04  Devang Patel  <dpatel@apple.com>
4760
4761         PR tree-optimization/18815
4762         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
4763         loops with zero exit edges.
4764
4765 2005-03-04  Devang Patel  <dpatel@apple.com>
4766
4767         * doc/invoke.texi: Remove reference to webpage that does not exist.
4768
4769 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
4770             Joseph S. Myers  <joseph@codesourcery.com>
4771
4772         PR c++/19797
4773         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
4774         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
4775         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
4776         * pa.c (get_plabel): Change argument to symbol_ref.  Call
4777         maybe_get_identifier instead of get_identifier.
4778         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
4779         (struct deferred_plabel): Replace name field with symbol field.
4780         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
4781         ASM_OUTPUT_EXTERNAL_REAL is defined.
4782         (output_global_address): Use output_addr_const for output of all
4783         symbol_refs.
4784         (output_deferred_plabels): Use symbol_ref instead of name for address
4785         output.
4786         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
4787         ASM_OUTPUT_SYMBOL_REF): New macros.
4788         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
4789         comment.
4790         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
4791         label.
4792
4793 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
4794
4795         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
4796         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
4797
4798 2005-03-04  Jeff Law  <law@redhat.com>
4799
4800         * basic-block.h (rediscover_loops_after_threading): Declare.
4801         * tree-ssa-dom.c: Include cfgloop.h.
4802         (tree_ssa_dominator_optimize): Discover loops and some basic
4803         properties.  Remove forwarder blocks recreated by loop header
4804         canonicalization.  Also mark backedges in the CFG.
4805         * tree-ssa-threadupdate.c: Include cfgloop.h
4806         (rediscover_loops_after_threading): Define.
4807         (struct local_info): New field, JUMP_THREADED.
4808         (prune_undesirable_thread_requests): New function.
4809         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
4810         then record that fact for the callers of redirct_edges.
4811         (thread_block): If BB has incoming backedges, then call
4812         prune_undesirable_thraed_requests.    Note when we are
4813         going to have to rediscover loop information.  Return a
4814         boolean indicating if any jumps were threaded.
4815         (thread_through_all_blocks): Bubble up boolean indicating
4816         if any jumps were threaded.
4817         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
4818         (tree-ssa-threadupdate.o): Similarly.
4819
4820 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4821
4822         * fold-const.c (fold_ternary): Unroll the "for" loop to
4823         extract operands.
4824
4825 2005-03-04  Andrew Haley  <aph@redhat.com>
4826
4827         * unwind-dw2-fde-glibc.c (struct
4828         unw_eh_callback_data.check_cache): New field.
4829         (frame_hdr_cache): New.
4830         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
4831         Cache frame header info.
4832
4833 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
4834
4835         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
4836         (print_c_condition): Declare.
4837         * read-rtl.c (ptr_loc): New structure.
4838         (ptr_locs, ptr_loc_obstack, joined_conditions)
4839         (joined_conditions_obstack): New variables.
4840         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
4841         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
4842         (join_c_conditions, print_c_condition): New functions.
4843         (apply_macro_to_string): Associate the new string with the same
4844         source location as the old one.
4845         (add_condition_to_string): Use join_c_conditions.
4846         (read_string): Use set_rtx_ptr_loc to record a filename and line
4847         number for the string.
4848         (read_rtx): Initialize the new variables above.
4849         * genattrtab.c (write_test_expr, write_attr_value): Use
4850         print_c_condition.
4851         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
4852         comment above the GCC_VERSION check.
4853         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
4854         Inline the definition of MAYBE_EVAL.
4855         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
4856         * genoutput.c (process_template): Likewise.
4857         * genpreds.c (write_predicate_subfunction): Likewise.
4858         (write_predicate_expr): Use print_c_condition.
4859         * genrecog.c (write_cond): Likewise.
4860         * gensupport.c (process_rtx): Use join_c_conditions to join the
4861         conditions of a define_insn_and_split.  Record a source location
4862         for the string after the "&&".
4863         (alter_test_for_insn): Use join_c_conditions.
4864
4865 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
4866
4867         Revert for now:
4868         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
4869         PR tree-optimization/15784
4870         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
4871         and -1 - A to ~A.
4872
4873 2005-03-04  Ben Elliston  <bje@au.ibm.com>
4874
4875         * gcc.c (option_map): Add --coverage.
4876         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
4877         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
4878         * config/darwin.h: Pass -lgcov for `coverage'.
4879         * doc/invoke.texi (Debugging Options): Document --coverage.
4880
4881 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4882
4883         * gcse.c (bypass_block): Use find_edge wherever possible.
4884
4885 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
4886
4887         Fix PR debug/20253
4888
4889         * c-opts.c (c_common_parse_file): Call start_source_file
4890         and end_source_file at the approriate times.
4891
4892         * dwarf2out.c (dwarf2out_finish): Don't auto-end
4893         the main file, it will be done for us now.
4894
4895 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4896
4897         * fold-const.c (fold_ternary): New.
4898         (fold): Call fold_ternary on ternary expressions.  Remove
4899         handling of ternary expressions.
4900
4901 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
4902
4903         PR tree-optimization/15784
4904         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
4905         and -1 - A to ~A.
4906
4907 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
4908
4909         * config/rs6000/predicates.md (branch_comparison_operator):
4910         Convert from C block to conditional format.
4911
4912 2005-03-03  Jan Hubicka  <jh@suse.cz>
4913
4914         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
4915         and non-constant public variables.
4916
4917 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4918
4919         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
4920         with LABEL_EXPR.
4921
4922         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
4923         EDGE_I.
4924
4925         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
4926         calls to release_ssa_name and release_phi_node.
4927
4928         * fold-const.c (fold): Remove handling of unary expressions.
4929
4930         * fold-const.c (fold_unary): Avoid directly using the original
4931         expression t as much as possible.
4932
4933 2005-03-03  Roger Sayle  <roger@eyesopen.com>
4934             Andrew Pinski  <pinskia@physics.uc.edu>
4935
4936         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
4937         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
4938
4939 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
4940
4941         Describe special registers SRP and MOF as allocatable registers.
4942         * config/cris/cris.c (cris_md_asm_clobbers): New function.
4943         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
4944         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
4945         TARGET_HAS_MUL_INSNS.
4946         (cris_print_operand) <case 'd'>: New case.
4947         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
4948         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
4949         define.
4950         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
4951         (REG_ALLOC_ORDER): Update for MOF.
4952         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
4953         SPECIAL_REGS.
4954         (GENERAL_REGS): No longer a define of ALL_REGS.
4955         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
4956         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
4957         Adjust accordingly.
4958         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
4959         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
4960         (SECONDARY_RELOAD_CLASS): Define.
4961         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
4962         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
4963         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
4964         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
4965         (REGISTER_MOVE_COST): Define.
4966         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
4967         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
4968         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
4969         (CRIS_MOF_REGNUM): New define_constants.
4970         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
4971         special registers.
4972         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
4973         New patterns.
4974         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
4975         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
4976         Adjust for MOF being properly described as a register.
4977         (indir_to_reg_split): Name this split.  Conditionalize on the
4978         destination register being a general register.
4979         (movei): Conditionalize on on operands 0 and 1 having the same
4980         register class.
4981
4982 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
4983
4984         PR target/20277
4985         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
4986         -mcpu to override any other explicitly given flags.
4987
4988 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
4989
4990         * recog.c (verify_changes, confirm_change_group): New functions,
4991         broken out of apply_change_group.
4992         (apply_change_group): Use them.
4993         * recog.h (verify_change, confirm_change_group): Declare.
4994         * rtl.h (redirect_jump_2): Declare.
4995         * jump.c (redirect_exp, invert_exp): Delete.
4996         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
4997         (redirect_jump_2): New function, broken out of redirect_jump.
4998         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
4999         (invert_jump): Use invert_jump_1 and redirect_jump_2.
5000         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
5001
5002 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
5003
5004         * varasm.c (named_section): Use xstrdup rather than doing it by
5005         hand.
5006
5007         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
5008
5009 2005-03-02  Devang Patel  <dpatel@apple.com>
5010
5011         Undo PR tree-optimization/18815 fix.
5012
5013 2005-03-02  Devang Patel  <dpatel@apple.com>
5014
5015         PR tree-optimization/18815
5016         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
5017         loops with zero exit edges.
5018
5019 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5020
5021         * cfg.c (connect_src, connect_dest, disconnect_src,
5022         disconnct_dest): New.
5023         (unchecked_make_edge, remove_edge, redirect_edge_succ,
5024         redirect_edge_pred): Use the new functions.
5025
5026         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
5027         free_dominance_info only when needed.
5028
5029 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
5030
5031         PR target/20276
5032         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
5033         (reg_or_sub_cint64_operand): Same.
5034
5035 2005-03-02  Jeff Law  <law@redhat.com>
5036
5037         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
5038         CFG_ALTERED in the main DOM iteration loop.
5039
5040 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
5041
5042         PR c++/19916
5043         * varasm.c (initializer_constant_valid_p): Allow conversions
5044         between OFFSET_TYPEs.  Tidy.
5045
5046 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
5047
5048         * config/cris/cris.md ("return"): Remove epilogue delay list
5049         sanity check.
5050
5051 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
5052
5053         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
5054         for Thumb.
5055         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
5056
5057 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
5058
5059         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
5060         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
5061         config/m68k/m68k.c, config/mips/mips.h,
5062         config/rs6000/rs6000-protos.h, doc/contrib.texi,
5063         doc/include/gcc-common.texi: Update copyright.
5064
5065         PR middle-end/18029 and PR middle-end/18030
5066         * expr.c (optimize_bitfield_assignment_op): Add a special case
5067         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
5068
5069         * fold-const.c (fold_unary): New.
5070         (fold): Call fold_unary on unary expressions.
5071
5072 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
5073
5074         * cgraph.h (struct cgraph_edge): Add prev_caller and
5075         prev_callee fields.
5076         (cgraph_node_remove_callees): Export.
5077         * cgraph.c (cgraph_create_edge): Initialize prev_caller
5078         and prev_callee.
5079         (cgraph_edge_remove_callee): New function.
5080         (cgraph_edge_remove_caller): Likewise.
5081         (cgraph_remove_edge): Use.
5082         (cgraph_redirect_edge_callee): Likewise.
5083         (cgraph_node_remove_callees): New function.
5084         (cgraph_node_remove_callers): Likewise.
5085         (cgraph_remove_node): Use.
5086         * tree-optimize.c (tree_rest_of_compilation): Use
5087         cgraph_node_remove_callees instead of manual loop.
5088         * cgraphunit.c (cgraph_finalize_function): Likewise.
5089         (cgraph_expand_function): Likewise.
5090         (cgraph_remove_unreachable_nodes): Likewise.
5091
5092 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
5093
5094         PR c/8927
5095         * c-tree.h (undeclared_variable, build_external_ref): Add extra
5096         argument.
5097         * c-decl.c (undeclared_variable): Take location as argument.
5098         * c-typeck.c (build_external_ref): Likewise.
5099         * c-parser.c (c_parser_postfix_expression): Pass location of
5100         identifier to build_external_ref.
5101
5102 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
5103
5104         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
5105         CCEQ mode for branch_positive_comparison_operator test.
5106         * config/rs6000/predicates (branch_comparison_operator): Revert to
5107         define_predicate.
5108         (scc_comparison_operator): Same.
5109         (branch_positive_comparison_operator): Same.
5110
5111 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
5112
5113         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
5114         (cris_delay_slots_for_epilogue): Remove.
5115         (save_last): Move into cris_target_asm_function_epilogue.
5116         (cris_target_asm_function_epilogue): Remove tests for file being
5117         NULL.
5118         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
5119         (cris_delay_slots_for_epilogue): Remove prototypes.
5120         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
5121         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
5122
5123 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
5124
5125         * config/rs6000/predicates.md (branch_comparison_operator): Change
5126         to define_special_predicate.
5127         (scc_comparison_operator): Same.
5128         (branch_positive_comparison_operator): Same.
5129
5130 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
5131
5132         * Makefile.in (tree-ssa-sink.o): New.
5133         (OBJS-common): Add tree-ssa-sink.o.
5134         * common.opt: Add -ftree-sink
5135         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
5136         * timevar.def (TV_TREE_SINK): new timevar.
5137         * tree-flow.h (is_hidden_global_store): Prototype.
5138         * tree-optimize.c (init_tree_optimization_passes): Add
5139         pass_sink_code.
5140         * tree-pass.h (pass_sink_code): New.
5141         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
5142         for non-obvious global store store to is_hidden_global_store, and
5143         call that new function.
5144         * tree-ssa-sink.c: New file.
5145         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
5146         * doc/passes.texi: Document forward store motion.
5147         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
5148         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
5149         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
5150         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
5151
5152 2005-03-01  Per Bothner  <per@bothner.com>
5153
5154         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
5155         and we have a non-zero column-number, add it to the message.
5156         Also factor out the diagnostic_kind_text.
5157
5158 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
5159
5160         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
5161         flow_loop_pre_header_scan, flow_loop_pre_header_find,
5162         flow_loop_scan): Removed.
5163         (flow_loop_dump): Do not dump removed fields.
5164         (flow_loop_free): Do not free removed fields.
5165         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
5166         (loop_exit_edge_p): New function.
5167         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
5168         num_pre_header_edges, entry_edges, num_entries, exit_edges,
5169         num_exits, exits_doms.
5170         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
5171         LOOP_EDGES, LOOP_ALL): Removed.
5172         (flow_loop_scan): Declaration removed.
5173         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
5174         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
5175         flow_loops_find.
5176         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
5177         (if_convert): Call flow_loops_find and flow_loops_free
5178         when calling mark_loop_exit_edges.
5179         * cfgloopanal.c (mark_loop_exit_edges): Moved from
5180         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
5181         free_dominance_info calls.
5182         * loop-init.c (flow_loops_find): Ditto.
5183         * passes.c (rest_of_handle_branch_prob): Ditto.
5184         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
5185         * loop-unroll.c (analyze_insns_in_loop): Do not use
5186         EDGE_LOOP_EXIT.
5187         * predict.c (predict_loops): Do not call flow_loop_scan.
5188         Use get_loop_exit_edges.
5189         (tree_estimate_probability): Do not pass flags to flow_loops_find.
5190         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
5191         Do not use EDGE_LOOP_EXIT.
5192         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
5193         to bb_with_exit_edge_p.
5194         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
5195         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
5196         to bb_with_exit_edge_p.
5197         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
5198         EDGE_LOOP_EXIT.
5199         * tree-loop-linear.c (linear_transform_loops): Do not call
5200         flow_loop_scan.  Use loop->single_exit.
5201         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
5202         (vect_analyze_loop_form): Do not call flow_loop_scan.
5203         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
5204         loop->single_exit.
5205         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
5206         loop->single_exit.
5207         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
5208         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
5209         slpeel_tree_duplicate_loop_to_edge_cfg,
5210         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
5211         Use loop_preheader_edge and loop->single_exit.  Do not call
5212         flow_loop_scan.
5213
5214 2005-03-01  Nick Clifton  <nickc@redhat.com>
5215
5216         * config/arm/arm.c (thumb_find_work_register): Check all of the
5217         argument registers to see if they are free, and a couple of
5218         special cases where the last argument register but can be proved
5219         to be available during the function's prologue.
5220         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
5221         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
5222         thumb_unexpanded_epilogue): Use unsigned long as the type for the
5223         register bit-mask.
5224         (thumb_compute_save_reg_mask): Likewise.  Also use
5225         thumb_find_work_register() to ensure that there is agreement about
5226         which work register is going to be used in the prologue.
5227         (thumb_output_function_prologue): Use unsigned long as the type
5228         for the register bit-mask.  Also delay pushing the link register if
5229         other high registers are going to be pushed.
5230         (thumb_compute_save_reg_mask, emit_multi_reg_push,
5231         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
5232         redundant prototypes.
5233
5234 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
5235
5236         PR target/19819
5237         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
5238         and after reload in REG+REG indexed addresses without REG_POINTER
5239         set in the base and not set in the index.
5240
5241 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5242
5243         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
5244         Don't undefine here.
5245         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
5246         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
5247         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
5248         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
5249         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
5250         Delete.
5251         * config.gcc (sh*-*-linux*): Use config/linux.h.
5252
5253 2005-02-28  Dale Johannesen  <dalej@apple.com>
5254             Stan Shebs  <shebs@apple.com>
5255
5256         Rewrite of 64-bit Darwin structure-by-value pass/return.
5257         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
5258         intoffset, use_stack, named.
5259         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
5260         (rs6000_darwin64_record_arg_advance_flush):  New.
5261         (rs6000_darwin64_record_arg_advance_recurse): New.
5262         (rs6000_darwin64_record_arg_flush):  New.
5263         (rs6000_darwin64_record_arg_recurse):  New.
5264         (rs6000_darwin64_record_arg):  New.
5265         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
5266         (function_arg_boundary):  Handle 128-bit aligned structs.
5267         (function_arg_advance):  Rewrite darwin64 struct handling.
5268         (function_arg):  Call rs6000_darwin64_record_arg.
5269         (function_arg_partial_nregs):  Handle darwin64 structs.
5270         (rs6000_darwin64_function_value):  Remove.
5271         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
5272
5273 2005-02-28  Roger Sayle  <roger@eyesopen.com>
5274
5275         PR tree-optimization/20216
5276         * tree-chrec.c (tree_fold_factorial): Delete.
5277         (tree_fold_binomial): Change argument list to take a return type
5278         and change the type of K to unsigned int.  Rewrite to avoid explicit
5279         evaluation of factorials, and (recursively) calling fold to perform
5280         compile-time arithmetic.  Return NULL on (internal) overflow.
5281         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
5282         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
5283         if any intermediate calculation overflows.
5284         (chrec_apply): Update call to chrec_evaluate.
5285
5286 2005-02-28  James E Wilson  <wilson@specifixinc.com>
5287
5288         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
5289
5290 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
5291
5292         PR c/20245
5293         * c-parser.c (c_parser_compound_statement): Return error_mark_node
5294         instead of NULL_TREE on error.
5295
5296 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
5297
5298         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
5299         (EASY_VECTOR_15_ADD_SELF): Remove.
5300         (num_insns_constant_wide): Not static.
5301         (validate_condition_mode): Not static.
5302         (toc_relative_expr_p): Not static.
5303         (legitimate_indirect_address_p): Not static.
5304         (macho_lo_sum_memory_operand): Not static.
5305         (invalid_e500_subreg): Not static.
5306         (easy_vector_same): Not static.
5307         (easy_vector_splat_const): Not static.
5308         (RS6000_SYMBOL_REF_TLS_P): Remove.
5309         (any_operand): Delete.
5310         (any_parallel_operand): Delete.
5311         (count_register_operand): Delete.
5312         (altivec_register_operand): Delete.
5313         (xer_operand): Delete.
5314         (s8bit_cint_operand): Delete.
5315         (short_cint_operand): Delete.
5316         (u_short_cint_operand): Delete.
5317         (non_short_cint_operand): Delete.
5318         (exact_log2_cint_operand): Delete.
5319         (gpc_reg_operand): Delete.
5320         (cc_reg_operand): Delete.
5321         (cc_reg_not_cr0_operand): Delete.
5322         (reg_or_short_operand): Delete.
5323         (reg_or_neg_short_operand): Delete.
5324         (reg_or_aligned_short_operand): Delete.
5325         (reg_or_u_short_operand): Delete.
5326         (reg_or_cint_operand): Delete.
5327         (reg_or_arith_cint_operand): Delete.
5328         (reg_or_add_cint64_operand): Delete.
5329         (reg_or_sub_cint64_operand): Delete.
5330         (reg_or_logical_cint_operand): Delete.
5331         (got_operand): Delete.
5332         (got_no_const_operand): Delete.
5333         (easy_fp_constant): Delete.
5334         (easy_vector_constant): Delete.
5335         (easy_vector_constant_add_self): Delete.
5336         (zero_constant): Delete.
5337         (zero_fp_constant): Delete.
5338         (volatile_mem_operand): Delete.
5339         (offsettable_mem_operand): Delete.
5340         (mem_or_easy_const_operand): Delete.
5341         (add_operand): Delete.
5342         (non_add_cint_operand): Delete.
5343         (logical_operand): Delete.
5344         (non_logical_cint_operand): Delete.
5345         (mask_operand): Delete.
5346         (mask_operand_wrap): Delete.
5347         (mask64_operand): Delete.
5348         (mask64_2_operand): Delete.
5349         (and64_operand): Delete.
5350         (and64_2_operand): Delete.
5351         (and_operand): Delete.
5352         (reg_or_mem_operand): Delete.
5353         (lwa_operand): Delete.
5354         (symbol_ref_operand): Delete.
5355         (call_operand): Delete.
5356         (current_file_function_operand): Delete.
5357         (input_operand): Delete.
5358         (rs6000_nonimmediate_operand): Delete.
5359         (rs6000_tls_symbol_ref): Delete.
5360         (save_world_operation): Delete.
5361         (restore_world_operation): Delete.
5362         (load_multiple_operation): Delete.
5363         (store_multiple_operation): Delete.
5364         (vrsave_operation): Delete.
5365         (mfcr_operation): Delete.
5366         (mtcrf_operation): Delete.
5367         (lmw_operation): Delete.
5368         (stmw_operation): Delete.
5369         (branch_comparison_operator): Delete.
5370         (branch_positive_comparison_operator): Delete.
5371         (scc_comparison_operator): Delete.
5372         (trap_comparison_operator): Delete.
5373         (boolean_operator): Delete.
5374         (boolean_or_operator): Delete.
5375         (min_max_operator): Delete.
5376         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
5377         (EASY_VECTOR_15): Moved to here.
5378         (EASY_VECTOR_15_ADD_SELF): Move to here.
5379         (PREDICATE_CODES): Delete.
5380         * config/rs6000/rs6000-protos.h: Delete predicate functions.
5381         Declare functions no longer static.
5382         * config/rs6000/predicates.md: New.
5383         * config/rs6000/rs6000.md: Include predicates.md
5384
5385 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5386
5387         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
5388         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
5389         REG_ALWAYS_RETURN.
5390         * cfgrtl.c (need_fake_edge_p): Likewise.
5391         * combine.c (distribute_notes): Likewise.
5392         * emit-rtl.c (try_split): Likewise.
5393         * recog.c (peephole2_opimize): Likewise.
5394         * reg-notes.def (ALWAYS_RETURN): Remove.
5395         * rtl.h (LCT_ALWAYS_RETURN): Remove.
5396         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
5397         * tree.h (ECF_ALWAYS_RETURN): Remove.
5398
5399 2005-02-28  Roger Sayle  <roger@eyesopen.com>
5400
5401         PR middle-end/19874
5402         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
5403         between different machine modes is never a "useless" conversion.
5404
5405 2005-02-28  Geert Bosch  <bosch@gnat.com>
5406
5407         PR ada/15977
5408         * doc/contrib.texi: List contributors for Ada front end
5409
5410 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
5411
5412         * simplify-rtx.c (simplify_unary_operation_1,
5413         simplify_const_unary_operation): New, extracted from...
5414         (simplify_unary_operation): ... this one.
5415         (simplify_binary_operation_1,
5416         simplify_const_binary_operation): New, extracted from...
5417         (simplify_binary_operation): ... this one.
5418         * rtl.h (simplify_const_unary_operation,
5419         simplify_const_binary_operation): Add prototypes.
5420
5421 2005-02-28  Julian Brown  <julian@codesourcery.com>
5422
5423         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
5424         building libjava and caused PR regression/20228.
5425
5426 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
5427
5428         PR bootstrap/17383
5429         * Makefile.in (host_subdir): New.
5430         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
5431         * configure: Regenerate.
5432
5433 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
5434
5435         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
5436         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
5437         installation directory first.
5438
5439 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
5440
5441         PR target/19065.
5442         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
5443         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
5444         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
5445         * config/cris/cris.md: Tweak comments referring to Q.
5446         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
5447         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
5448         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
5449         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
5450         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
5451         Insert spaces in constraints to align alternatives vertically for
5452         readability.
5453         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
5454         operand 1: "M".
5455
5456 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5457
5458         PR rtl-optimization/17728
5459         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
5460         operand 0 from general_operand to move_dest_operand.
5461
5462 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5463
5464         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
5465         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
5466         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
5467         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
5468
5469 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
5470
5471         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
5472         * configure: Regenerate.
5473         * libada-mk.in: Remove CC; rename
5474         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
5475
5476 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
5477
5478         PR tree-opt/20188
5479         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
5480         for the lhs, also walk over the tree.  Likewise for rhs.
5481
5482 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
5483
5484         * tree-ssa-dom.c (simple_iv_increment_p): New function.
5485         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
5486         Do not propagate value of iv before increment over the increment.
5487
5488 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
5489
5490         * c-parser.c: New file.
5491         * c-parse.in: Remove.
5492         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
5493         Remove.
5494         (c-parser.o): Add dependencies.
5495         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
5496         maintainer-clean, TAGS): Update.
5497         * c-config-lang.in (gtfiles): Update.
5498         * gengtype-lex.l: Don't handle "@@".
5499         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
5500         objc_build_synchronized, objc_begin_try_stmt,
5501         objc_begin_catch_clause, objc_finish_catch_clause,
5502         objc_build_finally_clause, objc_finish_try_stmt): New.
5503         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
5504         type_seen_p.
5505         (c_parse_init): Update comment.
5506         * c-decl.c (c_init_decl_processing): Update comment.
5507         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
5508         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
5509         new c_declspecs members.
5510
5511 2005-02-25  Julian Brown  <julian@codesourcery.com>
5512
5513         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
5514         from being used for symbols with vague linkage when
5515         HAVE_GAS_COMDAT_GROUP is true.
5516
5517 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
5518
5519         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
5520
5521 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
5522
5523         PR target/19930
5524         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
5525         (LIBGCC2_HAS_DF_MODE): New.
5526         (LIBGCC2_HAS_XF_MODE): New.
5527         (LIBGCC2_HAS_TF_MODE): New.
5528         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
5529         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
5530         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
5531         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
5532         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
5533         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
5534         and add _fixtfdi, _fixunstfdi, _floatditf
5535         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
5536         L_fixunstfdi, L_floatditf.
5537         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
5538         (LIBGCC2_HAS_TF_MODE): Define.
5539
5540 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
5541
5542         PR tree-optimization/20204
5543         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
5544         REWRITE_THIS_STMT markers on PHI nodes.
5545         (rewrite_initialize_block): Likewise.
5546
5547 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
5548
5549         * version.c (version_string): Update to 4.1.
5550
5551 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
5552
5553         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
5554         Clarify that the alternative way doesn't work in GNU C++.
5555
5556 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
5557
5558         PR tree-optimization/19937
5559         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
5560         to the type of the induction variable.
5561
5562 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
5563
5564         PR rtl-optimization/20117
5565         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
5566         the block including noncopyable insn.
5567
5568 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5569
5570         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
5571         calls to find_reg_note.
5572
5573 2005-02-24  Richard Henderson  <rth@redhat.com>
5574
5575         PR tree-opt/20127
5576         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
5577         the type.
5578
5579 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
5580
5581         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
5582         vector types if to use base reg for misaligned non-word ld/std.
5583
5584 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
5585
5586         PR target/14619
5587         * config/cris/cris.c (cris_target_asm_function_prologue): Create
5588         dwarf2 label manually and put it after, not before the prologue.
5589
5590 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
5591
5592         PR target/19019
5593         * reload.c (operands_match_p): Only increment register number for
5594         SCALAR_INT_MODE_P modes in multiple hard registers.
5595
5596         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
5597         Fix formatting.
5598
5599 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5600
5601         * ChangeLog.5: Fix log message typo(s).
5602         * ChangeLog.7: Likewise.
5603         * ChangeLog.tree-ssa: Likewise.
5604         * cfgexpand.c: Fix comment typo(s).
5605         * conflict.c: Likewise.
5606         * defaults.h: Likewise.
5607         * dwarf2out.c: Likewise.
5608         * gcse.c: Likewise.
5609         * ggc-page.c: Likewise.
5610         * tree-eh.c: Likewise.
5611         * tree-ssa-dom.c: Likewise.
5612
5613 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
5614
5615         PR target/19019
5616         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
5617         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
5618         if SHARED is defined.
5619
5620         PR target/20196
5621         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
5622         allow splitting only if operands 0 and 3 don't overlap.
5623
5624 2005-02-24  Richard Henderson  <rth@redhat.com>
5625
5626         PR middle-end/19953
5627         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
5628         (fold_builtin_1): Call them.
5629         * fold-const.c (fold_complex_mult_parts): Split out from ...
5630         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
5631         (fold_complex_div_parts, fold_complex_div): New.
5632         (fold): Use them.
5633         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
5634
5635 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5636
5637         * tree-ssa-ccp.c (visit_assignment): Verify that result of
5638         VIEW_CONVERT_EXPR is_gimple_min_invariant.
5639
5640         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
5641         (print_node): Likewise.
5642         Print TYPE_SIZES_GIMPLIFIED.
5643
5644 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
5645
5646         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
5647         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
5648         operands as commutative in constraints.
5649
5650 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
5651
5652         * tree-into-ssa.c: Re-organize internal functions.
5653
5654 2005-02-24  Richard Henderson  <rth@redhat.com>
5655
5656         PR middle-end/18902
5657         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
5658         for c99.
5659         * common.opt (fcx-limited-range): New.
5660         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
5661         * toplev.c (flag_complex_method): Initialize to 1.
5662         (process_options): Set flag_complex_method to 0 if
5663         flag_cx_limited_range.
5664         * doc/invoke.texi (-fcx-limited-range): New.
5665
5666 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5667
5668         * cse.c (delete_trivially_dead_insns): Speed up by using
5669         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
5670         prev_real_insn.
5671
5672 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
5673
5674         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
5675         functions when -mid-shared-library is being used.
5676
5677 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
5678
5679         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
5680         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
5681         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
5682         * system.h: Poison LINK_LIBGCC_SPECIAL.
5683
5684 2005-02-23  James E Wilson  <wilson@specifixinc.com>
5685
5686         * gengtype.c (note_insn_name): Make 1 element larger.
5687
5688 2005-02-23  Roger Sayle  <roger@eyesopen.com>
5689
5690         PR target/20018
5691         PR rtl-optimization/20097
5692         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
5693         BImode SUBREGs of SImode registers which confuse the ia64 backend.
5694
5695 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
5696
5697         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
5698         * t-aix52 (SHLIB_INSTALL): Same.
5699
5700 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5701
5702         * genpreds.c: Update copyright.
5703
5704 2005-02-23  Michael Beach  <michaelb@ieee.org>
5705
5706         PR target/20159
5707         * config/sparc/t-elf (startup files): Assemble with CPP.
5708
5709 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
5710
5711         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
5712         (write_predicate_expr): Likewise.
5713
5714 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
5715
5716         PR tree-optimization/20100
5717         PR tree-optimization/20115
5718         * tree-optimize.c (init_tree_optimization_passes): Remove
5719         pass_maybe_create_global_var.
5720         * tree-pass.h (pass_maybe_create_global_var): Remove.
5721         * tree-ssa-alias.c (aliases_computed_p): Declare.
5722         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
5723         (count_calls_and_maybe_create_global_var): Remove.
5724         (pass_maybe_create_global_var): Remove.
5725         (init_alias_info): Do not declare aliases_computed_p.
5726         (maybe_create_global_var): If the function contains no
5727         call-clobbered variables and a mix of pure/const and regular
5728         function calls, create .GLOBAL_VAR.
5729         Mark all call-clobbered variables for renaming.
5730         (merge_pointed_to_info): Update comment.
5731         (add_pointed_to_var): Likewise.
5732         (is_escape_site): Likewise.
5733         Accept struct alias_info * instead of size_t *.
5734         Update all users.
5735         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
5736         as necessary.
5737         * tree-ssa-operands.c (get_call_expr_operands): If
5738         ALIASES_COMPUTED_P is false, do not add call-clobbering
5739         operands.
5740         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
5741         (delete_tree_ssa): Likewise.
5742
5743 2005-02-22  James E Wilson  <wilson@specifixinc.com>
5744
5745         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
5746         (do_compile): Do call it here.
5747
5748 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5749
5750         PR rtl-optimization/20017.
5751         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
5752         rest_of_handle_cse2, rest_of_handle_gcse): Call
5753         delete_dead_jumptables immediately before calling cleanup_cfg.
5754
5755 2005-02-22  Devang Patel  <dpatel@apple.com>
5756
5757         PR 19952
5758         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
5759         all labels
5760
5761 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
5762
5763         * config/rs6000/aix.h (WINT_TYPE): Define.
5764
5765 2005-02-22  Stan Shebs  <shebs@apple.com>
5766
5767         * config/rs6000/rs6000.c (rs6000_override_options): Default to
5768         natural alignment for 64-bit Darwin.
5769         (rs6000_parse_alignment_option): Warn about uses of -malign-power
5770         on 64-bit Darwin.
5771         * doc/invoke.texi: Document this.
5772
5773 2005-02-22  DJ Delorie  <dj@redhat.com>
5774
5775         * c-common.c (c_common_type_for_mode): Pass the mode's precision
5776         to make_[un]signed_type, not the mode itself.
5777
5778 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5779
5780         * cfg.c (cached_make_edge): Call make_edge if edge cache is
5781         not available.  Use tail calls wherever possible.
5782         (make_edge): Call unchecked_make_edge to create an edge.
5783
5784         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
5785         (coalesce_ssa_name): Don't check for
5786         SSANORM_USE_COALESCE_LIST.
5787         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
5788
5789 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
5790
5791         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
5792         (rewrite_into_ssa): ... here.
5793
5794 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
5795
5796         PR tree-optimization/19786
5797         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
5798         tag to another's may-alias bitmap when adding to the other's list.
5799
5800 2005-02-21  DJ Delorie  <dj@redhat.com>
5801
5802         * tree-ssa-loop-ivopts.c (computation_cost): Start register
5803         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
5804         registers in unsupported ways.
5805         * expmed.c (init_expmed): Likewise.
5806
5807 2005-02-21  Stan Cox  <scox@redhat.com>
5808
5809         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
5810
5811 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5812
5813         * tree-cfg.c (fold_cond_expr_cond): New.
5814         (make_edges): Call fold_cond_expr_cond.
5815         (find_taken_edge): Accept nothing but INTEGER_CST.
5816         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
5817         and 1.
5818         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
5819
5820         * flow.c (delete_dead_jumptables): Speed up by scanning insns
5821         that do not belong to any basic block.
5822
5823 2005-02-21  Jeff Law  <law@redhat.com>
5824
5825         * cfganal.c (find_unreachable_blocks): Manually CSE load of
5826         e->dest.
5827
5828 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5829
5830         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
5831         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
5832         Adjust their definitions.
5833         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
5834         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
5835
5836         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
5837         genautomata.c, langhooks.c, langhooks.h, system.h,
5838         config/arm/lib1funcs.asm: Update copyright.
5839
5840 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
5841
5842         * dbxout.c (dbxout_function_end): Emit Lscope label always.
5843
5844 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
5845
5846         PR bootstrap/13770
5847         * doc/install.texi: Document --with-gc.
5848
5849 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
5850
5851         * simplify-rtx.c (simplify_unary_operation): Add a missing
5852         "break" statement.
5853
5854 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
5855
5856         PR tree-optimization/18663
5857         * tree-ssa-dom.c (extract_range_from_cond): Return 0
5858         if the type has variable bounds.
5859
5860 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5861
5862         * gcse.c: Remove an obsolete comment.
5863
5864         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
5865
5866 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
5867
5868         * doc/extend.texi (Function Attributes) <Attribute const>: The
5869         attribute "pure" is below this text, not above.
5870
5871 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5872
5873         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
5874         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
5875         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
5876
5877 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
5878
5879         PR 18785
5880         * langhooks.h (struct lang_hooks): Add to_target_charset.
5881         * langhooks.c (lhd_to_target_charset): New function.
5882         * langhooks-def.h: Declare lhd_to_target_charset.
5883         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
5884         (LANG_HOOKS_INITIALIZER): Update.
5885         * c-common.c (c_common_to_target_charset): New function.
5886         * c-common.h: Declare it.
5887         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
5888         c_common_to_target_charset.
5889
5890         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
5891         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
5892         Delete definitions.
5893         * system.h: Poison them.
5894         * doc/tm.texi: Don't discuss them.
5895         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
5896         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
5897         (pp_c_char): Do not attempt to generate letter escapes for
5898         newline, tab, etc.
5899         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
5900         * config/mips/mips.c (mips_output_ascii): Likewise.
5901
5902 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
5903
5904         PR tree-optimization/19951
5905         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
5906         is abnormal.
5907
5908 2005-02-19  Steven Bosscher  <stevenb@suse.de>
5909
5910         PR middle-end/19698
5911         * function.h (struct function): New field `max_loop_depth'.
5912         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
5913         (flow_loops_find): Reset the max loop depth count before finding loops.
5914         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
5915         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
5916         (calculate_global_regs_live): Make sure the loop will terminate
5917         when the initial sets are not empty.
5918
5919 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
5920
5921         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
5922         object inside.
5923         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
5924
5925 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
5926
5927         PR other/19525
5928         * doc/invoke.texi: Remove documentation of %M spec.
5929         * gcc.c: Likewise.
5930         (init_spec): Remove %M suffix from -lgcc_s.
5931         (do_spec_1): Remove 'M' case.
5932         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
5933         to put shared libraries in the multilib directory.  Remove the
5934         shlib_so_soname substitution variable.  Don't add a multilib encoding
5935         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
5936         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
5937         SHLIB_INSTALL as well as SHLIB_LINK.
5938         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
5939         (SHLIB_NAME): Delete.
5940         (SHLIB_DIR): New macro.
5941         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
5942         (SHLIB_INSTALL): Adjust accordingly.
5943         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
5944         * config/t-slibgcc-sld: Likewise.
5945         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
5946         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
5947         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
5948         in $(SHLIB_DIR).
5949         (SHLIBUNWIND_INSTALL): Adjust accordingly.
5950         * config/i386/t-nwld (SHLIB_SONAME): Delete.
5951         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
5952         Use @shlib_base_name@ instead of @shlib_so_name@.
5953         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
5954         and @shlib_base_name@.so in @multilib_dir@.
5955         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
5956         to the install path.
5957         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
5958         (SHLIB_LINK): Remove previous workaround.
5959         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
5960         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
5961         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
5962         the install path.
5963         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
5964         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
5965         (SHLIB_INSTALL): Adjust accordingly.
5966         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
5967         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
5968         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
5969         config/t-slibgcc-elf-ver.
5970
5971 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
5972             Jakub Jelinek  <jakub@redhat.com>
5973
5974         PR tree-optimization/19828
5975         * tree-ssa-loop-im.c: Add a TODO comment.
5976         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
5977         without side-effects.
5978
5979 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
5980
5981         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
5982         call fold_convert.
5983
5984 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
5985
5986         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
5987         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
5988         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
5989         functions.
5990         (ia64_reorg): Delete fixup_errata call.
5991         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
5992         (TARGET_SWITCHES): Delete -mb-step entry.
5993
5994 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
5995
5996         PR c/20043
5997         * c-typeck.c (composite_type): Handle quals in transparent unions.
5998         (type_lists_compatible_p): Likewise.
5999
6000 2005-02-18  Stan Shebs  <shebs@apple.com>
6001
6002         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
6003         expressions in the .literal8 section.
6004
6005 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
6006
6007         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
6008
6009 2005-02-18  Roger Sayle  <roger@eyesopen.com>
6010
6011         * fold-const.c (constant_boolean_node): Always create values of the
6012         specified type, don't bother calling truthvalue_conversion.
6013
6014 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6015
6016         * except.c (output_function_exception_table): Call
6017         assemble_external_libcall (eh_personality_libfunc).
6018
6019 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6020
6021         PR target/19886
6022         * config/ia64/ia64.h (struct machine_function): Add state_num.
6023         * config/ia64/ia64.c (process_epilogue,
6024         process_for_unwind_directive): Use new unwind state numbers each
6025         time rather than state 1.
6026
6027 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6028
6029         PR target/20054
6030         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
6031         before the "*llgt_didi" pattern.
6032
6033 2005-02-18  Jason Merrill  <jason@redhat.com>
6034
6035         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
6036
6037 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
6038
6039         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
6040         (div0): Use it in place of ARM_FUNC_ALIAS.
6041         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
6042
6043 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
6044
6045         PR middle-end/20030
6046         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
6047         access, the lower bound of the array type if it exists.
6048
6049 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
6050
6051         PR c++/20008
6052         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
6053         cases that are out-of-range for the index type.
6054
6055 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
6056
6057         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
6058         (estimate_case_costs): Don't call convert.
6059         * expmed.c (expand_shift): Likewise.
6060         (make_tree): Call fold_convert instead of convert.
6061
6062 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
6063
6064         PR c++/19813
6065         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
6066         that ref to be marked MEM_READONLY_P doesn't have base that needs
6067         constructing.
6068
6069 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
6070
6071         * genautomata.c (output_get_cpu_unit_code_func,
6072         output_cpu_unit_reservation_p): Don't generate old-style function
6073         definitions.
6074
6075 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
6076
6077         PR c++/20023
6078         PR tree-optimization/20009
6079         * convert.c (convert_to_integer): Revert 2005-02-16 change.
6080
6081         PR tree-optimization/18947
6082         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
6083         inline, remove all nodes that are inlined into the extern inline
6084         being redefined.
6085
6086 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6087
6088         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
6089         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
6090         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
6091         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
6092         Update copyright.
6093
6094 2005-02-17  Roger Sayle  <roger@eyesopen.com>
6095
6096         PR tree-optimization/19917
6097         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
6098         to be potentially trapping.
6099
6100 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6101
6102         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
6103
6104 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
6105
6106         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
6107         tem becomes a local variable which is set to the value of the
6108         back end defined INITIAL_FRAME_ADDRESS macro.
6109         (expand_builtin_frame_address): Omit the base parameter to
6110         expand_builtin_return_addr.
6111         (expand_builtin_profile_func): Likewise.
6112         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
6113         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
6114         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
6115
6116 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
6117
6118         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
6119         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
6120         * config/frv/frv.c (frv_function_epilogue): Likewise.
6121
6122 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
6123
6124         * lambda-code (perfect_nestify): Remove mark/unmark
6125         for rewriting hack.
6126         * tree-loop-linear.c (linear_transform_loops): Add
6127         rewrite_into_ssa call so that ssa is correct for
6128         rewriting into loop closed.
6129
6130 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
6131
6132         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
6133         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
6134         BITMAP_FREE.
6135         * bt-load.c (btr_def_live_range, combine_btr_defs,
6136         migrate_btr_def, migrate_btr_defs): Likewise.
6137         * cfgcleanup.c (thread_jump): Likewise.
6138         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
6139         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
6140         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
6141         df_rd_local_compute, df_reg_info_compute): Likewise.
6142         * dominance.c (init_dom_info, free_dom_info): Likewise.
6143         * flow.c (init_propagate_block_info,
6144         free_propagate_block_info): Likewise.
6145         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
6146         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
6147         modify_reg_pav): Likewise.
6148         * loop-invariant.c (find_defs, find_invariant_insn,
6149         find_invariants, free_inv_motion_data): Likewise.
6150         * predict.c (tree_predict_by_opcode,
6151         estimate_bb_frequencies): Likewise.
6152         * stmt.c (expand_case): Likewise.
6153         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
6154         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
6155         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
6156         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
6157         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
6158         rewrite_ssa_into_ssa): Likewise.
6159         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6160         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
6161         analyze_edges_for_bb, perform_edge_inserts): Likewise.
6162         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
6163         * tree-sra.c (tree_sra): Likewise.
6164         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
6165         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
6166         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
6167         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
6168         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
6169         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
6170         Likewise.
6171         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
6172         calculate_live_on_entry, calculate_live_on_exit,
6173         build_tree_conflict_graph): Likewise.
6174         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
6175         record_important_candidates, set_use_iv_cost, find_depends,
6176         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
6177         tree_ssa_iv_optimize_finalize): Likewise.
6178         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
6179         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
6180         tree_duplicate_loop_to_header_edge): Likewise.
6181         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
6182         * tree-ssa.c (verify_flow_insensitive_alias_info,
6183         verify_name_tags, verify_ssa, init_tree_ssa,
6184         delete_tree_ssa): Likewise.
6185         * tree-ssanames.c (marked_ssa_names, init_ssanames,
6186         fini_ssanames): Likewise.
6187         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
6188
6189 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
6190
6191         * config/rs6000/t-rtems: Completely reworked.
6192
6193 2005-02-17  Ira Rosen  <irar@il.ibm.com>
6194
6195         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
6196
6197 2005-02-17  Ira Rosen  <irar@il.ibm.com>
6198
6199         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
6200         POINTER_TYPE_P when checking that type is a pointer.
6201         (vect_get_memtag): Remove.
6202         (vect_address_analysis): Use POINTER_TYPE_P. Call
6203         vect_object_analysis with dummy parameter for memtag.
6204         (vect_object_analysis): Extract memtag (functionality that
6205         used to be in vect_get_memtag and moved here). Fix printings.
6206         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
6207         with correct parameters. Remove call to vect_get_memtag.
6208
6209 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
6210
6211         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
6212         (tree-vectorizer.o): Added missing dependencies.
6213
6214         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
6215         decleration.
6216         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
6217         declaration in tree-vectorizer.c, now has an extern declaration in
6218         tree-vectorizer.h).
6219         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
6220         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
6221         get_vectype_for_scalar_type, vect_is_simple_use,
6222         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
6223         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
6224         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
6225         vectorizable_store, vectorizable_operation, vectorizable_assignment,
6226         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
6227         find_loop_location): Likewise.
6228
6229         * tree-vectorizer.c (langhooks.h): #include removed.
6230         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
6231         moved to tree-vectorized.h.
6232         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
6233         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
6234         get_vectype_for_scalar_type, vect_is_simple_use,
6235         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
6236         vect_supportable_dr_alignment, new_loop_vec_info,
6237         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
6238         vect_set_verbosity_level, find_loop_location): Likewise.
6239
6240         (vect_analyze_loop): Function externalized. Declaration moved to
6241         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
6242         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
6243         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
6244         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
6245         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
6246         vect_enhance_data_refs_alignment, vect_analyze_operations,
6247         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
6248         vect_stmt_relevant_p, vect_get_loop_niters,
6249         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
6250         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
6251         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
6252         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
6253         vect_get_memtag): Likewise.
6254
6255         (vectorizable_load): Function externalized. Declaration moved to
6256         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
6257         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
6258         vect_transform_loop): Likewise.
6259         (vect_transform_stmt): Moved to tree-vect-transform.c.
6260         (vect_align_data_ref, vect_create_destination_var,
6261         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
6262         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
6263         vect_get_vec_def_for_operand, vect_init_vector,
6264         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
6265         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
6266         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
6267         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
6268         vect_do_peeling_for_loop_bound): Likewise.
6269
6270         * tree-vect-analyze.c: New file.
6271         * tree-vect-transform.c: New file.
6272
6273 2005-02-17  Jason Merrill  <jason@redhat.com>
6274
6275         PR mudflap/19319, c++/19317
6276         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
6277         slot explicit.
6278
6279 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
6280
6281         * doc/install.texi (Specific): Update link for Darwin-specific
6282         tool binary site.
6283
6284 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
6285
6286         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
6287         constant_boolean_node.
6288
6289 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
6290
6291         PR target/19019
6292         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
6293         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
6294
6295 2005-02-16  Richard Henderson  <rth@redhat.com>
6296
6297         PR 19920
6298         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
6299         with W_TYPE_SIZE.
6300         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
6301         replace uses with Wtype_MAXp1_F.
6302         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
6303         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
6304         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
6305         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
6306         and HAVE_TFMODE as appropriate.
6307         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
6308         (__floatdisf): Likewise.
6309         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
6310         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
6311         (Wtype_MAXp1_F): New.
6312         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
6313         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
6314
6315 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
6316
6317         * PR target/19162
6318         * arm.c (arm_apply_result_size): New function.
6319         * arm.h (APPLY_RESULT_SIZE): Define.
6320         * arm-protos.h (arm_apply_result_size): Add prototype.
6321         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
6322         (movxf): New expand.
6323         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
6324         (call_value_symbol): Remove predicate for operand 0.
6325         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
6326         (untyped_call): Rework to correclty return values for any type.
6327         (untyped_return): New expand.
6328         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
6329
6330 2005-02-16  Stan Shebs  <shebs@apple.com>
6331
6332         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
6333         * config/rs6000/t-darwin8: New, for 64-bit multilib.
6334
6335 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
6336
6337         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
6338         configure settings on Solaris 7 and later.
6339
6340 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
6341
6342         PR tree-optimization/19865
6343         * tree-optimize.c (init_tree_optimization_passes): Run
6344         pass_may_alias after pass_sra.
6345
6346 2005-02-16  Richard Henderson  <rth@redhat.com>
6347             Stuart Hastings  <stuart@apple.com>
6348
6349         PR debug/19521
6350         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
6351         Do nothing if debug info suppressed for this function.
6352         (dbxout_begin_function): Early exit if debug info suppressed for
6353         this function.
6354
6355 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
6356
6357         PR target/20007
6358         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
6359         find_basic_blocks.
6360         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
6361
6362         PR tree-optimization/19967
6363         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
6364         expand_builtin_strchr, expand_builtin_strrchr): Take a new
6365         argument TYPE.  Adjust calls to fold_builtin_XXX.
6366         (expand_builtin, fold_builtin_1): Adjust calls to
6367         expand_builtin_XXX.
6368         (fold_builtin_strchr, fold_builtin_strpbrk,
6369         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
6370         result to a requested type TYPE.
6371
6372 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
6373
6374         PR middle-end/19857
6375         * fold-const.c (fold): Don't optimize (T)(x & cst) to
6376         (T)x & (T)cst if (T)cst overflows.
6377         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
6378         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
6379
6380 2005-02-15  Jeff Law  <law@redhat.com>
6381
6382         * gcse.c (blocks_with_calls): New bitmap.
6383         (alloc_gcse_mem): Allocate it.
6384         (free_gcse_mem): Free it.
6385         (clear_modifY_mem_tables): Clear it.
6386         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
6387         when we encounter CALL_INSNs.
6388         (compute_transp, case MEM): Handle blocks with calls separate
6389         from blocks without calls.  Use bitmap iterators rather than
6390         FOR_EACH_BB.
6391
6392 2005-02-15  Peter O'Gorman  <peter@pogma.com>
6393
6394         PR bootstrap/18810
6395         * mklibgcc.in (vis_hide): Use a temporary object file, not
6396         -o /dev/null.
6397
6398 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
6399
6400         PR target/19924
6401         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
6402         access optimization.
6403
6404 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
6405             Alan Modra  <amodra@bigpond.net.au>
6406
6407         PR target/19019
6408         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
6409         (_xlqsub): Rename to __gcc_qsub.
6410         (_xlqmul): Rename to __gcc_qmul.
6411         (_xlqdiv): Rename to __gcc_qdiv.
6412         Provide versioned symbol aliases with old names.
6413         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
6414         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
6415         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
6416         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
6417         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
6418
6419 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
6420
6421         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
6422         Fold ~(A - 1) and ~(A + -1) to -A.
6423
6424 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
6425
6426         PR pch/14940
6427         PR target/19300
6428         * config/host-linux.c (linux_gt_pch_use_address): Copy from
6429         config/pa/pa-host.c:pa_gt_pch_use_address.
6430
6431 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
6432
6433         * tree-vn.c (get_value_handle): Make sure that given an
6434         is_gimple_min_invariant expression, we always return it.
6435
6436 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6437
6438         * passes.c (rest_of_handle_gcse): Fix a comment.
6439
6440 2005-02-15  Jeff Law  <law@redhat.com>
6441
6442         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
6443         bitmap.
6444         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
6445         (canon_list_insert, record_last_mem_set_info): Similarly.
6446         (clear_modify_mem_tables): Similarly.
6447
6448 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6449
6450         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
6451         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
6452         config/mips/mips.md, config/rs6000/aix.h,
6453         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
6454
6455 2005-02-15  Richard Henderson  <rth@redhat.com>
6456
6457         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
6458         call to be best_edge.
6459
6460 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
6461
6462         * basic-block.h: Adjust the prototype for find_basic_blocks.
6463         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
6464         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
6465         find_basic_blocks.
6466
6467         * flow.c (recompute_reg_usage): Remove all arguments.
6468         * passes.c (rest_of_compilation): Adjust the call to
6469         recompute_reg_usage.
6470         * rtl.h: Adjust the prototype for recompute_reg_usage.
6471
6472 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
6473
6474         * tree-dump.c (dump_files): Update to reflect new member
6475         of dump_file_info.
6476         (dump_register): Add new argument.
6477         Set glob name.
6478         (dump_switch_p_1): Check against glob name if doglob was passed.
6479         (dump_switch_p): Check against regular first, then glob if
6480         we didn't have any hits on the dump name.
6481         * tree-optimize.c (register_one_dump_file):
6482         Pass in glob name as well.
6483         * tree-pass.h (struct dump_file_info): Add glob
6484         member.
6485
6486 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
6487
6488         PR preprocessor/16323
6489         * doc/invoke.texi: Document that -Wendif-labels is on by default.
6490
6491 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
6492
6493         PR target/19019
6494         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
6495         (trunctfdf2_internal1): New.
6496         (trunctfdf2_internal2): Renamed from trunctfdf2.
6497
6498 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
6499
6500         PR tree-optimization/19853
6501         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
6502
6503 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
6504
6505         * passes.c (rest_of_handle_loop_optimize): Remove calls to
6506         delete_dead_jumptables and cleanup_cfg.
6507
6508 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
6509
6510         * reload.c (find_reloads): Swap address_reloaded flags when
6511         swapping commutative operands.
6512
6513 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
6514
6515         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
6516         Use standard_iv_increment_position for computing the bsi position
6517         for create_iv.
6518         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
6519         the bsi position.
6520
6521 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
6522
6523         PR target/17428
6524         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
6525         life range of hard registers.
6526         * value-prof.c (insn_prefetch_values_to_profile): Only
6527         scan normal insns.
6528
6529         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
6530         profile in libcalls.
6531
6532 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
6533
6534         * bitmap.h (bitmap_and_compl_into): Return bool.
6535         * bitmap.c (bitmap_and_compl_into): Return changed flag.
6536
6537 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
6538
6539         PR tree-optimization/19944
6540         * fold-const.c (fold): Re-add ABS_EXPR folding.
6541
6542 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
6543
6544         PR target/19019
6545         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
6546         {TARGET,MASK}_XL_COMPAT.
6547         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
6548         MASK_XL_COMPAT.
6549         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
6550         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
6551         TARGET_XL_COMPAT.
6552         (rs6000_arg_partial_bytes): Same.
6553         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
6554         and XL compatibility enabled.
6555         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
6556         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
6557         test to final condition.
6558         (cmptf_internal2): New.
6559         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
6560         xl-compat.  Add TFmode information to description.
6561
6562 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
6563
6564         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
6565
6566 2005-02-13  Jason Merrill  <jason@redhat.com>
6567
6568         PR c++/16405
6569         * fold-const.c (fold_indirect_ref_1): Split out from...
6570         (build_fold_indirect_ref): Here.
6571         (fold_indirect_ref): New fn.
6572         * tree.h: Declare it.
6573         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
6574         (gimplify_modify_expr_rhs): Likewise.
6575         (gimplify_expr): Likewise.
6576
6577 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
6578
6579         PR tree-optimization/14303
6580         PR tree-optimization/15784
6581         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
6582         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
6583         ABS_EXPR<x> != 0 to x != 0.
6584
6585 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
6586
6587         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
6588         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
6589         spelling conventions.
6590
6591         * passes.c (rest_of_handle_gcse): Don't run cse_main and
6592         delete_trivially_dead_insns too many times.
6593
6594         * passes.c (rest_of_handle_gcse): Remove dead assignments to
6595         tem and tem2.
6596
6597 2005-02-12  Ira Rosen  <irar@il.ibm.com>
6598
6599         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
6600         (vect_is_simple_iv_evolution): Remove redundant parameter
6601         and step check.
6602         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
6603         without last parameter.
6604         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
6605         Return pointer step. Call vect_is_simple_iv_evolution without
6606         last parameter. Check only that the step is multiple of size
6607         type. Remove stmt_vinfo updates.
6608         (vect_get_memtag_and_dr): Remove.
6609         (vect_get_memtag): New function.
6610         (vect_address_analysis): New function.
6611         (vect_object_analysis): New function.
6612         (vect_analyze_data_refs): Call vect_object_analysis and
6613         vect_get_memtag. Update stmt_vinfo fields.
6614
6615 2005-02-12  Ira Rosen  <irar@il.ibm.com>
6616
6617         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
6618         exist and are objects. Remove checks for pointer.
6619         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
6620         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
6621         (vect_create_data_ref_ptr): Likewise.
6622         (vect_base_addr_differ_p): New function.
6623         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
6624         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
6625         Don't set the DR_BASE_NAME field of data-ref.
6626         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
6627
6628 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
6629
6630         * optabs.h (enum optab_index): Add new OTI_ldexp.
6631         (ldexp_optab): Define corresponding macro.
6632         * optabs.c (init_optabs): Initialize ldexp_optab.
6633         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
6634         patterns.
6635         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
6636         using ldexp_optab.
6637         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
6638         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
6639
6640         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
6641         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
6642         intrinsics.
6643
6644 2005-02-12  Ira Rosen  <irar@il.ibm.com>
6645
6646         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
6647         to base_address.
6648         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
6649         stmt_vec_info.
6650         (vect_get_base_and_offset): Always return an address.
6651         (vect_create_addr_base_for_vector_ref): Remove treatment for
6652         different data reference types.
6653         (vect_compute_data_ref_alignment): Rename base to base_address in
6654         stmt_vec_info. Get the object in order to force its alignment.
6655         (vect_get_memtag_and_dr): Rename base to base_address in
6656         stmt_vec_info. Extract the object for memtag analysis.
6657
6658 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
6659
6660         PR regression/19898.
6661         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
6662         changes cc_status, use apply modified_in_p to part of cc_status
6663         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
6664         body.
6665
6666 2005-02-11  Richard Henderson  <rth@redhat.com>
6667
6668         * tree-complex.c (expand_complex_libcall): New.
6669         (expand_complex_multiplication): Use it for c99 compliance.
6670         (expand_complex_division): Likewise.
6671         * fold-const.c (fold_complex_add, fold_complex_mult): New.
6672         (fold): Call them.
6673         * builtins.c (built_in_names): Remove const.
6674         * tree.c (build_common_builtin_nodes): Build complex arithmetic
6675         builtins.
6676         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
6677         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
6678         (built_in_names): Remove const.
6679         * c-common.c (c_common_type_for_mode): Handle complex modes.
6680         * flags.h, toplev.c (flag_complex_method): Rename from
6681         flag_complex_divide_method.
6682         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
6683         __mulsc3, __muldc3, __mulxc3, __multc3): New.
6684         * libgcc2.h: Declare them.
6685         * libgcc-std.ver: Export them.
6686         * mklibgcc.in (lib2funcs): Build them.
6687
6688 2005-02-11  Steven Bosscher  <stevenb@suse.de>
6689
6690         PR tree-optimization/19876
6691         Partially revert my change from 2005-01-14
6692         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
6693         (compute_antic): ...and remove the loop here.
6694
6695 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
6696
6697         PR middle-end/19858
6698         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
6699         is number of inner's bits, avoid creating a BIT_FIELD_REF.
6700
6701         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
6702         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
6703
6704 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
6705
6706         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
6707         offsets for the big-endian 32-bit case.
6708
6709 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
6710
6711         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
6712
6713 2005-02-11  Dale Johannesen  <dalej@apple.com>
6714
6715         * cselib.c (cselib_process_insn):  Clear out regs where
6716         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
6717         * reload.c (find_equiv_reg): Ditto.
6718
6719 2005-02-11  Ian Lance Taylor  <ian@airs.com>
6720
6721         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
6722         with no elements.
6723
6724         * tree.c (build_function_type_list): Work correctly if there are
6725         no arguments.
6726
6727 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
6728
6729         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
6730         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
6731         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
6732         TARGET_ZARCH instead of TARGET_64BIT.
6733
6734 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
6735
6736         * config/rs6000/t-rtems:
6737         (MULTILIB_OPTIONS): Remove mcpu=602.
6738         (MUTLILIB_DIRNAMES): Remove m602.
6739         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
6740         Let mcpu=602 match mcpu=603.
6741         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
6742
6743 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6744
6745         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
6746         signal trampolines.
6747
6748 2005-02-10  David Daney  <ddaney@avtrex.com>
6749
6750         * config/alpha/linux-unwind.h: Add exception clause to copyright.
6751         * config/i386/linux-unwind.h: Likewise.
6752         * config/ia64/linux-unwind.h: Likewise.
6753         * config/mips/linux-unwind.h: Likewise.
6754         * config/pa/linux-unwind.h: Likewise.
6755         * config/rs6000/linux-unwind.h: Likewise.
6756         * config/s390/linux-unwind.h: Likewise.
6757         * config/sh/linux-unwind.h: Likewise.
6758         * config/sparc/linux-unwind.h: Likewise.
6759
6760 2005-02-10  Steven Bosscher  <stevenb@suse.de>
6761
6762         PR tree-optimization/17549
6763         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
6764         TER to replace a DEF with its expression if the DEF and the
6765         rhs of the expression we replace into have the same root
6766         variable.
6767
6768 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
6769
6770         * config/mips/mips.md: Fix the placement of the match_scratch in the
6771         lea64 peephole2.
6772
6773 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6774
6775         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
6776         Fix comment typos.
6777
6778 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
6779
6780         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
6781         (strip_offset): Handle addresses.
6782         (add_address_candidates): Use strip_offset.
6783         (difference_cost): Reflect strip_offset change.
6784         (force_var_cost, difference_cost): Strip nops.
6785
6786 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6787
6788         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
6789
6790         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
6791         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
6792         config/cris/cris-protos.h, config/cris/cris.c: Update
6793         copyright.
6794
6795 2005-02-10  Jeff Law  <law@redhat.com>
6796
6797         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
6798         (lookup_avail_expr): Similarly.
6799
6800 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
6801
6802         * builtins.c (fold_builtin_powi): New function.
6803         (fold_builtin_1): Call it.
6804
6805 2005-02-10  Steven Bosscher  <stevenb@suse.de>
6806
6807         PR documentation/19309
6808         * doc/cpp.texi: The __GNUC__ and related predefined macros
6809         are also defined for the "standalone" cpp.
6810         Some non-GCC compilers may also define __GNUC__.
6811
6812 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
6813
6814         PR c/19342
6815         * c-typeck.c (common_type): New routine.  Old common_type renamed
6816         to...
6817         (c_common_type): ...this.
6818         (build_conditional_expr, build_binary_op): Use c_common_type instead
6819         of common_type.
6820
6821 2005-02-10  Steven Bosscher  <stevenb@suse.de>
6822
6823         * doc/md.texi: Replace @samp{length} with @code{length}.
6824
6825 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
6826
6827         PR tree-optimization/18687
6828         * tree-flow.h (find_loop_niter): Declare.
6829         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
6830         Try using scev even for loops with more than one exit.
6831         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
6832         (struct ivopts_data): Added niters field.
6833         (struct nfe_cache_elt): New.
6834         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
6835         functions.
6836         (tree_ssa_iv_optimize_init): Initialize niters cache.
6837         (determine_number_of_iterations): Removed.
6838         (find_induction_variables): Do not call determine_number_of_iterations.
6839         Access niters for single exit through niter_for_single_dom_exit.
6840         (add_iv_outer_candidates): Access niters for single exit through
6841         niter_for_single_dom_exit.
6842         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
6843         number_of_iterations_cond.
6844         (iv_period): New function.
6845         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
6846         (may_replace_final_value): Take data argument.  Use
6847         niter_for_single_dom_exit.
6848         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
6849         (rewrite_use_compare): Pass data to may_eliminate_iv.
6850         (rewrite_use_outer): Pass data to may_replace_final_value.
6851         (free_loop_data): Clean up the niters cache.
6852         (tree_ssa_iv_optimize_finalize): Free the niters cache.
6853         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
6854         * tree-ssa-loop-niter.c (find_loop_niter): New function.
6855         (find_loop_niter_by_eval): Use tree_int_cst_lt.
6856         (num_ending_zeros): Moved to tree.c.
6857         * tree.h (num_ending_zeros): Declare.
6858         * tree.c (num_ending_zeros): Moved from tree.c.
6859
6860 2005-02-09  Richard Henderson  <rth@redhat.com>
6861
6862         * builtins.c (DEF_BUILTIN): Add COND argument.
6863         * tree.h (DEF_BUILTIN): Likewise.
6864         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
6865         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
6866         match.
6867         (DEF_BUILTIN_STUB): New.
6868         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
6869         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
6870         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
6871         * c-common.c (DEF_BUILTIN): Add COND argument.
6872         * tree.c (local_define_builtin): New.
6873         (build_common_builtin_nodes): New.
6874
6875 2005-02-09  Roger Sayle  <roger@eyesopen.com>
6876
6877         * fold-const.c (fold_strip_sign_ops): New function to simplify a
6878         floating point expression ignoring the sign of the result.
6879         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
6880         (fold) <MULT_EXPR>: Use it to simplify x*x.
6881         * tree.h (fold_strip_sign_ops): Prototype here.
6882         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
6883         argument.  Use fold_strip_sign_ops to simplify the first argument.
6884         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
6885         first argument when the second argument is an even integer
6886         constant, but only with -funsafe_math_optimizations.
6887         (fold_builtin_1): Update call to fold_builtin_copysign.
6888
6889 2005-02-09  Ian Lance Taylor  <ian@airs.com>
6890
6891         PR middle-end/19583
6892         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
6893         just check whether EH_FILTER_FAILURE falls through.
6894
6895 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
6896
6897         * gcc/haifa-sched.c (schedule_block): Make queued sched group
6898         insns return to ready list in the next turn.
6899
6900 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
6901
6902         PR middle-end/19402
6903         * builtins.def: New __builtin_powi[lf].
6904         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
6905         (expand_builtin_powi): New function.
6906         (expand_builtin): Dispatch to expand_builtin_powi.
6907         * libgcc2.h: Add prototypes for __builtin_powi[lf].
6908         * libgcc2.c: Add __builtin_powi[lf] implementation.
6909         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
6910         * optabs.h: Add powi_optab.
6911         * optabs.c (init_optabs): Initialize powi_optab.
6912         * doc/extend.texi: Document __builtin_powi[lf].
6913
6914 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
6915
6916         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
6917         exists.
6918
6919 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
6920
6921         PR middle-end/19854
6922         * fold-const.c (try_move_mult_to_index): Remove redundant
6923         type argument.  Create ADDR_EXPR with correct type.
6924         (fold): Update callers of try_move_mult_to_index.  Convert
6925         result to the appropriate type.
6926
6927 2005-02-09  Roger Sayle  <roger@eyesopen.com>
6928
6929         PR target/19597
6930         * config/avr/avr.c (default_rtx_costs): Delete.
6931         (avr_operand_rtx_cost): New function.
6932         (avr_rtx_costs): Completely rewrite.
6933
6934 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
6935
6936         PR target/19806
6937         * config/cris/cris.c (in_code): New variable.
6938         (cris_output_addr_const): Now a static function, a wrapper for
6939         output_addr_const.
6940         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
6941         case from old cris_output_addr_const.
6942         (cris_asm_output_label_ref): Similar for LABEL_REF.
6943         (cris_output_addr_const_extra): Similar for UNSPEC.
6944         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
6945         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
6946         * config/cris/cris-protos.h (cris_output_addr_const): Remove
6947         declaration.
6948         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
6949         (cris_asm_output_label_ref): Declare.
6950
6951 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
6952
6953         PR preprocessor/19801
6954         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
6955         filenames that changed when libcpp was moved to the toplevel.
6956
6957 2005-02-07  Roger Sayle  <roger@eyesopen.com>
6958
6959         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
6960         zero extensions of BImode operands.  Call lowpart_subreg instead
6961         of gen_lowpart_common and gen_lowpart_SUBREG.
6962
6963 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
6964
6965         PR ada/19489
6966         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
6967         * configure.ac: Set cc_for_cross_gnattools.
6968         * configure: Regenerate.
6969
6970 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
6971
6972         PR target/19803
6973         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
6974
6975 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6976
6977         PR debug/19327
6978         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
6979         of nested functions.
6980
6981 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
6982
6983         * doc/extend.texi: Document deprecated extensions allowing
6984         static floating-point members to have initializers and allowing
6985         floating-point literals in integral constant expressions.
6986
6987 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6988
6989         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
6990         config/darwin7.h, config/mips/mips.c,
6991         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
6992         Update copyright.
6993
6994         * cse.c: Update comments.
6995
6996 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
6997
6998         PR middle-end/19775
6999         * builtins.c (fold_builtin_sqrt): Transform
7000         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
7001         pow(x,y*0.5).
7002
7003 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
7004             Dorit Naishlos  <dorit@il.ibm.com>
7005
7006         * doc/invoke.texi (ftree-vectorizer-verbose): New.
7007         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
7008         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
7009         was added.
7010         * tree.h (vect_set_verbosity_level): New extern function declaration
7011         added.
7012         * tree-vectorizer.h (verbosity_levels): New enum type.
7013         * tree-vectorizer.c (vect_debug_stats): Function removed.
7014         (vect_debug_details): Likewise.
7015         (vect_verbosity_level): Global variable was defined and initialized.
7016         (vect_dump): Global variable definition.
7017         (vect_print_dump_info): New function.
7018         (vect_set_dump_settings): New function.
7019         (vect_set_verbosity_level): New function.
7020         (vectorize_loops): Add call to vect_set_dump_settings.
7021
7022         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
7023         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7024         (slpeel_tree_peel_loop_to_edge): Likewise.
7025
7026         (vect_analyze_offset_expr): Call to vect_print_dump_info with
7027         appropriate verbosity level instead of call to vect_debug_details
7028         or vect_debug_stats.
7029         (vect_get_base_and_offset):
7030         (vect_create_addr_base_for_vector_ref):
7031         (get_vectype_for_scalar_type):
7032         (vect_create_data_ref_ptr):
7033         (vect_init_vector):
7034         (vect_get_vec_def_for_operand):
7035         (vect_finish_stmt_generation):
7036         (vectorizable_assignment):
7037         (vectorizable_operation):
7038         (vectorizable_store):
7039         (vectorizable_load):
7040         (vect_transform_stmt):
7041         (vect_update_ivs_after_vectorizer):
7042         (vect_do_peeling_for_loop_bound):
7043         (vect_update_inits_of_drs):
7044         (vect_do_peeling_for_alignment):
7045         (vect_transform_loop):
7046         (vect_is_simple_use):
7047         (vect_analyze_operations):
7048         (vect_is_simple_iv_evolution):
7049         (vect_analyze_scalar_cycles):
7050         (vect_analyze_data_ref_dependence):
7051         (vect_analyze_data_ref_dependences):
7052         (vect_compute_data_ref_alignment):
7053         (vect_enhance_data_refs_alignment):
7054         (vect_analyze_data_refs_alignment):
7055         (vect_analyze_data_ref_access):
7056         (vect_analyze_data_ref_accesses):
7057         (vect_analyze_pointer_ref_access):
7058         (vect_get_memtag_and_dr):
7059         (vect_analyze_data_refs):
7060         (vect_mark_relevant):
7061         (vect_stmt_relevant_p):
7062         (vect_mark_stmts_to_be_vectorized):
7063         (vect_can_advance_ivs_p):
7064         (vect_get_loop_niters):
7065         (vect_analyze_loop_form):
7066         (vect_analyze_loop):
7067         (vectorize_loops): Likewise.
7068
7069         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
7070         (vect_update_inits_of_drs):
7071         (vect_do_peeling_for_alignment):
7072         (vect_transform_loop):
7073         (vect_analyze_operations):
7074         (vect_analyze_scalar_cycles):
7075         (vect_analyze_data_ref_dependences):
7076         (vect_analyze_data_refs_alignment):
7077         (vect_analyze_data_ref_accesses):
7078         (vect_analyze_data_refs):
7079         (vect_mark_stmts_to_be_vectorized):
7080         (vect_get_loop_niters):
7081         (vect_analyze_loop_form):
7082         (vect_analyze_loop): Likewise.
7083         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
7084
7085 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
7086
7087         PR bootstrap/19796
7088         Revert:
7089         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
7090         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
7091         either -ffast-math or -funsafe-math-optimizations is in use.
7092
7093         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
7094         * config/mips/irix-csr.c: New file.
7095         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
7096         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
7097         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
7098         executables.
7099
7100 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
7101
7102         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
7103         redundant, incorrect definitions.
7104
7105         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
7106         expand.
7107         ("*tls_indirect_call"): New, reference hard regs directly.
7108         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
7109
7110 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
7111
7112         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
7113         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
7114
7115 2005-02-06  Roger Sayle  <roger@eyesopen.com>
7116
7117         PR rtl-optimization/19800
7118         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
7119         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
7120         gen_lowpart.
7121
7122 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
7123
7124         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
7125
7126 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
7127
7128         PR other/17135
7129         * doc/invoke.texi: Correct documentation of -freorder-functions.
7130
7131 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
7132
7133         PR other/14402
7134         * doc/invoke.texi: Don't mention gccbug.
7135
7136 2005-02-06  Roger Sayle  <roger@eyesopen.com>
7137             Andrew Pinski  <pinskia@physics.uc.edu>
7138             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
7139
7140         * simplify-rtx.c (simplify_relational_operation_1): Simplify
7141         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
7142         into just (zero_extract:SI FOO (const_int 1) BAR).
7143
7144 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
7145
7146         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
7147         macro locally.  Don't give last revision date.  Use GCC version
7148         number from gcc-common.texi.
7149         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
7150         revision date.  Use GCC version number from gcc-common.texi.
7151         Describe being a library as current state rather than as 3.x
7152         history.
7153         * doc/gcc.texi: Remove last update date.
7154         * doc/gccint.texi: Likewise.  Update copyright dates.
7155         * doc/install.texi: Update copyright dates.
7156
7157 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
7158
7159         PR other/7549
7160         * doc/invoke.texi: Mention for each option included in -Wall that
7161         it is included in -Wall.
7162         * doc/gcc.texi: Update copyright and last modification date.
7163
7164 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
7165
7166         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
7167         unnecessary cast to original induction variable increments.
7168
7169 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
7170
7171         PR tree-optimization/18219
7172         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
7173         in distributed form.
7174
7175 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
7176
7177         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
7178         Set bitpos and offset later in the function.  Do nothing if the
7179         target is a register and if the bitfield lies completely outside
7180         that register.
7181         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
7182         here.  Return an uninitialised register if the source value is stored
7183         in a register and the bitfield lies completely outside that register.
7184
7185 2005-02-06  Steven Bosscher  <stevenb@suse.de>
7186
7187         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
7188         not SET_DEST.
7189
7190 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
7191
7192         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
7193
7194 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
7195
7196         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
7197         * config/darwin8.h: New.
7198         * config/darwin7.h: Update comment.
7199
7200 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
7201             Dorit Naishlos  <dorit@il.ibm.com>
7202
7203         * tree-vectorizer.h (LOC): New type.
7204         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
7205         (loop_line_number): New field in struct _loop_vec_info.
7206         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
7207
7208         * tree-vectorizer.c (input.h): Included.
7209         (find_loop_location): New function.
7210         (vect_debug_stats): Argument changed from loop to LOC. Computation of
7211         loop line number removed.
7212         (vect_debug_details): Likewise.
7213         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
7214
7215         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
7216         call to vect_debug_details/stats changed from loop to loop_loc.
7217         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7218         (slpeel_tree_peel_loop_to_edge): Likewise.
7219
7220         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
7221         changed from NULL to UNKNOWN_LOC.
7222         (vect_get_base_and_offset):
7223         (vect_create_addr_base_for_vector_ref):
7224         (get_vectype_for_scalar_type):
7225         (vect_create_data_ref_ptr):
7226         (vect_init_vector):
7227         (vect_get_vec_def_for_operand):
7228         (vect_finish_stmt_generation):
7229         (vectorizable_assignment):
7230         (vectorizable_operation):
7231         (vectorizable_store):
7232         (vectorizable_load):
7233         (vect_transform_stmt):
7234         (vect_update_ivs_after_vectorizer):
7235         (vect_do_peeling_for_loop_bound):
7236         (vect_do_peeling_for_alignment):
7237         (vect_transform_loop):
7238         (vect_is_simple_use):
7239         (vect_analyze_operations):
7240         (vect_is_simple_iv_evolution):
7241         (vect_analyze_scalar_cycles):
7242         (vect_analyze_data_ref_dependences):
7243         (vect_compute_data_ref_alignment):
7244         (vect_enhance_data_refs_alignment):
7245         (vect_analyze_data_ref_access):
7246         (vect_analyze_data_ref_accesses):
7247         (vect_analyze_pointer_ref_access):
7248         (vect_get_memtag_and_dr):
7249         (vect_analyze_data_refs):
7250         (vect_mark_relevant):
7251         (vect_stmt_relevant_p):
7252         (vect_mark_stmts_to_be_vectorized):
7253         (vect_can_advance_ivs_p):
7254         (vect_get_loop_niters):
7255         (vect_analyze_loop):
7256         (vectorize_loops): Likewise.
7257
7258         (vectorizable_load): Argument in call to vect_debug_details/stats
7259         changed from loop to LOOP_LOC (loop_vinfo).
7260         (vect_transform_loop):
7261         (vect_analyze_operations):
7262         (vect_analyze_scalar_cycles):
7263         (vect_analyze_data_ref_dependence):
7264         (vect_enhance_data_refs_alignment):
7265         (vect_analyze_data_ref_accesses):
7266         (vect_analyze_pointer_ref_access):
7267         (vect_analyze_data_refs):
7268         (vect_analyze_loop): Likewise.
7269
7270         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
7271         changed from loop to loop_loc.
7272
7273         (vect_enhance_data_refs_alignment): Removed unused variable loop.
7274
7275 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
7276             Dorit Naishlos  <dorit@il.ibm.com>
7277
7278         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
7279         declaration added.
7280         (vect_analyze_data_ref_dependences): Likewise.
7281
7282         (vect_is_simple_use): Argument changed from loop structure to
7283         loop_vect_info structure.
7284         (vect_can_advance_ivs_p): Likewise.
7285         (vect_create_index_for_vector_ref): Likewise.
7286         (vect_update_ivs_after_vectorizer): Likewise.
7287         (new_stmt_vec_info): Likewise.
7288
7289         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
7290         changed from loop to loop_vinfo.
7291         (vect_create_data_ref_ptr): First argument in call to
7292         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
7293         (vectorizable_assignment): Second argument in call to vect_is_simple_use
7294         was changed from loop to loop_vinfo.
7295         (vectorizable_operation): Likewise.
7296         (vectorizable_store): Likewise.
7297         (vect_mark_stmts_to_be_vectorized): Likewise.
7298         (vect_do_peeling_for_loop_bound): First argument in call to
7299         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
7300         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
7301         was changed from loop to loop_vinfo.
7302         (vect_analyze_data_ref_dependences): Third argument in call to
7303         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
7304
7305         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
7306         (vect_create_data_ref_ptr): Likewise.
7307         (vect_init_vector): Likewise.
7308         (vect_get_vec_def_for_operand): Likewise.
7309         (vectorizable_assignment): Likewise.
7310         (vectorizable_operation): Likewise.
7311         (vectorizable_store): Likewise.
7312         (vectorizable_load): Likewise.
7313         (vect_update_ivs_after_vectorizer): Likewise.
7314         (vect_is_simple_use): Likewise.
7315         (vect_analyze_data_ref_dependence): Likewise.
7316         (vect_analyze_pointer_ref_access): Likewise.
7317         (vect_can_advance_ivs_p): Likewise.
7318
7319         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
7320         before _stmt_vec_info.
7321         (_stmt_vec_info): Loop field replaced by loop_vec_info.
7322         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
7323         (new_stmt_vec_info): Argument changed from loop structure to
7324         loop_vect_info structure
7325
7326         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
7327         (vect_analyze_offset_expr): Avoid 80 columns overflow.
7328         (vect_create_addr_base_for_vector_ref): Likewise.
7329         (vect_analyze_pointer_ref_access): Likewise.
7330
7331 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
7332
7333         PR tree-opt/19768
7334         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
7335         phi flag if the phi is abnormal.
7336
7337 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
7338
7339         PR tree-opt/19736
7340         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
7341         information for the new statement.
7342
7343 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
7344
7345         PR driver/19117
7346         * gcc.c (main): Include the target in -v output.
7347
7348 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
7349
7350         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
7351         Do not drop the extend if we'd have to add a paradoxical subreg
7352         later.  Include optabs.h and insn-codes.h.
7353         * Makefile.in (combine.o): Depend on $(OPTABS_H).
7354
7355 2005-02-02  Roger Sayle  <roger@eyesopen.com>
7356
7357         PR middle-end/19405
7358         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
7359         * fold-const.c (const_binop): Avoid constant folding floating
7360         point operations in modes that use composite representations.
7361         * simplify-rtx.c (simplify_binary_operation): Likewise.
7362
7363 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
7364
7365         * config/rs6000/altivec.md (altivec_dst): Make the first operand
7366         a REG, not a MEM.
7367         (altivec_dstt): Likewise.
7368         (altivec_dstst): Likewise.
7369         (altivec_dststt): Likewise.
7370         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
7371         of first operand.
7372
7373 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
7374
7375         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
7376         EXPR_LOCUS from orig_cond to the new cond_stmt.
7377         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
7378         the new vec_stmt.
7379
7380 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
7381
7382         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
7383         standard_iv_increment_position. Remove call to bsi_next
7384         (no need to bump the iterator anymore).
7385         (vect_create_index_for_vector_ref): Call
7386         standard_iv_increment_position. Remove second function argument.
7387         (vect_finish_stmt_generation): Remove call to bsi_next
7388         (no need to bump the iterator anymore).
7389         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
7390         to vect_create_index_for_vector_ref.
7391
7392 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
7393
7394         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
7395         phis are used out of the loop.
7396
7397 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
7398
7399         PR c/17807
7400         * c-decl.c (undef_nested_function): New variable.
7401         (pop_scope): Diagnose undefined nested functions.
7402         (finish_function): Don't attempt cgraph processing or genericizing
7403         if current top-level function contained an undefined nested
7404         function.  Reset undef_nested_function at the end of a top-level
7405         function.
7406
7407 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
7408
7409         * tree.c (build_int_cst_type): Take sign of the value into account
7410         when deciding whether sign extend the value.
7411
7412 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
7413
7414         PR c/18502
7415         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
7416         (cpp_options, cc1_options): Change %{std*&ansi} to
7417         %{std*&ansi&trigraphs}.
7418
7419 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7420
7421         * cse.c: Update comments.
7422
7423 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
7424
7425         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
7426         arguments go on the stack.  Do not put complex doubles in odd/even
7427         pairs.
7428
7429 2005-02-02  Steven Bosscher  <stevenb@suse.de>
7430
7431         * doc/invoke.texi: Update the options enabled at -O1, -O2,
7432         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
7433         -ftree-pre, and -fthread-jumps.
7434
7435 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
7436
7437         PR tree-optimization/19578
7438         * tree-flow.h (modified_noreturn_calls): Declare.
7439         (noreturn_call_p): Declare.
7440         * tree-flow-inline.h (noreturn_call_p): New function.
7441         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
7442         * tree-cfg.c (modified_noreturn_calls): New variable.
7443         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
7444         that contain a mid-block noreturn call.
7445         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
7446
7447 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7448
7449         * df.c (df_def_record_1, df_uses_record): Don't use
7450         DF_FOR_REGALLOC.
7451         * df.h (DF_FOR_REGALLOC): Remove.
7452
7453 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
7454
7455         PR c/19435
7456         * c-typeck.c (really_start_incremental_init): Reset
7457         constructor_max_index for arrays of incomplete type.
7458
7459 2005-02-02  Jeff Law  <law@redhat.com>
7460
7461         * gcse.c (struct reg_set): Store the block index where the register
7462         was set rather than the setting insn.
7463         (record_one_set, compute_transp): Corresponding changes.
7464         (pre_insert_copy_insn): Do not call replace_one_set.
7465         (replace_one_set): Remove.
7466
7467 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
7468
7469         PR other/15514
7470         * doc/gcov.texi: Fix typo.
7471
7472 2005-02-01  Richard Henderson  <rth@redhat.com
7473
7474         PR target/19680
7475         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
7476         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
7477         type to bool.
7478         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
7479         * config/i386/i386-protos.h: Update.
7480
7481 2005-02-01  Steven Bosscher  <stevenb@suse.de>
7482
7483         PR tree-optimization/19217
7484         * tree-cfg.c (verify_expr): Use the data field to see if TP was
7485         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
7486         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
7487         that it is walking a PHI node.
7488
7489 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
7490
7491         * doc/extend.texi (Nested Functions): Update.
7492
7493 2005-02-01  Richard Henderson  <rth@redhat.com>
7494
7495         PR 19696
7496         * optabs.c (expand_copysign_absneg): Export.
7497         * optabs.h (expand_copysign_absneg): Declare.
7498         * config/rs6000/rs6000.md (copysigntf3): New.
7499
7500 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
7501
7502         PR tree-optimization/19633
7503         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
7504         * tree-ssa-alias.c (init_alias_info): Initialize.
7505         (merge_pointed_to_info): Set.
7506         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
7507         (dump_points_to_info_for): Show value of pt_null.
7508         (struct count_ptr_d): Declare.
7509         (find_ptr_dereference): Remove.
7510         (ptr_is_dereferenced_by): Remove.
7511         (count_ptr_derefs): New local function.
7512         (count_uses_and_derefs): New local function.
7513         (compute_points_to_and_addr_escape): Call it.  If the number
7514         of dereferences is greater than zero, mark the pointer as
7515         dereferenced.  If there are fewer dereferences than uses of
7516         the pointer, the pointer's value escapes.
7517
7518 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
7519
7520         PR tree-optimization/19670
7521         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
7522         here...
7523         (verify_use): ... set it here, instead.
7524
7525 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
7526
7527         * doc/sourcebuild.texi (Test directives): Fix formatting.
7528
7529         * doc/sourcebuild.texi (Test directives): Describe selector
7530         expressions.
7531
7532 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
7533
7534         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
7535         specific 64-bit CPUs.
7536
7537 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
7538
7539         PR target/16201
7540         * arm.c (arm_eliminable_register): New function.
7541         (adjacent_mem_locations): Don't allow eliminable registers.  Use
7542         HOST_WIDE_INT for address offsets.
7543         * arm-protos.h (arm_eliminable_register): Add prototype.
7544
7545 2005-02-01  Steven Bosscher  <stevenb@suse.de>
7546
7547         PR optimization/15242
7548         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
7549         * basic-block.h (duplicate_computed_gotos): Add prototype.
7550         * bb-reorder.c (duplicate_computed_gotos): New function to
7551         duplicate sufficiently small blocks ending in a computed jump.
7552         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
7553         if not optimizing for size.
7554         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
7555         never do tail merging for blocks ending in a computed jump.
7556         * doc/invoke.texi: Document the max-goto-duplication-insns param.
7557
7558 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
7559
7560         Patch from Richard Sandiford <rsandifo@redhat.com>
7561         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
7562         from inheriting a subreg equivalence with a non-spill register.
7563
7564         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
7565
7566 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
7567
7568         * config/frv/frv.c (movcc_fp_destination_operand): New.
7569         (gpr_or_memory_operand): Fix typo in comment.
7570         (gpr_or_memory_operand_with_scratch): New.
7571         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
7572         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
7573         movcc_fp_destination_operand.
7574         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
7575         Legitimize memory addresses using a scratch register.
7576
7577 2005-01-31  Jeff Law  <law@redhat.com>
7578
7579         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
7580         bitmap a sparse bitmap instead of a simple bitmap.
7581         (mark_def_sites_initialize_block):  Corresponding changes.
7582         (ssa_mark_def_sites_initialize_block): Likewise.
7583         (ssa_mark_phi_uses): Likewise.
7584         (mark_def_site, ssa_mark_def_sites): Likewise.
7585         (mark_def_site_blocks): Likewise.
7586         (rewrite_ssa_into_ssa): Likewise.
7587
7588         * tree-ssa-dom.c (record_cond): Pass correct variable type
7589         for last argument to htab_find_slot_with_hash.
7590
7591         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
7592         effects when optimizing 0 % X.  Do not try to optimize X % 0.
7593
7594 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
7595
7596         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
7597         1_mmalua.
7598
7599 2005-02-01  Eric Christopher  <echristo@redhat.com>
7600
7601         * config/mips/mips.c (override_options): Warn if -mint64
7602         is used.
7603         * doc/invoke.texi (MIPS Options): Document that -mint64 is
7604         deprecated.
7605
7606 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
7607
7608         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
7609         timestamp.
7610         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
7611         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
7612         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
7613         (cached_regno): Initialize to INVALID_REGNUM.
7614         (cse_reg_info_table_size,
7615         cse_reg_info_table_first_uninitialized,
7616         cse_reg_info_timestamp): New.
7617         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
7618         get_cse_reg_info.
7619         (init_cse_reg_info, get_cse_reg_info_1): New.
7620         (get_cse_reg_info): Cache the last look-up.
7621         (new_basic_block): Update the code to clear mappings from
7622         registers to cse_reg_info entries.
7623         (cse_main): Call init_cse_reg_info.
7624
7625         * cse.c (get_cse_reg_info): Update a comment.
7626
7627 2005-01-31  Steven Bosscher  <stevenb@suse.de>
7628
7629         PR c/19333
7630         * c-decl.c (start_decl): Do not warn about arrays of elements with
7631         an incomplete type here.
7632         (grokdeclarator): Do it here by making a pedwarn an error.
7633         * c-typeck.c (push_init_level): If there were previous errors with
7634         the constructor type, do not warn about braces for initializers.
7635         (process_init_element): Likewise for excess initializer elements.
7636
7637 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
7638
7639         * cse.c (delete_trivially_dead_insn): Don't iterate.
7640
7641 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
7642
7643         * config/rs6000/rs6000.md (copysignsf3): New expand.
7644         (copysigndf3): Likewise.
7645
7646 2005-01-31  Steven Bosscher  <stevenb@suse.de>
7647
7648         * recog.c (constrain_operands): Only look for earlyclobber operand
7649         conflicts if an '&' constraint was seen.
7650
7651 2005-01-31  Marc Espie <espie@openbsd.org>
7652
7653         * config.gcc: Don't include embedded systems fragment, switches default
7654         debugging format to ELF.
7655         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
7656         longer pick it up there.
7657
7658 2005-01-31  Dale Johannesen  <dalej@apple.com>
7659
7660         * doc/extend.texi (nested functions): Fix linkage description.
7661         Clarify that static is not allowed.
7662
7663 2005-01-31  Dale Johannesen  <dalej@apple.com>
7664
7665         * config/rs6000/darwin.md (movsf_low_di):  Make work.
7666         (movdf_low_di):  Make work.
7667
7668 2005-01-31  Dale Johannesen  <dalej@apple.com>
7669
7670         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
7671         Make work for 64 bit.
7672
7673 2005-01-31  Roger Sayle  <roger@eyesopen.com>
7674             Dale Johannesen  <dalej@apple.com>
7675
7676         PR middle-end/19650
7677         * fold-const.c (fold_binary_op_with_conditional_arg):
7678         Make types match original operands, before STRIP_NOPS.
7679
7680 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
7681
7682         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
7683         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
7684         (struct gcc_sigcontext): Delete.  Merge contents to..
7685         (struct gcc_ucontext): ..here.
7686         (get_sigcontext): Delete.
7687         (get_regs): New function, like get_sigcontext but return regs ptr.
7688         64-bit version finds regs from r1 to support vdso.
7689         (ppc_linux_aux_vector): New function.
7690         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
7691         and vector regs.
7692
7693 2005-01-31  Ira Rosen  <irar@il.ibm.com>
7694
7695         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
7696         sizetype.
7697         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
7698         redundant fold. Fix misalignment for MINUS_EXPR.
7699         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
7700         (vect_analyze_pointer_ref_access): Likewise.
7701         (vect_get_memtag_and_dr): Likewise.
7702
7703 2005-01-31  Richard Henderson  <rth@redhat.com>
7704
7705         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
7706         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
7707         absnegdf2_i387, absnegxf2_i387): Likewise.
7708
7709 2005-01-31  Richard Henderson  <rth@redhat.com>
7710
7711         PR 19696
7712         * optabs.c (expand_copysign_absneg): New.
7713         (expand_copysign_bit): Split out from ...
7714         (expand_copysign): ... here.  Use expand_copysign_absneg.
7715
7716 2005-01-30  Roger Sayle  <roger@eyesopen.com>
7717
7718         PR middle-end/19697
7719         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
7720         constant as the second operand and a register as the third.
7721
7722 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
7723
7724         PR target/19704
7725         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
7726         that dllimport'd functions do not use all call-clobbered registers
7727         to pass parameters.
7728
7729 2005-01-30  Richard Henderson  <rth@redhat.com>
7730
7731         PR 19696
7732         * optabs.c (expand_absneg_bit): Split out from expand_unop and
7733         expand_abs_nojump and generalize.  Use operand_subword and
7734         emit_no_conflict_block.  Support large modes.
7735         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
7736         back to maximum.
7737         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
7738         negation to subtraction.
7739         (expand_copysign): Check that the format has signed zeros.
7740         Use operand_subword and emit_no_conflict_block.  Support large modes.
7741
7742 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
7743
7744         Fix PR tree-optimization/19624
7745
7746         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
7747         * tree-ssa-pre.c: Add cfgloop.h.
7748         Update comment.
7749         (pre_stats): New member, constified.
7750         (inserted_exprs): New static variable.
7751         (NECESSARY): New macro.
7752         (create_expression_by_pieces): Fold the expression, and
7753         mark it as defaulting to not necessary. Also put in
7754         inserted_exprs.
7755         (fully_constant_expression): New function.
7756         (insert_into_preds_of_block): Modify to not insert phis when we
7757         are playing with induction variables.
7758         Push phis onto the inserted_exprs vector, and mark them as not
7759         necessary by default.
7760         (insert_aux): Call fully_constant_expression on eprime.
7761         If all edges produce the same value, mark it constant.
7762         (mark_operand_necessary): New function.
7763         (remove_dead_inserted_code): New function.
7764         (init_pre): Init loop optimizer to get loop info.
7765         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
7766         (execute_pre): Commit edge inserts, then remove dead code.
7767
7768 2005-01-30  Richard Henderson  <rth@redhat.com>
7769
7770         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
7771         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
7772
7773 2005-01-30  Richard Henderson  <rth@redhat.com>
7774
7775         PR target/19700
7776         * config/i386/i386.c (ix86_expand_copysign): New.
7777         (ix86_split_copysign_const): New.
7778         (ix86_split_copysign_var): Rename from ix86_split_copysign,
7779         rearrange op1/nmask operands.
7780         * config/i386/i386-protos.h: Update.
7781         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
7782         (copysigndf3): Likewise.
7783         (copysignsf3_const, copysigndf3_const): New.
7784         (copysignsf3_var): Rename from copysignsf3, split out splitter
7785         and fix split predicate for X constraint.
7786         (copysigndf3_var): Similarly.
7787
7788 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
7789
7790         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
7791         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
7792         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
7793
7794 2005-01-29  Richard Henderson  <rth@redhat.com>
7795
7796         PR target/19690
7797         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
7798         of # and * in constraints.
7799
7800 2005-01-29  Richard Henderson  <rth@redhat.com>
7801
7802         PR middle-end/19689
7803         * expr.c (store_field): Don't strip sub-mode cast when the input
7804         data is even smaller.
7805
7806 2005-01-29  Richard Henderson  <rth@redhat.com>
7807
7808         PR middle-end/19687
7809         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
7810         union being empty.
7811
7812 2005-01-29  Richard Henderson  <rth@redhat.com>
7813
7814         * combine.c (make_field_assignment): Fix argument order
7815         to gen_int_mode.
7816
7817 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
7818
7819         PR tree-optimization/15791
7820         * fold-const.c (extract_array_ref): New function.
7821         (fold): Fold comparisons between &a[i] and &a[j] or
7822         semantically equivalent trees.
7823
7824 2005-01-29  Jeff Law  <law@redhat.com>
7825
7826         * gcse.c (insert_expr_in_table): Revamp handling of available
7827         and anticipatable occurrence lists to avoid unnecessary list
7828         walking.
7829         (insert_set_in_table): Similarly.
7830
7831 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
7832
7833         * c-common.c (fix_string_type): Just use c_build_qualified_type to
7834         build string type.
7835         (c_build_qualified_type): Build qualified array types with
7836         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
7837         * c-decl.c (c_make_fname_decl): Build unqualified array type
7838         before qualified type.
7839         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
7840         type is qualified, not just if type itself is.  Don't apply
7841         qualifiers to array type when declarator is processed.  Apply
7842         qualifiers to field type whether or not it is an array type.
7843         Don't handle array types specially for applying qualifiers to
7844         variables.
7845         * c-typeck.c (composite_type): Build unqualified element type and
7846         array type when forming composite of array types.
7847         (common_pointer_type, comptypes, comp_target_types,
7848         type_lists_compatible_p, build_indirect_ref, build_array_ref,
7849         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
7850         types.
7851         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
7852         (args2) in variables a1 and a2.
7853
7854 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
7855
7856         * cse.c (n_elements_made, max_elements_made): Remove.
7857         (insert): Don't touch n_elements_made.
7858         (cse_main): Don't touch n_elements_made or max_elements_made.
7859
7860 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
7861
7862         PR target/15384
7863         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
7864         configuration part of dp-bit.c to be lost.
7865
7866 2005-01-28  Roger Sayle  <roger@eyesopen.com>
7867
7868         * expmed.c (expand_mult_highpart_optab): When attempting to use
7869         a non-widening multiplication in a wider mode, the operands need
7870         to be converted (zero or sign extended) to that mode.
7871
7872 2005-01-28  Ian Lance Taylor  <ian@airs.com>
7873
7874         PR middle-end/16558
7875         PR middle-end/19583
7876         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
7877         through if both operands fall through.
7878
7879 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
7880
7881         * cse.c (fold_rtx) <PC>: Don't optimize.
7882
7883 2005-01-28  Jeff Law  <law@redhat.com>
7884
7885         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
7886         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
7887
7888 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
7889
7890         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
7891         cse_reg_info_used_list_end): Remove.
7892         (cse_reg_info_list, cse_reg_info_list_free): New.
7893         (get_cse_reg_info): When allocating an instance of
7894         cse_reg_info, add it to the beginning of the cse_reg_info_list
7895         list.  Remove code to maintain cse_reg_info_used_list.
7896         (new_basic_block): Reset the free list to the beginning of
7897         cse_reg_info_list.
7898
7899 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
7900
7901         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
7902         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
7903         (frv_expand_mdpackh_builtin): New function.
7904         (frv_expand_builtin): Use it to expand __MDPACKH.
7905         * doc/extend.texi (__MDPACKH): Update documentation.
7906
7907 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
7908
7909         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
7910         SSE_FLOAT_MODE_P for use_sse computation.
7911
7912 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
7913
7914         PR target/19663
7915         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
7916
7917 2005-01-27  Richard Henderson  <rth@redhat.com>
7918
7919         * builtins.c (expand_builtin_copysign): New.
7920         (expand_builtin): Call it.
7921         * genopinit.c (optabs): Add copysign_optab.
7922         * optabs.c (init_optabs): Initialize it.
7923         (expand_copysign): New.
7924         * optabs.h (OTI_copysign, copysign_optab): New.
7925         (expand_copysign): Declare.
7926
7927         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
7928         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
7929
7930         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
7931         (ix86_expand_fp_absneg_operator): ... here.
7932         (ix86_split_copysign): New.
7933         * config/i386/i386-protos.h: Update.
7934         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
7935         (copysignsf3, copysigndf3): New.
7936
7937         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
7938         (copysignsf3, ncopysignsf3): New.
7939         (copysigndf3, ncopysigndf3): New.
7940         (copysignxf3, ncopysignxf3): New.
7941         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
7942
7943 2005-01-27  Arend Bayer  <arend.bayer@web.de>
7944             Kazu Hirata  <kazu@cs.umass.edu>
7945
7946         * cse.c: (find_best_addr): Don't call copy_rtx before calling
7947         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
7948         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
7949         NULL_RTX.
7950
7951 2005-01-27  Jeff Law  <law@redhat.com>
7952
7953         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
7954         definitions of SSA_NAMEs which are not being rewritten.
7955         (rewrite_ssa_into_ssa): Only initialize the current definition
7956         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
7957         If checking is enabled, assert that SSA_NAME_AUX is clear for all
7958         SSA_NAMEs before returning.
7959
7960 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
7961
7962         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
7963         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
7964         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
7965         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
7966         config/mips/iris6.h, config/sh/sh.c: Update copyright.
7967
7968 2005-01-27  Steven Bosscher  <stevenb@suse.de>
7969
7970         PR middle-end/17278
7971         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
7972         higher to -O2 and higher.  Likewise for tree PRE.
7973         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
7974         and better.
7975
7976 2005-01-27  Ian Lance Taylor  <ian@airs.com>
7977
7978         PR middle-end/19583
7979         * gimple-low.c (try_catch_may_fallthru): New static function.
7980         (block_may_fallthru): Handle TRY_CATCH_EXPR.
7981         * tree-inline.c (expand_call_inline): Don't warn about reaching
7982         the end of a non-void function being inlined if the function uses
7983         a return slot.
7984
7985 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
7986
7987         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
7988
7989         PR c/18946
7990         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
7991         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
7992         (implicitly_declare): Handle error_mark_node.
7993
7994 2005-01-27  Richard Henderson  <rth@redhat.com>
7995
7996         PR tree-opt/14329
7997         * tree.h (struct tree_decl): Add debug_expr_is_from.
7998         (DECL_DEBUG_EXPR_IS_FROM): New.
7999         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
8000         * dwarf2out.c (dwarf2out_var_location): Update to match.
8001         * tree-outof-ssa.c (create_temp): Likewise.
8002         * var-tracking.c (track_expr_p): Likewise.
8003         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
8004         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
8005         * toplev.c (default_tree_printer): Likewise.
8006
8007 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
8008
8009         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
8010         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
8011
8012 2005-01-27  Steven Bosscher  <stevenb@suse.de>
8013
8014         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
8015         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
8016         ASM_CLOBBERS): Add tree checks.
8017
8018         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
8019         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
8020         * c-common.def (SWITCH_STMT): Update to match.
8021         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
8022         macros instead of SWITCH_EXPR ones.
8023         * c-dump.c (c_dump_tree): Likewise.
8024         * c-gimplify.c (gimplify_switch_stmt): Likewise.
8025         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
8026
8027         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
8028
8029 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
8030
8031         * unwind-dw2.c (execute_stack_op): Add missing cases for
8032         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
8033
8034 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8035
8036         * config.gcc (Obsolete configurations): Remove 'dummy', add
8037         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
8038         sparc-*-openbsd*.
8039
8040 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
8041
8042         PR tree-optimization/19633
8043         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
8044         CALL_EXPRs.
8045         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
8046         are no call-clobbered variables.
8047         * tree-outof-ssa.c (check_replaceable): Return false for calls
8048         with side-effects.
8049
8050 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
8051
8052         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
8053         even for variables with NULL DECL_INITIAL.
8054
8055 2005-01-26  Stuart Hastings  <stuart@apple.com>
8056
8057         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
8058
8059 2005-01-26  Richard Henderson  <rth@redhat.com>
8060
8061         PR middle-end/18008
8062         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
8063         field's type.
8064         * expr.c (store_field): Strip conversions to odd-bit-sized types
8065         if the destination field width matches.
8066
8067 2005-01-26  Richard Henderson  <rth@redhat.com>
8068
8069         * c-decl.c, expmed.c, expr.c: Revert last change.
8070
8071 2005-01-26  Richard Henderson  <rth@redhat.com>
8072
8073         PR middle-end/18008
8074         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
8075         field's type.
8076         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
8077         if we don't need the bits above those present in the current mode.
8078         * expr.c (store_field): Strip conversions to odd-bit-sized types
8079         if the destination field width matches.
8080
8081 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
8082
8083         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
8084         either -ffast-math or -funsafe-math-optimizations is in use.
8085
8086 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
8087
8088         PR target/19293
8089         PR target/19329
8090         * config/avr/avr.c (notice_update_cc): Only set condition code for
8091         ashrqi3 if shift count > 0.
8092         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
8093         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
8094         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
8095         count <= 0 as a no-op, and shift count >= width by copying zero
8096         or sign bit to all bits of the result.
8097         * config/avr/avr.md (all shifts): Add alternatives for zero shift
8098         count, with attribute "length" set to 0 and "cc" set to "none".
8099
8100 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
8101
8102         * doc/invoke.texi: Document -mTLS.
8103
8104         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
8105         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
8106         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
8107         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
8108         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
8109         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
8110         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
8111         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
8112
8113         * configure.ac: Check for a TLS capable gas.
8114
8115         * configure: Regenerate.
8116
8117 2005-01-26  Richard Henderson  <rth@redhat.com>
8118
8119         PR middle-end/18008
8120         * combine.c (make_field_assignment): Simplify store to zero_extract
8121         from a source with an overlapping mask.
8122
8123 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
8124
8125         2004-11-11  Eric Christopher  <echristo@redhat.com>
8126
8127         * config/frv/frv.md: Add fr400_integer automaton. Don't
8128         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
8129         to TYPE_MACC.
8130
8131 2005-01-26  Steven Bosscher  <stevenb@suse.de>
8132
8133         PR middle-end/16585
8134         * cfgbuild.c (make_edges): Do not clear or set
8135         current_function_has_computed_jump.
8136         * function.h (struct function): Remove the has_computed_jump field.
8137         (current_function_has_computed_jump): Do not define.
8138         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
8139         in a computed jump.  Ignore current_function_has_computed_jump.
8140
8141 2005-01-26  Richard Henderson  <rth@redhat.com>
8142
8143         PR middle-end/19515
8144         * expr.c (categorize_ctor_elements): New argument p_must_clear.
8145         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
8146         fully initialized.
8147         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
8148         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
8149         objects into static storage if they have more than one non-zero value.
8150         * tree.h (categorize_ctor_elements): Update decl.
8151
8152 2005-01-26  Steven Bosscher  <stevenb@suse.de>
8153
8154         PR middle-end/19616
8155         * tree.h (CALL_EXPR_TAILCALL): Add comment.
8156         * calls.c (check_sibcall_argument_overlap_1): Revert the change
8157         to this function from 2004-07-10.
8158         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
8159         the current function for tail call optimizations if the address
8160         of one of it its arguments is taken.
8161
8162 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
8163
8164         * cse.c (fold_rtx): Call equiv_constant only when necessary.
8165
8166 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
8167
8168         * function.c (expand_function_end): If current_function_calls_alloca,
8169         emit stack restore in a place that is reached when the function falls
8170         through at the end.
8171
8172 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
8173
8174         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
8175         rule to avoid matching inappropriate suffix rule.
8176
8177 2005-01-26  Jan Hubicka  <jh@suse.cz>
8178
8179         PR tree-optimization/19241
8180         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
8181
8182 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
8183
8184         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
8185         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
8186         of doubling.
8187         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
8188         <sim*>: Always use crt1.o, regardless of N in simN.
8189         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
8190         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
8191         (CRT_CALL_STATIC_FUNCTION): Remove.
8192         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
8193         use crt1.o, regardless of N in simN.
8194         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
8195         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
8196         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
8197         case isystem setting.
8198         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
8199
8200 2005-01-25  Ian Lance Taylor  <ian@airs.com>
8201
8202         * gimple-low.c (block_may_fallthru): Correct handling of
8203         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
8204
8205 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
8206
8207         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
8208         handlers to match indentation; nested under the mtune=* handler.
8209         Similar for mcpu= and march=.
8210
8211 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
8212
8213         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
8214         * config/mips/linux64.h (LIB_SPEC): Likewise.
8215         * config/mn10300/linux.h (LIB_SPEC): Likewise.
8216         * config/sh/linux.h (LIB_SPEC): Likewise.
8217
8218 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
8219
8220         * config/frv/frv.c (frv_legitimize_tls_address): New.
8221         (TARGET_HAVE_TLS): Define.
8222         (FRV_SYMBOL_REF_TLS_P): Define.
8223         (frv_override_options): Handle new register classes.
8224         (frv_legitimate_address_p): Reject tls addresses.
8225         (frv_legitimize_address): Handle TLS addresses.
8226         (gen_inlined_tls_plt): New.
8227         (gen_tlsmoff): New.
8228         (frv_legitimize_tls_address): New.
8229         (unspec_got_name): Add TLS entries.
8230         (got12_operand): Add R_FRV_TLSMOFF12 case.
8231         (frv_emit_move): Fixup TLS addresses.
8232         (frv_emit_movsi): Legitimize TLS addresses.
8233
8234         * config/frv/frv.h (MASK_BIG_TLS): New.
8235         (TARGET_BIG_TLS): New.
8236         (HAVE_AS_TLS): Define.
8237         (TARGET_SWITCHES): Add -mTLS and -mtls options.
8238         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
8239         (REG_CLASS_NAMES): Same.
8240         (REG_CLASS_CONTENTS): Same.
8241         (CONSTRAINT_LEN): New.
8242         (REG_CLASS_FROM_CONSTRAINT): New.
8243         (PREDICATE_CODES): Add symbolic_operand.
8244
8245         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
8246         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
8247         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
8248         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
8249         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
8250         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
8251         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
8252         GR9_REG, GR14_REG, LRREG.
8253         (type): Add load_or_call attribute.
8254         ("load_or_call"): New reservation.
8255         ("call_gettlsoff"): New.
8256         ("tls_indirect_call"): New.
8257         ("tls_load_gottlsoff12"): New.
8258         ("tlsoff_hilo"): New.
8259         ("tls_tlsdesc_ldd"): New.
8260         ("tls_tlsoff_ld"): New.
8261         ("tls_lddi"): New.
8262
8263         * config/frv/frv-protos.h (symbolic_operand): Protoize.
8264
8265         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
8266
8267         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8268         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
8269         * config/frv/frv.c (TLS_BIAS): Define.
8270         (frv_output_dwarf_dtprel): New.
8271
8272 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
8273
8274         PR rtl-optimization/19579
8275         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
8276         both A and B, see if they don't clobber registers the other expr uses.
8277
8278 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
8279
8280         * real.c (do_add): Initialize signalling and canonical members.
8281
8282         * real.c (real_from_integer): Zero out destination.
8283
8284 2005-01-18  Jan Hubicka  <jh@suse.cz>
8285
8286         PR tree-optimize/19337
8287         * tree-inline.c (initialize_inlined_parameters): Copy
8288         saved_static_chain_decl only.
8289
8290 2005-01-25  Richard Henderson  <rth@redhat.com>
8291
8292         PR target/19556
8293         PR target/19584
8294         * config/i386/i386.c (x86_inter_unit_moves): Zero.
8295         (ix86_preferred_reload_class): Rewrite fp-constant section, with
8296         80387 enabled, to return a proper subclass.  Return the subset that
8297         overlaps with GENERAL_REGS for PLUS.
8298         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
8299
8300 2005-01-25  Richard Henderson  <rth@redhat.com>
8301
8302         PR middle-end/19609
8303         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
8304
8305 2005-01-25  Roger Sayle  <roger@eyesopen.com>
8306
8307         * expmed.c (choose_multiplier): Change interface to return the
8308         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
8309         (expand_divmod): Update calls to choose_multiplier.
8310
8311 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8312
8313         PR middle-end/19330
8314         * expmed.c (extract_bit_field): Use adjust_address instead of
8315         gen_lowpart when op0 is a MEM.
8316
8317 2005-01-24  Steven Bosscher  <stevenb@suse.de>
8318
8319         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
8320
8321 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
8322
8323         * config/mips/irix-csr.c: New file.
8324         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
8325         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
8326         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
8327         executables.
8328
8329 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
8330
8331         PR bootstrap/19364
8332         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
8333         sparc/elf.h, add sparc/sp-elf.h.
8334         (sparc-*-rtems*): Likewise.
8335         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
8336         tm-dwarf2.h, add sparc/sp-elf.h.
8337         (sparc86x-*-elf): Likewise.
8338         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
8339         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
8340         TARGET_OS_CPP_BUILTINS.
8341         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
8342         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
8343         Undefine it.
8344         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
8345         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
8346         (SWITCH_TAKES_ARG): Likewise.
8347         (LOCAL_LABEL_PREFIX): Likewise.
8348         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
8349         (TARGET_N_FORMAT_TYPES): Delete.
8350         (TARGET_FORMAT_TYPES): Likewise.
8351         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
8352         * config/sparc/elf.h: Delete.
8353         * config/sparc/sp-elf.h: New file.
8354
8355 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
8356
8357         * tree-flow-inline.h (phi_arg_from_edge): Remove.
8358         * tree-flow.h: Remove the corresponding prototype.
8359         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
8360         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
8361
8362 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
8363
8364         PR target/17751
8365         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
8366         for AIX ABI or ELF -fPIC.
8367         (rs6000_emit_load_toc_table): Don't create toc_section here.
8368         (rs6000_xcoff_file_start): Nor here.
8369
8370 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
8371
8372         * sh.c (ra.h): Don't #include.
8373         (hard_regs_intersect_p): New function, resurrected from ra.c.
8374
8375         * sh.c: Fix 1996 Copyright.
8376
8377 2005-01-24  Richard Henderson  <rth@redhat.com>
8378             Aldy Hernandez  <aldyh@redhat.com>
8379
8380         * regrename.c (note_sets): Handle subregs.
8381
8382 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
8383
8384         PR bootstrap/18058
8385         * genconditions.c (write_header, write_conditions): Elide file if
8386         not GCC >= 3.0.1.
8387
8388 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
8389
8390         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
8391         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
8392         Update copyright.
8393
8394 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
8395
8396         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
8397         expand_builtin_printf, expand_builtin_fprintf,
8398         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
8399         checking against POINTER_TYPE.
8400         (validate_arglist): Handle POINTER_TYPE code by checking
8401         POINTER_TYPE_P.
8402
8403 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
8404
8405         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
8406         init_rtlanal): New.
8407         (for_each_rtx): Call for_each_rtx_1.
8408         * rtl.h (init_rtlanal): Declare.
8409         * toplev.c (backend_init): Call init_rtlanal.
8410
8411 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
8412
8413         * flow.c (propagate_one_insn): Formatting.
8414
8415         PR middle-end/19551
8416         * flow.c (libcall_dead_p): Be more conservative if unsure.
8417         If there are any instructions between insn and call, see if they are
8418         all dead before saying the libcall is dead.
8419
8420 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
8421
8422         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
8423         operand constraint for operand 0.
8424
8425 2005-01-23  Richard Henderson  <rth@redhat.com>
8426
8427         PR 19486
8428         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
8429         edges leading to join block.
8430
8431 2005-01-23  Roger Sayle  <roger@eyesopen.com>
8432
8433         * expmed.c (expand_mult_highpart): Make static.  Change type of
8434         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
8435         (expand_divmod): Updates calls to expand_mult_highpart by using
8436         gen_int_mode to pass a CONST_INT rtx.
8437         * rtl.h (expand_mult_highpart): Remove prototype.
8438
8439 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
8440
8441         * flow.c (regset_bytes, regset_size): Remove.
8442
8443         * cfganal.c: Fix a reference to Harvey's paper.
8444
8445 2005-01-23  Steven Bosscher  <stevenb@suse.de>
8446
8447         PR rtl-optimization/19464
8448         * tree-optimize.c (init_tree_optimization_passes): Add one more
8449         copyrename pass just before out-of-ssa.
8450
8451 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
8452
8453         PR bootstrap/18058
8454         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
8455         * ggc-none.c (ggc_free): Define.
8456
8457 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
8458
8459         * cse.c (max_reg, max_insn_uid): Remove.
8460         (cse_main): Don't access max_reg or max_insn_uid.
8461
8462         * c-common.c (explicit_flag_signed_bitfields,
8463         lang_statement_code_p, lang_expand_function_end): Remove.
8464         * c-common.h: Remove the corresponding declarations.
8465         * c-opts.c (c_common_handle_option): Remove all write access
8466         to explicit_flag_signed_bitfields.
8467
8468         * cgraph.c (cgraph_varpool_n_nodes): Remove.
8469         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
8470         * cgraph.h: Remove the corresponding declaration.
8471
8472         * gcse.c (null_pointer_info): Remove.
8473
8474 2005-01-23  Roger Sayle  <roger@eyesopen.com>
8475             Eric Botcazou  <ebotcazou@libertysurf.fr>
8476
8477         * combine.c (simplify_logical): Only simplify logical expressions
8478         of the form ior(and(x,y),z) by the inverse distributive law if the
8479         result is cheaper than the original.
8480
8481 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
8482
8483         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
8484         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
8485         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
8486         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
8487         config/freebsd-spec.h, config/arm/arm.h,
8488         config/h8300/h8300.md, config/i386/i386.md,
8489         config/i386/predicates.md, config/i386/sse.md,
8490         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
8491         config/vax/vax.md: Fix comment typos.  Follow spelling
8492         conventions.
8493
8494 2005-01-23  Steven Bosscher  <stevenb@suse.de>
8495
8496         * gengtype.c (walk_type): Produce `not equal to' compares for loop
8497         tests, instead of `less than'.
8498
8499 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
8500
8501         * function.c (assign_parm_setup_block): When creating a new stack slot
8502         for a parameter, get its alignment from the parameter's DECL_ALIGN
8503         rather than the type's TYPE_ALIGN.  Make sure that the parameter
8504         is at least word aligned.
8505
8506 2005-01-22  Roger Sayle  <roger@eyesopen.com>
8507
8508         PR middle-end/19378
8509         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
8510
8511 2005-01-22  Richard Henderson  <rth@redhat.com>
8512
8513         PR target/19506
8514         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
8515         in both compare operands.
8516         (movdfcc_1_sse_max): Likewise.
8517         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
8518         (movdfcc_1_sse): Likewise.
8519         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
8520         scratch register as needed.
8521
8522 2005-01-22  Richard Henderson  <rth@redhat.com>
8523
8524         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
8525
8526         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
8527
8528 2005-01-22  Richard Henderson  <rth@redhat.com>
8529
8530         * genopinit.c (optabs): Use smin/smax for floating point too.
8531         * doc/md.texi: Update to match.  Clarify that floating point
8532         results are undefined for +0/-0 and NaN.
8533         * doc/rtl.texi: Likewise.
8534         * rtl.def (SMIN, SMAX): Likewise
8535         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
8536
8537         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
8538         leading 's' to the name.
8539         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
8540         smaxxf3, sminxf3): Likewise.
8541         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
8542         Likewise.
8543
8544 2005-01-22  Paul Brook  <paul@codesourcery.com>
8545
8546         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
8547
8548 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
8549
8550         * config/s390/s390.c (struct processor_costs): New fields
8551         dlgr, dlr, dr, dsgfr, dsgr.
8552         (z900_cost, z990_cost): Values for new fields.
8553         (s390_rtx_costs): New cases MEM und COMPARE in switch
8554         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
8555         DIV, MOD, UDIV, UMOD.
8556
8557 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
8558
8559         * config/s390/s390.md ("doloop_si64"): Reload input value directly
8560         into the register being decremented.
8561         ("doloop_si31", "doloop_di"): Likewise.
8562         ("*doloop_si_long"): Adapt pattern.
8563
8564 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
8565
8566         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
8567         access registers.
8568         (CLASS_MAX_NREGS): Likewise.
8569
8570 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
8571
8572         * doc/tree-ssa.texi (Statement Operands): Add example for new
8573         must-def macro. Note deprecation of old operands interface.
8574
8575 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
8576
8577         PR tree-optimization/19484
8578         * tree-cfg.c (remove_fallthru_edge): New function.
8579         (cleanup_control_flow): Remove fallthru edges from calls that are
8580         now known not to return.
8581
8582 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
8583
8584         Fix PR tree-optimization/19038
8585         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
8586         copies with loop variant ones.
8587
8588 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
8589
8590         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
8591         config/alpha/alpha-protos.h, config/alpha/alpha.h,
8592         config/alpha/alpha.md, config/alpha/predicates.md,
8593         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
8594         config/sparc/sol2.h: Update copyright.
8595
8596         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
8597         first label to see if it is a nonlocal label.
8598
8599 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
8600             Andrew Pinski  <pinskia@physics.uc.edu>
8601
8602         PR target/19491
8603         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
8604         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
8605
8606 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
8607
8608         * config/rs6000/rtems.h: Update copyright.
8609
8610 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
8611
8612         PR target/19548
8613         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
8614         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
8615         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
8616
8617 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8618
8619         PR c/18809
8620         * c-typeck.c (convert_arguments): Check for error_mark_node.
8621
8622 2005-01-21  Ian Lance Taylor  <ian@airs.com>
8623
8624         PR tree-optimization/13000
8625         * tree-inline.c: Include "tree-flow.h".
8626         (expand_call_inline): If warn_return_type, warn if non-void inline
8627         function falls through.
8628         * tree-cfg.c (execute_warn_function_return): Don't warn about
8629         control reaching end if TREE_NO_WARNING is set.  Set
8630         TREE_NO_WARNING.
8631         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
8632         has been lowered.
8633         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
8634         branch if we don't need one.
8635         * c-typeck.c: Include "tree-flow.h"
8636         (c_finish_bc_stmt): Don't add a goto if the current statement
8637         list doesn't fall through to the current point.
8638
8639 2005-01-21  Roger Sayle  <roger@eyesopen.com>
8640
8641         PR rtl-optimization/576
8642         * real.c (real_arithmetic): Change return type from void to bool
8643         to return an indication that the result may be inexact.
8644         * real.h (real_arithmeric): Update prototype.
8645         * fold-const.c (const_binop):  Don't constant fold floating
8646         point expressions when the user specifies -frounding-math and
8647         the result may depend upon the run-time rounding mode.
8648         (fold_convert_const_real_from_real): Clean-up.
8649         (fold_initializer): Ignore flag_rounding_math for initializers.
8650         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
8651         constant fold FP operations with flag_rounding_math if the
8652         result may depend upon the run-time rounding mode.
8653
8654 2005-01-21  Tom Tromey  <tromey@redhat.com>
8655
8656         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
8657
8658 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
8659
8660         * tree-cfg.c: Fix comment typos.
8661
8662 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
8663
8664         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
8665         around the call to rest_of_handle_branch_target_load_optimize.
8666
8667 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
8668
8669         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
8670         (sparc64-*-openbsd*): Likewise.
8671         (sparclite-*-elf*): Include tm-dwarf2.h.
8672         (sparc86x-*-elf*): Likewise.
8673         (sparc64-*-elf*): Likewise.
8674         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
8675         (DBX_DEBUGGING_INFO): Likewise.
8676         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
8677         (PREFERRED_DEBUGGING_TYPE): Likewise.
8678         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
8679         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
8680         (PREFERRED_DEBUGGING_TYPE): Likewise.
8681         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
8682         (PREFERRED_DEBUGGING_TYPE): Likewise.
8683         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
8684
8685 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
8686
8687         PR target/18701
8688         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
8689
8690 2005-01-20  Paul Brook  <paul@codesourcery.com>
8691
8692         * doc/rtl.texi: Document value extension requirements for CONST_INT.
8693
8694 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
8695
8696         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
8697         label is first in a sequence of labels.
8698
8699         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
8700
8701 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
8702             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8703
8704         * doc/sourcebuild.texi (Test Directives): New.
8705
8706 2005-01-20  Roger Sayle  <roger@eyesopen.com>
8707
8708         * real.c (real_floor): Don't leave the result uninitialized when
8709         mode is VOIDMode, but return the unrounded intermediate value.
8710         (real_ceil): Likewise.
8711
8712 2005-01-20  Paul Brook  <paul@codesourcery.com>
8713
8714         * config/arm/arm.md (insv): Use gen_int_mode.
8715
8716 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
8717
8718         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
8719         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
8720         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
8721         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
8722         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
8723
8724 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
8725
8726         Fix PR debug/19124
8727         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
8728         fbreg, so we have to assume we can't.
8729         (loc_descriptor_from_tree_1): Ditto.
8730         (containing_function_has_frame_base): New function.
8731         (add_location_or_const_value_attribute): Use it.
8732         Also try to generate a frame_base from a single element location
8733         list.
8734
8735 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
8736
8737         PR tree-optimization/15349
8738         * timevar.def (TV_TREE_MERGE_PHI): New.
8739         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
8740         PHI_WANTED.
8741         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
8742         calls to tree_forwarder_block_p.
8743         (remove_forwarder_block_with_phi, merge_phi_nodes,
8744         gate_merge_phi, pass_merge_phi): New.
8745         * tree-optimize.c (init_tree_optimization_passes): Add
8746         pass_merge_phi.
8747         * tree-pass.h: Add an extern for pass_merge_phi;
8748
8749 2005-01-20  Richard Henderson  <rth@redhat.com>
8750
8751         PR target/19418
8752         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
8753         (_mm_castps_pd, _mm_castps_si128): New.
8754         (_mm_castsi128_ps, _mm_castsi128_pd): New.
8755
8756 2005-01-20  Richard Henderson  <rth@redhat.com>
8757
8758         PR target/19530
8759         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
8760         __builtin_ia32_vec_init_v2si.
8761         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
8762         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
8763         (ix86_init_mmx_sse_builtins): Create it.
8764         (ix86_expand_builtin): Expand it.
8765         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
8766         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
8767         (vec_extractv2si_0, vec_extractv2si_1): New.
8768
8769 2005-01-20  Richard Henderson  <rth@redhat.com>
8770
8771         PR target/16533
8772         * config/i386/i386.c (ix86_expand_push): New.
8773         * config/i386/mmx.md (push<MMXMODE>1): New.
8774         * config/i386/sse.md (push<SSEMODE>1): New.
8775         * config/i386/i386-protos.h: Update.
8776
8777 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
8778
8779         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
8780         copyright.
8781
8782 2005-01-20  Richard Henderson  <rth@redhat.com>
8783
8784         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
8785         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
8786
8787 2005-01-19  Richard Henderson  <rth@redhat.com>
8788
8789         PR target/19350
8790         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
8791         to V4SFmode in SSE1 fallback load path.
8792
8793 2005-01-19  Richard Henderson  <rth@redhat.com>
8794
8795         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
8796         in QImode expansion to ix86_expand_vector_set.
8797         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
8798
8799 2005-01-19  Richard Henderson  <rth@redhat.com>
8800
8801         PR target/19511
8802         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
8803         subclass of the input class.
8804         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
8805         Always true for cross-SSE1 classes.  Rationalize conditionals.
8806         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
8807         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
8808         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
8809         (movdi_2): Add MMX/SSE zeros.
8810         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
8811         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
8812         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
8813         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
8814         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
8815         (zero_extendsidi2_rex64_1): Remove.
8816         (MOV0 peephole): Check GENERAL_REG_P.
8817
8818 2005-01-19  Richard Henderson  <rth@redhat.com>
8819
8820         PR target/19427
8821         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
8822         shufps elements.
8823         (ix86_expand_vector_extract): Likewise.
8824
8825 2005-01-19  Richard Henderson  <rth@redhat.com>
8826
8827         PR middle-end/19304
8828         * expr.c (emit_move_change_mode): New argument force; use
8829         simplify_gen_subreg if true.
8830         (emit_move_via_alt_mode): Merge into ...
8831         (emit_move_via_integer): ... here.
8832         (emit_move_ccmode): Use emit_move_change_mode directly.
8833
8834 2005-01-19  Richard Henderson  <rth@redhat.com>
8835
8836         PR target/19518
8837         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
8838         (alpha_preferred_reload_class): Handle CONST_VECTOR.
8839         (alpha_emit_set_const_1): Add no_output parameter; don't emit
8840         rtl if true.
8841         (alpha_emit_set_const): Likewise.  Make static.
8842         (alpha_emit_set_long_const): Make static.
8843         (alpha_extract_integer): Split out from alpha_expand_mov.
8844         (alpha_split_const_mov): Likewise.
8845         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
8846         (alpha_legitimate_constant_p): New.
8847         * config/alpha/alpha-protos.h: Update.
8848         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
8849         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
8850         * config/alpha/alpha.md (movsi): Add n alternative.
8851         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
8852         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
8853         (splitters for all of the above): Use alpha_split_const_mov.
8854         * config/alpha/predicates.md (non_add_const_operand): New.
8855         (non_zero_const_operand): New.
8856         (input_operand): Use alpha_legitimate_constant_p after reload.
8857
8858 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
8859
8860         PR tree-optimization/19038
8861         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
8862         (add_candidate): Add ivs with increment in latch only if
8863         allow_ip_end_pos_p is true.
8864         (determine_iv_cost): Use empty_block_p.
8865
8866 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
8867
8868         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
8869         (compute_dominance_frontiers): Ditto.
8870
8871 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
8872
8873         PR target/19529
8874         * config/sh/t-rtems: New.
8875         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
8876
8877 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
8878
8879         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
8880         the offset of the selected field.
8881
8882 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
8883
8884         * tree-cfg.c (remove_forwarder_block): Fix the check to
8885         prevent a nonlocal label from appearing in the middle of a
8886         basic block.
8887
8888 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
8889
8890         PR rtl-optimization/19462
8891         * reorg.c (find_end_label): Create return insn only if
8892         current_function_epilogue_delay_list is empty.
8893
8894 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
8895
8896         * doc/passes.texi: Remove paragraph mentioning new-ra.
8897
8898 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
8899
8900         PR rtl-optimization/15139
8901         * combine.c: Include params.h.
8902         (count_rtxs): New function.
8903         (record_value_for_reg): If replace_rtx would replace at least
8904         2 occurrences of REG in VALUE and TEM is really large, replace REG with
8905         (clobber (const_int 0)) instead of TEM.
8906         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
8907         * params.h (MAX_LAST_VALUE_RTL): New.
8908         * Makefile.in (combine.o): Depend on $(PARAMS_H).
8909         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
8910
8911         PR c/17297
8912         * c-typeck.c (digest_init): Only call build_vector if all constructor
8913         elements are *_CST nodes.
8914         * gimplify.c (gimplify_init_constructor): Likewise.
8915
8916         PR middle-end/19164
8917         * c-typeck.c (digest_init): Only call build_vector if inside_init
8918         is a CONSTRUCTOR.
8919
8920 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
8921
8922         * toplev.c (init_asm_output): Remove dead #ifdef.
8923
8924 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
8925
8926         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
8927
8928 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
8929
8930         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
8931         accessing DECL_FUNCTION_CODE.
8932         * dojump.c (do_jump): Likewise.
8933         * gimplify.c (gimplify_call_expr): Likewise.
8934         * predict.c (expr_expected_value): Likewise.
8935         (strip_builtin_expect): Likewise.
8936         * tree-inline.c (estimate_num_insns_1): Likewise.
8937         * tree-ssa-loop-im.c (stmt_cost): Likewise
8938         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
8939         (tree_expr_nonnegative_p): Likewise.
8940
8941 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
8942
8943         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
8944         variant of the load_pcrel_sym pattern.
8945         * config/sparc/sparc.md (P macro): Move to the top.
8946         (load_pcrel_sym): Macroize using P.
8947         (save_register_window): Likewise.
8948
8949 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
8950
8951         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
8952         ("sordered"): Same.
8953
8954 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
8955
8956         PR C/19472
8957         * c-typeck.c (build_asm_expr): Strip nops off
8958         input memory operands.
8959
8960 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
8961
8962         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
8963         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
8964         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
8965         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
8966
8967 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
8968
8969         PR target/19379
8970         * config/i386/i386.c (override_options): If the 80387 is disabled,
8971         then do not return FP values using FP registers.
8972
8973 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
8974
8975         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
8976         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
8977         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
8978         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
8979         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
8980         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
8981         output.h, postreload-gcse.c, postreload.c, recog.c,
8982         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
8983         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
8984         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
8985         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
8986         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
8987         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
8988         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
8989         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
8990
8991         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8992         config/alpha/alpha.c, config/arm/vfp.md,
8993         config/i386/emmintrin.h, config/i386/i386-modes.def,
8994         config/i386/i386-protos.h, config/i386/i386.h,
8995         config/i386/pmmintrin.h, config/i386/ppro.md,
8996         config/i386/predicates.md, config/i386/xmmintrin.h,
8997         config/i860/i860.c, config/ia64/ia64-modes.def,
8998         config/ia64/ia64-protos.h, config/ia64/ia64.h,
8999         config/ia64/ia64.md, config/ia64/itanium1.md,
9000         config/ia64/itanium2.md, config/ia64/predicates.md,
9001         config/iq2000/iq2000.h, config/mips/linux64.h,
9002         config/rs6000/aix41.h, config/rs6000/aix43.h,
9003         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
9004         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
9005         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
9006         config/sparc/linux64.h, config/sparc/litecoff.h,
9007         config/sparc/sp64-elf.h, config/sparc/sparc.c,
9008         config/sparc/sparc.h, config/sparc/sparc.md,
9009         config/sparc/sysv4-only.h: Update copyright.
9010
9011 2005-01-18  Richard Henderson  <rth@redhat.com>
9012
9013         PR target/19496
9014         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
9015
9016 2005-01-18  Marc Espie  <espie@openbsd.org>
9017         * config/i386/openbsdelf.h: Typo.
9018
9019 2005-01-18  Richard Henderson  <rth@redhat.com>
9020
9021         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
9022         special case for sse.
9023         * config/i386/predicates.md (sse_comparison_operator): Likewise.
9024
9025 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
9026
9027         * tree-inline.c (estimate_num_insns_1): Added cases for
9028         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
9029
9030 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
9031
9032         PR rtl-optimization/19296
9033         * combine.c (simplify_comparison): Rewrite the condition under
9034         which a non-paradoxical SUBREG of a PLUS can be lifted when
9035         compared against a constant.
9036
9037 2005-01-18  Andi Kleen <ak@muc.de>
9038
9039         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
9040         * c.opt (-Wpointer-sign): Add.
9041         * doc/invoke.texi: (-Wpointer-sign): Add.
9042
9043 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
9044
9045         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
9046         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
9047         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
9048         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
9049         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
9050         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
9051         for TARGET_MIX_SSE_I387.
9052         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
9053         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
9054         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
9055         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
9056         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
9057         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
9058         TARGET_MIX_SSE_I387.
9059         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
9060         from expander.
9061
9062 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
9063
9064         PR target/19424
9065         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
9066         Add movaps alternative for xmm reg->reg move.
9067
9068 2005-01-17  Jeff Law  <law@redhat.com>
9069
9070         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
9071         at the end of the main DOM loop rather than just before DOM exits.
9072
9073 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
9074
9075         PR tree-optimization/19121
9076         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
9077         adding aliases to a name tag, also add them to the pointer's
9078         type tag.
9079         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
9080         sensitive alias info at all.  Only check that the two pointers
9081         have compatible pointed-to sets.
9082         * tree-ssa.c (verify_name_tags): Verify that the alias set of
9083         a pointer's type tag is a superset of the alias set of the
9084         pointer's name tag.
9085
9086 2005-01-17  James E Wilson  <wilson@specifixinc.com>
9087
9088         PR target/19357
9089         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
9090         comment to document why.
9091
9092 2005-01-17  Richard Henderson  <rth@redhat.com>
9093
9094         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
9095         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
9096         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
9097         sse2_vmsminv2df3_finite): New.
9098         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
9099         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
9100         Force op1 into register.
9101
9102 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
9103
9104         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
9105         bubblestrap from always rebuilding build directory.
9106
9107 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
9108
9109         * config/s390/s390.md ("*clc"): Remove incorrect '='.
9110         ("*cmpmem_short"): Likewise.
9111
9112 2005-01-17  Steven Bosscher  <stevenb@suse.de>
9113
9114         * basic-block.h: Document BB_* flags.
9115         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
9116         use an sbitmap instead.
9117         * sched-rgn.c (compute_trg_info): Likewise.
9118
9119 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
9120
9121         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
9122         redundant target_cpu_default and extra_parts lines.  Use the default
9123         "from-abi" ISA.
9124         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
9125         (SUBTARGET_EXTRA_SPECS): Delete.
9126         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
9127         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
9128         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
9129         and "n32" for -mabi=n32.
9130
9131 2005-01-17  Ian Lance Taylor  <ian@airs.com>
9132
9133         PR c/5675
9134         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
9135         fold constant variables into initial values.
9136
9137 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
9138
9139         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
9140
9141         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
9142         through the statements backward.
9143
9144 2005-01-17  Ian Lance Taylor  <ian@airs.com>
9145
9146         PR middle-end/13127:
9147         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
9148         a variable set to the return value of the inlined function.
9149
9150 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
9151
9152         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
9153         when modes are tieable.
9154
9155 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
9156
9157         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
9158         of pthread_create to find out if threads are enabled.
9159         * gthr-posix95.h (__gthread_active_p): Likewise.
9160
9161 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
9162
9163         * common.opt (-fnew-ra): Remove.
9164         * ra*.*: Remove.
9165         * toplev.h (flag_new_regalloc): Remove.
9166         * Makefile.in (ra*.*): Don't mention.
9167         * passes.c (rest_of_handle_new_regalloc): Remove.
9168         (rest_of_handle_combine, rest_of_compilation): Always consider
9169         flag_new_regalloc as false.
9170         * doc/invoke.texi: Don't document -fnew-ra.
9171
9172 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
9173
9174         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
9175         last parameter to reg_scan.
9176         * loop.c (loop_optimize): Likewise.
9177         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
9178         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
9179         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
9180         rest_of_handle_gcse, rest_of_handle_loop_optimize,
9181         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
9182         * regclass.c (reg_scan): Likewise, for the declaration.
9183         * rtl.h (reg_scan): Likewise, for the prototype.
9184
9185 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
9186
9187         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
9188         mark_dfs_back_edges.
9189
9190 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
9191
9192         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
9193         (compute_avail): Uses don't go in tmp_gen.
9194
9195 2005-01-16  Steven Bosscher  <stevenb@suse.de>
9196
9197         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
9198         loop to look for a free slot in a page entry.
9199
9200 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9201
9202         PR target/16304
9203         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
9204         * toplev.c (compile_file): Call process_pending_assemble_output_defs
9205         just before targetm.asm_out.file_end.
9206         * tree.h (process_pending_assemble_output_defs): Declare.
9207         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
9208         New functions.
9209         (assemble_alias): Defer generation of assembly code for defines when
9210         TARGET_DEFERRED_OUTPUT_DEFS is true.
9211         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
9212         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
9213         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
9214
9215 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9216
9217         PR target/19336
9218         * pa.c (pa_scalar_mode_supported_p): New function.
9219         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9220         * pa.h (MIN_UNITS_PER_WORD): Add comment.
9221
9222         * pa-protos.h (prefetch_operand): Delete.
9223         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
9224         * pa.c (prefetch_operand): Delete.
9225         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
9226         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
9227         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
9228         and prefetch_nocc_operand.
9229         * pa.md (prefetch): Rework to avoid reload problems handling short
9230         displacements when a cache control completer needs to be provided.
9231         (prefetch_32, prefetch_64): Delete.
9232         (prefetch_cc, prefetch_nocc): New patterns.
9233
9234 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
9235
9236         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
9237
9238 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9239
9240         PR ada/19388
9241         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
9242         exceeds maximum alignment for global common data.
9243         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
9244         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
9245
9246 2004-01-15  Roger Sayle  <roger@eyesopen.com>
9247
9248         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
9249
9250 2004-01-15  Roger Sayle  <roger@eyesopen.com>
9251
9252         * harg-reg-set.h (reg_class_names): Prototype global array.
9253         * regclass.c (reg_class_names): Declare here and initialize to
9254         REG_CLASS_NAMES.
9255         (dump_regclass): Remove local declaration of reg_class_names.
9256         (regclass): Likewise.
9257         * cfg.c (dump_flow_info): Likewise.
9258         * ra-debug.c (reg_class_names): Likewise.
9259         * regrename.c (reg_class_names): Likewise.
9260         * reload.c (reg_class_names): Likewise.
9261         * reload1.c (spill_failure): Likewise.
9262         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
9263
9264 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
9265
9266         * config/s390/s390.md ("reload_outti"): Remove predicate for
9267         output operand.  Abort if operand is not a MEM.
9268         ("reload_outdi", "reload_outdf"): Likewise.
9269
9270 2005-01-15  Marc Espie  <espie@openbsd.org>
9271
9272         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
9273         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
9274         * config/openbsd.h:  Fix C++ includes for native configurations.
9275         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
9276         Add trampoline support.
9277         * config/i386/openbsdelf.h: New.
9278
9279 2005-01-15  Marc Espie  <espie@openbsd.org>
9280
9281         * collect2.c (main): Explicitly parse -dynamic-linker option.
9282
9283 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
9284
9285         PR tree-optimization/19060
9286         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
9287         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
9288         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
9289         and handle extract_range_from_cond returning false.
9290         * fold-const.c (fold): Optimize comparisons with min/max even for
9291         width > HOST_BITS_PER_WIDE_INT.
9292
9293 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
9294
9295         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
9296         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
9297         Remove little endian multilib variants.
9298         Add mips32 multilib variant.
9299
9300 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
9301
9302         * explow.c (copy_all_reg, stabilize): Remove.
9303         * expr.h: Remove the corresponding prototypes.
9304
9305         * rtlanal.c (regs_set_between_p): Remove.
9306         * rtl.h: Remove the corresponding prototype.
9307
9308 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
9309
9310         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
9311         to rs6000_nonimmediate_operand.
9312         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
9313         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
9314         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
9315         rs6000_nonimmediate_operand.
9316         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
9317         rs6000_nonimmediate_operand.
9318
9319 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
9320
9321         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
9322
9323 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
9324
9325         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
9326         on e500v2.
9327         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
9328         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
9329
9330         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
9331         (rs6k_nonimmediate_operand): New.
9332         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
9333         correctly.
9334         (legitimate_lo_sum_address_p): Same.
9335         (rs6000_legitimize_address): Same.
9336         (rs6000_legitimize_reload_address): Same.
9337         (rs6000_legitimate_address): Same.
9338         (spe_build_register_parallel): Pass DF and DC modes in a DI
9339         register.
9340
9341         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
9342         to rs6k_nonimmediate_operand.
9343
9344         * config/rs6000/spe.md ("*frob_df_di"): New.
9345         ("*frob_di_df"): New.
9346         ("*frob_di_df_2"): New.
9347         ("*mov_sidf_e500_subreg0"): New.
9348         ("*mov_sidf_e500_subreg4"): New.
9349         ("*movdf_e500_double"): Change predicate to
9350         rs6k_nonimmediate_operand.
9351
9352 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
9353
9354         * postreload.c (move2add_note_store): Only call
9355         trunc_int_for_mode on scalar integers.
9356
9357 2005-01-14  Steven Bosscher  <stevenb@suse.de>
9358
9359         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
9360         replace BB_VISITED uses.
9361         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
9362         (propagate_necessity): Check the bitmap instead of BB_VISITED.
9363         (tree_dce_done): Free visited_control_parents.
9364         (perform_tree_ssa_dce): Allocate and clear it.
9365         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
9366         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
9367         instead of BB_VISITED.
9368
9369 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
9370
9371         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
9372         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
9373         Remove unused prototypes.
9374
9375 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
9376
9377         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
9378         64-bit register usage.
9379         (spe_func_has_64bit_regs_p): Add FIXME note.
9380
9381 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
9382
9383         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
9384         flag_finite_math_only with flag_unsafe_math_optimizations.
9385
9386 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
9387
9388         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
9389         end-of-stack check.
9390         (__tpf_eh_return): Copy TPF private stack area from the module
9391         boundary stack frame.  Add check for when module addresses are
9392         equal, but no stub address is found.
9393
9394 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
9395
9396         PR target/7525
9397         * arm.h (struct machine_function): Add call_via field.
9398         (thumb_call_via_label): Declare.
9399         * arm.c (thumb_call_via_label): New variable.
9400         (thumb_call_reg_needed): New variable.
9401         (arm_output_function_epilogue): For Thumb code, output any per-function
9402         call-indirect trampolines.
9403         (thumb_call_via_reg): New function.
9404         (arm_file_end): New function.
9405         (TARGET_ASM_FILE_END): Call arm_file_end.
9406         (aof_file_end): Likewise.
9407         * arm-protos.h (thumb_call_via_reg): Declare.
9408         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
9409         thumb_call_via_reg in normal case.
9410
9411 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
9412
9413         PR middle-end/19084
9414         PR rtl-optimization/19348
9415         * recog.c (peephole2_optimize): Do global life update if some peephole
9416         decides it doesn't need at least one of its inputs and that change
9417         influences liveness at the start of the basic block.
9418
9419         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
9420         arguments instead of 1.
9421
9422 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
9423
9424         PR middle-end/18820
9425         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
9426         zero for nested functions needing a static chain or functions
9427         with a non-constant address.
9428
9429 2005-01-13  Roger Sayle  <roger@eyesopen.com>
9430
9431         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
9432         (and (sign_extend X) C) into (zero_extend (and X C)).
9433
9434 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
9435
9436         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
9437
9438 2005-01-13  Richard Henderson  <rth@redhat.com>
9439
9440         PR target/19009
9441         PR target/19250
9442         PR target/19252
9443         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
9444         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
9445         not just TARGET_SSE.
9446         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
9447         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
9448         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
9449         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
9450         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
9451         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
9452         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
9453         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
9454         (movdicc_c_rex64): Rename with '*'.
9455         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
9456         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
9457         (movsfcc_1_387): Rename from movsfcc_1.
9458         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
9459         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
9460         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
9461         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
9462         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
9463         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
9464         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
9465         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
9466         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
9467         sse_movdfcc_const0_4): Remove.
9468         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
9469         recognize min/max early.  Update for changed sse cmove patterns.
9470         (ix86_split_sse_movcc): New.
9471         * config/i386/i386-protos.h: Update.
9472
9473 2005-01-13  Steven Bosscher  <stevenb@suse.de>
9474
9475         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
9476         (fix_stmt_v_may_defs): Likewise.
9477
9478 2005-01-13  Richard Henderson  <rth@redhat.com>
9479
9480         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
9481         for converting the mask.
9482
9483 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
9484
9485         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
9486         definition to 600.
9487
9488 2005-01-13  Richard Henderson  <rth@redhat.com>
9489
9490         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
9491         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
9492         IX86_BUILTIN_MOVDQ2Q): Remove.
9493         (IX86_BUILTIN_VEC_EXT_V4SI): New.
9494         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
9495         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
9496         shuffling.
9497         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
9498         (sse2_pextrw): Fix immediate constraint.
9499         (sse2_loadq, sse2_loadq_rex64): Remove.
9500         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
9501         Use __builtin_ia32_vec_ext_<size>.
9502         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
9503
9504 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
9505
9506         * function.c (assign_parm_setup_block): Look inside original
9507         entry_parm when inspecting PARALLEL.
9508
9509 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
9510             Joel Sherrill  <joel@oarcorp.com>
9511
9512         PR target/19399
9513         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
9514         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
9515         rtems_gxx_recursive_mutex_init.
9516         (__gthread_recursive_mutex_lock): New function.
9517         (__gthread_recursive_mutex_trylock): Likewise.
9518         (__gthread_recursive_mutex_unlock): Likewise.
9519
9520 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
9521
9522         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
9523
9524 2005-01-13  Jan Beulich  <jbeulich@novell.com>
9525
9526         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
9527         (ashrti3_internal): Indicate output is early clobber. Generate result
9528         into output rather than first input. Use move for low word of output
9529         if shift count is exactly 64.
9530         (lshrti3_internal): Likewise.
9531
9532 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
9533
9534         PR target/18329
9535         PR target/18330
9536         * reload1.c (delete_output_reload): Don't delete an output reload
9537         if the pseudo lives longer than a single basic block.  Adjust and
9538         improve wording of comment.
9539
9540 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
9541
9542         PR target/19334
9543         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
9544         of TYPE_SIZE where we mean the number of bytes.
9545
9546 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
9547
9548         * function.c (assign_parm_setup_block): Relax condition on
9549         multi-register optimization.
9550
9551 2005-01-12  Nick Clifton  <nickc@redhat.com>
9552
9553         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
9554         an "in_delay_slot" attribute of "no" to prevent them being used in
9555         delay slots.  This is forbidden because they might generate
9556         exceptions.
9557
9558 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
9559
9560         PR target/19389
9561         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
9562         with r->Y and Y->r.
9563
9564 2005-01-12  Nick Clifton  <nickc@redhat.com>
9565
9566         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
9567         passed on to GAS) but do not define, as GAS no longer supports or
9568         needs the -m2000 option.
9569
9570 2005-01-11  Roger Sayle  <roger@eyesopen.com>
9571
9572         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
9573         type as args of unprototyped builtins aren't automatically promoted.
9574         (fold_builtin_abs): Likewise.
9575
9576 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9577
9578         * Makefile.in: Set a `build-warn' variable.
9579
9580 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
9581
9582         PR tree-optimization/17949
9583         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
9584         (find_interesting_uses_address): Use it.
9585
9586 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
9587
9588         * regrename.c (kill_value): Handle subreg's that won't simplify.
9589
9590 2005-01-11  Richard Henderson  <rth@redhat.com>
9591
9592         PR target/13366
9593         * config/i386/i386.h (enum ix86_builtins): Move ...
9594         * config/i386/i386.c: ... here.
9595         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
9596         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
9597         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
9598         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
9599         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
9600         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
9601         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
9602         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
9603         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
9604         IX86_BUILTIN_LOADDDUP): Remove.
9605         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
9606         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
9607         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
9608         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
9609         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
9610         (ix86_init_builtins): Make static.
9611         (ix86_init_mmx_sse_builtins): Update for changed builtins.
9612         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
9613         if all the modes match.  Otherwise, fake it.
9614         (get_element_number, ix86_expand_vec_init_builtin,
9615         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
9616         (ix86_expand_builtin): Make static.  Update for changed builtins.
9617         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
9618         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
9619         (ix86_expand_vector_init_duplicate): New.
9620         (ix86_expand_vector_init_low_nonzero): New.
9621         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
9622         Split out from ix86_expand_vector_init; handle integer modes.
9623         (ix86_expand_vector_init): Use them.
9624         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
9625         * config/i386/i386-protos.h: Update.
9626         * config/i386/predicates.md (reg_or_0_operand): New.
9627         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
9628         (movv2sf_internal): Likewise.  And a splitter to match them all.
9629         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
9630         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
9631         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
9632         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
9633         (mmx_pinsrw): Fix operand ordering.
9634         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
9635         rather than sse_loadss expander.
9636         (movv2df splitter): Similarly.
9637         (sse_loadss, sse_loadlss): Remove.
9638         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
9639         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
9640         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
9641         (sse3_movddup): Rename with '*'.
9642         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
9643         (sse2_loadsd): Remove.
9644         (vec_dupv2df_sse3): Rename from sse3_loadddup.
9645         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
9646         (sse2_pinsrw): Fix argument ordering.
9647         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
9648         (sse2_stored): Remove 'r' destination.
9649         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
9650         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
9651         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
9652         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
9653         vec_extractv16qi, vec_initv16qi): New.
9654
9655         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
9656         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
9657         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
9658         constructor form.
9659         (_mm_load_pd, _mm_store_pd): Use plain dereference.
9660         (_mm_load_si128, _mm_store_si128): Likewise.
9661         (_mm_load1_pd): Use _mm_set1_pd.
9662         (_mm_load_sd): Use _mm_set_sd.
9663         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
9664         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
9665         (_mm_set_epi64): Use _mm_set_epi64x.
9666         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
9667         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
9668         _mm_setr_epi8): Use _mm_set_foo form.
9669         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
9670         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
9671         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
9672         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
9673         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
9674         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
9675         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
9676         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
9677         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
9678         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
9679         (_mm_movedup_pd): Use _mm_shuffle_pd.
9680         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
9681         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
9682         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
9683         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
9684         Use _mm_setzero_ps.
9685         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
9686         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
9687         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
9688         (_mm_store_ps): Use raw dereference.
9689         (_mm_store1_ps): Use _mm_storeu_ps.
9690         (_mm_storer_ps): Use _mm_store_ps.
9691         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
9692         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
9693
9694 2005-01-11  Stan Shebs  <shebs@apple.com>
9695
9696         * config/rs6000/rs6000.c (machopic_output_stub): Issue
9697         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
9698
9699 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
9700
9701         PR target/18761
9702         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
9703         Skip all DECLs except for FIELD_DECLs.
9704
9705 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
9706
9707         * config/s390/s390.c (override_options): Return error if
9708         -mbackchain, -mpacked-stack and -mhard-float are used together.
9709         (s390_va_start): Remove the backchain && packed-stack special case.
9710         (s390_gimplify_va_arg): Likewise.
9711         * doc/invoke.texi: Remove the ABI incompatibility note.
9712
9713 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
9714
9715         * config/s390/s390.c (struct s390_frame_layout): Remove
9716         save_backchain_p.
9717         (s390_frame_info, s390_emit_prologue): Replace occurrences of
9718         save_backchain_p with TARGET_BACKCHAIN.
9719
9720 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
9721
9722         PR target/18916
9723         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
9724         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
9725         * function.c (locate_and_pad_parm): Set new field.
9726         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
9727         Tweak where_pad test to include "none".  Always set mem align for
9728         stack_parm.
9729         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
9730         not sufficient for type.
9731         (assign_parm_setup_block): If stack_parm is zero on entry, always
9732         make a new stack local.  Block move old stack parm if necessary
9733         to new aligned stack local.
9734         (assign_parm_setup_stack): Use a block move to handle
9735         potentially misaligned entry_parm.
9736         (assign_parms_unsplit_complex): Specify required alignment when
9737         creating stack local.
9738         * calls.c (compute_argument_addresses): Override alignment of stack
9739         arg calculated from its type with the alignment given by
9740         FUNCTION_ARG_BOUNDARY.
9741         (store_one_arg): Likewise.
9742
9743 2005-01-11  Jan Beulich  <jbeulich@novell.com>
9744
9745         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
9746         Change respective itanium_class attribute to ialu.
9747         (shladdp4_internal): New.
9748         * config/ia64/predicates.md (shladd_log2_operand): New.
9749
9750 2005-01-11  Richard Henderson  <rth@redhat.com>
9751
9752         * expr.c (store_constructor): Use rtvec_alloc instead of
9753         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
9754
9755 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
9756
9757         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
9758
9759 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
9760
9761         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
9762         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
9763         (TARGET_RWRELOC): Define.
9764         (ia64_rwreloc_section_type_flags): Delete.
9765         (ia64_section_type_flags): New function.
9766         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
9767         (TARGET_RWRELOC): Define.
9768
9769 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
9770
9771         PR target/18987
9772         * config/ia64/ia64.c (process_set): For alloc insn, only call
9773         process_epilogue is !frame_pointer_needed.
9774
9775 2005-01-10  Roger Sayle  <roger@eyesopen.com>
9776
9777         PR c++/19355
9778         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
9779         unary operator and can't be treated as a binary/comparison operator.
9780
9781 2005-01-10  Richard Henderson  <rth@redhat.com>
9782
9783         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
9784         (ix86_return_in_memory): Likewise.
9785         (function_arg_advance):  Likewise.  Mirror structure in function_arg
9786         for choosing register to advance.
9787
9788 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
9789
9790         * tree-vectorizer.c, tree.def: Fix comment typos.
9791
9792 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
9793
9794         * config/s390/s390.c (struct processor_costs): 4 new fields:
9795         ddbr, ddr, debr, der.
9796         (s390_rtx_costs): More precise handling of divide instructions.
9797
9798 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
9799
9800         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
9801
9802 2005-01-10  Jan Beulich  <jbeulich@novell.com>
9803
9804         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
9805         names resulting from -ffunction-sections/-fdata-sections and linkonce
9806         ones.
9807         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
9808         based on the section name. Rearrange the section name comparison logic
9809         slightly so that each section name is compared against at most once.
9810
9811 2005-01-10  Ben Elliston  <bje@au.ibm.com>
9812
9813         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
9814         targets for which -fPIC reduces limitations on the GOT size.
9815
9816 2005-01-09  Falk Hueffner  <falk@debian.org>
9817
9818         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
9819         X/C1 cmpop C2.
9820
9821 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
9822
9823         PR target/18720
9824         * collect2.c (main): Set aixrtl_flag for -brtl option.
9825         (resolve_lib_name): Search for .so file extension before .a
9826         if aixrtl_flag set.
9827
9828 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
9829
9830         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
9831         (vect_analyze_data_refs_alignment): Add dump prints.
9832
9833 2005-01-09  Ira Rosen  <irar@il.ibm.com>
9834
9835         * tree-vectorizer.c (vect_analyze_offset_expr): Use
9836         expr_invariant_in_loop_p.
9837         Initialize outputs first thing in the function.
9838         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
9839         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
9840         (vect_analyze_pointer_ref_access): Check that the initial condition of
9841         the access function is loop invariant.
9842
9843 2005-01-09  Richard Henderson  <rth@redhat.com>
9844
9845         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
9846         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
9847         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
9848         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
9849         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
9850         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
9851         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
9852         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
9853         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
9854         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
9855         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
9856         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
9857         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
9858         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
9859         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
9860         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
9861         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
9862         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
9863         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
9864         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
9865         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
9866         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
9867         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
9868         mmx_ prefix.
9869         (mmx_clrdi, pavgusb): Remove.
9870         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
9871         with leading sse_ prefix.
9872         * config/i386/sse.md: Receive them.
9873         * config/i386/mmx.md: New file.
9874         (MMXMODE12, MMXMODE24, mmxvecsize): New.
9875         (subrv2sf3): Turn into expander for normal subtraction.
9876         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
9877         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
9878         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
9879         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
9880         commutative; use ix86_binary_operator_ok.
9881         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
9882         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
9883         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
9884         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
9885         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
9886         Macroize from existing patterns; use ix86_binary_operator_ok.
9887         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
9888         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
9889         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
9890         with vec_select+vec_concat.
9891         (mmx_pshufw, mmx_pshufw_1): Likewise.
9892         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
9893         (mmx_uavgv4hi3): Model correctly.
9894         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
9895         _mm_xor_si64): Remove casts.
9896
9897 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
9898
9899         PR tree-optimization/19224
9900         * tree-scalar-evolution.c (get_instantiated_value,
9901         set_instantiated_value): New functions.
9902         (instantiate_parameters_1): Cache the results.
9903         (instantiate_parameters, resolve_mixers): Initialize and free
9904         the cache.
9905
9906 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
9907
9908         * config/i386/i386.md (addhi_4): Correct reference in comment.
9909         (addqi_4): Same.
9910
9911 2005-01-08  Richard Henderson  <rth@redhat.com>
9912
9913         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
9914         (_mm_cvtsi128_si64x): Likewise.
9915         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
9916         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
9917         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
9918         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
9919         * config/i386/i386-protos.h: Update.
9920         * config/i386/i386.c (print_operand): Add 'H'.
9921         (ix86_fixup_binary_operands): Split out from ...
9922         (ix86_expand_binary_operator): ... here.
9923         (ix86_fixup_binary_operands_no_copy): New.
9924         (ix86_expand_fp_absneg_operator): Handle vector mode results.
9925         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
9926         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
9927         (safe_vector_operand): Use CONST0_RTX.
9928         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
9929         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
9930         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
9931         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
9932         special cases.
9933         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
9934         (IX86_BUILTIN_CMPNGESS): New.
9935         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
9936         (attr type): Add sselog1.
9937         (attr unit, attr memory): Handle it.
9938         (movti, movti_internal, movti_rex64): Move near other integer moves.
9939         (movtf, movtf_internal): Move near other fp moves.
9940         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
9941         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
9942         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
9943         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
9944         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
9945         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
9946         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
9947         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
9948         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
9949         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
9950         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
9951         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
9952         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
9953         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
9954         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
9955         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
9956         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
9957         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
9958         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
9959         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
9960         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
9961         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
9962         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
9963         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
9964         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
9965         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
9966         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
9967         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
9968         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
9969         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
9970         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
9971         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
9972         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
9973         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
9974         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
9975         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
9976         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
9977         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
9978         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
9979         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
9980         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
9981         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
9982         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
9983         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
9984         same time.
9985         (SSEPUSH, push<SSEPUSH>): Remove.
9986         (MMXPUSH, push<MMXPUSH>): Remove.
9987         (sse_movaps, sse_movaps_1, sse_movups): Remove.
9988         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
9989         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
9990         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
9991         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
9992         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
9993         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
9994         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
9995         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
9996         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
9997         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
9998         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
9999         (ppro_sse_log_V4SF): Handle sselog1.
10000         * config/i386/predicates.md (const_0_to_1_operand): New.
10001         (const_0_to_255_mul_8_operand): New.
10002         (const_1_to_31_operand): Rename from const_int_1_31_operand.
10003         (const_2_to_3_operand, const_4_to_7_operand): New.
10004         * config/i386/sse.md: New file.
10005         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
10006         (sse_movups): Rename from sse_movups_1.
10007         (sse_loadlss): Rename from sse_loadss_1.
10008         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
10009         from the name.
10010         (negv4sf2): Use ix86_expand_fp_absneg_operator.
10011         (absv4sf2, negv2df, absv2df): New.
10012         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
10013         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
10014         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
10015         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
10016         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
10017         (sse3_addsubv4sf3): Model correctly.
10018         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
10019         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
10020         (sse_movhlps): Model with vec_select+vec_concat.
10021         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
10022         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
10023         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
10024         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
10025         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
10026         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
10027         sse2_pshufhw_1): Likewise.
10028         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
10029         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
10030         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
10031         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
10032         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
10033         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
10034         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
10035         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
10036         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
10037         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
10038         sminv8hi3): Mark commutative
10039         operands.  Use ix86_binary_operator_ok.
10040         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
10041         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
10042         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
10043         sse2_punpcklqdq): Allow operand2 in memory.
10044         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
10045         sse2_movsd): Add memory alternatives.
10046         (sse_storelps): Turn expander into an insn; split after reload.
10047         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
10048         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
10049
10050 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
10051
10052         * configure.ac (DWARF-2 debug_line): Use objdump.
10053         * configure: Regenerate.
10054
10055 2005-01-08  Jeff Law  <law@redhat.com>
10056             Diego Novillo  <dnovillo@redhat.com>
10057
10058         PR tree-optimization/18241
10059         * tree-nrv.c (tree_nrv): Ignore volatile return values.
10060         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
10061         statements with volatile operands.
10062         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
10063         operands after marking a statement with has_volatile_ops.
10064
10065 2005-01-08  Roger Sayle  <roger@eyesopen.com>
10066
10067         * tree.c (int_fits_type_p): Always honor integer constant
10068         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
10069
10070 2005-01-08  Roger Sayle  <roger@eyesopen.com>
10071
10072         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
10073         the latent bug in rtl_delete_block has been resolved.
10074
10075 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
10076
10077         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
10078         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
10079
10080 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
10081
10082         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
10083         library as @multilib_dir@/$(SHLIB_SONAME).
10084
10085 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10086
10087         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
10088         * configure: Regenerate.
10089
10090 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
10091
10092         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
10093         TYPE_MODE.
10094
10095 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
10096
10097         PR target/13674
10098         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
10099         Convert non-word aligned offset address using ld/std into
10100         indirect address.
10101
10102 2005-01-07  Richard Henderson  <rth@redhat.com>
10103
10104         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
10105
10106 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
10107
10108         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
10109
10110 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
10111
10112         PR tree-optimization/19283
10113         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
10114         is not shorter than the original type.
10115
10116         PR rtl-optimization/19012
10117         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
10118
10119         PR rtl-optimization/18861
10120         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
10121         (FULL_STATE): Define.
10122         (mark_tablejump_edge): New function.
10123         (purge_dead_tablejump_edges): New function.
10124         (find_bb_boundaries): Use it.
10125
10126         PR tree-optimization/18828
10127         * builtins.c (expand_builtin_next_arg): Remove argument and all
10128         the argument checking.
10129         (expand_builtin): Adjust caller.
10130         (expand_builtin_va_start): Likewise.  Remove error for too many
10131         arguments.
10132         (fold_builtin_next_arg): Issue error for too many arguments.
10133         After checking arguments, replace them with magic arguments that
10134         prevent further checking of the args.
10135
10136 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10137
10138         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
10139
10140 2005-01-06  Roger Sayle  <roger@eyesopen.com>
10141
10142         PR target/6077
10143         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
10144         and %{.S:...} (and their negative variants) to test whether the
10145         input file is assembler or pre-processed-assembler independent of
10146         the actual filename extension.
10147
10148 2005-01-06  Roger Sayle  <roger@eyesopen.com>
10149
10150         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
10151         of sign or zero extended values.
10152
10153 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
10154
10155         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
10156         for IBM long double format correctly.
10157
10158 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
10159
10160         Fix PR tree-optimization/18792
10161
10162         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
10163         to first_loop_depth, and use loop depth instead of loop number.
10164         (build_classic_dir_vector): Ditto.
10165         (compute_data_dependences_for_loop): Use depth, not loop number.
10166         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
10167         number. Pass in loops, instead of loop numbers.
10168         (gather_interchange_stats): Ditto.
10169         (linear_transform_loops): Ditto.
10170
10171 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
10172
10173         PR rtl-opt/13299
10174         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
10175         biv_fits_mode_p, extension_within_bounds_p): New functions.
10176         (check_ext_dependent_givs): Use them.
10177
10178 2005-01-06  Roger Sayle  <roger@eyesopen.com>
10179
10180         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
10181         more than one barrier, in which case we should delete them all.
10182
10183 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
10184
10185         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
10186
10187 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
10188
10189         Fix PR middle-end/19286
10190         Fix PR debug/19267
10191         * dwarf2out.c (gen_subprogram_die): If we've already tried to
10192         output this subprogram, simply ignore this attempt to do it again.
10193         (add_abstract_origin_attribute): Don't abort trying to add the abstract
10194         origin attribute if it's not possible.
10195         (gen_block_die): Don't ignore subblocks of "unused" blocks.
10196         (decls_for_scope): Ditto.
10197         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
10198         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
10199
10200 2005-01-05  Richard Henderson  <rth@redhat.com>
10201
10202         PR target/11327
10203         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
10204         (bdesc_2arg): Use it.
10205         (ix86_expand_binop_builtin): Force operands into registers
10206         when optimizing.
10207         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
10208         ix86_expand_sse_compare, ix86_expand_sse_comi,
10209         ix86_expand_builtin): Likewise.
10210
10211 2005-01-05  Richard Henderson  <rth@redhat.com>
10212
10213         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
10214         and VEC_SELECT.
10215         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
10216         (mulv4hi3): Set itanium_class mmmul.
10217         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
10218         (fpack): Rename from fpack_sfsf.
10219
10220 2005-01-05  Richard Henderson  <rth@redhat.com>
10221
10222         PR rtl-opt/10692
10223         * reload1.c (do_input_reload): Restrict the optimization deleteing
10224         a previous output reload to RELOAD_FOR_INPUT.
10225
10226 2005-01-05  Steven Bosscher  <stevenb@suse.de>
10227
10228         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
10229         comment that we fall through after case.
10230         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
10231         (distribute_links): Likewise.
10232         * cse.c (cse_insn): Likewise.
10233         * cselib.c (cselib_invalidate_mem): Likewise.
10234         * df.c: Update comments at the top of the file.
10235         (read_modify_subreg_p): Update comments here too.
10236         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
10237         * flow.c (mark_set_1): Likewise.
10238         (mark_used_regs): Likewise.
10239         * gcse.c (mems_conflict_for_gcse_p): Likewise.
10240         (canon_list_insert): Likewise.
10241         (mark_set): Likewise.
10242         (try_replace_reg): Likewise.
10243         (store_killed_in_insn): Likewise.
10244         * loop.c (count_one_set): Likewise.
10245         (basic_induction_var): Likewise.
10246         * postreload-gcse.c (find_mem_conflicts): Likewise.
10247         * postreload.c (reload_combine_note_store): Likewise.
10248         (move2add_note_store): Likewise.
10249         * reload.c (find_equiv_reg): Likewise.
10250         (mark_referenced_resources): Likewise.
10251         * rtlanal.c (set_noop_p): Likewise.
10252         (note_stores): Likewise.
10253         (note_uses): Likewise.
10254         * sched-deps.c (sched_analyze_1): Likewise.
10255         * sched-rgn.c (check_live_1): Likewise.
10256         (update_live_1): Likewise.
10257         * config/i860/i860.c: Likewise.
10258
10259         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
10260         an lvalue.
10261         (ZERO_EXTRACT): Mention that this one can be an lvalue.
10262
10263         * doc/rtl.texi: Update documentation for bit-fields and SET.
10264
10265 2005-01-05  Roger Sayle  <roger@eyesopen.com>
10266
10267         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
10268
10269 2005-01-05  Jan Hubicka  <jh@suse.cz>
10270             Richard Henderson  <rth@redhat.com>
10271
10272         PR target/18910
10273         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
10274         with an offset.
10275
10276 2005-01-05  Richard Henderson  <rth@redhat.com>
10277
10278         PR target/12902
10279         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
10280         (sse_shufps): Change operand 3 to const_int_operand.
10281         (sse2_storelps): Fix typo in template.
10282         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
10283         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
10284         (ix86_expand_builtin): Likewise.
10285
10286 2005-01-05  Julian Brown  <julian@codesourcery.com>
10287
10288         * config/arm/arm.c (arm_return_in_memory): Treat complex types
10289         as aggregates for AAPCS ABIs.
10290
10291 2005-01-05  Stan Shebs  <shebs@apple.com>
10292
10293         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
10294         Mach-O getters if ppc64.
10295         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
10296         size argument.
10297         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
10298         signed four-byte field for global code case.
10299         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
10300
10301 2005-01-05  Roger Sayle  <roger@eyesopen.com>
10302
10303         PR middle-end/19100
10304         * c-common.c: Include real.h.
10305         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
10306         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
10307         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
10308         * Makefile.in (c-common.o): Update dependencies.
10309
10310 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
10311
10312         * c-parse.in (asm_string): Add trailing semicolon.
10313
10314 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
10315
10316         * c-parse.in (asm_string): New.  Don't allow wide strings in
10317         'asm'.
10318         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
10319         asm_string instead of STRING.
10320
10321 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
10322
10323         * c-typeck.c (constructor_no_implicit): Remove.
10324         (set_designator, process_init_element): Don't check
10325         constructor_no_implicit.
10326
10327 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
10328             Kaz Kojima  <kkojima@gcc.gnu.org>
10329
10330         PR target/16482
10331         * lcm.c (create_pre_exit): New.
10332         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
10333         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
10334
10335 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
10336
10337         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
10338         -msoft-float in target_float_switch.
10339         * arm.c (arm_override_options): Fix processing of target_float_switch.
10340
10341 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
10342
10343         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
10344         preferencing.
10345
10346 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
10347
10348         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
10349         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
10350
10351 2005-01-04  Roger Sayle  <roger@eyesopen.com>
10352
10353         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
10354         if deleting the then-block allows the test-block to fallthru to the
10355         else-block.
10356
10357 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
10358
10359         PR c/19152
10360         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
10361         after the full declaration if the are in two different TUs.
10362
10363 2005-01-04  Richard Henderson  <rth@redhat.com>
10364
10365         PR tree-opt/19158
10366         * tree-sra.c (generate_one_element_init): Just
10367         call gimplify_and_add.
10368         (generate_element_init): Record the
10369         new referenced variables and mark them for renaming
10370         and split out to ...
10371         (generate_element_init_1): This.
10372         (scalarize_init): Don't call push_gimplify_context/
10373         pop_gimplify_context.
10374
10375 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
10376
10377         * toplev.c (get_src_pwd): Handle failure of getpwd().
10378
10379 2005-01-04  Roger Sayle  <roger@eyesopen.com>
10380
10381         * fold-const.c (fold_single_bit_test): Delete unreachable handling
10382         of TRUTH_NOT_EXPR.
10383         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
10384         all the cases handled by it are inverted by invert_truthvalue.
10385
10386 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10387
10388         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
10389         (save_register_windowsi): Likewise.
10390
10391 2005-01-04  Richard Henderson  <rth@redhat.com>
10392
10393         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
10394
10395 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
10396
10397         PR middle-end/17767
10398         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
10399         any simplifications of vector mode comparison operators.
10400         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
10401
10402 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
10403             Devang Patel  <dpatel@apple.com>
10404
10405         PR tree-optimization/18308
10406         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
10407         the operands before creating a new expression.
10408         * dojump.c (do_jump): Make drop_through_label available
10409         for all cases.  Add expansion of COND_EXPR.
10410
10411 2005-01-04  Ira Rosen  <irar@il.ibm.com>
10412
10413         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
10414         INTEGER_CST instead of TREE_CONSTANT.
10415         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
10416         instead of TREE_CONSTANT.
10417         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
10418         instead of TREE_CONSTANT.
10419
10420 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10421
10422         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
10423
10424 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
10425
10426         PR target/19240
10427         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
10428         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
10429
10430 2005-01-03  Richard Henderson  <rth@redhat.com>
10431
10432         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
10433         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
10434         fold_convert_const_real_from_real): Split out from ...
10435         (fold_convert_const): ... here.
10436
10437 2005-01-03  Richard Henderson  <rth@redhat.com>
10438
10439         PR target/19235
10440         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
10441         (mov<MMXMODEI>_internal): Likewise.
10442         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
10443         Add V2SF case; use it for SSE1; don't use TI.
10444         (movdf_integer): Likewise.
10445         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
10446
10447 2005-01-03  Ira Rosen  <irar@il.ibm.com>
10448
10449         * tree-vectorizer.c (vect_strip_conversions): New function.
10450         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
10451         check for binary class.
10452
10453 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
10454
10455         Fix PR debug/17924
10456         Fix PR debug/19191
10457         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
10458         is a decl.
10459         * gimple-low.c (mark_blocks_with_used_vars): New function.
10460         (mark_blocks_with_used_subblocks): Ditto.
10461         (mark_used_blocks): Ditto.
10462         (pass_mark_used_blocks): New pass.
10463         * tree-inline.c: Include debug.h.
10464         (expand_call_inline): Call outlining_inline_function here.
10465         * tree-optimize.c (init_tree_optimization_passes): Add
10466         pass_mark_used_blocks.
10467         * tree-pass.h (pass_mark_used_blocks): New.
10468         * Makefile.in (tree-inline.o): Add debug.h dependency.
10469
10470 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
10471
10472         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
10473         VAR_DECLs to have weak_import attribute.
10474
10475         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
10476         'struct ucontext'.
10477
10478 2004-01-03  Steven Bosscher  <stevenb@suse.de>
10479
10480         * passes.c (rest_of_compilation): Don't run regmove if only
10481         flag_expensive_optimizations, require flag_regmove instead.
10482
10483 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10484
10485         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
10486         register "sparc".
10487         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
10488         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
10489         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
10490         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
10491
10492 2005-01-03  Richard Henderson  <rth@redhat.com>
10493
10494         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
10495         (ia64_const_ok_for_letter_p): New.
10496         (ia64_const_double_ok_for_letter_p): New.
10497         (ia64_extra_constraint): New.
10498         (ia64_expand_vecint_compare): New.
10499         (ia64_expand_vcondu_v2si): New.
10500         (ia64_expand_vecint_cmov): New.
10501         (ia64_expand_vecint_minmax): New.
10502         (ia64_print_operand): Add 'v'.
10503         (ia64_preferred_reload_class): New.
10504         (ia64_vector_mode_supported_p): New.
10505         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
10506         (PREFERRED_RELOAD_CLASS): Move to function.
10507         (CONST_OK_FOR_LETTER_P): Move to function.
10508         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
10509         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
10510         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
10511         (EXTRA_CONSTRAINT): Move to function.
10512         * config/ia64/ia64.md: Include vect.md.
10513         (itanium_class): Add mmalua.
10514         (type): Handle it.
10515         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
10516         (1b_mmalua): New.
10517         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
10518         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
10519         CONST0_RTX.
10520         (const_int_2bit_operand): New.
10521         (fr_reg_or_0_operand): New.
10522         * config/ia64/ia64-modes.def: Add vector modes.
10523         * config/ia64/ia64-protos.h: Update.
10524         * config/ia64/vect.md: New file.
10525
10526 2005-01-03  Richard Henderson  <rth@redhat.com>
10527
10528         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
10529
10530 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
10531
10532         PR target/19236
10533         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
10534         to SFmode.
10535         (log1pdf2): Change mode of operands[0,1] to DFmode.
10536
10537 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10538
10539         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
10540         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
10541         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
10542         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
10543         SPARC_RELAXED_ORDERING.
10544
10545 2005-01-03  Richard Henderson  <rth@redhat.com>
10546             Uros Bizjak  <uros@kss-loka.si>
10547
10548         PR target/14631
10549         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
10550         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
10551         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
10552         handling.
10553         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
10554         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
10555         const_pow2_1_to_128_operand): New predicates.
10556
10557 2005-01-02  Greg McGary  <greg@mcgary.org>
10558
10559         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
10560         anonymous decls.
10561         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
10562         object.  [ptr_type]: Remove unused variable.
10563         Remember nearest addressable array-element or record-component
10564         when checking bitfield components.  Tolerate empty BIND_EXPR.
10565
10566 2005-01-01  Richard Henderson  <rth@redhat.com>
10567
10568         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
10569         that don't narrow the value.  Fail for other conversions.
10570
10571 2005-01-01  Richard Henderson  <rth@redhat.com>
10572
10573         PR c/19031
10574         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
10575         * c-lang.c (finish_file): Don't do it here.
10576         * objc/objc-act.c (objc_finish_file): Likewise.
10577
10578         * cgraph.c (decl_assembler_name_equal): New.
10579         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
10580         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
10581         * cgraph.h (struct cgraph_varpool_node): Add next.
10582         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
10583         * varasm.c (assemble_alias): Mark the target as needed.
10584
10585 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
10586
10587         PR middle-end/19221
10588         * function.c (get_arg_pointer_save_area): Use entry_of_function
10589         instead of get_insns.
10590
10591 2005-01-01  Roger Sayle  <roger@eyesopen.com>
10592             Andrew Pinski  <pinskia@physics.uc.edu>
10593             James E. Wilson  <wilson@specifixinc.com>
10594
10595         PR rtl-optimization/12092
10596         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
10597         is zero.
10598
10599 2005-01-01  Roger Sayle  <roger@eyesopen.com>
10600             Olivier Hainque  <hainque@act-europe.fr>
10601
10602         * tree.c (int_fits_type_p): A narrower type always fits in a
10603         wider one, except for negative values into unsigned types.
10604
10605 2005-01-01  Roger Sayle  <roger@eyesopen.com>
10606
10607         * tree.c (int_fits_type_p): Compare the result of force_fit_type
10608         with the original constant rather than require TREE_OVERFLOW.
10609
10610 2005-01-01  Steven Bosscher  <stevenb@suse.de>
10611
10612         PR middle-end/17544
10613         * c-decl.c (finish_function): If compiling C99, annotate the
10614         compiler generated return with the current file name and line 0.
10615         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
10616         the source line is greater than 0.
10617         (remove_bb): Likewise.