OSDN Git Service

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