OSDN Git Service

f36da18b2849138d7f3071bb7c25298cc5e0bb44
[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