OSDN Git Service

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