OSDN Git Service

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