OSDN Git Service

cfca3d6a61e04d996bda4d55343fb2f11a1a5105
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
2
3         * coverage.h (GCOV_TYPE_NODE): Delete.
4         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
5         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
6         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
7         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
8         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
9
10 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
11
12         PR other/20792
13         * Makefile.in (gcc.pot): Remove options.c dependency.
14         * optc-gen.awk: Don't quote help strings with N_().
15
16 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
17
18         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
19         the function returns a pointer type.
20
21 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
22
23         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
24         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
25         * doc/invoke.texi: Documnet salias-max-implicit-fields.
26         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
27         explicit_uses members.
28         (get_or_create_used_part_for): Initialize new fields.
29         (fieldoff_compare): New function.
30         (create_overlap_variables_for): Count number of fields, use
31         heuristic to determine whether to create subvars for vars with
32         only implicit uses.
33         Sort the field list by offset and avoid creating duplicate SFT's.
34
35 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
36
37         * c.opt (-F): Remove trailing whitespace from help string.
38         (-finput-charset): Use a tab to separate the switch name and help
39         string.
40         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
41         (-ftree-vectorizer-verbose): Likewise.
42
43 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
44
45         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
46         a PHI argument where a use occurs instead of all PHI arguments.
47
48 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
49
50         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
51         scope.
52
53 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
54
55         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
56         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
57         config/bfin/bfin.h: Fix comment typos.
58
59 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
60
61         * doc/install.texi: Update the URL for Jacks.
62         * doc/sourcebuild.texi: Likewise.
63
64 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
65
66         PR target/17245
67         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
68         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
69
70 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
71
72         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
73
74 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
75
76         * config/v850/v850-protos.h (override_options): Delete.
77         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
78         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
79         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
80         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
81         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
82         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
83         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
84         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
85         (OVERRIDE_OPTIONS): Delete.
86         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
87         (small_memory_info): Remove the value field.
88         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
89         TARGET_NO_APP_REGS.
90         * config/v850/v850.c (small_memory): Remove the value field.
91         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
92         (override_options): Delete.
93         (v850_handle_memory_option, v850_handle_option): New functions.
94         * config/v850/v850.opt: New file.
95
96 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
97
98         * config.host: Add a section for generic hosts, and a subsection
99         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
100         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
101         * config/host-darwin.h: New.
102         * config/x-darwin: New.
103         * config/i386/host-i386-darwin.c: New.
104         * config/i386/x-darwin: New.
105         * config/rs6000/host-darwin.c: Include host-darwin.h.
106         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
107         (darwin_rs6000_gt_pch_use_address): Likewise.
108         * config/rs6000/x-darwin: Change name of .o built, update
109         dependencies for changes to rs6000/host-darwin.c.
110
111 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
112
113         PR target/17824
114         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
115
116 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
117
118         * tree-vect-analyze.c (vect_analyze_loop_form): Call
119         split_loop_exit_edge instead of loop_split_edge_with. 
120
121 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
122
123         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
124         UNSPEC_SET_VSCR): New constants, used throughout.
125         (*andc3_v4sf): New.
126         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
127         Replace with...
128         (altivec_vspltis<VI_char>): ... this pattern, using
129         a QImode const_int_operand for the immediate.
130         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
131         define_expands.
132
133 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
134
135         PR target/17822
136         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
137
138 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
139
140         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
141
142 2005-04-06  Ben Elliston  <bje@au.ibm.com>
143
144         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
145         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
146         macros as living in "this file" and not gcc.h.
147
148 2005-04-06  Ben Elliston  <bje@au.ibm.com>
149
150         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
151         -ftree-live_range_split.  Perhaps renamed at some point?
152
153 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
154
155         PR target/20625
156         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
157         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
158
159 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
160
161         * tree-flow.h (number_of_iterations_cond): Declaration removed.
162         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
163         (number_of_iterations_special): New function.
164         (number_of_iterations_exit): Use number_of_iterations_special.
165         Use simplify_using_outer_evolutions only at -O3.
166         (number_of_iterations_cond, tree_simplify_using_condition,
167         simplify_using_initial_conditions, loop_niter_by_eval,
168         compare_trees, can_count_iv_in_wider_type_bound,
169         simplify_using_outer_evolutions): Use fold_build.
170
171 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
172
173         * doc/install.texi (Configuration): Document --with-java-home.
174
175 2005-04-05  Richard Henderson  <rth@redhat.com>
176
177         PR target/20342
178         PR target/20447
179         * config/i386/i386.c (print_operand): Handle vector zeros.
180         (ix86_split_to_parts): Handle CONST_VECTOR.
181         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
182         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
183         what modes to tie for MMX and SSE registers.
184         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
185         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
186         to vector modes as well.
187         * config/i386/predicates.md (const0_operand): Handle VOIDmode
188         properly as an input mode.
189
190 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
191
192         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
193
194 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
195
196         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
197
198 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
199
200         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
201         and local functions, set sse_nregs to 8 and float_in_sse.
202         (function_arg_advance, function_arg): If float_in_sse, pass
203         SFmode and DFmode arguments in SSE registers.
204         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
205
206         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
207         of -funit-at-a-time.
208
209 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
210
211         * config/i386/i386-protos.h (ix86_function_value): Accept two
212         arguments, like the target macro.
213         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
214         * config/i386/i386.c (ix86_function_value): Accept the second
215         argument of the target macro.
216         (ix86_function_ok_for_sibcall): Pass a function pointer to
217         ix86_function_value.
218         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
219         call to ix86_value_regno).
220         (ix86_value_regno): Add support for returning floating point values
221         in SSE registers.
222
223 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
224
225         PR tree-optimization/20076
226         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
227         that call __builtin_return or __builtin_apply_args.
228
229 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
230
231         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
232         Use immediate use iterator.
233         (stmt_is_bumper_for_loop): Use immediate use iterator.
234         * predict.c (strip_builtin_expect): Use update_stmt.
235         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
236         on all elements of a STATEMENT_LIST.
237         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
238         (bsi_remove): Remove imm_use links and mark the stmt as modified.
239         (bsi_replace): Mark stmt as modified and the update it.
240         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
241         (expand_complex_libcal): Call update_stmt.
242         (expand_complex_comparison): Call mark_stmt_modified.
243         (expand_complex_operations_1): Call update_stmt_if_modified.
244         (expand_vector_operations_1): Call mark_stmt_modified.
245         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
246         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
247         add_immediate_use, redirect_immediate_use,
248         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
249         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
250         (mark_new_vars_to_rename): Call update_stmt.
251         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
252         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.  
253         Ignore PHI nodes.
254         (unmodify_stmt): Delete.
255         (update_stmt): New.  Force an update of a stmt.
256         (update_stmt_if_modified): update a stmt if it is out of date.
257         (get_stmt_operands): Verify stmt is NOT modified. 
258         (stmt_modified_p): Update comment.
259         (delink_imm_use): Remove a use node from its immuse list.
260         (link_imm_use_to_list): Link a use node to a specific list.
261         (link_imm_use): Link a node to the correct list.
262         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
263         it in the correct list, if appropriate.
264         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
265         (relink_imm_use): Link a use node in place of another node in a list.
266         (relink_imm_use_stmt): LInk a node in place of another node, and set
267         the stmt pointer.
268         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
269         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
270         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
271         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
272         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
273         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
274         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
275         (has_zero_uses): New.  Return true if there are no uses of a var.
276         (has_single_use): New.  Return true if there is only a single use of a
277         variable.
278         (single_imm_use): New.  Return the simgle immediate use.
279         (num_imm_uses): New.  Return the number of immediate uses.
280         (get_v_must_def_ops): Use is now a pointer.
281         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
282         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of 
283         the use node.
284         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
285         (delink_stmt_imm_use): Delink all immuses from a stmt.
286         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
287         * tree-flow.h (struct dataflow_d): Delete.
288         (immediate_use_iterator_d): New.  Immediate use iterator struct.
289         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
290         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
291         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe 
292         iteration.
293         (struct stmt_ann_d): Remove dataflow_t from struct.
294         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
295         (if_convertible_phi_p): Use FAST immuse iterator.
296         (if_convertible_loop_p): Don't call compute_immediate_uses.
297         (replace_phi_with_cond_modify_expr): Call update_stmt.
298         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call 
299         update_stmt_if_modified.
300         (rewrite_all_into_ssa): Initialize ssa operands.
301         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
302         compute_immediate_uses.
303         * tree-optimize.c (execute_todo): Call verify_ssa whenever the 
304         ssa_property is available.
305         (execute_one_pass):  Change parameters passed to execute_todo.
306         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
307         (remove_ssa_form): Call fini_ssa_operands.
308         (insert_backedge_copies): Delete call to modify_stmt.
309         * tree-phinodes.c (make_phi_node): Initialize use nodes.
310         (release_phi_node): Delink any use nodes before releasing.
311         (resize_phi_node): Relink any use nodes.
312         (remove_phi_arg_num): Delink the use node.
313         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
314         (remove_all_phi_nodes_for): Release phi node first.
315         * tree-pretty-print.c (dump_generic_node): Print stmt address.
316         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
317         (scalarize_use, scalarize_copy): Call update_stmt.
318         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
319         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
320         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
321         (ccp_initialize): Remove call to compute_immediate_uses.
322         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
323         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified 
324         stmts.
325         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
326         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
327         (eliminate_redundant_computations): Call mark_stmt_modified.
328         (cprop_operand): Call mark_stmt_modified.
329         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
330         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
331         (dse_optimize_stmt): Use new immuse interface.
332         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
333         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
334         (substitute_single_use_vars): Use new immuse interface.
335         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
336         and compute_immediate_uses.
337         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse 
338         interface.
339         (rewrite_mem_refs): Call update_stmt.
340         (determine_lsm): Remove call to compute_imm_uses and free_df.
341         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
342         (try_unroll_loop_completely): Call update_stmt.
343         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
344         (rewrite_use_compare): Call update_stmt.
345         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
346         (rewrite_use) : Call update_stmt.
347         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
348         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call 
349         update_stmt.
350         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
351         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
352         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
353         use nodes.
354         (initialize_vuse_operand): New.  Initialize a vuse operand.
355         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
356         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
357         (finalize_ssa_defs): Use stmt parameter.
358         (correct_use_link): Ensure a use node is in the correct list, and has
359         the correct stmt pointer.
360         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
361         finalize_ssa_v_must_defs): Also initialize use nodes.
362         (finalize_ssa_stmt_operands): Pass extra stmt operands.
363         (build_ssa_operands): Seperate parsing from final operand construction.
364         (parse_ssa_operands): New.  Parse entry point for operand building.
365         (swap_tree_operands): New.  Swap 2 tree operands.
366         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
367         operands.
368         (get_expr_operands): Call swap_tree_operands when needed.
369         (copy_virtual_operands): Use initialize routines for virtual use ops.
370         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
371         (verify_abort): New.  Issue imm_use error.
372         (verify_imm_links): New Verify imm_use links for a var.
373         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
374         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
375         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
376         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
377         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
378         (NULL_USE_OPERAND_P) Define.
379         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
380         use node.
381         (struct vuse_operand_type): New struct.
382         (SET_USE): Call set_ssa_use_from_ptr.
383         (USE_STMT): Define.
384         (PHI_ARG_INDEX_FROM_USE): Define.
385         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi 
386         argument via SET_USE, not PHI_ARG_DEF_TREE.
387         * tree-ssa-pre.c (eliminate): Call update_stmt.
388         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
389         call free_df.
390         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
391         (nearest_common_dominator_of_uses): Use imm_use iterator.
392         (statement_sink_location): Use imm_use iterator and interface.
393         (execute_sink_code): Don't call compute_immediate_uses or free-df.
394         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
395         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
396         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
397         (verify_ssa): Ensure no stmt is marked modify after optimization pass
398         if new parameter is true.
399         (init_tree_ssa): Don't initialize operand cache here.
400         (delete_tree_ssa): Don't destroy operand cache here.
401         (propagate_into_addr): Pass in a use pointer, return true if anything
402         was changed.
403         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
404         (check_phi_redundancy): Use imm_use iterator.
405         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or 
406         free_df.
407         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
408         (release_ssa_name): Delink node and all elements in its imm_use list.
409         * tree-tailcall.c (adjust_return_value): Call update_stmt.
410         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
411         * tree-vectorizer.c (need_imm_uses_for): Delete.
412         (vectorize_loops): Dont call compute_immediate_uses or free_df.
413         * tree.h (struct ssa_imm_use_d): Define.
414         (SSA_NAME_IMM_USE_NODE): Define.
415         (struct tree_ssa_name): Add imm_use node.
416         (PHI_DF): Delete.
417         (PHI_ARG_IMM_USE_NODE): Define.
418         (struct phi_arg_d): Add imm_use node.
419         (struct tree_phi_node): Remove struct dataflow_d element.
420         (TDF_STMTADDR): Define.
421
422 2005-04-05  Dale Johannesen  <dalej@apple.com>
423
424         * doc/invoke.texi (Optimization Options):  Remove
425         duplicate -fcse-follow-jumps.  Add -fweb.
426         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
427         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
428
429 2005-04-05  Per Bothner  <per@bothner.com>
430
431         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
432         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
433         (warn_uninit): Get EXPR_LOCUS from context now instead.
434         This fixes a USE_MAPPED_LOCATION testsuite failure.
435
436         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
437
438 2005-04-05  Per Bothner  <per@bothner.com>
439
440         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
441         of the artification 'return 0' in main() to BUILTINS_LOCATION.
442         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
443         before warning. 
444
445 2004-04-05  Devang Patel  <dpatel@apple.com>
446
447         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
448         (lhsr<mode>3): ... new name.
449         (altivec_vsra<VI_char>): Rename to ..
450         (ashr<mode>3): ... new name.
451         * config/rs6000/rs6000.c (builtin_description): Rename shift
452         operations.
453         
454 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
455
456         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
457         gen_lowpart_for_combine.
458         * cse.c (gen_lowpart_if_possible): Move...
459         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
460         gen_lowpart_SUBREG.
461         (gen_lowpart_no_emit_general): Use it.
462
463 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
464
465         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
466         overriding.
467
468 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
469
470         * system.h: Fix typo.
471
472 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
473
474         * config/bfin/bfin-modes.def: New file.
475         * config/bfin/bfin-protos.h: New file.
476         * config/bfin/bfin.c: New file.
477         * config/bfin/bfin.h: New file.
478         * config/bfin/bfin.md: New file.
479         * config/bfin/bfin.opt: New file.
480         * config/bfin/crti.s: New file.
481         * config/bfin/crtn.s: New file.
482         * config/bfin/elf.h: New file.
483         * config/bfin/lib1funcs.asm: New file.
484         * config/bfin/predicates.md: New file.
485         * config/bfin/t-bfin: New file.
486         * config/bfin/t-bfin-elf: New file.
487         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
488         Document new attributes.
489         (interrupt, interrupt_handler, saveall): Update documentation for
490         these attributes.
491         * doc/install.texi (Specific): Add entry for the Blackfin.
492         * doc/invoke.texi (Blackfin Options): New section.
493         * doc/md.texi (Blackfin family): New section to document constraints.
494         * config.gcc: Add bfin*-* and bfin*-elf configurations.
495
496 2005-04-05  Olivier Hainque  <hainque@adacore.com>
497         
498         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
499         match what the system unwinder expects.
500         * config/mips/mips.c (mips_frame_set): If we're saving the return
501         address register and the dwarf return address column number differs
502         from the hard register number, adjust the note reg to refer to the
503         former.
504
505 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
506
507         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
508         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
509         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
510         (processor_type): New enum.
511         (mn10300_processor): New variable.
512         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
513         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
514         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
515         (PROCESSOR_DEFAULT): New macro.
516         * config/mn10300/mn10300.c (mn10300_processor): New variable.
517         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
518         (mn10300_handle_option, mn10300_override_options): New functions.
519         * config/mn10300/mn10300.opt: New file.
520
521 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
522             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
523
524         PR tree-optimization/19903
525         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
526         that don't fit in their type after conversion.
527
528 2005-04-05 Uros Bizjak <uros@kss-loka.si>
529
530         PR target/20421
531         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
532         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
533         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
534         flag here. Implement using define_insn_and_split.  
535         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
536         (frndintxf2_mask_pm_i387): New insn patterns.
537         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
538         Do not set ix86_optimize_mode_switching flag.
539         (ceilsf2, ceildf2, ceilxf2): Same.
540         (btruncsf2, btruncdf2, btruncxf2): Same.
541         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
542
543 2005-04-05  Ian Lance Taylor  <ian@airs.com>
544
545         PR debug/9963
546         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
547         i386_pe_record_external_function.
548         (i386_pe_record_external_function): Update declaration.
549         * config/i386/winnt.c (struct extern_list): Add decl field.
550         (i386_pe_record_external_function): Add decl parameter.
551         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
552         identifier.
553         * config/i386/i386-protos.h (i386_pe_record_external_function):
554         Update declaration.
555
556 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
557
558         * config/m68k/m68k-protos.h: Add a prototype for
559         valid_dbcc_comparison_p_2.
560         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
561         extend_operator, const_uint32_operand, const_sint32_operand,
562         general_src_operand, nonimmediate_src_operand,
563         memory_src_operand, post_inc_operand, pre_dec_operand,
564         pcrel_address): Move to predicates to predicates.md.
565         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
566         * config/m68k/m68k.md: Include predicates.md.
567         * config/m68k/predicates.md: New.
568
569 2005-04-04  Roger Sayle  <roger@eyesopen.com>
570
571         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
572
573         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
574
575 2005-04-04  Ian Lance Taylor  <ian@airs.com>
576
577         * c-typeck.c (struct c_switch): Rename switch_stmt field to
578         switch_expr.
579         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
580         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
581         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
582         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
583         * c-common.c (c_do_switch_warnings_1): New static function broken
584         out of c_do_switch_warnings.
585         (c_do_switch_warnings): Call c_do_switch_warnings_1.
586         (c_do_switch_expr_warnings): New function.
587         * c-common.h (c_do_switch_expr_warnings): Declare.
588
589 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
590             Daniel Jacobowitz  <dan@codesourcery.com>
591
592         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
593         trapping divide.
594         * rtlanal.c (may_trap_p): Same.
595
596 2005-04-04  Dale Johannesen  <dalej@apple.com>
597
598         * ChangeLog:  remove reference to ChangeLog.12.
599
600 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
601
602         CRIS epilogue as RTL.
603         * config/cris/cris.md: Change all 0 in unspec 0 to
604         CRIS_UNSPEC_PLT.
605         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
606         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
607         patterns.
608         ("return"): Change to define_expand.  Call cris_expand_return for
609         actual expansion.
610         ("*return_expanded"): New pattern.
611         ("epilogue"): New define_expand.
612         * config/cris/cris.h (PREDICATE_CODES): Add
613         cris_load_multiple_op.
614         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
615         type.
616         (enum cris_retinsn_type): New.
617         (struct machine_function): New member return_type.
618         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
619         (cris_target_asm_function_epilogue): Remove, moving RTLified
620         contents to...
621         (cris_expand_epilogue): New function.
622         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
623         (cris_gen_movem_load, cris_load_multiple_op)
624         (cris_return_address_on_stack_for_return, cris_expand_return): New
625         functions.
626         (cris_target_asm_function_prologue)
627         (cris_initial_frame_pointer_offset): Call
628         cris_reg_saved_in_regsave_area instead of complicated expression.
629         Call cris_return_address_on_stack instead of an expression.
630         (cris_print_operand) <case 'o', case 'O'>: New cases.
631         (cris_return_address_on_stack): Change return-type to bool.
632         (cris_simple_epilogue): Ditto.  Return false if registers are
633         saved.
634         * config/cris/cris-protos.h (cris_simple_epilogue)
635         (cris_return_address_on_stack): Adjust prototype return type.
636         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
637         (cris_return_address_on_stack_for_return): New prototypes.
638
639 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
640
641         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
642         gpr_or_int12_operand.
643
644         * config/frv/frv-protos.h: Add a prototype to
645         frv_legitimate_memory_operand and frv_const_unspec_p.
646         (frv_unspec): Move from frv.c.
647         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
648         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
649         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
650         gpr_or_fpr_operand, gpr_or_int12_operand,
651         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
652         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
653         int6_operand, int5_operand, uint5_operand, uint4_operand,
654         uint1_operand, int_2word_operand, uint16_operand,
655         upper_int16_operand, integer_register_operand,
656         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
657         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
658         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
659         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
660         move_destination_operand, movcc_fp_destination_operand,
661         frv_function_symbol_referenced_p, move_source_operand,
662         condexec_dest_operand, condexec_source_operand,
663         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
664         const_unspec_operand, gpr_or_memory_operand,
665         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
666         icc_operand, fcc_operand, cc_operand, icr_operand,
667         fcr_operand, cr_operand, call_operand, sibcall_operand,
668         symbolic_operand, relational_operator,
669         integer_relational_operator, float_relational_operator,
670         ccr_eqne_operator, minmax_operator,
671         condexec_si_binary_operator, condexec_si_media_operator,
672         condexec_si_divide_operator, condexec_si_unary_operator,
673         condexec_sf_conv_operator, condexec_sf_add_operator,
674         condexec_memory_operand, intop_compare_operator, acc_operand,
675         even_acc_operand, quad_acc_operand, accg_operand: Move to
676         predicates.md.
677         * config/frv/frv.h (PREDICATE_CODES): Remove.
678         * config/frv/frv.md: Include predicates.md.
679         * config/frv/predicates.md: New.
680
681 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
682
683         PR target/19537
684         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
685         * tree-ssa-loop-ivopts.c: Include langhooks.h.
686         (add_standard_iv_candidates_for_size): New function, extracting code
687         from add_standard_iv_candidates and parameterizing it by type size.
688         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
689
690 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
691
692         * system.h (GCOV_SIZE_TYPE): Unposion.
693         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
694         (GCOV_TYPE_SIZE): ...this new macro.
695         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
696         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
697         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
698         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
699         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
700         instead of unsigned_intSI_type_node.
701         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
702         (rtl_gen_one_value_profiler_no_edge_manipulation)
703         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
704         * value-prof.c: Include coverage.h.
705
706 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
707             Diego Novillo <dnovillo@redhat.com>
708             
709         Fix PR tree-optimization/20703
710         Fix PR tree-optimization/20725
711         
712         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
713         (create_expression_by_pieces): Ditto.
714         (valid_in_set): Ditto. Also handle tcc_declaration.
715         (find_or_generate_expression): Handle comparison class.
716         (insert_into_preds_of_block): Ditto.
717         (insert_aux): Ditto.
718         (create_value_expr_from): Handle comparison class, recursively
719         handle reference nodes.
720         (compute_avail): Handle comparison classes, rewrite a little cleaner.
721         (execute_pre): Fix spacing.
722         (do_fre): Renamed to execute_fre.
723
724 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
725
726         * doc/invoke.texi (SPARC options): Document that
727         -mlittle-endian is not supported on Linux either.
728
729 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
730
731         PR target/4198
732         PR target/12027
733         * config.gcc (Obsolete configurations): Remove
734         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
735         (sparclite-*-coff*): Delete.
736         (sparclite-*-elf*): Likewise.
737         (sparc86x-*-elf*): Likewise.
738         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
739         * config/sparc/lite.h: Delete.
740         * config/sparc/litecoff.h: Likewise.
741         * config/sparc/liteelf.h: Likewise.
742         * config/sparc/sp86x-elf.h: Likewise.
743         * config/sparc/t-sparclite: Likewise.
744         * config/sparc/t-sp86x: Likewise.
745
746 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
747
748         * config/s390/s390-protos.h: (s390_comparison,
749         s390_alc_comparison, s390_slb_comparison, const0_operand,
750         consttable_operand, larl_operand, s_operand,
751         shift_count_operand, bras_sym_operand, load_multiple_operation,
752         store_multiple_operation, s390_plus_operand): Remove prototypes.
753         (s390_legitimate_address_without_index_p): New prototype.
754         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
755         to s390.h.
756         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
757         const0_operand, consttable_operand, larl_operand, s_operand,
758         shift_count_operand, bras_sym_operand, load_multiple_operation,
759         store_multiple_operation, s390_plus_operand): Move to
760         predicates.md.
761         (check_mode): Remove.
762         (s390_branch_condition_mask): Remove 'static'. Move prototype to
763         s390-protos.h.
764         (s390_legitimate_address_without_index_p): New.
765         * config/s390/s390.h (PREDICATE_CODES): Remove.
766         * config/s390/s390.md: Include predicates.md.
767         * config/s390/predicates.md: New.
768
769 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
770
771         PR target/20446
772         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
773         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
774         (NEED_INDICATE_EXEC_STACK): Define to 1.
775         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
776         (NEED_INDICATE_EXEC_STACK): Define to 1.
777         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
778         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
779         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
780         (pic_helper_emitted_p): New global.
781         (emit_pic_helper): New function extracted from...
782         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
783         Do not call emit_pic_helper if delay_pic_helper is true.
784         (sparc_expand_prologue): Pass 'false' to load_pic_register.
785         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
786         (sparc_file_end): New function.
787
788 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
789
790         * config/mcore/mcore-protos.h: Remove the prototypes for
791         mcore_arith_reg_operand, mcore_general_movsrc_operand,
792         mcore_general_movdst_operand, mcore_reload_operand,
793         mcore_arith_J_operand, mcore_arith_K_operand,
794         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
795         mcore_arith_K_S_operand, mcore_arith_imm_operand,
796         mcore_arith_any_imm_operand, mcore_arith_O_operand,
797         mcore_literal_K_operand, mcore_addsub_operand,
798         mcore_compare_operand, mcore_load_multiple_operation,
799         mcore_store_multiple_operation, mcore_call_address_operand.
800         Add a prototype for const_ok_for_mcore.
801         * config/mcore/mcore.c (mcore_call_address_operand,
802         mcore_general_movsrc_operand, mcore_general_movdst_operand,
803         mcore_arith_reg_operand, mcore_reload_operand,
804         mcore_arith_J_operand, mcore_arith_K_operand,
805         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
806         mcore_arith_M_operand, mcore_arith_imm_operand,
807         mcore_arith_any_imm_operand, mcore_arith_O_operand,
808         mcore_literal_K_operand, mcore_addsub_operand,
809         mcore_compare_operand, mcore_load_multiple_operation,
810         mcore_store_multiple_operation): Move to predicates.md.
811         (const_ok_for_mcore): Export.
812         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
813         * config/mcore/mcore.md: Include predicates.md.
814         * config/mcore/predicates.md: New.
815
816         * config/mcore/predicates.md: Fix a comment typo.
817
818 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
819             Adrian Straetling  <straetling@de.ibm.com>
820
821         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
822         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
823         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
824         attribute.
825         ("imul"): Removed from "type" attribute.
826         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
827         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"): 
828         Changed type to imulsi.
829         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
830
831 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
832
833         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
834         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
835         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
836         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
837         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
838         (TARGET_SWITCHES, mcore_stack_increment_string)
839         (TARGET_OPTIONS): Delete.
840         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
841         than *_BIT constants.
842         (TARGET_8ALIGN): #undef old definition before redefining to 1.
843         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
844         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
845         (mcore_override_options): Delete mcore_stack_increment code.
846         Change use of M340_BIT to MASK_M340.
847         * config/mcore/mcore.opt: New file.
848
849 2005-04-04  Ian Lance Taylor  <ian@airs.com>
850
851         * config/arm/arm.c (replace_symbols_in_block): Remove static
852         function.
853
854 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
855
856         * config/fr30/fr30-protos.h: Remove the prototypes for
857         stack_add_operand, add_immediate_operand,
858         high_register_operand, low_register_operand, call_operand,
859         di_operand, and nonimmediate_di_operand.
860         * config/fr30/fr30.c (stack_add_operand,
861         add_immediate_operand, high_register_operand,
862         low_register_operand, call_operand, di_operand,
863         nonimmediate_di_operand): Move to predicates.md.
864         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
865         * config/fr30/fr30.md: Include predicates.md.
866         * config/fr30/predicates.md: New.
867
868         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
869         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
870         mcore_call_address_operand.
871
872         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
873         general_movsrc_operand.
874
875 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
876
877         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
878         after freeing.
879
880 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
881
882         PR target/14812
883         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
884         a negated value.
885
886 2005-04-04  Richard Henderson  <rth@redhat.com>
887             Jakub Jelinek  <jakub@redhat.com>
888
889         PR rtl-optimization/16104
890         * fold-const.c (fold_unary): Fix folding of vector conversions.
891
892 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
893
894         * config.gcc (xstormy16-*-elf): Set extra_options.
895         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
896         * config/stormy16/stormy16.opt: New file.
897
898 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
899
900         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
901         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
902         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
903         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
904         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
905         (TARGET_UNIX_ASM): Delete.
906         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
907         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
908         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
909         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
910         * config/pdp11/pdp11.opt: New file.
911
912 2005-04-03  Roger Sayle  <roger@eyesopen.com>
913             Alexandre Oliva  <aoliva@redhat.com>
914
915         PR c++/19199
916         * fold-const.c (non_lvalue): Split tests into...
917         (maybe_lvalue_p): New function.
918         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
919         C++ front-end prior to lowering into gimple form.
920
921 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
922
923         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
924         BUILT_IN_STRNCASECMP): New.
925         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
926         and strndup.
927
928 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
929
930         PR target/14812
931         * arm.md (addsi3_compare0_for_combiner): Delete.
932         (addsi3_compare0_scratch_for_combiner): Delete.
933         (cmpsi_neg_shiftsi): Delete.
934         (compare_negsi_si): New pattern.
935         (cmpsi_negshiftsi_si): New pattern.
936         (negated_cbranchsi4): Restrict to equality_operator.
937         
938         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
939         template.
940
941 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
942
943         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
944         Fix comment typos.
945
946         * doc/install.texi: Fix a typo.
947
948 2005-04-03  Steven Bosscher  <stevenb@suse.de>
949
950         PR middle-end/20648
951         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
952         a computed goto if the edge to the computed goto block has
953         incoming abnormal edges.  Clarify how the function works.
954
955 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
956
957         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
958         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
959         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
960         hash_scan_set, reg_set_between_after_reload_p,
961         reg_used_between_after_reload_p, get_avail_load_store_reg,
962         eliminate_partially_redundant_load): Likewise.
963         * postreload.c (reload_cse_simplify_set,
964         reload_combine_note_use): Likewise.
965         * predict.c (predict_insn, expected_value_to_br_prob,
966         propagate_freq, expensive_function_p): Likewise.
967         * print-rtl.c (print_rtx): Likewise.
968         * profile.c (instrument_edges, instrument_values,
969         compute_branch_probabilities, branch_prob, union_groups,
970         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
971         * protoize.c (in_system_include_dir, file_could_be_converted,
972         file_normally_convertible, gen_aux_info_file, seek_to_line,
973         do_cleaning): Likewise.
974         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
975         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
976         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
977
978 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
979
980         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
981         * modulo-sched.c (undo_replace_buff_elem): New structure.
982         (kernel_number_of_cycles, ps_unschedule_node,
983         undo_generate_reg_moves,free_undo_replace_buff,
984         undo_permute_partial_schedule,  loop_single_full_bb_p,
985         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
986         build_loops_structure, get_sched_window): New.
987         (generate_reg_moves): Return undo_replace_buff_elem and other
988         fixes.
989         (generate_prolog_epilog): Remove old loop versioning.
990         (sms_schedule): Use loop information and loop_version.
991         (sms_schedule_by_order): Split part of it to get_sched_window.
992         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
993         cfg_layout_finalize and free_dominance_info before/after SMS.
994
995 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
996
997         * cfghooks.c (lv_flush_pending_stmts,
998         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
999         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
1000         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
1001         lv_add_condition_to_bb,
1002         lv_adjust_loop_header_phi, extract_cond_bb_edges,
1003         flush_pending_stmts): New in cfg_hooks structure.
1004         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
1005         extract_cond_bb_edges, lv_adjust_loop_header_phi,
1006         lv_add_condition_to_bb): New declarations.
1007         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
1008         bool.
1009         (loop_version): Declare.
1010         * cfgloopmanip.c (cfghooks.h): Include.
1011         (duplicate_loop_to_header_edge): Change return type to bool.
1012         (loop_version, lv_adjust_loop_entry_edge): Move here.
1013         * cfgrtl.c (cfgloop.h): Include.
1014         (rtl_verify_flow_info_1): Fix.
1015         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
1016         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
1017         initialization.
1018         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
1019         tree_lv_add_condition_to_bb): New.
1020         (tree_cfg_hooks): Add new hooks to initialization.
1021         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
1022         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
1023
1024 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
1025
1026         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
1027         xstormy16_below100_or_register,
1028         xstormy16_splittable_below100_or_register, and
1029         nonimmediate_nonstack_operand.
1030
1031         * config/stormy16/stormy16-protos.h: Remove the prototypes for
1032         xstormy16_ineqsi_operator, equality_operator,
1033         inequality_operator, shift_operator,
1034         xstormy16_below100_operand, xstormy16_below100_or_register,
1035         xstormy16_splittable_below100_or_register,
1036         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
1037         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
1038         equality_operator, inequality_operator,
1039         xstormy16_below100_operand, xstormy16_below100_or_register,
1040         xstormy16_splittable_below100_or_register,
1041         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
1042         nonimmediate_nonstack_operand, shift_operator): Move to
1043         predicates.md.
1044         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
1045         * config/stormy16/stormy16.md: Include predicates.md.
1046         * config/stormy16/predicates.md: New.
1047
1048 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1049
1050         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
1051         small_int, large_int, reg_or_0_operand, simple_memory_operand,
1052         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
1053         move_operand, power_of_2_operand): Move to predicates.md.
1054         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
1055         PREDICATE_CODE): Remove.
1056         * config/iq2000/iq2000.md: Include predicates.md.
1057         * config/iq2000/predicates.md: New.
1058
1059 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
1060
1061         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
1062         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
1063         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
1064         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
1065         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
1066         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
1067         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
1068         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1069         (TARGET_M68HC11): Delete.
1070         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
1071         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
1072         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
1073         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
1074         (nb_soft_regs): Delete.
1075         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
1076         (m68hc11_override_options): Remove the code that caters for MASK_M6811
1077         and MASK_M6812 being set simultaneously.  Change the code that sets
1078         the default m68hc11_soft_reg_count to use integers instead of strings.
1079         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
1080         m68hc11_soft_reg_count (which now has an int type) as the number
1081         of soft registers.
1082         * config/m68hc11/m68hc11.opt: New file.
1083
1084 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1085
1086         * config/fr30/fr30.h (PREDICATE_CODES): Remove
1087         fp_displacement_operand, sp_displacement_operand.
1088
1089         * config/m68hc11/m68hc11-protos.h: Add a prototype for
1090         m68hcc_auto_inc_p.
1091         Remove the prototypes for tst_operand, cmp_operand,
1092         stack_register_operand, d_register_operand,
1093         hard_addr_reg_operand, splitable_operand,
1094         m68hc11_logical_operator, m68hc11_arith_operator,
1095         m68hc11_non_shift_operator, m68hc11_shift_operator,
1096         m68hc11_unary_operator, m68hc11_eq_compare_operator,
1097         non_push_operand, hard_reg_operand, and
1098         reg_or_some_mem_operand.
1099         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
1100         extern.
1101         (tst_operand, cmp_operand, non_push_operand,
1102         splitable_operand, reg_or_some_mem_operand,
1103         stack_register_operand, d_register_operand,
1104         hard_addr_reg_operand, hard_reg_operand,
1105         m68hc11_eq_compare_operator, m68hc11_logical_operator,
1106         m68hc11_arith_operator, m68hc11_non_shift_operator,
1107         m68hc11_shift_operator, m68hc11_unary_operator): Move to
1108         predicates.md.
1109         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
1110         * config/m68hc11/m68hc11.md: Include predicates.md.
1111         * config/m68hc11/predicates.md: New.
1112
1113 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1114
1115         PR debug/19345
1116         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
1117         change checked in along with 2005-03-03's patch for debug/20253.
1118         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
1119         (remap_decl): Insert type decl in map earlier.
1120
1121 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1122
1123         PR tree-optimization/20640
1124         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
1125         post-dominator if it has phi nodes.
1126         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
1127         before dead statements.
1128
1129 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1130
1131         PR middle-end/20491
1132         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
1133
1134 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
1135
1136         PR rtl-optimization/20290
1137         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
1138         in every iteration if the entry point is the exit test.
1139
1140 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
1141
1142         * config/cris/cris.md (attribute "length"): Define.
1143
1144 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
1145
1146         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
1147         (word_offset_memref_operand): New.
1148         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
1149         (indexed_or_indirect_operand): Delete.
1150         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
1151         (indexed_or_indirect_operand): Delete.
1152
1153         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
1154
1155         PR 20650
1156         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
1157         a register.
1158
1159         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
1160         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
1161
1162 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1163
1164         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
1165
1166 2005-04-01  Ian Lance Taylor  <ian@airs.com>
1167
1168         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
1169         (rus, prus): Remove static variables.
1170         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
1171         (process_command): Permit report_times and use_pipes together.
1172
1173 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1174
1175         * c-decl.c (validate_proto_after_old_defn): Look at
1176         TYPE_MAIN_VARIANT of argument types.
1177
1178 2005-04-01  Paul Brook  <paul@codesourcery.com>
1179
1180         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
1181         (arm_output_function_epilogue): Allow call_via_SP.
1182         (thumb_call_via_reg, arm_file_end): Ditto.
1183         * config/arm/arm.h (struct machine_function): Include space for SP.
1184         (thumb_call_via_label): Update declaration.
1185
1186 2005-04-01  Ian Lance Taylor  <ian@airs.com>
1187
1188         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
1189         doing a peephole optimization, once again put any notes in the
1190         proper position.
1191
1192 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1193
1194         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
1195
1196 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
1197
1198         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
1199         (block_alloc, find_free_reg): Likewise.
1200         * loop-doloop.c (doloop_modify): Likewise.
1201         * loop-invariant.c (record_use): Likewise.
1202         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
1203         get_iv_value, canon_condition, eliminate_implied_condition,
1204         eliminate_implied_condition, simplify_using_initial_values,
1205         shorten_into_mode, canonicalize_iv_subregs,
1206         iv_number_of_iterations): Likewise.
1207         * loop-unroll.c (expand_var_during_unrolling): Likewise.
1208         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
1209         unswitch_loop): Likewise.
1210         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
1211         move_movables, replace_call_address, find_and_verify_loops,
1212         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
1213         record_giv, final_giv_value, general_induction_var,
1214         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
1215         loop_giv_dump): Likewise.
1216
1217         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
1218         GCOV_CHECK_WRITING): Remove.
1219         (gcov_position, gcov_rewrite): Use gcc_assert.
1220         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
1221         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
1222         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
1223         gcc_assert.
1224
1225 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1226
1227         * tree-inline.c: Fix a typo.
1228
1229 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
1230
1231         * configure.ac (enable-checking): Explicitly set all variables for
1232         collective switch values.  Alphabetize variables. Rename
1233         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
1234         synonym for 'no'.
1235         * doc/install.texi (enable-checking): Update documentation.
1236         * configure: Rebuilt.
1237
1238 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1239
1240         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
1241         possible.
1242
1243 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
1244
1245         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
1246         Also reject cases where this pattern will cause load delay stalls
1247         unless optimizing for size and it will produce a shorter sequence.
1248         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
1249         variants to avoid pre-adjusting the base when possible.
1250
1251 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
1252
1253         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
1254         the frame and argument pointers.
1255         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
1256         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
1257         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
1258         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
1259         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
1260         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
1261
1262 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
1263
1264         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
1265         with entry for selectany attribute.
1266         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
1267         Declare.
1268         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
1269         (i386_pe_asm_named_section): Handle sections generated by
1270         selectany attribute.
1271         * doc/extend.texi (selectany): Document attribute.
1272
1273 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
1274             Jan Hubicka  <jh@suse.cz>
1275
1276         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
1277         to fix addresses involving EBP and ESP.
1278         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
1279         for SUBREGed registers.
1280         (legitimate_address_p): Accept SUBREGed registers.
1281
1282 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
1283
1284         PR c++/19406
1285         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
1286         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
1287         for FIELD_DECLs.
1288
1289 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1290
1291         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
1292
1293 2005-04-01  James E Wilson  <wilson@specifixinc.com>
1294
1295         PR c++/20505
1296         * dwarf2out.c (rtl_for_decl_init): New function.
1297         (rtl_for_decl_location): Extracted from here.
1298         (tree_add_const_value_attribute): Call rtl_for_decl_init and
1299         add_const_value_attribute.  Delete initializer_constant_valid_p call.
1300
1301 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
1302
1303         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
1304         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
1305         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
1306         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
1307         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
1308         config/i386/i386.md, config/rs6000/predicates.md,
1309         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
1310         config/s390/s390.c, config/stormy16/stormy16.c,
1311         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
1312         typos.
1313
1314 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1315
1316         PR c/17855
1317         * gimplify.c (gimplify_expr): Create a temporary for lvalue
1318         COND_EXPR and CALL_EXPR.
1319
1320 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
1321
1322         PR target/20632
1323         * genautomata.c (first_cycle_unit_presence): Check all alternative
1324         states for unit presence.
1325
1326         * doc/md.texi: Remove remark about impossibility to query unit
1327         presence in non nondeterministic automaton state.
1328         
1329         * config/ia64/ia64.c (get_template): Change order of unit querying.
1330
1331 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1332
1333         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
1334         obsolete comment.
1335
1336 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
1337
1338         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
1339         flag for edges outside any loops.
1340
1341 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
1342
1343         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
1344
1345 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1346
1347         * tree-ssa-alias.c: Follow spelling conventions.
1348         * doc/tree-ssa.texi: Fix a typo.
1349
1350 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
1351
1352         * postreload-gcse.c: Include target.h.
1353         (gcse_after_reload_main): Return early if we cannot modify jumps.
1354         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
1355
1356 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
1357
1358         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
1359         expensive operations.
1360
1361 2005-03-31  Ian Lance Taylor  <ian@airs.com>
1362
1363         * collect2.c (lderrout): New variable.
1364         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
1365         if it is set, to stderr.
1366         (handler): Unlink lderrout if it is set.
1367         (dump_file): Add "to" parameter.  Change all callers.
1368         (main): Initialize lderrout.
1369         (collect_execute): Add errname parameter.  Change all callers.
1370         Rename redir parameter to outname.  Never pass
1371         PEX_STDERR_TO_STDOUT to pex_run.
1372         * collect2.h (collect_execute, dump_file): Update declarations.
1373         * tlink.c (tlink_execute): Add errname parameter.  Change all
1374         callers.
1375         (do_tlink): Check lderrout as well as ldout.
1376
1377 2005-03-31  Caroline Tice  <ctice@apple.com>
1378
1379         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
1380         (bb-reorder.o): Add errors.h to list of requirements.
1381         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
1382         profiledbootstrap flags.
1383         * bb-reorder.c (errors.h): Add new include.
1384         (struct bbro_basic_block_data_def): Add new field, in_trace.
1385         (add_unlikely_executed_notes):  Remove function.
1386         (mark_bb_for_unlikely_executed_section): Remove function.
1387         (insert_section_boundary_note): New function.
1388         (verify_hot_cold_block_grouping): New function.
1389         (push_to_next_round_p): Remove variables and tests that push all
1390         cold blocks to last round.
1391         (find_traces): Remove code that added extra round of trace finding
1392         when doing partitioning.
1393         (find_traces_1_round) :  Remove variable last_round;  add code to 
1394         update new struct field, in_trace; correct trace_length where it was 
1395         incorrect before (after call to copy_bb); change code that pushed all 
1396         cold blocks to last round. Instead verify that all blocks going into 
1397         a trace belong in the same partition.
1398         (connect_traces): Modify to connect the traces in two passes, if the
1399         function contains both hot and cold blocks.  The first pass connects 
1400         all the traces for blocks in the partition that the first block in 
1401         the function belongs to; the second pass connnects all the traces 
1402         containing blocks that belong in the other partition.
1403         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
1404         code that automatically put the first block in a function into the
1405         hot partition if the function had any hot blocks.
1406         (fix_crossing_unconditional_branches): Check number of succ edges 
1407         before attempting to get one.
1408         (fix_edges_for_rarely_executed_code):  Update comment describing
1409         function.
1410         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
1411         remove call to add_unlikely_executed_notes; add call to 
1412         verify_hot_cold_block_grouping.
1413         (duplicate_computed_gotos): Don't change computed goto if it's a 
1414         crossing edge.
1415         (partition_hot_cold_basic_blocks):  Update function comment.
1416         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from 
1417         condition.
1418         (try_forward_edges): Likewise.
1419         (merge_blocks_move_predecessor_nojumps): Likewise.
1420         (merge_blocks_move_successor_nojumps): Likewise.
1421         (merge_blocks_move): Likewise.
1422         (try_crossjump_bb): Likewise.
1423         * cfglayout.c (update_unlikely_executed_notes): Remove function.
1424         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
1425         notes to cold bb's; remove call to update_unlikely_executed_notes.
1426         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1427         NOTE_INSN_SWITCH_TEXT_SECTIONS.
1428         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
1429         function declaration.
1430         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
1431         from consideration.
1432         (rtl_can_merge_blocks): Remove redundancy from condition.
1433         (try_redirect_by_replacing_jump): Likewise.
1434         (force_nonfallthru_and_redirect): Remove code for adding
1435         UNLIKELY_EXECUTED_CODE notes to cold bb's.
1436         (commit_one_edge_insertion): Likewise.
1437         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
1438         * dbxout.c (FORCE_TEXT): Replace function_section with 
1439         current_function_section.
1440         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
1441         function, switch_text_section.
1442         (struct xcoff_debug): Likewise.
1443         (dbxout_function_end): Add code to put out label diffs for both
1444         hot and cold sections.
1445         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
1446         for new debug_hooks funciton, switch_text_section..
1447         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
1448         switch_text_section.
1449         * dwarf2out.c (struct dw_fde_struct):  Add five new fields: 
1450         dw_fde_hot_section_label, dw_fde_hot_section_end_label, 
1451         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and 
1452         dw_fde_switched_sections.
1453         (output_call_frame_info):  Add test to see if function switches text
1454         sections in the middle; if so, use appropriate extra hot and cold 
1455         section labels to compute size deltas for the hot and cold sections.
1456         (dwarf2out_begin_prologue): Add code to initialize new fields in 
1457         dw_fde_struct.
1458         (dwarf2out_switch_text_section): New function (invoked through 
1459         debug_hook); updates new fields in dw_fde_struct appropriately and
1460         increments separate_line_info_table_in_use.
1461         (dwarf2_debug_hooks): Initialize switch_text_section function to be
1462         dwarf2out_switch_text_section.
1463         (struct var_loc_node): Add new field, section_label.
1464         (output_aranges): Add code to check whether in hot or cold section and
1465         use the appropriate label in calculating deltas.
1466         (output_ranges): Likewise.
1467         (output_line_info): Add code to check which section we're in and
1468         use appropriate hot/cold label.
1469         (add_location_or_constant_value_attribute): Likewise.
1470         (gen_subprogam_die): Modify arange attributes to use correct labels.
1471         (dwarf2out_begin_block): Change call to function_section into call to
1472         current_function_section.
1473         (dwarf2out_end_block): Likewise.
1474         (dwarf2out_source_line): Likewise.
1475         (dwarf2out_var_location): Add code to check whether in hot or cold 
1476         section and use the appropriate label.
1477         * except.c (output_function_exception_table): Change call to 
1478         function_section into call to current_function_section.
1479         * final.c (profile_function): Likewise.
1480         (scan_ahead_for_unlikely_executed_note): Remove function.
1481         (final_scan_insn):  Remove calls to 
1482         scan_ahead_for_unlikely_executed_note, and related code for switching 
1483         to cold section, except for the single time 
1484         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to 
1485         debug_hooks->switch_text_sections; replace appropriate calls to 
1486         function_section with calls to current_function_section.
1487         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add 
1488         test_bb to condition.
1489         (find_if_case_2): Likewise.
1490         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1491         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
1492         * opts.c (decode_options): Change warning about hot/cold partitioning
1493         with exceptionss to inform (so as not to cause bootstrap failures);
1494         remove warning about partitioning with DWARF debug info.
1495         * output.h (current_function_section): Add new function decl.
1496         (insert_section_boundary_note): Likewise.
1497         (enum in_section): Move this declaration here from varasm.c.
1498         (unlikely_section_label): Likewise.
1499         (unlikely_text_section_name): Likewise.
1500         (last_text_section_name): New global variable.
1501         (last_text_section): Likewise.
1502         (hot_section_label): Likewise.
1503         (hot_section_end_label): Likewise.
1504         (cold_section_end_label): Likewise.
1505         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
1506         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
1507         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
1508         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note 
1509         insn from consideration.
1510         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function, 
1511         switch_text_section.
1512         * varasm.c (basic-block.h): Add new include.
1513         (unlikely_section_label_printed): Remove global variable.
1514         (unlikely_section_label): Make global variable not be static any more.
1515         (unlikely_text_section_name): Likewise.
1516         (hot_section_end_label): New global variable (not static)
1517         (first_function_block_is_cold): Likewise.
1518         (hot_section_label): Likewise.
1519         (cold_section_end_label): Likewise..
1520         (last_text_section): New global variable, not static.
1521         (last_text_section_name): New global variable, not static.
1522         (initialize_cold_section_name): New function.
1523         (enum in_section): Move declaration to output.h.
1524         (text_section): Update last_text_section.
1525         (unlikely_text_section): Replace code to determine cold section name 
1526         with call to initialize_cold_section_name; Add code to update 
1527         last_text_section; remove code for printing out label.
1528         (named_section_real): Add code to update last_text_section and 
1529         last_text_section_name as appropriate.
1530         (function_section): Change test for 'unlikely' to depend on
1531         first_function_block_is_cold (moved old test to 
1532         current_function_section).
1533         (current_function_section): New function.
1534         (assemble_start_function): Move code that frees 
1535         unlikely_text_section_name; initialize hot_section_end_label; 
1536         print hot and cold section labels at the start of the function; 
1537         set first_function_block_is_cold, if appropriate; initialize l
1538         ast_text_section; add call to insert_section_boundary_note.
1539         (assemble_end_function):  Add code to write out hot and cold section
1540         end labels.
1541         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
1542         switch_text_section.
1543         * config/darwin.c (machopic_select_section): Replace incorrect 
1544         function in base_funs; update reloc for cold sections if necessary.
1545         * config/darwin.h (SECTION_FUNCTION):  Add code to update 
1546         last_text_section if appropriate.
1547         (text_unlikely_section): Remove.
1548         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
1549         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
1550         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
1551         partitioning for this architecture.
1552
1553 2005-03-31  Olivier Hainque  <hainque@adacore.com>
1554
1555         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
1556         defined and non-zero.
1557
1558 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1559
1560         PR c++/18644
1561         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
1562         semantics. 
1563
1564 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
1565
1566         PR target/20611
1567         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
1568         label operand.  Remove (use (unspec..)).  Don't emit a label on
1569         the offset word.
1570         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
1571         generate inline label for load_toc_v4_PIC_1b.
1572         (rs6000_emit_load_toc_table): Likewise.
1573
1574 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1575
1576         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
1577         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
1578
1579 2005-03-29  Devang Patel  <dpatel@apple.com>
1580
1581         * tree-sra.c (decide_block_copy): Disable scalarization of
1582         sub-elements.
1583         
1584 2005-03-30  Stuart Hastings  <stuart@apple.com>
1585             Dale Johannesen  <dalej@apple.com>
1586
1587         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
1588         * print-tree.c (print_node):  Add case STATEMENT_LIST.
1589
1590 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
1591
1592         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
1593         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
1594         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
1595         is given with "powerpc64*" or "all", or when --with-cpu chooses
1596         a 64-bit cpu.
1597
1598 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
1599
1600         PR debug/20268
1601         * dwarf2out.c (add_high_low_attributes): New function, extracted from
1602         gen_lexical_block_die.
1603         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
1604
1605 2005-03-31  Jan Hubicka  <jh@suse.cz>
1606
1607         2004-11-02  Jan Hubicka  <jh@suse.cz>
1608
1609         * cgraph.c (cgraph_varpool_node_name): New function.
1610         (dump_cgraph_varpool_node): New function.
1611         (dump_varpool): New function.
1612         * cgraphunit.c (cgraph_optimize): Dump varpool.
1613
1614         2004-10-16  Jan Hubicka  <jh@suse.cz>
1615
1616         * cgraph.c (decide_is_variable_needed): New function.
1617         (cgraph_varpool_finalize_decl): Use it.
1618         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
1619         unit-at-a-time.
1620         * final.c (output_addr_const): Do not call mark_referenced.
1621         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
1622         always go via cgraph.
1623         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
1624         (check_global_declarations): Ifdef out code clearing DECL_RTL.
1625         * tree-optimize.c (execute_inline): Mark functions called.
1626         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
1627
1628         2004-10-11  Jan Hubicka  <jh@suse.cz>
1629
1630         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
1631         (cgraph_varpool_last_needed_node): New static variable.
1632         (enqueue_needed_varpool_node): Break out from ...; add items to the
1633         end of queue; update first pointers.
1634         (cgraph_varpool_mark_needed_node): ... here.
1635         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
1636         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
1637         * cgraph.h (cgraph_varpool_node): Add analyzed field.
1638         (cgraph_varpool_first_unanalyzed_node): Declare.
1639         * cgraphunit.c: Include output.h.
1640         (cgraph_varpool_analyze_pending_decls): New function.
1641         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
1642         for errors, analyze pending decls.
1643         (cgraph_finalize_compilation_unit): Only analyze decls.
1644         (cgraph_optimize): Assemble the decls after expanding.
1645
1646 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
1647
1648         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
1649         subvars get marked properly in tags for grouping.
1650         (add_pointed_to_var): Mark only actual pointed to
1651         variables/subvars in addresses needed.
1652         (create_overlap_variables_for): Clear call clobbered on original
1653         variable.
1654         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
1655         addresable vars with subvars into list.
1656         * tree-ssa.c (verify_ssa_name): Verify original is not used where
1657         subvar should be.
1658
1659 2005-03-30  Richard Henderson  <rth@redhat.com>
1660
1661         * cgraph.h (struct cgraph_node): Add alias.
1662         * varasm.c (assemble_alias): Set it.
1663         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
1664         avoid calling cgraph_expand_function.
1665
1666 2005-03-30  Tom Tromey  <tromey@redhat.com>
1667
1668         * tree.def (FILE_TYPE): Removed.
1669         * typeclass.h (enum type_class): Removed file_type_class.
1670         * dwarf2out.c (is_base_type): Updated.
1671         (gen_type_die): Likewise.
1672         * dbxout.c (dbxout_type): Updated.
1673         * builtins.c (type_to_class): Updated.
1674         * tree.c (type_contains_placeholder_1): Updated.
1675         * config/sparc/sparc.c (sparc_type_code): Updated.
1676         * config/ia64/ia64.c (hfa_element_mode): Updated.
1677         * expr.c (count_type_elements): Updated.
1678         * stor-layout.c (layout_type): Updated.
1679         * tree-inline.c (remap_type): Updated.
1680         * tree-pretty-print.c (dump_generic_node): Updated.
1681
1682 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
1683
1684         * builtins.c (expand_builtin_powi): Fix mode of
1685         2nd argument to match int.
1686         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
1687         2nd argument type to int.
1688         * libgcc2.c: Change prototype of __powi* functions to use
1689         int.
1690
1691 2005-03-30  Dale Johannesen  <dalej@apple.com>
1692
1693         PR middle-end/19225
1694         * calls.c (expand_call):  Flush pending deferrals before
1695         throwing call.
1696
1697 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
1698
1699         PR c/772
1700         PR c/17913
1701         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
1702         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
1703         c_label_context, label_context_stack): New.
1704         * c-decl.c (define_label): Check for jumps into statement
1705         expressions.  Add label to list of defined labels.
1706         (start_function): Push context on label_context_stack.
1707         (finish_function): Pop context from label_context_stack.
1708         * c-typeck.c (label_context_stack): New.
1709         (c_finish_goto_label): Check for jumps into statement
1710         expressions.  Add label to list of jumped to labels.
1711         (struct c_switch): Add blocked_stmt_expr.
1712         (c_start_case): Initialize it.
1713         (do_case): Check it.
1714         (c_finish_case): Verify !blocked_stmt_expr.
1715         (c_begin_stmt_expr):  Push context on label_context_stack.
1716         Increment blocked_stmt_expr.  Mark labels jumped to from outside
1717         as undefinable.
1718         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
1719         defined in the statement expression and no longer jumpable to.
1720         Mark labels jumped to from just outside the statement expression
1721         as again definable.  Pop context from label_context_stack.
1722         * doc/extend.texi (Statement Exprs): Update.
1723
1724 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
1725
1726         PR c/20368
1727         * c-decl.c (start_function): Check for old_decl being
1728         error_mark_node.
1729
1730 2005-03-30  Ian Lance Taylor  <ian@airs.com>
1731
1732         * final.c (final): Remove prescan parameter.  Change all callers.
1733         (final_scan_insn): Remove prescan parameter.  Change all callers.
1734
1735 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
1736
1737         * tree-vectorizer.c: Fix comment typos.
1738
1739 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
1740
1741         * tree-scalar-evolution.c (instantiate_parameters_1): Return
1742         as soon as a chrec_dont_know is detected.
1743
1744 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
1745
1746         Merge from csl-arm-branch.
1747         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
1748
1749         * tlink.c (recompile_files): Do not assume that "rename" can
1750         overwrite an existing file.
1751
1752 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
1753
1754         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
1755         * gcc/configure: Regenerate.
1756
1757 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
1758
1759         * doc/install.texi: Update binutils requirement for powerpc*-linux.
1760
1761         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
1762
1763         * calls.c (struct arg_data): Update "partial" comment.
1764         (load_register_parameters): Update "nregs" comment.
1765
1766 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
1767
1768         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
1769         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
1770         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
1771         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
1772         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
1773         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
1774         than target_flags & 0.
1775         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
1776         (iq2000_arch, iq2000_parse_cpu): Delete.
1777         (TARGET_HANDLE_OPTION): Override default.
1778         (iq2000_handle_option): New function.
1779         (override_options): Remove -march= and -mcpu= handling.
1780         * config/iq2000/iq2000.opt: New file.
1781
1782 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
1783
1784         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
1785         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
1786         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
1787         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
1788         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
1789         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
1790         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
1791         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
1792         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
1793         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
1794         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
1795         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
1796         (c4x_rpts_cycles_string, c4x_cpu_version_string)
1797         (TARGET_OPTIONS): Delete.
1798         (c4x_rpts_cycles, c4x_cpu_version): Declare.
1799         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
1800         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
1801         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
1802         (c4x_cpu_version_string): Delete.
1803         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1804         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
1805         equivalent -mcpu= option.
1806         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
1807         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
1808         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
1809         or clearing the appropriate MASK_* bit.
1810         (c4x_file_start): Use c4x_cpu_version.
1811         * config/c4x/c4x.opt: New file.
1812
1813 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
1814
1815         * doc/options.texi: Document the new MaskExists flag.
1816         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
1817         if the option has the MaskExists flag.
1818
1819 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
1820
1821         * opt-functions.awk (flag_set_p, test_flag): New functions.
1822         (switch_flags): Use them.
1823         * opth-gen.awk: Use flag_set_p to check for flags.
1824         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
1825
1826 2005-03-30  Ian Lance Taylor  <ian@airs.com>
1827
1828         * config.host (i[34567]86-*-mingw32*): Don't set
1829         host_can_use_collect2 to no.
1830
1831 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
1832
1833         PR target/20203
1834         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
1835         Remove convert_memory_address call duplicating that in memory_address.
1836
1837 2005-03-29  Richard Henderson  <rth@redhat.com>
1838
1839         PR c/20519
1840         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
1841         (build_compound_literal): Likewise.  Propagate decl type into the
1842         initializer.
1843         (finish_decl): Likewise.  Use new return value from complete_array_type
1844         for zero sized arrays.
1845         (complete_array_type): Move ...
1846         * c-common.c (complete_array_type): ... here.  Change first argument
1847         to pointer-to-type-node.  Consistently use sizetype for the index
1848         except for zero sized arrays.  Detect zero sized arrays for pedantic
1849         mode diagnostics.  Create a new type node instead of modifying the
1850         old node in place.
1851         * c-tree.h (complete_array_type): Move decl ...
1852         * c-common.h (complete_array_type): ... here.
1853
1854 2005-03-29  Richard Henderson  <rth@redhat.com>
1855
1856         PR tree-opt/19108
1857         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
1858
1859 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
1860
1861         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
1862         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
1863         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
1864         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
1865
1866 2005-03-29  Eric Christopher  <echristo@redhat.com>
1867
1868         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
1869         truthvalue conversion removal.
1870
1871 2005-03-29  Ian Lance Taylor  <ian@airs.com>
1872
1873         PR bootstrap/14316
1874         * collect2.c: Never include <vfork.h>.
1875         (VFORK_STRING, vfork): Don't define.
1876         (pid): Remove global variable.
1877         (handler): Call raise instead of kill (getpid(), ...).
1878         (collect_wait): Add pex parameter.  Change all callers.  Use
1879         pex_get_status rather than pwait.
1880         (do_wait): Add pex parameter.  Change all callers.
1881         (collect_execute): Return struct pex_obj * rather than void.  Use
1882         pex routines rather than pexecute.
1883         (fork_execute): Get pex_obj from collect_execute, and pass it to
1884         do_wait.
1885         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
1886         Only declare quit_handler if SIGQUIT is defined.
1887         (scan_libraries): Likewise.
1888         * collect2.h (collect_execute): Update declaration.
1889         (collect_wait): Update declaration.
1890         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
1891         pass it to collect_wait.
1892
1893 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
1894
1895         PR c/20672
1896         * c-parser.c (c_parser_compound_statement_nostart): Give error
1897         message for EOF instead of just setting parser->error.
1898
1899 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
1900
1901         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
1902         (slpeel_update_phi_nodes_for_guard1): New function.
1903         (slpeel_update_phi_nodes_for_guard2): New function.
1904         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
1905         of slpeel_update_phi_nodes_for_guard.
1906         (vectorize_loops): Remove call to loop_closed_rewrite.
1907         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
1908         assertion.
1909
1910 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
1911
1912         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
1913         (TARGET_LITTLE_ENDIAN): New macro.
1914         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
1915         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
1916         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
1917         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
1918         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
1919         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
1920         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
1921         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
1922         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
1923         (TARGET_OPTIONS): Delete.
1924         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
1925         (CACHE_FLUSH_TRAP): Turn into an integer.
1926         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
1927         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
1928         -mflush-trap is in use.
1929         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
1930         (m32r_cache_flush_trap_string): Delete.
1931         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
1932         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
1933         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
1934         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1935         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
1936         -mmodel= and -msdata= handling from...
1937         (m32r_init): ...here.
1938         * config/m32r/m32r.opt: New file.
1939
1940 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
1941
1942         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
1943         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
1944         * tree-vect-analyze.c (vect_object_analysis): additional parm
1945         pass back a "struct ptr_info_def *" with the points-to info.
1946         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
1947         statement using info returned from vect_object_analysis.
1948         * tree-vect-transform.c (update_vuses_to_preheader): New function.
1949         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
1950         for virtual uses and defs when creating a replacement vector
1951         reference.  Call duplicate_ssa_name_ptr_info to define points-to
1952         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
1953         (vectorizable_store): copy_virtual_operands and update
1954         definition statements.
1955         (vectorizable_load): copy_virtual_operands.  Remove call to
1956         mark_call_clobbered_vars_to_rename for call to "const" builtin.
1957         * tree-vectorizer.c (vectorize_loops): Remove calls to
1958         rewrite_into_ssa and bitmap_clear (vars_to_rename).
1959         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
1960         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
1961         define macro STMT_VINFO_PTR_INFO for use in accessing.
1962         * tree.h add export of duplicate_ssa_name_ptr_info.
1963         * rs6000.c (altivec_init_builtins): Declare builtin function
1964         __builtin_altivec_mask_for_load to be "const".
1965
1966 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
1967
1968         PR middle-end/20622
1969         * cgraph.h (struct cgraph_varpool_node): Add alias field.
1970         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
1971         assemble_variable on aliases.
1972         * varasm.c (assemble_alias): Set node->alias.
1973         * toplev.c (wrapup_global_declarations): Don't call
1974         rest_of_decl_compilation on aliases again.
1975
1976 2005-03-29  Paul Brook  <paul@codesourcery.com>
1977
1978         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
1979         * config/arm/arm.c (arm_dbx_register_number): New function.
1980         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
1981
1982 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
1983
1984         PR middle-end/20263
1985         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
1986         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
1987
1988 2005-03-29  Dale Johannesen <dalej@apple.com>
1989
1990         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
1991         $(TREE_H) and $(COVERAGE_H).
1992         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
1993         * opts.c (common_handle_option): Enable tree-based value transforms.
1994         * toplev.c (process_options): Ditto.
1995         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
1996         refers to references to this type.
1997         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
1998         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
1999         for may_be_more, may_be_less.
2000         (rtl_gen_pow2_profiler): Adjust.
2001         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
2002         (rtl_gen_one_value_profiler): Adjust.
2003         (rtl_gen_const_delta_profiler): Adjust.
2004         * tree-profile.c (tree_gen_interval_profiler): Implement.
2005         (tree_gen_pow2_profiler): Ditto.
2006         (tree_gen_one_value_profiler): Ditto.
2007         (tree_profiling): New.
2008         (pass_tree_profile): Reference it.
2009         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
2010         tree.h, gcov-io.h.
2011         (insn_divmod_values_to_profile): Rename to
2012         rtl_divmod_values_to_profile. Adjust.
2013         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
2014         (insn_prefetch_values_to_profile): Adjust.
2015         (rtl_value_profile_transformations): Adjust.
2016         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
2017         (gen_mod_pow2): Rename to rtl_mod_pow2.
2018         (gen_mod_subtract): Rename to rtl_mod_subtract.
2019         (divmod_fixed_value_transform): Rename to
2020         rtl_divmod_fixed_value_transform.
2021         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
2022         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
2023         (rtl_find_values_to_profile): Adjust.
2024         (tree_value_profile_transformations): Implement.
2025         (tree_divmod_values_to_profile): New.
2026         (tree_values_to_profile): New.
2027         (tree_divmod_fixed_value): New.
2028         (tree_mod_pow2): New.
2029         (tree_mod_subtract): New.
2030         (tree_divmod_fixed_value_transform): New.
2031         (tree_mod_pow2_value_transform): New.
2032         (tree_mod_subtract_transform): New.
2033         (tree_find_values_to_profile): Implement.
2034         * profile.c (instrument_values):  Free histograms.
2035         (compute_value_histograms): Adjust. Implement tree version.
2036
2037 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
2038
2039         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
2040         * config/i386/i386.c (output_fix_trunc): Add new round_mode
2041         variable.  Output "fldcw" depending on round_mode.
2042         * config/i386/i386.md (UNSPEC_FIST): New.
2043         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
2044         New isns patterns to implement lrint and llrint built-ins as x87
2045         intrinsic function.
2046         (fistdi2, fist<mode>2 splitters): New splitters.
2047         (lrint<mode>2): New expanders.
2048
2049 2005-03-28  Ian Lance Taylor  <ian@airs.com>
2050
2051         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
2052         0 when calling final_scan_insn.
2053
2054 2005-03-28  Jan Hubicka  <jh@suse.cz>
2055
2056         PR middle-end/20635
2057         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
2058         as needed.
2059
2060         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
2061         types where possible.
2062
2063 2005-03-26  Per Bothner  <per@bothner.com>
2064
2065         Make -f[no-]show-column also control non-cpp diagnostics.
2066         * c.opt (fshow-column): Move option from here ...
2067         * common.opt (fshow-column): ... to here.
2068         * diagnostic.c (diagnostic_build_prefix): Only print column number
2069         if flag_show_column.
2070
2071 2005-03-27  Steven Bosscher  <stevenb@suse.de>
2072
2073         * vax-protos.h (vax_output_int_move, vax_output_int_add,
2074         vax_output_conditional_branch): New prototypes.
2075         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
2076         extracted from vax.md mov and add patterns.
2077         (vax_output_conditional_branch): New function to output conditional
2078         branch instructions.
2079         * vax.md: Use mode macros for arithmetic and mov patterns.
2080         Use code macros for the jump patterns.
2081
2082 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
2083
2084         * Makefile.in (libbackend.o): Depend on version files;
2085         add custom generation command.
2086
2087 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
2088
2089         PR target/20636
2090         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
2091         sure that we have a REG before getting its REGNO.
2092
2093 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2094
2095         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
2096         * builtins.def (BUILT_IN_STRNDUP): New.
2097
2098 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
2099
2100         PR tree-optimization/20470
2101         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
2102         ABS(x-y).
2103
2104 2005-03-25  Mike Stump  <mrs@apple.com>
2105
2106         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
2107         sized objects.
2108
2109 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
2110
2111         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
2112         Use our own structure definitions.
2113
2114         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
2115         (fix_truncdfsi2): Allow registers or memory as destination.
2116         When TARGET_PPC_GFXOPT, generate simplified pattern.
2117         (fix_truncdfsi2_internal): Use define_insn_and_split.
2118         (fix_truncdfsi2_internal_gfxopt): New.
2119         (fctiwz): Don't confuse register allocation by giving it no choices.
2120         (stfiwx): New.
2121         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
2122         (EXTRA_MEMORY_CONSTRAINT): Likewise.
2123         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
2124         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
2125
2126 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2127
2128         * dominance.c (free_dominance_info): Speed up by freeing et
2129         data structures without maintaining other nodes.
2130         * et-forest.c (et_free_tree_force): New.
2131         * et-forest.h: Add a prototype for et_free_tree_force.
2132
2133         * tree.c (get_set_constructor_bits,
2134         get_set_constructor_bytes): Remove.
2135         * tree.h: Remove the corresponding prototypes.
2136
2137 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
2138
2139         PR target/15491
2140         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
2141         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
2142         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
2143         PRE_DEC, NEG and NOT.
2144
2145 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2146
2147         * fold-const.c: Convert uses of fold (build (...)) to
2148         fold_buildN.
2149
2150 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
2151
2152         PR rtl-optimization/20249
2153         * cse.c (insert_regs): Do not record equivalence of registers in
2154         different modes.
2155
2156 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2157
2158         * emit-rtl.c (reverse_comparison): Remove.
2159         * rtl.h: Remove the corresponding prototype.
2160
2161 2005-03-24  James E Wilson  <wilson@specifixinc.com>
2162
2163         * doc/install.texi (--enable-altivec): Delete docs.
2164
2165 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
2166
2167         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
2168         SFmode and DFmode before reload when
2169         flag_unsafe_math_optimizations not enabled.
2170
2171 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
2172
2173         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
2174
2175         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
2176         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
2177
2178 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2179
2180         * configure.ac (enable-checking): Add 'runtime' option.
2181         * doc/install.texi (enable-checking): Document 'runtime' checking.
2182         * tsystem.h (gcc_assert, gcc_unreachable): Define.
2183         * config.in: Regenerated.
2184         * configure: Regenerated.
2185
2186 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
2187
2188         * optabs.h (enum optab_index): Remove OTI_llrint.
2189         (llrint_optab): Remove macro.
2190         * optabs.c (init_optabs): Remove llrint_optab initialization.
2191         * genopinit.c (optabs): Remove llrint_optab implementation.
2192         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
2193         using lrint_optab.
2194
2195 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
2196
2197         PR rtl-optimization/20532
2198         * simplify-rtx.c (simplify_binary_operation_1): Protect from
2199         overflow when adding coefficients for PLUS or MINUS.
2200         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
2201         two as multiplier.
2202
2203 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2204
2205         * langhooks.h (truthvalue_conversion): Remove.
2206         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
2207         LANG_HOOKS_TRUTHVALUE_CONVERSION.
2208         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
2209         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
2210         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2211
2212 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2213
2214         * params.def: Fix a typo.
2215         * config/mips/mips.c: Follow the spelling convensions.
2216         * doc/invoke.texi: Fix typos.
2217
2218 2005-03-18  Dale Johannese  <dalej@apple.com>
2219
2220         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
2221
2222 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
2223
2224         Fix PR tree-optimization/20601
2225
2226         * tree-ssa-pre.c (insert_aux): Add missing condition to
2227         constification.
2228
2229 2005-03-23  Ian Lance Taylor  <ian@airs.com>
2230
2231         * final.c (final_scan_insn): Don't remove no-op instructions.
2232         * reload1.c (reload): Remove simple no-op instructions even when
2233         not optimizing.
2234
2235 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
2236
2237         PR tree-optimization/20501
2238         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
2239         reporting that peeling for alignment is applied moved to...
2240         * (vect_analyze_data_refs_alignment): Here.
2241
2242 2005-03-23  Ian Lance Taylor  <ian@airs.com>
2243
2244         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
2245
2246 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2247
2248         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
2249         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
2250
2251 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
2252
2253         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
2254         imply that this is called once, independent of asms in code.
2255         Adjust to now being pased output and input lists.  Mention helper
2256         function decl_overlaps_hard_reg_set_p.
2257         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
2258         hook_tree_tree_identity and to take three trees, returning third.
2259         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
2260         prototype.
2261         * stmt.c: include hard-reg-set.h before tree.h.
2262         (decl_overlaps_hard_reg_set_p): New function, broken out from...
2263         (decl_conflicts_with_clobbers_p): Call
2264         decl_overlaps_hard_reg_set_p.
2265         (expand_asm_operands): Pass output and input lists in call to
2266         targetm.md_asm_clobbers.
2267         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
2268         hook_tree_tree_tree_tree_3rd_identity.
2269         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
2270         parameters.
2271         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
2272         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
2273         parameters, first two unused.
2274         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
2275         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
2276         in constraint letters and MOF is not mentioned as a asm-declared
2277         register in neither of the input and output lists.
2278
2279 2005-03-23  DJ Delorie  <dj@redhat.com>
2280
2281         * optabs.c (expand_binop): Make sure the first subword's result
2282         gets stored.
2283
2284 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2285
2286         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
2287         Call c_common_truthvalue_conversion rather than
2288         lang_hooks.truthvalue_conversion.
2289         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
2290         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
2291         c-typeck.c.
2292         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
2293         c_common_truthvalue_conversion.
2294         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
2295         c_parser_conditional_expression, c_parser_binary_expression): Call
2296         c_objc_common_truthvalue_conversion.
2297         * c-typeck.c (build_unary_op): Call
2298         c_objc_common_truthvalue_conversion.
2299         (build_conditional_expr): Do not call
2300         lang_hooks.truthvalue_conversion.
2301         (build_binary_op): Call c_common_truthvalue_conversion.
2302         (c_objc_common_truthvalue_conversion): Moved from
2303         c-objc-common.c.  Call default_function_array_conversion instead
2304         of default_conversion.
2305
2306 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2307
2308         * c-common.h (default_conversion): Remove.
2309         (perform_integral_promotions): Add.
2310         * c-tree.h (default_conversion): Add.
2311         * c-typeck.c (perform_integral_promotions): New, split out from
2312         default_conversion.
2313         * c-common.c (check_case_value): Use perform_integral_promotions,
2314         not default_conversion.
2315         (c_add_case_label): Don't continue processing case label after
2316         found to be pointer.
2317
2318 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
2319
2320         * gcc.c (do_spec_1): Do not add a -L path for a directory in
2321         the prefix list if we have already added a multilib directory
2322         based on that path.
2323         (main): Do not add MD_EXEC_PREFIX to the list of directories to
2324         search with -L.
2325
2326 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
2327
2328         * reload1.c (indirect_symref_ok, reload_obstack): Make them
2329         static.
2330         * reload.h: Remove the prototype for indirect_symref_ok.
2331
2332         * reload1.c (indirect_symref_ok): Make it global.
2333         * reload.h: Add a prototype for indirect_symref_ok.
2334
2335 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2336
2337         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
2338         ashlhi3 expander.
2339
2340 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
2341
2342         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
2343
2344 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
2345
2346         * c-opts.c (c_common_parse_file): Only start/end main source file
2347         if debug hooks says the writer wants it.
2348         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
2349         member.
2350         (xcoff_debug_hooks): Ditto.
2351         * debug.c (do_nothing_hooks): Ditto.
2352         * debug.h (gcc_debug_hooks): Ditto.
2353         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
2354         * sdbout.c (sdb_debug_hooks): Ditto.
2355         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
2356
2357 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
2358
2359         * doc/extend.texi: Deprecate C++ min/max operators.
2360
2361 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
2362
2363         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
2364         artificial original candidates.
2365
2366 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
2367             Jan Hubicka  <jh@suse.cz>
2368             Steven Bosscher <stevenb@suse.de>
2369
2370         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
2371         call cost based on argument sizes.
2372         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
2373         inlining.
2374         * params.def: (max-inline-inssn-single): Set to 450.
2375         (max-inline-insns-auto): Set to 90.
2376         (max-inline-insns-recursive): Set to 450
2377         (max-inline-insns-recursive-auto): Set to 450.
2378         (large-function-insns): Set to 2700.
2379         (inline-call-cost): New parameter.
2380         * tree-inline.c (estimate_move_cost): New function.
2381         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
2382         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
2383         based on arguments.
2384         * tree-inline.h (estimate_move_cost): Declare.
2385         * invoke.texi: (max-inline-inssn-single): Change default to 450.
2386         (max-inline-insns-auto): Change default to 90.
2387         (max-inline-insns-recursive): Change default to 450
2388         (max-inline-insns-recursive-auto): Change default to 450.
2389         (large-function-insns): Change default to 2700.
2390         (inline-call-cost): Document new parameter.
2391
2392 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
2393
2394         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
2395         (TARGET_DEFAULT): Delete.
2396         * config/i860/i860.opt: New file.
2397
2398 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
2399
2400         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
2401         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
2402         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
2403         (frv_sched_lookahead): Delete.
2404         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
2405         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
2406         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
2407         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
2408         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
2409         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
2410         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
2411         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
2412         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
2413         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
2414         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
2415         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
2416         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
2417         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
2418         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
2419         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
2420         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
2421         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
2422         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
2423         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
2424         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
2425         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
2426         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
2427         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
2428         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
2429         (frv_sched_lookahead): Delete.
2430         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
2431         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2432         (frv_handle_option): New function.  Move -mcpu= handling from...
2433         (frv_override_options): ...here.  Remove handling of other
2434         TARGET_OPTIONS.
2435         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
2436         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
2437         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
2438         and TARGET_NO_MULTI_CE.
2439         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
2440         !TARGET_VLIW_BRANCH.
2441         * config/frv/frv.opt: New file.
2442
2443 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
2444
2445         * fold-const.c (fold_ternary): Take decomposed arguments of
2446         CALL_EXPR.
2447         (fold): Update a call to fold_ternary.
2448
2449         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
2450         * tree.h: Add corresponding prototypes.
2451
2452 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
2453
2454         PR target/20561
2455         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
2456         between jump table and its label.
2457         * final.c (shorten_branches): Handle notes in between ADDR_VEC
2458         resp. ADDR_DIFF_VEC and the label preceeding it.
2459         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
2460         is emitted in the right section.
2461
2462 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
2463
2464         * fold-const.c (fold_unary, fold_binary): Update comments
2465         about arguments.
2466
2467 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
2468
2469         PR rtl-optimization/20527
2470         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
2471         REG_INC note, test that the register also isn't mentioned in PRED
2472         or SUCC.
2473
2474 2005-03-22  Ben Elliston  <bje@au.ibm.com>
2475
2476         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
2477         and definition.
2478
2479 2005-03-21  Mike Stump  <mrs@apple.com>
2480
2481         * varasm.c (default_assemble_visibility): Remove extra ().
2482
2483 2005-03-21  Roger Sayle  <roger@eyesopen.com>
2484
2485         PR middle-end/20557
2486         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
2487         to determine whether a block can be duplicated, rather than test
2488         whether the block contains noncopyable insns ourselves.
2489
2490 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2491
2492         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
2493         predicates.
2494
2495 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
2496
2497         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
2498
2499 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
2500
2501         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
2502         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
2503         * config/fr30/fr30.opt: New file.
2504
2505 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
2506
2507         Fix PR tree-optimization/20542
2508
2509         * tree-flow-inline.h (overlap_subvar): Move to here.
2510         * tree-ssa-operands.c: From here.
2511         * tree-flow.h (overlap_subvar): Declare.
2512         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
2513         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
2514         for variables with subvars.
2515
2516 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
2517
2518         PR middle-end/20177
2519         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
2520         * modulo-sched.c (const_iteration_count): Return on NULL
2521         pre-header.
2522         (print_node_sched_params): Return on NULL dump_file.
2523         (generate_reg_moves): Handle reg-anti dependencies and disregard
2524         closing branch when generating register moves.
2525         (sms_schedule): Mark the SMSed block dirty.
2526         * passes.c (rest_of_handle_sms): Call update_life_info for all
2527         basic-blocks.
2528         * testsuite/gcc.dg/20050321-1.c: New test.
2529
2530 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
2531
2532         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
2533         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2534         movqi_internal): Likewise.
2535
2536 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
2537
2538         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
2539         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
2540         xtensa_b4const): Delete prototypes.
2541         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
2542         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
2543         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
2544         xtensa_extra_constraint): New prototypes.
2545         (add_operand, arith_operand, nonimmed_operand, mem_operand,
2546         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
2547         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
2548         move_operand, const_float_1_operand, fpmem_offset_operand,
2549         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
2550         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
2551         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
2552         argument type to HOST_WIDE_INT.
2553         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
2554         xtensa_mask_immediate): Likewise.
2555         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
2556         Likewise.  Also make these functions static.
2557         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
2558         (xtensa_const_ok_for_letter_p): New.
2559         (add_operand, arith_operand, nonimmed_operand, mem_operand,
2560         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
2561         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
2562         move_operand, const_float_1_operand, fpmem_offset_operand,
2563         branch_operator, ubranch_operator, boolean_operator): Move to
2564         predicates.md.
2565         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
2566         (xtensa_mem_offset): Change return type to bool.
2567         (xtensa_extra_constraint): New.
2568         (gen_int_relational): Update type of const_range_p function pointer.
2569         Use xtensa_b4const_or_zero.
2570         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
2571         xtensa_const_ok_for_letter_p.  Update comments.
2572         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
2573         (PREDICATE_CODES): Delete.
2574         * config/xtensa/xtensa.md: Include predicates.md.
2575         * config/xtensa/predicates.md: New file.
2576
2577 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2578
2579         * config/v850/v850-protos.h: Remove the prototypes for
2580         reg_or_int9_operand, reg_or_const_operand,
2581         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
2582         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
2583         movsi_source_operand, power_of_two_operand,
2584         not_power_of_two_operand, special_symbolref_operand,
2585         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
2586         register_is_ok_for_epilogue.
2587         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
2588         reg_or_int9_operand, reg_or_const_operand,
2589         call_address_operand, special_symbolref_operand,
2590         movsi_source_operand, power_of_two_operand,
2591         not_power_of_two_operand, register_is_ok_for_epilogue,
2592         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
2593         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
2594         predicates.md.
2595         * config/v850/v850.h (PREDICATE_CODES): Remove.
2596         * config/v850/v850.md: Include predicates.md.
2597         * config/v850/predicates.md: New.
2598
2599 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
2600
2601         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
2602         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
2603         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
2604         (itoolsdir, itoolsdatadir): Move definition above new first use.
2605         (install-itoolsdirs): New rule.
2606         (install-mkheaders): Depend on install-itoolsdirs, not
2607         install-include-dir.
2608
2609 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2610
2611         * tree-into-ssa.c: Remove obsolete comments.
2612
2613 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
2614
2615         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
2616         unrolling if -fpeel-loops is specified, too.
2617         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2618         Remove superfluous check for flag_unroll_loops.
2619
2620 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
2621
2622         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
2623         (lrint_optab, llrint_optab): Define corresponding macros.
2624         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
2625         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
2626         pattern and llrint_optab using llrintdi2 patterns.
2627         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
2628         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
2629         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
2630         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
2631         flag_unsafe_math_optimizations is set.
2632
2633 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
2634
2635         * combine.c (combine_simplify_rtx, simplify_if_then_else,
2636         simplify_logical, if_then_else_cond, known_cond,
2637         simplify_comparison): Adjust calls to reverse_comparison.
2638         Don't use combine_reversed_comparison_code).
2639         (combine_reversed_comparison_code): Remove.
2640         (reversed_comparison): Using reversed_comparison_code, move it...
2641         * jump.c (reversed_comparison): ... here.
2642         * rtl.h (reversed_comparison): Add prototype.
2643
2644 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2645
2646         * builtins.c (fold_builtin): Take decomposed arguments of
2647         CALL_EXPR.
2648         * fold-const.c (fold_ternary): Update a call to fold_builtin.
2649         * gimplify.c (gimplify_call_expr): Likewise.
2650         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
2651         * tree.h: Update the prototype of fold_builtin.
2652
2653 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
2654
2655         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
2656         * rtlhooks.c (gen_lowpart_no_emit_general): New.
2657         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
2658         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
2659         * simplify-rtx.c (simplify_binary_operation_1): Use it.
2660
2661 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2662
2663         * builtins.c (fold_builtin_1): Take decomposed arguments of
2664         CALL_EXPR.
2665         (fold_builtin): Update a call to fold_builtin_1.
2666
2667 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
2668
2669         PR other/20564
2670         * gcov.c (output_lines): Only output function block summary when
2671         outputting branch information.
2672         * doc/gcov.texi: Document format of preamble and additional block
2673         information lines.
2674
2675 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
2676
2677         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
2678         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
2679         the defaults false if BITS_PER_UNIT != 8.
2680         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
2681         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
2682         than BITS_PER_UNIT != 8.
2683         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
2684         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
2685         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
2686         #undefs.
2687         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
2688         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
2689
2690 2005-03-20  Roger Sayle  <roger@eyesopen.com>
2691
2692         PR middle-end/20539
2693         * fold-const.c (fold_binary): Fix type mismatch between
2694         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
2695         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
2696         for non-truth-valued expressions.
2697
2698         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
2699         and FUNCTION_DECL in the main switch.
2700         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2701         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
2702         we also need to convert their operands to match.
2703         <TRUTH_NOT_EXPR>: Likewise.
2704
2705 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
2706
2707         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
2708         diagnostic without checking whether an lvalue.
2709         * c-common.h (lvalue_p): Remove.
2710         (enum lvalue_use): Update comment.
2711         (lvalue_or_else): Replace by lvalue_error.
2712         * c-typeck.c (lvalue_p): Make static.
2713         (lvalue_or_else): New.  Call lvalue_error.
2714
2715 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
2716
2717         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
2718         (function_arg_advance): Use rs6000_parm_start.
2719         (function_arg, rs6000_arg_partial_bytes): Likewise.
2720
2721 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
2722
2723         * c-common.c (check_case_value): Adjust comment about stripping
2724         NOPs.
2725         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
2726         * c-typeck.c (default_conversion, convert_arguments,
2727         build_modify_expr, convert_for_assignment, store_init_value,
2728         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
2729         manually.  Remove inaccurate comments.
2730
2731 2005-03-20  Roger Sayle  <roger@eyesopen.com>
2732             Joseph S. Myers  <joseph@codesourcery.com>
2733
2734         * varasm.c (do_assemble_alias): Restore comment describing function.
2735         Annotate the target parameter as potentially unused.
2736
2737 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2738
2739         PR target/18551
2740         * config/avr/avr.c (avr_output_function_prologue): Do not use
2741         current_function_name() in a label, use a local label instead.
2742
2743 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
2744
2745         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
2746         flag_finite_math_only, not flag_unsafe_math_optimizations.
2747
2748 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2749
2750         * builtins.c (fold_builtin_1): Update a call to
2751         targetm.fold_builtin.
2752         * hooks.c (hook_tree_tree_bool_null): Rename to
2753         hook_tree_tree_tree_bool_null.  Take one more argument of type
2754         tree.
2755         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
2756         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
2757         hook_tree_tree_tree_bool_null.
2758         * target.h (gcc_target): Update the prototype of fold_builtin.
2759         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
2760         arguments of CALL_EXPR.
2761         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
2762         new prototype.
2763
2764 2005-03-20  Jan Hubicka  <jh@suse.cz>
2765
2766         * cgraph.h (cgraph_node): Add prev_clone pointer.
2767         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
2768         (cgraph_clone_node): Produce doubly linked chain.
2769
2770 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
2771
2772         * c-common.c (handle_aligned_attribute, check_function_sentinel,
2773         get_nonnull_operand, handle_sentinel_attribute,
2774         check_function_arguments_recurse): Do not strip NOPS from
2775         INTEGER_CSTs.
2776         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
2777         Likewise.
2778         * c-format.c (get_constant): Likewise.
2779         * c-parser.c (c_parser_postfix_expression): Likewise.
2780         * c-typeck.c (set_init_index): Likewise.
2781         (convert_arguments): Don't check for NOP_EXPR containing integer
2782         constant.
2783
2784 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2785
2786         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
2787         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
2788         Take decomposed arguments of CALL_EXPR.
2789         (fold_builtin_1): Update calls to the functions mentioned
2790         above.
2791
2792 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
2793
2794         * c-decl.c (check_bitfield_type_and_width): Require bit-field
2795         width to have integer type.
2796         (build_enumerator): Require enumerator value to have integer type.
2797
2798 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
2799
2800         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
2801         to __builtin_inff.
2802
2803 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
2804
2805         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
2806         std=iso9899:199x): Correct descriptions.
2807
2808 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
2809
2810         * config.gcc: Consistently use solaris2.1[0-9]* instead of
2811         solaris2.1[0-9].
2812
2813 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2814
2815         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
2816         of CALL_EXPR.
2817         (expand_builtin_memcpy, fold_builtin_1): Update calls to
2818         fold_builtin_memcpy.
2819
2820         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
2821         arguments of CALL_EXPR.
2822         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
2823         fold_builtin_found, fold_builtin_1): Update calls to
2824         fold_trunc_transparent_mathfn.
2825
2826 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2827
2828         PR middle-end/20493
2829         * fold-const.c (fold_widened_comparison): Don't optimize casts of
2830         function pointers on targets that require function pointer
2831         canonicalization.
2832         (fold_sign_changed_comparison): Likewise.
2833
2834 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
2835
2836         * combine.c (try_combine): When changing the mode of a hard reg, make
2837         sure that doing so is valid.
2838
2839 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
2840
2841         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
2842         (TARGET_HANDLE_OPTION): Override default.
2843         (avr_handle_option): New function.
2844         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
2845         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
2846         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
2847         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
2848         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
2849         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
2850         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
2851         (TARGET_OPTIONS): Delete.
2852         * config/avr/avr.opt: New file.
2853
2854 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2855
2856         * config/m32r/m32r-protos.h: Remove the prototypes for
2857         call_address_operand, symbolic_operand, seth_add3_operand,
2858         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
2859         reg_or_uint16_operand, reg_or_cmp_int16_operand,
2860         two_insn_const_operand, move_src_operand,
2861         move_double_src_operand, move_dest_operand,
2862         eqne_comparison_operator, signed_comparison_operator,
2863         large_insn_p, conditional_move_operand, carry_compare_operand,
2864         m32r_block_immediate_operand, extend_operand,
2865         reg_or_eq_int16_operand, int8_operand, and
2866         reg_or_zero_operand.
2867         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
2868         seth_add3_operand, int8_operand, cmp_int16_operand,
2869         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
2870         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
2871         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
2872         move_double_src_operand, move_dest_operand,
2873         eqne_comparison_operator, signed_comparison_operator,
2874         extend_operand, small_insn_p, large_insn_p,
2875         conditional_move_operand, carry_compare_operand,
2876         m32r_block_immediate_operand): Move to predicates.md.
2877         (MAX_MOVE_BYTES): Move to m32r.h.
2878         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
2879         * config/m32r/m32r.md: Include predicates.md.
2880         * config/m32r/predicates.md: New.
2881
2882 2005-03-18  James E Wilson  <wilson@specifixinc.com>
2883
2884         PR c++/19769
2885         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
2886         origin.
2887
2888 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2889
2890         * config/mn10300/mn10300-protos.h: Remove the prototypes for
2891         call_address_operand, const_8bit_operand.
2892         * config/mn10300/mn10300.c (call_address_operand,
2893         const_8bit_operand, const_1f_operand): Move to predicates.md.
2894         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
2895         * config/mn10300/mn10300.md: Include predicates.md.
2896         * config/mn10300/predicates.md: New.
2897
2898 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
2899
2900         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
2901         declarations in diagnostics and %E for identifiers, not %s.
2902
2903 2005-03-18  Jan Hubicka  <jh@suse.cz>
2904             Dale Johannesen  <dalej@apple.com>
2905
2906         * basic-block.h (scale_bbs_frequencies_int,
2907         scale_bbs_frequencies_gcov_type): Declare.
2908         * cfg.c (RDIV): New macro.
2909         (update_bb_frequency_for_threading): Fix.
2910         * basic-block.h (scale_bbs_frequencies_int,
2911         scale_bbs_frequencies_gcov_type): New.
2912         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
2913         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
2914         scale_bbs_frequencies_int.
2915         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
2916
2917 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2918
2919         * config/m32r/m32r-protos.h: Remove the prototypes for
2920         call_address_operand, symbolic_operand, seth_add3_operand,
2921         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
2922         reg_or_uint16_operand, reg_or_cmp_int16_operand,
2923         two_insn_const_operand, move_src_operand,
2924         move_double_src_operand, move_dest_operand,
2925         eqne_comparison_operator, signed_comparison_operator,
2926         large_insn_p, conditional_move_operand, carry_compare_operand,
2927         m32r_block_immediate_operand, extend_operand,
2928         reg_or_eq_int16_operand, int8_operand, and
2929         reg_or_zero_operand.
2930         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
2931         seth_add3_operand, int8_operand, cmp_int16_operand,
2932         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
2933         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
2934         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
2935         move_double_src_operand, move_dest_operand,
2936         eqne_comparison_operator, signed_comparison_operator,
2937         extend_operand, small_insn_p, large_insn_p,
2938         conditional_move_operand, carry_compare_operand,
2939         m32r_block_immediate_operand): Move to predicates.md.
2940         (MAX_MOVE_BYTES): Move to m32r.h.
2941         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
2942         * config/m32r/m32r.md: Include predicates.md.
2943         * config/m32r/predicates.md: New.
2944
2945         * config/pa/pa-protos.h: Add prototypes for magic_milli and
2946         shadd_constant_p.
2947         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
2948         symbolic_operand, symbolic_memory_operand,
2949         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
2950         indexed_memory_operand, move_dest_operand, move_src_operand,
2951         prefetch_cc_operand, prefetch_nocc_operand,
2952         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
2953         arith_operand, arith11_operand, pre_cint_operand,
2954         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
2955         ireg_operand, int5_operand, uint5_operand, int11_operand,
2956         uint32_operand, arith5_operand, and_operand, ior_operand,
2957         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
2958         pc_or_label_operand, div_operand, plus_xor_ior_operator,
2959         shadd_operand, movb_comparison_operator,
2960         cmpib_comparison_operator): Move to predicates.md.
2961         (magic_milli, shadd_constant_p): Make it extern.
2962         * config/pa/pa.h (PREDICATE_CODES): Remove.
2963         * config/pa/pa.md: Include predicates.md.
2964         * config/pa/predicates.md: New.
2965
2966         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
2967         predicate.
2968
2969 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2970
2971         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
2972         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
2973         config/alpha/freebsd.h, config/alpha/linux.h,
2974         config/alpha/netbsd.h, config/alpha/osf5.h,
2975         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
2976         config/h8300/h8300-protos.h, config/h8300/h8300.c,
2977         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
2978         doc/cppopts.texi: Update copyright.
2979
2980 2005-03-18  Jan Hubicka  <jh@suse.cz>
2981
2982         PR middle-end/20225
2983         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
2984         too late.
2985         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
2986         called too late.
2987
2988 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2989
2990         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
2991         VEC_safe_push.
2992
2993 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
2994
2995         * combine.c (gen_binary): Remove.
2996         (known_cond, simplify_shift_const, find_split_point,
2997         combine_simplify_rtx, simplify_if_then_else, simplify_set,
2998         simplify_logical, expand_field_assignment, extract_left_shift,
2999         force_to_mode, if_then_else_cond, apply_distributive_law,
3000         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
3001         simplify_comparison, reversed_comparison): Replace with
3002         simplify_gen_binary, simplify_gen_relational or
3003         distribute_and_simplify_rtx.
3004         (distribute_and_simplify_rtx): New function.
3005
3006 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
3007             Paolo Bonzini  <gcc.gnu.org>
3008
3009         * calls.c (setjmp_call_p, special_function_p): Update comments
3010         at the head of the functions.
3011
3012 2005-03-18  Jan Hubicka  <jh@suse.cz>
3013
3014         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
3015
3016         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
3017         function body should be released; do not proactively release function
3018         bodies in non-unit-at-a-time mode.
3019
3020 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
3021
3022         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
3023         mno-fp-ret-in-387 multilib variants.
3024
3025 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
3026
3027         * common.opt (m): Remove.
3028         * opts.c (handle_option): Pass 'm' options to set_target_switch if
3029         table lookup fails.
3030         (common_handle_option): Remove OPT_m case.
3031
3032 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
3033
3034         * builtins.c (fold_builtin_bitop): Take decomposed arguments
3035         of CALL_EXPR.
3036         (fold_builtin_1): Update a call to fold_builtin_bitop.
3037
3038         * builtins.c (fold_builtin_signbit): Take decomposed arguments
3039         of CALL_EXPR.
3040         (fold_builtin_1): Update a call to fold_builtin_signbit.
3041
3042 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
3043
3044         PR tree-optimization/20474
3045         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
3046         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
3047
3048 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3049
3050         * config/h8300/h8300-protos.h: Remove prototypes for
3051         general_operand_src, general_operand_dst, single_one_operand,
3052         single_zero_operand, call_insn_operand,
3053         two_insn_adds_subs_operand, small_call_insn_operand,
3054         jump_address_operand, bit_operand, bit_memory_operand,
3055         stack_pointer_operand, const_int_gt_2_operand,
3056         const_int_ge_8_operand, const_int_qi_operand,
3057         const_int_hi_operand, incdec_operand, bit_operator,
3058         nshift_operator, eqne_operator, gtle_operator,
3059         gtuleu_operator, iorxor_operator.
3060         Add prototypes for h8sx_shift_type h8sx_classify_shift and
3061         h8300_ldm_stm_parallel.
3062         * config/h8300/h8300.c (h8sx_shift_type,): Move to
3063         h8300-protos.h.
3064         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
3065         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
3066         (h8300_ldm_stm_parallel): Make it extern.
3067         (h8300_ldm_parallel, h8300_stm_parallel,
3068         h8300_return_parallel, general_operand_src,
3069         general_operand_dst, h8300_dst_operand, h8300_src_operand,
3070         nibble_operand, reg_or_nibble_operand, single_one_operand,
3071         single_zero_operand, call_insn_operand,
3072         two_insn_adds_subs_operand, small_call_insn_operand,
3073         jump_address_operand, bit_operand, bit_memory_operand,
3074         stack_pointer_operand, const_int_gt_2_operand,
3075         const_int_ge_8_operand, const_int_qi_operand,
3076         const_int_hi_operand, incdec_operand, eqne_operator,
3077         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
3078         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
3079         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
3080         nshift_operator): Move to predicates.md.
3081         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
3082         * config/h8300/h8300.md: Include predicates.md.
3083         * config/h8300/predicates.md: New.
3084
3085 2005-03-17  Richard Henderson  <rth@redhat.com>
3086
3087         * config.gcc (ia64*-*-hpux*): Add extra_options.
3088         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
3089         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3090         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
3091         (ia64_tls_size_string, ia64_tune_string): Remove.
3092         (ia64_tune): Init to PROCESSOR_ITANIUM2.
3093         (TARGET_DEFAULT_TARGET_FLAGS): New.
3094         (TARGET_HANDLE_OPTION): New.
3095         (ia64_override_options): Move options parsing ...
3096         (ia64_handle_option): ... here.  New.
3097         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
3098         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
3099         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
3100         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
3101         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
3102         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
3103         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
3104         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
3105         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
3106         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
3107         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
3108         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
3109         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
3110         TARGET_EARLY_STOP_BITS): Remove.
3111         (TARGET_ILP32): Default false.
3112         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
3113         (enum ia64_inline_type): New.
3114         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
3115         * config/ia64/ia64.md: Update for new definitions of
3116         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
3117         * config/ia64/ia64.opt: New file.
3118         * config/ia64/ilp32.opt: New file.
3119
3120 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3121
3122         PR target/18380
3123         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
3124
3125 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
3126
3127         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
3128         instead of MASK_H8300S.
3129         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
3130         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
3131         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
3132         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
3133         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
3134         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
3135         TARGET_SWITCHES): Remove.
3136         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
3137         TARGET_H8300SX.
3138         * config/h8300/h8300.opt: New.
3139
3140         * config/alpha/alpha.opt, config/arc/arc.opt,
3141         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
3142         notices.
3143
3144 2005-03-17  Ian Lance Taylor  <ian@airs.com>
3145
3146         * gmon.c: Remove.
3147
3148 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
3149
3150         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
3151         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
3152         (TARGET_HANDLE_OPTION): Override default.
3153         (arc_handle_option): New function.
3154         (arc_init): Remove code to set arch_cpu_string.
3155         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
3156         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
3157         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
3158         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
3159         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
3160         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
3161         (arc_rodata_string, TARGET_OPTIONS): Delete.
3162         * config/arc/arc.opt: New file.
3163
3164 2005-03-17  Richard Henderson  <rth@redhat.com>
3165
3166         * doc/extend.texi (Weak Pragmas): New section.
3167         (attribute alias): Clarify that target must be in the same
3168         translation unit.
3169
3170 2005-03-17  Richard Henderson  <rth@redhat.com>
3171
3172         * config/alpha/alpha.opt: New file.
3173         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
3174         of alpha_cpu.
3175         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
3176         alpha_fprm_string, alpha_fptm_string): Make static.
3177         (alpha_tls_size_string): Remove.
3178         (alpha_handle_option): New.
3179         (override_options): Update for alpha_cpu/alpha_tune split.
3180         (alpha_file_start): Likewise.
3181         (TARGET_DEFAULT_TARGET_FLAGS): New.
3182         (TARGET_HANDLE_OPTION): New.
3183         * config/alpha/alpha.h (alpha_tune): Declare.
3184         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
3185         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
3186         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
3187         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
3188         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
3189         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
3190         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
3191         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
3192         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
3193         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
3194         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
3195         (TARGET_DEFAULT): Remove MASK_FP.
3196         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
3197         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
3198         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
3199         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
3200         alpha_tls_size_string): Remove.
3201         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
3202         (attribute tune): Rename from attribute cpu.
3203         * config/alpha/ev4.md: Update to match.
3204         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
3205         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
3206         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
3207         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
3208         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
3209         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
3210
3211 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
3212
3213         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
3214         and return without creating new state if before_nops_num is nonzero.
3215         * config/ia64/ia64.md (first_insn): New attribute.
3216         (alloc): Set it to yes.
3217
3218 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3219
3220         * tree-vectorizer.c (new_vec_stmt_info): Initialize
3221         STMT_VINFO_SUBVARS to NULL.
3222         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3223
3224 2005-03-16 Dale Johannesen  <dalej@apple.com>
3225
3226         * rtlanal.c (find_first_parameter_load):  Rewrite to
3227         return actual first param load or the call if none,
3228         instead of first in block, when not all loads exist.
3229
3230 2005-03-16  Roger Sayle  <roger@eyesopen.com>
3231
3232         * optabs.c (expand_copysign_absneg): Make static.
3233         * optabs.h (expand_copysign_absneg): Delete prototype.
3234         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
3235
3236 2005-03-16  Richard Henderson  <rth@redhat.com>
3237
3238         PR middle-end/15700
3239         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
3240         (alias_pairs): Rename from output_defs.
3241         (find_decl_and_mark_needed): Split out from assemble_alias.
3242         (do_assemble_alias): New.
3243         (assemble_output_def): Remove.
3244         (finish_aliases_1, finish_aliases_2): New.
3245         (process_pending_assemble_output_defs): Remove.
3246         (assemble_alias): Defer aliases for which we don't yet have a
3247         non-external decl for the target symbol.
3248         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
3249         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
3250         * toplev.c (compile_file): Use finish_aliases_2 instead of
3251         process_pending_assemble_output_defs.
3252         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
3253         (process_pending_assemble_output_defs): Remove.
3254
3255 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3256
3257         Fix PR tree-optimization/20489
3258
3259         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
3260         for empty structures.
3261
3262 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
3263
3264         Fix PR tree-optimization/20490
3265
3266         * tree-ssa-pre.c (create_expression_by_pieces): Use
3267         force_gimple_operand on result of fold.
3268
3269 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
3270
3271         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
3272         of closing parenthesis.
3273
3274 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3275
3276         * builtins.c (expand_movstr): Update a call to
3277         fold_builtin_strcpy.
3278         (expand_builtin_strncpy): Update a call to
3279         fold_builtin_strncpy.
3280         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
3281         arguments of CALL_EXPR.
3282         (fold_builtin_1): Update calls to fold_builtin_strcpy and
3283         fold_builtin_strncpy.
3284         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
3285         * tree.h: Update the prototypes of fold_builtin_strcpy and
3286         fold_builtin_strncpy.
3287
3288 2005-03-16  Steven Bosscher  <stevenb@suse.de>
3289             Dorit Naishlos  <dorit@il.ibm.com>
3290
3291         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
3292         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
3293         error.
3294
3295 2005-03-16  Steven Bosscher  <stevenb@suse.de>
3296
3297         * tree-inline.c (walk_type_fields, walk_tree,
3298         walk_tree_without_duplicates): Move from here...
3299         * tree.c: ...to here.
3300
3301 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
3302
3303         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
3304         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
3305         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
3306         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
3307         (version): Define using $(BASEVER_c).
3308         (Makefile, config.status, build/gcov-iov.o): No longer depends on
3309         version.c.
3310         (version.o): Depend on version files; add custom generation command.
3311         (prefix.o): Define BASEVER on command line.
3312         (s-iov): Depend on version files; adjust command.
3313         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
3314         Add gcc-vers.texi.
3315         (gcc-vers.texi): New rule.
3316         (doc/%.info, doc/%.dvi): Add -I . to command line.
3317         (doc/gccinstall.dvi): Likewise.
3318         (PACKAGE): Delete.  All uses replaced with "gcc".
3319         * aclocal.m4: Do not include gcc-version.m4.
3320         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3321         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
3322         Set is_release based on contents of DEV-PHASE.
3323         Set gcc_version based on contents of BASE-VER.
3324         Define WIN32_REGISTRY_KEY only if the user overrode the default.
3325         * config.in, configure: Regenerate.
3326         * gccbug.in: Determine version of GCC in use at runtime.
3327         * gcov-iov.c: Get version number and development phase from
3328         command line, not by including version.c.
3329         * intl.c: Replace all uses of PACKAGE with "gcc".
3330         * libada-mk.in: Delete unused "gcc_version" variable.
3331         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
3332         * version.c: (VERSUFFIX): New hook for redistributors; adjust
3333         commentary to match.
3334         (version_string): Put together from pieces.
3335         * config/alpha/x-vms: Do not use $(gcc_version).
3336         * config/i386/t-nwld: Likewise.
3337         * doc/include/gcc-common.texi: Include gcc-vers.texi for
3338         version-GCC and DEVELOPMENT.
3339
3340 2005-03-15  Roger Sayle  <roger@eyesopen.com>
3341
3342         PR tree-optimization/17454
3343         * tree.c (tree_size): Add case for TREE_BINFO.
3344         * fold-const.c (fold_checksum_tree): Only clear the overloaded
3345         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
3346
3347 2005-03-15  Roger Sayle  <roger@eyesopen.com>
3348
3349         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
3350         op1 whilst expanding the signed widenening multiply variant.
3351
3352 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
3353
3354         * toplev.c (display_target_options): Avoid unused variable warning if
3355         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
3356         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
3357         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
3358         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
3359         (mips_isa_info): New variable.
3360         (mips_parse_cpu): Remove the first argument and leave the caller
3361         to report errors.
3362         (TARGET_HANDLE_OPTION): Override default.
3363         (mips_handle_option): New function.  Move option validation code from...
3364         (override_options): ...here.  Update calls to mips_parse_cpu.
3365         * config/mips/mips.h (mips_arch_string, mips_tune_string)
3366         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
3367         (SUBTARGET_TARGET_OPTIONS): Delete.
3368         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
3369         (mno-flush-func, mtune=): New options.
3370
3371 2005-03-15  Roger Sayle  <roger@eyesopen.com>
3372             Richard Henderson  <rth@redhat.com>
3373
3374         * real.c (c4x_single_format, c4x_extended_format): Provide values
3375         for signbit_ro for c4x's single and extended floating point formats.
3376         * optabs.c (expand_copysign): Use the floating point format's
3377         signbit_ro for expanding via expand_copysign_absneg, and it's
3378         signbit_rw field for expanding via expand_copysign_bit.
3379
3380 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>