fold-const.c (operand_equal_p): Update comment.
[gcc.git] / gcc / ChangeLog
1 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
2
3 * fold-const.c (operand_equal_p): Update comment.
4
5 2004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6
7 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
8 (INCOMING_RETURN_ADDR_RTX): Define.
9 * config/m32r/m32r-protos.h (m32r_return_addr): Added.
10 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
11 __builtin_return_address(0).
12 (m32r_return_addr): Added for __builtin_return_address(0).
13 (m32r_reload_lr): Ditto.
14
15 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
16
17 * doc/install.texi (Prerequisites): Update libbanshee,
18 fastjar, libcpp, libjava/libltdl entries to
19 automake 1.8.5.
20
21 2004-06-15 Eric Botcazou <ebotcazou@act-europe.fr>
22 Olivier Hainque <hainque@act-europe.fr>
23
24 * function.c (fixup_var_refs): Also adjust the start of sequence
25 after fixing up the insns.
26
27 2004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
28
29 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
30
31 2004-06-14 Benjamin Kosnik <bkoz@redhat.com>
32
33 * doc/install.texi (Prerequisites): Update libstdc++ entry to
34 automake 1.8.5.
35
36 2004-06-14 Eric Christopher <echristo@redhat.com>
37
38 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
39 to -mtpf-trace (-mno-tpf-trace).
40 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
41 documentation.
42
43 2004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
44
45 * real.c: Fix bit count in head comment.
46
47 2004-06-14 Jeff Law <law@redhat.com>
48
49 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
50 PHIs where the destination or an argument is marked with
51 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
52
53 2004-06-14 Jakub Jelinek <jakub@redhat.com>
54
55 PR middle-end/15945
56 * simplify-rtx.c (simplify_binary_operation): Don't optimize out
57 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
58
59 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
60
61 * opts.sh (var_args): Fix regexp.
62
63 2004-06-14 Jakub Jelinek <jakub@redhat.com>
64
65 PR target/15178
66 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
67
68 2004-06-14 Paul Brook <paul@codesourcery.com>
69
70 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
71
72 2004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
73
74 * Makefile.in (FLAGS_H): New.
75 (flags.h): Replace by FLAGS_H.
76 * c.opt: Document Var, VarExists, Init and Report attributes.
77 * common.opt: Fill the values of the attributes.
78 * diagnostic.c (flag_fatal_errors): Do not define.
79 * except.c (flag_non_call_exceptions): Do not define.
80 * flags.h: Include options.h. Remove declarations conflicting with
81 the automatically defined ones.
82 * opts.c: Remove automatically defined variables.
83 (handle_option): Perform default initialization.
84 (common_handle_option): Do not handle options covered by the
85 default initialization.
86 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
87 fields.
88 (CL_REPORT): New.
89 * opts.sh: Generate variable declarations, handle CL_REPORT.
90 * toplev.c: Remove automatically defined variables.
91 (f_options): Removed.
92 (print_switch_values): Use cl_options instead of f_options.
93 * toplev.h (version_flag): Declaration removed.
94
95 2004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
96
97 * config/sparc/sparc.h: Correct comment about availability of
98 little endian option.
99
100 * config.gcc: Remove sparc64-*-aout*.
101 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
102 * config/sparc/sp64-aout.h: Remove.
103 * config/sparc/aout.h: Remove.
104
105 2004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
106
107 * config/s390/s390.c: Include "tree-gimple.h".
108 (s390_gimplify_va_arg): New function.
109 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
110 (s390_va_arg): Remove.
111 * config/s390/s390-protos.h (s390_va_arg): Remove.
112 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
113
114 2004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
115
116 * basic-block.h (could_fall_through): Declare.
117 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
118 Fail if the source already has a fallthrough edge to the exit
119 block pointer.
120 (could_fall_through): New function.
121 * cfgbuild.c (make_edges): Check if we already have a fallthrough
122 edge to the exit block pointer.
123 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
124 not called before reload has completed.
125 Handle special case of first block having a fall-through exit edge.
126 (cfg_layout_finalize): Don't call it before reload or if we have
127 rtl epilogues.
128 (fixup_reorder_chain): A fall through to the exit block does not
129 require the block to come last. Add sanity checks.
130 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
131 edges to the exit block.
132 * function.c (cfglayout.h): #include.
133 (thread_prologue_and_epilogue_insns): If we have neither return nor
134 epilogue, but a fall through to the exit block from mid-function,
135 force a non-fall-through exit.
136 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
137
138 2004-06-14 Alan Modra <amodra@bigpond.net.au>
139
140 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
141 for power5 and rs64a. Correct condition for default. Correct power3,
142 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
143
144 2004-06-13 Steven Bosscher <stevenb@suse.de>
145
146 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
147 Revert previous change, don't use CALL_P.
148
149 2004-06-13 Jason Merrill <jason@redhat.com>
150
151 * tree.h: Move std_gimplify_va_arg_expr protoype here.
152 * tree-gimple.h: From here.
153
154 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
155
156 Fix PR tree-optimization/15979
157 Fix PR tree-optimization/15981
158 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
159 try to insert values undefined along some path.
160
161 2004-06-13 Daniel Berlin <dberlin@dberlin.org>
162
163 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
164 are available everywhere too.
165
166 2004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
167
168 * fold-const.c (fold_checksum_tree <case 't'>): Only
169 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
170 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
171 EXPR is an INTEGERAL_TYPE or a scalar float type.
172
173 2004-06-13 Diego Novillo <dnovillo@redhat.com>
174
175 * tree-sra.c (tree_sra): Update documentation.
176
177 2004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
178
179 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
180 function_types_compatible_p, type_lists_compatible_p): Remove
181 flags parameter.
182 * c-tree.h (comptypes): Likewise.
183 (COMPARE_STRICT): Remove.
184 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
185 callers changed.
186
187 2004-06-13 Eric Christopher <echristo@redhat.com>
188
189 * c-decl.c (diagnose_mismatched_decls): Improve error message.
190 Remove unused code.
191 * c-typeck.c (comptypes): Add location in standard we're checking.
192
193 2004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
194
195 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
196 version 3.3.4.
197
198 2004-06-12 Roger Sayle <roger@eyesopen.com>
199
200 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
201 index by machine mode.
202 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
203 tables inside the loop over machine modes.
204 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
205 expand_divmod): Index shift*_cost by the appropriate machine mode.
206
207 2004-06-12 Eric Christopher <echristo@redhat.com>
208
209 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
210 * config/s390/s390.md: Ditto.
211 * config/s390/s390.c: Ditto.
212 (s390_frame_info): Conditionalize frame and setup info on
213 TARGET_TPF_PROFILING.
214 (s390_arg_frame_offset): Ditto.
215
216 2004-06-12 Roger Sayle <roger@eyesopen.com>
217
218 * fold-const.c (omit_two_operands): New function.
219 * tree.h (omit_two_operands): Prototype here.
220 * builtins.c (fold_builtin_unordered_cmp): New function to lower
221 C99 unordered comparison builtins to the appropriate tree nodes.
222 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
223 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
224 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
225 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
226 (simplify_builtin_memcmp, simplify_builtin_strncmp,
227 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
228 omit_two_operands function to build the required COMPOUND_EXPRs.
229
230 2004-06-12 Steven Bosscher <stevenb@suse.de>,
231 Andreas Jaeger <aj@suse.de>
232
233 * gcse.c (record_set_info): Use predicates like REG_P.
234 (mems_conflict_for_gcse_p): Likewise.
235 (load_killed_in_block_p): Likewise.
236 (hash_expr_1): Likewise.
237 (insert_set_in_table): Likewise.
238 (gcse_constant_p): Likewise.
239 (hash_scan_set): Likewise.
240 (hash_scan_insn): Likewise.
241 (canon_list_insert): Likewise.
242 (record_last_mem_set_info): Likewise.
243 (record_last_set_info): Likewise.
244 (compute_hash_table_work): Likewise.
245 (mark_set): Likewise.
246 (mark_clobber): Likewise.
247 (mark_oprs_set): Likewise.
248 (compute_transp): Likewise.
249 (find_avail_set): Likewise.
250 (cprop_insn): Likewise.
251 (do_local_cprop): Likewise.
252 (cprop): Likewise.
253 (find_implicit_sets): Likewise.
254 (find_bypass_set): Likewise.
255 (bypass_conditional_jumps): Likewise.
256 (insert_insn_end_bb): Likewise.
257 (pre_insert_copy_insn): Likewise.
258 (compute_transpout): Likewise.
259 (next_ls_expr): Likewise.
260 (invalidate_any_buried_refs): Likewise.
261 (compute_ld_motion_mems): Likewise.
262 (reg_set_info): Likewise.
263 (reg_clear_last_set): Likewise.
264 (find_moveable_store): Likewise.
265 (compute_store_table): Likewise.
266 (find_loads): Likewise.
267 (store_killed_in_insn): Likewise.
268 (insert_insn_start_bb): Likewise.
269 (reg_set_between_after_reload_p): Likewise.
270 (reg_used_between_after_reload_p): Likewise.
271 (is_jump_table_basic_block): Likewise.
272 (gcse_after_reload): Likewise.
273 (hash_scan_set_after_reload): Likewise.
274 (compute_hash_table_after_reload): Likewise.
275
276 2004-06-12 Steven Bosscher <stevenb@suse.de>
277
278 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
279 (INSN_P): Don't look at the rtx code class, just explicitly
280 check for one of the tree RTX_INSN codes.
281
282 2004-06-11 Zack Weinberg <zack@codesourcery.com>
283
284 * c-typeck.c (default_function_array_conversion): Use
285 build_pointer_type not TYPE_POINTER_TO.
286
287 2004-06-11 Zack Weinberg <zack@codesourcery.com>
288
289 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
290 * configure, config.in: Regenerate.
291 * system.h: Unconditionally define bool as unsigned char,
292 BOOL_BITFIELD as unsigned int.
293 * domwalk.h: Use BOOL_BITFIELD.
294
295 2004-06-12 Andreas Jaeger <aj@suse.de>
296
297 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
298 * libgcc-darwin.ver: Likewise.
299
300 2004-06-12 Peter Jakubek <peter@laseranimation.com>
301
302 * reload.c (find_reloads): Force reload for pseudo registers on big
303 endian machines.
304
305 2004-06-11 Steven Bosscher <stevenb@suse.de>
306
307 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
308 Don't try to mark anything control dependent on the entry or
309 exit blocks.
310
311 2004-06-11 Daniel Berlin <dberlin@dberlin.org>
312
313 Fix Bug 15899
314 Fix Bug 15460
315 * tree.h (SSA_NAME_VALUE): New macro.
316 (struct tree_ssa_name): Add value_handle member.
317 * tree-ssa-pre.c: Replaced.
318 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
319 (struct cst_ann_d): New.
320 (struct expr_ann_d): New.
321 (union tree_ann_d): Add cst_ann, expr_ann.
322 * tree-dfa.c (create_cst_ann): New function.
323 (create_expr_ann): Ditto.
324 * tree-flow-inline.h (cst_ann): New function.
325 (expr_ann): Ditto.
326 (get_cst_ann): Ditto.
327 (get_expr_ann): Ditto..
328
329 2004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
330
331 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
332 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
333 _U_Qfcmp library function.
334 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
335 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
336
337 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
338 unspec used for loading address from DLT.
339 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
340 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
341 Don't use short code sequence when loading the address of a nonlocal
342 label.
343 (nonlocal_goto): New expander.
344 (indirect_goto): New jump pattern for nonlocal gotos.
345 (short_jump): Remove extra whitespace.
346 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
347 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
348 pattern.
349
350 2004-06-11 Roger Sayle <roger@eyesopen.com>
351
352 * expmed.c (synth_mult): Add an additional MODE argument for the
353 machine mode of the multiplication. Update recursive calls. Use
354 mode instead of word_mode for determining operation costs.
355 (choose_mult_variant): Update calls to synth_mult with "mode".
356
357 2004-06-11 Richard Henderson <rth@redhat.com>
358
359 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
360 and makes_aliased_stores.
361
362 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
363
364 * doc/install.text (--enable-shared): Fix typo.
365
366 2004-06-11 Richard Henderson <rth@redhat.com>
367
368 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
369 argument. Use internal post for call to gimplify_expr. Tidy
370 rounded type size computation.
371 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
372 get_initialized_tmp_var.
373
374 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
375
376 * doc/install.texi (--enable-shared): Update libobjc's shared library
377 status. Remove reference to libf2c.
378
379 2004-06-11 Jason Merrill <jason@redhat.com>
380
381 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
382 * config/i386/i386.c (ix86_va_arg): Remove.
383 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
384 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
385 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
386 * config/alpha/alpha.c (alpha_va_arg): Remove.
387 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
388 * config/sparc/sparc.c (sparc_va_arg): Remove.
389
390 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
391 assignment might throw.
392 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
393 expressions.
394
395 2004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
396
397 PR 15886:
398 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
399
400 2004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
401
402 * doc/install.texi (Prerequisites): Update documentation of
403 required versions of autoconf and automake. Remove mention of
404 libf2c.
405
406 2004-06-11 Jason Merrill <jason@redhat.com>
407
408 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
409 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
410
411 2004-06-11 Jerry Quinn <jlquinn@optonline.net>
412
413 * typeclass.h: Add GPL plus exception license. Add include
414 guard.
415
416 2004-06-10 Jason Merrill <jason@redhat.com>
417
418 * gimplify.c (gimplify_modify_expr): Don't force a temporary
419 of an aggregate_value_p type.
420
421 2004-06-10 Jeff Law <law@redhat.com>
422
423 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
424 code when we are in gimple form.
425
426 2004-06-10 Diego Novillo <dnovillo@redhat.com>
427
428 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
429 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
430 (highest_ssa_version): Remove.
431 * tree-outof-ssa.c (new_temp_expr_table): Replace
432 highest_ssa_version with num_ssa_names.
433 (dump_replaceable_exprs): Likewise.
434 (rewrite_vars_out_of_ssa): Likewise.
435 * tree-ssa-ccp.c (initialize): Likewise
436 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
437 * tree-ssa-dce.c (tree_dce_init): Likewise.
438 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
439 * tree-ssa-live.c (create_ssa_var_map): Likewise.
440 (dump_var_map): Likewise.
441 * tree-ssa.c (verify_ssa): Likewise.
442 (kill_redundant_phi_nodes): Likewise.
443 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
444 * tree-ssanames.c: Include tree-flow.h
445 (ssa_names): New varray.
446 (init_ssa_names): Initialize ssa_names.
447 Reserve the first slot of the ssa_names table.
448 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
449 Assign version numbers using num_ssa_names.
450
451 2004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
452
453 * doc/sourcebuild.texi (Front End): Add details of more
454 installation documentation required.
455
456 2004-06-10 Brian Booth <bbooth@redhat.com>
457
458 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
459 of V_MAY_DEF and V_MUST_DEF.
460 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
461 num_vdefs to num_v_may_defs.
462 (compute_immediate_uses_for_stmt): Rename occurences of vdef
463 to v_may_def.
464 (redirect_immediate_uses): Ditto.
465 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
466 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
467 Also add code to sum up the number of v_must_defs.
468 (vdefs_disappeared_p): Replace with...
469 (v_may_defs_disappeared_p): This.
470 (v_must_defs_disappeared_p): New function.
471 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
472 Also add code to mark new variables found in V_MUST_DEFs for
473 renameing.
474 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
475 vdef_ops to v_may_def_ops.
476 (get_vdef_ops): Replace with...
477 (get_v_may_def_ops): This.
478 * tree-flow-inline.h (get_vdef_ops): Replace with...
479 (get_v_may_def_ops): This.
480 (get_v_must_def_ops): New function.
481 (get_vdef_result_ptr): Replace with...
482 (get_v_may_def_result_ptr): This.
483 (get_vdef_op_ptr): Ditto with...
484 (get_v_may_def_op_ptr); This.
485 (get_v_must_def_op_ptr): New function.
486 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
487 to v_may_def. Also add code to mark statements with
488 V_MUST_DEFs as definition sites.
489 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
490 add code to register new V_MUST_DEFs made by the statement.
491 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
492 (check_replaceable): Rename occurences of vdef to v_may_def. Also
493 add check for V_MUST_DEFs.
494 (find_replaceable_in_bb): Ditto.
495 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
496 to v_may_def. Also add code to dump V_MUST_DEFs.
497 * tree-sra.c (mark_all_vdefs): Replace with...
498 (mark_all_v_may_defs): This.
499 (mark_all_v_must_defs): New function.
500 (create_scalar_copies): Replace call to mark_all_vdefs with
501 calls to mark_all_v_may_defs and mark_all_v_must_defs.
502 (scalarize_structures): Rename occurences of vdef to v_may_def.
503 Also add a check for V_MUST_DEFs.
504 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
505 * tree-ssa-alias.c (global_var): Update comment.
506 (compute_may_aliases): Ditto.
507 (compute_points_to_and_addr_escape): Rename occurences of vdef
508 to v_may_def. Also add code to mark variables in V_MUST_DEF
509 operands as being written to.
510 (group_aliases): Update comment.
511 (maybe_create_global_var): Ditto.
512 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
513 Also add a check for V_MUST_DEFs on GIMPLE registers.
514 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
515 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
516 to v_may_def. Also add code to mark all V_MUST_DEF operands
517 VARYING.
518 (initialize): Ditto.
519 (set_rhs): Rename occurences of vdef to v_may_def. Also add
520 code to update SSA_NAMEs in V_MUST_DEFs.
521 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
522 to v_may_def.
523 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
524 occurences of vdef to v_may_def. Also add code to mark statements
525 with V_MUST_DEFs as necessary.
526 (propagate_necessity): Rename occurences of vdef to v_may_def.
527 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
528 occurences of vdef to v_may_def. Also add code to mark operands
529 in V_MUST_DEFs for renaming.
530 (eliminate_redundant_computations): Rename occurences of vdef
531 to v_may_def.
532 (record_equivalences_from_stmt): Rename occurences of vdef
533 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
534 (optimize_stmt): Remove unnesessary variable vdefs. Update
535 comment.
536 (register_definitions_for_stmt): Rename occurences of vdef
537 to v_may_def. Also add code to register definitions made with
538 V_MUST_DEFs.
539 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
540 (fix_stmt_v_may_defs): This.
541 (fix_phi_uses): Rename occurences of vdef to v_may_def.
542 (dse_optimize_stmt): Ditto.
543 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
544 to v_may_def. Also add code to mark V_MUST_DEF operands as being
545 used in virtual operators.
546 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
547 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
548 renaming.
549 * tree-ssa-operands.c (opf_kill_def): New flag for killing
550 definitions.
551 (build_vdefs): Renamed to...
552 (build_v_may_defs): This.
553 (build_v_must_defs): New variable.
554 (voperands_d): Add v_must_def_ops and replace vdef_ops with
555 v_may_def_ops.
556 (append_vdef): Replace with...
557 (append_v_may_def): This.
558 (append_v_must_def): New function.
559 (NUM_FREE): Increment for V_MUST_DEF
560 (optype_freelist): Increment its size for V_MUST_DEF
561 (allocate_vdef_optype): Replace with...
562 (allocate_v_may_def_optype): This.
563 (allocate_v_must_def_optype): New function.
564 (free_vdefs): Replace with...
565 (free_v_may_defs): This.
566 (free_v_must_defs): New function.
567 (remove_vdefs): Replace with...
568 (remove_v_may_defs): This.
569 (remove_v_must_defs): New function.
570 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
571 add code to initialize build_v_must_defs.
572 (finalize_ssa_vdefs): Replace with...
573 (finalize_ssa_v_may_defs): This.
574 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
575 (finalize_ssa_v_must_defs): New function.
576 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
577 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
578 (verify_start_operands): Rename occurences of vdef to v_may_def.
579 Also add check for build_v_must_defs.
580 (get_stmt_operands): Rename occurences of vdef to v_may_def.
581 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
582 killing definitions.
583 (get_expr_operands): Update comment and use opf_kill_def for
584 killing definitions.
585 (add_stmt_operand): Replace code that appends VDEFs with code
586 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
587 otherwise.
588 (add_call_clobber_ops): Update comments.
589 * tree-ssa-operands.h (vdef_optype_d): Replace with...
590 (v_may_def_optype_d): This.
591 (v_must_def_optype_d): New structure.
592 (VDEF_OPS): Replace with...
593 (V_MAY_DEF_OPS): This.
594 (STMT_VDEF_OPS): Same with...
595 (STMT_V_MAY_DEF_OPS): This.
596 (NUM_VDEFS): And...
597 (NUM_V_MAY_DEFS): This.
598 (VDEF_RESULT_PTR): As well as...
599 (V_MAY_DEF_RESULT_PTR): This.
600 (VDEF_RESULT): Same goes for...
601 (V_MAY_DEF_RESULT): This.
602 (VDEF_OP_PTR): And...
603 (V_MAY_DEF_OP_PTR): This.
604 (VDEF_OP): And...
605 (V_MAY_DEF_OP): This.
606 (V_MUST_DEF_OPS): New macro.
607 (STMT_V_MUST_DEF_OPS): Ditto.
608 (NUM_V_MUST_DEFS): Ditto.
609 (V_MUST_DEF_OP_PTR): Ditto.
610 (V_MUST_DEF_OP): Ditto.
611 (remove_vdefs): Replace signature with...
612 (remove_v_may_defs): This.
613 (remove_v_must_defs): New function signature.
614 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
615 with calls to remove_v_may_defs and remove_v_must_defs.
616 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
617 Also add code that marks left occurences of operands in V_MUST_DEFs.
618 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
619 to v_may_def. Also add check for V_MUST_DEFs.
620 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
621
622 2004-06-10 Vladimir Makarov <vmakarov@redhat.com>
623
624 PR target/15653
625 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
626 insn.
627
628 2004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
629
630 PR web/15263
631 * doc/install.texi: Remove superfluous linebreak.
632
633 2004-06-10 Roger Sayle <roger@eyesopen.com>
634
635 * builtins.c (expand_builtin): Fall back to library function call for
636 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
637 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
638 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
639 IMAGPART_EXPR respectively.
640
641 2004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
642
643 * sh.c (dump_table): New argument start. Changed caller.
644 (fixup_mova): New function.
645 (find_barrier): Use it.
646 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
647 If the label a mova refers to is above the mova itself, change
648 the mova into a load.
649 * sh.md (*casesi_worker): Rename to:
650 (casesi_worker_1).
651 (casesi_worker_2): New insn.
652
653 2004-06-10 Jason Merrill <jason@redhat.com>
654
655 * target.h (struct gcc_target): Change gimplify_va_arg_expr
656 hook signature.
657 * tree-gimple.h: Adjust.
658 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
659 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
660 Use fold_convert.
661 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
662 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
663 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
664 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
665 (gimplify_va_arg_expr): Return GS_ERROR in error case.
666 Gimplify valist rather than calling stabilize_va_list.
667
668 2004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
669
670 * Makefile.in (df.o): Remove fibheap dependency.
671 * df.h: Do not include sbitmap.h.
672 (struct ref): New field "data".
673 (DF_REF_DATA): New accessor macro.
674 (struct df): Field "dom" removed.
675 (df_analyze_subcfg): New function.
676 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
677 (transfer_function): ... new type.
678 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
679 (iterative_dataflow): ... new function.
680 (enum set_representation, struct dataflow): New.
681 * df.c: Do not include fibheap.h.
682
683 (df_reg_def_chain_clean, df_reg_use_chain_clean,
684 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
685 prune_to_subcfg, df_bb_modify): New functions.
686 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
687 df_refs_update, df_reg_table_realloc, df_ref_create,
688 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
689 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
690 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
691
692 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
693 (df_rd_transfer_function, df_ru_transfer_function,
694 df_lr_transfer_function): Type of bitmaps changed to void *.
695 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
696 (hybrid_search): ... new function.
697 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
698 (iterative_dataflow): ... new function. Avoid use of fibheaps for
699 a worklist. Do not process basic blocks unnecessarily.
700
701 2004-06-10 Roger Sayle <roger@eyesopen.com>
702
703 * fold-const.c (fold_abs_const): Make extern.
704 * tree.h (fold_abs_const): Prototype here.
705 * builtins.c (fold_builtin_fabs): New function to transform
706 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
707 (fold_builtin_abs): New function to transform abs, labs, llabs
708 and imaxabs builtins into ABS_EXPR tree nodes.
709 (expand_builtin): Fall back to a function call for abs, labs,
710 llabs and imaxabs builtins that survive constant folding.
711 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
712 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
713
714 2004-06-10 Jakub Jelinek <jakub@redhat.com>
715
716 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
717 leaf function without unwind info at RP 0.
718
719 2004-06-10 Jakub Jelinek <jakub@redhat.com>
720
721 PR c++/14791
722 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
723 (fileptr_type_node): Define.
724 * tree.c (build_common_tree_nodes_2): Initialize
725 fileptr_type_node to ptr_type_node.
726 * c-common.c (c_common_nodes_and_builtins): For C++, make
727 fileptr_type_node a distinct type copy.
728 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
729 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
730 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
731 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
732 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
733 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
734 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
735 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
736 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
737 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
738 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
739 the above *FILEPTR* types instead of *PTR*.
740
741 2004-06-09 Daniel Berlin <dberlin@dberlin.org>
742
743 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
744 match.
745
746 2004-06-09 Roger Sayle <roger@eyesopen.com>
747
748 * fold-const.c (fold_not_const): New function.
749 (fold) <ABS_EXPR>: Don't bother testing wins.
750 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
751 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
752
753 2004-06-09 Richard Henderson <rth@redhat.com>
754
755 PR middle-end/15228
756 * function.c (assign_parms): Always set_mem_align with the computed
757 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
758
759 2004-06-09 Richard Henderson <rth@redhat.com>
760
761 PR opt/15108
762 * tree-tailcall.c (find_tail_calls): Don't check early for
763 tail_recursion failure.
764
765 2004-06-09 Diego Novillo <dnovillo@redhat.com>
766
767 Move SSA_NAME annotations into tree_ssa_name.
768
769 * tree-dfa.c (create_ssa_name_ann): Remove.
770 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
771 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
772 (struct ssa_name_ann_d): Remove.
773 (union tree_ann_d): Update.
774 (ssa_name_ann_t): Remove.
775 * tree-ssa-alias.c: (get_ptr_info): New local function.
776 Replace references to ssa_name_ann_t with struct ptr_info_def.
777 * tree-ssa-operands.c (get_expr_operands): Likewise.
778 * tree.h (SSA_NAME_PTR_INFO): Define.
779 (struct ptr_info_def): Declare.
780 (struct tree_ssa_name): Add field 'ptr_info'.
781
782 2004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
783
784 * config/i386/winnt.c (i386_pe_output_labelref): Correct
785 misplaced ')'.
786
787 2004-06-09 Steven Bosscher <stevenb@suse.de>
788
789 * config/i386/k6.md: Rewrite using the DFA model.
790 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
791 cost of load-operation insns for the K6.
792 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
793 (ia32_multipass_dfa_lookahead): Likewise.
794
795 2004-06-09 Richard Henderson <rth@redhat.com>
796
797 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
798 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
799
800 2004-06-09 Richard Henderson <rth@redhat.com>
801
802 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
803
804 2004-06-09 Geoffrey Keating <geoffk@apple.com>
805
806 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
807 (CPP_ID_DATA_H): New.
808 (gtype-desc.o): Update dependencies.
809 (GTFILES): Use CPP_ID_DATA_H.
810
811 2004-06-09 Mark Mitchell <mark@codesourcery.com>
812
813 Revert:
814 PR c++/15815
815 2004-06-07 Mark Mitchell <mark@codesourcery.com>
816 * doc/extend.texi: Deprecate #pragma interface and #pragma
817 implementation.
818
819 2004-06-09 David S. Miller <davem@nuts.davemloft.net>
820
821 * config/sparc/sparc.h (MOVE_RATIO): New definition.
822
823 2004-06-09 Richard Henderson <rth@redhat.com>
824
825 * basic-block.h (struct edge_def): Add goto_locus.
826 * tree-cfg.c (make_goto_expr_edges): Set it.
827 (disband_implicit_edges): Use it.
828 * tree-pretty-print.c (dump_implicit_edges): Print it.
829
830 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
831
832 * h8300.md (ldm_h8300s_4): Fix condition for expander.
833
834 2004-06-08 Jason Merrill <jason@redhat.com>
835
836 Gimplify VA_ARG_EXPR into simpler forms.
837 * target.h: Add gimplify_va_arg_expr hook.
838 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
839 * fold-const.c (build_fold_addr_expr)
840 (build_fold_addr_expr_with_type): Move from gimplify.c.
841 * tree.h: Declare them.
842 * gimplify.c (gimplify_and_add): New fn.
843 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
844 (gimplify_array_ref_to_plus, gimplify_modify_expr)
845 (gimplify_expr): Use build_fold_*.
846 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
847 don't know how to gimplify it.
848 * builtins.c (std_gimplify_va_arg_expr): New fn.
849 (dummy_object): New static fn.
850 (gimplify_va_arg_expr): New fn.
851 (stabilize_va_list): Use build_fold_*.
852 * tree-gimple.h: Declare new fns.
853 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
854 (ix86_gimplify_va_arg): New fn.
855 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
856 (ia64_gimplify_va_arg): New fn.
857 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
858 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
859 * alias.c (get_varargs_alias_set): Just return 0 for now.
860
861 * c-objc-common.c (c_tree_printer): Improve handling of %T.
862
863 2004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
864
865 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
866 of convert.
867 * tree-inline.c (setup_one_parameter): Likewise.
868 * tree-sra.c (csc_build_component_ref): Likewise.
869 * tree-ssa-ccp.c (ccp_fold): Likewise.
870 * tree-ssa-copy.c (cprop_operand): Likewise.
871 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
872 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
873
874 2004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
875
876 PR rtl-optimization/15521:
877 * sched-int.h (in_post_call_group_p): Change type to enum.
878 * sched-deps.c (sched_analyze_insn):
879 (sched_analyze): When in_post_call_group_p is post_call_initial,
880 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
881 and also reset in_post_call_group_p to post_call.
882 (sched_analyze): When the previous basic block ended in a CALL_INSN,
883 initialize in_post_call_group_p as post_call_initial.
884 (init_deps): initialize in_post_call_group_p to not_post_call.
885
886 2004-06-09 Arnaud Charlet <charlet@act-europe.fr>
887
888 PR ada/6637
889 * doc/install.texi: List ada, libada as options to --enable-shared
890
891 2004-06-09 Paolo Bonzini <bonzini@gnu.org>
892
893 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
894 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
895 config.in entries.
896 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
897 if hard links are not available.
898 * configure: Regenerate.
899 * config.in: Regenerate.
900
901 2004-06-08 Per Bothner <per@bothner.com>
902
903 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
904
905 2004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
906
907 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
908 Correct formatting.
909
910 2004-06-08 James E Wilson <wilson@specifixinc.com>
911
912 PR target/15790
913 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
914
915 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
916
917 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
918 POINTER_TYPE and INTEGER_TYPE.
919
920 2004-06-08 Bernardo Innocenti <bernie@develer.com>
921
922 * modulo-sched.c: Compile only when INSN_SCHEDULING is
923 defined.
924
925 2004-06-08 Jeff Law <law@redhat.com>
926
927 * doc/contrib.texi: Add entries for Stefan Olsson and
928 Ola Ronnerup.
929
930 2004-06-08 DJ Delorie <dj@redhat.com>
931
932 * toplev.c (floor_log2_wide): Replace loop with faster bit
933 operations.
934 (exact_log2_wide): Define in terms of the above.
935 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
936 available.
937
938 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
939
940 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
941 Make sure that we are in INDIRECT mode when getting the
942 stub name.
943
944 2004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
945
946 * h8300.md (extendqisi2_h8300): Add constraints.
947 (ldm_h8300s_4_normal): Fix typo.
948
949 2004-06-08 Richard Henderson <rth@redhat.com>
950
951 * gimple-low.c (struct lower_data): Replace the_return_label and
952 one_return_stmt with return_statements.
953 (lower_function_body): Process the entire list of return_statements.
954 (lower_return_expr): Check source value before unifying return_exprs.
955 * gimplify.c (gimplify_return_expr): Force the use of a temporary
956 for !aggregate_value_p.
957 * tree-gimple.c: Update RETURN_EXPR grammer.
958
959 2004-06-08 Vladimir Makarov <vmakarov@redhat.com>
960
961 PR target/15598
962 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
963
964 2004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
965
966 PR rtl-optimization/15717
967 * config/i386/i386.c (legitimate_constant_p): Do not allow
968 x - symbol_ref.
969
970 2004-06-08 Alexandre Oliva <aoliva@redhat.com>
971
972 * gimplify.c (copy_if_shared_r): Revert:
973 2004-05-21 Richard Henderson <rth@redhat.com>
974 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
975
976 2004-06-07 Roger Sayle <roger@eyesopen.com>
977
978 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
979 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
980 (init_expmed): Initialize these cost arrays as appropriate.
981 (store_bit_field, extract_bit_field): Correct whitespace.
982 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
983 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
984 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
985 word_mode or compute_mode as appropriate.
986
987 2004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
988
989 PR target/15783
990 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
991 parameter. Enumerate the registers inside the PARALLEL.
992 (function_arg): Adjust call to function_arg_union_value.
993 (function_value): Likewise.
994
995 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
996
997 2004-06-07 Roger Sayle <roger@eyesopen.com>
998
999 * real.c (real_copysign): New function to implement libm's copysign.
1000 * real.h (real_copysign): Prototype here.
1001 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1002 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
1003 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1004 fold_builtin_isdigit): Add function prototypes.
1005 (fold_builtin_copysign): New function to fold copysign, copysignf
1006 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
1007 constant arguments at compile-time using real_copysign. Fold
1008 copysign(X,Y) as fabs(X) if Y is always non-negative.
1009 (fold_builtin_1): Correct minor whitespace/style issues. Call
1010 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1011
1012 2004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
1013
1014 * tree.c (iterative_hash_expr): Use real_hash.
1015
1016 2004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
1017
1018 PR c/14765
1019 * c-parse.in (compstmt_primary_start): Set last_expr_type to
1020 NULL_TREE.
1021
1022 2004-06-07 Mark Mitchell <mark@codesourcery.com>
1023
1024 PR c++/15815
1025 * doc/extend.texi: Deprecate #pragma interface and #pragma
1026 implementation.
1027
1028 2004-06-07 Alexandre Oliva <aoliva@redhat.com>
1029
1030 PR middle-end/15666
1031 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1032 builtin decl as well.
1033
1034 2004-06-07 Roger Sayle <roger@eyesopen.com>
1035
1036 PR c/14649
1037 * c-typeck.c (require_constant_value, require_constant_elements):
1038 Move declarations to the top of the file.
1039 (build_function_call): If we require a constant value, fold with
1040 fold_initializer. If the result is a constant, and the function
1041 wasn't called using __builtin_foo, issue a pedantic warning.
1042 (build_unary_op): If we require a constant value, fold tree with
1043 fold_initializer.
1044 (build_binary_op): Use require_constant_value to determine whether
1045 to call fold or fold_initializer.
1046
1047 2004-06-07 Richard Henderson <rth@redhat.com>
1048
1049 * gimple-low.c (struct lower_data): Add the_return_label and
1050 one_return_stmt.
1051 (lower_function_body): Initialize and use them.
1052 (lower_return_expr): New.
1053 (lower_stmt): Call it.
1054 * gimplify.c (gimplify_return_expr): Force the argument to be either
1055 null or a result_decl.
1056 * tree-gimple.c: Update gimple grammer to match.
1057 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1058 coalescing of result_decls.
1059
1060 2004-06-07 Richard Henderson <rth@redhat.com>
1061
1062 PR rtl-opt/15193
1063 * expmed.c (extract_bit_field): Fix vector_extract return.
1064
1065 * config/i386/i386.md (negv4sf2): New pattern.
1066
1067 2004-06-07 Mark Mitchell <mark@codesourcery.com>
1068
1069 PR c++/15337
1070 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1071 message.
1072
1073 2004-06-06 Paolo Bonzini <bonzini@gnu.org>
1074
1075 * config.in: Regenerate.
1076
1077 2004-06-06 Steven Bosscher <stevenb@suse.de>
1078
1079 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1080 SWITCH_LABELS are always sorted.
1081
1082 2004-06-06 Steven Bosscher <stevenb@suse.de>
1083
1084 * hooks.c (hook_int_void_1): New generic hook.
1085 * hooks.h (hook_int_void_1): Add prototype.
1086 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1087 Define to hook_int_void_1.
1088 * config/c4x/c4x.md: Replace dummies for the old pipeline model
1089 with dummies for the new one.
1090
1091 2004-06-06 Roger Sayle <roger@eyesopen.com>
1092
1093 * tree.h (lvalue_or_else): Delete function prototype.
1094 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
1095
1096 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
1097
1098 PR target/14542
1099 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1100 a live change of a register after peephole replacement.
1101
1102 2004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
1103
1104 PR c/13519
1105 * c-typeck.c (composite_type, common_pointer_type): New functions.
1106 (common_type): Split parts into composite_type and
1107 common_pointer_type. Ensure that arithmetic operations return
1108 unqualified types without attributes. Don't make composite type
1109 of signed enum and compatible integer be unsigned.
1110 (build_conditional_expr, build_binary_op): Use
1111 common_pointer_type.
1112 * c-decl.c (merge_decls): Use composite_type.
1113 * c-tree.h (composite_type): Declare.
1114
1115 2004-06-06 Stephane Carrez <stcarrez@nerim.fr>
1116
1117 PR target/14457
1118 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1119 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1120 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1121 (inhibit_libc): Must define.
1122 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1123 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1124 ("xorhi3"): Likewise.
1125
1126 2004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
1127
1128 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1129 always_inline pass.
1130
1131 2004-06-05 David S. Miller <davem@nuts.davemloft.net>
1132
1133 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1134 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1135
1136 2004-06-05 Bernardo Innocenti <bernie@develer.com>
1137
1138 * regclass.c (init_reg_sets): Check for missing registers in target
1139 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1140
1141 2004-06-05 Zack Weinberg <zack@codesourcery.com>
1142
1143 * Makefile.in (MKDEPS_H): New shorthand.
1144 (c-opts.o): Update dependencies.
1145 * c-opts.c: Include mkdeps.h.
1146 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1147 not cpp_add_dependency_target.
1148
1149 2004-06-05 Steven Bosscher <stevenb@suse.de>
1150
1151 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1152 * config/v850/v850.md: Convert to DFA scheduler description.
1153
1154 2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1155
1156 PR fortran/15478
1157 * doc/install.texi: Document GMP as prerequisite. Document
1158 --with-gmp and --with-gmp-dir configure options.
1159 * fortran/gfortran.texi: Remove section "Compiling and testing",
1160 remove TOC reference to it.
1161
1162 2004-06-05 Graham Stott <graham.stott@btinternet.com>
1163
1164 * combine.c(simplify_shift_const): Check shift amount is a
1165 CONST_INT.
1166
1167 2004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
1168
1169 * toplev.c (init_asm_output): Add explicit 'b' to mode when
1170 opening asm_out_file.
1171 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1172 reading asm_out_file. Replace fflush after reading asm_out_file
1173 with fseek.
1174 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1175 default and add to HOST_HOOKS_INITIALIZER.
1176 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1177 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1178 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1179 to set mmi.offset padding.
1180 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1181 $(srcdir)/config/i386/winnt.c.
1182 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1183 (i[34567]86-*-uwin*): Likewise.
1184 *i[34567]86-*-interix3*): Likewise.
1185 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1186 * config/i386/host-mingw32.c: New file.
1187 * config/i386/x-mingw32: Add rule for host-mingw32.o.
1188 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1189 (extern_head): Likewise.
1190 (struct export_list) Likewise.
1191 (export_head): Likewise.
1192 (i386_pe_record_external_function): Use ggc_alloc.
1193 (i386_pe_record_exported_symbol): Likewise.
1194 Include "gt-winnt.h" at end.
1195 * doc/hostconfig.texi: Document
1196 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1197
1198 2004-06-04 Bernardo Innocenti <bernie@develer.com>
1199
1200 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1201 Rename 68000 and 68k to m68k for consistency in comments. Remove
1202 trailing whitespace before EOLs and before TABs.
1203 (MAX_CODE_ALIGN): Remove unused macro.
1204 (CALL_USED_REGISTERS): Reformat and add comments.
1205
1206 2004-06-04 Frank Ch. Eigler <fche@redhat.com>
1207
1208 * gcc.c (MFLIB_SPEC): Remove library references, to require users
1209 to enumerate -lmudflap* and dependencies when linking.
1210
1211 2004-06-04 Paolo Bonzini <bonzini@gnu.org>
1212
1213 PR target/15822
1214 * dojump.c (do_jump): Fix uninitialized variable tcode1.
1215
1216 2004-06-04 Jerry Quinn <jlquinn@optonline.net>
1217
1218 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1219 * genconditions.c (write_header): Back out removal of reload.h.
1220
1221 2004-06-04 Jan Hubicka <jh@suse.cz>
1222
1223 Re-apply hopefully fixed patch:
1224 * i386.md (UNSPECV_EH_RETURN): Kill.
1225 (eh_return): Use jump_insn.
1226 (eh_return_si, eh_return_di): Change pattern to jump instruction.
1227
1228 2004-06-04 Jeff Law <law@redhat.com>
1229
1230 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1231
1232 2004-06-04 Steven Bosscher <stevenb@suse.de>
1233
1234 * except.c (for_each_eh_region): New function.
1235 * except.h (for_each_eh_region): Add a prototype for it.
1236 * tree-cfg.c (update_eh_labels): New function, callback for
1237 for_each_eh_region.
1238 (label_for_bb): Make global static, unfortunately.
1239 (cleanup_dead_labels): Also update label references for
1240 exception regions.
1241
1242 2004-06-03 Chris Demetriou <cgd@broadcom.com>
1243
1244 * config/mips/mips.c (struct irix_section_align_entry): Fix
1245 GTY marker.
1246
1247 2004-06-03 Geoffrey Keating <geoffk@apple.com>
1248
1249 * toplev.c (check_global_declarations): Don't ask for
1250 DECL_ASSEMBLER_NAME unless the function really is declared
1251 static and not defined.
1252
1253 2004-06-03 Matt Austern <austern@apple.com>
1254
1255 PR c++/15428
1256 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1257 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1258 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1259 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1260 documentation to reflect the new macro name and to clarify its
1261 meaning.
1262
1263 2004-06-03 Steven Bosscher <stevenb@suse.de>
1264
1265 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1266
1267 2004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
1268
1269 * config/darwin.c (machopic_indirect_data_reference): Copy
1270 the SYMBOL_REF_DECL from the original RTX for the new
1271 non-lazy pointer RTX.
1272
1273 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
1274
1275 * tree.h: Remove include of version.h
1276 * c-cppbuiltin.c: Include version.h
1277 * diagnostic.c: Include version.h
1278 * dwarf2out.c: Include version.h
1279 * toplev.c: Include version.h
1280 * vmsdbgout.c: Include version.h
1281 * Makefile.in: Remove dependency on version.h from TREE_H, and
1282 add dependencies to required .o targets
1283
1284 2004-06-03 Jerry Quinn <jlquinn@optonline.net>
1285
1286 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1287 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1288 (TARGET_H): Add insn-modes.h.
1289 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1290 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1291 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1292 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1293 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1294 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1295 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1296 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1297 CFGLAYOUT_H.
1298 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1299 Replace ra.h with RA_H.
1300 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1301 insn-recog.o): Replace resource.h with RESOURCE_H.
1302 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1303 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
1304 with SCHED_INT_H.
1305 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1306 ra-rewrite.o): Replace df.h with DF_H.
1307 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1308 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1309 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1310 (insn-conditions.o): Remove unused reload.h.
1311 * cfglayout.h: Add include guard. Include basic-block.h.
1312 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
1313 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1314 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
1315 basic-block.h.
1316 * genconditions.c: Remove reload.h.
1317 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
1318 hard-reg-set.h, insn-modes.h.
1319 * resource.h: Add include guard. Include hard-reg-set.h.
1320 * sched-int.h: Add include guard. Include insn-attr.h,
1321 basic-block.h, rtl.h.
1322 * target.h: Add include guard. Include insn-modes.h.
1323 * tree-ssa-live.h: Include partition.h.
1324
1325 2004-06-03 Daniel Berlin <dberlin@dberlin.org>
1326 Kenneth Zadeck <zadeck@naturalbridge.com>
1327
1328 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1329 (add_var_to_ssa_edges_worklist): Add value argument.
1330 Update callers.
1331 Use new worklist.
1332 (process_ssa_edge_worklist): New function.
1333 (tree_ssa_ccp): Move worklist processing core to
1334 process_ssa_edge_worklist, and just call that for the two worklists.
1335
1336 2004-06-03 Steven Bosscher <stevenb@suse.de>
1337
1338 * basic-block.c (tail_recursion_label_list): Don't declare.
1339 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
1340 accordingly.
1341 * cfgbuild.c (find_label_refs): Remove.
1342 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1343 * cfgcleanup.c (tail_recursion_label_p): Remove.
1344 (merge_blocks_move): Do not check for tail recursion.
1345 (try_optimize_cfg): Likewise.
1346 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1347 * cfgrtl.c (tail_recursion_label_list): Remove.
1348 * except.c (remove_unreachable_regions): Don't handle
1349 CALL_PLACEHOLDER insns.
1350 (convert_from_eh_region_ranges_1, can_throw_internal,
1351 can_throw_external): Likewise.
1352 * function.c (free_after_compilation): Don't clear
1353 x_tail_recursion_label.
1354 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1355 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1356 (reorder_blocks_1): Likewise.
1357 * function.h (struct function): Remove x_tail_recursion_label
1358 member. Don't define tail_recursion_label.
1359 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1360 * print-rtl.c (print_rtx): Likewise.
1361 * rtl.def (CALL_PLACEHOLDER): Remove.
1362 * rtl.h (sibcall_use_t): Remove enum.
1363 (optimize_sibling_and_tail_recursive_calls,
1364 replace_call_placeholder): Remove function prototypes.
1365 * stmt.c (tail_recursion_args): Remove.
1366 (optimize_tail_recursion): Remove.
1367 (expand_return): Don't check for possible tail recursion.
1368 * tree.h (optimize_tail_recursion): Remove prototype.
1369
1370 2004-06-02 Jan Hubicka <jh@suse.cz>
1371
1372 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
1373 return_stmt.
1374
1375 2004-06-02 Jason Merrill <jason@redhat.com>
1376
1377 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1378 Do include c-parse.in.
1379
1380 2004-06-02 Eric Christopher <echristo@redhat.com>
1381
1382 * c-typeck.c (common_type): Don't lose type qualifiers
1383 when creating new variants.
1384
1385 2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
1386
1387 PR tree-optimization/14042
1388 PR tree-optimization/14729
1389 PR tree-optimization/14736
1390 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1391 Check the type which the pointer points to
1392 instead of the pointer types.
1393
1394 2004-06-02 Kazu Hirata <kazu@cs.umass.edu>
1395
1396 PR tree-optimization/15738.
1397 * builtins.c (fold_builtin_strchr): Transform
1398 strrchr (s, '\0') to strchr (s, '\0').
1399
1400 2004-06-02 Steven Bosscher <stevenb@suse.de>
1401
1402 * i386.c (ix86_adjust_cost): Don't increase the cost for
1403 load+operation for PROCESSOR_PENTIUMPRO, it is already
1404 modelled in the DFA description
1405
1406 2004-06-01 Jerry Quinn <jlquinn@optonline.net>
1407
1408 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1409 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1410 (ALIAS_H, EMIT_RTL_H): New.
1411 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1412 (cfgcleanup.o): Add EMIT_RTL_H.
1413 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1414 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1415 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1416 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1417 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
1418 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1419 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1420 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1421 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1422 set_mem_size): Move to emit-rtl.h.
1423 * emit-rtl.h: New.
1424 * alias.h: New.
1425
1426 2004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
1427
1428 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1429 Call fixup_memory_subreg only if the MEM is equal to 'var'.
1430 Adjust recursive calls to self.
1431 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1432
1433 2004-06-01 Richard Henderson <rth@redhat.com>
1434 Andrew Pinski <pinskia@physics.uc.edu>
1435
1436 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1437 (primary): Handle offsetof. Add error productions for faux functions.
1438 Move component_ref objc checking to build_component_ref.
1439 (reswords): Add offsetof.
1440 (rid_to_yy): Add offsetof.
1441 * c-tree.h (build_offsetof): Declare.
1442 * c-common.h (objc_is_public): Declare.
1443 * c-typeck.c (build_component_ref): Check objc_is_public.
1444 (build_offsetof): New.
1445 * stub-objc.c (objc_is_public): New.
1446 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1447 from is_public.
1448 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1449 * doc/extend.texi (Offsetof): Move from C++ section to C section
1450 and rewrite for __builtin_offsetof.
1451
1452 2004-06-01 Peter Barada <peter@the-baradas.com>
1453 Peter Jakubek <peter@laseranimation.com>
1454
1455 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
1456 a scratch to perform an add to memory.
1457
1458 2004-06-01 Bernardo Innocenti <bernie@develer.com>
1459
1460 PR target/14018
1461 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1462 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1463 m68k_align_funcs): Remove.
1464 (override_options): Remove code to handle -malign-* options.
1465 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1466 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1467 (m68k_align_loops_string, m68k_align_jumps_string,
1468 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1469 m68k_align_funcs): Remove definitions.
1470
1471 2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
1472
1473 PR target/15626
1474 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1475 by the Sun linker in conjunction with the Sun assembler.
1476 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1477
1478 2004-06-01 Jeff Law <law@redhat.com>
1479
1480 * stmt.c (expand_decl): Be more selective about calling
1481 mark_reg_pointer.
1482
1483 2004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
1484
1485 PR objc/7993
1486 * objc-act.c (is_private): Do not emit the 'instance variable %s
1487 is declared private' error.
1488 (is_public): Emit the error after calling is_private.
1489 (lookup_objc_ivar): If the instance variable is private, return 0
1490 - the instance variable is invisible here.
1491
1492 2004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
1493
1494 * doc/invoke.texi (-static-libgcc): Explicitly mention
1495 non-GNU linkers.
1496
1497 2004-06-01 Bernardo Innocenti <bernie@develer.com>
1498
1499 PR target/12968
1500 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1501
1502 2004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
1503
1504 PR c/15749
1505 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1506 misuses of structures with flexible array members if
1507 in_system_header.
1508
1509 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1510
1511 PR target/15693
1512 * config/sparc/sparc.c (compare_operand): New predicate.
1513 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1514 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
1515 operand is a ZERO_EXTRACT and the second operand is not zero,
1516 force the former to a register.
1517 (cmpdi expander): Likewise.
1518
1519 2004-05-31 Geoffrey Keating <geoffk@apple.com>
1520
1521 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1522 looks at.
1523 * alias.c (alias_invariant_size): Make alias_invariant_size
1524 static, fix GTY marker.
1525
1526 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
1527
1528 PR tree-optimization/15743.
1529 * builtins.c (fold_builtin_1): Fold index() and rindex().
1530
1531 2004-05-31 Roger Sayle <roger@eyesopen.com>
1532
1533 PR middle-end/15069
1534 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1535 into "X < 0" (where C is the signbit) if X's type is a full mode.
1536
1537 2004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1538
1539 * pa.md: Disable the peephole2 patterns that generate indexed
1540 floating-point stores when indexing is disabled.
1541
1542 2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
1543
1544 * c-pretty-print.c (pp_c_left_bracket): Make a function.
1545 (pp_c_right_bracket): Likewise.
1546 (pp_c_star): Likewise.
1547 (pp_c_ampersand): Define.
1548 * c-pretty-print.h (pp_c_left_bracket): Declare.
1549 (pp_c_right_bracket): Likewise.
1550 (pp_c_star): Likewise.
1551 (pp_c_ampersand): Likewise.
1552
1553 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1554
1555 * config/sol2.h (__enable_execute_stack): ANSIfy function
1556 definition.
1557
1558 2004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
1559
1560 * c-incpath.c (add_path): Canonicalize paths to use '/' if
1561 HAVE_DOS_BASED_FILESYSTEM.
1562
1563 2004-05-31 Steven Bosscher <stevenb@suse.de>
1564
1565 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1566 Only look at case labels if the immediate dominator is also
1567 the only predecessor. Don't look for more case labels if the
1568 first seen is a case range.
1569
1570 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
1571
1572 * builtins.c: Add a prototype for fold_builtin_strchr().
1573
1574 2004-05-31 Paolo Bonzini <bonzini@gnu.org>
1575
1576 Revert this patch:
1577 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
1578
1579 * combine.c (gen_binary): Remove.
1580 (known_cond, simplify_shift_const
1581 find_split_point, combine_simplify_rtx,
1582 simplify_if_then_else, simplify_set,
1583 simplify_logical, expand_field_assignment,
1584 extract_left_shift, force_to_mode,
1585 if_then_else_cond, apply_distributive_law,
1586 simplify_and_const_int, simplify_shift_const,
1587 gen_lowpart_for_combine, simplify_comparison,
1588 reversed_comparison): Replace with
1589 simplify_gen_binary, simplify_gen_relational or
1590 distribute_and_simplify_rtx.
1591 (distribute_and_simplify_rtx): New function.
1592
1593 2004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1594
1595 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1596 when generating PIC code.
1597
1598 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
1599
1600 * c-decl.c (c_expand_body_1): Remove and fold back into ...
1601 (c_expand_body): here.
1602 (c_expand_decl): Move to ...
1603 * c-common.c (c_expand_decl): Here and remove check for nested
1604 functions.
1605 * c-common.h (c_expand_decl): Add prototype.
1606 * c-tree.h (c_expand_decl): Remove.
1607
1608 2004-05-30 Roger Sayle <roger@eyesopen.com>
1609
1610 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1611 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1612 fold_mathfn_compare, fold_inf_compare, fold,
1613 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1614 Use constant_boolean_node where appropriate. Don't bother using
1615 fold_convert on the second argument to omit_one_operand.
1616
1617 2004-05-30 Roger Sayle <roger@eyesopen.com>
1618
1619 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1620 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1621 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
1622 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1623 Add missing (but documented) tree nodes to the index.
1624
1625 2004-05-30 Steven Bosscher <stevenb@suse.de>
1626
1627 PR tree-optimization/14819
1628 * builtins.c (fold_builtin_strchr): New.
1629 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1630 with fold_builtin_strchr().
1631
1632 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
1633
1634 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1635 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1636 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1637 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1638 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1639 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1640 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1641 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1642 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1643 formatting.
1644
1645 2004-05-30 Steven Bosscher <stevenb@suse.de>
1646
1647 * gimplify.c (sort_case_labels): New. Split out from...
1648 (gimplify_switch_expr): ...here. Use it.
1649 * tree-eh.c (lower_try_finally_switch): Sort the labels of
1650 the SWITCH_EXPR created here before leaving the function.
1651 * tree.c (sort_case_labels): Add prototype.
1652
1653 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
1654
1655 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1656 of BOOLEAN_TYPE.
1657
1658 2004-05-30 Kazu Hirata <kazu@cs.umass.edu>
1659
1660 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1661 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1662 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1663 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1664 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1665 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1666 comment typos. Follow spelling conventions.
1667
1668 2004-05-29 Geoffrey Keating <geoffk@apple.com>
1669
1670 * gengtype-yacc.y: Add NESTED_PTR token.
1671 (option): Record `nested_ptr' option.
1672 * gengtype-lex.l: Handle `nested_ptr' keyword.
1673 * gengtype.c (walk_type): Process `nested_ptr' option.
1674 * gengtype.h (struct nested_ptr_data): New.
1675 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1676 * stringpool.c (struct string_pool_data): Make 'entries' point to
1677 ht_identifier instead of tree.
1678 (gt_pch_save_stringpool): Don't adjust pointers.
1679 (gt_pch_restore_stringpool): Call ht_load.
1680
1681 2004-05-29 Jason Merrill <jason@redhat.com>
1682
1683 * gimplify.c (gimplify_expr): Don't build a statement list
1684 if no gimplification was necessary.
1685
1686 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
1687
1688 * pretty-print.c (pp_base_format_text): Support %< instead of %`
1689 and %> as well as %'.
1690 * c-format.c: Use %< and %>.
1691 (gcc_diag_char_table, gcc_cdiag_char_table,
1692 gcc_cxxdiag_char_table): Update.
1693
1694 2004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
1695
1696 * c-typeck.c (common_type): Correct comment.
1697
1698 2004-05-29 Peter Barada <peter@the-baradas.com>
1699
1700 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1701 * config/m68k/m68k.c (const_method): Likewise.
1702 * config/m68k/m68k.c (const_int_cost): Likewise.
1703 * config/m68k/m68k.c (const_int_cost): Likewise.
1704 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1705
1706 2004-05-29 Peter Barada <peter@the-baradas.com>
1707
1708 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1709 addressing.
1710 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1711 movsi,movhi,movqi insn patterns.
1712
1713 2005-05-28 Andrew Pinski <pinskia@physics.uc.edu>
1714
1715 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1716
1717 PR target/15720
1718 * config/darwin.c (machopic_indirect_call_target): Copy
1719 the SYMBOL_REF_DECL from the original RTX for the new
1720 stub RTX.
1721
1722 2004-05-28 DJ Delorie <dj@redhat.com>
1723
1724 * stor-layout.c (place_field): Revert erroneous commit.
1725
1726 2004-05-28 Ziemowit Laski <zlaski@apple.com>
1727
1728 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1729 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1730 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1731 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1732 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1733 vec_ste): Remove type checks for integral parameters and literals
1734 from '..._args_eq' macros.
1735
1736 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
1737
1738 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1739
1740 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
1741
1742 * testsuite/g++.dg/charset/function.cc: New.
1743
1744 * testsuite/gcc.dg/charset/function.c: New.
1745
1746 * c-decl.c (c_make_fname_decl): Free return value from
1747 fname_as_string.
1748
1749 * cp/decl.c (cp_make_fname_decl): Free return value from
1750 fname_as_string.
1751
1752 * c-common.c (fname_as_string): Translate if necessary.
1753
1754 2004-05-28 Geoffrey Keating <geoffk@apple.com>
1755
1756 * stringpool.c: Add comments to PCH saving/restoring routines.
1757
1758 2004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
1759
1760 * c-common.c (c_estimate_num_insns_1): Kill.
1761 (c_estimate_num_insns): Kill.
1762 * c-common.h (c_estimate_num_insns): Kill.
1763
1764 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1765 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1766 Remove comment about not checking for
1767 _POSIX_PRIORITY_SCHEDULING.
1768 * gthr-posix.c: Likewise.
1769
1770 2004-05-28 Paolo Bonzini <bonzini@gnu.org>
1771 Roger Sayle <roger@eyesopen.com>
1772
1773 PR rtl-optimization/15649
1774 Add LTGT_EXPR and improve pretty-printing of unordered
1775 comparisons.
1776 * c-common.c (c_common_truthvalue_conversion):
1777 Handle LTGT_EXPR.
1778 * c-typeck.c (build_binary_op): Likewise.
1779 * dojump.c (do_jump): Likewise.
1780 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1781 * predict.c (tree_predict_by_opcode): Likewise.
1782 * real.c (real_compare): Likewise.
1783 * tree-cfg.c (verify_expr): Likewise.
1784 * tree-inline.c (estimate_num_insns_1): Likewise.
1785 * tree-pretty-print.c (dump_generic_node): Likewise.
1786 Handle ORDERED_EXPR, UNORDERED_EXPR.
1787 (op_symbol): Print unordered comparisons differently
1788 than ordered ones.
1789 * tree.def (LTGT_EXPR): New '<' tree code.
1790 * doc/c-tree.texi (Expressions): Document floating-point
1791 comparison nodes.
1792
1793 Fold comparisons between floating point values.
1794 * fold-const.c (enum comparison_code): New, from
1795 #define'd constants. Define compcodes for unordered
1796 comparisons and for invalid transformations.
1797 (invert_tree_comparison): Add "honor_nans" parameter.
1798 (fold_truthop): Revamp to work on floating-point types too.
1799 (comparison_to_compcode): Support unordered comparisons.
1800 Use new enum comparison_code.
1801 (compcode_to_comparison): Likewise.
1802 (combine_compcodes): New function.
1803 (invert_truthvalue): Let invert_tree_comparison decide
1804 whether it is valid to fold the comparison. Fold ORDERED
1805 and UNORDERED even if flag_unsafe_math_optimizations is off,
1806 and the remaining even if flag_unsafe_math_optimizations
1807 is off but we are under -fno-trapping-math.
1808 (fold_relational_const): Integer modes do not honor NaNs.
1809
1810 2004-05-28 Paul Brook <paul@codesourcery.com>
1811
1812 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1813
1814 2004-05-28 Paul Brook <paul@codesourcery.com>
1815
1816 * config/arm/arm.c (thumb_force_lr_save): New function.
1817 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1818 thumb_output_function_prologue): Use it.
1819 (thumb_expand_prologue): Set lr_save_eliminated.
1820
1821 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
1822
1823 * config/mips/mips.md (extendsidi2): Tie the source and destination
1824 of the register alternative. Split it into nothing.
1825
1826 2004-05-28 Richard Sandiford <rsandifo@redhat.com>
1827
1828 * rtl.h (skip_consecutive_labels): Declare.
1829 * emit-rtl.c (skip_consecutive_labels): New function.
1830 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1831 * jump.c (follow_jumps): Say what null return values mean.
1832
1833 2004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1834
1835 PR target/13250
1836 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1837
1838 2004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
1839
1840 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1841 libgcc-std.ver.
1842 * config/sh/libgcc-std.ver: New file.
1843
1844 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
1845
1846 * except.c: Revert change of 2004-05-26.
1847 * config/i386/i386.md: Revert change of 2004-05-27.
1848
1849 2004-05-27 Bryce McKinlay <mckinlay@redhat.com>
1850
1851 * configure.ac: Remove --enable-tree-browser option.
1852 Define TREEBROWSER when ac_tree_checking is defined.
1853 * configure: Rebuilt.
1854
1855 2004-05-27 Olivier Hainque <hainque@act-europe.fr>
1856
1857 * expr.c (store_constructor): Restore sanity check on
1858 the size of the type before clearing.
1859
1860 2004-05-27 Jan Hubicka <jh@suse.cz>
1861
1862 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
1863
1864 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
1865
1866 * combine.c (gen_binary): Remove.
1867 (known_cond, simplify_shift_const
1868 find_split_point, combine_simplify_rtx,
1869 simplify_if_then_else, simplify_set,
1870 simplify_logical, expand_field_assignment,
1871 extract_left_shift, force_to_mode,
1872 if_then_else_cond, apply_distributive_law,
1873 simplify_and_const_int, simplify_shift_const,
1874 gen_lowpart_for_combine, simplify_comparison,
1875 reversed_comparison): Replace with
1876 simplify_gen_binary, simplify_gen_relational or
1877 distribute_and_simplify_rtx.
1878 (distribute_and_simplify_rtx): New function.
1879 * simplify-rtx.c (simplify_binary_operation):
1880 Use nonzero_bits to simplify ANDs where we are
1881 turning off bits already known to be off in OP0.
1882
1883 2004-05-27 Alan Modra <amodra@bigpond.net.au>
1884
1885 PR target/14478
1886 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1887
1888 2004-05-27 Josef Zlomek <zlomekj@suse.cz>
1889
1890 PR middle-end/14084
1891 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1892 to size of decl.
1893
1894 2004-05-26 Aldy Hernandez <aldyh@redhat.com>
1895
1896 PR/14924
1897 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1898
1899 2004-05-26 Roger Sayle <roger@eyesopen.com>
1900
1901 * tree.h: Fix comment typo.
1902
1903 2004-05-27 Steven Bosscher <stevenb@suse.de>
1904
1905 * gimplify.c (compare_case_labels): New function.
1906 (gimplify_switch_expr): Sort case labels, and make sure the
1907 last label in the label vector is the default case.
1908 * tree-cfg.c (group_case_labels): New function.
1909 (build_tree_cfg): Cleanup redundant labels and group case labels
1910 before creating edges.
1911 (cleanup_dead_labels): Handle GOTO_EXPRs.
1912 (find_case_label_for_value): Use a binary search to find the
1913 case label for the given value.
1914 * tree-gimple.c: Mention that labels are sorted, and that the
1915 last label must be the default.
1916
1917 2004-05-27 Jan Hubicka <jh@suse.cz>
1918
1919 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1920
1921 2004-05-27 Jan Hubicka <jh@suse.cz>
1922
1923 * i386.md (UNSPECV_EH_RETURN): Kill.
1924 (eh_return): Use jump_insn.
1925 (eh_return_si, eh_return_di): Change pattern to jump instruction.
1926
1927 2004-05-26 Jan Hubicka <jh@suse.cz>
1928
1929 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
1930 not loop optimizing.
1931
1932 2004-05-26 Jan Hubicka <jh@suse.cz>
1933
1934 * except.c (can_throw_internal): Notice RESX instructions.
1935
1936 2004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
1937
1938 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1939 of the two sizes to assemble_integer.
1940
1941 2004-05-25 Paul Brook <paul@codesourcery.com>
1942
1943 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1944 pointless #ifdef.
1945
1946 2004-04-25 Paolo Bonzini <bonzini@gnu.org>
1947
1948 * Makefile.in (top_builddir): Define to .
1949
1950 2004-05-25 Alexandre Oliva <aoliva@redhat.com>
1951
1952 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1953 top-level detects, except when in-tree ld is being cross-built.
1954 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
1955 then AS only if target is host.
1956 * configure: Rebuilt.
1957
1958 2004-05-25 Vladimir Makarov <vmakarov@redhat.com>
1959
1960 * global.c (global_alloc): Call make_accurate_live_analysis.
1961 (record_one_conflict): Remove dead code.
1962 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1963 (bb_info): New structure.
1964 (BB_INFO, BB_INFO_BY_INDEX): New macros.
1965 (allocate_bb_info, free_bb_info, mark_reg_change,
1966 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1967 modify_bb_reg_pav, calculate_reg_pav,
1968 make_accurate_live_analysis): New functions.
1969
1970 2004-05-25 Devang Patel <dpatel@apple.com>
1971
1972 * alias.c (init_alias_analysis): Use ggc_calloc instead of
1973 xrealloc.
1974 (end_alias_analysis): Use ggc_free instead fo free.
1975
1976 2004-05-25 Andrew Pinski <pinskia@physics.uc.edu>
1977
1978 PR target/15546
1979 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1980 as needed to be outputted.
1981
1982 2004-05-25 Jan Hubicka <jh@suse.cz>
1983
1984 * builtins.def (__builtin_expect): Mark the function as const&nothrow.
1985
1986 2004-05-25 Ayal Zaks <zaks@il.ibm.com>
1987 Mostafa Hagog <mustafa@il.ibm.com>
1988
1989 * Makefile.in (modulo-sched.o, ddg.o): New.
1990 * ddg.h, ddg.c, modulo-sched.c: New files.
1991 * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1992 internals to "dupicate_insn".
1993 (duplicate_insn): New function.
1994 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1995 declarations.
1996 * common.opt (fmodulo-sched): New flag.
1997 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1998 Remove static and forward declaration.
1999 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2000 functions.
2001 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2002 df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2003 declarations.
2004 * flags.h (flag_modulo_sched): New flag.
2005 * opts.c (common_handle_option): Handle modulo-sched flag.
2006 * params.def (max-sms-loop-number, sms-max-ii-factor,
2007 sms-dfa-history, sms-loop-average-count-threshold): New
2008 parameters.
2009 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2010 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2011 parameters.
2012 * passes.c ("sms", "sms-vcg"): New dumps.
2013 (rest_of_handle_sched): Call sms_schedule.
2014 * rtl.h (sms_schedule): New declaration.
2015 * timevar.def (TV_SMS): New.
2016 * toplev.c (flag_modulo_sched): Initialize.
2017 (f_options): Handle -fmodulo-sched option.
2018 * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2019 * docs/passes.texi: Document new SMS pass.
2020
2021 2004-05-25 Paolo Bonzini <bonzini@gnu.org>
2022
2023 * Makefile.in (OBJS): Add rtlhooks.o.
2024 (rtlanal.o): Depend on function.h.
2025 (cse.o): Depend on rtlhooks-def.h.
2026 (combine.o): Depend on rtlhooks-def.h.
2027 (rtlhooks.o): New rule.
2028 * combine.c: Include rtlhooks-def.h.
2029 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2030 num_sign_bit_copies, cached_num_sign_bit_copies,
2031 num_sign_bit_copies1): Move most of the code to rtlanal.c.
2032 (reg_nonzero_bits_for_combine,
2033 reg_num_sign_bit_copies_for_combine): New functions holding
2034 the remnants of the above.
2035 (combine_rtl_hooks): New.
2036 (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2037 * cse.c: Include rtlhooks-def.h.
2038 (cse_rtl_hooks): New.
2039 (cse_main): Set rtl_hooks instead of gen_lowpart.
2040 * emit-rtl.c (gen_lowpart): Remove.
2041 (gen_lowpart_general): Move to rtlhooks.c.
2042 * rtl.h (nonzero_bits, num_sign_bit_copies,
2043 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2044 (gen_lowpart_general): Remove.
2045 (gen_lowpart): Temporarily redefine as a macro.
2046 * rtlanal.c: Include function.h.
2047 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2048 num_sign_bit_copies, cached_num_sign_bit_copies,
2049 num_sign_bit_copies1): New, from combine.c.
2050 * rtlhooks.c: New file.
2051 * rtlhooks-def.h: New file.
2052
2053 2004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com>
2054
2055 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2056 to support 32-bit -mint8 mode.
2057
2058 * doc/invoke.texi (-mint8): Added documentation for the -mint8
2059 option in the AVR architecture.
2060
2061 2004-05-24 Mike Stump <mrs@apple.com>
2062
2063 * doc/install.texi: Document that dejagnu 1.4.4 is required.
2064
2065 2004-05-24 Joseph S. Myers <jsm@polyomino.org.uk>
2066
2067 * intl.h (open_quote, close_quote): New.
2068 * intl.c (open_quote, close_quote): New.
2069 (gcc_init_libintl): Set them.
2070 * pretty-print.c: Include "intl.h".
2071 (pp_base_format_text): Support 'q' format flag and %` and %'
2072 formats. Use ' instead of ` in comments.
2073 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2074 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2075 foramt_types_orig): Describe these new formats.
2076 (decode_format_attr, check_function_format,
2077 check_format_info_main): Use these new formats.
2078 (status_warning): Use ATTRIBUTE_GCC_DIAG.
2079 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2080 check these formats to 3.5.
2081
2082 2004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2083
2084 * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2085 (BACKEND): Reflect this.
2086 (LIBDEPS): Move CPPLIB before LIBIBERTY.
2087 (LIBS): Likewise.
2088
2089 2004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
2090
2091 PR tree-optimization/14197
2092 * builtins.c: Include "tree-gimple.h"
2093 (readonly_data_expr): Use get_base_address. Make sure to call
2094 decl_readonly_section only on trees it can handle.
2095 * tree-gimple.c (get_base_address): Accept STRING_CST and
2096 CONSTRUCTOR expressions.
2097 * Makefile.in: Update dependencies.
2098
2099 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2100
2101 Move libcpp to the toplevel.
2102 * Makefile.in: Remove references to libcpp files,
2103 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
2104 and change hashtable.h to that.
2105 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2106 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2107 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2108 * configure: Regenerate.
2109 * config.in: Regenerate.
2110 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2111 * cppcharset.c: Removed.
2112 * cpperror.c: Removed.
2113 * cppexp.c: Removed.
2114 * cppfiles.c: Removed.
2115 * cpphash.c: Removed.
2116 * cpphash.h: Removed.
2117 * cppinit.c: Removed.
2118 * cpplex.c: Removed.
2119 * cpplib.c: Removed.
2120 * cpplib.h: Removed.
2121 * cppmacro.c: Removed.
2122 * cpppch.c: Removed.
2123 * cpptrad.c: Removed.
2124 * cppucnid.h: Removed.
2125 * cppucnid.pl: Removed.
2126 * cppucnid.tab: Removed.
2127 * hashtable.c: Removed.
2128 * hashtable.h: Removed.
2129 * line-map.c: Removed.
2130 * line-map.h: Removed.
2131 * mkdeps.c: Removed.
2132 * mkdeps.h: Removed.
2133 * stringpool.h: Include symtab.h instead of hashtable.h.
2134 * tree.h: Include symtab.h instead of hashtable.h.
2135 * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2136
2137 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2138
2139 * gcc.c (struct prefix_list): Add forward declaration.
2140 (do_spec_path): New function, extracted from...
2141 (do_spec_1) <'D'>: ... here. Drop support for
2142 SPACE_AFTER_L_OPTION.
2143 (do_spec_1) <'I'>: Use do_spec_path.
2144 (process_command): Do not store the 'include' suffix
2145 in include_prefixes.
2146 * system.h: Poison SPACE_AFTER_L_OPTION.
2147
2148 2002-05-23 Roger Sayle <roger@eyesopen.com>
2149
2150 * fold-const.c (non_lvalue): Explicitly list the tree codes that
2151 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2152
2153 2004-05-23 Joseph S. Myers <jsm@polyomino.org.uk>
2154
2155 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2156 Update based on printed manual. Enable setting of offsets for
2157 FSFPRINT and move it to gcc-common.texi.
2158 * doc/gcc.texi: Update FSF printing details.
2159 * doc/gccint.texi: Remove FSF printing details.
2160
2161 2004-05-23 Andrew Pinski <pinskia@physics.uc.edu>
2162
2163 * config/rs6000/t-rs6000: Remove the disabling -Werror.
2164
2165 2004-05-22 Roger Sayle <roger@eyesopen.com>
2166
2167 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2168 expand_builtin_strrchr, expand_builtin_strpbrk,
2169 expand_builtin_mempcpy, expand_builtin_memcmp,
2170 expand_builtin_strcmp, expand_builtin_strncmp,
2171 expand_builtin_strcat, std_expand_builtin_va_start,
2172 std_expand_builtin_va_arg, expand_builtin_va_copy,
2173 expand_builtin_signbit, fold_builtin_cabs,
2174 fold_builtin_logarithm, fold_builtin_mempcpy,
2175 fold_builtin_signbit, fold_builtin_isascii,
2176 fold_builtin_toascii, fold_builtin_isdigit,
2177 fold_builtin_1, build_function_call_expr,
2178 simplify_builtin_strchr, simplify_builtin_strrchr,
2179 simplify_builtin_strpbrk, simplify_builtin_strncpy,
2180 simplify_builtin_memcmp, simplify_builtin_strcmp,
2181 simplify_builtin_strncmp, simplify_builtin_strncat,
2182 simplify_builtin_strspn, simplify_builtin_strcspn,
2183 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2184 to build with calls to build2, build3 or omit_one_operand.
2185
2186 2004-05-22 Richard Sandiford <rsandifo@redhat.com>
2187
2188 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2189 section when generating EABI code.
2190
2191 2004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
2192
2193 PR 15546
2194 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2195 Call mark_decl_referenced on the SYMBOL_REF_DECL.
2196
2197 2004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
2198
2199 * c-common.c (c_common_truthvalue_conversion): Handle
2200 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2201 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2202 i.e. set the type to truthvalue_type_node and return.
2203
2204 2004-05-22 Zack Weinberg <zack@codesourcery.com>
2205
2206 * tree.h (struct tree_decl): Add possibly_inlined bit.
2207 (DECL_POSSIBLY_INLINED): New accessor macro.
2208 * cgraph.h: Remove declaration of cgraph_inline_hash.
2209 * cgraph.c: Remove definition of cgraph_inline_hash.
2210 (hash_node): Revert to hashing DECL_UID.
2211 (eq_node): Take two pointers to cgraph_node structures.
2212 Compare DECL_UIDs.
2213 (cgraph_remove_node): Pass the node directly to htab_find_slot.
2214 (cgraph_varpool_hash_node): Rename hash_varpool_node;
2215 hash on DECL_UID.
2216 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2217 pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2218 (cgraph_node): Allocate a temporary node on the stack, fill in
2219 its DECL field, and pass that to htab_find_slot.
2220 (cgraph_varpool_node): Likewise.
2221 (cgraph_function_possibly_inlined_p): If global info is ready,
2222 return the DECL_POSSIBLY_INLINED bit.
2223 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2224 instead of mucking with cgraph_inline_hash.
2225
2226 2004-05-22 Joseph S. Myers <jsm@polyomino.org.uk>
2227
2228 * doc/contrib.texi: Add g77 contributors.
2229
2230 2004-05-22 Richard Sandiford <rsandifo@redhat.com>
2231
2232 * calls.c (initialize_argument_information): Forbid sibcalls if a
2233 callee-copied argument is stored in the current function's frame.
2234
2235 2004-05-22 Eric Christopher <echristo@redhat.com>
2236
2237 * fix-header.c (read_scan_file): Update for add_path change.
2238
2239 2004-05-22 Ben Elliston <bje@au.ibm.com>
2240
2241 * c.opt (Wmissing-include-dirs): New.
2242 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2243 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2244 OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2245 * c-incpath.h (add_path): Add fourth (bool) argument.
2246 * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2247 (add_standard_paths): Likewise.
2248 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2249 is used and the directory was user-supplied via -I.
2250 (add_path): Set p->user_supplied_p. Remove duplicated code by
2251 using add_cpp_dir_path ().
2252 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2253 (struct cpp_dir): Add user_supplied_p.
2254 * doc/invoke.texi (Warning Options): Document new option.
2255
2256 2004-05-21 Ulrich Weigand <uweigand@de.ibm.com>
2257
2258 * fold-const.c (fold_read_from_constant_string): Convert result to
2259 requested type.
2260
2261 2004-05-21 Richard Henderson <rth@redhat.com>
2262
2263 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2264 (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2265 Don't mark VA_ARG_EXPRs volatile here.
2266 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2267
2268 2004-05-21 Richard Henderson <rth@redhat.com>
2269
2270 * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2271 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2272
2273 2004-05-21 Roger Sayle <roger@eyesopen.com>
2274
2275 * fold-const.c (fold, fold_relational_hi_lo,
2276 nondestructive_fold_binary_to_constant,
2277 fold_read_from_constant_string): Use fold_convert instead of convert.
2278 * builtins.c (simplify_builtin, simplify_builtin_strstr,
2279 simplify_builtin_strchr, simplify_builtin_strrchr,
2280 simplify_builtin_strpbrk): Use fold_convert instead of convert.
2281
2282 2004-05-21 Diego Novillo <dnovillo@redhat.com>
2283
2284 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2285 is NULL.
2286
2287 2004-05-21 Jakub Jelinek <jakub@redhat.com>
2288
2289 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2290 override sparc.h definition.
2291
2292 2004-05-20 Roger Sayle <roger@eyesopen.com>
2293
2294 * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2295 get_unwidened, get_narrower): Replace build with build2.
2296 * fold-const.c (negate_expr, associate_trees, size_binop,
2297 fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2298 pedantic_omit_one_operand, distribute_bit_expr,
2299 make_bit_field_ref, optimize_bit_field_compare,
2300 decode_field_reference, range_binop, make_range,
2301 build_range_check, fold_range_test, fold_truthop,
2302 optimize_minmax_comparison, extract_muldiv_1,
2303 fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2304 fold_inf_compare, fold_single_bit_test, fold,
2305 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2306 Likewise replace build with either build2 or build3.
2307
2308 2004-05-20 Ian Lance Taylor <ian@wasabisystems.com>
2309
2310 * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2311 * calls.c (prepare_call_address): Don't test
2312 NO_RECURSIVE_FUNCTION_CSE.
2313 * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2314 * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2315 * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2316 * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2317 * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2318 * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2319 * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2320 * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2321 * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2322 * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2323 * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2324 * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2325 Likewise.
2326 * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2327 * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2328 * doc/tm.texi (Costs): Remove documentation for
2329 NO_RECURSIVE_FUNCTION_CSE.
2330
2331 2004-05-20 Paul Brook <paul@codesourcery.com>
2332
2333 * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2334 * unwind-dw2.c (extract_cie_info): Ditto.
2335 (_Unwind_FrameState): Change retaddr_column to word type.
2336
2337 2004-05-20 Roger Sayle <roger@eyesopen.com>
2338
2339 PR middle-end/3074
2340 * fold-const.c (strip_compound_expr): Delete function.
2341 (count_cond): Delete function.
2342 (fold_binary_op_with_conditional_arg): Only perform transformations
2343 "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2344 when a is constant. This greatly simplifies this routine.
2345
2346 * tree.c (saved_expr_p): Delete function.
2347 * tree.h (saved_expr_p): Delete function prototype.
2348
2349 2004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
2350
2351 * common.opt (ftree-loop-optimize): Remove.
2352
2353 2004-05-20 Daniel Jacobowitz <dan@debian.org>
2354
2355 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2356 (NM_FOR_TARGET): Use := and $(shell).
2357 (mainversion): Remove unused variable.
2358
2359 2004-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2360
2361 * reorg.c (delete_from_delay_slot): If we have a barrier after the
2362 sequence containing the insn to be deleted, always reemit it.
2363
2364 2004-05-20 Richard Henderson <rth@redhat.com>
2365
2366 PR 15454
2367 * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2368 * function.c (expand_function_start): Expand static_chain_decl by hand.
2369 * gimplify.c (create_tmp_var_name): Export.
2370 * tree-gimple.h (create_tmp_var_name): Declare.
2371
2372 2004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
2373
2374 * rs6000.c (print_operand) <case 'z'>: Call
2375 mark_decl_referenced before assemble_name.
2376
2377 2004-05-20 Zack Weinberg <zack@codesourcery.com>
2378
2379 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2380 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2381 (cgraph_varpool_node): Hash on the pointer to the decl, not
2382 the DECL_UID. Fixes 64-bit bootstrap failure.
2383
2384 2004-05-20 Richard Earnshaw <rearnsha@arm.com>
2385
2386 * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2387 we don't earlyclobber operands used in the second insn.
2388
2389 2004-05-20 Steven Bosscher <stevenb@suse.de>
2390
2391 * tree-mudflap.c: Formatting fixes.
2392
2393 2004-05-20 J"orn Rennecke <joern.rennecke@superh.com>
2394
2395 * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2396 * gengtype.c (open_base_files): Include reload.h in ifiles.
2397 * reload.h (reg_equiv_memory_loc_varray): Declare.
2398 * reload1.c (reg_equiv_memory_loc_varray): New variable.
2399 (init_reload): Initialize it.
2400 (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2401 reg_equiv_memory_loc_varray to size 0.
2402 * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2403 growing reg_equiv_memory_loc_varray to the desired size.
2404 * passes.c (rest_of_handle_old_regalloc): Likewise.
2405 * reload.c: Amend comment on calling init_reload.
2406
2407 2004-05-20 Nick Clifton <nickc@redhat.com>
2408
2409 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2410 with 'TRAMP' in the body of the macro definition.
2411
2412 2004-05-19 H.J. Lu <hongjiu.lu@intel.com>
2413
2414 PR target/15383
2415 * config/ia64/ia64.c (ia64_expand_compare): Don't check
2416 TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2417 cmptf_libfunc isn't set.
2418 (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2419 conventions.
2420 (ia64_sysv4_init_libfuncs): New.
2421
2422 * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2423 ia64_sysv4_init_libfuncs.
2424
2425 2004-05-20 Falk Hueffner <falk@debian.org>
2426
2427 PR other/15526
2428 * libgcc2.c (__mulvsi3): Fix overflow test.
2429
2430 2004-05-19 Andrew Pinski <pinskia@physics.uc.edu>
2431
2432 PR c/14171
2433 * reg-stack.c (nan): Rename to ...
2434 (not_a_num): Here.
2435 (reg_to_stack): Rename nan to not_a_num.
2436 (subst_stack_regs_pat): Likewise.
2437 (convert_regs_entry): Likewise.
2438 (convert_regs_1): Likewise.
2439
2440 * tree-cfg.c (find_case_label_for_value): Replace call to
2441 simple_cst_equal with tree_int_cst_equal.
2442
2443 2004-05-19 Jeff Law <law@redhat.com>
2444
2445 * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2446 If the operand is for a use, then strip away the SSA_NAME, do not
2447 strip away the SSA_NAME for a set. Never call release_ssa_name.
2448 (mark_def_sites): Appropriately pass additional argument to
2449 prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
2450 then set the VDEF_RESULT to the VDEF_OP.
2451 (set_def_block): Strip away any SSA_NAME to get to the real
2452 underlying variable.
2453
2454 * tree-ssa-phiopt.c (value_replacement): Handle the case where
2455 the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2456 BB directly.
2457
2458 2004-05-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2459
2460 PR c++/15463
2461 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on
2462 result of inverse.
2463
2464 PR rtl-optimization/15274
2465 * loop-iv.c (determine_max_iter, shorten_into_mode,
2466 iv_number_of_iterations): Handle constants correctly.
2467 * rtl.h (get_mode_bounds): Declaration changed.
2468 * stor-layout.c (get_mode_bounds): Return a constant suitable for
2469 the target mode.
2470
2471 PR rtl-optimization/14692
2472 * loop-unswitch.c (may_unswitch_on): Try folding the result.
2473 (unswitch_single_loop): Work correctly when may_unswitch_on
2474 returns a folded constant.
2475
2476 * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2477 * simplify-rtx.c (simplify_const_relational_operation): Optimize
2478 comparisons with mode bounds.
2479
2480 * function.c (struct temp_slot): Add new field prev.
2481 (free_after_compilation, init_temp_slots): Free new fields.
2482 (cut_slot_from_list, insert_slot_to_list,
2483 temp_slots_at_level, max_slot_level, move_slot_to_level,
2484 make_slot_available): New functions.
2485 (assign_stack_temp_for_type, combine_temp_slots,
2486 find_temp_slot_from_address, preserve_temp_slots,
2487 preserve_rtl_expr_result, free_temp_slots,
2488 free_temps_for_rtl_expr, pop_temp_slots): Work with
2489 the new structure of lists.
2490 (mark_all_temps_used): Removed.
2491 * function.h (struct function): Field x_temp_slots
2492 replaced by x_used_temp_slots and x_avail_temp_slots.
2493 (temp_slots): Replaced by ...
2494 (used_temp_slots, avail_temp_slots): New.
2495 * tree.h (mark_all_temps_used): Declaration removed.
2496
2497 * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2498 simplify_using_assignment): Take the expression out of
2499 the expr_list wrapper.
2500
2501 * loop-iv.c (iv_number_of_iterations): Improve clasification of
2502 infinite loops.
2503
2504 2004-05-19 Roger Sayle <roger@eyesopen.com>
2505
2506 * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2507 costs should be based on code size when optimizing for size.
2508
2509 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
2510
2511 * fold-const.c: Remove non-printable character 160.
2512
2513 2004-05-19 Nick Clifton <nickc@redhat.com>
2514
2515 * doc/invoke.texi (ARM Options): Fix typo.
2516 Remove descrption of -mshort-load-bytes and
2517 -mno-short-load-bytes.
2518
2519 * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2520 missing parenthesis.
2521 * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2522 * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2523
2524 2004-05-19 Steven Bosscher <stevenb@suse.de>
2525
2526 * expr.c (store_constructor): Build loop start and end by hand
2527 instead of via loop functions from stmt.c.
2528 (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2529 Remove the code to expand them.
2530
2531 * stmt.c (loop_stack): Remove this and everything related.
2532 (struct nesting, enum nesting_desc): Update.
2533 (expand_fixup): Likewise.
2534 (expand_loop_start, expand_start_loop_continue_elsewhere,
2535 expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2536 expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2537 expand_exit_loop_if_false, expand_exit_loop_top_cond,
2538 expand_exit_something): Remove.
2539 * tree.h: Remove prototypes.
2540
2541 2004-05-18 Mike Stump <mrs@apple.com>
2542 Devang Patel <dpatel@apple.com>
2543
2544 * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2545 if this label is for eh.
2546 * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2547 * config/darwin.c (darwin_emit_unwind_label): Likewise.
2548 * dwarf2out.c (output_call_frame_info): Likewise.
2549 * output.h (default_emit_unwind_label): Likewise.
2550 * target.h (unwind_label): Likewise.
2551 * varasm.c (default_emit_unwind_label): Likewise.
2552
2553 * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2554 DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2555 DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2556 DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2557 DEBUG_RANGES_SECTION): Define.
2558
2559 2004-05-18 Zack Weinberg <zack@codesourcery.com>
2560
2561 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2562 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2563 (cgraph_varpool_node):
2564 Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2565 (cgraph_function_possibly_inlined_p): Use the decl itself for
2566 the key, not DECL_ASSEMBLER_NAME.
2567 (change_decl_assembler_name): No need to muck with the hash tables.
2568 (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2569 Delete.
2570 * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2571 for the key, not DECL_ASSEMBLER_NAME.
2572 * cgraph.h: Remove prototypes of deleted functions.
2573 * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2574 (mark_decl_referenced): New function.
2575 * tree.h: Prototype mark_decl_referenced.
2576 * final.c (output_addr_const) <case SYMBOL_REF>: Call
2577 mark_decl_referenced before assemble_name.
2578 * c-decl.c (finish_decl): Use mark_decl_referenced.
2579
2580 2004-05-18 Andrew Pinski <pinskia@physics.uc.edu>
2581 Jeff Law <law@redhat.com>
2582
2583 * tree-ssa-phiopt.c (abs_replacement): New function.
2584 (empty_block_p): New function extracted from...
2585 (candidate_bb_for_phi_optimization): Break out empty block test.
2586 (conditional_replacement): Use empty_block_p.
2587 (value_replacement): Similarly.
2588
2589 * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2590 * tree-ssa-phiopt.c: Include flags.h.
2591 (conditional_replacement): Remove argument names from prototype.
2592 Minor formatting and comment fixes.
2593 (tree_ssa_phiopt): If conditional_replacement returns false, then
2594 call value_replacement.
2595 (value_replacement): New function.
2596
2597 2004-05-18 Jeff Law <law@redhat.com>
2598
2599 * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2600 from conditional_replacement.
2601 (candidate_bb_for_phi_optimization): Similarly.
2602 (conditional_replacement): Use replace_phi_with_stmt and
2603 candidate_bb_for_phi_optimization.
2604
2605 * tree-ssa-phiopt.c: Fix various formatting issues.
2606
2607 2004-05-18 Steven Bosscher <stevenb@suse.de>
2608
2609 * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2610 s390_expand_cmpmem): Do not use expand_start_loop and
2611 expand_end_loop, instead build the loop manually.
2612
2613 2004-05-18 Alan Modra <amodra@bigpond.net.au>
2614
2615 * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2616 (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2617
2618 2004-05-17 Jeff Law <law@redhat.com>
2619
2620 * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2621 * flags.h (flag_delete_null_pointer_checks): Here.
2622 * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2623 * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2624 (add_phi_arg, remove_phi_arg_num): Similarly.
2625 * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2626 property into PHI nodes.
2627 * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2628 (record_equivalences_from_phis): If all PHI arguments are known to be
2629 nonzero, then the result must be nonzero as well.
2630 (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2631 (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2632 appropriately. Walk the USE-DEF chains and propagate nonzero property
2633 as appropriate.
2634 * tree.h (PHI_ARG_NONZERO): Define.
2635 (phi_arg_d): Add nonzero flag.
2636
2637 2004-05-17 Zack Weinberg <zack@codesourcery.com>
2638
2639 * f: Entire directory removed
2640
2641 * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2642 (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2643 (g77_integer_type_node, g77_uinteger_type_node)
2644 (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2645 * c-common.c (c_common_nodes_and_builtins): Do not initialize
2646 the above set of variables.
2647
2648 * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2649 * doc/invoke.texi, doc/standards.texi: Remove cross-references
2650 to g77 manual.
2651
2652 2004-05-17 Steven Bosscher <stevenb@suse.de>
2653
2654 PR tree-optimization/15438
2655 * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2656 attributed functions as pure or const.
2657
2658 2004-05-17 Frank Ch. Eigler <fche@redhat.com>
2659
2660 * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2661 from source code with errors.
2662
2663 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
2664
2665 Enable tree browser for all front ends.
2666 * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2667 (BACKEND): ...to here.
2668
2669 2004-05-17 Jan Hubicka <jh@suse.cz>
2670
2671 * i386.c (construct_container): Do not produce BLKmode registers.
2672 (classify_argument): Properly compute alignment of complex types.
2673
2674 2004-05-17 H.J. Lu <hongjiu.lu@intel.com>
2675
2676 PR target/15084
2677 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2678 and renamed to movdi_insv_1_rex64.
2679 (insv): Support SImode for 32bit and DImode for 64bit.
2680
2681 2004-05-17 Richard Sandiford <rsandifo@redhat.com>
2682
2683 * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2684 (TARGET_SWITCHES): Remove debugg.
2685 * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2686 TARGET_64BIT.
2687 (subdi3): Replace the define_expand with a define_insn, the latter
2688 renamed from subdi3_internal_3.
2689 (negdi2): Likewise negdi2_internal_2.
2690 (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2691 (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2692 and associated define_splits.
2693 (adddi3_internal): Renamed from adddi3_internal_3.
2694 (ashldi3_internal): Likewise ashldi3_internal4.
2695 (ashrdi3_internal): Likewise ashrdi3_internal4.
2696 (lshrdi3_internal): Likewise lshrdi3_internal4.
2697
2698 2004-05-17 Richard Sandiford <rsandifo@redhat.com>
2699
2700 * optabs.c (expand_unop): Try implementing negation using subtraction
2701 from zero.
2702
2703 2004-05-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2704
2705 * pa.md: Fix typo from last change. Remove DFmode move to and from
2706 SAR register.
2707
2708 2004-05-16 Richard Earnshaw <rearnsha@arm.com>
2709
2710 PR target/10982
2711 * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2712 (ne_zeroextractsi_shifted): New pattern.
2713 (ite_ne_zeroextractsi): New pattern.
2714 (ite_ne_zeroextractsi_shifted): New pattern.
2715
2716 2004-05-15 Steven Bosscher <stevenb@suse.de>
2717
2718 * c-gimplify.c (c_genericize):
2719 Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2720 * c-parse.in <expr_no_commas>: Likewise.
2721 <if_prefix>: Likewise.
2722 <select_or_iter_stmt>: Likewise.
2723 * expr.c (expand_var, expand_expr_real_1): Likewise.
2724 * expr.h (expand_expr): Make it a static inline function.
2725 Move prototype for expand_expr_real up before this.
2726 * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2727 Likewise.
2728 * gimplify.c (gimple_boolify, gimplify_addr_expr,
2729 gimplify_asm_expr, gimplify_expr): Likewise.
2730 * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2731 dump_function_to_file): Likewise.
2732 * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2733 * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2734 * tree-into-ssa.c (dump_tree_ssa): Likewise.
2735 * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2736 Likewise.
2737 * tree-optimize.c (execute_one_pass): Likewise.
2738 * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2739 * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2740
2741 * objc/objc-act.c (objc_build_try_enter_fragment,
2742 objc_build_try_epilogue, objc_build_catch_stmt,
2743 objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2744 with lang_hooks.foo ().
2745
2746 2004-05-15 Roger Sayle <roger@eyesopen.com>
2747
2748 * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2749 that simplify_builtin doesn't destructively modify its argument.
2750
2751 2004-05-15 Richard Earnshaw <reanrsha@arm.com>
2752
2753 * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2754 implementations for ARM and Thumb.
2755 * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2756
2757 2004-05-15 Thomas Quinot <quinot@act-europe.fr>
2758
2759 * prefix.c (update_path): Replace PREFIX with KEY only
2760 when it matches a full directory name in PATH.
2761
2762 2004-05-15 Richard Earnshaw <reanrsha@arm.com>
2763
2764 * arm.h (TARGET_APCS_32): Delete.
2765 (TARGET_MMU_TRAPS): Delete.
2766 (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never
2767 define __APCS_26__.
2768 (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2769 (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2770 (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2771 (prog_mode_type): Delete.
2772 (PROMOTE_MODE): Always promote unsigned for HImode.
2773 (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2774 (MASK_RETURN_ADDR): Simplify.
2775 * arm.c (arm_prgmode): Delete.
2776 (arm_override_options, arm_gen_rotated_half_load): Simplify.
2777 (print_multi_reg, output_return_instruction): Simplify.
2778 (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2779 (arm_return_addr): Simplify.
2780 * arm.md (prog_mode): Delete.
2781 (conds): Simplify.
2782 (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2783 (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2784 (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2785 (loadhi_shiftpredec): Delete.
2786 (peephole for post-increment on HImode load): Delete.
2787 * arm/crtn.asm: (FUNC_END): Simplify.
2788 * arm/lib1funcs.asm: Remove APCS-26 return macros.
2789 * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
2790 * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
2791 * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2792 MULTILIB_DEFAULTS as required.
2793 * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2794 * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2795 variables as required.
2796 * doc/invoke.texi (ARM Options): Remove obsolete flags.
2797
2798 2004-05-15 Alan Modra <amodra@bigpond.net.au>
2799
2800 * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2801 UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg
2802 count to 8 to handle n_reg > 2.
2803
2804 2004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
2805
2806 * doc/extend.texi: Update WG14 URL.
2807
2808 2004-05-15 Steven Bosscher <stevenb@suse.de>
2809
2810 * basic-block.h (life_analysis, delete_noop_moves):
2811 Update prototypes.
2812 * bt-load.c (branch_target_load_optimize): Don't take the
2813 insns stream as an argument. Update the life_analysis calls.
2814 * combine.c (combine_instructions): Update delete_noop_moves
2815 calls.
2816 * flow.c (notice_stack_pointer_modification): Don't take the
2817 insns stream as an argument. Work on the flow graph.
2818 (life_analysis): Likewise.
2819 (delete_noop_moves): Likewise.
2820 * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2821 (rest_of_handle_life): Update life_analysis call.
2822 (rest_of_compilation): Likewise, and also update
2823 branch_target_load_optimize call.
2824 * ra.c (reg_alloc): Update life_analysis call.
2825 * reg-stack.c (reg_to_stack): Likewise. Also, don't take
2826 the insns stream as an argument.
2827 * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2828 call.
2829 * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2830 prototypes.
2831 * value-profile.c (branch_prob): Update life_analysis call.
2832 * web.c (web_main): Work on the CFG, not on the insns stream.
2833
2834 * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2835 * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2836 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2837
2838 2004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
2839
2840 PR c/15444
2841 * c-format.c (avoid_dollar_number): New function.
2842 (check_format_info_main): Call avoid_dollar_number when operand
2843 numbers might occur but has_operand_number == 0.
2844
2845 2004-05-14 Richard Earnshaw <rearnsha@arm.com>
2846
2847 * arm.md (all peephole2 patterns): Use predicates that validate
2848 register classes as appropriate.
2849
2850 2004-05-14 Steven Bosscher <stevenb@suse.de>
2851
2852 PR opt/14472
2853 * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2854 ignore type conversions that do not inhibit tail calling.
2855 (find_tail_calls): Likewise.
2856
2857 2004-05-14 Jeff Law <law@redhat.com>
2858
2859 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2860 bother marking bypassed virtuals for out-of-ssa. Instead merge
2861 bypassed virtuals into vars_to_rename just before into-ssa pass.
2862
2863 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2864 so that it picks up more opportunities to eliminate ABS expressions
2865 or turn them into negations.
2866
2867 2004-05-14 Steven Bosscher <stevenb@suse.de>
2868
2869 * passes.c (rest_of_handle_null_pointer): Remove.
2870 (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2871 (rest_of_compilation): Likewise.
2872 * rtl.h (delete_null_pointer_checks): Remove prototype.
2873 * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2874 Remove declarations.
2875 (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2876 compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2877 free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2878 expr_reaches_here_p, computing_insn, def_reaches_here_p,
2879 can_disregard_other_sets, handle_avail_expr, classic_gcse,
2880 one_classic_gcse_pass, invalidate_nonnull_info,
2881 delete_null_pointer_checks_1, delete_null_pointer_checks,
2882 expr_reached_here_p_work): Remove.
2883 (gcse_main): Do not perform classic GCSE when optimizing for size.
2884 (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2885 are never used.
2886
2887 2004-05-14 Andrew Pinski <pinskia@physics.uc.edu>
2888
2889 PR optimization/14466
2890 * tree-complex.c (make_temp): Remove.
2891 (gimplify_val): Replace make_temp with make_rename_temp
2892 and add NULL as the second argument.
2893 (expand_complex_div_wide): Likewise.
2894 * tree-dfa.c (make_rename_temp): New function.
2895 * tree-flow.h (make_rename_temp): Declare.
2896 * tree-sra.c (make_temp): Remove.
2897 (lookup_scalar): Replace make_temp with make_rename_temp.
2898 (create_scalar_copies): Likewise.
2899 * tree-ssa-phiopt.c (conditional_replacement): When we
2900 get non gimple create a temporary variable to hold the
2901 casted expression.
2902
2903 2004-05-14 Paul Brook <paul@codesourcery.com>
2904
2905 * stor-layout.c (update_alignment_for_field): Use
2906 targetm.align_anon_bitfield.
2907 * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2908 (TARGET_INITIALIZER): Use it.
2909 * target.h (struct gcc_target): Add align_anon_bitfield.
2910 * config/arm/arm.c (arm_align_anon_bitfield): New function.
2911 (TARGET_ALIGN_ANON_BITFIELD): Define.
2912 * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2913
2914 2004-05-13 Zack Weinberg <zack@codesourcery.com>
2915
2916 * tree.def (documentation): Remove mention of class 'b'.
2917 (BLOCK): Now in class 'x'.
2918 * c-common.c (verify_tree): Remove case 'b'.
2919 * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2920 * calls.c (calls_function_1): Control cannot get past the switch
2921 when exp is a BLOCK.
2922 * print-tree.c (print_node): Move code for class 'b' to the class
2923 'c'/'x' switch, as case BLOCK.
2924 * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2925 (unsafe_for_reeval, substitute_placeholder_in_expr)
2926 (stabilize_reference_1): Remove case 'b'.
2927 * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2928 of something being 'b' to tests for TREE_CODE of something being
2929 BLOCK.
2930 * tree-ssa-operands.c (get_expr_operands): Likewise.
2931
2932 2004-05-13 Diego Novillo <dnovillo@redhat.com>
2933
2934 * tree-gimple.c: Rename from tree-simple.c.
2935 * tree-gimple.h: Rename from tree-simple.h.
2936 * c-gimplify.c: Rename from c-simplify.c
2937 * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2938 langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2939 tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2940 tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2941 tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2942 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2943 tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2944 Update.
2945
2946 2004-05-14 Ranjit Mathew <rmathew@hotmail.com>
2947
2948 * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2949
2950 2004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
2951
2952 * tree-ssa.c (delete_tree_ssa): XFREE
2953 bitmaps allocated with BITMAP_XMALLOC.
2954
2955 * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2956 idfs_cache at the end of the function.
2957
2958 * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2959 at the end of the function.
2960
2961 * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2962 el at the end of the function.
2963
2964 * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2965 bitmaps allocated with BITMAP_XMALLOC.
2966
2967 * loop-unswitch.c (unswitch_single_loop): Free bbs at
2968 the end.
2969
2970 * final.c (shorten_branches): Free uid_shuid before
2971 reallocating it.
2972
2973 * bb-reoder.c (connect_traces): Free cold_traces at the end.
2974
2975 2004-05-13 Jeff Law <law@redhat.com>
2976
2977 * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2978 variables. Simplify slightly by using USE_OP/DEF_OP instead
2979 of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2980
2981 * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2982 rather than iterating through the blocks testing each bit in
2983 livein to initialize the worklist.
2984 (mark_def_sites): Remove useless checks of KILLS for virtual
2985 operands.
2986
2987 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2988 new parameters for the statement and variable worklist as well
2989 as a bitmap of interesting SSA_NAMEs. Walk over the statement
2990 worklist recording interesting variables in the variable worklist
2991 and bitmap. Handle casts between integral and boolean types.
2992 (substitute_single_use_vars): Accept new parameters for the statement
2993 and variable worklist. When a substitution is made add a new
2994 entry to the statement worklist. Handle casts between integral
2995 and boolean types.
2996 (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2997 worklists to children. Iterate until the statement worklist
2998 is empty.
2999
3000 2004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
3001
3002 * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3003 the end of the block.
3004
3005 * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3006 with BITMAP_XMALLOC.
3007
3008 * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3009 with BITMAP_XMALLOC.
3010
3011 * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3012 Free nonzero_vars at the end of the function.
3013
3014 * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3015 need to generate code instead of a NOP_EXPR.
3016
3017 2004-05-13 Ian Lance Taylor <ian@wasabisystems.com>
3018
3019 * gcc.c (default_compilers): Fill out initializers for new Fortran
3020 entries.
3021
3022 2004-05-13 Paul Brook <paul@codesourcery.com>
3023
3024 * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3025
3026 2004-05-13 Paul Brook <paul@codesourcery.com>
3027
3028 * config/arm/arm.c (arm_default_short_enums): New function.
3029 (TARGET_DEFAULT_SHORT_ENUMS): Define.
3030
3031 2004-05-13 Diego Novillo <dnovillo@redhat.com>
3032
3033 Merge from tree-ssa-20020619-branch.
3034
3035 * Makefile.in (reload1.o-warn): Add.
3036 (tree-alias-ander.o-warn): Add.
3037 (GMPLIBS): Define.
3038 (GMPINC): Define.
3039 (BANSHEELIB): Define.
3040 (BANSHEEINC): Define.
3041 (TREE_DUMP_H): Define.
3042 (TREE_SIMPLE_H): Define.
3043 (TREE_FLOW_H): Define.
3044 (LIBDEPS): Add BANSHEELIB.
3045 (INCLUDES): Add BANSHEEINC and GMPINC.
3046 (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3047 c-mudflap.o and c-pretty-print.o.
3048 (C_OBJS): Remove c-pretty-print.o.
3049 (OBJS-common): Remove sibcall.o.
3050 Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3051 tree-ssa.o, tree-optimize.o, tree-simple.o,
3052 tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3053 tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3054 tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3055 tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3056 tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3057 tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3058 tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3059 tree-tailcall.o, gimple-low.o, tree-iterator.o,
3060 tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3061 tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3062 tree-profile.o.
3063 (OBJC-archive): Add tree-nomudflap.o.
3064 (cc1): Add dependency on @TREEBROWSER@.
3065 (c-decl.o): Add dependency on TREE_DUMP_H.
3066 (c-dump.o): Likewise.
3067 (c-common.o): Add dependency on tree-iterator.h
3068 (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3069 (gtype-desc.o): Add dependency on TREE_FLOW_H.
3070 (tree.o): Add dependency on tree-iterator.h,
3071 BASIC_BLOCK_H and TREE_FLOW_H.
3072 (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3073 (langhooks.o): Add dependency on TREE_SIMPLE_H.
3074 (tree-alias-type.o, tree-alias-ander.o,
3075 tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3076 tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3077 tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3078 tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3079 domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3080 tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3081 tree-nested.o, tree-iterator.o, tree-dfa.o,
3082 tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3083 tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3084 gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3085 tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3086 tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3087 tree-sra.o, tree-complex.o, tree-profile.o,
3088 rtl-profile.o): New rules.
3089 (function.o): Add dependency on basic-block.h
3090 (expr.o): Add dependency on tree-iterator.h.
3091 (sibcall.o): Remove.
3092 (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3093 (cfg.o): Add dependency on TIMEVAR_H.
3094 (cfghooks.o): Add dependency on TREE_FLOW_H.
3095 (reg-stack.o): Add dependency on basic-block.h.
3096 (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3097 c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3098 tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3099 tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3100 tree-alias-type.h, tree-alias-common.h,
3101 tree-alias-type.c, tree-alias-common.c,
3102 tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3103 rtl-profile.c and tree-nested.c.
3104 (gt-tree-alias-common.h, gt-tree-mudflap.h,
3105 gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3106 gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3107 gt-tree-cfg.h, gt-tree-nested.h): New rules.
3108 (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3109 * basic-block.h: Include predict.h
3110 (struct edge_def): Add GTY marker.
3111 Change field 'insns' to be a union of tree and rtx.
3112 (EDGE_TRUE_VALUE): Define.
3113 (EDGE_FALSE_VALUE): Define.
3114 (EDGE_EXECUTABLE): Define.
3115 (struct bb_ann_d): Forward declare.
3116 (struct basic_block_def): Add GTY marker.
3117 Remove fields head_tree and end_tree.
3118 Add fields stmt_list, rbi and tree_annotations.
3119 (struct reorder_block_def): Define.
3120 (basic_block_info): Add GTY marker.
3121 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3122 variables instead of macros.
3123 (flow_call_edges_add): Remove declaration.
3124 (make_eh_edge): Remove declaration.
3125 (brief_dump_cfg, find_edge, tree_predicted_by_p,
3126 rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3127 predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3128 cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3129 alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3130 (try_redirect_by_replacing_jump): Modfiy return type to
3131 edge instead of bool.
3132 * bb-reorder.c (copy_bb): Call duplicate_block
3133 instead of cfg_layout_duplicate_bb.
3134 (copy_bb_p): Call can_duplicate_block_p instead of
3135 cfg_layout_can_duplicate_bb_p.
3136 * bitmap.c (bitmap_first_set_bit): Abort if word
3137 wasn't found.
3138 (bitmap_last_set_bit): Likewise.
3139 * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3140 (DEF_FUNCTION_TYPE_3): Add.
3141 * builtins.c (c_strlen): Make extern.
3142 (builtin_save_expr): New.
3143 (expand_builtin_nonlocal_goto): New.
3144 (expand_builtin_constant_p): Remove.
3145 (expand_builtin_mathfn): Call builtin_save_expr instead
3146 of save_expr.
3147 (expand_builtin_mathfn_2): Likewise.
3148 (expand_builtin_strcmp): Likewise.
3149 (expand_builtin_strncmp): Likewise.
3150 (expand_builtin_strcat): Likewise.
3151 (fold_builtin_cabs): Likewise.
3152 (expand_builtin_alloca): Don't trigger if -fmudflap is
3153 given.
3154 (build_string_literal): Set TREE_INVARIANT on new node.
3155 (expand_builtin_profile_fun): New.
3156 (round_trampoline_addr): New.
3157 (expand_builtin_init_trampoline): New.
3158 (expand_builtin_adjust_trampoline): New.
3159 (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3160 <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3161 <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3162 BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3163 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3164 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3165 Handle.
3166 (fold_builtin_expect): New.
3167 (fold_builtin_isascii): Don't return non-constant results
3168 in GIMPLE form.
3169 (fold_builtin_isdigit): Likewise.
3170 (fold_builtin_1): New.
3171 (fold_builtin): Call it.
3172 (build_function_call_expr): Update call to build a new
3173 CALL_EXPR.
3174 (purge_builtin_constant_p): Remove.
3175 (simplify_builtin, simplify_builtin_memcmp,
3176 simplify_builtin_strcmp, simplify_builtin_strncmp,
3177 simplify_builtin_strpbrk, simplify_builtin_strstr,
3178 simplify_builtin_strchr, simplify_builtin_strrchr,
3179 simplify_builtin_strcat, simplify_builtin_strncat,
3180 simplify_builtin_strspn, simplify_builtin_strcspn,
3181 simplify_builtin_next_arg, simplify_builtin_va_start,
3182 simplify_builtin_sprintf): New.
3183 * builtins.def (BUILT_IN_STACK_ALLOC,
3184 BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3185 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3186 BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3187 BUILT_IN_PROFILE_FUNC_EXIT): Define.
3188 * c-common.c: Include tree-iterator.h and hashtab.h.
3189 (lang_statement_code_p): Declare.
3190 (lang_gimplify_stmt): Declare.
3191 (fix_string_type): Set TREE_INVARIANT for value.
3192 (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3193 (c_type_hash): New.
3194 (c_common_get_alias_set): Handle multiple type nodes
3195 referring to "the same" type, currently for C90 only.
3196 (c_add_case_label): Use create_artificial_label.
3197 (finish_label_address_expr): Don't set TREE_CONSTANT on
3198 result.
3199 (c_expand_expr): Don't handle STMT_EXPR.
3200 (handle_alias_attribute): Marke aliased variables to be
3201 TREE_STATIC.
3202 (handle_nonnull_attribute): Initialize arg_num.
3203 (check_function_nonnull): Likewise.
3204 (c_walk_subtrees): New.
3205 (c_estimate_num_insns_1): Don't handle
3206 EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3207 (c_decl_uninit_1): Remove.
3208 (c_decl_uninit): Remove.
3209 (c_warn_unused_result): New.
3210 * c-common.def (ASM_STMT): Change number of operands
3211 to 4.
3212 (FILE_STMT): Remove.
3213 * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3214 Remove.
3215 (lang_gimplify_stmt): Add.
3216 (expand_stmt): Remove.
3217 (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3218 ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3219 ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3220 FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3221 ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3222 (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3223 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3224 genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3225 genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3226 genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3227 genrtl_compound_stmt, genrtl_asm_stmt,
3228 genrtl_cleanup_stmt, c_decl_uninit): Remove.
3229 (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3230 c_tree_chain_matters_p, c_warn_unused_result,
3231 c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3232 Declare.
3233 * c-convert.c (convert): Make convert work when
3234 converting to compatible types across translation unit.
3235 * c-decl.c: Include langhooks.h, tree-mudflap.h,
3236 tree-simple.h, diagnostic.h and tree-dump.h
3237 (merge_decls): Initialize oldtype to NULL.
3238 (finish_decl): Use DECL_HARD_REGISTER instead of
3239 DECL_C_HARD_REGISTER.
3240 (check_bitfield_type_and_width): Check for null
3241 lang_type_specific when check the precision of an enum.
3242 (grokdeclarator): Immediately layout an ARRAY_TYPE used
3243 in a pointer-to-array declarator.
3244 (finish_struct): Clear allocated struct lang_type.
3245 (finish_enum): Set enum_min and enum_max. Set
3246 TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3247 not to the enumerators.
3248 (set_decl_nonlocal): New.
3249 (store_parm_decls): Use it via walk_tree.
3250 (c_finalize): New.
3251 (finish_function): When !targetm.have_ctors_dtors,
3252 record static constructors and destructors here...
3253 (c_expand_body_1): ... not here.
3254 (c_expand_decl): Rename from c_expand_decl_stmt.
3255 Handle all C-specific expansion semantics.
3256 * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3257 STMT_LINENO.
3258 * c-format.c (handle_format_arg_attribute): Initialize
3259 format_num.
3260 * c-lang.c: Include tree-inline.h
3261 (LANG_HOOKS_EXPAND_DECL,
3262 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3263 LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3264 LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3265 LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3266 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3267 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3268 (c_types_compatible_p): New.
3269 * c-mudflap.c: New file.
3270 * c-objc-common.c: Include tree-mudflap.h
3271 (start_cdtor, finish_cdtor): Collapse
3272 together into
3273 (build_cdtor): ...here. Update to construct a complete tree
3274 for the function. No need to call push_scope, pop_scope, or
3275 clear_last_expr, or set current_function_cannot_inline.
3276 (c_missing_noreturn_ok_p): Change prototype to return
3277 bool.
3278 (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3279 * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3280 opts.c.
3281 (c_common_post_options): Don't ever use rtl inlining.
3282 * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3283 * c-pragma.c (handle_pragma_redefine_extname): Define
3284 always.
3285 (init_pragma): Activate #pragma redefine_extname for mudflap.
3286 * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3287 (pp_c_initializer): Accept any type CONSTRUCTOR.
3288 (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3289 COMPLEX_TYPE.
3290 (decl_name_str): New local function.
3291 (pp_c_direct_declarator): Call it.
3292 (pp_c_primary_expression): Call it.
3293 (pp_c_id_expression): Call it.
3294 (pp_c_statement): Call it.
3295 (print_c_tree): Create new pp object.
3296 * c-pretty-print.h (pp_c_tree_decl_identifier,
3297 print_c_tree): Declare.
3298 * c-semantics.c: Include langhooks.h
3299 (lang_expand_stmt, lang_expand_decl_stmt,
3300 find_reachable_label_1, find_reachable_label,
3301 expand_unreachable_if_stmt, expand_unreachable_stmt,
3302 genrtl_do_stmt_1): Remove.
3303 (begin_stmt_tree): Don't check for changed filename.
3304 Call annotate_with_locus.
3305 (finish_stmt_tree): Don't set line for end of function.
3306 (build_stmt): Don't check type nodes for
3307 side effects.
3308 (build_stmt): Set TREE_SIDE_EFFECTS.
3309 Set EXPR_LOCUS instead of STMT_LINENO.
3310 (lang_expand_stmt, lang_expand_decl_stmt,
3311 expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3312 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3313 genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3314 genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3315 genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3316 genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3317 genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3318 find_reachable_label_1, expand_unreachable_if_stmt,
3319 expand_unreachable_stmt): Remove.
3320 (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3321 * c-simplify.c: New file.
3322 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3323 (struct lang_type): Add fields enum_min and enum_max.
3324 (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3325 (c_expand_decl, c_missing_noreturn_ok_p,
3326 c_types_compatible_p): Declare.
3327 * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3328 compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3329 (default_function_array_conversion): Rely on build to
3330 set TREE_CONSTANT.
3331 (parser_build_binary_op, pointer_diff): Likewise.
3332 (build_unary_op, build_binary_op): Likewise.
3333 (build_array_ref):
3334 (build_external_ref): Set TREE_INVARIANT.
3335 (build_c_cast, pop_init_level): Likewise.
3336 (process_init_element): Use ASM_VOLATILE_P.
3337 (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3338 (c_finish_case): Call c_do_switch_warnings.
3339 * c.opt (fdump-): Remove.
3340 * calls.c (try_to_integrate): Remove.
3341 (prepare_call_address): Replace fndecl arg with a
3342 precomputed static chain value.
3343 (emit_call_1): New argument for full call expr.
3344 (flags_from_decl_or_type): Call special_function_p.
3345 (initialize_argument_information): Add argument
3346 may_tailcall.
3347 (purge_reg_equiv_notes): New.
3348 (expand_call): Do not try to expand calls inline.
3349 (fixup_tail_calls): New.
3350 * cfg.c: Include timevar.h and ggc.h.
3351 (bb_pool, edge_pool): Remove.
3352 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3353 (entry_exit_blocks): Remove.
3354 (rbi_pool): Declare.
3355 (init_flow): Do not create pools.
3356 Allocate entry/exit block.
3357 (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3358 (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3359 (unlink_block): Clear b->prev_bb and b->next_bb.
3360 (compact_blocks): Clear all slots of BASIC_BLOCK array.
3361 (dump_flow_info): Work on trees too.
3362 (dump_cfg_bb_info): New.
3363 (brief_dump_cfg): New.
3364 * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3365 (find_edge): New.
3366 * cfgbuild.c (rtl_make_eh_edge): Rename from
3367 make_eh_edge. Update all users.
3368 (find_basic_blocks): Don't call VARRAY_FREE on
3369 basic_block_info.
3370 * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3371 and newpos2.
3372 (delete_unreachable_blocks): Return changed status.
3373 (merge_seq_blocks): New.
3374 * cfghooks.c: Include tree-flow.h
3375 (tree_register_cfg_hooks, ir_type): New.
3376 (redirect_edge_and_branch): Change return type to edge.
3377 (predict_edge, predicted_by_p, can_duplicate_block_p,
3378 duplicate_block, block_ends_with_call_p,
3379 block_ends_with_condjump_p, flow_call_edges_add): New.
3380 * cfghooks.h (redirect_edge_and_branch): Change return
3381 type to edge.
3382 (predict_edge, predicted_by_p, can_duplicate_block_p,
3383 duplicate_block, block_ends_with_call_p,
3384 block_ends_with_condjump_p, flow_call_edges_add): Declare.
3385 (redirect_edge_and_branch): Change return type to edge.
3386 (struct cfg_hooks): Add fields block_ends_with_call_p,
3387 block_ends_with_condjump_p, flow_call_edges_add,
3388 predict_edge, predicted_by_p, can_duplicate_block_p and
3389 duplicate_block.
3390 (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3391 * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3392 (fixup_reorder_chain): Use initialize_bb_rbi.
3393 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3394 (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3395 (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3396 (insn_locators_initialize): Use new info about blocks.
3397 * cfglayout.h (typedef struct reorder_block_def): Moved to
3398 basic_block.h.
3399 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3400 removed.
3401 * cfgloop.c: Include tree.h and tree-flow.h.
3402 * cfgloop.h (create_loop_notes): Declare.
3403 * cfgloopmanip.c (create_loop_notes): New.
3404 * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3405 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3406 and duplicate_block fields.
3407 (create_basic_block_structure): Don't look at
3408 RTX_INTEGRATED_P.
3409 (rtl_block_ends_with_call_p): New.
3410 (rtl_block_ends_with_condjump_p): New.
3411 (need_fake_edge_p): Moved from cfganal.c.
3412 (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3413 (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3414 rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3415 (cfg_layout_rtl_cfg_hooks): Ditto.
3416 * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3417 functions to be reachable.
3418 * cgraphunit.c (decide_is_function_needed):
3419 * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3420 inline functions don't need to be output.
3421 (cgraph_assemble_pending_functions): Don't do anything
3422 special for nested functions.
3423 (cgraph_mark_functions_to_output): Likewise.
3424 (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3425 (cgraph_analyze_function): Use estimate_num_insns.
3426 (cgraph_mark_functions_to_output): Likewise.
3427 (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3428 (cgraph_expand_function): Allow functions to not be
3429 emitted.
3430 (cgraph_remove_unreachable_nodes):
3431 (cgraph_recursive_inlining_p): Simplify.
3432 (lookup_recursive_calls,
3433 cgraph_decide_recursive_inlining): New.
3434 (cgraph_decide_inlining_*): Update calls of
3435 cgraph_mark_inline.
3436 * combine.c (get_pos_from_mask): Always set *plen.
3437 * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3438 ftree-based-profiling, ftree-ccp, ftree-ch,
3439 ftree-combine-temps, ftree-copyrename, ftree-dce,
3440 ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3441 ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3442 ftree-lrs): Add.
3443 * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3444 Undefine.
3445 * configure.ac: Add --enable-tree-browser option.
3446 Add --with-libbanshee option.
3447 Add GMPLIBS and GMPINC.
3448 * configure: Regenerate.
3449 * coverage.c (tree_ctr_tables): New.
3450 (coverage_counter_alloc): Use it.
3451 (build_ctr_info_value): Ditto.
3452 (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref.
3453 (tree_coverage_counter_ref): New.
3454 * coverage.h (coverage_counter_ref): Remove declaration.
3455 (rtl_coverage_counter_ref): Declare.
3456 (tree_coverage_counter_ref): Declare.
3457 * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3458 (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3459 * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3460 (struct cse_basic_block_data): Rename enum values to not
3461 conflict with profile.h; update all uses.
3462 * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3463 in comments.
3464 * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3465 * diagnostic.h (debug_output_buffer, dump_generic_node,
3466 print_generic_stmt, print_generic_stmt_indented,
3467 print_generic_expr, print_generic_decl,
3468 debug_generic_expr, debug_generic_stmt, debug_c_tree):
3469 Declare.
3470 * dominance.c: Cache immediate dominators.
3471 * domwalk.c: New file.
3472 * domwalk.h: New file.
3473 * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3474 (gen_subprogram_die): Generate a DIE for a named
3475 return value.
3476 (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3477 (add_location_or_const_value_attribute): Likewise.
3478 (add_bound_info): Likewise.
3479 (gen_decl_die): Likewise.
3480 * emit-rtl.c (maybe_set_first_label_num): New.
3481 (copy_most_rtx): Don't copy the integrated flag.
3482 Copy the new return_val flag.
3483 * et-forest.c (MAX_NODES): Define.
3484 (record_path_before_1): Abort if len is greater than
3485 MAX_NODES.
3486 * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3487 gen_eh_region_catch, gen_eh_region_allowed,
3488 gen_eh_region_must_not_throw, get_eh_region_number,
3489 get_eh_region_may_contain_throw, get_eh_region_tree_label,
3490 set_eh_region_tree_label, expand_resx_expr): New.
3491 (expand_eh_region_start, expand_start_catch): Use them.
3492 (expand_end_catch): Tidy.
3493 (note_eh_region_may_contain_throw): Take region argument.
3494 (note_current_region_may_contain_throw): New.
3495 (get_exception_filter): Export.
3496 (collect_eh_region_array): Export.
3497 (remove_unreachable_regions): Check ERT_TRY based on reachability
3498 of catches, not reachability of continue_label. Never remove
3499 ERT_MUST_NOT_THROW regions.
3500 (collect_rtl_labels_from_trees): New.
3501 (convert_from_eh_region_ranges): Use it.
3502 (connect_post_landing_pads): Handle dying cleanups.
3503 (struct reachable_info): Add callback data.
3504 (add_reachable_handler): Invoke the callback.
3505 (foreach_reachable_handler): New.
3506 (reachable_handlers): Use it.
3507 (arh_to_landing_pad, arh_to_label): New.
3508 (can_throw_internal_1): Split out from can_throw_internal.
3509 (can_throw_external_1): Similarly.
3510 * except.h: Update.
3511 * explow.c (emit_stack_save): Remove savearea mode check.
3512 (update_nonlocal_goto_save_area): New.
3513 (allocate_dynamic_stack_space): Use it.
3514 (probe_stack_range): Never emit loop notes.
3515 * expmed.c (extract_fixed_bit_field): Always propagate the
3516 target for the shift if it is a REG.
3517 * expr.c: Include tree-iterator.h
3518 (is_zeros_p): Remove.
3519 (categorize_ctor_elements_1, categorize_ctor_elements): New.
3520 (count_type_elements): New.
3521 (mostly_zeros_p): Use them.
3522 (expr_wfl_stack): Remove.
3523 (convert_move): Do nothing if to and from are the same.
3524 (emit_block_move_via_loop): Don't emit LOOP notes.
3525 (emit_move_insn): Don't handle CONSTANT_P_RTX.
3526 (emit_move_insn_1): Don't generate inline warnings.
3527 (expand_vars, expand_var): Split from ...
3528 (expand_expr_1): ... here.
3529 (expand_expr_real, expand_expr_real_1): Use new macros
3530 EXPR_LOCATION and EXPR_HAS_LOCATION.
3531 * expr.h (simplify_builtin_fputs,
3532 simplify_builtin_strcpy, simplify_builtin_strncpy,
3533 expand_var, fixup_tail_calls,
3534 update_nonlocal_goto_save_area): Declare.
3535 (lookup_static_chain, expand_inline_function,
3536 mark_seen_cases): Remove.
3537 (prepare_call_address): Change type of 2nd argument to
3538 rtx.
3539 * final.c (profile_function): Update static chain test.
3540 (final): Don't look at RTX_INTEGRATED_P.
3541 * flags.h (flag_mudflap, flag_mudflap_threads,
3542 flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3543 flag_tree_dce, flag_tree_combine_temps,
3544 flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3545 flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3546 flag_tree_points_to): Declare.
3547 (enum pta_type): Declare.
3548 * flow.c (lang_missing_noreturn_ok_p): Remove.
3549 (check_function_return_warnings): Remove.
3550 (update_life_info): Update comments.
3551 (free_basic_block_vars): Don't call VARRAY_FREE for
3552 basic_block_info.
3553 (regno_uninitialized): Remove.
3554 * fold-const.c (int_const_binop): Make extern.
3555 (non_lvalue): Rely on build to set TREE_CONSTANT.
3556 (operand_equal_p): Replace only_const argument with
3557 flags. Allow pure functions if OEP_PURE_SAME.
3558 (fold): Use OEP_ONLY_CONST.
3559 (invert_truthvalue) <NOP_EXPR> Break if argument is of
3560 boolean type.
3561 (fold_relational_hi_lo,
3562 nondestructive_fold_binary_to_constant,
3563 nondestructive_fold_unary_to_constant,
3564 fold_read_from_constant_string): New.
3565 * function.c (struct function): Remove calls_constant_p.
3566 (current_function_calls_constant_p): Remove.
3567 (inline_function_decl): Remove.
3568 (put_var_into_stack): Don't use it.
3569 (fix_lexical_addr): Likewise.
3570 (inline_function_decl): Remove extern declaration.
3571 (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3572 (trampolines_created): Move to varasm.c.
3573 (free_after_compilation): Update for removed fields.
3574 (allocate_struct_function): Likewise.
3575 (delete_handlers, lookup_static_chain): Remove.
3576 (fix_lexical_addr): Don't consider non-local variable refs.
3577 (trampoline_address): Remove.
3578 (round_trampoline_addr): Move to builtins.c.
3579 (adjust_trampoline_addr): Remove.
3580 (expand_function_start): Update for changes to static chain
3581 and nonlocal goto handling.
3582 (initial_trampoline): Move to varasm.c.
3583 (expand_function_end): Don't build trampolines or kill
3584 unreferenced nonlocal goto labels.
3585 (free_after_compilation): Don't set it.
3586 (expand_function_end): Likewise.
3587 (setjmp_vars_warning): Rename from
3588 uninitialized_vars_warning, remove uninitialized vars warning.
3589 (uninitialized_vars_warning): Remove old comment
3590 and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3591 and do not call the langhook.
3592 (expand_function_start, expand_function_end): Don't do
3593 function instrumentation here.
3594 (clear_block_marks): Rename from reorder_blocks_0, export.
3595 (blocks_nreverse): Export.
3596 (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3597 of rtl.
3598 (reset_block_changes, record_block_change, finalize_block_changes,
3599 check_block_change, free_block_changes): New functions.
3600 (assign_parms): Setting of current_function_stdarg
3601 moved ...
3602 (allocate_struct_function): ... here.
3603 * function.h (struct function): Remove x_nonlocal_labels,
3604 x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3605 x_context_display, x_trampoline_list, needs_context.
3606 Add static_chain_decl, nonlocal_goto_save_area.
3607 (struct function): Remove x_clobber_return_insn.
3608 Add tail_call_emit field, last_label_uid,
3609 unexpanded_var_list, dont_emit_block_notes,
3610 ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3611 (clear_block_marks): Declare.
3612 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3613 (mfwrap_spec, mflib_spec): Declare.
3614 (cpp_unique_options, cc1_options): Ditto.
3615 (default_compilers): Add .F and .f90.
3616 (static_specs): Add mfwrap and mflib.
3617 * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3618 CONSTANT_RTX_P.
3619 (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3620 Update to match insns field in struct edge_def.
3621 * gdbinit.in (pgs, pge): Define.
3622 * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3623 instead of the integrated flag.
3624 * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3625 * gengtype-yacc.y (bitfieldlen): Add empty action.
3626 (struct_fields): Accept unnamed bitfields.
3627 (bitfieldlen): Split from ...
3628 (bitfieldopt): ... here.
3629 * gengtype.c (ifiles): Add tree-alias-type.h and
3630 tree-flow.h.
3631 * genrecog.c (validate_pattern): Do not handle
3632 CONSTANT_P_RTX.
3633 * gimple-low.c: New file.
3634 * gimplify.c: New file.
3635 * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3636 (restore_line_notes): Do not set RTX_INTEGRATED_P.
3637 * ifcvt.c (dead_or_predicable): Initialize local variable
3638 'earliest'.
3639 * input.h (expr_wfl_stack): Remove.
3640 * integrate.c (INTEGRATE_THRESHOLD): Remove.
3641 (setup_initial_hard_reg_value_integration): Likewise.
3642 (initialize_for_inline): Likewise.
3643 (note_modified_parmregs): Likewise.
3644 (integrate_parm_decls): Likewise.
3645 (process_reg_param): Likewise.
3646 (save_parm_insns): Likewise.
3647 (copy_insn_list): Likewise.
3648 (copy_insn_notes): Likewise.
3649 (compare_blocks): Likewise.
3650 (find_block): Likewise.
3651 (inlining): Likewise.
3652 (function_cannot_inline_p): Likewise.
3653 (parmdecl_map): Likewise.
3654 (in_nonparam_insns): Likewise.
3655 (save_for_inline): Likewise.
3656 (FIXED_BASE_PLUS): Likewise.
3657 (expand_inline_function): Likewise.
3658 (copy_rtx_and_substitute): Don't look at map->integrating,
3659 map->inline_target, and inlining, since we are never copying
3660 for integrating.
3661 Don't abort on RTX_INTEGRATED_P.
3662 (old_fun): Remove.
3663 (output_inline_function): Remove.
3664 * integrate.h (struct inline_map): Remove fields integrating,
3665 block_map, leaf_reg_map, inline_target, and local_return_label.
3666 * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3667 copy_loop_headers, never_reached_warning): Removed.
3668 (any_uncondjump_p): Reject nonlocal goto.
3669 * langhooks-def.h (lhd_types_compatible_p,
3670 lhd_expand_decl, lhd_gimplify_expr): Declare.
3671 (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3672 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3673 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3674 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3675 LANG_HOOKS_GIMPLIFY_EXPR,
3676 LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3677 LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3678 LANG_HOOKS_GIMPLIFY_EXPR,
3679 LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3680 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3681 LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3682 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3683 LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3684 LANG_HOOKS_DECL_UNINIT,
3685 LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3686 * langhooks.c: Include tree-simple.h.
3687 (lhd_expand_decl): New.
3688 (lhd_types_compatible_p): New.
3689 (lhd_decl_uninit): Remove.
3690 (lhd_gimplify_expr): New.
3691 * langhooks.h (struct lang_hooks_for_rtl_expansion):
3692 Remove.
3693 (struct lang_hooks_for_functions): Add field
3694 missing_noreturn_ok_p.
3695 (struct lang_hooks): Add field expand_decl,
3696 types_compatible_p, gimplify_expr and
3697 gimple_before_inlining.
3698 Remove fields decl_uninit and rtl_expand
3699 * opts.c (decode_options): Set flag_tree_ccp,
3700 flag_tree_dce, flag_tree_dom, flag_tree_dse,
3701 flag_tree_pre, flag_tree_ter,
3702 flag_tree_live_range_split, flag_tree_sra,
3703 flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3704 (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3705 OPT_fmudflapth, OPT_fmudflapir,
3706 OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3707 OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3708 OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3709 OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3710 OPT_ftree_points_to_ and OPT_ftree_pre.
3711 * output.h (regno_uninitialized, find_basic_blocks,
3712 cleanup_cfg, delete_unreachable_blocks,
3713 check_function_return_warnings): Remove.
3714 * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3715 PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3716 PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3717 PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3718 PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3719 * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3720 Define.
3721 * passes.c (rest_of_decl_compilation):
3722 (rest_of_handle_sibling_calls): Remove.
3723 (rest_of_handle_inlining): Remove.
3724 (rest_of_handle_gcse): Do not run
3725 purge_builtin_constant_p.
3726 (rest_of_compilation): Update.
3727 Do not call copy_loop_headers.
3728 Do rtl-based profiling only when
3729 !flag_tree_based_profiling. Register rtl-based profiling
3730 hooks.
3731 * predict.c: Include tree-flow.h, ggc.h, tree-dump.h
3732 (predicted_by_p): Rename to ...
3733 (rtl_predicted_by_p): .. this one; make global
3734 (tree_predicted_by_p): New.
3735 (dump_prediction): Add FILE argument.
3736 (predict_edge): Rename to ...
3737 (rtl_predict_edge): .. this one.
3738 (tree_predict_edge): New.
3739 (combine_predictions_for_insn): Update calls of predict_edge.
3740 (predict_loops): Break out from ...
3741 (estimate_probability): ... here; update comments; move updating
3742 of unknown probabilities from ...
3743 (estimate_bb_frequencies): ... here.
3744 (combine_predictions_for_bb): New.
3745 (tree_predict_by_opcode): New.
3746 (tree_estimate_probability): New.
3747 * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3748 PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3749 * predict.h: Add include guard.
3750 (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3751 * pretty-print.c (pp_write_text_to_stream): Make extern.
3752 * pretty-print.h (pp_write_text_to_stream): Declare.
3753 * print-rtl.c (print_rtx): Don't print the integrated flag.
3754 Print the return_val flag.
3755 * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3756 of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3757 Remove support for EXPR_WITH_FILE_LOCATION nodes.
3758 (print_node): Print TREE_INVARIANT and TREE_VISITED.
3759 * profile.c: Include cfghooks.h, tree-flow.h.
3760 (profile_hooks): New.
3761 (profile_dump_file): New.
3762 (instrument_edges): Use hooks instead of RTL-specific code.
3763 (instrument_values): Ditto.
3764 (get_exec_counts): Ditto.
3765 (compute_branch_probabilities): Ditto.
3766 (compute_value_histograms): Ditto.
3767 (branch_prob): Ditto.
3768 (find_spanning_tree): Ditto.
3769 (end_branch_prob): Ditto.
3770 (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3771 (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3772 (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3773 (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3774 (tree_register_profile_hooks): New.
3775 (rtl_register_profile_hooks): New.
3776 * ra-rewrite.c (rewrite_program): Clear variable info.
3777 * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3778 * regs.h: Add include guards.
3779 * reload.c (decompose): Clear val using memset.
3780 * rtl.def (CONSTANT_P_RTX): Remove.
3781 * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3782 (copy_loop_headers): Remove.
3783 (struct rtx_def): Replace the integrated flag with the
3784 return_val flag.
3785 (maybe_set_first_label_num): Declare.
3786 (init_branch_prob): Move declaration to value-prof.h.
3787 (end_branch_prob): Ditto.
3788 (branch_prob): Ditto.
3789 (never_reached_warning): Don't declare it.
3790 * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3791 (hoist_insn_to_edge): Update to match field insns in
3792 struct edge_def.
3793 * sbitmap.c (sbitmap_realloc): New.
3794 * sbitmap.h (sbitmap_realloc): Declare.
3795 * sibcall.c: Remove file.
3796 * simplify-rtx.c (simplify_rtx): Do not handle
3797 CONSTANT_P_RTX.
3798 * stmt.c (parse_output_constraint): Don't warn for read-write
3799 memory operand.
3800 (tail_recursion_args): Use types_compatible_p langhook.
3801 (force_label_rtx): Don't look at inline_function_decl.
3802 (label_rtx): Set LABEL_PRESERVE_P appropriately.
3803 (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3804 (declare_nonlocal_label): Remove.
3805 (expand_goto): Don't handle nonlocal gotos.
3806 (expand_nl_handler_label): Remove.
3807 (expand_nl_goto_receivers): Remove.
3808 (expand_end_bindings): Don't expand_nl_goto_receivers. Use
3809 update_nonlocal_goto_save_area.
3810 (expand_expr_stmt_value): Check TREE_NO_WARNING.
3811 (warn_if_unused_value): Likewise.
3812 (expand_start_loop, expand_loop_continue_here,
3813 expand_end_loop): Don't create loop notes.
3814 (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3815 mark_seen_cases, check_for_full_enumeration_handling): Remove.
3816 (expand_end_case_type): Don't do warn_switch handling.
3817 (pushcase, pushcase_range) Update add_case_node calls.
3818 (add_case_node): Add dont_expand_label argument.
3819 (same_case_target_p): Don't search rtl.
3820 (expand_start_bindings_and_block, expand_end_bindings):
3821 Don't emit block notes when dont_emit_block_notes.
3822 (using_eh_for_cleanups_p): Export.
3823 (expand_return): Allow any typed rhs.
3824 (expand_stack_alloc): New.
3825 (expand_stack_save, expand_stack_restore): New.
3826 (containing_blocks_have_cleanups_or_stack_level): New
3827 function.
3828 (asm_op_is_mem_input): New fn.
3829 (expand_asm_expr): New fn.
3830 (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3831 nodes.
3832 * stor-layout.c (layout_type): Just return if type is
3833 error_mark_node.
3834 (update_alignment_for_field): Export.
3835 (variable_size): We don't care about global_bindings_p if
3836 the frontend doesn't want a list of the expressions.
3837 * system.h: Poison INTEGRATE_THRESHOLD.
3838 * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3839 TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3840 TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3841 TV_TREE_SSA_OTHER, TV_TREE_OPS,
3842 TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3843 TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3844 TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3845 TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3846 TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3847 TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3848 TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3849 TV_CONTROL_DEPENDENCES): Define.
3850 * toplev.c: Include tree-alias-common.h
3851 (current_file_decl, flag_mudflap, flag_mudflap_threads,
3852 flag_mudflap_ignore_reads, flag_tree_based_profiling,
3853 flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3854 flag_tree_dce, flag_tree_ch, flag_tree_sra,
3855 flag_tree_combine_temps, flag_tree_ter,
3856 flag_tree_live_range_split, flag_tree_dom,
3857 flag_tree_copyrename, flag_tree_dse): Declare.
3858 (f_options): Add tree-based-profiling, tree-gvn,
3859 tree-pre, tree-ccp, tree-dce,
3860 tree-dominator-opts, tree-copyrename, tree-dse,
3861 tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3862 (wrapup_global_declarations): Don't output nested inlined functions.
3863 (general_init): Call init_tree_optimization_passes.
3864 (process_options): Sorry for -ftree-based-profiling plus
3865 -ftest-coverage or -fprofile-values.
3866 * toplev.h (init_tree_optimization_passes,
3867 flag_tree_based_profiling): Declare.
3868 * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3869 * tree-alias-ander.c: New file.
3870 * tree-alias-ander.h: New file.
3871 * tree-alias-common.c: New file.
3872 * tree-alias-common.h: New file.
3873 * tree-alias-type.c: New file.
3874 * tree-alias-type.h: New file.
3875 * tree-browser.c: New file.
3876 * tree-browser.def: New file.
3877 * tree-cfg.c: New file.
3878 * tree-complex.c: New file.
3879 * tree-dfa.c: New file.
3880 * tree-dump.c (dump_enable_all): New.
3881 (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3882 (dump_node): Remove const from field suffix and swtch.
3883 (dump_files): Add null entry, .generic, .nested, .vcg,
3884 .xml and a match-all entry.
3885 (extra_dump_files, extra_dump_files_in_use,
3886 extra_dump_files_alloced): Declare
3887 (dump_option_value_info): Add raw, details, stats,
3888 blocks, vops, lineno, uid and all.
3889 (dump_register): New.
3890 (get_dump_file_info): New.
3891 (dump_begin): Call it.
3892 Do nothing for TDI_none.
3893 (dump_begin): Include phase number in dump filename.
3894 (dump_enable_all): New.
3895 (dump_switch_p_1): Split out from dump_switch_p.
3896 (dump_switch_p): Handle extra_dump_files.
3897 Start our scan at TDI_none + 1.
3898 If -fdump-tree-all was given, call dump_enable_all.
3899 * tree-dump.h: Include splay-tree.h.
3900 (dump_function, dump_function_to_file, dump_register):
3901 Declare.
3902 * tree-eh.c: New file.
3903 * tree-flow-inline.h: New file.
3904 * tree-flow.h: New file.
3905 * tree-inline.c: Re-write to handle inlining on GIMPLE.
3906 * tree-inline.h (walk_tree,
3907 walk_tree_without_duplicates): Move to tree.h.
3908 (estimate_num_insns): Declare.
3909 * tree-into-ssa.c: New file.
3910 * tree-iterator.c: New file.
3911 * tree-iterator.h: New file.
3912 * tree-mudflap.c: New file.
3913 * tree-mudflap.h: New file.
3914 * tree-nested.c: New file.
3915 * tree-nomudflap.c: New file.
3916 * tree-nrv.c: New file.
3917 * tree-optimize.c (dump_flags, vars_to_rename,
3918 in_gimple_form, all_passes, pass_gimple,
3919 pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3920 (execute_gimple, execute_rebuild_bind,
3921 gate_all_optimizations, execute_del_cfg,
3922 register_one_dump_file, register_dump_files, dup_pass_1,
3923 init_tree_optimization_passes, execute_todo,
3924 execute_one_pass, execute_pass_list): New.
3925 (clear_decl_rtl): Remove.
3926 (tree_rest_of_compilation): Update to use tree
3927 optimizers.
3928 * tree-outof-ssa.c: New file.
3929 * tree-pass.h: New file.
3930 * tree-phinodes.c: New file.
3931 * tree-pretty-print.c: New file.
3932 * tree-profile.c: New file.
3933 * tree-simple.c: New file.
3934 * tree-simple.h: New file.
3935 * tree-sra.c: New file.
3936 * tree-ssa-alias.c: New file.
3937 * tree-ssa-ccp.c: New file.
3938 * tree-ssa-copy.c: New file.
3939 * tree-ssa-copyrename.c: New file.
3940 * tree-ssa-dce.c: New file.
3941 * tree-ssa-dom.c: New file.
3942 * tree-ssa-dse.c: New file.
3943 * tree-ssa-forwprop.c: New file.
3944 * tree-ssa-live.c: New file.
3945 * tree-ssa-live.h: New file.
3946 * tree-ssa-loop.c: New file.
3947 * tree-ssa-operands.c: New file.
3948 * tree-ssa-operands.h: New file.
3949 * tree-ssa-phiopt.c: New file.
3950 * tree-ssa-pre.c: New file.
3951 * tree-ssa.c: New file.
3952 * tree-ssanames.c: New file.
3953 * tree-tailcall.c: New file.
3954 * tree.c: Include tree-iterator.h, basic-block.h and
3955 tree-flow.h.
3956 (tree_node_kind): Add phi_nodes and ssa names.
3957 (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3958 EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3959 (make_node_stat): Handle PHI_NODE and SSA_NAME.
3960 <'c'> Set TREE_INVARIANT.
3961 (copy_node_stat): Abort if trying to copy a
3962 STATEMENT_LIST.
3963 Clear TREE_VISITED.
3964 Clear annotation field.
3965 (build_constructor): Copy TREE_INVARIANT from vals.
3966 Don't clear TREE_CONSTANT.
3967 (expr_first, expr_last, expr_length): Remove.
3968 (staticp): Pass unknown component references to the language.
3969 (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3970 (skip_simple_arithmetic): Likewise.
3971 (stabilize_reference_1): Likewise.
3972 (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3973 EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3974 STATEMENT_LIST.
3975 (lhd_unsave_expr_now): Remove.
3976 (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3977 (recompute_tree_invarant_for_addr_expr): New.
3978 (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3979 Call recompute_tree_invarant_for_addr_expr.
3980 Set TREE_INVARIANT accordingly.
3981 (build2_stat): Don't handle CALL_EXPR.
3982 (build3_stat): Don't call build2_stat for CALL_EXPRs.
3983 (build_expr_wfl): Remove.
3984 (annotate_with_file_line, annotate_with_locus): New.
3985 (simple_cst_equal): Call simple_cst_list_equal to compare
3986 CONSTRUCTOR_ELTS pointers.
3987 (iterative_hash_expr): Don't hash types associated
3988 with conversions. Instead hash on the signedness of the
3989 toplevel object and the operand of the conversion.
3990 (dump_tree_statistics): Call ssanames_print_statistics
3991 and phinodes_print_statistics.
3992 (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3993 add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3994 needs_to_live_in_memory): New.
3995 (initializer_zerop): Handle VECTOR_CST. Don't check
3996 AGGREGATE_TYPE_P for CONSTRUCTOR.
3997 * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3998 SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3999 PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4000 (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4001 (CALL_EXPR): Add another operand.
4002 (EXPR_WITH_FILE_LOCATION): Remove.
4003 (SWITCH_EXPR): Add another operand.
4004 * tree.h: Update various comments.
4005 (union tree_ann_d): Forward declare.
4006 (struct tree_common): Add fields nowarning_flag,
4007 invariant_flag and visited.
4008 (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4009 PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4010 EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4011 STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4012 TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4013 IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4014 EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4015 EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4016 CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4017 BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4018 ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4019 ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4020 COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4021 CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4022 EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4023 SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4024 SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4025 PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4026 PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4027 EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4028 EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4029 EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4030 EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4031 EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4032 EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4033 EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4034 EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4035 EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4036 EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4037 TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4038 DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4039 DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4040 STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4041 TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4042 TDF_UID,): Define.
4043 (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4044 EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4045 EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4046 EXPR_WFL_SET_LINECOL): Remove.
4047 (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4048 make_phi_node, init_phinodes, fini_phinodes,
4049 release_phi_node, phinodes_print_statistics,
4050 init_ssanames, fini_ssanames, make_ssa_name,
4051 release_ssa_name, ssanames_print_statistics,
4052 annotate_with_file_line, build_empty_stmt,
4053 annotate_with_locus, expr_only, categorize_ctor_elements,
4054 count_type_elements, add_var_to_bind_expr, is_essa_node,
4055 expand_stack_alloc, expand_stack_save,
4056 expand_stack_restore, add_case_node, operand_equal_p,
4057 nondestructive_fold_unary_to_constant,
4058 nondestructive_fold_binary_to_constant,
4059 fold_read_from_constant_string, int_const_binop,
4060 strip_float_extensions, simplify_builtin, c_strlen,
4061 recompute_tree_invarant_for_addr_expr,
4062 needs_to_live_in_memory, make_vector,
4063 setjmp_vars_warning, update_alignment_for_field,
4064 expand_asm_expr, asm_op_is_mem_input,
4065 containing_blocks_have_cleanups_or_stack_level,
4066 create_artificial_label, gimplify_function_tree,
4067 get_name, unshare_expr, walk_tree,
4068 walk_tree_without_duplicates, in_gimple_form): Declare.
4069 (struct tree_exp): Add fields locus and block.
4070 (struct tree_ssa_name, struct edge_def, struct
4071 tree_phi_node, struct tree_eref_common, struct
4072 tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4073 union alias_var_def, struct tree_statement_list_node,
4074 struct tree_statement_list, enum operand_equal_flag): Declare.
4075 (enum tree_node_structure_enum): Add TS_SSA_NAME,
4076 TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4077 TS_STATEMENT_LIST.
4078 (union tree_node): Add fields ssa_name, phi, eref, ephi,
4079 euse and stmt_list.
4080 (function_cannot_inline_p, uninitialized_vars_warning,
4081 save_for_inline, output_inline_function, all_cases_count,
4082 check_for_full_enumeration_handling,
4083 declare_nonlocal_label): Remove.
4084 (enum tree_dump_index): Add TDI_none, TDI_tu,
4085 TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4086 * unroll.c (unroll_loop): Don't clear map->inline_target.
4087 * unwind-sjlj.c (uw_install_context): Make a proper static inline
4088 function.
4089 * value-prof.c (value_prof_hooks): New.
4090 (find_values_to_profile): Rename to rtl_find_values_to_profile.
4091 Move rtl-specific bits in from branch_prob.
4092 (value_profile_transformations): Rename to
4093 rtl_value_profile_transformations.
4094 (struct value_prof_hooks): New.
4095 (rtl_value_prof_hooks): New.
4096 (rtl_register_value_prof_hooks): New.
4097 (tree_find_values_to_profile): New stub.
4098 (tree_value_profile_transformations): New stub.
4099 (tree_value_prof_hooks): New stub.
4100 (tree_register_value_prof_hooks): New stub.
4101 (find_values_to_profile): New.
4102 (value_profile_transformations): New.
4103 * value-prof.h: Add multiple inclusion guard.
4104 (struct histogram_value): Change rtx fields to void *.
4105 (rtl_register_value_prof_hooks): New declaration.
4106 (tree_register_value_prof_hooks): New declaration.
4107 (find_values_to_profile): New declaration.
4108 (free_profiled_values): New declaration.
4109 (value_profile_transformations): New declaration.
4110 (struct profile_hooks): New declaration.
4111 (init_branch_prob): Declaration moved from rtl.h.
4112 (branch_prob): Declaration moved from rtl.h.
4113 (end_branch_prob): Declaration mooved from rtl.h.
4114 (tree_register_profile_hooks): New declaration.
4115 (rtl_register_profile_hooks): New declaration.
4116 (tree_profile_hooks): New declaration.
4117 (rtl_profile_hooks): New declaration.
4118 * varasm.c: Include tree-mudflap.h.
4119 (TRAMPOLINE_ALIGNMENT): Remove.
4120 (make_decl_rtl): Call mudflap_enqueue_decl.
4121 (assemble_static_space):
4122 (assemble_trampoline_template): Set and return
4123 TRAMPOLINE_ALIGNMENT.
4124 * varray.c (element): Add GENERIC_PTR_NOGC entry.
4125 Add entry for 'tree *'.
4126 Add entry for struct edge_def *.
4127 (varray_copy): New.
4128 * varray.h (enum varray_data_enum): Add
4129 VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4130 VARRAY_DATA_TREE_PTR.
4131 (union varray_data_tag): Corresponding changes.
4132 (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4133 VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4134 VARRAY_EDGE, VARRAY_TREE_PTR,
4135 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4136 VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4137 VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4138
4139 * config/*/*: Various updates for changed macros, tree
4140 codes, etc. Check ChangeLog.tree-ssa.
4141
4142 * doc/cfg.texi: New file.
4143 * doc/tree-ssa.texi: New file.
4144 * doc/c-tree.texi: Document new codes.
4145 * doc/gccint.texi: Include new files.
4146 * doc/install.texi: Document new features.
4147 * doc/invoke.texi: Document new switches.
4148 * doc/passes.texi: Document new passes.
4149 * doc/rtl.texi: Update changed RTL codes.
4150 * doc/sourcebuild.texi: Update build instructions.
4151 * doc/standards.texi: Document Fortran changes.
4152 * doc/tm.texi: Update.
4153
4154 2004-05-12 Paolo Bonzini <bonzini@gnu.org>
4155
4156 Replace several arrays with a struct of arrays.
4157 * combine.c (struct reg_stat): New.
4158 (init_reg_last_arrays): Renamed to...
4159 (init_reg_last): ...this. Callers adjusted.
4160 (reg_stat): New.
4161 (combine_instructions): Allocate it and use it.
4162 (reg_last_death, reg_last_set, reg_last_set_value,
4163 reg_last_set_label, reg_last_set_table_tick,
4164 reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4165 reg_last_set_mode, reg_last_set_nonzero_bits,
4166 reg_last_set_sign_bit_copies): Replace throughout
4167 with items of reg_stat.
4168
4169 2004-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
4170
4171 PR optimization/15100
4172 * combine.c (distribute_notes): Don't create a dangling
4173 REG_LIBCALL/REG_RETVAL note.
4174
4175 2004-05-11 Aldy Hernandez <aldyh@redhat.com>
4176
4177 * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4178
4179 * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4180 negv2si2.
4181
4182 2004-05-11 Aldy Hernandez <aldyh@redhat.com>
4183
4184 * doc/md.texi (Standard Names): Fix typo in vec_init description.
4185
4186 2004-05-11 Geoffrey Keating <geoffk@apple.com>
4187
4188 * doc/gty.texi (GTY Options): Clarify example.
4189
4190 2004-05-11 Fariborz Jahanian <fjahanian@apple.com>
4191
4192 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4193 Add const qualifier to altivec vector type if one is needed.
4194
4195 2004-05-11 Paul Brook <paul@codesourcery.com>
4196
4197 * flags.h (flag_short_enums): Update comment.
4198 * opts.c (decode_options): Set flag_short_enums to 2.
4199 * toplev.c (flag_short_enums): Update comment.
4200 (process_options): Call default_short_enums target hook.
4201
4202 2004-05-11 Andrew Pinski <pinskia@gcc.gnu.org>
4203
4204 PR target/14063
4205 * config/rs6000/altivec.md (altivec_dssall):
4206 Change to unspec_volatile.
4207 (altivec_dss): Likewise.
4208
4209 2004-05-10 Aldy Hernandez <aldyh@redhat.com>
4210
4211 * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4212 vnor.
4213 ("one_cmplv8hi2"): Same.
4214 ("one_cmplv4si2"): Same.
4215
4216 2004-05-10 Kaz Kojima <kkojima@gcc.gnu.org>
4217
4218 PR target/15130
4219 * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4220 * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4221 into account. Compute the correct number of general registers
4222 for the return value. Generate a special push/pop sequence when
4223 failing to get a temporary register for non SHmedia epilogue.
4224 (sh_expand_epilogue): Add an argument to show whether it's for
4225 sibcall or not. Set the 3rd argument of output_stack_adjust to
4226 -1 if needed.
4227 (sh_need_epilogue): Call sh_expand_epilogue with 0.
4228 * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4229 with 1.
4230 (epilogue): Call sh_expand_epilogue with 0.
4231
4232 2004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
4233
4234 * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4235 goto a cleanup label. After the cleanup, free the allocated memory.
4236
4237 2004-05-10 Ziemowit Laski <zlaski@apple.com>
4238
4239 * config/rs6000/altivec.h (vec_sld): Add overloads for
4240 argument/return types of 'vector bool int', 'vector bool short'
4241 and 'vector bool char'.
4242
4243 2004-05-10 Zack Weinberg <zack@codesourcery.com>
4244
4245 * c-decl.c (store_parm_decls_newstyle): Correct test for a
4246 nested function.
4247
4248 2004-05-10 Richard Sandiford <rsandifo@redhat.com>
4249
4250 * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4251 treating missing ones as "".
4252 * config/mips/mips.md: Remove constraints from match_operands and
4253 match_scratches if they appear in define_expands (except reload*),
4254 define_peephole2s, define_splits or attribute specifications.
4255 * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4256 constraint strings.
4257
4258 2004-05-10 Alan Modra <amodra@bigpond.net.au>
4259
4260 * config/rs6000/rs6000.c (function_arg_boundary): Always align
4261 AltiVec vectors.
4262 (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4263 vectors by refererence. Align the same for TARGET_64BIT to a 16
4264 byte boundary. Remove useless code. Add function comment.
4265 (function_arg): Similarly. Move gpr rs6000_mixed_function_arg
4266 call to where it belongs.
4267 (function_arg_partial_nregs): Return true for all TARGET_32BIT
4268 -mabi=no-altivec AltiVec vectors. Fix debug output.
4269 (rs6000_va_arg): Adjust for AltiVec change.
4270
4271 2004-05-10 Paul Brook <paul@codesourcery.com>
4272
4273 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4274 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4275 (TARGET_DOUBLEWORD_ALIGN): Use it.
4276 (WCHAR_TYPE): Define.
4277 (WCHAR_SIZE_TYPE): Define.
4278 (SIZE_TYPE): Define.
4279
4280 2004-05-10 Alan Modra <amodra@bigpond.net.au>
4281
4282 * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4283 when size is 8 bytes.
4284 (function_arg_advance): Account for stack space used by AltiVec
4285 args when -mabi=altivec. Simplify alignment calculations. For
4286 ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4287 (function_arg): Similarly.
4288 (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4289 not AltiVec ABI.
4290 (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change.
4291 Correct alignment, and align before testing reg count. Remove
4292 TREE_THIS_VOLATILE from reg. Don't emit unused labels.
4293 (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4294 TARGET_FPRS here..
4295 (rs6000_function_value): .. not here before call.
4296
4297 2004-05-09 Aldy Hernandez <aldyh@redhat.com>
4298
4299 * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4300
4301 2004-05-09 Zack Weinberg <zack@codesourcery.com>
4302
4303 PR 15007
4304 * c-decl.c (current_file_decl): Rename to all_translation_units,
4305 adjust comment.
4306 (pop_scope): If popping file_scope, construct a
4307 TRANSLATION_UNIT_DECL and make it the context of all the
4308 symbols in the scope.
4309 (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4310 (pushdecl): Clarify comment. Do not set DECL_CONTEXT of
4311 anything to current_file_decl.
4312 (pushdecl_top_level): Likewise.
4313 (store_parm_decls_newstyle): Adjust check for nested function.
4314 (c_write_global_declarations): Update for renamed variable.
4315
4316 2004-05-09 Aldy Hernandez <aldyh@redhat.com>
4317
4318 * config/rs6000/rs6000-protos.h
4319 (rs6000_conditional_register_usage): Protoize.
4320
4321 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4322
4323 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4324 function.
4325
4326 2004-05-08 Roger Sayle <roger@eyesopen.com>
4327
4328 * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4329 where op is a comparison operator and C1 and C2 are integer constants
4330 into a range check.
4331 (fold): Call fold_div_compare.
4332
4333 2004-05-08 Eric Botcazou <ebotcazou@libertysurf.fr>
4334
4335 * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4336 problems with earlier versions of the GNU compiler.
4337
4338 2004-05-07 Aldy Hernandez <aldyh@redhat.com>
4339
4340 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4341 Declare.
4342
4343 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4344 (rs6000_hard_regno_mode_ok): New.
4345 (rs6000_init_hard_regno_mode_ok): New.
4346 (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4347
4348 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4349 result.
4350
4351 2004-05-07 Ziemowit Laski <zlaski@apple.com>
4352
4353 * config/rs6000/altivec.h (vector, pixel, bool): Do not
4354 define as macros #ifdef __APPLE_ALTIVEC__.
4355
4356 2004-05-07 Fariborz Jahanian <fjahanian@apple.com>
4357
4358 * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4359 Generate appropriate parallels for vector arguments
4360 passed to vararg functions. (function_arg): make the call
4361 to rs6000_mixed_function_arg for vector args as needed.
4362
4363 2004-05-07 Richard Sandiford <rsandifo@redhat.com>
4364
4365 * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4366 EABI_FLOAT_VARARGS_P.
4367
4368 2004-05-07 Richard Sandiford <rsandifo@redhat.com>
4369
4370 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4371 * config/mips/mips.c (override_options): Disable branch likely
4372 instructions if TUNE_MIPS5500.
4373
4374 2004-05-07 Richard Sandiford <rsandifo@redhat.com>
4375
4376 * config/mips/mips.c (override_options): Allow the hi and lo registers
4377 to store any integral mode, not just MODE_INTs.
4378
4379 2004-05-07 Paul Brook <paul@codesourcery.com>
4380
4381 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4382 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4383 (TARGET_DOUBLEWORD_ALIGN): Use it.
4384 (WCHAR_TYPE): Define.
4385 (WCHAR_SIZE_TYPE): Define.
4386 (SIZE_TYPE): Define.
4387
4388 2004-05-07 Uros Bizjak <uros@kss-loka.si>
4389
4390 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4391 testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4392
4393 2004-05-07 Andrew Pinski <pinskia@physics.uc.edu>
4394
4395 * loop-doloop.c (doloop_valid_p): Make sure that body
4396 gets freed.
4397
4398 2004-05-07 Eric Botcazou <ebotcazou@act-europe.fr>
4399
4400 * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4401 declaration.
4402 * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4403 (sparc_skip_caller_unimp): New global variable.
4404 (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4405 Use it instead of SKIP_CALLERS_UNIMP_P.
4406 * config/sparc/sparc.md (call expander): Add sanity check.
4407 (call_address_struct_value_sp32): Re-sync with expander.
4408 (call_symbolic_struct_value_sp32): Likewise.
4409 (return peepholes): Use 'sparc_skip_caller_unimp' instead
4410 of custom predicate.
4411
4412 2004-05-07 Eric Botcazou <ebotcazou@libertysurf.fr>
4413
4414 PR c++/14962
4415 * c-pragma.c (handle_pragma_redefine_extname): Only change
4416 the assembler name of FUNCTION_DECLs and VAR_DECLs.
4417
4418 2004-05-07 Uros Bizjak <uros@kss-loka.si>
4419
4420 * optabs.h (enum optab_index): Add new OTI_log1p.
4421 (log1p_optab): Define corresponding macro.
4422 * optabs.c (init_optabs): Initialize log1p_optab.
4423 * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4424 patterns.
4425 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4426 using log1p_optab.
4427 (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4428 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4429
4430 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4431
4432 * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4433 * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4434 Prototype here.
4435 * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4436 x87's fyl2xp1 instruction.
4437 (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4438 (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4439 (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4440 log1p and log1pl built-ins as inline x87 intrinsics.
4441
4442 2004-05-07 Loren James Rittle <ljrittle@acm.org>
4443
4444 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4445 * config/arm/freebsd.h: Likewise.
4446 * config/ia64/freebsd.h: Likewise.
4447 * config/sparc/freebsd.h: Likewise.
4448
4449 2004-05-07 Hans-Peter Nilsson <hp@axis.com>
4450
4451 PR optimization/15296
4452 * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4453 getting last consecutive label at a branch.
4454 (relax_delay_slots): Similar, near top of loop.
4455
4456 2004-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4457
4458 PR target/15202
4459 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4460 register to general register.
4461
4462 2004-05-07 Alan Modra <amodra@bigpond.net.au>
4463
4464 * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4465 TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4466 * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4467 (STACK_BOUNDARY): Delete.
4468
4469 2004-05-06 Stuart Hastings <stuart@apple.com>
4470
4471 * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4472 mistakenly clobbered by 1.423.
4473
4474 2004-05-06 Richard Sandiford <rsandifo@redhat.com>
4475
4476 * doc/invoke.texi: Document -mvr4130-align.
4477 * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4478 (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4479 (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4480 (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4481 * config/mips/mips.md: Include sched-int.h.
4482 (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4483 (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4484 (override_options): Enable -mvr4130-align at -O3 and above.
4485 (mips_sim_insn): New variable.
4486 (mips_sim): New structure.
4487 (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4488 (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4489 (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4490 (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4491 (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4492 (mips_reorg): Call vr4130_align_insns.
4493 (vr4130_last_insn): New variable.
4494 (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4495 (vr4130_swap_insns_p, vr4130_reorder): New functions.
4496 (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4497 (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4498 (mips_use_dfa_pipeline_interface): Return true for the same.
4499 * config/mips/4130.md: New file.
4500 * config/mips/mips.md: Include it. Add a peephole2 to convert
4501 "mult;mflo" into "mtlo;macc".
4502 (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4503 target of maccs.
4504 (*msac_using_macc): New pattern.
4505
4506 2004-05-06 Richard Sandiford <rsandifo@redhat.com>
4507
4508 * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4509 (ir_vr55_hilo): Split into...
4510 (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4511 (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4512 (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles.
4513 Add various multiplication bypasses.
4514 * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4515 multiplication.
4516
4517 2004-05-06 Uros Bizjak <uros@kss-loka.si>
4518
4519 * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4520 attribute to "XF".
4521
4522 2004-05-05 Uros Bizjak <uros@kss-loka.si>
4523
4524 * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4525 (fmod_optab, drem_optab): Define corresponding macros.
4526 * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4527 * genopinit.c (optabs): Implement fmod_optab and drem_optab
4528 using fmod?f3 and drem?f3 patterns.
4529 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4530 using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4531 (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4532 BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4533 flag_unsafe_math_optimizations is set.
4534
4535 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4536 UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4537
4538 * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4539 * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4540 Prototype here.
4541 * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4542 UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4543 fprem and fprem1 instructions.
4544 (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4545 Rename insn definition to x86_fnstsw_1.
4546 (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4547 x87 instructions.
4548 (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4549 and fmodl built-ins as inline x87 intrinsics.
4550 (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4551 and dreml built-ins as inline x87 intrinsics.
4552
4553 2004-05-05 Roger Sayle <roger@eyesopen.com>
4554
4555 * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4556
4557 2004-05-05 Ian Lance Taylor <ian@wasabisystems.com>
4558
4559 PR driver/9822
4560 * doc/invoke.texi (Spec Files): Remove documentation of %c.
4561
4562 2004-05-05 Chris Demetriou <cgd@broadcom.com>
4563
4564 * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4565 representation.
4566
4567 2004-05-06 Paul Brook <paul@codesourcery.com>
4568
4569 * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4570 (arm_coproc_mem_operand): ... To this.
4571 * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4572 (arm_legitimate_index_p): Ditto.
4573 (vfp_mem_operand): Rename ...
4574 (arm_coproc_mem_operand): ... To this. Handle writeback modes.
4575 (vfp_secondary_reload_class): Use it.
4576 (output_move_double): Use doubleword load/store instructions.
4577 (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4578 * config/arm/arm.h (TARGET_LDRD): Define.
4579 (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4580 * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4581 New splitter for invalid doubleword loads.
4582 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4583 * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4584 * doc/md.texi: Document Uy constraint.
4585
4586 2004-05-05 Jan Hubicka <jh@suse.cz>
4587
4588 PR opt/14980
4589 * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4590 inline clones.
4591
4592 2004-05-05 H.J. Lu <hongjiu.lu@intel.com>
4593
4594 PR target/15290
4595 * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4596 instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4597
4598 2004-05-05 Mike Stump <mrs@apple.com>
4599
4600 * config/darwin-c.c (add_framework): Copy the directory name as it
4601 can be freed later. Also, ensure we always allocate enough room
4602 for the cached framework information.
4603 (find_subframework_header): Keep track of the directory where the
4604 subframework header was found.
4605 (framework_construct_pathname): Speed up by not trying to re-add a
4606 framework.
4607 * cppfiles.c (search_path_exhausted): Arrange for the missing
4608 header callback to be able to set the directory where the header
4609 was found.
4610 (cpp_get_dir): Add.
4611 * cpplib.h (missing_header_cb): Add a parameter.
4612 (cpp_get_dir): Add.
4613
4614 2004-05-03 Mike Stump <mrs@apple.com>
4615
4616 * doc/invoke.texi (Directory Options): Document -iquote.
4617 * doc/cpp.texi: Likewise.
4618 * doc/cppopts.texi: Likewise.
4619 * c-opts.c (c_common_missing_argument): Add -iquote processing.
4620 (c_common_handle_option): Likewise.
4621 * c.opt (iquote): Add.
4622 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4623 * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4624
4625 * c-opts.c (case OPT_I): Deprecate -I- support.
4626 * doc/invoke.texi: Likewise.
4627 * doc/cpp.texi: Likewise.
4628 * doc/cppopts.texi: Likewise.
4629
4630 2004-05-05 Steven Bosscher <stevenb@suse.de>
4631
4632 * basic-block.h (free_basic_block_vars): Update prototype.
4633 * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4634 argument.
4635 (life_analysis): Update call.
4636 * ifcvt.c (if_convert): Likewise.
4637 * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4638 * passes.c (rest_of_handle_final): Likewise.
4639 (rest_of_compilation): Likewise.
4640 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4641
4642 * emit-rtl.c (next_real_insn): Use INSN_P.
4643 (prev_real_insn): Likewise.
4644
4645 2004-05-05 Eric Christopher <echristo@redhat.com>
4646
4647 * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4648 representation.
4649
4650 2004-05-05 Paolo Bonzini <bonzini@gnu.org>
4651
4652 * config/rs6000/rs6000.c (build_opaque_vector_type):
4653 New function.
4654 (rs6000_init_builtins): Use it.
4655
4656 2004-05-04 Bernard Giroud <bgiroud2@free.fr>
4657
4658 * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4659 (func_table): Change type from char ** to vms_func_ref.
4660 (write_rtnbeg): Update to reflect func_table change. Use
4661 fde->funcdef_number instead of rtnnum in output.
4662 (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4663
4664 2004-05-04 Paolo Bonzini <bonzini@gnu.org>
4665 Richard Henderson <rth@redhat.com>
4666
4667 PR target/14899
4668
4669 * c-common.c (vector_types_convertible_p): New function.
4670 * c-typeck.c (comptypes): Recurse on vector types.
4671 (convert_for_assignment): Use vector_types_convertible_p.
4672 (digest_init): Use vector_types_convertible_p to check
4673 validness of constant vector initializers; otherwise treat
4674 them as scalars.
4675 * tree.c (make_or_reuse_type): New.
4676 (build_common_tree_nodes): Use it.
4677 * cp/call.c (standard_conversion): Likewise.
4678 * cp/typeck.c (comptypes): Recurse on vector types.
4679 (convert_for_assignment): Use vector_types_convertible_p.
4680
4681 2004-05-04 Chris Demetriou <cgd@broadcom.com>
4682
4683 * config/mips/mips.c (override_options): Default to no
4684 generation of branch-likely operations when tuning for
4685 CPUs where they tend to have a negative performance impact
4686 (e.g., SB-1).
4687
4688 2004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4689
4690 * expr.c (store_constructor_field): Don't call store_constructor
4691 if bitsize is not a multiple of a byte.
4692
4693 2004-05-04 Richard Sandiford <rsandifo@redhat.com>
4694
4695 * reload1.c (inherit_piecemeal_p): New function.
4696 (emit_reload_insns): When reloading a group of hard registers, use
4697 inherit_piecemeal_p to decide whether the values of individual hard
4698 registers can be inherited.
4699
4700 2004-05-04 H.J. Lu <hongjiu.lu@intel.com>
4701
4702 * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4703 * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4704 * config/t-linux (LIB2ADDEHDEP): Likewise.
4705
4706 2004-05-04 Paul Brook <paul@codesourcery.com>
4707
4708 * config/arm/crti.asm: Push an even number of registers.
4709 * config/arm/crtn.asm: And restore them. Load via sp.
4710
4711 2004-05-04 Paolo Bonzini <bonzini@gnu.org>
4712
4713 * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4714 Collect overhead information.
4715 (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL
4716 parameter and pass it through.
4717 (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add
4718 MEM_STAT_DECL parameter and pass it through.
4719 (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add
4720 MEM_STAT_DECL parameter and pass it through.
4721
4722 2004-05-03 Aldy Hernandez <aldyh@redhat.com>
4723
4724 * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4725
4726 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4727
4728 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4729 rs6000_hard_regno_nregs.
4730
4731 2004-05-03 Eric Christopher <echristo@redhat.com>
4732
4733 * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4734 prologue insn instead of setting up call.
4735 (s390_emit_epilogue): Ditto.
4736 * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4737 (define_constants): Add numbers for above patterns.
4738
4739 2004-05-03 Eric Christopher <echristo@redhat.com>
4740
4741 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4742 * config/s390/s390.c (s390_conditional_register_usage): ...here.
4743 * config/s390/s390-protos.h: Prototype.
4744
4745 2004-05-03 Joe Buck <jbuck@welsh-buck.org>
4746
4747 * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4748 assignment.
4749
4750 2004-05-03 Eric Christopher <echristo@redhat.com>
4751
4752 * config/mips/mips.md: Fix branch length attribute definition.
4753
4754 2004-05-03 Aldy Hernandez <aldyh@redhat.com>
4755
4756 * config.gcc: Remove --enable-altivec support.
4757
4758 * config/rs6000/altivec-defs.h: Remove.
4759
4760 2004-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4761
4762 * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4763 * fixinc/fixincl.x: Regenerate.
4764
4765 2004-05-03 Uros Bizjak <uros@kss-loka.si>
4766
4767 * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4768 definition.
4769 (log?f2, log10?f2, log2?f2): Reimplement expanders with
4770 float_truncate insn.
4771 (*fxtractsf3, *fxtractdf3): Remove insn definition.
4772 (logb?f2): Reimplement expanders with float_truncate insn.
4773
4774 2004-05-03 Graham Stott <graham.stott@btinternet.com>
4775
4776 PR 14718
4777 * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4778 force_type_die for CONST_DECL.
4779
4780 2004-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
4781 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4782
4783 * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4784 tm-dwarf2.h to tm_file.
4785 (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4786 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4787 (ASM_DEBUG_SPEC): Delete.
4788
4789 2004-05-03 Uros Bizjak <uros@kss-loka.si>
4790
4791 * optabs.h (enum optab_index): Add new OTI_expm1.
4792 (expm1_optab): Define corresponding macro.
4793 * optabs.c (init_optabs): Initialize expm1_optab.
4794 * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4795 patterns.
4796 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4797 using expm1_optab.
4798 (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4799 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4800
4801 * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4802 to implement expm1, expm1f and expm1l built-ins as inline x87
4803 intrinsics.
4804
4805 2004-05-02 Alexandre Oliva <aoliva@redhat.com>
4806
4807 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
4808 * config/frv/frv.md (*return_true, *return_false): New patterns.
4809
4810 2004-05-02 Kazu Hirata <kazu@cs.umass.edu>
4811
4812 * rtl.h (PHI_NODE_P): Remove.
4813
4814 2004-05-02 Eric Botcazou <ebotcazou@act-europe.fr>
4815
4816 PR middle-end/14988
4817 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4818 when passed -2 as 'align'.
4819 (put_var_into_stack): Use 'bool' as the type for the three local
4820 predicates. Adjust calls to put_reg_into_stack.
4821 When passed a CONCAT, instruct put_reg_into_stack to use
4822 a consecutive stack slot for the second part.
4823 (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4824 'consecutive_p' parameter. Turn the three predicates into 'bool'
4825 parameters. Retrieve the register mode from 'reg'.
4826 When consecutive_p is true, instruct assign_stack_local_1 to use
4827 BITS_PER_UNIT alignment.
4828 (put_addressof_into_stack): Use 'bool' as the type for the two
4829 local predicates. Adjust call to put_reg_into_stack.
4830
4831 2004-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4832
4833 * fold-const.c (fold_convert_const, fold): Add missing
4834 FIX_ROUND_EXPR case.
4835
4836 2004-05-02 Alexandre Oliva <aoliva@redhat.com>
4837
4838 * configure.ac (FLEX, BISON): Only use tools from the build tree
4839 if build equals host.
4840 * configure: Rebuilt.
4841
4842 * config/frv/frv-protos.h (frv_expand_epilogue,
4843 frv_expand_fdpic_call): Add bool argument.
4844 * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4845 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4846 (frv_expand_epilogue): Use new argument to decide whether to emit
4847 return instruction or copy the return address to LR.
4848 (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4849 sibcalls.
4850 (sibcall_operand): New.
4851 * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4852 PLUS nor LABEL_REF. Add sibcall_operand.
4853 * config/frv/frv.md (call, call_value): Pass false to
4854 frv_expand_fdpic_call.
4855 (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4856 (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4857 sibcall_value_internal, sibcall_value_fdpicdi): New.
4858 (return_unsigned_true, return_unsigned_false): New.
4859 (epilogue): Adjust call to frv_expand_epilogue.
4860 (sibcall_epilogue): New.
4861
4862 * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4863 (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4864 before redefining them.
4865
4866 2004-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4867
4868 * builtins.c (fold_fixed_mathfn): New function.
4869 (fold_builtin_lround, fold_builtin): Use it.
4870
4871 2004-05-01 Jakub Jelinek <jakub@redhat.com>
4872
4873 * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4874 also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4875
4876 2004-05-01 Kazu Hirata <kazu@cs.umass.edu>
4877
4878 * config/cris/cris.h: Revert my "fix comment typos" patch.
4879
4880 2004-05-01 Richard Sandiford <rsandifo@redhat.com>
4881
4882 * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
4883
4884 2004-05-01 Falk Hueffner <falk@debian.org>
4885
4886 * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4887 builtin_insll): Disallow 0 as first input operand.
4888
4889 2004-05-01 Falk Hueffner <falk@debian.org>
4890
4891 * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4892
4893 2004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
4894
4895 PR middle-end/15054
4896 * expr.c (expand_expr_real): Do not call preserve_temp_slots
4897 on a TARGET_EXPR temp.
4898 * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4899 TARGET_EXPR temp slots.
4900
4901 2004-05-01 Paolo Bonzini <bonzini@gnu.org>
4902
4903 * simplify-rtx.c (simplify_ternary_operation): When
4904 converting an IF_THEN_ELSE to a relational op, return
4905 correct mode.
4906
4907 2004-04-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4908
4909 * builtins.c (fold_builtin_round): Fix comment typo.
4910 (fold_builtin_lround): New function.
4911 (fold_builtin): Use it.
4912
4913 2004-04-20 Andrew Pinski <pinskia@physics.uc.edu>
4914
4915 PR target/11608
4916 * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4917 more like the one in config/dbxelf.h.
4918
4919 2004-04-30 Zack Weinberg <zack@codesourcery.com>
4920
4921 * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4922 and adjust definition accordingly.
4923 (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4924 (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4925 * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4926 VECTOR_TYPE.
4927
4928 2004-04-30 Jason Merrill <jason@redhat.com>
4929
4930 PR c++/14587
4931 * config/i386/winnt.c (associated_type): Look for attributes on
4932 the TYPE_MAIN_VARIANT of *this.
4933 * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4934 apply the attributes to the variants.
4935
4936 2004-04-30 Paul Brook <paul@codesourcery.com>
4937
4938 * config.gcc: Simplify arm --with-{cpu,tune} test.
4939 * config/arm/arm-cores.def: Document whitespace restrictions.
4940
4941 2004-04-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4942
4943 PR other/1963
4944 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4945
4946 2004-04-30 Brian Ford <ford@vss.fsi.com>
4947 DJ Delorie <dj@redhat.com>
4948
4949 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4950 (DWARF2_DEBUGGING_INFO): Define to enable.
4951 (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4952 DWARF2.
4953 * configure.ac (Target-specific assembler checks)
4954 <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4955 relocs.
4956 * configure: Regenerate.
4957 * config.in: Likewise.
4958
4959 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4960 (ASM_OUPUT_DWARF_OFFSET): Define.
4961
4962 2004-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
4963
4964 * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4965 (s390_emit_call): New function prototype added.
4966 (s390_tls_get_offset): Function removed.
4967 * config/s390/s390.c (s390_function_ok_for_sibcall,
4968 s390_call_saved_register_used_p): New functions.
4969 (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4970 (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4971 (s390_emit_tls_call_insn): New function.
4972 (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4973 emit_call_insn.
4974 (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4975 (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4976 added.
4977 * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4978 register number used to hold the target address for sibcalls.
4979 * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4980 New expanders.
4981 ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4982 "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4983 ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4984 Expanders removed.
4985 ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4986 ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4987 "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4988 ("epilogue"): Changed the call to s390_emit_epilogue to use the
4989 new parameter.
4990
4991 2004-04-30 Kazu Hirata <kazu@cs.umass.edu>
4992
4993 * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4994 cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4995 reg-stack.c, varasm.c, config/alpha/ev4.md,
4996 config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4997 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4998 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4999 config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5000 config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5001 config/ia64/itanium2.md, config/ip2k/ip2k.c,
5002 config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5003 config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5004 comment typos.
5005
5006 2004-04-30 Paul Brook <paul@codesourcery.com>
5007
5008 * config.gcc: Default ep9312 to hard-float.
5009 * config/arm/arm-cores.def: Add ARCH field.
5010 * config/arm/arm.c (FL_FOR_ARCH*): Define.
5011 (arm_arch_cirrus): New variable.
5012 (all_cores): Set and use arch.
5013 (all_architectures): Ditto.
5014 (arm_arch_name): New variable.
5015 (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5016 Set and use arm_arch_cirrus.
5017 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5018 (enum processor_type): Update ARM_CORE define.
5019 (enum target_cpus): Add. Replaces TARGET_CPU_* defines.
5020 (CPP_SPEC): Remove %(cpp_cpu_arch).
5021 (CPP_ARCH_DEFAULT_SPEC): Remove.
5022 (CPP_CPU_ARCH_SPEC): Remove.
5023 (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5024 (FPUTYPE_DEFAULT): Don't define here.
5025
5026 2004-04-30 J"orn Rennecke <joern.rennecke@superh.com>
5027
5028 * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5029 updates too.
5030
5031 2004-04-30 Paul Brook <paul@codesourcery.com>
5032
5033 * arm.c (arm_needs_doubleword_align): Use mode alignment.
5034
5035 2004-04-30 Paolo Bonzini <bonzini@gnu.org>
5036
5037 * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5038 vec_sububs.
5039 [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5040 duplicates.
5041
5042 2004-04-30 Uros Bizjak <uros@kss-loka.si>
5043
5044 * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5045 atan2?f3 expanders.
5046
5047 2004-04-29 Nick Clifton <nickc@redhat.com>
5048
5049 Bug 14093
5050 * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5051 * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5052 Delete static from definition.
5053 * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5054
5055 2004-04-30 Uros Bizjak <uros@kss-loka.si>
5056
5057 * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5058 UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5059 <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5060 <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5061
5062 2004-04-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
5063
5064 * commom.opt (Wfatal-errors): Add it.
5065 * diagnostic.c (flag_fatal_errors): Define it.
5066 (diagnostic_action_after_output): Check for flag_fatal_errors.
5067 * flags.h (flag_fatal_errors): Declare it.
5068 * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5069 * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5070
5071 2004-04-30 Josef Zlomek <zlomekj@suse.cz>
5072
5073 * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5074 blocks which have kill flag set.
5075
5076 2004-04-29 Ben Elliston <bje@au.ibm.com>
5077
5078 * configure.ac (--with-as): Abort if user-supplied assembler
5079 cannot be executed.
5080 (--with-ld): Likewise for the linker.
5081 * configure: Regenerate.
5082
5083 2004-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5084
5085 * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5086 isn't NULL before using it.
5087
5088 2004-04-29 Richard Sandiford <rsandifo@redhat.com>
5089
5090 PR target/15189
5091 * config/mips/mips.md (load_df_low): Use default length.
5092 (load_df_high, store_df_high): Likewise.
5093
5094 2004-04-29 Kazu Hirata <kazu@cs.umass.edu>
5095
5096 * config/mips/mips.md, config/mips/sb1.md,
5097 config/rs6000/rs6000.c: Fix comment typos.
5098
5099 2004-04-29 Kazu Hirata <kazu@cs.umass.edu>
5100
5101 * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5102 Fix comment typos.
5103
5104 2004-04-29 Douglas B Rupp <rupp@gnat.com>
5105
5106 * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5107 (delete_if_ordinary): Use above macro.
5108 * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5109 Update copyright.
5110 * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5111
5112 2004-04-29 Richard Earnshaw <rearnsha@arm.com>
5113
5114 * c-decl.c (get_parm_info): Use the correct tag keywords when
5115 warning about type declarations in prototypes.
5116
5117 2004-04-29 Paul Brook <paul@codesourcery.com>
5118
5119 * config.gcc: Pull list of cores from arm-cores.def.
5120
5121 2004-04-29 Paolo Bonzini <bonzini@gnu.org>
5122
5123 * combine.c (combine_simplify_rtx): Adjust call to use
5124 simplify_relational_operation. Do not use SELECT_CC_MODE
5125 when a comparison already has a MODE_CC mode.
5126
5127 2004-04-29 Paolo Bonzini <bonzini@gnu.org>
5128
5129 (simplify_set): simplify_relational_operation may now
5130 return another relational expression.
5131 * cse.c (fold_rtx): simplify_relational_operation now
5132 takes of computing the comparison mode.
5133 * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5134 remove dead code.
5135 (do_compare_rtx_and_jump): Likewise.
5136 * integrate.c (subst_constants): simplify_relational_operation
5137 may now return another relational expression.
5138 * simplify-rtx.c (simplify_gen_relational): Move most code to
5139 the new simplify_relational_operation and
5140 simplify_relational_operation_1 functions.
5141 (simplify_relational_operation): Rewritten.
5142 (simplify_relational_operation_1): New function.
5143 (simplify_ternary_operation): simplify_relational_operation
5144 may now return another relational expression.
5145 (simplify_rtx): Remove unnecessary temp variable.
5146
5147 2004-04-29 Uros Bizjak <uros@kss-loka.si>
5148
5149 * reg-stack.c (swap_to_top): New function.
5150 (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5151 swap_to_top().
5152 (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5153 (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5154 UNSPEC_FSCALE_EXP.
5155
5156 * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5157 (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5158 (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5159 x87's fscale insn.
5160 (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5161 (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5162 patterns.
5163
5164 2004-04-28 Serge Belyshev <1319@bot.ru>
5165
5166 PR 14944
5167 * coverage.c (read_counts_file): Fix usage of warning () call.
5168 * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5169
5170 2004-04-28 Ben Elliston <bje@au.ibm.com>
5171
5172 * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5173 options with "-" in the option index.
5174 (SPARC Options): Likewise.
5175 (M32R/D Options): Likewise.
5176
5177 2004-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5178
5179 * convert.c (convert_to_integer): Convert (long)round -> lround,
5180 etc.
5181
5182 2004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
5183
5184 * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5185 Return false if we do not have fp register.
5186 (addrs_ok_for_quad_peep): Rename to ...
5187 (mems_ok_for_quad_peep): this.
5188 Add check for volatile memory.
5189 * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5190 Rename to ...
5191 (mems_ok_for_quad_peep): this.
5192 * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5193 to peephole2's.
5194 (lfq_power2): New instruction.
5195 (stfq_power2): Likewise.
5196
5197 2004-04-28 Jan Hubicka <jh@suse.cz>
5198
5199 PR c/15004
5200 * function.c (do_warn_unused_parameter): Break out form ...
5201 (expand_function_end): ... here; warn only when not using cgraphunit.
5202 * function.h (do_warn_unused_parameter): Declare.
5203 * cgraphunit.c: Include function.h.
5204 (cgraph_finalize_function): Do unused parameter warning.
5205 * Makefile.in (cgraphunit.o): Depend on function.h
5206
5207 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
5208
5209 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5210 calling install-info on $(DESTDIR)$(infodir)/dir already being
5211 present.
5212
5213 2004-04-28 Paul Brook <paul@codesourcery.com>
5214
5215 * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5216
5217 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
5218
5219 * gcse.c (find_moveable_store): Do not accept store insns with
5220 REG_EH_REGION note.
5221
5222 2004-04-28 Paul Brook <paul@codesourcery.com>
5223
5224 * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5225 * function.c (assign_temp): Ditto.
5226 * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5227
5228 2004-04-28 Paul Brook <paul@codesourcery.com>
5229
5230 * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5231
5232 2004-04-28 Josef Zlomek <zlomekj@suse.cz>
5233
5234 * var-tracking.c (variable_different_p): Add a parameter
5235 compare_current_location, compare current location of variable parts
5236 if it is true.
5237 (dataflow_set_different_1): Pass compare_current_location == false.
5238 (dataflow_set_different_2): Pass compare_current_location == false.
5239 (emit_notes_for_differences_1): Pass compare_current_location == true.
5240
5241 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
5242
5243 * config/s390/s390.md ("casesi"): Mark jump table access as
5244 non-trapping and unchanging.
5245
5246 2004-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5247
5248 PR debug/14829
5249 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all
5250 callers.
5251 (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5252 number for indexing hard_regno_nregs array.
5253
5254 2004-04-27 Geoffrey Keating <geoffk@apple.com>
5255
5256 * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5257 * config/darwin-crt2.c: Only have contents on __ppc__.
5258
5259 2004-04-27 Bob Wilson <bob.wilson@acm.org>
5260
5261 * config/xtensa/xtensa.c (call_insn_operand): Check
5262 SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5263 * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5264 * config/xtensa/xtensa.md (call, call_value): Likewise.
5265
5266 2004-04-27 Wu Yongwei <adah@sh163.net>
5267
5268 * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5269 (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5270 (__gthread_mutex_init_function): Replace CreateMutex with
5271 initialization of custom mutex using CreateSemaphore.
5272 (__gthread_mutex_lock): Use InterlockedIncrement.
5273 (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5274 (__gthread_mutex_unlock): Use InterlockedDecrement and
5275 ReleaseSemaphore to unlock
5276 * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5277 __gthread_mutex_lock, __gthread_mutex_trylock,
5278 __gthread_mutex_unlock): Adjust to match inline versions in
5279 gthr-win32.h.
5280
5281 2004-04-27 Paul Brook <paul@codesourcery.com>
5282
5283 * config/arm/arm.c (arm_promote_prototypes): New function.
5284 (TARGET_PROMOTE_PROTOTYPES): Use it.
5285
5286 2004-04-27 Paul Brook <paul@codesourcery.com>
5287
5288 * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5289
5290 2004-04-26 Bernard Giroud <bgiroud@free.fr>
5291
5292 * config/alpha.c (alpha_end_function): For OpenVMS gas,
5293 correctly output .pdesc directive before .end.
5294
5295 2004-04-26 James E Wilson <wilson@specifixinc.com>
5296
5297 Bug 14927
5298 * config/ia64/ia64.md (movxf): New local op0. Handle case where
5299 operands[0] is a SUBREG. Handle case where operands[1] is a GR reg.
5300
5301 2004-04-26 Zack Weinberg <zack@codesourcery.com>
5302
5303 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5304 * config/pa/pa-hpux10.h: Likewise.
5305 * config/pa/pa-hpux11.h: Likewise.
5306
5307 2004-04-26 Geoffrey Keating <geoffk@apple.com>
5308
5309 * doc/invoke.texi (Overall Options): Document default for -o
5310 for PCH files.
5311
5312 2004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5313
5314 * builtins.c (expand_builtin_update_setjmp_buf): New function.
5315 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5316 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5317
5318 2004-04-26 Paul Brook <paul@codesourcery.com>
5319
5320 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5321
5322 2004-04-26 Paul Brook <paul@codesourcery.com>
5323
5324 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5325
5326 2004-04-25 Roger Sayle <roger@eyesopen.com>
5327
5328 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5329 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and
5330 X % -1 as 0.
5331
5332 2004-04-26 Hans-Peter Nilsson <hp@bitrange.com>
5333
5334 PR bootstrap/15141
5335 * except.c (connect_post_landing_pads): Delete insns after the
5336 barrier when generating a unwind_resume_libfunc call.
5337
5338 2004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5339
5340 PR/c++ 15119
5341 * tree.c (substitute_placeholder_in_expr, case 4): New case,
5342 for TARGET_EXPR.
5343
5344 2004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5345
5346 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5347 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5348 inhibit_libc is defined.
5349
5350 2004-04-25 Richard Sandiford <rsandifo@redhat.com>
5351
5352 * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5353 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5354 * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5355 (TARGET_SCHED_VARIABLE_ISSUE): Define.
5356 (mips_adjust_cost): Move later in file, next to other sched hooks.
5357 (mips_macc_chains_last_hilo): New variable.
5358 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5359 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5360 * config/mips/mips.md (may_clobber_hilo): New attribute.
5361
5362 2004-04-24 Roger Sayle <roger@eyesopen.com>
5363 Bruce Korb <bkorb@gnu.org>
5364
5365 * fixinc/inclhack.def (aix_syswait_2): New fix.
5366 * fixinc/fixincl.x: Regenerate.
5367 * fixinc/tests/base/sys/wait.h: Update for new test.
5368
5369 2004-04-24 Alan Modra <amodra@bigpond.net.au>
5370
5371 PR target/14960
5372 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5373 to non_fixed_size, and leave out fixed_size from the sum.
5374 (generate_set_vrsave): Correct clobbers.
5375 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5376 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5377 (rs6000_libcall_value): Likewise.
5378 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5379 (FUNCTION_ARG_REGNO_P): Likewise.
5380
5381 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
5382
5383 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5384 is a CONST_INT.
5385 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5386 with NARROW_OP1 instead of OP1.
5387
5388 2004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
5389
5390 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5391 and __s390x__ hosts.
5392
5393 2004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5394
5395 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5396 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5397 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5398 BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5399 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5400 * builtins.c (expand_builtin_fork_or_exec): New.
5401 (expand_builtin): Call it.
5402 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5403 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5404 * c-common.c (PID_TYPE): New macro.
5405 (c_common_nodes_and_builtins): Initialize pid_type_node.
5406 * calls.c (special_function_p): Do not handle fork and exec.
5407 (expand_call): Do not handle ECF_FORK_OR_EXEC.
5408 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5409 __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5410 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5411 __gcov_execv, __gcov_execvp, __gcov_execve): New.
5412 * tree.h (enum tree_index): Add TI_PID_TYPE.
5413 (pid_type_node): New macro.
5414 (ECF_FORK_OR_EXEC): Removed.
5415
5416 2004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr>
5417
5418 PR optimization/13985
5419 * cfgloopmanip.c (fix_loop_placements): New prototype.
5420 Call fix_bb_placements on the preheader of loops that have
5421 been reparented.
5422 (remove_path): Adjust call to fix_loop_placements.
5423
5424 2004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
5425
5426 * config/darwin7.h: New file.
5427 * config.gcc (*-*-darwin*): Add darwin7.h if the
5428 version is greater than 6.
5429 * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5430 (MATH_LIBRARY): Wrap in ifdefs.
5431
5432 2004-04-23 Daniel Jacobowitz <drow@mvista.com>
5433
5434 * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5435 loading iWMMXt registers with a frame pointer. Use post-increment
5436 without a frame pointer.
5437 (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5438
5439 2004-04-23 Paolo Bonzini <bonzini@gnu.org>
5440
5441 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5442 mode" rather than "-funit-at-a-time" since -O2 enables it
5443 without requiring -f* options. Refer to -fprofile-generate and
5444 -fprofile-use correctly. Move -funit-at-a-time among options
5445 enabled by -O. Add information about unit-at-a-time caveats.
5446
5447 2004-04-22 Per Bothner <per@bothner.com>
5448
5449 * line-map.h (struct line_maps): New field highest_line.
5450 (linemap_position_for_column): Make non-inline function.
5451 (LINEMAP_POSITION_FOR_COLUMN): New macro.
5452 * line-map.c (linemap_init): Clear highest_line field.
5453 (linemap_add): Set highest_line field.
5454 (linemap_line_start): Minor optimization - use highest_line field.
5455 Reduce maximum column hint to 10000. Update highest_line field.
5456 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
5457 * cpphash.h (struct cpp_reader): Remove line field - instead use
5458 line_table->highest_line.
5459 (saved_line): Remove unused field.
5460 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
5461 Use line_table's highest_line field instead of cpp_reader's line.
5462 * cpplib.c (start_directive): Likewise use highest_line field.
5463 (do_line, do_linemarker): Likewise just use newest map.
5464 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
5465 * cpperror.c (cpp_error): Likewise use highest_line field.
5466 * cppfiles.c (open_file_failed: Likewise.
5467 (cpp_make_system_header): Likewise use newest map and highest_line.
5468 * cppinit.c (cpp_create_reader): Don't initialize removed field.
5469 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5470 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5471 _cpp_lex_direct): Likewise use highest_line.
5472 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
5473 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
5474 and use newest map.
5475 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
5476 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
5477 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
5478
5479 2004-04-23 Alan Modra <amodra@bigpond.net.au>
5480
5481 PR bootstrap/14992
5482 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5483 * config/linux.h (USE_LD_AS_NEEDED): Define.
5484 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5485 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5486 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5487 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5488 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5489 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5490 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5491
5492 2004-04-22 Per Bothner <per@bothner.com>
5493
5494 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
5495 Fixes PR preprocessor/15067.
5496
5497 2004-04-23 Andreas Schwab <schwab@suse.de>
5498
5499 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5500 avoid aliasing warning.
5501
5502 2004-04-22 Jan Hubicka <jh@suse.cz>
5503 Mostafa Hagog <mustafa@il.ibm.com>
5504
5505 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5506 * cfgloopanal.c (expected_loop_iterations): Change the return value
5507
5508 2004-04-22 Jakub Jelinek <jakub@redhat.com>
5509
5510 * cselib.h (struct elt_loc_list): Remove canon_loc field.
5511 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5512 (cselib_invalidate_mem): Remove all canon_loc and canon_x
5513 traces.
5514
5515 2004-04-22 Josef Zlomek <zlomekj@suse.cz>
5516
5517 Revert
5518 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
5519
5520 * var-tracking.c (variable_part_different_p): Variable parts
5521 differ when the most recent locations differ.
5522
5523 2004-04-22 Richard Sandiford <rsandifo@redhat.com>
5524
5525 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5526 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5527 (embedded_pic_offset): Delete.
5528 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
5529 MASK_* constants.
5530 (TARGET_EMBEDDED_PIC): Delete.
5531 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5532 (ASM_SPEC): Remove -membedded-pic.
5533 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5534 (ASM_OUTPUT_CASE_LABEL): Likewise.
5535 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5536 * config/mips/windiss.h (ASM_SPEC): Likewise.
5537 * config/mips/mips.c (struct machine_function): Remove
5538 embedded_pic_fnaddr_rtx.
5539 (TARGET_ENCODE_SECTION_INFO): Remove override.
5540 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5541 (override_options): Remove -membedded-pic handling.
5542 (print_operand): Remove handling of '%S'.
5543 (mips_select_section: Remove -membedded-pic handling.
5544 (mips_encode_section_info): Delete.
5545 (mips_output_conditional_branch): Remove mention of -membedded-pic.
5546 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5547 -membedded-pic handling.
5548 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5549
5550 2004-04-22 Alan Modra <amodra@bigpond.net.au>
5551
5552 * var-tracking.c (frame_base_decl): Remove useless GTY.
5553
5554 2004-04-21 Aldy Hernandez <aldyh@redhat.com>
5555
5556 * config/rs6000/rs6000.c (rs6000_override_options): Error when
5557 user wants altivec and e500 instructions.
5558
5559 2004-04-21 H.J. Lu <hongjiu.lu@intel.com>
5560
5561 PR target/14813
5562 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5563 in .init_array section to ...
5564 * config/ia64/crtbegin.asm: Here.
5565
5566 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5567 and hidden if HAVE_INITFINI_ARRAY is defined.
5568
5569 2004-04-21 James E Wilson <wilson@specifixinc.com>
5570
5571 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5572 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5573 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5574 (fp_register_operand, lo_operand): New.
5575 (mips_rtx_costs): Add TUNE_SB1 support.
5576 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
5577 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5578 (mips_multipass_dfa_lookahead): New.
5579 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5580 TUNE_SB1): New.
5581 (TARGET_SWITCHES): Add -mfp-exceptions support.
5582 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5583 (BRANCH_COST): Fix whitespace.
5584 * config/mips/mips.md: Include sb1.md.
5585 * config/mips/sb1.md: New file.
5586 * doc/invoke.texi: Document -mfp-exceptions.
5587
5588 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
5589 comment.
5590 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5591 (fixincl.o-warn): Delete.
5592
5593 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
5594
5595 * config/rs6000/rs6000 (print_operand) ['z']:
5596 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5597
5598 2004-04-21 Daniel Jacobowitz <drow@mvista.com>
5599
5600 * config.gcc: Support --with-arch=iwmmxt for ARM.
5601
5602 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5603
5604 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5605 in two more places; remove unneeded force_reg
5606
5607 2004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
5608
5609 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5610 for TARGET_MACHO.
5611 (print_operand): For TARGET_MACHO check to see if we need a stub
5612 and output one if we need it.
5613
5614 PR debug/15033
5615 * dwarf2out.c (rtl_for_decl_location): Check for NULL
5616 rtl.
5617
5618 2004-04-20 James E Wilson <wilson@specifixinc.com>
5619
5620 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5621 (vall_value_gp): Likewise.
5622
5623 2004-04-20 DJ Delorie <dj@redhat.com>
5624
5625 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5626 variables stored in word registers, then in memory.
5627
5628 2004-04-20 Eric Christopher <echristo@redhat.com>
5629
5630 * cp/parser.c (cp_parser_declaration): Move translate
5631 up before tokens are lexed.
5632
5633 2004-04-20 Uros Bizjak <uros@kss-loka.si>
5634
5635 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5636 (asin_optab, acos_optab): Define corresponding macros.
5637 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5638 * genopinit.c (optabs): Implement asin_optab and acos_optab
5639 using asin?f2 and acos?f2 patterns.
5640 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5641 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5642 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5643 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5644
5645 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5646 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5647 acos, acosf and acosl built-ins as inline x87 intrinsics.
5648
5649 2004-04-20 Paul Brook <paul@codesourcery.com>
5650
5651 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5652
5653 2004-04-20 Paul Brook <paul@codesourcery.com>
5654
5655 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5656
5657 2004-04-20 Paolo Bonzini <bonzini@gnu.org>
5658
5659 Revert part of 2004-04-17 change that moved -frename-registers
5660 to -O1. -frename-registers is buggy.
5661
5662 * toplev.c (flag_rename_registers): Initialize to 0.
5663 * doc/invoke.texi (Optimize options): Move -frename-registers
5664 to "Not triggered by any -O level" section. Adjust commentary
5665 accordingly.
5666
5667 2004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
5668
5669 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5670
5671 2004-04-20 Richard Sandiford <rsandifo@redhat.com>
5672
5673 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5674 for mflo and mfhi instructions.
5675 (mips_output_move): Remove mflo and mfhi handling.
5676 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5677 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5678 Likewise various define_peephole2s.
5679 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5680 alternatives.
5681 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5682 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5683 (mfhilo_di, mfhilo_si): New patterns.
5684
5685 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
5686
5687 * function.c (assign_parms): Force
5688 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5689
5690 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
5691
5692 * var-tracking.c (variable_part_different_p): Variable parts differ
5693 when the most recent locations differ.
5694
5695 2004-04-19 James E Wilson <wilson@specifixinc.com>
5696
5697 * rtl.h (reg_set_last): Delete declaration.
5698 * rtlanal.c (reg_set_last): Delete.
5699
5700 2004-04-19 Roger Sayle <roger@eyesopen.com>
5701
5702 * fold-const.c (fold_convert): Make function extern/public.
5703 * tree.h (fold_convert): Prototype here.
5704 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5705 expand_builtin_strrchr, expand_builtin_strpbrk,
5706 expand_builtin_mempcpy, expand_builtin_bcopy,
5707 expand_builtin_bzero, expand_builtin_memcmp,
5708 expand_builtin_strcmp, expand_builtin_strncmp,
5709 stabilize_va_list, expand_builtin_sprintf,
5710 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5711 fold_builtin_exponent, fold_builtin_mempcpy,
5712 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5713 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5714 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5715
5716 2004-04-19 Aldy Hernandez <aldyh@redhat.com>
5717
5718 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5719 (move_from_CR_gt_bit): New.
5720 (cceq_ior_compare): Name previously unnamed pattern. Disable for
5721 E500.
5722 (cceq_rev_compare): Name previously unnamed pattern. Allow for
5723 E500.
5724
5725 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5726 (tstsfeq_gpr): Same.
5727 (cmpsfgt_gpr): Same.
5728 (tstsfgt_gpr): Same.
5729 (cmpsflt_gpr): Same.
5730 (tstsflt_gpr): Same.
5731 (e500_cceq_ior_compare): New.
5732 (e500_flip_gt_bit): New.
5733
5734 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5735 (print_operand): Add 'c' and 'D'.
5736 (rs6000_generate_compare): Rewrite to generate correct rtl.
5737 (rs6000_emit_sCOND): Handle E500.
5738 (output_cbranch): Adjust for changes in rs6000_generate_compare.
5739 (output_e500_flip_gt_bit): New.
5740
5741 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5742 Protoize.
5743
5744 2004-04-19 Eric Christopher <echristo@redhat.com>
5745
5746 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5747
5748 2004-04-19 David Edelsohn <edelsohn@gnu.org>
5749
5750 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5751 fix information.
5752
5753 2004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5754
5755 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5756 download URL.
5757
5758 2004-04-19 Daniel Jacobowitz <drow@mvista.com>
5759
5760 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5761 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
5762
5763 2004-04-19 Andrew PInski <pinskia@physics.uc.edu>
5764
5765 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5766 (fold_builtin): Update caller to match.
5767
5768 PR bootstrap/15009
5769 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5770
5771 PR bootstrap/14999
5772 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5773
5774 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5775
5776 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5777
5778 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5779 (expand_mult_highpart_optab): Likewise.
5780 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5781
5782 2004-04-19 Paul Brook <paul@codesourcery.com>
5783
5784 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5785 floatunssisf2, floatunssidf2): New patterns.
5786
5787 2004-04-18 Mark Mitchell <mark@codesourcery.com>
5788
5789 PR other/14918
5790 * doc/invoke.texi (-fprofile-generate): Document requirement to
5791 use -fprofile-generate when linking.
5792
5793 * doc/extend.texi (Strong Using): Warn users against using this
5794 feature.
5795
5796 2004-04-18 Richard Sandiford <rsandifo@redhat.com>
5797
5798 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5799 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5800 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5801 * config/mips/mips.c (struct mips16_constant): Renamed from struct
5802 constant. Propogate change throughout file.
5803 (struct machine_function): Remove insns_len.
5804 (mips_string_length, mips16_strings, string_constants): Delete.
5805 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5806 when generating mips16 code. Remove special mips16 treatment of
5807 string constants.
5808 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5809 to have the form LABEL+CONSTANT.
5810 (mips_symbolic_address_p): Fix comment.
5811 (m16_usym8_4, m16_usym5_4): Delete.
5812 (mips_output_function_epilogue): Remove mips16 string handling.
5813 (mips_output_mi_thunk): Call mips16_lay_out_constants.
5814 (mips_select_section, mips_encode_section_info): Remove mips16
5815 string handling.
5816 (struct mips16_constant_pool): New.
5817 (add_constant): Take a mips16_constant_pool structure. Keep pool
5818 sorted into order of ascending mode size. Keep track of the highest
5819 possible start address, taking padding and the masking of the base PC
5820 value into account.
5821 (dump_constants_1): New function, split out from dump_constants.
5822 Handle vector constants. Use gen_consttable_{int,float} rather than
5823 separate functions for each mode.
5824 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
5825 rather than separate functions for each alignment.
5826 (mips_find_symbol): Delete.
5827 (mips16_insn_length): New function, split out from
5828 mips16_lay_out_constants.
5829 (mips16_rewrite_pool_refs): New function.
5830 (mips16_lay_out_constants): Rework. Remove string handling.
5831 Always create an inline constant pool.
5832 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5833 (UNSPEC_ALIGN): New constants.
5834 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5835 (UNSPEC_ALIGN_[248]): Delete.
5836 (consttable_int, consttable_float, align): New patterns.
5837 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5838
5839 2004-04-17 Aldy Hernandez <aldyh@redhat.com>
5840
5841 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5842 __unn_args_eq.
5843
5844 2004-04-17 Alan Modra <amodra@bigpond.net.au>
5845
5846 PR target/14715
5847 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5848 with STARTING_FRAME_OFFSET.
5849
5850 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
5851
5852 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5853 * config/mips/mips.c (macc_msac_operand): New function.
5854 * config/mips/mips.md (*msac): Move after *macc.
5855 (*msac2): New. Generalize macc-related peepholes so that they apply
5856 to msac too.
5857
5858 2004-04-17 Paolo Bonzini <bonzini@gnu.org>
5859
5860 * opts.c (decode_options): Do not enable flag_rename_registers
5861 and flag_web at -O3.
5862 * toplev.c (flag_rename_registers): Initialize
5863 flag_rename_registers and flag_web to
5864 AUTODETECT_FLAG_VAR_TRACKING.
5865 (default_debug_hooks): New global.
5866 (process_options): Initialize default_debug_hooks. Warn if
5867 -fvar-tracking specified but not supported by the current
5868 debug format. Do not run var tracking at -O0 or if not
5869 supported by the current debug format, even if
5870 -fvar-tracking was given. If -fno-rename-registers
5871 is not specified, always run register renaming if var
5872 tracking is supported by the default debugging information
5873 format for the target, and we are at -O1 or higher; similarly
5874 for -fweb, but only at -O2 or higher.
5875 * doc/invoke.texi (Optimize Options): Document this.
5876
5877 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
5878
5879 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5880 * configure: Regenerate.
5881
5882 2004-04-17 Richard Sandiford <rsandifo@redhat.com>
5883
5884 * gcc.c (used_arg): Check whether an option has been removed.
5885
5886 2004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5887
5888 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5889 debugging on Solaris 7 and up.
5890
5891 2004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5892
5893 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5894 IRIX 5 port.
5895 Remove -save-temps workaround, handled automatically.
5896 Require GNU binutils 2.15 for debugging.
5897 Remove SGI make warnings since GNU make is now required.
5898 (Specific, mips-sgi-irix6): Some markup fixes.
5899 Describe MIPSpro C problems and workarounds.
5900 Mention working O32 ABI support.
5901 Recommend GNU as 2.15 for O32 with debugging.
5902 Remove description of fixed structure pass/return bug.
5903
5904 2004-04-16 DJ Delorie <dj@redhat.com>
5905
5906 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5907 TYPE_FIELDS.
5908 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5909
5910 2004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5911
5912 * pa.md: Remove unnecessary declarations for asm_out_file.
5913
5914 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5915 SAR register. Fix comment.
5916 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5917 (%cr11).
5918
5919 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5920
5921 2004-04-16 Nick Clifton <nickc@redhat.com>
5922
5923 * config/arm/arm.c (arm_override_options): Revert previous patch.
5924 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5925 be safely built.
5926
5927 2004-04-16 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
5928
5929 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5930 bug.
5931 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5932 TARGET_DEFAULT): Changed. Ditto.
5933 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5934 TARGET_ENDIAN_DEFAULT): Added. Ditto.
5935 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5936 (TARGET_ENDIAN_DEFAULT): Added.
5937
5938 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5939
5940 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5941 ATTR_CONST_NOTHROW_LIST.
5942
5943 2004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5944
5945 PR/middle-end 14915
5946 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5947 BITS_BIG_ENDIAN.
5948
5949 2004-04-15 Pat Haugen <pthaugen@us.ibm.com>
5950
5951 * ra-debug.c (ra_print_rtx): Add break's to case legs.
5952
5953 2004-04-14 James E Wilson <wilson@specifixinc.com>
5954
5955 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5956
5957 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
5958
5959 * libada-mk.in: New file.
5960 * configure.ac: Create libada-mk from libada-mk.in.
5961 * configure: Regenerate.
5962
5963 2004-04-14 Uros Bizjak <uros@kss-loka.si>
5964
5965 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5966 (logb_optab, ilogb_optab): Define corresponding macros.
5967 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5968 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5969 using logb?f2 and ilogb?i2 patterns.
5970 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5971 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5972 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5973 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5974
5975 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5976 and UNSPEC_XTRACT_EXP.
5977
5978 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5979 patterns to implement fxtract x87 instruction.
5980 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5981 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5982 intrinsics.
5983 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5984 x87's fxtract insn.
5985
5986 2004-04-14 Eric Christopher <echristo@redhat.com>
5987
5988 * config/mips/t-elf: Enable multilibs by default.
5989
5990 2004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
5991
5992 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5993 previous fix to check HAVE_return at runtime too.
5994
5995 2004-04-14 Nick Clifton <nickc@redhat.com>
5996
5997 * config/arm/arm.c (arm_override_options): If the user has not
5998 specified an ABI, then default to AAPCS for the iWMMXt processor.
5999 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6000 * config/arm/t-xscale-coff: Likewise.
6001
6002 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6003
6004 * builtins.c (fold_builtin_isdigit): New.
6005 (fold_builtin): Handle BUILT_IN_ISDIGIT.
6006 * defaults.h: Add TARGET_DIGIT0 and sort.
6007 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6008
6009 2004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6010
6011 * builtins.c (fold_builtin_cabs, fold_builtin): Use
6012 `mathfn_built_in' to determine the new builtin.
6013 * fold-const.c (fold): Likewise.
6014
6015 2004-04-14 Richard Sandiford <rsandifo@redhat.com>
6016
6017 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6018 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6019 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6020 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6021 (ASM_SPEC): Update accordingly.
6022 * config/mips/mips.c: Update after above renaming.
6023 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6024 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6025
6026 2004-04-13 James E Wilson <wilson@specifixinc.com>
6027
6028 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6029 increment errorcount and return false instead of true.
6030
6031 2004-04-13 Uros Bizjak <uros@kss-loka.si>:
6032
6033 * optabs.c (expand_twoval_unop): Reorder function arguments.
6034 * builtins.c (expand_builtin_mathfn_3): Update calls to
6035 expand_twoval_unop.
6036
6037 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6038 and UNSPEC_TAN_TAN. Add missing comment.
6039
6040 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6041 patterns to implement fptan x87 instruction.
6042 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6043 and tanl built-ins as inline x87 intrinsics. Define corresponding
6044 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6045 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6046 x87's fptan insn.
6047
6048 2004-03-13 Richard Henderson <rth@redhat.com>
6049
6050 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6051 for LABEL_REFs.
6052
6053 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6054 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6055 * doc/invoke.texi: Update to match.
6056
6057 * varasm.c (unlikely_text_section): Use assemble_align instead of
6058 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
6059 correct alignment argument.
6060
6061 2004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
6062
6063 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6064 after setting reg_last_reload_reg for optional output reloads.
6065
6066 2004-04-12 Fariborz Jahanian <fjahanian@apple.com>
6067
6068 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6069 Definition of these two macros are corrected by adding
6070 matchine right paren.
6071
6072 2004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
6073
6074 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6075
6076 2004-04-12 Roger Sayle <roger@eyesopen.com>
6077
6078 * config/i386/i386.c (output_387_reg_move): New function.
6079 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6080 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6081 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6082 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6083 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6084
6085 2004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6086
6087 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6088 TYPE_DECL.
6089 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6090 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6091 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6092 Use skip_simple_arithmetic to find SAVE_EXPR.
6093 (force_type_save_exprs, force_type_save_exprs_1): New functions.
6094 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6095 Properly chain multiple pointers.
6096 (copy_tree_r): Copy a TYPE_DECL.
6097 * tree.c (variably_modified_type_p): Add some missing tests and
6098 make some other minor changes.
6099 * tree.h (force_type_save_exprs): New declaration.
6100
6101 2004-04-12 Roger Sayle <roger@eyesopen.com>
6102
6103 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6104 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
6105 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
6106 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
6107 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
6108 x%-1 into 0 (or x&0 if x has side-effects).
6109
6110 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
6111
6112 * config/rs6000/rs6000.md: Document why a pattern is not
6113 available.
6114
6115 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6116 of floats on the E500.
6117 (branch_positive_comparison_operator): Do not allow NE even on the
6118 E500.
6119
6120 2004-04-11 Aldy Hernandez <aldyh@redhat.com>
6121
6122 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6123 in_text_unlikely_section to in_unlikely_text_section.
6124
6125 2004-04-11 Roger Sayle <roger@eyesopen.com>
6126
6127 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
6128 calling convention to allow a NULL_TREE to be returned. Factor
6129 sanity checks from callers, return NULL_TREE when appropriate.
6130 (fold): Handle COMPOUND_EXPR operands of binary expressions
6131 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
6132 whether a op (b,c) can be rewritten as (b, a op c). Simplify
6133 calls to fold_binary_op_with_conditional_arg.
6134
6135 2004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6136
6137 * config/mips/iris5.h (current_section_flags): Add
6138 in_unlikely_executed_text and default case.
6139
6140 2004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
6141
6142 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6143 failure on solaris. Place ifdef HAVE_return around gen_ret call.
6144 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6145 HAVE_return and place it around the place where it is needed.
6146
6147 2004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
6148
6149 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6150 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6151 and NORMAL_TEXT_SECTION_NAME.
6152 (unlikely_text_section): Check targetm.have_named_sections
6153 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6154 instead of SECTION_FORMAT_STRING.
6155 * config/mips/iris5.h (current_section_name): Add
6156 in_unlikely_executed_text case and move the abort into the switch.
6157 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6158 (NORMAL_TEXT_SECTION_NAME): Remove.
6159 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6160 (SECTION_FORMAT_STRING): Remove.
6161 * defaults.h (SECTION_FORMAT_STRING): Remove.
6162 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6163 (SECTION_FORMAT_STRING): Remove.
6164
6165 2004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
6166
6167 * c-typeck.c (common_type): Prefer long long to long when same
6168 precision.
6169
6170 2004-04-09 Zack Weinberg <zack@codesourcery.com>
6171
6172 PR 14887
6173 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6174 mode argument.
6175 * config/ia64/ia64.c (ia64_hpux_file_end): Check
6176 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6177
6178 2004-04-09 Roger Sayle <roger@eyesopen.com>
6179
6180 * simplify-rtx.c (mode_signbit_p): New function to check whether
6181 an RTX is an immediate constant that represents the most significant
6182 bit of a given machine mode.
6183 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6184 C is the sign bit.
6185 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6186 when C2 is the sign bit.
6187 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6188 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6189 sign bit.
6190
6191 2004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6192
6193 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6194 TYPE_MODE.
6195
6196 2004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
6197
6198 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6199 of TREE_READONLY for types.
6200
6201 2004-04-09 Caroline Tice <ctice@apple.com>
6202
6203 * basic-block.h (struct edge_def): Add new field, crossing_edge.
6204 (struct basic_block_def): Add new field, partition.
6205 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
6206 definitions.
6207 (partition_hot_cold_basic_blocks): Add extern function
6208 declaration.
6209 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
6210 include statements.
6211 (N_ROUNDS): Increase the maximum number of rounds by 1.
6212 (branch_threshold): Add array value for new round.
6213 (exec_threshold): Add array value for new round.
6214 (push_to_next_round_p): New function.
6215 (add_unlikely_executed_notes): New function.
6216 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6217 (mark_bb_for_unlikely_executed_section): New function.
6218 (add_labels_and_missing_jumps): New function.
6219 (add_reg_crossing_jump_notes): New function.
6220 (fix_up_fall_thru_edges): New function.
6221 (find_jump_block): New function.
6222 (fix_crossing_conditional_branches): New function.
6223 (fix_crossing_unconditional_branches): New function.
6224 (fix_edges_for_rarely_executed_code): New function.
6225 (partition_hot_cold_basic_blocks): New function.
6226 (find_traces): Add an extra round for partitioning hot/cold
6227 basic blocks.
6228 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
6229 and only cold blocks, into the last (extra) round of collecting traces.
6230 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
6231 over crossing edges.
6232 (bb_to_key): Add code to correctly identify cold blocks when
6233 doing partitioning.
6234 (connect_traces): Modify to connect all the non-cold traces first, then
6235 go back and connect up all the cold traces.
6236 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
6237 * cfg.c (entry_exit_blocks): Add initialization for partition field in
6238 entry and exit blocks.
6239 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6240 if we are doing hot/cold partitioning.
6241 * cfgcleanup.c (cfglayout.h): Add new include statement.
6242 (try_simplify_condjump): Modify to not attempt on blocks with jumps
6243 that cross section boundaries.
6244 (try_forward_edges): Likewise.
6245 (merge_blocks_move_predecessor_nojumps): Likewise.
6246 (merge_blocks_move_successor_nojumps): Likewise.
6247 (merge_blocks_move): Likewise.
6248 (try_crossjump_to_edge): Modify to not attempt after we have done
6249 the block partitioning.
6250 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6251 cross section boundaries.
6252 (try_optimize_cfg): Likewise.
6253 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6254 jumps that cross section boundaries.
6255 * cfglayout.c (flags.h): Add new include statement.
6256 (update_unlikely_executed_notes): New function.
6257 (fixup_reorder_chain): Add code so when a new jumping basic block is
6258 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6259 updated appropriately.
6260 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
6261 introduced by this optimization.
6262 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
6263 extern function declaration.
6264 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6265 list of notes that can be deleted.
6266 (create_basic_block_structure): Add initialization for partition field.
6267 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
6268 section boundaries.
6269 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
6270 cross section boundaries.
6271 (commit_one_edge_insertion): Add code so newly created basic block
6272 ends up in correct (hot or cold) section. Modify to disallow
6273 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6274 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
6275 crosses section boundaries.
6276 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6277 cross section boundaries.
6278 (force_nonfallthru_and_redirect): Modify to make sure new basic block
6279 ends up in correct section, with correct notes attached.
6280 * common.opt (freorder-blocks-and-partition): Add new flag for this
6281 optimization.
6282 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
6283 the end of functions are written into the correct (hot or cold)
6284 section.
6285 (dbx_source_file): Add code so writing debug file information
6286 doesn't incorrectly change sections.
6287 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6288 in partitioning hot/cold basic blocks into separate sections.
6289 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6290 section partitioning.
6291 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6292 conditional branches can span all of memory.
6293 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6294 unconditional branches can span all of memory.
6295 * final.c (scan_ahead_for_unlikely_executed_note): New function.
6296 (final_scan_insn): Add code to check for NOTE instruction indicating
6297 whether basic block belongs in hot or cold section, and to make sure
6298 the current basic block is being written to the appropriate section.
6299 Also added code to ensure that jump table basic blocks end up in the
6300 correct section.
6301 * flags.h (flag_reorder_blocks_and_partition): New flag.
6302 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
6303 one of the branches has a jump that crosses between sections.
6304 (find_if_case_2): Likewise.
6305 (ifcvt): Modify to not attempt to mark loop exit edges after
6306 hot/cold partitioning has occurred.
6307 * opts.c (decode_options): Code to handle new flag,
6308 flag_reorder_blocks_and_partition; also to turn it off if
6309 flag_exceptions is on.
6310 (common_handle_option): Code to handle new flag,
6311 flag_reorder_blocks_and_partition.
6312 * output.h (unlikely_text_section): New extern function declaration.
6313 (in_unlikely_text_section): New extern function declaration.
6314 * passes.c (rest_of_handle_stack_regs): Add
6315 flag_reorder_blocks_and_partition as an 'or' condition for calling
6316 reorder_basic_blocks.
6317 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
6318 as an 'or' condition for calling reorder_basic_blocks.
6319 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
6320 * print-rtl.c (print_rtx): Add code for handling new note,
6321 NOTE_INSN_UNLIKELY_EXECUTED_CODE
6322 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6323 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6324 cross between section boundaries.
6325 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
6326 indicating the basic block containing it belongs in the cold section.
6327 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6328 between hot and cold sections.
6329 * toplev.c (flag_reorder_blocks_and_partition): Add code to
6330 initialize this flag, and to tie it to the command-line option
6331 freorder-blocks-and-partition.
6332 * varasm.c (cfglayout.h): Add new include statement.
6333 (unlikely_section_label_printed): New global variable, used for
6334 determining when to output section name labels for cold sections.
6335 (in_section): Add in_unlikely_executed_text to enum data structure.
6336 (text_section): Modify code to use SECTION_FORMAT_STRING and
6337 NORMAL_TEXT_SECTION_NAME macros.
6338 (unlikely_text_section): New function.
6339 (in_unlikely_text_section): New function.
6340 (function_section): Add code to make sure beginning of function is
6341 written into correct section (hot or cold).
6342 (assemble_start_function): Add code to make sure stuff is written to
6343 the correct section.
6344 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
6345 to an if statement that was checking 'in_text_section'.
6346 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
6347 condition to an if statement that was checking 'in_text_section'.
6348 (default_section_type_flags_1): Add check: if in cold section
6349 flags = SECTION_CODE.
6350 * config/darwin.c (darwin_asm_named_section): Modify to use
6351 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6352 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6353 specifically for the i386.
6354 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
6355 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6356 text string to something more informative.
6357 (NORMAL_TEXT_SECTION_NAME): Add new definition.
6358 (SECTION_FORMAT_STRING): Add new definition.
6359 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
6360 '!in_unlikely_text_section' as an 'and' condition to an if statement
6361 that was already checking '!in_text_section'.
6362 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6363 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6364 sure these are properly defined for linux on ppc.
6365 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
6366 for this new flag.
6367 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
6368 reg_note.
6369 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6370 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6371 these new macros.
6372
6373 2004-04-08 Roger Sayle <roger@eyesopen.com>
6374
6375 * function.c (gen_mem_addressof): When changing the RTX from a REG
6376 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6377
6378 2004-04-08 Roger Sayle <roger@eyesopen.com>
6379
6380 PR target/14888
6381 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6382 truncxfdf2_noop): Provide dummy "fmov" implementations.
6383
6384 2004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
6385
6386 * gcc.c (default_compilers): Add missing initializers.
6387
6388 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6389 Return 1 if file was successfully mapped.
6390
6391 2004-04-08 Geoffrey Keating <geoffk@apple.com>
6392
6393 PR pch/13419
6394 PR pch/14137
6395 Radar #: 3315288
6396 * doc/invoke.texi (Precompiled Headers): Suggest -o
6397 to put an output file in a particular place. Be more detailed
6398 about which options affect PCH validity and which options
6399 might not work.
6400 * c-pch.c (pch_matching): New.
6401 (MATCH_SIZE): New.
6402 (struct c_pch_validity): New field 'match'.
6403 (pch_init): Handle pch_matching.
6404 (c_common_valid_pch): Check pch_matching.
6405
6406 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6407
6408 2004-04-08 Mark Mitchell <mark@codesourcery.com>
6409
6410 * doc/invoke.texi (Precompiled Headers): Warn about known
6411 problems.
6412
6413 2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
6414
6415 PR c++/14808
6416 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6417 to 1 if ASM_OUTPUT_DEF is defined.
6418 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6419 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6420 Set to non-zero iff not a one_only decl.
6421
6422 2004-04-08 Paul Brook <paul@codesourcery.com>
6423
6424 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6425
6426 2004-04-08 Paul Brook <paul@codesourcery.com>
6427
6428 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6429 PROMOTE_FOR_CALL_ONLY.
6430 * config/arm/arm-protos.h (arm_function_value): Declare.
6431 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6432 (TARGET_PROMOTE_PROTOTYPES): Return false.
6433 (arm_function_value): New function.
6434 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6435 (FUNCTION_VALUE): Call arm_function_value.
6436 * config/cris/cris.h (PROMOTE_MODE): Rename ...
6437 (PROMOTE_FUNCTION_MODE): ... to this.
6438 (PROMOTE_FOR_CALL_ONLY): Remove.
6439 * config/mmix/mmix.h: Likewise.
6440 * config/s390/s390.h: Likewise.
6441 * config/sparc/sparc.h: Likewise.
6442 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6443 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6444 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6445 (PROMOTE_FOR_CALL_ONLY): Remove.
6446
6447 2004-04-08 Joel Sherrill <joel@oarcorp.com>
6448
6449 PR ada/14538
6450 * ada/5rosinte.adb: Remove fake mprotect() body.
6451 * ada/5rosinte.ads: Add SA_SIGINFO.
6452 * ada/5rtpopsp.adb: Rewrite to use new interface.
6453 * ada/init.c: Reorder so the simple single OS conditional __rtems__
6454 is tested before more complex ones which mix UNIX and embedded
6455 systems in the conditional.
6456
6457 2004-04-08 Joel Sherrill <joel@oarcorp.com>
6458
6459 PR ada/14665
6460 * ada/osint.adb (Find_Program_Name): Rework to properly handle
6461 filenames which end in .exe or have versioning suffixes like VMS.
6462
6463 2004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
6464
6465 PR target/10129
6466 * config/darwin.c (darwin_encode_section_info): When the decl has
6467 a DECL_INITIAL, it is only defined also when it is not a common.
6468
6469 2004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6470
6471 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6472 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6473
6474 2004-04-07 H.J. Lu <hongjiu.lu@intel.com>
6475
6476 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6477 global register variables.
6478
6479 2004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
6480
6481 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6482 rpc_xdr_lvalue_cast_b): New fixes.
6483 * fixinc/fixincl.x: Regenerate.
6484 * fixinc/tests/base/rpc/xdr.h: Add new tests.
6485
6486 2004-04-07 David Edelsohn <edelsohn@gnu.org>
6487
6488 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6489 to power4 and power5 entries.
6490
6491 2004-04-06 Geoffrey Keating <geoffk@apple.com>
6492
6493 * c-common.h (pending_lang_change): Mark for PCH.
6494
6495 2004-04-07 Caroline Tice <ctice@apple.com>
6496
6497 * gcc.c (main): Move 'break' in main loops (on an error)
6498 to wait until error processing has occurred.
6499
6500 2004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
6501
6502 * config.gcc: Stop changing enable_threads midstream.
6503 Replace uses of enable_threads_flag with enable_threads.
6504 * configure.ac: Replace uses of enable_threads_flag with
6505 enable_threads. Improve autoconf quotation in one place.
6506 * configure: Regenerate.
6507
6508 2004-04-06 Uros Bizjak <uros@kss-loka.si>
6509
6510 * builtins.c: Implement support for sincos function.
6511 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6512 BUILT_IN_COS{,F,L}.
6513 (expand_builtin_mathfn_3): New function.
6514 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6515 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6516 flag_unsafe_math_optimization is set.
6517
6518 * optabs.h (enum optab_index): Add new OTI_sincos.
6519 (sincos_optab): Define corresponding macro.
6520
6521 * optabs.c (init_optabs): Initialize sincos_optab.
6522 (expand_twoval_unop): New function.
6523
6524 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6525 patterns.
6526
6527 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6528 and UNSPEC_SINCOS_SIN.
6529
6530 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6531 sincosxf3): New patterns to implement sincos, sincosf and sincosl
6532 built-ins as inline x87 intrinsics. Define splits for
6533 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6534 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6535 sincos patterns.
6536 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6537 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6538
6539 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6540 x87's fsincos insn.
6541
6542 2004-04-06 Devang Patel <dpatel@apple.com>
6543
6544 PR 14467
6545 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6546
6547 2004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6548
6549 * doc/install.texi: Update HP-UX 11 installation procedure.
6550
6551 2004-04-06 Paul Brook <paul@codesourcery.com>
6552
6553 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6554
6555 2004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
6556
6557 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6558 when the TLS address is generated by a function call.
6559 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6560 (tls_local_dynamic): Likewise.
6561
6562 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
6563
6564 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6565 and TYPE_VOLATILE.
6566
6567 2004-04-05 Caroline Tice <ctice@apple.com>
6568
6569 * gcc.c (combine_flag): New global variable, for new driver option.
6570 (struct compiler): Add two new fields, to be used when
6571 combining multiple input files in a single pass (IMA).
6572 (default_compilers): Add values for the new fields to all
6573 compiler entries. Modify the "@c" compiler entry for doing IMA
6574 properly with "-save-temps" and the "combine" flag.
6575 (option_map): Add new driver option, "--combine", to tell driver
6576 to pass multiple input files to compiler at one time.
6577 (have_o_argbuf_index): New global variable.
6578 (store_arg): Modify to assign value to have_o_argbuf_index.
6579 (struct infile): Add three new fields, to help with IMA.
6580 (display_help): Add help for new "combine" option.
6581 (process_command): Remove local variable have_o; add code to check
6582 for new "combine" option; remove assignment to combine_inputs.
6583 (do_spec_1): Modify to deal with IMA better.
6584 (main): Make variable 'lang_n_infiles' local to entire function
6585 rather than to a single block. Use flag combine_flag to
6586 determine whether to do IMA or not; Modify loop initializing
6587 infiles to deal properly with linker files.
6588 Add code for doing preprocessing in presence of
6589 IMA with "-save-temps" flag. Modify "main" loop to handle
6590 multiple input files, in multiple languages, with or without
6591 preprocessing, gracefully.
6592 * toplev.c (set_src_pwd): Modify to not complain if attempting to
6593 re-set it to same directory it's previously been set to (avoid
6594 irritating, meaningless warning messages when doing IMA with
6595 save-temps).
6596 * doc/invoke.texi: Add "-combine" to list of Overall Options;
6597 remove documentation about IMA that is no longer accurate; Add
6598 documentation explaining what "-combine" does.
6599 * ada/lang-specs.h: Add initialization values for new fields in
6600 "struct compiler".
6601 * cp/lang-specs.h: Likewise.
6602 * f/lang-specs.h: Likewise.
6603 * java/lang-specs.h: Likewise.
6604 * objc/lang-specs.h: Likewise.
6605 * treelang/lang-specs.h: Likewise.
6606
6607 2004-04-05 David Edelsohn
6608
6609 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6610 symbol handling.
6611
6612 2004-04-05 Jakub Jelinek <jakub@redhat.com>
6613 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6614
6615 PR optimization/13424 (hppa), bootstrap/14462, c/14828
6616 * pa.md: Use replace_equiv_address to retain the attributes of the
6617 memory operands used in the split and peephole2 patterns for optimizing
6618 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6619
6620 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6621
6622 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6623 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6624 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6625 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6626 PARM_DECL.
6627 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6628 for a type.
6629 * print-tree.c (print_node): Properly handle side-effects, readonly,
6630 and constant flags.
6631 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6632 and TREE_CONSTANT if not a type.
6633 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6634 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6635 (NON_TYPE_CHECK): New macro.
6636 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6637
6638 2004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
6639
6640 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6641 to DWARF2_DEBUG unconditionally.
6642 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6643
6644 2004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
6645 Nathanael Nerode <neroden@gcc.gnu.org>
6646
6647 PR target/14548
6648 * config.host: Set the shell variable host_can_use_collect2.
6649 Set it to yes by default, and to no for alpha*-dec-*vms*,
6650 i[34567]86-*-mingw32*, and powerpc-*-beos*.
6651 * configure.ac: Set and substitute the shell variable collect2.
6652 Give an error if use_collect2 is yes and host_can_use_collect2 is
6653 no.
6654 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
6655 uses. Initialize to @collect2@.
6656 (STAGESTUFF): Remove $(USE_COLLECT2).
6657 * config/alpha/x-vms (USE_COLLECT2): Don't set.
6658 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6659 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6660 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6661 * configure: Regenerate.
6662
6663 2004-04-04 Roger Sayle <roger@eyesopen.com>
6664
6665 * simplify-rtx.c (simplify_binary_operation): Constant fold
6666 DIV, MOD, UDIV and UMOD using div_and_round_double.
6667
6668 2004-04-04 Mark Mitchell <mark@codesourcery.com>
6669
6670 PR c++/14804
6671 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6672 RECORD_TYPEs.
6673
6674 2004-04-04 Mark Mitchell <mark@codesourcery.com>
6675
6676 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6677 documentation.
6678
6679 2004-04-04 Roger Sayle <roger@eyesopen.com>
6680
6681 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6682 updating the REG_EQUAL note on an insn's libcall_insn.
6683
6684 2004-04-04 Roger Sayle <roger@eyesopen.com>
6685
6686 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6687
6688 2004-04-03 Roger Sayle <roger@eyesopen.com>
6689
6690 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6691 with reorder_operands_p.
6692
6693 2004-04-03 Jan Hubicka <jh@suse.cz>
6694
6695 * md.texi (vec_set, vec_extract, vec_init): Document.
6696
6697 2004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
6698
6699 * opts.c (decode_options): Do function inlining with very small
6700 max-inline-insns-* parameters when optimizing for size.
6701
6702 2004-04-02 Vladimir Makarov <vmakarov@redhat.com>
6703
6704 * config/i386/i386.h (TARGET_NOCONA): New macro.
6705 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6706 (processor_type): Add PROCESSOR_NOCONA.
6707
6708 * config/i386/i386.md (cpu): Add nocona to the attribute values.
6709
6710 * config/i386/i386.c (nocona_cost): New variable.
6711 (m_NOCONA): New macro.
6712 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6713 x86_branch_hints, x86_use_sahf, x86_single_stringop,
6714 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6715 x86_integer_DFmode_moves, x86_partial_reg_dependency,
6716 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6717 x86_decompose_lea, x86_arch_always_fancy_math_387,
6718 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6719 x86_ext_80387_constants, x86_four_jump_limit):
6720 (override_options): Add nocona_cost to processor_target_table.
6721 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6722 (incdec_operand): Prevent inc/dec generation for Nocona too.
6723 (ix86_issue_rate): Add PROCESSOR_NOCONA.
6724
6725 2004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
6726
6727 * rtlanal.c (find_reg_note): Manually
6728 unswitch the loop.
6729
6730 2004-04-01 Mark Mitchell <mark@codesourcery.com>
6731
6732 * genemit.c (gen_split): Change prototype of generated code.
6733 * genrecog.c (write_action): Adjust prototype for and calls to
6734 gen_split_*.
6735 * gensupport.c (struct queue_elem): Add split field.
6736 (queue_pattern): Return a value. Clear the split field.
6737 (process_rtx): Maintain an association between an insn and the
6738 split generated from it for a define_insn_and_split.
6739 (process_one_cond_exec): Generate a new split for a
6740 define_insn_and_split.
6741 * config/arm/arm-protos.h (arm_split_constant): Add insn
6742 parameter.
6743 (emit_constant_insn): New function.
6744 (arm_gen_constant): Use it.
6745 * config/arm/arm.md: Adjust calls to arm_split_constant.
6746
6747 2004-04-02 Jan Hubicka <jh@suse.cz>
6748
6749 * cgraph.c: Add overall comment.
6750 (cgraph_inline_hash): New global variable.
6751 (cgraph_create_node): Break out from ...
6752 (cgraph_node): ... here.
6753 (cgraph_edge): New function.
6754 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6755 (cgraph_remove_edge): Accept edge, intead of source and destination.
6756 (cgraph_redirect_edge_callee): New.
6757 (cgraph_remove_node): Update all new datastructures.
6758 (cgraph_record_call, cgraph_remove_call): Kill.
6759 (dump_cgraph_node): Break out from ... ; dump new datastructures.
6760 (dump_cgraph): ... here.
6761 (cgraph_function_possibly_inlined_p): Use new hashtable.
6762 (cgraph_clone_edge, cgraph_clone_node): New.
6763 * cgraph.h: Include hashtab.h
6764 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6765 fields, add inlined_to pointer.
6766 (cgraph_node): Add pointer to next_clone.
6767 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6768 (cgraph_remove_call, cgraph_record_call): Kill.
6769 (cgraph_inline_hash): Declare.
6770 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6771 cgraph_redirect_edge_callee): Declare.
6772 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6773 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6774 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6775 * cgraphunit.c: Add overall comment.
6776 (cgraph_optimize_function): Kill.
6777 (cgraph_assemble_pending_functions): Do not assemble inline clones.
6778 (cgraph_finalize_function): Update call of cgraph_remove_node
6779 (record_call_1): Record call sites.
6780 (cgraph_create_edges): Accept node instead of decl argument.
6781 (error_found): New static variable.
6782 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6783 (cgraph_analyze_function): Update for new datastructures.
6784 (cgraph_finalize_compilation_unit): Plug memory leak.
6785 (cgraph_optimize_function): Kill.
6786 (cgraph_expand_function): Do not use cgraph_optimize_function.
6787 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6788 cgraph_inlined_callees): Kill.
6789 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6790 clones.
6791 (estimate_growth): Simplify.
6792 (cgraph_clone_inlined_nodes): New function.
6793 (cgraph_mark_inline_edge): Re-implement.
6794 (cgraph_mark_inline): Likewise.
6795 (cgraph_check_inline_limits): Simplify.
6796 (cgraph_recursive_inlining_p): New.
6797 (update_callee_keys): Break out from ...
6798 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6799 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6800 Likewise.
6801 (cgraph_expand_all_functions): Remove inline clones from the ordered
6802 list.
6803 (cgraph_preserve_function_body_p): New predicate.
6804 (cgraph_optimize): Verify cgraph.
6805 * function.h (struct function): Add fields saved_tree/saved_args.
6806 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6807 * toplev.c (rest_of_compilation): Do not free cfun.
6808 * tree-inline.c: Include function.h
6809 (struct inline_data): Add saving_p field; replace decl/current_decl by
6810 node/current_node.
6811 (insert_decl_map): New function.
6812 (copy_body_r): Handle saving; update cgraph datastructure.
6813 (copy_body): Handle recursive inlining.
6814 (initialize_inlined_parameters): Likewise.
6815 (expand_call_inline): Propagate node attributes; update cgraph.
6816 (optimize_inline_calls): Verify that datastructure still match.
6817 (save_body): New function.
6818 * tree-inline.h (save_body): New.
6819 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6820 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6821 * langhooks.c (lang_hooks): Add update_decl_after_saving.
6822
6823 2004-04-01 Serge Belyshev <1319@bot.ru>
6824
6825 PR target/14702
6826 * config/i386/i386.md: fix source operand constraints in
6827 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
6828
6829 2004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
6830
6831 * fold-const.c (folda): Preserve types of comparisons.
6832
6833 2004-04-01 Richard Henderson <rth@redhat.com>
6834
6835 * toplev.c (backend_init): Move init_optimization_passes call ...
6836 (lang_dependent_init): ... here.
6837
6838 2004-04-01 Alan Modra <amodra@bigpond.net.au>
6839 Jakub Jelinek <jakub@redhat.com>
6840
6841 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6842 -lgcc --as-needed -lgcc_s --no-as-needed by default.
6843 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6844 * configure: Rebuilt.
6845 * config.in: Rebuilt.
6846 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6847 (stage2-start, stage3-start, stage4-start): Likewise.
6848 (stageprofile-start, stagefeedback-start): Likewise.
6849
6850 2004-04-01 Jakub Jelinek <jakub@redhat.com>
6851
6852 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6853 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6854 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6855 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6856 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6857 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6858 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6859 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6860 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6861 * config/sparc/t-linux: Removed.
6862
6863 2004-04-01 Jakub Jelinek <jakub@redhat.com>
6864
6865 PR c++/14755
6866 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6867 "bitfld++ == const" to "++bitfld == const + incr" transformations.
6868
6869 2004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6870
6871 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6872 * stor-layout.c (layout_decl): Likewise.
6873 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6874 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6875 * print-tree.c (print_node): Handle various used of unsigned_flag.
6876 * tree.def (BIT_FIELD_REF): Update comment.
6877 * tree.h (TREE_UNSIGNED): Deleted.
6878 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6879
6880 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6881
6882 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6883 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6884 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6885 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6886 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6887 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6888 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6889 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6890 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6891 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6892 REAL_TYPE, not INTEGER_TYPE.
6893 (layout_type, case VECTOR_TYPE): Simplify code.
6894 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6895 * tree.h: Update comments.
6896 (STRIP_NOPS): Use TYPE_UNSIGNED.
6897 (TYPE_UNSIGNED): New macro.
6898 (TYPE_TRAP_SIGNED): Remove now redundant check.
6899 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6900
6901 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6902
6903 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6904
6905 2004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
6906
6907 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6908 Add darwin-fpsave.asm, darwin-vecsave.asm,
6909 and darwin-world.asm.
6910 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6911 as the asm files contain altivec instructions.
6912 * config/rs6000/darwin-fpsave.asm: New file.
6913 * config/rs6000/darwin-vecsave.asm: New file.
6914 * config/rs6000/darwin-world.asm: New file.
6915
6916 2004-03-31 Zack Weinberg <zack@codesourcery.com>
6917
6918 * gengtype-yacc.y (option, stringseq): Add missing
6919 terminating semicolon.
6920
6921 2004-03-30 David Edelsohn <edelsohn@gnu.org>
6922
6923 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6924 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6925 tls_dtprel_ha_32, tls_dtprel_ha_64,
6926 tls_dtprel_lo_32, tls_dtprel_lo_64,
6927 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6928 tls_tprel_ha_32, tls_tprel_ha_64,
6929 tls_tprel_lo_32, tls_tprel_lo_64,
6930 tls_got_tprel_32, tls_got_tprel_64,
6931 tls_tls_32, tls_tls_64): Replace register_operand with
6932 gpc_reg_operand.
6933
6934 2004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
6935
6936 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6937 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6938 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6939 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6940 *ctrdi_internal6): Replace register_operand with
6941 nonimmediate_operand.
6942
6943 2004-03-29 Fariborz Jahanian <fjahanian@apple.com>
6944
6945 * fold-const.c (fold): Reassociate multiply expression
6946 with an adjacent non-multiply expression to use
6947 architecture's multiply-add instruction.
6948
6949 2004-03-30 Zack Weinberg <zack@codesourcery.com>
6950
6951 * gengtype.c (create_option): New function.
6952 * gengtype.h: Prototype it.
6953 * gengtype-yacc.y (stringseq): New rule.
6954 (option): Use create_option. Add new bare ID production. Use
6955 stringseq, not STRING directly.
6956
6957 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6958 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6959 * varray.h, config/alpha/alpha.c:
6960 Use new shorter form of GTY markers.
6961
6962 * doc/gty.texi: Rewrite.
6963
6964 2004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
6965
6966 * config/darwin.c (machopic_function_base_name):
6967 Remove current_name and getting the name of the
6968 current function.
6969
6970 2004-03-30 Nick Clifton <nickc@redhat.com>
6971
6972 * config/arm/arm.md (thumb_jump): Reduce the backward branch
6973 range, and increase the forward branch range, to allow for
6974 the fact that the PC will be off by 4.
6975
6976 2004-03-30 Alan Modra <amodra@bigpond.net.au>
6977
6978 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6979
6980 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
6981
6982 * config/rs6000/rs6000.c (output_vec_const_move):
6983 Find all cases of EASY_VECTOR_15_ADD_SELF.
6984 (easy_vector_constant_add_self): Accept
6985 all vector constant loadable by vsplt* and vadd*.
6986 (easy_vector_same): Use easy_vector_splat_const.
6987 (easy_vector_const): Use easy_vector_splat_const.
6988 (easy_vector_splat_const): New function.
6989 (gen_easy_vector_constant_add_self): New function.
6990
6991 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6992 New prototype.
6993
6994 * config/rs6000/altivec.md (movv4si splitter): Change to
6995 emit move insn with halfed vector constant.
6996 (*movv8hi splitter): Likewise.
6997 (*movv16qi splitter): Likewise.
6998
6999 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
7000
7001 PR 11591
7002 * config/rs6000/rs6000.c (rs6000_legitimate_address):
7003 Allow any offset to argument pointer in no-strict case.
7004
7005 2004-03-30 Jan Hubicka <jh@suse.cz>
7006
7007 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7008 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7009 dump file in non-unit-at-a-time mode.
7010
7011 2004-03-29 Hans-Peter Nilsson <hp@axis.com>
7012
7013 * config/cris/cris.h: Correct #ifdef to test for
7014 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7015 HAVE_AS_MUL_BUG_ABORT_OPTION.
7016
7017 2004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7018
7019 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7020 the address inside the old RTL.
7021
7022 2004-03-28 Zack Weinberg <zack@codesourcery.com>
7023
7024 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7025 (struct c_binding, struct c_scope): Add chain_next
7026 attributes to GTY markers.
7027 (struct lang_identifier, struct lang_tree_node): Define
7028 here...
7029 * c-tree.h: ... not here. No longer need to declare struct
7030 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7031 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7032 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7033
7034 PR 14734, 11944
7035 * c-decl.c (get_parm_info): If error_mark_node is encountered
7036 in the bindings chain, unbind and discard it; don't abort.
7037
7038 2004-03-28 Olga Golovonevsky <olga@il.ibm.com>
7039 Dorit Naishlos <dorit@il.ibm.com>
7040
7041 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7042 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7043
7044 2004-03-28 Stephane Carrez <stcarrez@nerim.fr>
7045
7046 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7047
7048 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7049 (m68hc11_attribute_table): New attribute "page0" to mark a global
7050 variable as being allocated from within page0 section.
7051 (m68hc11_encode_label): New function.
7052 (m68hc11_strip_name_encoding): New function.
7053 (m68hc11_page0_symbol_p): New function.
7054 (m68hc11_indirect_p): Accept global variables marked in page0.
7055 (m68hc11_encode_section_info): Lookup "page0" attribute.
7056
7057 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7058 represents access to page0 variables.
7059
7060 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7061 ("*logicalsi3_silshl16_zext"): Likewise.
7062 ("*ashldi3_const32"): Likewise.
7063 (peephole2 ashift): Likewise.
7064
7065 2004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
7066
7067 * c-tree.h (C_DECL_REGISTER): New.
7068 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7069 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7070 (build_array_ref, c_mark_addressable): Set and use it.
7071 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7072 Allow structures with volatile fields to be declared register.
7073 Don't check TREE_ADDRESSABLE before warning about taking address
7074 of register.
7075 * c-decl.c (finish_decl): Don't allow structures with volatile
7076 fields to be placed in named register.
7077 * doc/trouble.texi: Remove reference to structures with volatile
7078 fields in registers.
7079
7080 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
7081
7082 * function.c (thread_prologue_and_epilogue): Move
7083 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7084 before the epilogue.
7085
7086 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
7087
7088 * expr.c (store_constructor): Use gen_int_mode to correctly
7089 sign-extend CONST_INT value.
7090
7091 2004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7092
7093 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7094 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
7095 * doc/extend.texi: Likewise.
7096
7097 2004-03-26 Diego Novillo <dnovillo@redhat.com>
7098
7099 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7100 with TYPE_ORIG_SIZE_TYPE.
7101
7102 2004-03-25 Aldy Hernandez <aldyh@redhat.com>
7103
7104 PR 14219
7105 * c-typeck.c (build_binary_op): Do not allow comparisons of
7106 vectors.
7107
7108 2004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
7109
7110 * config.gcc: Remove sparc-tti-*.
7111 * config/sparc/pbd.h: Delete.
7112
7113 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7114 * config/sparc/aout.h: Likewise.
7115
7116 * config/sparc/sparc.h: Remove if 0'd code.
7117 * config/sparc/sparc.md (call): Remove if 0'd code.
7118 (call_value): Likewise.
7119 (nonlocal_goto): Likewise.
7120 (unimp_insn): Delete.
7121
7122 2004-03-25 Roger Sayle <roger@eyesopen.com>
7123
7124 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7125 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7126
7127 2004-03-25 Richard Henderson <rth@redhat.com>
7128
7129 PR 11527
7130 * c-typeck.c (pop_init_level): Emit pending init elements earlier
7131 rather than later.
7132
7133 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7134
7135 * builtins.c (fold_builtin): Fix error in last change.
7136
7137 2004-03-25 Richard Sandiford <rsandifo@redhat.com>
7138
7139 * config/mips/mips.h: Formatting fix.
7140
7141 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7142
7143 * builtins.def: Add ctype builtins.
7144 * doc/extend.texi: Likewise.
7145
7146 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7147
7148 * builtins.c (fold_builtin): Add new builtin optimizations for
7149 sqrt and/or cbrt.
7150 * fold-const.c (fold): Likewise.
7151
7152 2004-03-25 David Edelsohn <edelsohn@gnu.org>
7153
7154 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7155 (rs6000_sched_groups): New variable.
7156 (processor_target_table): Add power5.
7157 (rs6000_override_options): Set rs6000_sched_insert_nops,
7158 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7159 from rs6000_sched_groups.
7160 (output_cbranch): Use rs6000_always_hint.
7161 (rs6000_variable_issue): Use rs6000_sched_groups.
7162 (rs6000_adjust_cost): Add CPU_POWER5.
7163 (is_microcoded_insn): Use rs6000_sched_groups.
7164 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7165 Return 2 for POWER5 cracked instructions.
7166 (is_cracked_insn): Use rs6000_sched_groups.
7167 (is_branch_slot_insn): Use rs6000_sched_groups.
7168 (rs6000_issue_rate): Add CPU_POWER5.
7169 (rs6000_sched_finish): Use rs6000_sched_groups.
7170 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7171 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7172 (DEFAULT_SCHED_COSTLY_DEP): Delete.
7173 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7174 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7175 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7176 * config/rs6000/power5.md: New file.
7177 * doc/invoke.texi: Add power5 option.
7178
7179 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
7180
7181 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7182 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7183 * doc/invoke.texi: Fix a typo.
7184
7185 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
7186
7187 PR optimization/9707.
7188 * stmt.c (emit_case_nodes): Emit equality comparisons instead
7189 of recursing if both children are single-valued cases with no
7190 children.
7191
7192 2004-03-25 Paul Brook <paul@codesourcery.com>
7193
7194 * config/arm/arm.c (vfp_print_multi): Remove.
7195 (arm_output_fldmx): New function.
7196 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7197 (arm_expand_prologue): Update to match.
7198 (arm_get_vfp_saved_size): New Function.
7199 (arm_get_frame_offsets): Use it.
7200 (arm_output_epilogue): Use new functions.
7201
7202 2004-03-24 Richard Henderson <rth@redhat.com>
7203
7204 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7205 (reg_known_value, reg_known_value_size): Likewise; make static.
7206 (reg_known_equiv_p): Make static.
7207 (clear_reg_alias_info): Update for new indexing.
7208 (get_reg_known_value, set_reg_known_value): New.
7209 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7210 (canon_rtx): Use them.
7211 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
7212 Don't play queer offsetting games with reg_known_value and
7213 reg_known_equiv_p.
7214 (end_alias_analysis): Free reg_known_value with gc.
7215 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7216 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7217 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7218 functions instead.
7219
7220 2004-03-24 Kazu Hirata <kazu@cs.umass.edu>
7221
7222 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7223 config/i386/mmintrin.h: Update copyright.
7224
7225 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7226
7227 * configure.ac: Add --enable-werror-always (for top level bootstrap
7228 support).
7229 * configure: Regenerate.
7230
7231 2004-03-24 Ziemowit Laski <zlaski@apple.com>
7232
7233 * objc/objc-act.c (objc_comptypes): Treat comparisons
7234 between 'Class' and '<class> *' as explicitly invalid.
7235
7236 2004-03-24 David Edelsohn <edelsohn@gnu.org>
7237
7238 * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7239 (-fprofile-values): Add enabled with profile-{generate,use}.
7240 (-fvpt): Same.
7241 (-ftracer): Add enabled with profile-use.
7242 (-funit-at-a-time): Add enabled at -O2,-O3.
7243 (-funroll-loops): Add enabled with profile-use.
7244 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
7245 (max-gcse-passes): Mention default.
7246 (max-cse-path-length): Mention default.
7247
7248 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7249
7250 * Makefile.in (STRICT2_WARN): Reorder.
7251 * configure.ac: Check for -Wold-style-definition, and use it
7252 in strict1_warn if it's available.
7253 * configure: Regnerate.
7254
7255 2004-03-24 Paul Brook <paul@nowt.org>
7256
7257 * config.gcc <arm>: Add --with-abi=
7258 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7259 thumb_far_jump_used): Remove prototypes.
7260 (arm_needs_doubleword_align): Add prototype.
7261 (thumb_compute_initial_elimination_offset): Ditto.
7262 * config/arm/arm.c (arm_get_frame_offsets): New function.
7263 (use_return_insn, output_return_instruction, arm_output_epilogue,
7264 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7265 arm_expand_prologue, thumb_expand_epilogue): Use it.
7266 (arm_abi, target_abi_name, all_arm_abis): New variables.
7267 (arm_override_options): Set them. Set structure padding for AAPCS.
7268 (arm_return_in_memory): Update ABI check.
7269 (arm_init_cumulative_args): Initialize can_split.
7270 (arm_needs_doubleword_align): New function.
7271 (arm_function_arg): Don't split args after pushing to stack. Handle
7272 doubleword/even reg alignment.
7273 (arm_va_arg): Handle all doubleword aligned args.
7274 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7275 on ABI, not CPU.
7276 (arm_compute_save_reg0_reg12_mask): Fix comment.
7277 (thumb_get_frame_size, thumb_get_frame_size): Remove.
7278 (thumb_jump_far_used_p): Remove superfluous argument. Return save
7279 value for alignment.
7280 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7281 to match.
7282 (thumb_compute_initial_elimination_offset): New function.
7283 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
7284 unneccessary rounding.
7285 * config/arm/arm.h (target_abi_name): Declare.
7286 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7287 arm_abi_type, ARM_DEFAULT_ABI): Define.
7288 (ARM_FLAG_ATPCS): Remove.
7289 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7290 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7291 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7292 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7293 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7294 Contitionalize on ABI, not CPU.
7295 (struct arm_stack_offsets): Define.
7296 (struct machine_function): Add stack_offsets. Remove frame_size.
7297 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7298 pushed.
7299 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7300 doubleword alignment.
7301 (THUMB_INITIAL_ELIMINATION_OFFSET,
7302 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7303 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7304 * config/arm/arm.md (align_8): Enable for all targets.
7305 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7306 (ARM_DEFAULT_ABI): Define.
7307 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7308 -mstructure-size-boundary.
7309
7310 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7311
7312 * configure.ac: Check for -Wno-variadic-macros; don't use
7313 -pedantic (in stage 1 or a simple 'make all') unless it's available,
7314 and if it's available, use it. Also, clean up check for
7315 -Wno-long-long.
7316 * configure: Regenerate.
7317
7318 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
7319
7320 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7321 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7322 (MULTILIB_DEFAULTS): Use it.
7323 (MIPS_CPU_STRING_DEFAULT): Remove.
7324 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7325 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
7326 EABI64 -mlong32 the default ABI. Enforce the default architecture.
7327 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7328 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7329 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7330 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
7331 accordingly.
7332
7333 2004-03-24 DJ Delorie <dj@redhat.com>
7334 Richard Sandiford <rsandifo@redhat.com>
7335
7336 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7337 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7338 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7339 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7340 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7341 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7342 if TARGET_FIX_VR4122.
7343 * config/mips/mips.md (define_attr length): Account for nops inserted
7344 after macc and dmult when using -mfix-vr4122-bugs.
7345 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7346 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7347 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
7348 * config/mips/vr4122-div.S: New file.
7349 * doc/invoke.texi: Document -mfix-vr4122-bugs.
7350
7351 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
7352
7353 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7354 (TARGET_MIPS4130): New macro.
7355 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7356 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7357 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7358 with PROCESSOR_R4130.
7359 * config/mips/mips.md (define_attr cpu): Add r4130.
7360 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7361
7362 2004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
7363 Richard Sandiford <rsandifo@redhat.com>
7364
7365 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7366
7367 2004-03-24 Alexandre Oliva <aoliva@redhat.com>
7368
7369 PR preprocessor/14438
7370 * cpplib.c (do_pragma): Remove line_change call after pragma
7371 handler.
7372
7373 2004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
7374
7375 * doc/extend.texi (ARM Built-in Functions): Replace with correct
7376 declarations.
7377
7378 2004-03-23 Roger Sayle <roger@eyesopen.com>
7379
7380 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7381 if flag_unsafe_math_optimizations.
7382 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7383 and TARGET_80387 expand using truncdfsf2_noop pattern.
7384 (truncxfsf2): Likewise using truncxfsf2_noop.
7385 (truncxfdf2): Likewise using truncxfdf2_noop.
7386 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7387
7388 2004-03-23 Ziemowit Laski <zlaski@apple.com>
7389
7390 * hooks.c (hook_constcharptr_tree_null): New hook.
7391 * hooks.h (hook_constcharptr_tree_null): New prototype.
7392 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7393 * target.h (mangle_fundamental_type): New target hook.
7394 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7395 target hook at rs6000_mangle_fundamental_type.
7396 (rs6000_mangle_fundamental_type): New function.
7397 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7398
7399 2004-03-23 Zack Weinberg <zack@codesourcery.com>
7400
7401 PR 12267, 12391, 12560, 13129, 14114, 14133
7402 * c-tree.h: Forward declare struct c_binding. Declare
7403 c_override_bindings_to_false. Update prototypes.
7404 (struct lang_identifier): Update comments. Change fields to be
7405 struct c_binding *.
7406 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7407 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7408 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7409 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7410 * c-common.h: Update prototypes.
7411 * c-decl.c (struct c_scope): Update commentary. Remove names,
7412 names_last, parms, parms_last, tags, and shadowed fields. Add
7413 bindings and depth fields.
7414 (scope_freelist): Move to more appropriate location.
7415 (c_print_identifier): Update for changes to struct lang_identifier.
7416 (objc_mark_locals_volatile): Update for new bindings structures.
7417 (global_bindings_p): Honor c_override_global_bindings_to_false.
7418 (pushlevel): Rename to push_scope; take no arguments; use the
7419 scope_freelist; initialize scope->depth and check for overflow.
7420 (poplevel): Rename to pop_scope; totally rewritten for new bindings
7421 structures.
7422 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7423 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
7424 Improve some commentary. Adjust handling of forward parm decls.
7425 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7426 Preserve C_DECL_IN_EXTERNAL_SCOPE.
7427 (warn_if_shadowing): Correct indentation. Improve diagnostics.
7428 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
7429 decls. Rewrite for new bindings structures. Improve commentary.
7430 Eliminate the copy_node call.
7431 (implicit_decl_warning): Use the "diag" idiom (as seen in
7432 locate_old_decl) to reduce code duplication; call locate_old_decl
7433 if appropriate. Relocate to remove need for forward declaration.
7434 (implicitly_declare): Adjust for new bindings structures. Kludge
7435 around Objective-C not-really-builtin functions.
7436 (undeclared_variable): Improve diagnostics. If current_function_decl
7437 is nonnull but current_function_scope is null, use current_scope.
7438 Use bind.
7439 (lookup_tag): Adjust for new bindings structures. Kludge around
7440 Objective-C's tag declarations that wind up in the external scope.
7441 (lookup_name): Adjust for new bindings structures. Kludge around
7442 c-common.c's pseudo-typedefs that wind up in the external scope.
7443 (lookup_name_current_level): Rename lookup_name_in_scope; take a
7444 second argument indicating the scope to examine; rewrite for
7445 new bindings structures.
7446 (c_init_decl_processing): Adjust for renamed functions. Do not
7447 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7448 First scope pushed is the external scope, not the global scope.
7449 (builtin_function): Use bind, not pushdecl. Adjust other bits
7450 for new data structures. Keep track of builtins that should be
7451 made visible automatically.
7452 (start_decl): Adjust diagnostics. Remove unnecessary call to
7453 expand_decl.
7454 (grokparms): Return 0 if arg_types is error_mark_node.
7455 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7456 reversed sense. Rewrite for new bindings structures. Do not
7457 leave any decls in the scope, to prevent pop_scope from doing
7458 contradictory things with them.
7459 (finish_struct, finish_enum): Remove redundant diagnostics.
7460 (build_enumerator): Don't cascade diagnostics for error_mark_node.
7461 Mark location where -pedantic changes the meaning of the program.
7462 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7463 parameter decls into the function's scope structure using bind.
7464 Warn here about function definitions in the wrong style.
7465 Adjust diagnostics.
7466 (store_parm_decls): Correct the determination of whether a
7467 function was defined with a prototype.
7468 (c_write_global_declarations): Operate on all file decls and on
7469 the external scope. Split body of the loop to...
7470 (c_write_global_declarations_1): ... this new function, to avoid
7471 code duplication.
7472 (truly_local_externals, first_builtin_decl, last_builtin_decl)
7473 (make_scope, pop_scope, in_parm_level_p, set_block)
7474 (any_external_decl, record_external_decl, bind_label, getdecls)
7475 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7476 (c_reset_state): Delete.
7477 (visible_builtins, c_override_global_bindings_to_false)
7478 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7479 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7480 (external_scope, binding_freelist, bind, free_binding_and_advance)
7481 (push_file_scope, pop_file_scope): New.
7482 (pushtag, pushdecl_top_level, lookup_label, declare_label)
7483 (define_label, c_make_fname_decl, finish_decl)
7484 (mark_forward_parm_decls, build_compound_literal)
7485 (grokdeclarator, start_function, check_for_loop_decls)
7486 (identifier_global_value, record_builtin_type): Minor adjustments
7487 for new bindings structures. Improve diagnostics and commentary.
7488 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7489 pushlevel/poplevel respectively.
7490 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7491 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7492 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
7493 correct loop over multiple translation units; call fatal_error if
7494 requested to compile more than one file at once. (This disables
7495 IMA temporarily - an up-front error being preferable to a crash.)
7496 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7497 (all actions): Adjust calls to pushlevel/poplevel.
7498 (parsing_iso_function_signature): Delete.
7499 (extdef_1): Fold into extdef.
7500 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
7501 warn here about function definitions in the wrong style.
7502 (after_tyle_declarator, parm_declarator_starttypename)
7503 (parm_declarator_nostarttypename, notype_declarator): Remove
7504 commented-out productions.
7505 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7506 an empty TREE_LIST node. Adjust calls to get_parm_info.
7507 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7508 to suppress -Wold-style-definition after this error.
7509 (c_parse_file): Don't clear the binding stack or call
7510 finish_fname_decls here. Correct comment.
7511 * c-typeck.c (same_translation_unit_p): Export.
7512 (common_type): Use c_override_global_bindings_to_false, not
7513 pushlevel/poplevel/declare_parm_level.
7514 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7515 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7516 and LANG_HOOKS_GETDECLS with do-nothing stubs.
7517 * objc/objc-lang.c: Likewise.
7518 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7519 get_parm_info.
7520 (OBJC_VOID_AT_END): Delete; replace all uses
7521 with void_list_node.
7522 (generate_forward_declaration_to_string_table): Delete.
7523 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7524
7525 * coverage.c (create_coverage): Don't pushdecl anything.
7526 * langhooks.c (lhd_clear_binding_stack): Call
7527 lang_hooks.decls.poplevel, not poplevel.
7528 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7529 circular list rather than going into an infinite loop.
7530
7531 2004-03-23 Olivier Hainque <hainque@act-europe.fr>
7532
7533 * optabs.c (expand_binop): When synthesizing double word rotates
7534 from single word shifts, use a new register target if the provided
7535 target is not a REG already.
7536
7537 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7538
7539 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7540 * c-common.c (handle_mode_attribute): Add extra arg to
7541 build_pointer_type_for_mode and build_reference_type_for_mode.
7542 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7543 for INTEGER_CST.
7544 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7545 Chain pointers via TYPE_NEXT_PTR_TO.
7546 (build_reference_type_for_mode): Similarly.
7547 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7548 and build_reference_type_for_mode.
7549 (tree_check4_failed): New function.
7550 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7551 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7552 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7553 Add check.
7554
7555 2004-03-23 Roger Sayle <roger@eyesopen.com>
7556
7557 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7558 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
7559 when both A and B are nonnegative.
7560 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7561 nonzero.
7562
7563 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
7564
7565 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7566 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7567
7568 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
7569
7570 PR optimization/14669
7571 * fold-const.c (fold): Only unwiden integer comparisons for equality
7572 and inequality operators, or when the signedness doesn't change.
7573
7574 2004-03-23 Jakub Jelinek <jakub@redhat.com>
7575
7576 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7577 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7578 * config/sparc/t-linux: New file.
7579
7580 2004-03-23 Richard Sandiford <rsandifo@redhat.com>
7581
7582 * gcse.c (can_assign_to_reg_p): New function, split out from...
7583 (want_to_gcse_p): ...here.
7584 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7585 the rhs of a store.
7586
7587 2004-03-22 Diego Novillo <dnovillo@redhat.com>
7588
7589 * c-typeck.c (same_translation_unit_p): Fix pasto.
7590
7591 2004-03-22 David Edelsohn <edelsohn@gnu.org>
7592
7593 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7594 (PARAM_MAX_SCHED_REGION_INSNS): New.
7595 * sched-rgn.c: Include params.h
7596 (MAX_RGN_BLOCKS): Delete.
7597 (MAX_RGN_INSNS): Delete.
7598 (too_large): Return bool. Convert to PARAM_VALUE.
7599 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7600 * doc/invoke.texi (param): Document max-sched-region-blocks and
7601 max-sched-region-insns.
7602
7603 2004-03-22 Joel Brobecker <brobecker@gnat.com>
7604
7605 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7606 for base types.
7607
7608 2004-03-22 Joel Brobecker <brobecker@gnat.com>
7609
7610 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7611 change.
7612
7613 2004-03-22 Jakub Jelinek <jakub@redhat.com>
7614
7615 PR c/14069
7616 * c-decl.c (finish_struct): Change type of incorrect flexible array
7617 field into error_mark_node.
7618
7619 2004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
7620
7621 PR target/14580
7622 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7623 who are not local for Darwin PIC.
7624
7625 2004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
7626
7627 * regrename.c (regrename_optimize): Set regs_ever_live for all
7628 registers introduced as replacement.
7629
7630 2004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
7631
7632 PR middle-end/14470
7633 * expr.c (mark_queue): New function.
7634 (emit_insns_enqueued_after_mark): New function replacing
7635 emit_queue. Clear the body of emitted queued insns.
7636 (emit_queue): Call emit_insns_enqueued_after_mark.
7637 (store_expr): Mark the increment queue on entry. Emit
7638 only the incrementations queued when expanding the source.
7639
7640 2004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
7641
7642 * configure.ac: Allow --disable-coverage-flags (for the future benefit
7643 of top level bootstrap, and consistency). Reindent.
7644 * configure: Regenerate.
7645
7646 2004-03-21 Kazu Hirata <kazu@cs.umass.edu>
7647
7648 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7649 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7650 unnecessary casts.
7651
7652 2004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
7653
7654 PR target/14291
7655 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7656 __MINGW32__.
7657
7658 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
7659
7660 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7661 to nonimmediate_operand.
7662 ("*doloop_di"): Likewise.
7663
7664 2004-03-21 Alexandre Oliva <aoliva@redhat.com>
7665
7666 * real.h (struct real_value): Use the same type for all
7667 bitfields. Rename exp to uexp.
7668 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7669 Adjust all uses of exp...
7670 * builtins.c: ... here, ...
7671 * emit-rtl.c: ... here, and ...
7672 * real.c: ... and here.
7673
7674 2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
7675
7676 * pretty-print.c (pp_base_maybe_space): New function.
7677 * pretty-print.h (pp_base_maybe_space): Declare.
7678 (pp_maybe_space): New macro.
7679
7680 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
7681
7682 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7683
7684 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
7685
7686 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7687 of using register multiplication cost.
7688 (expand_mult): Adapt choose_mult_variant call.
7689 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7690 of MODE; pass appropriate cost bound. Adjust result when
7691 performing signed multiplication by a negative constant.
7692 Don't use intermediate modes larger than word_mode.
7693
7694 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7695
7696 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7697 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7698 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7699 * explow.c (expr_size): Likewise.
7700 * expr.h (placeholder_list, find_placeholder): Deleted.
7701 * expr.c (store_constructor): Likewise.
7702 (get_inner_reference): Likewise. Also don't call find_placeholder.
7703 (placeholder_list, find_placeholder): Deleted.
7704 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7705 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7706 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7707 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7708 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7709 Likewise.
7710 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7711 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7712 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7713 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7714 Clean up by using first_rtl_op.
7715 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7716 (substitute_placeholder_in_expr): New function.
7717 * tree.def (WITH_RECORD_EXPR): Deleted.
7718 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7719 (substitute_placeholder_in_expr): New.
7720
7721 2004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
7722
7723 * dojump.c (prefer_and_bit_test): Fix which part of
7724 the and_test is replaced.
7725
7726 2004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
7727
7728 * frontends.texi: Add missing line.
7729
7730 2004-03-21 Zack Weinberg <zack@codesourcery.com>
7731 Chris Devers <cdevers@pobox.com>
7732 Joseph S. Myers <jsm@polyomino.org.uk>
7733
7734 * doc/frontends.texi: Rewrite.
7735 * doc/gcc.texi: Update last modification date.
7736
7737 2004-03-21 Josef Zlomek <zlomekj@suse.cz>
7738
7739 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7740 message before redirecting the edge.
7741
7742 2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7743
7744 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7745 flag.
7746 * explow.c (force_not_mem): Set REG_POINTER flag according to
7747 MEM_POINTER one.
7748 * rtl.h (MEM_POINTER): New macro.
7749 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7750 for MEM_POINTER.
7751
7752 2004-03-20 Roger Sayle <roger@eyesopen.com>
7753
7754 PR target/13889
7755 * cse.c (fold_rtx): Avoid substituting constants into unary
7756 conversion operations.
7757
7758 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7759
7760 * fold-const.c (fold): Replace "expr" with "t".
7761
7762 2004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
7763
7764 PR c/12373
7765 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7766 DECL_ORIGINAL_TYPE if there isn't one.
7767
7768 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7769
7770 * fold-const.c (fold): Replace "final_type" with "type".
7771 Remove variable "final_type".
7772
7773 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7774
7775 * fold-const.c (fold): Constify "type".
7776 Replace "TREE_TYPE (t)" with "type".
7777
7778 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7779
7780 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7781 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7782 via (*targetm.foo) () with targetm.foo ().
7783
7784 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
7785
7786 PR other/14630
7787 * doc/install.texi: Add info directory category and entry.
7788
7789 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7790
7791 * fold-const.c (fold): Replace "t" with "tem" where it is used
7792 as a temporary variable. Remove "orig_t" and all of its uses.
7793
7794 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7795
7796 * fold-const.c (fold): Remove variable "invert".
7797 Move the handling of relational expressions that can be folded
7798 to a constant ...
7799 (fold_relational_const): ... here.
7800 (tree_expr_nonzero_p): New.
7801
7802 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
7803
7804 PR c/14635
7805 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7806 DEF_GCC_BUILTIN.
7807
7808 2004-03-20 Richard Sandiford <rsandifo@redhat.com>
7809
7810 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7811 (GTFILES): Add $(srcdir)/dojump.h.
7812 (gt-dojump.h): New dependency.
7813 * dojump.c (and_reg, and_test, shift_test): New static variables.
7814 (prefer_and_bit_test): New function.
7815 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7816
7817 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7818
7819 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7820 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7821 reorg.c, tree.h: Fix comment typos.
7822
7823 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
7824
7825 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7826 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7827 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7828 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7829 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7830 vmsdbgout.c: Replace calls via (*targetm.foo) () with
7831 targetm.foo ().
7832
7833 2004-03-19 Ziemowit Laski <zlaski@apple.com>
7834
7835 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7836 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7837 always_inline attribute.
7838 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7839 Treat expansion as completed even if literal argument is
7840 invalid (so that other expansions are not tried in vain).
7841
7842 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
7843
7844 * loop-doloop.c (add_test): Replace GEN_INT (0) with
7845 const0_rtx.
7846
7847 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
7848
7849 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7850 ...
7851 (fold_abs_const): ... here.
7852
7853 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7854
7855 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7856
7857 2004-03-19 Denis Chertykov <denisc@overta.ru>
7858
7859 PR target/11520
7860 * config/avr/avr.md ("call_insn"): Handle explicit integer
7861 specially.
7862 (call_value_insn): Likewise.
7863
7864 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7865
7866 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7867
7868 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
7869
7870 * fold-const.c (negate_expr): Move the handling of constants
7871 ...
7872 (fold_negate_const): ... here.
7873
7874 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7875
7876 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7877 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7878 * tree.c (debug_no_type_hash): Deleted.
7879 (type_hash_canon): Abort if passed a variant.
7880 Check lang_hooks.types.hash_types.
7881 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7882 (build_array_type): Remove unnecessary allocation of pointer type.
7883 (build_complex_type): Properly qualify resulting type.
7884
7885 2004-03-19 Paolo Bonzini <bonzini@gnu.org>
7886
7887 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7888
7889 2004-03-19 Richard Sandiford <rsandifo@redhat.com>
7890
7891 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7892 (expand_mult): ...here.
7893 (extract_high_half): New, split out from expand_mult_highpart.
7894 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
7895 (expand_highpart): Evaluate the cost of a shift/add sequence,
7896 then see if any of the specialized optabs are cheaper.
7897
7898 2004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
7899
7900 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7901
7902 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7903
7904 * convert.c (convert_to_real): Add more math builtins.
7905
7906 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7907
7908 * convert.c (convert_to_real): Reformat using switch stmt.
7909
7910 2004-03-18 Mark Mitchell <mark@codesourcery.com>
7911
7912 * c-common.c (pointer_int_sum): Do not complain about using
7913 pointers to pointers-to-members.
7914
7915 2004-03-18 Kazu Hirata <kazu@cs.umass.edu>
7916
7917 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7918 have moved to the target hooks structure".
7919
7920 2004-03-18 James E Wilson <wilson@specifixinc.com>
7921
7922 * config/mips/mips.md (type): Split move into arith and fmove. Split
7923 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
7924 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7925 Likewise.
7926 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7927 Likewise.
7928 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7929 rm7_fp_quick): Likewise.
7930 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7931 rm9k_fquick): Likewise.
7932 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7933 Likewise.
7934 (ir_sr70_icmp): Delete.
7935
7936 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7937
7938 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7939 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7940 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7941 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7942 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7943 Protect with proper check.
7944 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7945 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7946 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7947 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7948 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7949 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7950 not TYPE_FIELDS.
7951 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7952
7953 2004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
7954
7955 * gcse.c (eliminate_partially_redundant_loads): Reject change if
7956 dest is set between beginning and current insn.
7957
7958 2004-03-18 Mark Mitchell <mark@codesourcery.com>
7959
7960 * c-decl.c (grokdeclarator): Do not complain about redeclaring
7961 visible "static" identifiers "extern" in a local scope.
7962 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7963 post-increments/decrements.
7964
7965 2004-03-18 Bob Wilson <bob.wilson@acm.org>
7966
7967 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7968 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7969 (xtensa_va_start): Remove assignment to current_function_arg_words.
7970
7971 2004-03-18 Richard Sandiford <rsandifo@redhat.com>
7972
7973 * alias.c (record_set): Detect the case where a register is assigned
7974 a new value that has the same base term as the old one.
7975
7976 2004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7977
7978 * doloop.c: Removed.
7979 * loop-doloop.c: New file.
7980 * Makefile.in (doloop.o): Remove.
7981 (loop-doloop.o): New.
7982 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7983 * cfgloopanal.c (get_loop_level): New function.
7984 * loop-iv.c (iv_number_of_iterations): Handle case when loop
7985 is leaved immediatelly.
7986 * loop.c (strength_reduce): Do not call doloop optimization.
7987 * loop.h (LOOP_BCT): Removed.
7988 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7989 (rest_of_handle_loop2): Call doloop_optimize_loops.
7990 (rest_of_compilation): Test for optimizations moved to
7991 rest_of_handle_loop2.
7992
7993 2004-03-17 Fariborz Jahanian <fjahanian@apple.com>
7994
7995 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7996 for mixed mode.
7997 (rs6000_emit_prologue): Ditto.
7998 (rs6000_emit_epilogue): Ditto.
7999 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8000 macro for mixed mode.
8001
8002 2004-03-18 Jan Hubicka <jh@suse.cz>
8003
8004 * predict.c (propagate_freq): Compute correctly frequency of
8005 EXIT_BLOCK.
8006
8007 2004-03-17 Eric Christopher <echristo@redhat.com>
8008
8009 * builtins.c (apply_args_size): Use reg_raw_mode.
8010 (apply_result_size): Ditto.
8011
8012 2004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8013
8014 PR target/14620
8015 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8016
8017 2004-03-17 Jakub Jelinek <jakub@redhat.com>
8018
8019 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8020 32-bit builds when defaulting to 32-bit.
8021
8022 2004-03-17 Jan Hubicka <jh@suse.cz>
8023
8024 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8025 array.
8026
8027 2004-03-17 James E Wilson <wilson@specifixinc.com>
8028
8029 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8030 (hazard_nop): Change type to nop.
8031 (type): Split arith into arith, shift, slt, clz. Delete darith.
8032 Fix all uses. Change arith to multi if more than one insn emitted.
8033 * config/mips/5400.md (ir_vr54_arith): Likewise.
8034 * config/mips/5500.md (ir_vr55_arith): Likewise.
8035 * config/mips/7000.md (rm7_int_other): Likewise.
8036 * config/mips/9000.md (rm9k_int): Likewise.
8037 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8038
8039 2004-03-17 Joel Brobecker <brobecker@gnat.com>
8040
8041 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8042 to hold the subtype tree instead of recomputing it several times.
8043
8044 2004-03-17 Kazu Hirata <kazu@cs.umass.edu>
8045
8046 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8047 CC_INVERT.
8048 * config/mn10300/mn10300.md (cc): Remove "invert".
8049
8050 2004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8051
8052 * builtins.c (integer_valued_real_p): Add builtin rint.
8053 (fold_builtin): Likewise.
8054 * convert.c (convert_to_real): Likewise.
8055
8056 * convert.c (convert_to_real): Fix typos in `long double'
8057 builtins.
8058
8059 2004-03-16 Mark Mitchell <mark@codesourcery.com>
8060
8061 PR c++/14481
8062 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8063 generated COMPOUND_EXPRs.
8064
8065 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8066
8067 * config/h8300/t-rtems (h8300-*-rtems*): New.
8068
8069 2004-03-16 Eric Christopher <echristo@redhat.com>
8070
8071 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8072
8073 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
8074
8075 * config/i386/i386-protos.h: Add a prototype for
8076 ix86_reverse_condition.
8077 * config/i386/i386.c (ix86_reverse_condition): New.
8078 * config/i386/i386.h (REVERSE_CONDITION): Use
8079 ix86_reverse_condition.
8080 * config/i386/i386.md: Use ix86_reverse_condition instead of
8081 REVERSE_CONDITION.
8082
8083 2004-03-16 J. Brobecker <brobecker@gnat.com>
8084
8085 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8086
8087 2004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
8088
8089 PR bootstrap/12974
8090 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8091
8092 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
8093
8094 * c-common.c (c_common_type_for_mode): Build vector types on
8095 demand.
8096 (handle_mode_attribute): Deprecate using the mode attribute
8097 to create vector types. Fix indentation.
8098 (vector_type_node_list): Remove.
8099 (handle_vector_size_attribute): Create vector types on demand.
8100 Strip a NON_LVALUE_EXPR from the attribute if there is one.
8101 * c-typeck.c (comptypes): Make vector types compatible if they
8102 have the same underlying mode.
8103 (convert_for_assignment): Use comptypes to convert between
8104 vector types.
8105 * tree.c (build_common_tree_nodes_2): Do not create vector types.
8106 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8107 vector types.
8108 * tree.h: Remove vector types.
8109 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8110 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8111 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8112 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8113 * doc/extend.texi (Vector Types): Document how to use the
8114 vector_size attribute to create vectors, rather than mode.
8115
8116 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8117 * config/i386/emmintrin.h: Likewise.
8118 * config/i386/mmintrin.h: Likewise.
8119 * config/i386/xmmintrin.h: Likewise.
8120 * config/sh/ushmedia.h: Likewise.
8121
8122 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
8123
8124 * config/freebsd-spec.h, config/arc/arc-protos.h,
8125 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8126 config/arm/linux-gas.h, config/arm/semi.h,
8127 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8128 config/ia64/freebsd.h, config/mips/7000.md,
8129 config/mips/9000.md, config/ns32k/ns32k-protos.h,
8130 config/sparc/pbd.h: Update copyright.
8131
8132 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8133
8134 PR target/14577
8135 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
8136
8137 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
8138
8139 * combine.c (combine_simplify_rtx): Remove the "last"
8140 parameter and its documentation. Adjust recursive calls.
8141 (simplify_logical): Always perform the only simplification
8142 controlled by "last", if the simplified expression is
8143 actually different.
8144 (try_combine): Do not pass the "last" parameter to
8145 combine_simplify_rtx.
8146
8147 2004-03-16 Richard Sandiford <rsandifo@redhat.com>
8148
8149 PR target/14599
8150 * config/mips/mips.md (UNSPEC_GP): New constant.
8151 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8152 an UNSPEC instead of (reg $gp).
8153 (mips16_gp_pseudo_reg): Change accordingly.
8154 (print_operand): Print $gp directly when handling CONST_GP_P.
8155
8156 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
8157
8158 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8159 * longlong.h: Make code 68060 clean when compiling for m68060.
8160
8161 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
8162
8163 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8164 * doc/md.texi: Clarify description of "i" constraint.
8165
8166 2004-03-15 James E Wilson <wilson@specifixinc.com>
8167
8168 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8169 Split store into store, fpstore, fpidxstore. Fix all uses.
8170 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8171 Likewise.
8172 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8173 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8174 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8175 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8176 ir_sr70_fstore): Likewise.
8177
8178 2004-03-15 Richard Henderson <rth@redhat.com>
8179
8180 PR middle-end/14535
8181 * except.c (collect_one_action_chain): Record action for cleanup
8182 outer of exception spec.
8183
8184 2004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
8185
8186 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8187 Fix the check for abort and only do the mmap if we can.
8188
8189 2004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
8190
8191 * config/sparc/sparc.h: Rework comments about the code model
8192 in 64-bit environment and the mode 'Pmode'.
8193 * doc/invoke.texi (SPARC options): Rework description of the
8194 different code models supported in 64-bit environment.
8195
8196 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
8197
8198 * defaults.h (REVERSIBLE_CC_MODE): Define.
8199 * jump.c (reversed_comparison_code_parts): Don't check if
8200 REVERSIBLE_CC_MODE is defined.
8201
8202 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
8203
8204 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8205 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8206 hosthooks.h, params.h, ra-colorize.c, web.c,
8207 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8208 config/avr/avr-protos.h, config/avr/avr.md,
8209 config/fr30/fr30-protos.h, config/fr30/fr30.md,
8210 config/h8300/fixunssfsi.c, config/i386/darwin.h,
8211 config/i386/freebsd.h, config/i386/freebsd64.h,
8212 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8213 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8214 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8215 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8216 config/pa/pa64-regs.h, config/rs6000/aix41.h,
8217 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8218 config/sparc/aout.h, config/sparc/freebsd.h,
8219 config/sparc/litecoff.h, config/vax/vax-protos.h,
8220 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8221 copyright.
8222
8223 2004-03-15 Paul Brook <paul@codesourcery.com>
8224
8225 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8226
8227 2004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
8228
8229 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8230 (pp_c_cv_qualifier): Document.
8231 (pp_c_space_for_pointer_operator): Likewise.
8232 (pp_c_integer_constant): Likewise.
8233 (pp_c_identifier): Likewise.
8234 (pp_c_init_declarator): Don't print function body.
8235
8236 2004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
8237
8238 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8239 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8240 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8241 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
8242 wording and grammar.
8243
8244 2004-03-14 Roger Sayle <roger@eyesopen.com>
8245
8246 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8247 with lang_hooks.foo ().
8248 * builtins.c (expand_builtin_va_arg): Likewise.
8249 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8250 c_common_type_for_mode, c_common_nodes_and_builtins,
8251 handle_mode_attribute, handle_vector_size_attribute): Likewise.
8252 * c-convert.c (convert): Likewise.
8253 * c-format.c (check_format_types): Likewise.
8254 * c-objc-common.c (c_tree_printer): Likewise.
8255 * c-typeck.c (build_unary_op, build_conditional_expr,
8256 build_binary_op): Likewise.
8257 * calls.c (try_to_integrate, expand_call,
8258 emit_library_call_value_1): Likewise.
8259 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8260 Likewise.
8261 * cgraphunit.c (record_call_1, cgraph_analyze_function,
8262 cgraph_expand_function): Likewise.
8263 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8264 * coverage.c (build_fn_info_type, build_ctr_info_type,
8265 build_gcov_info, create_coverage): Likewise.
8266 * dbxout.c (dbxout_init): Likewise.
8267 * diagnostic.c (diagnostic_report_current_function): Likewise.
8268 * dojump.c (do_jump): Likewise.
8269 * dwarf2out.c (dwarf2_name): Likewise.
8270 * except.c (init_eh): Likewise.
8271 * explow.c (expr_size, int_expr_size): Likewise.
8272 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8273 Likewise.
8274 * expr.c (store_expr, store_constructor, safe_from_p,
8275 expand_expr_real, do_store_flag, try_casesi): Likewise.
8276 * function.c (push_function_context_to, pop_function_context_from,
8277 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8278 put_var_into_stack, allocate_struct_function, current_function_name):
8279 Likewise.
8280 * integrate.c (copy_decl_for_inlining, expand_inline_function):
8281 Likewise.
8282 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8283 lhd_print_error_function): Likewise.
8284 * opts.c (handle_option, decode_options): Likewise.
8285 * passes.c (open_dump_file): Likewise.
8286 * print-tree.c (print_node): Likewise.
8287 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8288 expand_decl_cleanup, emit_case_nodes): Likewise.
8289 * stor-layout.c (variable_size): Likewise.
8290 * toplev.c (announce_function, wrapup_global_declarations,
8291 check_global_declarations, compile_file, default_tree_printer,
8292 process_options, lang_dependent_init, finalize): Likewise.
8293 * tree-dump.c (dequeue_and_dump): Likewise.
8294 * tree-inline.c (remap_decl, remap_block, copy_body_r,
8295 initialize_inlined_parameters, declare_return_variable,
8296 inlinable_function_p, expand_call_inline, optimize_inline_calls,
8297 walk_tree, copy_tree_r): Likewise.
8298 * tree-optimize.c (tree_rest_of_compilation): Likewise.
8299 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8300 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8301 variably_modified_type_p, dump_tree_statistics): Likewise.
8302 * varasm.c (assemble_variable, compare_constant, copy_constant,
8303 force_const_mem, compute_reloc_for_constant, output_constant,
8304 output_addressed_constants, initializer_constant_valid_p): Likewise.
8305
8306 2004-03-14 Kelley Cook <kcook@gcc.gnu.org>
8307
8308 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8309
8310 2004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
8311
8312 * doc/install.texi: Reflect autoconf and automake version for
8313 libffi. Update autoconf version to 2.59.
8314
8315 2004-03-13 Roger Sayle <roger@eyesopen.com>
8316
8317 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8318 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8319 make_range, build_range_check, fold_range_test, unextend,
8320 constant_boolean_node, fold_binary_op_with_conditional_arg,
8321 fold_truthop, fold_mathfn_compare, fold_inf_compare,
8322 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8323 with lang_hooks.foo ().
8324
8325 2004-03-14 Richard Earnshaw <rearnsha@arm.com>
8326
8327 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8328
8329 2004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
8330
8331 * doc/install.texi: Note status of -fnew-ra.
8332
8333 2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
8334
8335 PR middle-end/14470
8336 * expr.c (store_expr): Call emit_queue before generating the move
8337 from the temporary to the original target. Protect the temporary
8338 from emit_queue.
8339
8340 2004-03-13 Jakub Jelinek <jakub@redhat.com>
8341
8342 PR target/14533
8343 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8344 other than UNSPEC_GOTOFF.
8345
8346 2004-03-13 Richard Earnshaw <rearnsha@arm.com>
8347
8348 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
8349 to arm_legitimate_index_p. Update all callers with SET as default
8350 value.
8351 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
8352 range if OUTER is a sign-extend operation on QImode. Correctly
8353 reject shift operations on sign-extended QImode addresses.
8354 (bad_signed_byte_operand): Delete.
8355 (arm_extendqisi_mem_op): New function.
8356 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
8357 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
8358 constraints.
8359 (CONSTRAINT_LEN): New.
8360 (EXTRA_CONSTRAINT): Delete. Replace with...
8361 (EXTRA_CONSTRAINT_STR): ... this.
8362 (PREDICATE_CODES): Remove bad_signed_byte_operand.
8363 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
8364 is now always default.
8365 (define_splits for bad sign-extend loads): Delete.
8366 (arm_extendqisi, arm_extendqisi_v5): Likewise.
8367 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8368 Rework 'U' constraint to 'Uv'.
8369 * arm-protos.h: Remove bad_signed_byte_operand. Add
8370 arm_extendqisi_mem_op.
8371 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8372 Add Uq constraint.
8373
8374 2004-03-13 Alan Modra <amodra@bigpond.net.au>
8375
8376 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8377 with targetm version.
8378
8379 PR target/14567
8380 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8381 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8382 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8383 Update all users of RS6000_ARG_SIZE.
8384 (function_arg_advance): Count fregno using mode size.
8385 (function_arg): Handle long double split over regs and memory.
8386 (function_arg_partial_nregs): Likewise.
8387 (rs6000_va_arg): Repackage complex args.
8388
8389 2004-03-13 Dean Ferreyra <dferreyra@igc.org>
8390
8391 PR target/14047
8392 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8393 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8394 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8395
8396 2004-03-12 Jakub Jelinek <jakub@redhat.com>
8397
8398 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8399 prototype.
8400 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8401 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8402
8403 2003-03-12 Andrew Pinski <apinski@apple.com>
8404
8405 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8406 Use ret instead of result. Use addr instead of base.
8407
8408 2004-03-12 David Edelsohn <edelsohn@gnu.org>
8409
8410 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8411 fixes required by libstdc++ and update installation instructions
8412 for libstdc++.a.
8413
8414 2004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
8415
8416 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8417 leading '@' on fastcall symbols before stripping suffix.
8418
8419 2004-03-12 Roger Sayle <roger@eyesopen.com>
8420
8421 * combine.c (unmentioned_reg_p): New function to check whether an
8422 expression is a "specialization" of another, i.e. that there are
8423 no registers or memory references mentioned in the first that don't
8424 appear in the second.
8425 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8426 (combine_instructions): Also try combining instructions using the
8427 REG_EQUAL note from a preceding log-linked instruction.
8428
8429 2004-03-12 Roger Sayle <roger@eyesopen.com>
8430
8431 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8432
8433 2004-03-12 Matt Austern <austern@apple.com>
8434
8435 * target.h (struct gcc_target): New target hook, unwind_label.
8436 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8437 * output.h (default_emit_unwind_label): New function.
8438 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8439 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8440 (TARGET_SUPPORTS_HIDDEN): New target macro.
8441 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8442 that corresponds to this FDE.
8443 (FRAME_BEGIN_LABEL): Allow target to override default label.
8444 (output_call_frame_info): If FDEs are linknonce, then use extra
8445 indirection for FDE encoding, output a label for each FDE, and
8446 output an empty label for each function without an FDE.
8447 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8448 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8449 decls with DECL_ONE_ONLY set, if that macro is defined.
8450 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8451 for a SUPPORTS_ONE_ONLY target.
8452 * config/darwin-protos.h (darwin_unique_section): Declare.
8453 (darwin_asm_named_section): Likewise.
8454 (darwin_section_type_flags): Likewise.
8455 (darwin_non_lazy_pcrel): Likewise.
8456 (darwin_emit_unwind_label): Likewise.
8457 (darwin_make_decl_one_only): Likewise.
8458 * config/darwin.c (machopic_finish): Get rid of tweak that
8459 eliminate stubs for symbols that are defined.
8460 (darwin_encode_section_info): Don't treat weak functions as defined.
8461 (darwin_make_decl_one_only): Define.
8462 (darwin_asm_named_section): Likewise.
8463 (darwin_section_type_flags): Likewise.
8464 (darwin_unique_section): Likewise.
8465 (darwin_emit_unwind_label): Likewise.
8466 (darwin_non_lazy_pcrel): Likewise.
8467 (darwin_asm_output_dwarf_delta): Difference between two labels is
8468 local only if both labels are local.
8469 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8470 (ASM_MAKE_LABEL_LINKONCE): Likewise.
8471 (TARGET_SUPPORTS_HIDDEN): Likewise.
8472 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8473 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8474 (FRAME_BEGIN_LABEL): Likewise.
8475 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8476 (ASM_DECLARE_FUNCTION_NAME): Likewise.
8477 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8478 (TARGET_ASM_UNIQUE_SECTION): Define.
8479 (EH_FRAME_SECTION_NAME): Define.
8480 (EH_FRAME_SECTION_ATTR): Likewise.
8481 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8482 (TARGET_ASM_NAMED_SECTION): Likewise.
8483 (TARGET_SECTION_TYPE_FLAGS): Likewise.
8484 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8485 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8486 TARGET_ASM_EMIT_UNWIND_LABEL.
8487
8488 2004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8489
8490 * builtins.c (expand_builtin_mathfn): Add pow10* to the
8491 existing exp10* case.
8492 (expand_builtin): Likewise.
8493
8494 2004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
8495
8496 * doc/tm.texi (registers) <Values in Registers>: Add
8497 entry for REGMODE_NATURAL_SIZE.
8498
8499 2004-03-12 Richard Henderson <rth@redhat.com>
8500
8501 PR target/14547
8502 * target.h (struct gcc_target): Move calls substructure before
8503 booleans. Add split_complex_arg.
8504 * function.c (assign_parms, split_complex_args): Use it.
8505 * calls.c (expand_call): Likewise.
8506 (split_complex_values): Likewise. Check for splittable types
8507 before allocating memory.
8508 (split_complex_types): Likewise.
8509 * system.h (SPLIT_COMPLEX_ARGS): Poison.
8510 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8511 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8512 * config/alpha/alpha.c (alpha_split_complex_arg): New.
8513 (TARGET_SPLIT_COMPLEX_ARG): New.
8514 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8515 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8516 (rs6000_override_options): Zap it for non-AIX.
8517 (rs6000_function_value): Use targetm.calls.split_complex_arg.
8518 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8519 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8520 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8521 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8522 SPLIT_COMPLEX_ARGS entry.
8523
8524 2004-03-11 Richard Henderson <rth@redhat.com>
8525
8526 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8527 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8528 (alpha_emit_xfloating_arith): Update to match.
8529 (alpha_emit_xfloating_compare): Likewise.
8530 (alpha_emit_xfloating_cvt): Likewise.
8531 (alpha_emit_xfloating_libcall): Take already built symbol,
8532 mark call const.
8533 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8534 op1 in a register.
8535
8536 2004-03-11 Richard Henderson <rth@redhat.com>
8537
8538 PR target/14539
8539 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8540
8541 * simplify-rtx.c (simplify_relational_operation): Fix typo.
8542
8543 2004-03-11 Richard Henderson <rth@redhat.com>
8544
8545 PR middle-end/14477
8546 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8547
8548 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
8549
8550 PR target/14262
8551 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8552 defined, pass small BLKmode values in registers in the low-order part.
8553
8554 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
8555
8556 * combine.c (if_then_else_cond): Check for NULL return value of
8557 simplify_gen_subreg.
8558
8559 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
8560
8561 PR target/14496
8562 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8563 TARGET_SINGLE_FLOAT.
8564
8565 2004-03-11 Steve Ellcey <sje@cup.hp.com>
8566
8567 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8568 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8569 * config/ia64/ia64.c (ia64_init_libfuncs): New.
8570 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8571
8572 2004-03-11 Roger Sayle <roger@eyesopen.com>
8573
8574 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8575 -((int)X>>C) where C is an integer constant one bit less than the
8576 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
8577 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8578
8579 * simplify-rtx.c (simplify_unary_operation): Also implement the
8580 above transformations at the RTL level.
8581
8582 2004-03-11 Alan Modra <amodra@bigpond.net.au>
8583
8584 * real.c (encode_ibm_extended): Do round low word.
8585
8586 2004-03-11 Ben Elliston <bje@wasabisystems.com>
8587
8588 * config/arm/arm.md (is_xscale): Comment this attribute and move
8589 it a bit further up in the file, closer to related attributes.
8590
8591 2004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
8592
8593 * config/host-solaris.c (sol_gt_pch_use_address): Add
8594 missing terminating marker to comment.
8595
8596 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
8597
8598 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8599 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8600 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8601 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
8602 move_operand as source predicate in all cases.
8603 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
8604 Test reg_or_0_operand. Use move_operand as source predicate.
8605 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
8606 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8607 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
8608 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8609 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
8610 Use move_operand as source predicate. Remove 'K' constraint.
8611 (*movqi_internal): Likewise movqi_internal.
8612 (*movsf_hardfloat): Renamed from movsf_internal1. Test
8613 reg_or_0_operand. Use move_operand as source predicate.
8614 (*movsf_softfloat): Likewise movsf_internal2.
8615 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8616 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8617 (*movdf_softfloat): Likewise movdf_internal2.
8618 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8619 for DImode if !TARGET_64BIT.
8620 (mips_legitimize_move): Simplify accordingly.
8621
8622 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
8623
8624 PR/14362
8625 * var-tracking.c (struct variable_def): Added field refcount.
8626 (variable_htab_free): Decrease the refcount and delete variable
8627 only if there are no more references.
8628 (unshare_variable): New function.
8629 (vars_copy_1): Increase refcount instead of copying the variable.
8630 (variable_union): Share the variables where possible, unshare
8631 the variables if needed.
8632 (variable_different_p): Return false if var1 and var2 are
8633 the same structure.
8634 (variable_was_changed): Init the refcount of new variable.
8635 (set_frame_base_location): Unshare variable if needed.
8636 (set_variable_part): Init the refcount of new variable.
8637 Unshare the variables if needed.
8638 (delete_variable_part): Unshare the variables if needed.
8639 (emit_notes_for_differences_1): Init the refcount of new variable.
8640 (vt_add_function_parameters): Do not add function parameters to
8641 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8642 (vt_initialize): Do not add frame_base_decl to IN set of
8643 ENTRY_BLOCK_PTR because it is unused anyway.
8644
8645 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
8646
8647 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8648 (vars_copy): Likewise.
8649 (variable_union): Likewise.
8650 (set_variable_part): Likewise.
8651 (delete_variable_part): Likewise.
8652
8653 2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
8654
8655 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8656 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8657 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8658 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8659 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8660 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8661 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8662 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8663 config/stormy16/stormy16.c: Fix comment typos and formatting.
8664
8665 2004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
8666
8667 * configure: Regenerate, since I forgot to while committing Paolo's
8668 changes.
8669
8670 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
8671
8672 PR ada/14131
8673 Move language detection to the top level.
8674 * configure.ac: Remove code to detect languages,
8675 it now lives exclusively in the top level.
8676 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8677 top level, renamed to ACX_PROG_GNAT.
8678
8679 2004-03-10 Richard Henderson <rth@redhat.com>
8680
8681 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8682 extra arguments.
8683 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8684 and host_xmake_file fragments.
8685 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8686 (gt_pch_restore): Similarly for gt_pch_use_address.
8687 (default_gt_pch_get_address): New.
8688 (mmap_gt_pch_get_address): Split out of gt_pch_save.
8689 (default_gt_pch_use_address): Split out of gt_pch_restore.
8690 (mmap_gt_pch_use_address): Likewise.
8691 * hooks.c (hook_voidp_size_t_null): Remove.
8692 (hook_bool_voidp_size_t_false): Remove.
8693 * hooks.h: Likewise.
8694 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8695 default_ or mmap_ definitions.
8696 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8697 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8698 and gt_pch_use_address.
8699 * config/host-linux.c, config/host-solaris.c: New files.
8700 * config/x-linux, config/x-solaris: New files.
8701 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8702 Update for changed definition.
8703 (darwin_rs6000_gt_pch_use_address): Likewise.
8704 * doc/hostconfig.texi: Update docs.
8705
8706 2004-03-10 Richard Henderson <rth@redhat.com>
8707
8708 PR c/14517
8709 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8710 except for pedantic c90 mode.
8711
8712 2004-03-10 Kelley Cook <kcook@gcc.gnu.org>
8713
8714 * configure.ac: Bump AC_PREREQ to 2.59.
8715 * configure: Regenerate.
8716
8717 2004-03-10 Uros Bizjak <uros@kss-loka.si>
8718
8719 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8720 (exp10_optab, exp2_optab): Define corresponding macros.
8721 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8722 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8723 using exp10?f2 and exp2?f2 patterns.
8724 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8725 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8726 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8727 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8728
8729 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8730 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8731 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8732
8733 2004-03-10 Anthony Green <green@redhat.com>
8734
8735 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8736
8737 2004-03-10 David Edelsohn <edelsohn@gnu.org>
8738
8739 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8740 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
8741 __LONGDOUBLE128.
8742 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8743 TARGET_OS_AIX_CPP_BUILTINS.
8744 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8745 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8746 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8747 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8748 previous change.
8749
8750 2004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8751
8752 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8753
8754 2004-03-10 David Edelsohn <edelsohn@gnu.org>
8755
8756 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8757 __LONGDOUBLE128 on AIX.
8758
8759 2004-03-10 Andrew Haley <aph@redhat.com>
8760
8761 PR optimization/14381
8762 * function.c (expand_function_end): Emit a blockage insn before
8763 the epilogue when -fnon-call-exceptions is used.
8764
8765 * except.c (expand_start_all_catch): Make comment more accurate.
8766
8767 2004-03-08 Joel Sherrill <joel@oarcorp.com>
8768
8769 PR target/14480
8770 * config/rs6000/t-rtems: Add missing file on branch.
8771
8772 2004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
8773
8774 * dbxout.c (dbxout_symbol_location): Do not output references
8775 to optimized-out constant pool symbols.
8776
8777 2004-03-10 Andreas Schwab <schwab@suse.de>
8778
8779 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8780 twon34_r.
8781
8782 2004-03-09 James E Wilson <wilson@specifixinc.com>
8783
8784 * alias.c (alias_sets_might_conflict_p): New.
8785 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8786 * common.opt (Wstrict-aliasing=): New.
8787 * flags.h (warn_strict_aliasing): Change type to int.
8788 * opts.c (warn_strict_aliasing): Change type to int.
8789 (common_handle_option): Handle OPT_Wstrict_aliasing_.
8790 * tree.h (alias_sets_might_conflict_p): Declare it.
8791 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8792
8793 2004-03-10 Roman Zippel <zippel@linux-m68k.org>
8794
8795 PR bootstrap/12371
8796 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8797 (CALL_USED_REGISTERS): Likewise.
8798 (REG_CLASS_CONTENTS): Likewise.
8799 (REG_ALLOC_ORDER): New.
8800 (REGNO_REG_CLASS): Use regno_reg_class.
8801 * config/m68k/m68k.c: Add regno_reg_class array.
8802
8803 2004-03-09 Steve Ellcey <sje@cup.hp.com>
8804
8805 * config/ia64/ia64.md (divsi3): Fix algorithm.
8806 (udivsi3): Ditto.
8807 (setf_exp_xf): Remove '*' from name.
8808 * testsuite/gcc.dg/20040309-1.c: New test.
8809
8810 2004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
8811
8812 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8813 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8814 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8815 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8816 (sparc_aout_select_rtx_section): Don't check
8817 SUNOS4_SHARED_LIBRARIES.
8818 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8819
8820 2004-03-10 Hans-Peter Nilsson <hp@axis.com>
8821
8822 PR other/14474
8823 * doc/md.texi (Pattern Ordering, Dependent Patterns)
8824 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8825 INTERNALS".
8826
8827 2004-03-09 Zack Weinberg <zack@codesourcery.com>
8828
8829 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8830 (LIBGCC_SPEC): Update to match.
8831
8832 2004-03-09 Zack Weinberg <zack@codesourcery.com>
8833
8834 * c-decl.c (last_function_parms, last_function_parm_tags)
8835 (last_function_parm_others, current_function_parms)
8836 (current_function_parm_tags, current_function_parm_others):
8837 Delete.
8838 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8839 New macros.
8840 (grokdeclarator): For function definitions, save the arg-info
8841 block from the declarator in DECL_ARGUMENTS.
8842 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
8843 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
8844 contains only PARM_DECLs. Improve diagnostics.
8845 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
8846 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
8847 (store_parm_decls_newstyle): Take the function to operate on,
8848 and an arg-info block, as arguments; don't get anything from
8849 current_function_* globals.
8850 (store_parm_decls_oldstyle): Likewise.
8851 (store_parm_decls): Pass fndecl and its arg-info block down to
8852 store_parm_decls_newstyle/oldstyle. Send functions with empty
8853 argument lists through store_parm_decls_newstyle to reduce
8854 overhead.
8855 (pushdecl): Comment on the problems with the call to copy_node.
8856 Clear DECL_ARGUMENTS of the old node after copying it, if it
8857 is an arg-info block instead of a chain of decls.
8858 (start_function): Do not manipulate current_function_parm* or
8859 last_function_parm*.
8860
8861 2004-03-09 Roger Sayle <roger@eyesopen.com>
8862 Andrew Pinski <pinskia@physics.uc.edu>
8863
8864 * ifcvt.c (noce_try_sign_mask): New function to transform
8865 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8866 (noce_process_if_block): Call noce_try_sign_mask.
8867
8868 2004-03-09 Andrew Pinski <apinski@apple.com>
8869
8870 * c-typeck.c (tagged_types_tu_compatible_p):
8871 Fix typo.
8872
8873 2004-03-09 Roger Sayle <roger@eyesopen.com>
8874
8875 * simplify-rtx.c (simplify_const_relational_operation): New function
8876 renamed from simplify_relational_operation.
8877 (simplify_relational_operation): Change prototype to accept an
8878 additional mode argument. Call simplify_const_relational_operation.
8879 (simplify_gen_relational): Update simplify_relational_operation call.
8880 (simplify_ternary_operation): Update simplify_relational_operation
8881 subroutine call to use simplify_const_relational_operation instead.
8882
8883 * rtl.h (simplify_const_relational_operation): Prototype here.
8884 (simplify_relational_operation): Add addtional mode argument.
8885
8886 * combine.c (combine_simplify_rtx): Update calls to
8887 simplify_relational_operation.
8888 (simplify_set): Likewise.
8889 (gen_binary): Likewise.
8890 * cse.c (fold_rtx): Likewise.
8891 * dojump.c (compare_from_rtx): Likewise.
8892 (do_compare_rtx_and_jump): Likewise.
8893 * integrate.c (subst_constants): Likewise.
8894 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8895
8896 2004-03-09 Kazu Hirata <kazu@cs.umass.edu>
8897
8898 * config/m32r/m32r.md: Remove all define_peephole's.
8899
8900 2004-03-09 Alan Modra <amodra@bigpond.net.au>
8901
8902 * config/rs6000/rs6000.md: Remove trailing whitespace.
8903
8904 2004-03-08 Eric Christopher <echristo@redhat.com>
8905
8906 * Makefile.in (site.exp): Add libiconv variable definition.
8907
8908 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
8909
8910 * configure: Regenerate for config/accross.m4 correction.
8911
8912 2004-03-08 Joel Sherrill <joel@oarcorp.com>
8913
8914 PR target/14480
8915 * config/rs6000/t-rtems: Add missing file on branch.
8916
8917 2004-03-08 Roger Sayle <roger@eyesopen.com>
8918
8919 PR middle-end/14289
8920 * c-typeck.c (c_mark_addressable): A register variable should
8921 be considered global if its not automatic, i.e. TREE_PUBLIC,
8922 TREE_STATIC or DECL_EXTERNAL.
8923 * function.c (put_var_into_stack): Call abort when placing a
8924 hard register into the stack, if x_parm_reg_stack_loc is NULL.
8925
8926 2004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
8927
8928 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8929 ("*extendqisi2_short_displ"): Likewise.
8930
8931 2004-03-08 Kazu Hirata <kazu@cs.umass.edu>
8932
8933 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8934 (comp_operator): Likewise.
8935 * config/pdp11/pdp11-protos.h: Remove corresponding
8936 prototypes.
8937
8938 2004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
8939
8940 * expr.c (highest_pow2_factor_for_type): Rename into
8941 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
8942 TYPE_ALIGN when the target is a COMPONENT_REF.
8943 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8944
8945 2004-03-08 Alan Modra <amodra@bigpond.net.au>
8946
8947 * config/rs6000/rs6000.c: Formatting fix.
8948 (legitimate_offset_address_p): Correct offset range check.
8949
8950 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8951 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
8952 and MASK_STRING.
8953
8954 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
8955
8956 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8957 for little endian.
8958 ("ashrdi3_no_power"): Disable for little endian.
8959 (ashrdi3): Same.
8960
8961 2004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8962
8963 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8964 builtins.
8965
8966 2004-03-08 Hans-Peter Nilsson <hp@axis.com>
8967
8968 PR target/14471
8969 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8970 case, checking for -no-mul-bug-abort option.
8971 * configure, config.in: Regenerate.
8972 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8973 and -mno-mul-bug-workaround.
8974 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8975 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8976 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8977 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
8978 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8979 sure mulu.d is not last on cache-line.
8980 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8981 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8982 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8983 (TARGET_SWITCHES): New options -mmul-bug-workaround and
8984 -mno-mul-bug-workaround.
8985 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8986 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8987 * config/cris/cris.c (cris_operand_extend_operator): Clarify
8988 relation to MULT in head comment.
8989 (cris_op_str): Abort for MULT.
8990 (cris_print_operand) <case '!'>: New case.
8991
8992 2004-03-08 Alan Modra <amodra@bigpond.net.au>
8993
8994 PR debug/11983
8995 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8996 dw_val_class_vec. Replace use throughout file.
8997 (dw_float_const): Delete.
8998 (dw_vec_const): New.
8999 (dw_val_struct_union): Rename val_float to val_vec. Replace use
9000 throughout file.
9001 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
9002 (same_dw_val_p): Adjust vec comparison. Use memcmp.
9003 (size_of_die): Adjust dw_val_class_vec sizing.
9004 (output_die): Output dw_val_class_vec.
9005 (insert_int, extract_int, insert_float): New functions.
9006 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9007 Handle CONST_VECTOR.
9008 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9009
9010 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
9011
9012 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9013 AltiVec abi cannot co-exist.
9014
9015 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9016
9017 2004-03-07 Jan Hubicka <jh@suse.cz>
9018
9019 * except.c (emit_to_new_bb_before): Break fallthru edges.
9020
9021 2004-03-07 Stephane Carrez <stcarrez@nerim.fr>
9022
9023 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9024 ("*lshrsi3"): Also accept an immediate for 68HC12.
9025 ("*ashrsi3_const"): Likewise.
9026 ("*ashrsi3"): Likewise.
9027 ("*ashlsi3_const"): Likewise.
9028 ("*ashlsi3"): Likewise.
9029 ("cmphi_1_hc12"): Compare two hard register by pushing them and
9030 comparing with a pop; don't use a split for that.
9031 ("cmphi split"): Disable compare split for 68HC12.
9032
9033 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9034 the status operands if they have side effects.
9035
9036 2004-03-07 Kazu Hirata <kazu@cs.umass.edu>
9037
9038 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9039 definition.
9040 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9041 config/h8300/h8300.h, config/ia64/ia64.h,
9042 config/mcore/mcore.h, config/mmix/mmix.h,
9043 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9044 config/stormy16/stormy16.h, config/v850/v850.h,
9045 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9046 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9047 definition.
9048
9049 2004-03-07 Roger Sayle <roger@eyesopen.com>
9050
9051 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9052 <XOR_EXPR>: Fold x ^ x as zero.
9053 <AND_EXPR>: Fold x & x as x.
9054
9055 2004-03-07 Roger Sayle <roger@eyesopen.com>
9056
9057 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9058 "foo++ == const" into "++foo == const+incr".
9059
9060 2004-03-07 Richard Sandiford <rsandifo@redhat.com>
9061
9062 * config/mips/mips.c (mips_in_small_data_p): Return false if
9063 TARGET_ABICALLS.
9064
9065 2004-03-06 Stephane Carrez <stcarrez@nerim.fr>
9066
9067 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9068 the stack register.
9069 (expand_prologue): Don't make an interrupt or a trap handler a far
9070 symbol.
9071 (m68hc11_initial_elimination_offset): Likewise.
9072
9073 2004-03-06 Richard Henderson <rth@redhat.com>
9074
9075 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9076
9077 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
9078
9079 * config/ns32k/ns32k-protos.h: Add a prototype for
9080 ns32k_notice_update_cc.
9081 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9082 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9083 ns32k_notice_update_cc.
9084
9085 2004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
9086
9087 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9088 "*load_multiple_si"): Allow only if reload_completed.
9089 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9090 Likewise.
9091
9092 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
9093
9094 * config/vax/vax-protos.h: Add a prototype for
9095 vax_notice_update_cc.
9096 * config/vax/vax.c (vax_notice_update_cc): New.
9097 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9098 vax_notice_update_cc.
9099
9100 2004-03-06 David Edelsohn <edelsohn@gnu.org>
9101
9102 * collect2.c (main): Only export initfunc and finifunc if
9103 LD_INIT_SWITCH not defined.
9104 (scan_prog_file): Only export constructors and destructors if
9105 LD_INIT_SWITCH not defined. Only export symbols not found in
9106 shared objects.
9107
9108 2004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9109
9110 * pa.md (icacheflush): Reorder operands to make match_scratch operand
9111 last.
9112 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9113 from calls to gen_icacheflush.
9114
9115 2004-03-06 Richard Henderson <rth@redhat.com>
9116
9117 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9118 (TARGET_LONG_DOUBLE_128): New.
9119 (TARGET_SWITCHES): Add long-double-{128,64}.
9120 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9121 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9122 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9123 (WIDEST_HARDWARE_FP_SIZE): New.
9124 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9125 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9126 if TARGET_VAX_FLOAT.
9127 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9128 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9129
9130 2004-03-06 Richard Henderson <rth@redhat.com>
9131
9132 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9133 botched rtx class conversion.
9134
9135 2004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9136
9137 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9138 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9139
9140 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9141 macros.
9142 * fold-const.c (fold_mathfn_compare, fold): Likewise.
9143
9144 2004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
9145
9146 PR target/14343
9147 * config/i386/i386.md (movv2di_internal): Conditionalize on
9148 TARGET_SSE, not TARGET_SSE2.
9149
9150 2004-03-05 Chris Demetriou <cgd@broadcom.com>
9151
9152 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9153 duplicated line.
9154
9155 2004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9156
9157 * builtins.c: Consistently use logN not log* in comments.
9158
9159 2004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
9160
9161 * rtl.h (mem_expr_equal_p): Function prototype added.
9162 * cfgcleanup.c (merge_memattrs): New function.
9163 (flow_find_cross_jump): Call merge_memattrs for matching insns.
9164 * emit-rtl.c (mem_expr_equal_p): New function.
9165
9166 2004-03-05 Ziemowit Laski <zlaski@apple.com>
9167
9168 * objc/objc-act.c (synth_module_prologue): Const-qualify
9169 objc_selector type if using the GNU runtime; fix generated
9170 signatures for objc_msg_lookup and objc_msg_lookup_super
9171 to match what GNU ObjC headers provide; reformat and clean up.
9172 (synth_self_and_ucmd_args): Use previously constructed (and
9173 hence possibly const-qualified) objc_selector type.
9174
9175 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
9176
9177 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9178
9179 2004-03-05 Jason Merrill <jason@redhat.com>
9180
9181 * tree.h (TYPE_HASH): Use TYPE_UID.
9182 (TREE_HASH): New macro with old definition of TYPE_HASH.
9183 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9184 (build_array_type, build_function_type): Likewise.
9185 (build_method_type_directly): Likewise.
9186 (build_offset_type, build_complex_type): Likewise.
9187 (type_hash_list, attribute_hash_list): Likewise. Now static.
9188 * except.c: s/TYPE_HASH/TREE_HASH/.
9189
9190 2004-03-05 Bob Wilson <bob.wilson@acm.org>
9191
9192 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9193 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
9194 __va_ndx by 2 words when referencing an argument on the stack.
9195 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
9196 words when an arg on the stack is first seen.
9197
9198 2004-03-05 Paul Brook <paul@codesourcery.com>
9199
9200 * arm.h (ARM_FLAG_VFP): Remove.
9201 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9202 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9203
9204 2004-03-05 Paul Brook <paul@codesourcery.com>
9205
9206 * function.c (assign_parms): Include pretend alignment offset.
9207
9208 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9209
9210 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9211 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9212
9213 2004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
9214
9215 * configure.ac: When passing --enable-languages to subdir
9216 configure when host != build, make sure we don't pass an empty
9217 value.
9218 * configure: Regenerate.
9219
9220 2004-03-05 Nathan Sidwell <nathan@codesourcery.com>
9221
9222 PR 13577
9223 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9224 options.
9225
9226 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
9227
9228 * simplify-rtx.c (simplify_relational_operation): If
9229 flag_wrapv is set, do not move terms between the two
9230 side of a relational operator.
9231
9232 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
9233
9234 * rtlanal.c: Include target.h and output.h
9235 (rtx_cost, address_cost, default_address_cost): Move from...
9236 * cse.c (rtx_cost, address_cost, default_address_cost):
9237 ... this file.
9238 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9239 * Makefile.in: Adjust dependencies.
9240
9241 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
9242
9243 * cse.c (cse_end_of_basic_block): Make static.
9244 * local-alloc.c (function_invariant_p): Move to
9245 reload1.c.
9246 * loop.c (libcall_other_reg, record_excess_regs):
9247 Make static.
9248 * reload1.c (function_invariant_p): Moved here
9249 from local-alloc.c, made static.
9250 * rtl.h (cse_end_of_basic_block, function_invariant_p,
9251 libcall_other_reg, record_excess_regs): Remove
9252 declarations.
9253
9254 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
9255
9256 * config/m32r/m32r.c (signed_comparison_operator): Add a
9257 missing parenthesis.
9258
9259 2004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
9260
9261 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9262 going to call mmap again. Read the file into the right place.
9263 Give a fatal error if we have to relocate.
9264
9265 2004-03-04 Bob Wilson <bob.wilson@acm.org>
9266
9267 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9268 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9269
9270 2004-03-05 Hans-Peter Nilsson <hp@axis.com>
9271
9272 PR other/14354
9273 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9274 round the same. When rounding, clear bits that would cause a
9275 second rounding in pack_d.
9276 (_fpmul_parts): Ditto. Remove #if 0:d code.
9277
9278 2004-03-04 Ziemowit Laski <zlaski@apple.com>
9279
9280 PR c++/14425, c++/14426
9281 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9282 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9283 Change C++ definitions to accept a 'const int' argument;
9284 the prototypes already do.
9285 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9286 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9287 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9288 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9289 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9290 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9291 end in ..._int; change them to accept an int instead of a char
9292 as the last parameter.
9293
9294 2004-03-04 Phil Edwards <phil@codesourcery.com>
9295
9296 * genmultilib: Change '=' to '-' when translating option names
9297 to directory names.
9298
9299 2004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9300
9301 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9302 stack slot for temp used for result of BLKmode but in integral mode.
9303
9304 2004-03-04 Jan Hubicka <jh@suse.cz>
9305
9306 * reload.c (find_reloads): Reorganize if seqeunce to switch.
9307
9308 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
9309 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
9310
9311 2004-03-04 Steve Ellcey <sje@cup.hp.com>
9312
9313 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9314 * testsuite/gcc.dg/20040303-1.c: New test.
9315
9316 2004-03-04 Steven Bosscher <stevenb@suse.de>
9317
9318 * ppro.md: Rewrite as a DFA pipeline description.
9319 * i386.md: Remove all uses of the ppro_uops attribute.
9320 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9321 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9322 ix86_sched_reorder, ix86_variable_issue,
9323 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9324 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9325 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9326 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9327 * athlon.md (athlon_ssecmp_load): Fix comment
9328
9329 2004-03-04 Stuart Hastings <stuart@apple.com>
9330
9331 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9332
9333 2004-03-04 Stuart Hastings <stuart@apple.com>
9334
9335 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9336 686, tell Darwin assembler to allow prefetch insns, non-empty def
9337 of SUBTARGET_OPTION_TRANSLATE_TABLE.
9338
9339 2004-03-04 DJ Delorie <dj@redhat.com>
9340
9341 PR optimization/14282
9342 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9343 between a call and the assignment of its return value.
9344
9345 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
9346
9347 * config/h8300/h8300.c: Put a comment for every function.
9348
9349 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
9350
9351 * config/h8300/h8300.md: Add comments about peephole2's.
9352
9353 2004-03-04 Steven Bosscher <stevenb@suse.de>
9354
9355 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9356
9357 2004-03-04 Jan Hubicka <jh@suse.cz>
9358
9359 * cfgcleanup.c (thread_jump): Update call of cselib_init.
9360 * cselib.c (cselib_record_memory): New static variable.
9361 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9362 Give up on memories when asked for.
9363 (cselib_init): Accept new argument.
9364 * cselib.h (cselib_init): Update prototype.
9365 * gcse.c (local_cprop_pass): Update call of cselib_init.
9366 * loop.c (load_mems): Update call of cselib_init.
9367 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9368 * sched-deps.c (sched_analyze): Update call of cselib_init.
9369
9370 2004-03-04 David Edelsohn <edelsohn@gnu.org>
9371 GP <gp@qnx.com>
9372
9373 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9374 when compiling PIC.
9375
9376 2004-03-04 Josef Zlomek <zlomekj@suse.cz>
9377
9378 PR/14362
9379 * var-tracking.c (track_expr_p): Do not track variables which
9380 should be ignored for debugging purposes.
9381
9382 2004-03-04 Alan Modra <amodra@bigpond.net.au>
9383
9384 * real.c (encode_ibm_extended): Don't bother rounding low double.
9385 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9386 when fmt->pnan < fmt->p.
9387
9388 2004-03-04 Eric Christopher <echristo@redhat.com>
9389
9390 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9391 only range of valid arg registers and fixed_regs.
9392
9393 2004-03-04 Alan Modra <amodra@bigpond.net.au>
9394
9395 PR target/14406
9396 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9397 (abstf2, abstf2_internal): New define_expand.
9398
9399 2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
9400
9401 PR optimization/14235
9402 * expr.c (convert_move): Copy the source to a new pseudo
9403 when converting from a sub-word source to a larger-than-word
9404 register which conflicts with the source.
9405
9406 2004-03-03 Zack Weinberg <zack@codesourcery.com>
9407
9408 PR 13728
9409 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9410 parameters with the same name, unless one is a forward decl.
9411 Do not issue a redundant-redeclaration warning for forward
9412 decls of parameters.
9413
9414 2004-03-04 David Edelsohn <edelsohn@gnu.org>
9415
9416 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9417 configuration.
9418
9419 2004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
9420
9421 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9422
9423 2004-03-04 Alan Modra <amodra@bigpond.net.au>
9424
9425 * target-def.h (TARGET_OPTF): Delete.
9426 * c-opts.c (TARGET_OPTF): Define.
9427
9428 2004-03-04 Jan Hubicka <jh@suse.cz>
9429
9430 * cselib.c (cselib_finish): Fix another miss-application of my previous
9431 patch.
9432
9433 2004-03-03 Mike Stump <mrs@apple.com>
9434
9435 Add framework support for darwin.
9436
9437 * c-incpath.c: Include target.h and machmode.h.
9438 (add_path): Use a consistent style for cpp_dir. Initialize
9439 p->construct to 0.
9440 (add_cpp_dir_path): New.
9441 (register_include_chains): Add use of extra_includes callback.
9442 (hook_void_int): Add.
9443 (target_c_incpath): Add.
9444 * c-incpath.h (add_cpp_dir_path): New.
9445 (target_c_incpath_s): Add.
9446 (target_c_incpath): Add.
9447 (C_INCPATH_INIT): Add.
9448 * c-opts.c (c_common_missing_argument,
9449 c_common_handle_option): Add -F argument processing.
9450 * c.opt: Add -F argument processing.
9451 * gcc.c (trad_capable_cpp): Add -F argument processing.
9452 * cppfiles.c (find_file_in_dir): Update to use construct
9453 callback.
9454 (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9455 cpp_get_prev): New.
9456 (_cpp_find_file): Use search_path_exhausted.
9457 (make_cpp_dir): Initialize construct to 0.
9458 * cpplib.h (missing_header_cb
9459 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9460 (cpp_callbacks): Add missing_header
9461 (cpp_dir): Add construct.
9462 * target-def.h: (TARGET_OPTF): New.
9463 * hooks.c (hook_void_int, hook_void_charptr): Add.
9464 * hooks.h (hook_void_int, hook_void_charptr): Add.
9465 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9466 $(MACHMODE_H) dependencies.
9467 * doc/invoke.texi (Darwin Options): Document -F.
9468 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9469 (TARGET_OPTF): Add.
9470 * fix-header.c (target_c_incpath): Add.
9471
9472 * config/darwin-c.c: Add c-incpath.h include.
9473 (using_frameworks, find_subframework_file,
9474 find_subframework_header, add_system_framework_path,
9475 frameworks_in_use, num_frameworks, max_frameworks,
9476 add_framework, find_framework, struct framework_header,
9477 framework_header_dirs, framework_construct_pathname,
9478 find_subframework_file, add_system_framework_path,
9479 add_framework_path, framework_defaults,
9480 darwin_register_frameworks, find_subframework_header): Add.
9481 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9482 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9483 (CPP_SPEC): Add __APPLE_CC__ support.
9484 * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9485
9486 2004-03-04 Jan Hubicka <jh@suse.cz>
9487
9488 * cselib.c (cselib_finish): Fix miss-application of my previous
9489 patch.
9490
9491 2004-03-03 Kazu Hirata <kazu@cs.umass.edu>
9492
9493 * hooks.c (hook_tree_tree_identity): New.
9494 * hooks.h: Add a prototype for hook_tree_tree_identity.
9495 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9496 instead of MD_ASM_CLOBBERS.
9497 * system.h (MD_ASM_CLOBBERS): Poison.
9498 * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9499 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9500 * target.h (gcc_target): Add md_asm_clobbers.
9501 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9502 (ix86_md_asm_clobbers): New.
9503 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9504 * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9505 TARGET_MD_ASM_CLOBBERS.
9506
9507 2004-03-03 Stuart Hastings <stuart@apple.com>
9508
9509 * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9510
9511 2004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr>
9512
9513 * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9514
9515 * config/sparc/sparc.h (ASM_FLOAT): Delete.
9516 (ASM_DOUBLE): Likewise.
9517 (ASM_LONGDOUBLE): Likewise.
9518 * config/sparc/pbd.h (ASM_INT_OP): Delete.
9519
9520 2003-03-03 Richard Henderson <rth@redhat.com>
9521
9522 PR opt/13862
9523 * cselib.c (cselib_record_sets): Don't record multiple sets in
9524 asm insns.
9525
9526 2004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
9527
9528 * common.opt: Add description of the new -fgcse-after-reload flag.
9529
9530 * flags.h (flag_gcse_after_reload): Declaration of global variable.
9531
9532 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9533 reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9534 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9535 get_bb_avail_insn, hash_scan_set_after_reload,
9536 compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9537 gcse_after_reload, get_bb_avail_insn): New functions to implement
9538 gcse-after-reload.
9539 (gcse_after_reload_main): New function, the main entry point to
9540 gcse-after-reload.
9541
9542 * rtl.h (gcse_after_reload_main): Declaration of the new function.
9543
9544 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9545
9546 * toplev.c (flag_gcse_after_reload): Initialization.
9547
9548 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9549
9550 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9551 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9552 the gcse after reload optimization.
9553
9554 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9555 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9556 parameters.
9557
9558 * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9559
9560 2004-03-03 Nicolas Pitre <nico@cam.org>
9561
9562 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9563 small negative values.
9564
9565 2004-03-03 Jan Hubicka <jh@suse.cz>
9566
9567 * cselib.c (hash_table): Remove GTY marker.
9568 (reg_values): Turn into array.
9569 (used_regs): Likewise.
9570 (n_used_regs): New static variable.
9571 (reg_values_old): Kill.
9572 (clear_table): Update uses of arrays.
9573 (cselib_lookup): Likewise.
9574 (cselib_record_set): Likewise.
9575 (cselib_init): Likewise.
9576 (cselib_finish): Likewise.
9577 (cselib_udpate_varray_sizes): Kill.
9578 * cselib.h (cselib_update_varray_sizes): Kill.
9579
9580 2004-03-03 Paul Brook <paul@codesourcery.com>
9581
9582 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9583
9584 2004-03-03 Jan Hubicka <jh@suse.cz>
9585
9586 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9587 Rename from ...; make statistics transparent.
9588 (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9589 (loc_descriptor): New structure.
9590 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9591 add_statistics):
9592 New static function.
9593 (ggc_record_overhead, dump_statistics): New global function.
9594 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9595 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9596 from ...; accept locations
9597 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9598 ggc_realloc, ggc_alloc_typed): ... this one.
9599 from ...; accept locations
9600 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9601 ggc_alloc_stat): Rename from ... ; pass locations
9602 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9603 ... this one.
9604 (ggc_alloc_stat): Record overehead.
9605 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9606 ggc_realloc, ggc_alloc_typed): Turn to macros
9607 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9608 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9609 (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9610 * langhooks.h (lhd_make_node): Declare.
9611 (LANG_HOOKS_MAKE_TYPE): Default to new function,
9612 * langhooks.c (lhd_make_node): New.
9613 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9614 locations.
9615 (rtx_alloc, swallow_copy_rtx): ... this one.
9616 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9617 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9618 * toplpev.c (finalize): Dump stats.
9619 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9620 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
9621 Rename from ... ; pass locators.
9622 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9623 build?, build_decl): Declare.
9624 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9625 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
9626 Declare.
9627 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9628 build?, build_decl): New macros.
9629 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9630 * statistics.h: New file.
9631
9632 2004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
9633 Richard Sandiford <rsandifo@redhat.com>
9634
9635 * config/mips/mips.h (MASK_FIX_SB1): Bump.
9636 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9637 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9638 * config/mips/mips.c (mips_output_division): Fill the branch delay
9639 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
9640 TARGET_FIX_R4400.
9641 (mips_output_division): Adjust accordingly.
9642 (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9643 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9644
9645 2004-03-03 Paolo Bonzini <bonzini@gnu.org>
9646
9647 * alias.c (rtx_equal_for_memref_p): Use predicates
9648 to test rtx classes and new rtx class codes, possibly
9649 splitting conditionals that tested against '<' and 'o'.
9650 * caller-save.c (save_call_clobbered_regs): Likewise.
9651 * combine.c (contains_muldiv, find_split_point, subst,
9652 combine_simplify_rtx, simplify_if_then_else,
9653 simplify_set, simplify_logical, expand_compound_operation,
9654 make_compound_operation, if_then_else_cond, known_cond,
9655 apply_distributive_law, cached_nonzero_bits,
9656 cached_num_sign_bit_copies, simplify_shift_const,
9657 gen_binary, simplify_comparison, update_table_tick,
9658 record_value_for_reg, get_lsat_value_validate): Likewise.
9659 * cse.c (mention_regs, find_best_addr, find_comparison_args,
9660 fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9661 Likewise.
9662 * emit-rtl.c (copy_insn_1): Likewise.
9663 * expr.c (force_operand): Likewise.
9664 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9665 * flow.c (notice_stack_pointer_modification_1,
9666 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9667 and_reg_cond, elim_reg_cond): Likewise.
9668 * function.c (update_epilogue_consts): Likewise.
9669 * genattrtab.c (attr_rtx_1): Likewise.
9670 * genopinit.c (gen_insn): Likewise.
9671 * integrate.c (subst_constants): Likewise.
9672 * jump.c (reversed_comparison_code_parts,
9673 reversed_comparison_code, delete_related_insns,
9674 rtx_renumbered_equal_p): Likewise.
9675 * local-alloc.c (block_alloc): Likewise.
9676 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9677 canonicalize_condition): Likewise.
9678 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9679 Likewise.
9680 * optabs.c (add_equal_node, expand_binop): Likewise.
9681 * predict.c (estimate_probability): Likewise.
9682 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9683 * recog.c (validate_replace_rtx_1, comparison_operator,
9684 offsettable_address_p, constrain_operands): Likewise.
9685 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9686 Likewise.
9687 * regclass.c (scan_one_insn): Likewise.
9688 * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9689 * regrename.c (kill_autoinc_value): Likewise.
9690 * reload.c (find_reusable_reload, find_reloads,
9691 reg_overlap_mentioned_for_reload_p): Likewise.
9692 * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9693 * rtl.c (copy_rtx): Likewise.
9694 * rtl.h (CONSTANT_P, INSN_P): Likewise.
9695 * rtlanal.c (commutative_operand_precedence): Likewise.
9696 * sched-deps.c (conditions_mutex_p): Likewise.
9697 * sched-rgn.c (is_cfg_nonregular): Likewise.
9698 * simplify-rtx.c (simplify_gen_binary,
9699 simplify_gen_relational, simplify_replace_rtx,
9700 simplify_unary_operation, simplify_binary_operation,
9701 simplify_ternary_operation, simplify_rtx): Likewise.
9702 * unroll.c (reg_dead_after_loop): Likewise.
9703 * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9704 print_operand): Likewise.
9705 * config/arc/arc.c (proper_comparison_operator): Likewise.
9706 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9707 Likewise.
9708 * config/avr/avr.c (_reg_unused_after): Likewise.
9709 * config/frv/frv.c (frv_ifcvt_modify_tests,
9710 frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9711 * config/i386/i386.c (ix86_comparison_operator,
9712 ix86_carry_flag_operator, fcmov_comparison_operator,
9713 arith_or_logical_operator, print_operand,
9714 ix86_expand_binary_operator, ix86_binary_operator_ok):
9715 Likewise.
9716 * config/i386/i386.md: Likewise.
9717 * config/ia64/ia64.c (not_postinc_memory_operand,
9718 ia64_print_operand, update_set_flags, errata_emit_nops):
9719 Likewise.
9720 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9721 CONSTRAINT_OK_FOR_S): Likewise.
9722 * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9723 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9724 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9725 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9726 Likewise.
9727 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9728 eqne_comparison_operator, signed_comparison_operator):
9729 Likewise.
9730 * config/mips/mips.c (cmp_op, symbolic_expression_p):
9731 Likewise.
9732 * config/mmix/mmix (mmix_foldable_comparison_operator,
9733 mmix_comparison_operator): Likewise.
9734 * config/pa/pa.c (hppa_legitimize_address): Likewise.
9735 * config/rs6000/rs6000.c (stmw_operation,
9736 branch_comparison_operator, trap_comparison_operator,
9737 ccr_bit): Likewise.
9738 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9739 * config/s390/s390.c (s390_alc_comparison,
9740 s390_slb_comparison):L Likewise.
9741 * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9742 Likewise.
9743 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9744 noov_compare_op, noov_compare64_op, v9_regcmp_op,
9745 emit_hard_tfmode_operation, reg_unused_after)
9746 * doc/md.texi, doc/rtl.texi: Likewise.
9747
9748 * ra-debug.c: Add 2004 to list of copyright years.
9749 * unroll.c: Likewise.
9750
9751 * combine.c (simplify_logical): Remove dummy test,
9752 (apply_distributive_law): Fix typo in comment.
9753 GET_CODE (x) == AND so x is a commutative binary op.
9754 * jump.c (delete_related_insns): simplify loop
9755 condition, move testing of RTX codes inside the loop.
9756 (rtx_renumbered_equal_p): do not use RTX_CODE.
9757 * rtl.c (rtx_class): Declare as enum rtx_class.
9758 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9759 Move to RTX_COMM_COMPARE class.
9760 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9761 Move to RTX_CONST_OBJ class.
9762 * rtl.h (enum rtx_class): New declaration,
9763 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9764 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9765 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9766 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9767 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9768 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9769 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9770 OBJECT_P): New macros.
9771 * config/sparc/sparc.c (noov_compare_op): Remove register
9772 from parameter.
9773
9774 2004-03-03 Kazu Hirata <kazu@cs.umass.edu>
9775
9776 * target.h: Remove texi jargons in comments.
9777
9778 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9779
9780 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9781 threshold to 0x4f.
9782
9783 Revert:
9784 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
9785 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9786 as well.
9787 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9788 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9789
9790 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9791
9792 * doc/md.texi (cbranchmode4): New.
9793
9794 2004-03-02 Eric Christopher <echristo@redhat.com>
9795
9796 * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9797 fix_trunc.
9798 * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9799 * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9800 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9801 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9802
9803 2004-03-02 Richard Henderson <rth@redhat.com>
9804
9805 PR middle-end/11767
9806 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9807 * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9808 before the compare, if flag_non_call_exceptions.
9809
9810 2004-03-02 Richard Henderson <rth@redhat.com>
9811
9812 PR middle-end/14327
9813 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9814 emitting the label, not after.
9815
9816 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9817
9818 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9819 (m68hc11_mov_addr_mode): Likewise.
9820 (m68hc11_override_options): Initialize them based on target.
9821 (register_indirect_p): Allow a MEM for indirect addressing modes and
9822 use flags to control what is allowed.
9823 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9824 supported addressing modes.
9825 (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9826 (go_if_legitimate_address_internal): Likewise.
9827 (m68hc11_indirect_p): Likewise and check the mode.
9828 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9829
9830 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9831
9832 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9833 (expand_builtin_setjmp_setup): Use
9834 targetm.builtin_setjmp_frame_value instead of
9835 BUILTIN_SETJMP_FRAME_VALUE.
9836 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9837 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9838 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9839 * target.h (gcc_target): Add builtin_setjmp_frame_value.
9840 * targhooks.c (default_builtin_setjmp_frame_value): New.
9841 * targhooks.h: Add a prototype for
9842 default_builtin_setjmp_frame_value.
9843 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9844 TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9845
9846 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9847
9848 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9849 sequences of moves.
9850 (add peepholes): New peepholes to optimize sequences adding small
9851 constants.
9852 (bset peepholes): New peepholes to transform an OR in a bset form
9853 (bclr peepholes): Likewise for bclr form.
9854 (cmp peepholes): New peepholes to avoid register copies when comparing.
9855
9856 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9857
9858 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9859 to separate push from moves.
9860 ("*pushdf_internal"): Likewise.
9861 ("*pushsf_internal"): Likewise.
9862 ("*pushsi_internal"): Likewise.
9863 ("movdi_internal"): Use define_insn_and_split; non push operand.
9864 ("movdf_internal"): Likewise.
9865 ("movsf_internal"): Likewise.
9866 ("movsi_internal"): Likewise.
9867 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9868 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9869 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9870
9871 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9872
9873 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9874 ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9875 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9876 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9877 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9878 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9879 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9880 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9881 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9882 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9883 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9884
9885 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9886
9887 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9888 (SOFT_XY_REGNUM): Define.
9889 (cmp split): Use the above instead of hard coded numbers.
9890 (8-bit op split): No need to check the mode; allow Q_REG.
9891 (ashift split): Adjust the first operand if it uses the SP and we
9892 are pushing the shifted value.
9893 (plus shift split): Fix when a source is in register D+X.
9894 ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9895
9896 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9897
9898 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9899 comparing with Z register.
9900
9901 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9902
9903 * cfgloop.h (struct loop_desc): Removed.
9904 (struct loop): Fields simple, desc and has_desc removed.
9905 (simple_loop_p, count_loop_iterations): Declaration removed.
9906 * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9907 (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9908 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9909 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9910 simple_loop_exit_p, variable_initial_value, variable_initial_values,
9911 simple_condition_p, simple_increment, count_strange_loop_iterations,
9912 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9913 Removed.
9914 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9915
9916 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9917
9918 * genattrtab.c: Don't handle MATCH_INSN.
9919 * genrecog.c: Likewise.
9920 * gensupport.c: Likewise.
9921 * rtl.def (match_insn): Remove.
9922 * doc/md.texi (match_insn, match_insn2): Remove.
9923
9924 2004-03-02 Mark Mitchell <mark@codesourcery.com>
9925
9926 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9927 macro results in memory allocation.
9928
9929 2004-03-02 David O'Brien <obrien@FreeBSD.org>
9930
9931 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9932 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9933 %(fbsd_dynamic_linker),
9934 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9935 config/i386/freebsd.h
9936 * config/arm/freebsd.h: Ditto.
9937 * config/i386/freebsd.h: Ditto.
9938 * config/i386/freebsd64.h: Ditto.
9939 * config/ia64/freebsd.h: Ditto.
9940 * config/rs6000/sysv4.h: Ditto.
9941 * config/sparc/freebsd.h: Ditto.
9942
9943 2004-03-02 Loren James Rittle <ljrittle@acm.org>
9944
9945 * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9946
9947 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9948
9949 * rtl.def (define_combine): Remove.
9950
9951 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9952
9953 * config/h8300/h8300.md: Tweak formatting.
9954
9955 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9956
9957 * config/h8300/h8300.md (*cmphi_h8300): Rename to
9958 *cmphi_h8300_znvc.
9959 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9960
9961 2004-03-01 Mark Mitchell <mark@codesourcery.com>
9962
9963 PR bootstrap/14356
9964 * gcc.c (process_command): Remove const-qualification from argv.
9965 (main): Likewise.
9966
9967 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9968
9969 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9970 pushqi1_h8300hs_advanced. Adjust its caller.
9971 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9972 Adjust its caller.
9973
9974 2004-03-02 Nicolas Roche <roche@act-europe.fr>
9975
9976 * Makefile.in (install-libgcc, install-multilib): Pass
9977 mkinstalldirs var to libgcc.mk.
9978
9979 2004-03-01 Kazu Hirata <kazu@cs.umass.edu>
9980
9981 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9982 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9983
9984 2004-03-01 Kazu Hirata <kazu@cs.umass.edu>
9985
9986 * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9987 * config/h8300/h8300.md: Split several peephole2's, each into
9988 two.
9989
9990 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9991
9992 * dominance.c (recount_dominator): Handle postdominators.
9993
9994 2004-03-01 Richard Sandiford <rsandifo@redhat.com>
9995
9996 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9997 (NUM_SYMBOL_TYPES): Likewise.
9998 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9999 (mips_unspec_address): Declare.
10000 (mips_gotoff_page, mips_gotoff_global): Delete.
10001 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10002 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10003 (mips_symbolic_constant_p, mips_symbolic_address_p)
10004 (mips_symbol_insns): Handle new symbol types.
10005 (general_symbolic_operand): New predicate.
10006 (mips_unspec_address): Make extern.
10007 (mips_gotoff_page, mips_gotoff_global): Delete.
10008 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10009 Handle new symbol types.
10010 * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10011 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10012 mips_unspec_address directly.
10013 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10014 the documentation of -mexplicit-relocs.
10015
10016 2004-03-01 Jeff Law <law@redhat.com>
10017
10018 * fold-const.c (fold): An equality comparison of a non-weak object
10019 against zero has a known result. Similarly an equality comparison
10020 of the address of two non-weak, unaliased symbols has a known result.
10021
10022 * ggc-page.c (struct page_entry): New field PREV.
10023 (ggc_alloc): Update PREV field appropriately.
10024 (sweep_pages): Likewise.
10025 (ggc_free): Likewise. Use PREV field rather than loop to
10026 improve ggc_free performance.
10027
10028 2004-03-01 Richard Sandiford <rsandifo@redhat.com>
10029
10030 * config/mips/mips.c (mips_output_division): Use the division
10031 instruction to fill the delay slot of a zero check.
10032 (mips_idiv_insns): Adjust accordingly.
10033
10034 2004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
10035
10036 * config.gcc: Create a default tmake_file for linux, and use
10037 it in all but two linux clauses. Comment those two.
10038
10039 2004-03-01 Paolo Bonzini <bonzini@gnu.org>
10040
10041 * combine.c (try_combine): Do not refer to is_replaced.
10042 (gen_lowpart_for_combine): Perverse subregs now have a
10043 more politically correct name.
10044 * cse.c (cse_insn): Likewise.
10045 * jump.c: Fix bogus reference to delete_insn.
10046
10047 2004-02-29 Mark Mitchell <mark@codesourcery.com>
10048
10049 PR debug/14328
10050 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10051 constants as signed values.
10052
10053 PR middle-end/13448
10054 * c-tree.h (readonly_warning): Rename to ...
10055 (readonly_error): ... this.
10056 * c-typeck.c (build_unary_op): Adjust accordingly.
10057 (readonly_warning): Rename to ...
10058 (readonly_error): ... this and issue errors, not warnings.
10059 (build_modify_expr): Call readonly_error, not readonly_warning.
10060 (c_expand_asm_operands): Likewise.
10061 * tree-inline.c (optimize_inline_calls): Do not inline functions
10062 after errors have occurred.
10063
10064 2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
10065
10066 * configure.ac: Rearrange some threading code for clarity;
10067 add section comment.
10068 * configure: Regenerate.
10069
10070 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10071
10072 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10073 typos.
10074 * doc/cppopts.texi: Fix a typo.
10075
10076 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10077
10078 * config/i386/i386.md: Fix formatting.
10079
10080 2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
10081
10082 * configure.ac: Add some comments delineating sections of code.
10083
10084 * doc/install.texi: Note that libada uses autoconf 2.57 also.
10085
10086 * doc/install.texi: Fix idiot typo in previous commit.
10087
10088 * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10089
10090 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10091
10092 * config/h8300/h8300.md: Add comments about peephole2's.
10093
10094 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10095
10096 * config/h8300/h8300.md: Tweak operand numbers of some
10097 peephole2's.
10098
10099 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10100
10101 * config/h8300/h8300.md: Tweak comments about peephole2's.
10102
10103 2004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl>
10104
10105 PR middle-end/14203
10106 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10107 instead of testing whether DECL_RTL is not NULL.
10108
10109 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10110
10111 * config/sh/sh.c: Fix formatting.
10112
10113 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10114
10115 * config/sh/sh.c: Convert to ISO-C.
10116
10117 2004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
10118
10119 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10120 my previous patch.
10121
10122 * config/darwin.h (machopic_finish): Output stub even if the
10123 symbol is already defined.
10124
10125 2004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10126
10127 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10128
10129 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10130
10131 * genattr.c (main): Don't define
10132 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10133 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10134 (DFA_PIPELINE_INTERFACE): Likewise.
10135 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10136 (DFA_PIPELINE_INTERFACE): Likewise.
10137
10138 2004-02-28 Richard Sandiford <rsandifo@redhat.com>
10139
10140 * config/mips/mips.md (tstsi, tstdi): Delete.
10141
10142 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10143
10144 * config/mips/mips.c (override_options): Remove an obsolete
10145 duplicate definition of the "e" constraint.
10146 * config/mips/mips.h: Update a comment accordingly.
10147
10148 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10149
10150 * config/mips/mips.md: Complete the unfinished R4000
10151 multiply/shift errata workaround. Improve documentation.
10152 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10153 has a hilo hazard.
10154 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10155 (muldi3, muldi3_internal): Likewise.
10156 (muldi3_internal2): Remove, replacing with...
10157 (muldi3_mult3, muldi3_r4000): ...these new patterns.
10158 (mulsidi3): Take the errata into account.
10159 (mulsidi3_32bit): Remove, replacing with...
10160 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10161 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10162 (umulsidi3): Take the errata into account.
10163 (umulsidi3_32bit): Remove, replacing with..
10164 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10165 (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10166 TARGET_FIX_R4000.
10167 (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10168 (smuldi3_highpart, umuldi3_highpart): Likewise.
10169 * doc/invoke.texi: Document the errata workaround.
10170
10171 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10172
10173 * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10174 * config/mips/mips.h (MASK_FIX_SB1): Bump.
10175 (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10176 (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10177 * config/mips/mips.c (mips_idiv_insns): New function.
10178 (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10179 (mips_output_division): Add a workaround for the R4000 divide/shift
10180 errata.
10181 * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10182 the length of an "idiv" instruction.
10183 * doc/invoke.texi: Document the new switches.
10184
10185 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10186
10187 * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10188 TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10189
10190 2004-02-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10191
10192 PR optimization/14229
10193 * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10194
10195 2004-02-28 Eric Botcazou <ebotcazou@act-europe.fr>
10196
10197 * fold-const.c (fold): Strip NOPs that change the signedness
10198 for RSHIFT too. Expand comment.
10199
10200 2004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
10201
10202 PR optimization/7871
10203 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10204 from or to call insns.
10205
10206 2004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
10207
10208 PR optimization/7871
10209 * flow.c (propagate_one_insn): Interpret calls as setting global
10210 registers, not merely clobbering them.
10211
10212 2004-02-27 Dale Johannesen <dalej@apple.com>
10213
10214 * config/darwin.c (machopic_output_possible_stub_label): Remove.
10215 config/darwin-protos.h: Ditto.
10216 config/darwin.h: Remove call to it.
10217 * combine.c (distribute_notes): Do not place a REG_DEAD note
10218 when value is both set and used.
10219
10220 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10221
10222 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10223 as well.
10224 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10225 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10226
10227 2004-02-27 Andrew Pinski <apinski@apple.com>
10228
10229 * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10230 Speedup common case of the type values being in the same order.
10231
10232 2004-02-27 Steve Ellcey <sje@cup.hp.com>
10233
10234 * config/ia64/ia64.h (no-inline-float-divide): New option.
10235 * config/ia64/ia64.h (no-inline-int-divide): New option.
10236 * config/ia64/ia64.h (no-inline-sqrt): New option.
10237 (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10238 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10239 * config/ia64/ia64.c (ia64_override_options): Modify error
10240 checking for inlined division/sqrt.
10241
10242 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10243
10244 * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10245 ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10246 value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10247 config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10248 copyright.
10249
10250 2004-02-27 Paul Brook <paul@codesourcery.com>
10251
10252 * function.c (assign_parms): Don't count pretend args for alignment.
10253
10254 2004-02-27 Richard Henderson <rth@redhat.com>
10255
10256 * passes.c: New file.
10257 * Makefile.in (OBJS-common): Add it.
10258 * diagnostic.c (rtl_dump_and_exit): Move decl ...
10259 * flags.h (rtl_dump_and_exit): ... here.
10260 * output.h (size_directive_output, last_assemble_variable_decl):
10261 Move from toplev.c.
10262 * rtl.h (reg_alloc): Move from toplev.c.
10263 * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10264 struct dump_file_info, enum dump_file_index, dump_file_tbl,
10265 open_dump_file, close_dump_file, rest_of_decl_compilation,
10266 rest_of_type_compilation, rest_of_handle_final,
10267 rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10268 rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10269 rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10270 rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10271 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10272 rest_of_handle_tracer, rest_of_handle_if_conversion,
10273 rest_of_handle_if_after_combine, rest_of_handle_web,
10274 rest_of_handle_branch_prob,
10275 rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10276 rest_of_handle_addressof, rest_of_handle_sibling_calls,
10277 rest_of_handle_jump_bypass, rest_of_handle_inlining,
10278 rest_of_handle_null_pointer, rest_of_handle_combine,
10279 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10280 rest_of_handle_gcse, rest_of_handle_loop_optimize,
10281 rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10282 (decode_d_option): Use enable_rtl_dump_file.
10283 (compile_file, finalize, do_compile): Move profile+combine+graph
10284 cleanup to finish_optimization_passes.
10285 * toplev.h (init_optimization_passes, finish_optimization_passes,
10286 enable_rtl_dump_file): Declare.
10287
10288 2004-02-27 Eric Botcazou <ebotcazou@act-europe.fr>
10289 Roger Sayle <roger@eyesopen.com>
10290
10291 * fold-const.c (fold): Revert 2004-02-25 change. Use the original
10292 operands to build a tree with swapped operands.
10293 * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10294 'unsignedp' predicate to specify the signedness.
10295
10296 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10297
10298 * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10299 expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10300 params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10301 comment typos and formatting. Follow spelling conventions.
10302
10303 2004-02-26 Aldy Hernandez <aldyh@redhat.com>
10304
10305 * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10306 fix_truncsfsi2.
10307
10308 * config/rs6000/spe.md: Delete spe_efsctuiz.
10309 Add spe_fixuns_truncsfsi2.
10310 Add spe_fix_truncsfsi2.
10311
10312 2004-02-26 Eric Christopher <echristo@redhat.com>
10313
10314 * c-lex.c (c_lex_string_translate): New variable.
10315 (lex_string): Use to determine string translation.
10316 * c-pragma.h: Prototype.
10317 * c-parse.in (start_string_translation): New. Set above.
10318 (stop_string_translation): Ditto.
10319 (attribute, attribute_list, asm_def, asm_stmt,
10320 asm_operand): Use above functions.
10321 * cp/parser.c (cp_parser_declaration): Translate strings
10322 unless token is RID_EXTERN. Set c_lex_string_translate
10323 for recursive use.
10324 (cp_parser_asm_definition): Only translate argument strings
10325 to asms.
10326 (cp_parser_asm_operand_list): Ditto.
10327 (cp_parser_attribute_list): Do not translate attribute strings.
10328
10329 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10330
10331 * stmt.c (expand_start_case_dummy): Remove.
10332 * tree.h: Remove the corresponding prototype.
10333
10334 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10335
10336 * builtins.c (apply_args_register_offset): Remove.
10337 * tree.h: Remove the corresponding prototype.
10338
10339 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10340
10341 * stor-layout.c (is_pending_size): Remove.
10342 * tree.h: Remove the corresponding prototype.
10343
10344 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10345
10346 * recog.c (validate_replace_src): Remove.
10347 * recog.h: Remove the corresponding prototype.
10348
10349 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10350
10351 * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10352 MAYBE_REG_PARM_STACK_SPACE.
10353 * function.c: Likewise.
10354 * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10355 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10356 * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10357 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10358
10359 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10360
10361 * c-decl.c (c_expand_deferred_function): Remove.
10362 * c-tree.h: Remove the corresponding prototype.
10363
10364 2004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10365
10366 * postreload.c (reload_cse_move2add): Generate just a PLUS
10367 instead of an entire SET.
10368
10369 2004-02-26 Jan Hubicka <jh@suse.cz>
10370
10371 * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10372 /pentium4m.
10373 * i386.c (override_options): Add support for new CPUs.
10374 * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10375 (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10376 constants.
10377 * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10378
10379 2004-02-26 Bob Wilson <bob.wilson@acm.org>
10380
10381 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10382
10383 2004-02-26 Eric Botcazou <ebotcazou@act-europe.fr>
10384
10385 * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10386 (sparc_emit_fixunsdi): New prototype.
10387 * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10388 (sparc_emit_fixunsdi): New function.
10389 * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10390 operand 1. Pass SFmode to sparc_emit_floatunsdi.
10391 (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode
10392 to sparc_emit_floatunsdi.
10393 (fixuns_truncsfdi2): New expander.
10394 (fixuns_truncdfdi2): Likewise.
10395
10396 2004-02-26 Alan Modra <amodra@bigpond.net.au>
10397
10398 * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10399 unless HAVE_cc0.
10400
10401 2004-02-25 Richard Henderson <rth@redhat.com>
10402
10403 * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10404 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10405 use (op0-op1) == 0 if op0 is a pointer.
10406 * config/alpha/alpha.md (cmpdi): Use some_operand.
10407 (three comparison combine splits): Remove.
10408
10409 2004-02-25 Richard Henderson <rth@redhat.com>
10410
10411 PR c/12794
10412 * c-common.c (handle_alias_attribute): Reject the attribute if
10413 current_function_decl is set.
10414
10415 2004-02-25 Kelley Cook <kcook@gcc.gnu.org>
10416
10417 * config.gcc: Add comment describing extra_gcc_objs.
10418 i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10419 * configure.ac (extra_gcc_objs): New substitution variable.
10420 (host_extra_gcc_objs): Don't substitute.
10421 * configure: Regenerate.
10422 * Makefile.in: Use extra_gcc_objs.
10423
10424 2004-02-25 Kelley Cook <kcook@gcc.gnu.org>
10425
10426 * doc/contrib.texi: Add an entry for myself.
10427
10428 2004-02-25 Jan Hubicka <jh@suse.cz>
10429
10430 * basic-block.h (make_eh_edge, break_superblocks): Declare.
10431 * cfgbuild.c (make_eh_edge): Make global.
10432 * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10433 * except.c (build_post_landing_pads, connect_post_landing_pads,
10434 dw2_build_landing_pads, sjlj_emit_function_enter,
10435 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10436 sjlj_build_landing_pads): Update CFG.
10437 (emit_to_new_bb_before): New function.
10438 (finish_eh_generation): Do not rebuild the CFG.
10439
10440 2004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10441
10442 * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10443 target_cpu_default defines.
10444 * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10445 * pa.h (TARGET_DEFAULT): Likewise.
10446
10447 2004-02-25 Eric Botcazou <ebotcazou@act-europe.fr>
10448
10449 * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10450 comparisons with regard to signedness.
10451
10452 2004-02-25 Richard Earnshaw <rearnsha@arm.com>
10453
10454 * arm.c (thumb_legitimize_address): New function.
10455 * arm-protos.h: Prototype it.
10456 * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10457 (LEGITIMIZE_ADDRESS): Use it.
10458
10459 2004-02-25 J"orn Rennecke <joern.rennecke@superh.com>
10460
10461 * reload1.c (reload): Only spill eliminable register with multiple
10462 adjacent elimination alternatives if all alternatives fail.
10463
10464 2004-02-25 Richard Earnshaw <rearnsha@arm.com>
10465
10466 * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10467 is -4095...+4095 inclusive.
10468
10469 2004-02-25 Eric Botcazou <ebotcazou@libertysurf.fr>
10470
10471 * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10472 the bootstrap failure with Sun CC 5.4 and 5.5.
10473
10474 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
10475
10476 * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10477 which modifies NEWREG.
10478 (cse_condition_code_reg): Update the mode of CC_REG in
10479 CC_SRC_INSN on our own.
10480
10481 2004-02-24 Michael Matz <matz@suse.de>
10482
10483 * config/i386/i386.c (ix86_comp_type_attributes): Check for
10484 regparm attributes.
10485
10486 2004-02-24 Richard Henderson <rth@redhat.com>
10487
10488 * toplev.c (dump_file_tbl): Rename from dump_file.
10489 * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10490 cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10491 config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10492 config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10493 loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10494 ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10495 toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10496 s/rtl_dump_file/dump_file/g.
10497
10498 2004-02-24 Aldy Hernandez <aldyh@redhat.com>
10499
10500 * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10501 (spe_fixuns_truncsfsi2): Delete.
10502
10503 * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10504 (fixuns_truncsfsi2): Delete.
10505
10506 2004-02-24 Josef Zlomek <zlomekj@suse.cz>
10507
10508 PR/14240
10509 * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10510
10511 2004-02-24 Geoffrey Keating <geoffk@apple.com>
10512
10513 * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10514
10515 2004-02-24 Jason Merrill <jason@redhat.com>
10516
10517 * tree.c (check_qualified_type): New fn.
10518 (get_qualified_type): Use it. If type already has the desired
10519 quals, just return it.
10520 * tree.h: Declare it.
10521
10522 2003-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com>
10523
10524 * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10525 TARGET_SCHED_FINISH_GLOBAL): New macros.
10526
10527 * target.h (md_init_global, md_finish_global): Function
10528 declarations corresponding to new target macros.
10529
10530 * haifa-sched.c (sched_init, sched_finish): Allow target to
10531 call the new schedular hooks.
10532
10533 * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10534 call to update_life_info.
10535
10536 * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10537 flag_schedule_insns for SH4.
10538
10539 * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10540 find_set_regmode_weight, find_insn_regmode_weight,
10541 find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10542 sh_variable_issue, high_pressure, ready_reorder,
10543 rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10544 functions used to throttle the insn movement in first
10545 scheduling pass for SH.
10546
10547 * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10548 TARGET_SCHED_FINISH_GLOBAL.
10549
10550 2004-02-24 Alexandre Oliva <aoliva@redhat.com>
10551
10552 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10553 2004-02-05 Alexandre Oliva <aoliva@redhat.com>
10554 * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10555 symbols in sections named by the user.
10556 2004-01-30 Alexandre Oliva <aoliva@redhat.com>
10557 * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10558 2004-01-27 Alexandre Oliva <aoliva@redhat.com>
10559 * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10560 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10561 the above.
10562 2004-01-20 Alexandre Oliva <aoliva@redhat.com>
10563 * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10564 one more pseudo to further improve code generation.
10565 2004-01-19 Alexandre Oliva <aoliva@redhat.com>
10566 * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10567 inside UNSPEC.
10568 2004-01-16 Alexandre Oliva <aoliva@redhat.com>
10569 * config/frv/frv.c (frv_legitimate_address_p): Added
10570 allow_double_reg_p argument. Adjust all callers. Use it to
10571 decide whether to enable double-register indirect addressing.
10572 (frv_funcdesc_alias_set): Remove.
10573 (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10574 register. Emit movdi_ldd.
10575 (ldd_address_operand): New.
10576 * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10577 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10578 (PREDICATE_CODES): Add ldd_address_operand.
10579 * config/frv/frv.md (movdi_ldd): New.
10580 (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10581 intermediate computations if possible.
10582 (symGOTOFF2reg_i): Fix harmless typo.
10583 2003-12-18 Alexandre Oliva <aoliva@redhat.com>
10584 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10585 relocated p_vaddr to vaddr type.
10586 * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10587 * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10588 (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10589 MEM, or use a funcdesc alias set. Use regular move instead of
10590 ldd.
10591 (dbl_memory_one_insn_operand): Recognize function descriptors by
10592 type or by alias set, and don't split them.
10593 * config/frv/frv.md (call, call_value): Never use call_internal
10594 for fdpic.
10595 (call_internal, call_value_internal): Never match for FDPIC.
10596 (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10597 call_value_fdpicsi): Require FDPIC.
10598 (ldd): Removed.
10599 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
10600 * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10601 * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10602 (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10603 FDPIC. Compute data base address.
10604 * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10605 before the other self-specs are processed.
10606 * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10607 Build with -fPIC.
10608 2003-12-15 Alexandre Oliva <aoliva@redhat.com>
10609 * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10610 inhibit_libc is defined.
10611 2003-12-12 Alexandre Oliva <aoliva@redhat.com>
10612 * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10613 __FRV_FDPIC__.
10614 (__RELOC_POINTER): Define.
10615 (_Unwind_IteratePhdrCallback): Use it.
10616 * config/frv/frv.h (Twrite): Define.
10617 (TRANSFER_FROM_TRAMPOLINE): Use it.
10618 * config/frv/linux.h (INVOKE__main): Undefine.
10619 (Twrite): Override.
10620 2003-12-05 Richard Sandiford <rsandifo@redhat.com>
10621 * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10622 (-mlibrary-pic): Emphasize that this option generates EABI code.
10623 (-mcpu): Add fr550.
10624 (-mpack): Remove.
10625 2003-11-30 Alexandre Oliva <aoliva@redhat.com>
10626 * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10627 and CONSTs in FDPIC mode.
10628 * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10629 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
10630 * config/frv/frv.c (move_source_operand): Don't accept symbolic
10631 constants.
10632 * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10633 rather than 'i' constraint for the 2-instruction alternative.
10634 (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10635 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
10636 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10637 EXTRA_CONSTRAINT_FOR_Y.
10638 (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10639 * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10640 (addsi3): Change 'Y' constraint to 'Q'.
10641 2003-11-27 Richard Sandiford <rsandifo@redhat.com>
10642 * reload.c (CONST_POOL_OK_P): New macro.
10643 (find_reloads): Use it to decide whether a constant can be forced
10644 into memory.
10645 * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10646 constant satisfies got12_operand.
10647 (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10648 (frv_legitimate_address_p): Check for valid unspec offsets using
10649 got12_operand rather than frv_legitimate_fdpic_operand_p.
10650 (frv_legitimate_fdpic_operand_p): Delete.
10651 (frv_emit_movsi): Abort if we try to use the FDPIC register during
10652 or after reload.
10653 (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10654 TARGET_FDPIC.
10655 * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10656 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
10657 * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10658 (frv_fdpic_fptr_operand): Don't declare here.
10659 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10660 rather than fdpic_got12_operand.
10661 (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for
10662 got12_operand and const_unspec_operand.
10663 * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10664 (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10665 (symbolic_operand): Remove.
10666 (const_unspec_operand): New predicate.
10667 * config/frv/frv.md (*movsi_got): Use got12_operand.
10668 (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10669 2003-11-18 Richard Sandiford <rsandifo@redhat.com>
10670 * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10671 * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10672 * config/frv/frv.c (frv_unspec): New structure.
10673 (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10674 (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10675 validate CONST indices. Use frv_output_const_unspec to print them.
10676 (frv_print_operand): Update call to unspec_got_name. Use
10677 frv_output_const_unspec to print constant unspecs.
10678 (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10679 Reject UNSPECs otherwise.
10680 (unspec_got_name): Take the relocation number as argument, not an
10681 rtx containing it.
10682 (frv_output_addr_const_extra): Remove, replacing with...
10683 (frv_output_const_unspec): ...this new function.
10684 (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10685 (gpr_or_int12_operand): Use fdpic_got12_operand.
10686 (dbl_memory_one_insn_operand): Likewise.
10687 (fdpic_got12_operand): Use frv_const_unspec_p.
10688 (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10689 are already legitimate. Use frv_small_data_reloc_p when deciding
10690 whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10691 2003-11-18 Alexandre Oliva <aoliva@redhat.com>
10692 * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10693 * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file.
10694 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10695 label, for real this time.
10696 * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10697 representation of visibility.
10698 (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10699 such.
10700 2003-11-17 Richard Sandiford <rsandifo@redhat.com>
10701 * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10702 (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10703 * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10704 it was explicitly disabled.
10705 (frv_stack_info): There is no need to save the link register in every
10706 frame unless TARGET_LINKED_FP is true.
10707 (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10708 frame pointer if the stack pointer might change value.
10709 (frv_return_addr_rtx): Check and process "count" argument.
10710 2003-11-14 Richard Sandiford <rsandifo@redhat.com>
10711 * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10712 (frv_find_base_term): Declare.
10713 * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10714 (FIND_BASE_TERM): Define.
10715 (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10716 small_data_register_operand, small_data_symbolic_operand. Add
10717 symbolic_operand.
10718 * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10719 (frv_print_operand_memory_reference, output_move_single): Remove
10720 special handling for unlegitimized sdata addresses.
10721 (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10722 and symbolic addresses.
10723 (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10724 (frv_find_base_term): New function.
10725 (int_2word_operand): Check specifically for symbolic address constants.
10726 (pic_register_operand, pic_symbolic_operand): Delete.
10727 (small_data_register_operand, small_data_symbolic_operand): Delete.
10728 (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10729 Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10730 (move_source_operand): Only accept CONSTs if they're a two-insn
10731 symbolic constant.
10732 (fdpic_got12_operand): Don't require TARGET_FDPIC.
10733 (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10734 using gen_symGOTOFF2reg*.
10735 (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10736 (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs
10737 themselves a cost of 3 insns.
10738 * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10739 Change predicate to symbolic_operand.
10740 (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10741 (*movsi_lda_sdata): Delete.
10742 (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10743 2003-11-05 Alexandre Oliva <aoliva@redhat.com>
10744 * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10745 frv-*-*linux*.
10746 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10747 label.
10748 * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10749 -multilib-library-pic.
10750 (LINK_SPEC): Add -z text for -mfdpic.
10751 * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10752 * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10753 * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10754 Override.
10755 (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10756 FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10757 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10758 crtstuff-generated files.
10759 2003-10-31 Alexandre Oliva <aoliva@redhat.com>
10760 * config.gcc: Add frv-*-*linux*.
10761 * config/frv/linux.h, config/frv/t-linux: New.
10762 2003-10-06 Alexandre Oliva <aoliva@redhat.com>
10763 * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10764 when -mfdpic even if a linker script is explicitly listed.
10765 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
10766 * config/frv/frv.c (frv_override_options): Clear asm_out
10767 unaligned_op for SImode on FDPIC.
10768 (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10769 argument passed to decl_readonly_section.
10770 (frv_assemble_integer): Revert 2003-09-30's change, but make the
10771 whole block run with FDPIC even with -fno-PIC.
10772 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
10773 * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10774 symbol or label plus offset to memory.
10775 (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit
10776 GOTOFF and GPREL for LABEL_REF.
10777 * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10778 -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10779 (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10780 (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10781 * doc/invoke.texi: Document them.
10782 2003-09-30 Alexandre Oliva <aoliva@redhat.com>
10783 * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10784 (frv_splittable_got_operand): Removed.
10785 * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10786 LO_SUM. Add comments.
10787 (frv_override_options): Moved enabling of FDPIC to
10788 DRIVER_SELF_SPECS. Don't enable MASK_DWORD.
10789 (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10790 (frv_legitimize_fdpic_address): Don't duplicate logic in
10791 frv_emit_movsi.
10792 (frv_gen_GPsym2reg): New.
10793 (unspec_got_name): Added gprel.
10794 (frv_expand_fdpic_call): Add support for inlining PLTs.
10795 (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10796 (gpr_or_int12_operand): Added GPREL12.
10797 (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10798 (small_data_symbolic_operand): Fail if FDPIC.
10799 (fdpic_splittable_got_operand): Removed.
10800 (fdpic_got12_operand): Added GPREL12.
10801 (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL
10802 when appropriate. Fix sdata GOTOFF.
10803 (frv_legitimate_constant_p): Require legitimate PIC operand for
10804 FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10805 (frv_assemble_integer): Move FDPIC funcdesc handling out of
10806 flag_pic case.
10807 (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10808 frv_assemble_integer fails.
10809 * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10810 (SUBTARGET_DRIVER_SELF_SPECS): New.
10811 (ASM_SPEC): Don't pass -mno-fdpic.
10812 (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10813 (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10814 (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10815 -multilib-library-pic.
10816 (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10817 condexec_si_media_operator, condexec_sf_add_operator and
10818 condexec_sf_conv_operator. Removed condexec_sf_binary_operator
10819 and condexec_sf_unary_operator.
10820 * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10821 New.
10822 (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10823 movsi_internal. Give them internal names. movsi_got has type
10824 int.
10825 (fdpic got splitters): Remove.
10826 (symGPREL2reg, symGPREL2reg_hilo): New.
10827 * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10828 to -mlibrary-pic. Map -multilib-library-pic to it.
10829 * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10830 Document.
10831 2003-09-28 Alexandre Oliva <aoliva@redhat.com>
10832 * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10833 (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10834 (frv_cannot_force_const_mem): New function.
10835 (const_small_data_p, plus_small_data_p): Update comments on sdata
10836 on FDPIC.
10837 (frv_override_options): Set flag_pie for FDPIC too.
10838 (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10839 call-saved registers on FDPIC.
10840 (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10841 don't force LR to be preserved.
10842 (frv_expand_prologue): Likewise.
10843 (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10844 (frv_frame_pointer_required): Don't force it just because the
10845 FDPIC register is used.
10846 (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10847 operand only if !condexec_p.
10848 (frv_legitimize_address): Return the FDPIC-legitimized address.
10849 Don't match small data here on FDPIC.
10850 (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10851 symbols. Use TRUE/FALSE instead of 1/0.
10852 (frv_local_funcdesc_p): New.
10853 (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10854 immediates when possible.
10855 (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10856 (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10857 an UNSPEC_GOT.
10858 (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and
10859 12-bit immediates when possible.
10860 (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10861 are not legitimate pic operands.
10862 (frv_in_small_data_p): Re-enable for FDPIC.
10863 * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10864 (FRV_GLOBAL_P): Removed.
10865 * config/frv/frv.md: Add modes to CONSTs.
10866 (movsi_got): New.
10867 (movsi_lo_sum_got): Use separate matches instead of match_dup.
10868 (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10869 (fdpic splittable operations): Match on flag_pic != 1.
10870 2003-09-22 Alexandre Oliva <aoliva@redhat.com>
10871 * config/frv/frv.c (frv_asm_out_constructor,
10872 frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10873 bytes, not bits.
10874 2003-09-19 Alexandre Oliva <aoliva@redhat.com>
10875 * config/frv/frv.c (frv_assemble_integer): Reject complex
10876 expressions referencing function SYMBOL_REFs.
10877 * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10878 (move_source_operand): Reject CONSTs that reference function
10879 SYMBOL_REFs on FDPIC.
10880 (frv_emit_movsi): If we get such a CONST, break it up.
10881 * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10882 (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10883 * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10884 MEM.
10885 (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10886 (frv_trampoline_size): Increase for FDPIC.
10887 * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10888 (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10889 * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10890 Disable use of GOTOFF for now.
10891 (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10892 Disable use of small data in FDPIC for now.
10893 (frv_asm_output_mi_thunk): Implement for FDPIC.
10894 * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10895 * config/frv/frv.c (frv_asm_out_constructor): Use
10896 frv_assemble_integer for FDPIC pointers.
10897 (frv_asm_out_destructor): Likewise.
10898 * config/frv/frv.md (ldd): Fix order of operands. Use
10899 address_operand for input.
10900 2003-09-18 DJ Delorie <dj@redhat.com>
10901 * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10902 (unspec_got_name): Correct typo.
10903 (frv_emit_movsi): Pre-expand splittable GOTs.
10904 (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10905 * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10906 (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10907 * config/frv/t-frv: Add -mfdpic multilibs.
10908 * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10909 (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10910 * config/frv/frv.c (frv_override_options): -mfdpic assumes
10911 flag_pic, default to 32-bit pics, require DWORD ops.
10912 (frv_override_options): Add W and Z constraints.
10913 (frv_expand_prologue): No pic prologue for -mfdpic.
10914 (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10915 (frv_print_operand_memory_reference): Handle GOT constants.
10916 (frv_legitimate_address_p): Allow GOT constants.
10917 (frv_legitimize_address): Handle GOT addresses too.
10918 (frv_legitimate_fdpic_operand_p): New.
10919 (frv_legitimize_fdpic_address): New.
10920 (unspec_got_name): New.
10921 (frv_output_addr_const_extra): New.
10922 (frv_expand_fdpic_call): New.
10923 (frv_fdpic_fptr_operand): New.
10924 (gpr_or_int12_operand): Handle GOT operands.
10925 (int_2word_operand): Handle GOT operands.
10926 (fdpic_operand): New.
10927 (fdpic_splittable_got_operand): New.
10928 (fdpic_got12_operand): New.
10929 (frv_emit_movsi): Handle GOT operands.
10930 (frv_assemble_integer): -mfdpic doesn't use rofixups.
10931 (frv_print_operand): Support 'g' code for GOT operands.
10932 * config/frv/frv-protos.h: Add prototypes as needed.
10933 * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10934 R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10935 R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10936 R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10937 R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10938 R_FRV_GOTOFFLO): New.
10939 (movsi_high_got, movsi_lo_sum_got): New.
10940 (*movsi_pic): Don't use this splitter for -mfdpic.
10941 (addsi3): Allow GOT references also.
10942 (call, call_value): Handle -mfdpic separately.
10943 (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10944 call_value_fdpicsi): New.
10945 (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10946 symGOTOFF2reg_i): New.
10947 * config/frv/frv.h (MASK_FDPIC): New.
10948 (TARGET_FDPIC): New.
10949 (TARGET_SWITCHES): Add -mfdpic.
10950 (FDPIC_FPTR_REGNO): New.
10951 (FDPIC_REGNO): New.
10952 (OUR_FDPIC_REG): New.
10953 (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10954 FDPIC_CALL_REGS.
10955 (REG_CLASS_NAMES): Likewise.
10956 (REG_CLASS_CONTENTS): Likewise.
10957 (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10958 (EXTRA_CONSTRAINT): Add it here.
10959 (FRV_GLOBAL_P): New.
10960 (OUTPUT_ADDR_CONST_EXTRA): New.
10961
10962 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
10963
10964 * config/sparc/sparc.h: Remove commented-out definitions of
10965 TARGET_EDOM and GEN_ERRNO_RTX.
10966
10967 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
10968
10969 * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10970 df_analyse with df_analyze.
10971
10972 2004-02-24 Alan Modra <amodra@bigpond.net.au>
10973
10974 * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10975 beginning of block.
10976
10977 2004-02-23 James E Wilson <wilson@specifixinc.com>
10978
10979 * calls.c (precompute_arguments): Update comment.
10980
10981 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
10982
10983 * et-forest.c: Replace et_occurences with et_occurrences.
10984
10985 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
10986
10987 * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10988 with iv_analyze.
10989
10990 2004-02-23 Kelley Cook <kcook@gcc.gnu.org>
10991
10992 * config/i386/i386.c: Rename pni to sse3.
10993 * config/i386/i386.h: Likewise.
10994 * config/i386/i386.md: Likewise.
10995 * config/i386/pmmintrin.h: Likewise.
10996 * doc/extend.texi: Likewise.
10997 * doc/invoke.texi: Likewise.
10998
10999 2004-02-23 Zack Weinberg <zack@codesourcery.com>
11000 Kazu Hirata <kazu@cs.umass.edu>
11001
11002 Remove -fwritable-strings.
11003 * c-common.c (fix_string_type): Don't check
11004 flag_writable_strings.
11005 (fix_string_type): Likewise.
11006 * c-opts.c (set_std_c89): Don't initialize
11007 flag_writable_strings.
11008 (set_std_c99): Likewise.
11009 * common.opt (fwritable-strings): Remove.
11010 * flags.h: Remove the external declaration of
11011 flag_writable_strings.
11012 * opts.c (common_handle_option) <OPT_fwritable_strings>:
11013 Remove.
11014 * toplev.c (flag_writable_strings): Remove.
11015 (f_options): Remove an entry for writable-strings.
11016 * varasm.c (const_hash_1) <STRING_CST>: Don't check
11017 flag_writable_strings.
11018 (compare_constant) <STRING_CST>: Likewise.
11019 (build_constant_desc): Likewise.
11020 * config/darwin.c (machopic_select_section): Likewise.
11021 * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11022 * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11023 * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11024 * config/mips/mips.c (mips_select_section): Likewise.
11025 (mips_encode_section_info): Likewise.
11026 * config/pa/pa.c (pa_select_section): Likewise.
11027 * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11028 * config/v850/v850.c (v850_select_section): Likewise.
11029 * doc/invoke.texi (-fwritable-strings): Remove.
11030 (-fno-const-strings): Don't mention -fwritable-strings.
11031 * doc/trouble.texi: Don't mention -fwritable-strings.
11032
11033 2003-02-23 Nathanael Nerode <neroden@gcc.gnu.org>
11034
11035 * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11036
11037 2004-02-23 Dale Johannesen <dalej@apple.com>
11038
11039 * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11040 (movdf_hardfloat64): Ditto.
11041 (movdf_softfloat64): Ditto.
11042
11043 2004-02-23 Fariborz Jahanian <fjahanian@apple.com>
11044 * config/rs6000/rs6000.c (function_arg): call to
11045 rs6000_mixed_function_arg for DFmode moved to allow
11046 normal DFmode incoming register assignment.
11047
11048 2004-02-23 Dale Johannesen <dalej@apple.com>
11049
11050 * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11051 (movdf_hardfloat64): Ditto.
11052
11053 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
11054
11055 * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11056 config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11057 copyright.
11058
11059 2004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
11060
11061 PR c/14156
11062 * c-typeck.c (c_expand_return): Change check for VAR_DECL
11063 to use DECL_P instead.
11064
11065 * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11066 * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11067
11068 2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
11069
11070 * Makefile.in (opts.o): Depend on target.h.
11071 * opts.c (decode_options): Use targetm.default_short_enums
11072 instead of DEFAULT_SHORT_ENUMS.
11073 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11074 * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11075 (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11076 * target.h (gcc_target): Add default_short_enums.
11077 * config/cris/cris.h: Remove a comment about
11078 DEFAULT_SHORT_ENUMS.
11079 * config/ip2k/ip2k.h: Likewise.
11080 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11081 TARGET_DEFAULT_SHORT_ENUMS. Update the description.
11082
11083 2004-02-23 Eric Botcazou <ebotcazou@libertysurf.fr>
11084 Falk Hueffner <falk@debian.org>
11085
11086 PR c/14188
11087 * builtins.c (expand_builtin_va_arg): Emit an informative message
11088 if a trap is generated.
11089 * c-typeck.c (build_function_call): Likewise.
11090
11091 2004-02-22 Jakub Jelinek <jakub@redhat.com>
11092
11093 * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11094 fopen.
11095 * libgcov.c: Include sys/stat.h.
11096 * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11097 * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11098 * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11099 * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11100
11101 2004-02-22 Kazu Hirata <kazu@cs.umass.edu>
11102
11103 * reorg.c: Remove comments about dead ports.
11104
11105 2004-02-22 Christopher Faylor <cgf@redhat.com>
11106
11107 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11108 extra host object file when targetting cygwin rather than generic
11109 object files.
11110
11111 2004-02-22 Josef Zlomek <zlomekj@suse.cz>
11112
11113 Merge from tree-ssa:
11114 2003-11-20 Richard Henderson <rth@redhat.com>
11115
11116 * tree-inline.c (insert_decl_map): New.
11117 (remap_decl, remap_type, remap_block, copy_body_r,
11118 initialize_inlined_parameters, declare_return_variable,
11119 remap_save_expr): Use it.
11120
11121 * function.c (copy_body_r): Add mapping from id->ret_label to
11122 id->ret_label. Revert test for ret_label.
11123
11124 2004-02-22 Jakub Jelinek <jakub@redhat.com>
11125
11126 * genoutput.c (process_template): Strip trailing whitespace in @
11127 templates and issue a warning if there was any.
11128
11129 2004-02-21 Christopher Faylor <cgf@redhat.com>
11130
11131 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11132 object file when targetting cygwin.
11133 * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11134 overridden by top-level Makefile.
11135
11136 2004-02-21 Roger Sayle <roger@eyesopen.com>
11137
11138 * config/i386/i386.c (standard_80387_constant_p): Also prefer
11139 the x87's load constant instructions when optimizing for size.
11140
11141 2004-02-21 Kazu Hirata <kazu@cs.umass.edu>
11142
11143 * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11144 * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11145 * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11146 * fold-const.c: Likewise.
11147 * simplify-rtx.c: Likewise.
11148
11149 2004-02-21 Alan Modra <amodra@bigpond.net.au>
11150
11151 * combine.c (can_combine_p): Don't ignore SETs marked with
11152 REG_EH_REGION notes.
11153 (try_combine): When attemting to fix unrecognized insns, don't
11154 split a PARALLEL that contains the original i2.
11155
11156 2004-02-21 Ziemowit Laski <zlaski@apple.com>
11157
11158 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11159 SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11160 * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11161 * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11162 (vector, pixel, bool): #define to __vector, __pixel and __bool.
11163 (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11164 portion of header.
11165 (__altivec_link_error_invalid_argument): Remove prototype; will use
11166 __builtin_altivec_compiletime_error("vec_*") instead.
11167 (vec_*): Fix/complete set of available operation overloads given the
11168 existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11169 cv-correctness of pointer arguments; in C, always check for correct
11170 argument types before macro expansion.
11171 * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11172 defining Darwin/PowerPC-specific '-f[no-]altivec' and
11173 '-W[no-]altivec-long-deprecated' switches.
11174 * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11175 '__vector', '__pixel' and '__bool' macros using
11176 '__attribute__((altivec(...)))' types.
11177 * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11178 bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11179 bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11180 New type nodes.
11181 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11182 handling '-W[no-]altivec-long-deprecated'.
11183 (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11184 (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11185 altivec_expand_dst_builtin): Remove casts from integer literals.
11186 (altivec_expand_builtin): Likewise; handle expansion of new
11187 '__builtin_altivec_compiletime_error' function.
11188 (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11189 types, and make them distinct from other vector types; register
11190 '__builtin_altivec_compiletime_error' function.
11191 (print_operand): For 'P', print a full target register name instead of
11192 merely its number.
11193 (rs6000_attribute_table): Add "altivec" attribute.
11194 (rs6000_handle_altivec_attribute): New function.
11195 * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11196 '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11197 maps to).
11198 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11199 declare.
11200 (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11201
11202 2004-02-20 James E Wilson <wilson@specifixinc.com>
11203
11204 * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11205 check.
11206 (shift_mix4left+2): Delete redundant pattern.
11207
11208 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11209
11210 * alias.c (OUTGOING_REGNO): Don't define the default.
11211 * builtins.c (OUTGOING_REGNO): Likewise.
11212 (INCOMING_REGNO): Likewise.
11213 (apply_args_register_offset): Always use OUTGOING_REGNO.
11214 * combine.c (OUTGOING_REGNO): Likewise.
11215 * sibcall.c (OUTGOING_REGNO): Likewise.
11216 * defaults.h (INCOMING_REGNO): Provide the default.
11217 (OUTGOING_REGNO): Likewise.
11218
11219 2004-02-21 Jan Hubicka <jh@suse.cz>
11220
11221 * params.def (max-peeled-insns, max-completely-peeled-insns,
11222 max-once-peeled-insns): Set to 400.
11223
11224 2004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11225
11226 PR c++/12007
11227 * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11228 are set for parameters before outputing debugging information.
11229
11230 2004-02-20 Falk Hueffner <falk@debian.org>
11231
11232 PR target/14201
11233 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11234 numbers.
11235
11236 2004-02-20 Per Bothner <per@bothner.com>
11237
11238 * input.h: Don't #include line-map.h. It may cause link problems
11239 with undefined linemap_line_start when line-map.h is included but
11240 line-map.o is not linked, as currently happens with gengtype on
11241 compilers that don't support inline.
11242 * toplev.c: So we do have to explicitly #include line-map.h here.
11243
11244 2004-02-20 Richard Henderson <rth@redhat.com>
11245
11246 * doc/invoke.texi: Add -Wvariadic-macros.
11247
11248 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11249
11250 * haifa-sched.c (sched_emit_insn): Remove.
11251 * sched-int.h: Remove the corresponding prototype.
11252
11253 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11254
11255 Revert:
11256 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11257 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11258 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11259 * config/cris/cris.h: Remove a comment about
11260 DEFAULT_SHORT_ENUMS.
11261 * config/ip2k/ip2k.h: Likewise.
11262 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11263
11264 2004-02-20 Mohan Embar <gnustuff@thisiscool.com>
11265 Tom Tromey <tromey@redhat.com>
11266
11267 * doc/install.texi: Moved --disable-libgcj and
11268 --with-system-zlib documentation to new section for
11269 Java-specific options.
11270 Added explicit Cross-Compiler-Specific Options subheading.
11271 Added section for Java-specific options.
11272
11273 2004-02-20 Matt Kraai <kraai@alumni.cmu.edu>
11274
11275 * doc/install.texi (Building the Ada compiler): Remove
11276 example.
11277
11278 2004-02-20 James E Wilson <wilson@specifixinc.com>
11279
11280 * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11281
11282 2004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11283
11284 * gcc.c (process_command): Allow translation of the copyright
11285 symbol but not the rest of the copyright message.
11286 * gcov.c (print_version): Likewise. Allow translation of the
11287 message about warranty.
11288
11289 2004-02-20 Hans-Peter Nilsson <hp@axis.com>
11290
11291 * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11292 predicate.
11293 ("*andsi_clear"): Tweak constraints to not match postincrement.
11294 Adjust the predicate to exclude a volatile memory reference.
11295 ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
11296 ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11297
11298 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
11299
11300 * move-if-change: Remove.
11301 * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11302 (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11303 (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11304 (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11305 (s-gtyp-gen, s-iov): Use the top level move-if-change.
11306 * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11307
11308 2004-02-19 James E Wilson <wilson@specifixinc.com>
11309
11310 * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11311 for operand2. Add condition that requires register_operand operand2
11312 before reload.
11313
11314 2004-02-19 Richard Sandiford <rsandifo@redhat.com>
11315 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
11316
11317 * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11318 * config/mips/mips.md: Expand comment above unaligned loads and stores.
11319
11320 2004-02-19 Richard Henderson <rth@redhat.com>
11321
11322 * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11323 * tree.c (build0, build1, build2, build3, build4): Split out from...
11324 (build): ... here. Call them.
11325 * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11326
11327 * convert.c (convert_to_integer): Remove extra build argument.
11328 * tree-inline.c (expand_call_inline): Likewise.
11329
11330 2004-02-19 Richard Henderson <rth@redhat.com>
11331
11332 * c-opts.c (warn_variadic_macros): New.
11333 (c_common_handle_option): Set it.
11334 (sanitize_cpp_opts): Copy it to cpp_opts.
11335 * c.opt (Wvariadic-macros): New.
11336 * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11337 * cppinit.c (cpp_create_reader): Initialize it.
11338 * cppmacro.c (parse_params): Check it.
11339
11340 2004-02-19 David Daney <ddaney@avtrex.com>
11341
11342 PR preprocessor/14198
11343 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11344 builtin_assert ("machine=mips")
11345
11346 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11347
11348 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11349 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11350 * config/cris/cris.h: Remove a comment about
11351 DEFAULT_SHORT_ENUMS.
11352 * config/ip2k/ip2k.h: Likewise.
11353 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11354
11355 2004-02-19 Zack Weinberg <zack@codesourcery.com>
11356
11357 * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11358 when passing single SFmode quantities in general registers,
11359 put them in the high half.
11360
11361 2004-02-19 Aldy Hernandez <aldyh@redhat.com>
11362
11363 * doc/md.texi (Standard Names): Document additional dependency on
11364 fix pattern.
11365
11366 * optabs.c (ftruncify): Remove.
11367 (expand_fix): Manually inline ftruncify above.
11368 (can_fix_p): Add FIXME note.
11369
11370 2004-02-19 Aldy Hernandez <aldyh@redhat.com>
11371
11372 * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11373 spe_fixuns_truncsfsi2.
11374
11375 * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11376 fixuns_truncsfsi2.
11377
11378 2004-02-19 Steve Ellcey <sje@cup.hp.com>
11379
11380 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11381 * testsuite/gcc.dg/20040219-1.c: New test.
11382
11383 2004-02-19 Ulrich Weigand <uweigand@de.ibm.com>
11384
11385 * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11386 "*subsf3_cconly"): Subtraction is not commutative.
11387
11388 2004-02-19 Zack Weinberg <zack@codesourcery.com>
11389
11390 * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11391 (sdbout_symbol): If called before sdbout_init, queue DECL for
11392 later and return.
11393 (sdbout_init): Set sdbout_initialized true, process decls
11394 queued earlier by sdbout_symbol.
11395 (sdbout_finish): Use size_t for index variable.
11396
11397 2004-02-19 Jeff Law <law@redhat.com>
11398
11399 * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11400 for unordered comparison codes.
11401
11402 2004-02-19 Ian Lance Taylor <ian@wasabisystems.com>
11403
11404 * reload1.c (reload): Correct comment.
11405 (scan_paradoxical_subregs): Remove #if 0 and old comment.
11406 * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11407 register variables are not used by reload.
11408
11409 2004-02-19 Hans-Peter Nilsson <hp@axis.com>
11410
11411 PR target/14209
11412 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11413 constraints to not match postincrement. Adjust the predicate to
11414 exclude a volatile memory reference.
11415
11416 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11417
11418 * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11419
11420 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11421
11422 * hooks.c (hook_void_tree_int): Remove.
11423 (hook_void_constcharptr): Likewise.
11424 (hook_int_void_0): Likewise.
11425 * hooks.h: Remove the prototypes for the above three
11426 functions.
11427 * targhooks.c (hook_bool_machine_mode_true): Remove.
11428 * targhooks.h: Remove the prototype for
11429 hook_bool_machine_mode_true.
11430
11431 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11432
11433 * emit-rtl.c (subreg_realpart_p): Remove.
11434 (reorder_insns_with_line_notes): Likewise.
11435 (end_full_sequence): Likewise.
11436 * rtl.h: Remove the prototype for the above functions.
11437
11438 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11439
11440 * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11441 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11442 config/iq2000/iq2000.h, config/m32r/m32r.h,
11443 config/pdp11/pdp11.h, config/sparc/sparc.h,
11444 config/xtensa/xtensa.h: Remove commented-out or useless
11445 definitions of CASE_VECTOR_PC_RELATIVE.
11446
11447 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11448
11449 * loop.c (all_sets_invariant_p): Remove.
11450
11451 2004-02-19 Eric Botcazou <ebotcazou@libertysurf.fr>
11452
11453 PR target/12916
11454 * config/sparc/sparc.h (NPARM_REGS): Delete.
11455 (BASE_RETURN_VALUE_REG): Likewise.
11456 (BASE_OUTGOING_VALUE_REG): Likewise.
11457 (BASE_PASSING_ARG_REG): Likewise.
11458 (BASE_INCOMING_ARG_REG): Likewise.
11459 * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11460 TARGET_ARCH64, not TARGET_V9.
11461 (function_arg_slotno): Dispatch based on the mode class.
11462 Handle vector modes like floating-point modes.
11463 (function_arg_record_value_1): Handle vector types like
11464 floating-point types.
11465 (function_arg_record_value_2): Likewise.
11466 Calculate regno after mode transformation.
11467 (function_arg): Handle vector modes like floating-point modes.
11468 (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11469 If ARCH64, do not recheck alignment.
11470 (function_arg_pass_by_reference): Reorder the conditions.
11471 (sparc_return_in_memory): Move after function_arg_padding.
11472 Implement calling conventions for vector modes.
11473 (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11474 (function_value): Move scope of 'regbase'.
11475 Implement calling conventions for vector modes.
11476 (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11477 and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11478 (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11479 the argument is passed by reference.
11480 (sparc_type_code): Handle vector types.
11481
11482 2004-02-19 Alan Modra <amodra@bigpond.net.au>
11483
11484 * function.c (assign_parms): When building decl_rtl for
11485 SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11486
11487 2004-02-19 Olivier Hainque <hainque@act-europe.fr>
11488
11489 * expr.c (is_aligning_offset): Check if we are aligning the
11490 expressions's address over BIGGEST_ALIGNMENT in bytes, not
11491 in bits.
11492
11493 2003-02-18 Matt Austern <austern@apple.com>
11494
11495 * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11496 LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11497 (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11498 defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11499 spec string.
11500 * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11501
11502 2004-02-18 Zack Weinberg <zack@codesourcery.com>
11503
11504 * dwarf2out.c (loclabel_num): Move outside #ifdef
11505 DWARF2_DEBUGGING_INFO and mark with GTY(()).
11506 * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11507 Mark with GTY(()).
11508 (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11509 Allocate memory with ggc_alloc. No need to copy anything.
11510 (ia64_hpux_file_end): Update to match.
11511
11512 2004-02-18 Jakub Jelinek <jakub@redhat.com>
11513
11514 * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11515 by default.
11516
11517 2004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
11518
11519 * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11520 ("divmodtisi3"): Likewise.
11521 ("udivmoddi4", "udivmodtidi3"): Likewise.
11522 ("divmodsi4", "divmoddisi3"): Likewise.
11523 ("udivmodsi4", "udivmoddisi3"): Likewise.
11524 ("udivsi3", "umodsi3"): Likewise.
11525
11526 2004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
11527
11528 * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11529 placeholder insn when chunkifying the pool.
11530
11531 2004-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11532
11533 * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11534 generating PIC code.
11535
11536 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11537
11538 * config/h8300/h8300-protos.h: Add a prototype for
11539 h8300_expand_branch.
11540 * config/h8300/h8300.c (h8300_expand_branch): New.
11541 * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11542 bgtu, beq, bne): Call h8300_expand_branch().
11543
11544 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11545
11546 * config/h8300/h8300-protos.h: Add prototypes for
11547 h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11548 * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11549 (h8300_hard_regno_mode_ok): Likewise.
11550 * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11551 h8300_hard_regno_nregs().
11552 (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11553
11554 2004-02-18 Per Bothner <per@bothner.com>
11555
11556 * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This
11557 partly reverts my 2003-10-01 change, because we're back to logically
11558 including <command line> inside the main line.
11559 * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field.
11560 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer.
11561 Fixes PR preprocessor/14103.
11562
11563 * cppfiles.c (_cpp_stack_include): When appropriate decrement
11564 line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11565 (cpp_push_include): Don't need to increment pfile's line field.
11566 * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1.
11567
11568 * c-ppoutput.c (print struct): New first_time field.
11569 (init_pp_output): Set print.first_time.
11570 (pp_file_change): Use print.first_time, rather than MAIN_FILE_P,
11571 which is set also for (say) <command line>. Clear print.first_time.
11572
11573 * cppfiles.c (struct _cpp_file): Comment and type for pch field
11574 does not match the code, so fix both.
11575 (should_stack_file): Inline include_pch_p function.
11576 (include_pch_p): Remove pointless function.
11577
11578 * cpphash.h (struct cpp_buffer): Remove unused search_cached field.
11579
11580 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11581
11582 * config/h8300/h8300.md (four define_peephole2's): Use
11583 h8300_regs_ok_for_stm().
11584
11585 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11586
11587 * config/h8300/h8300-protos.h: Update the prototype for
11588 expand_a_rotate().
11589 * config/h8300/h8300.c (expand_a_rotate): Remove the first
11590 argument.
11591 * config/h8300/h8300.md: Update all callers.
11592
11593 2004-02-18 Jan Hubicka <jh@suse.cz>
11594
11595 * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11596 floats.
11597 (simplify_binary_operation): Deal with logicals on floats.
11598
11599 * i386.md (SSE fabs splitters): Emit new patterns.
11600 (SSE cmov splitters): Likewise.
11601 (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11602 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11603 subregs.
11604 (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11605 (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11606
11607 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11608
11609 * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11610 by hand.
11611 (output_a_rotate): Tweak a comment.
11612 * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11613 (*rotlhi3_1): Change to rotlhi3_1.
11614 (*rotlsi3_1): Change to rotlsi3_1.
11615
11616 2004-02-18 Richard Earnshaw <rearnsha@arm.com>
11617
11618 PR target/13866
11619 * arm.c (load_multiple_operation): Don't insist that the source reg
11620 of a post-increment component is the same as the destination.
11621 (store_multiple_operation): Likewise.
11622
11623 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11624
11625 * config/h8300/h8300.md: Move movsf patterns into one section
11626 of the file.
11627
11628 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11629
11630 * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11631 loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11632 xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11633 config/mips/linux64.h, config/pa/pa-64.h,
11634 config/rs6000/aix51.h, config/rs6000/aix52.h,
11635 config/rs6000/spe.md, config/sparc/linux.h,
11636 config/sparc/linux64.h: Update copyright.
11637
11638 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11639
11640 * config/h8300/h8300.md: Move push patterns into one
11641 section of the file.
11642
11643 2004-02-18 Mark Mitchell <mark@codesourcery.com>
11644
11645 PR c++/11326
11646 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11647 fntype.
11648
11649 2004-02-18 Paul Brook <paul@codesourcery.com>
11650
11651 * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11652
11653 2004-02-18 Paul Brook <paul@codesourcery.com>
11654
11655 PR debug/12934
11656 * dwarf2out.c (loc_descriptor_from_tree): Handle
11657 EXPR_WITH_FILE_LOCATION.
11658
11659 2004-02-18 Jakub Jelinek <jakub@redhat.com>
11660
11661 * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11662 testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11663 trailing whitespace from instructions.
11664
11665 2004-02-17 Geoffrey Keating <geoffk@apple.com>
11666
11667 * configure.ac: When generating auto-build.h, pass
11668 --enable-languages to the sub-configure.
11669 Put quotes around ${program_transform_name} when generating
11670 name of as, ld, nm, objdump.
11671 * configure: Regenerate.
11672
11673 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
11674
11675 * Makefile.in (s-check, s-config, s-conditions, s-flags)
11676 (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11677 (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11678 (s-preds, s-iov): Do not depend on move-if-change.
11679
11680 2004-02-17 James E Wilson <wilson@specifixinc.com>
11681
11682 * caller-save.c (insert_restore): Pass mem through copy_rtx.
11683 (insert_save): Likewise.
11684
11685 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11686
11687 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11688 warning.
11689
11690 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11691
11692 * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11693 *one_cmplsi2_h8300.
11694 (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11695
11696 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11697
11698 * config/h8300/h8300-protos.h: Update the prototype of
11699 fix_bit_operand().
11700 * config/h8300/h8300.c (fix_bit_operand): Remove the second
11701 argument "what".
11702 * config/h8300/h8300.md: Update all callers.
11703
11704 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11705
11706 * config/h8300/h8300.c (fix_bit_operand): Change the name of
11707 the last argument to "code" from "type".
11708
11709 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11710
11711 * config/h8300/h8300.c: Remove an extern declaration of
11712 rtx_equal_function_value_matters.
11713
11714 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11715
11716 * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11717 by hand.
11718 * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11719 (*iorqi3_1): Change to iorqi3_1.
11720 (*xorqi3_1): Change to xorqi3_1.
11721
11722 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11723
11724 * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11725 typos.
11726
11727 2004-02-17 Jan Hubicka <jh@suse.cz>
11728
11729 * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11730
11731 2004-02-18 Alan Modra <amodra@bigpond.net.au>
11732
11733 PR optimization/14119
11734 * combine.c (try_combine): When attemting to fix unrecognized insns,
11735 don't delete SETs marked with REG_EH_REGION notes.
11736
11737 2004-02-17 Ulrich Weigand <uweigand@de.ibm.com>
11738
11739 * combine.c (simplify_if_then_else): Do not replace
11740 (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11741 modes differ.
11742
11743 2004-02017 Steven Bosscher <stevenb@suse.de>
11744
11745 * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11746 function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11747 tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11748 * ada/utils.c: Likewise.
11749 * cp/decl.c: Likewise.
11750 * f/com.c: Likewise.
11751 * java/class.c: Likewise.
11752
11753 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11754
11755 * config/h8300/h8300.md: Fix comment typos.
11756
11757 2004-02-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11758
11759 * config/mips/t-iris6gld: Renamed to ...
11760 * config/mips/t-irix-gld: ... this.
11761 * config.gcc (mips-sgi-irix6*): Reflect this
11762 (mips-sgi-irix5*): Use it with GNU ld.
11763
11764 * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11765 to ...
11766 * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11767 * config/mips/t-irix-gld: Reflect this.
11768 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11769
11770 * config/mips/iris5gld.h: New file.
11771 * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11772 Only use collect2 without gas.
11773
11774 * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11775 Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11776 (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11777 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11778
11779 * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11780 * config/mips/iris5.h: ... here.
11781
11782 * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
11783 IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11784 (STARTFILE_SPEC, ENDFILE_SPEC): Define.
11785
11786 * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11787 using irix_startfile_spec, irix_endfile_spec.
11788
11789 2004-02-16 Gunther Nikl <gni@gecko.de>
11790
11791 * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11792
11793 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11794
11795 * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11796 insns by hand.
11797
11798 2004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11799
11800 * cfghooks.c (split_edge): Speed up updating of dominators.
11801
11802 2004-02-17 Mark Mitchell <mark@codesourcery.com>
11803
11804 PR c++/11326
11805 * c-common.c (flag_abi_version): Remove.
11806 * c-common.h (flag_abi_version): Likewise.
11807 * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11808 * c.opt (fabi-version): Remove.
11809 * calls.c (expand_call): Always pass a function type to
11810 struct_value_rtx. Use convert_memory_address.
11811 * common.opt (fabi-version): Add it.
11812 * flags.h (flag_abi_version): Likewise.
11813 (abi_version_at_least): New macro.
11814 * opts.c (common_handle_option): Add OPT_fabi_version.
11815 * toplev.c (flag_abi_version): Define it.
11816 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11817 New function.
11818 (ia64_output_mi_thunk): Use it.
11819 (ia64_struct_value_rtx): Likewise.
11820
11821 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11822
11823 * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11824 Don't generate insns by hand.
11825
11826 2004-02-17 Andrew Pinski <pinskia@physics.uc.edu>
11827
11828 PR c++/14178
11829 * doc/invoke.texi (fabi-version): The default is 2 now.
11830
11831 2004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11832
11833 * loop-iv.c: New file.
11834 * Makefile.in (loop-iv.o): New.
11835 * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11836 * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11837 num_loop_branches): New functions.
11838 * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11839 iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11840 find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11841 get_simple_loop_desc, free_simple_loop_desc): Declare.
11842 (simple_loop_desc): New inline function.
11843 (struct rtx_iv, struct niter_desc): New.
11844 * cfgloopmanip.c (loopify): Specify semantics more precisely.
11845 * expr.c (force_operand): Handle subregs of expressions created by
11846 loop unroller.
11847 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11848 parts of the initialization to toplev.c
11849 * loop-unroll.c (loop_exit_at_end_p): New.
11850 (unroll_and_peel_loops): Call iv_analysis_done.
11851 (decide_peel_once_rolling, decide_peel_completely,
11852 decide_unroll_stupid, decide_unroll_constant_iterations,
11853 decide_unroll_runtime_iterations, decide_peel_simple,
11854 peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11855 unroll_loop_runtime_iterations): Use new simple loop analysis.
11856 * loop-unswitch.c (compare_and_jump_seq): New.
11857 (may_unswitch_on_p): Renamed to ...
11858 (may_unswitch_on): Use new iv analysis.
11859 (reversed_condition): Export.
11860 (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11861 * predict.c (estimate_probability): Use new simple loop analysis.
11862 * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11863 canon_condition, simplify_using_condition): Declare.
11864 * stor-layout.c (get_mode_bounds): New.
11865 * toplev.c (rest_of_handle_loop2): Some parts of
11866 initialization/finalization moved here from loop-init.c.
11867
11868 2004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11869
11870 * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11871 pointer.
11872 (CALL_USED_REGISTERS): Likewise.
11873 (REG_ALLOC_ORDER): Likewise.
11874 (REG_CLASS) <GENERAL_REGS>: Likewise.
11875
11876 2004-02-16 Geoffrey Keating <geoffk@apple.com>
11877
11878 * doc/md.texi (Insn Canonicalizations): Document left-chaining
11879 in associative operators.
11880 * rtlanal.c (commutative_operand_precedence): Create some new
11881 variables. Prefer a commutative operand on the left, then
11882 binary expressions, then NEG and NOT.
11883
11884 2004-02-16 Matthias Klose <doko@debian.org>
11885
11886 * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11887 in terms of SHLIB_SOVERSION.
11888 * config/m68k/t-slibgcc-elf-ver: New file.
11889 * config/pa/t-slibgcc-elf-ver: New file.
11890 * config.gcc (m68k-linux, parisc-linux): Use them when not
11891 sjlj exceptions are not configured.
11892
11893 2004-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
11894
11895 * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11896
11897 2004-02-16 Zack Weinberg <zack@codesourcery.com>
11898
11899 * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11900
11901 2004-02-16 Joseph S. Myers <jsm@polyomino.org.uk>
11902
11903 * doc/sourcebuild.texi: Mention backends.html.
11904
11905 2004-02-16 Kazu Hirata <kazu@cs.umass.edu>
11906
11907 * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11908 line-map.c, line-map.h, var-tracking.c: Fix comment
11909 formatting.
11910
11911 2004-02-16 Richard Henderson <rth@redhat.com>
11912
11913 * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11914
11915 * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11916
11917 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
11918
11919 * config/h8300/h8300.md: Remove unnecessary parallels from
11920 all define_insn and define_split patterns.
11921
11922 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
11923
11924 * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11925 "clobber").
11926
11927 2004-02-15 Bernardo Innocenti <bernie@develer.com>
11928
11929 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11930 '%#'.
11931
11932 2004-02-15 Kazu Hirata <kazu@cs.umass.edu>
11933
11934 * config/ia64/ia64.c, config/mips/mips.c,
11935 config/mmix/mmix-modes.def: Fix comment typos.
11936
11937 2004-02-15 Roger Sayle <roger@eyesopen.com>
11938
11939 * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11940 (get_directive_line): Remove unused function prototype.
11941
11942 2004-02-14 Josef Zlomek <zlomekj@suse.cz>
11943
11944 * tree-inline.c (copy_body_r): Do not replace ret_label.
11945
11946 2004-02-14 Jan Hubicka <jh@suse.cz>
11947
11948 * i386.c (x86_four_jump_limit): New variable.
11949 (k8_avoid_jump_misspredicts): Rename to ...
11950 (ix86_avoid_jump_misspredicts): .. this one.
11951 (ix86_pad_returns): Break out from ...
11952 (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11953 to.
11954 * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11955
11956 2004-02-14 Josef Zlomek <zlomekj@suse.cz>
11957
11958 * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11959 PARALLEL is NULL.
11960
11961 2004-02-14 Per Bothner <per@bothner.com>
11962
11963 * fix-header.c (line_table): Move local variable in main to global.
11964 * scan.h (line_table): Use it.
11965 * scan-decls.c (scan_decls): Need to call linemap_lookup on token's
11966 line (recently renamed to src_loc) before calling recognized_function.
11967
11968 2004-02-14 Matt Kraai <kraai@alumni.cmu.edu>
11969
11970 * Makefile.in: Fix comment typos.
11971
11972 2004-02-14 Olivier Hainque <hainque@act-europe.fr>
11973
11974 * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11975 for start_value when it is directly moved into reg, and factorize
11976 the retrieval of GET_MODE (reg).
11977
11978 2004-02-14 Richard Sandiford <rsandifo@redhat.com>
11979
11980 * config/mips/mips-protos.h (mips_load_got_page): Delete.
11981 (mips_load_got_global): Delete.
11982 (mips_gotoff_page): Declare.
11983 * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11984 (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11985 UNSPEC_LOAD_GOT pattern rather than a MEM.
11986 (*load_got[sd]i): New patterns.
11987 * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11988 (mips_load_got_page, mips_load_got_global): Delete.
11989 (mips_gotoff_page): New function.
11990 (override_options): Don't initialize mips_got_alias_set.
11991
11992 2004-02-14 Richard Sandiford <rsandifo@redhat.com>
11993
11994 * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11995 (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11996 (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11997 (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11998 (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11999 * config/mips/mips.c: Fix some overly-long lines.
12000 (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12001 (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12002
12003 2004-02-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12004
12005 * configure.ac: Search for as, ld below libexec/gcc.
12006 * configure: Regenerate.
12007
12008 2004-02-14 Ben Elliston <bje@wasabisystems.com>
12009
12010 * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12011 __builtin_arm_setwcx ().
12012 * config/arm/arm.c (arm_expand_builtin): Generate operands
12013 correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12014
12015 2004-02-14 Ben Elliston <bje@wasabisystems.com>
12016
12017 * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12018 and "wmuluh" to "wmulsm" and "wmulum", respectively.
12019 * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12020 ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12021 * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12022 (_mm_mulhi_pu16): Likewise.
12023
12024 2004-02-13 Zack Weinberg <zack@codesourcery.com>
12025
12026 * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12027 DECL_NAME != 0 before dereferencing.
12028
12029 2004-02-13 Ulrich Weigand <uweigand@de.ibm.com>
12030
12031 * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12032 (s390_output_addr_const_extra): Declare.
12033 (s390_output_pool_entry): Remove FILE * argument.
12034 * config/s390/s390.c (s390_output_symbolic_const): Remove.
12035 (s390_output_addr_const_extra): New function.
12036 (print_operand_address): Call output_addr_const instead of
12037 s390_output_symbolic_const.
12038 (print_operand): Likewise.
12039 (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12040 Remove FILE * argument.
12041 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12042 * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12043 call.
12044
12045 2004-02-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
12046
12047 * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12048 (struct edge, struct vertex, struct graph): New.
12049 (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12050 free_graph): New functions.
12051
12052 2004-02-12 Chris Demetriou <cgd@broadcom.com>
12053
12054 * config/mips/mips.md (casesi_internal, casesi_internal_di):
12055 Use ".set macro" to avoid warnings about multi-instruction
12056 macros, since they're intentional.
12057
12058 2004-02-12 Geoffrey Keating <geoffk@apple.com>
12059
12060 * config/darwin.h: Add include guards. Remove old, now incorrect,
12061 comment about STANDARD_EXEC_PREFIX.
12062
12063 * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12064 $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule
12065 for installing .1 manpages. Add rules for installing cpp
12066 and gcov manpages under their installed names.
12067
12068 2004-02-12 Alexandre Oliva <aoliva@redhat.com>
12069
12070 * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12071 host, but try LD_FOR_TARGET first.
12072 * configure: Rebuilt.
12073
12074 2004-02-12 Zack Weinberg <zack@codesourcery.com>
12075
12076 * dbxout.c: Move declaration of dbxout_type_decl outside
12077 #ifdef DBX_DEBUGGING_INFO.
12078 * c-parse.in: Don't give the asmdef production a type.
12079
12080 2004-02-12 Zack Weinberg <zack@codesourcery.com>
12081
12082 * debug.h (struct gcc_debug_hooks): Add type_decl field.
12083 (debug_nothing_tree_int): Prototype.
12084 (dwarf_debug_hooks): Delete, unused.
12085 * debug.c (do_nothing_debug_hooks): Update.
12086 (debug_nothing_tree_int): New function.
12087 * langhooks.h (struct lang_hooks_for_decls):
12088 Remove builtin_type_decls field.
12089 * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12090 (LANG_HOOKS_DECLS): Update.
12091 * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12092 Use debug_hooks->type_decl.
12093 * dbxout.c (preinit_symbols): New static.
12094 (dbx_debug_hooks, xcoff_debug_hooks): Update.
12095 (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12096 lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols
12097 for symbols to output.
12098 (dbxout_type_decl): New function.
12099 (dbxout_symbol): If called before dbxout_init has run, queue
12100 the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12101 to TYPE_DECLs before emitting them.
12102 * xcoffout.c (assign_type_number): Delete.
12103 (xcoff_type_numbers): New static table.
12104 (xcoff_assign_fundamental_type_number): New function.
12105 * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12106 DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs.
12107 * sdbout.c: Include varray.h.
12108 (deferred_global_decls): New static.
12109 (sdb_debug_hooks): Update.
12110 (sdbout_global_decl): If we can't emit something right now,
12111 remember it in deferred_global_decls.
12112 (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12113 (sdbout_init): Initialize deferred_global_decls.
12114 * Makefile.in: Update dependencies of sdbout.o.
12115 * dwarf2out.c (dwarf2out_type_decl): New function.
12116 (dwarf2_debug_hooks): Update.
12117 * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12118 * c-decl.c (getdecls): Just return 0.
12119 (check_for_loop_decls): Don't use getdecls.
12120 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12121 * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12122
12123 2004-02-12 Ulrich Weigand <uweigand@de.ibm.com>
12124
12125 * config/s390/s390.c (s390_sched_reorder2): Remove.
12126 (TARGET_SCHED_REORDER2): Do not redefine.
12127
12128 2004-02-12 Zack Weinberg <zack@codesourcery.com>
12129
12130 * c-parse.in (maybe_type_qual): Delete.
12131 (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12132 (asm_argument): New grammar rules.
12133 (extdef_1): Use asmdef.
12134 (maybeasm): Move down with other asm rules; use simple_asm_expr.
12135 (xexpr): Move up with other expression rules.
12136 (stmt): Use asm_stmt.
12137
12138 * c-typeck.c (build_asm_expr): New function - body mostly
12139 pulled from build_asm_stmt.
12140 (build_asm_stmt): Just handle tacking on the volatile qualifier.
12141 * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12142
12143 2004-02-12 Richard Sandiford <rsandifo@redhat.com>
12144
12145 PR bootstrap/13617
12146 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12147 (mips_declare_object): Make variadic.
12148 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12149 mips_output_aligned_decl_common.
12150 * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12151 (mips_declare_object): Make variadic.
12152
12153 2004-02-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12154
12155 * function.c (update_epilogue_consts): Teach about binary operations.
12156
12157 * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12158 previous MEM_VOLATILE in REF.
12159 * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12160 * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12161
12162 2004-02-12 Gunther Nikl <gni@gecko.de>
12163
12164 * config.gcc: Restore support for m68k-openbsd.
12165
12166 2004-02-12 Jan Hubicka <jh@suse.cz>
12167
12168 * tree-optimize.c (tree_rest_of_compilation): Do not release
12169 DECL_ARGUMENTS.
12170
12171 2004-02-11 Matt Kraai <kraai@alumni.cmu.edu>
12172
12173 * doc/install.texi: Fix the spelling of "explicitly".
12174
12175 2004-02-11 Eric Christopher <echristo@redhat.com>
12176
12177 * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12178 duplicate argument structure of cpp_interpret_string.
12179 * cpphash.h: Move prototype...
12180 * cpplib.h: Here.
12181 * cpplib.c: Fix calls to match new function signature.
12182
12183 2004-02-11 Joseph S. Myers <jsm@polyomino.org.uk>
12184
12185 PR c/456
12186 * cppexp.c (num_binary_op): Don't allow comma operators in #if
12187 constant expressions at all outside C99 mode if pedantic.
12188
12189 2004-02-11 Uros Bizjak <uros@kss-loka.si>
12190
12191 * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12192 (log10_optab, log2_optab): Define corresponding macros.
12193 * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12194 * genopinit.c (optabs): Implement log10_optab and log2_optab
12195 using log10?f2 and log2?f2 patterns.
12196 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12197 using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12198 (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12199 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12200
12201 * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12202 log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12203 log2, log2f and log2l built-ins as inline x87 intrinsics.
12204
12205 2004-02-11 Richard Henderson <rth@redhat.com>
12206
12207 PR target/1532
12208 * flow.c (insn_dead_p): A clobber of a dead hard register is a
12209 dead insn after reload.
12210
12211 2004-02-11 Ulrich Weigand <uweigand@de.ibm.com>
12212
12213 * tree.h (frame_base_decl): Add GTY marker.
12214 * var-tracking.c (frame_base_decl): Likewise.
12215
12216 2004-02-11 Daniel Berlin <dberlin@dberlin.org>
12217
12218 * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12219 incorrect, hunk.
12220 (add_location_or_const_value_attribute): Use text_section_label,
12221 not TEXT_SECTION_NAME.
12222
12223 2004-02-11 Per Bothner <per@bothner.com>
12224
12225 Represent column numbers using line-map's source_location.
12226 The "next available source_location" is now managed internally by
12227 line-maps.c rather than by clients.
12228 * line-map.h (struct line_map): New field column_bits.
12229 <from_line>: Rename field to start_location.
12230 (struct line_maps): New fields highest_location and max_column_hint.
12231 (linemap_check_files_exited): New declaration.
12232 (linemap_line_start): New declaration.
12233 (linemap_add): Remove from_line parameter; use highest_location field.
12234 (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits.
12235 (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros.
12236 (CURRENT_LINE_MAP): Remove macro.
12237 (linemap_position_for_column): New inline function.
12238 * line-map.c (linemap_init): Clear new fields.
12239 (linemap_check_files_exited): New function, extracted from ...
12240 (linemap_free): Use linemap_check_files_exited.
12241 (linemap_add): Remove from_line parameter. Various updates.
12242 (linemap_line_start): New function.
12243 (linemap_lookeup): Update for new field names.
12244 * cpphash.h (struct cpp_reader) <map>: Field removed. Because
12245 linemap_position_for_column may unpredictably change the current map,
12246 it is cleaner and simpler for us to not cache it in cpp_reader.
12247 (struct cpp_buffer): New sysp field.
12248 Changed warned_cplusplus_comments and from_stage3 to bitfields.
12249 * cppinit.c (cpp_read_min_file): pfile->map no longer exists.
12250 * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get
12251 current map using linemap_lookup.
12252 (do_linemarker): Also set buffer's sysp field.
12253 (destringize_and_run): No longer need to decrement current line.
12254 * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer.
12255 (search_path_head, open_file_failed): Use buffer's sysp.
12256 (cpp_make_system_header): Get current map using linemap_lookup.
12257 Also set buffer's sysp flag.
12258 * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup.
12259 * cpphash.h (CPP_INCREMENT_LINE): New macro.
12260 (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ...
12261 (struct cpp_reader): ... and adding saved_line_base field.
12262 * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12263 Update accordingly. Don't adjust line.
12264 (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE.
12265 * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ...
12266 (cpp_in_system_header): ... new inline function, using buffer's sysp.
12267 * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header.
12268 * cpplex.c (_cpp_lex_direct): Likewise.
12269 * cppmacro.c (_cpp_builtin_macro_text): Likewise.
12270 * cppmacro.c (_cpp_create_definition): Use buffer's sysp field.
12271 * cpplib.h (struct cpp_token): Rename line field to src_loc.
12272 Remove col field as it is now subsumed by src_loc.
12273 * cpperror.c: Update various field, parameter, and macro names.
12274 (print_location): If col==0, try SOURCE_COLUMN of line.
12275 (cpp_error): Use cur_token's src_loc field, rather than line+col.
12276 * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col.
12277 * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12278 _cpp_skip_block_comment): Use CPP_INCREMENT_LINE.
12279 (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc.
12280 (_cpp_get_fresh_line): Don't need to adjust line for missing newline.
12281 (_cpp_lex_direct): Use linemap_position_for_column.
12282 * c-ppoutput.c (maybe_print_line, print_line): Don't take map
12283 parameter. Instead get it from the line_table global. Adjust callers.
12284 (print): Remove map field. Replace line field to src_line.
12285 (init_pp_output, account_for_newlines, maybe_print_line): Adjust.
12286 (cb_line_change): Use SOURCE_COLUMN. Minor optimizations.
12287 (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map.
12288 Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12289 * cpptrad.c (copy_comment): Rename variable.
12290 * c-lex.c (map): Remove static variable, for same reason we removed
12291 cpp_reader's map field.
12292 (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need
12293 to call linemap_lookup.
12294 (cb_line_change): Token's line field replaced by src_loc.
12295 (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros.
12296 Don't save new_map.
12297
12298 * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to
12299 source_location.
12300
12301 2004-02-11 Hartmut Penner <hpenner@de.ibm.com>
12302
12303 * config/rs6000/altivec.md (*movv4si_internal): At least one
12304 operand must be register_operand.
12305 (*movv8hi_internal1): Likewise.
12306 (*movv16qi_internal1): Likewise.
12307 (*movv4sf_internal1): Likewise.
12308
12309 2004-02-10 Aldy Hernandez <aldyh@redhat.com>
12310
12311 * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12312 operand.
12313 (movv4hi_internal): Same.
12314 (movv2sf_internal): Same.
12315 (movv1di_internal): Same.
12316
12317 2004-02-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
12318
12319 * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12320 TARGET_OLDABI consistently.
12321 * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12322 mips_va_arg,override_options,compute_frame_size,
12323 mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12324 ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12325 and TARGET_OLDABI consistently.
12326 * config/mips/mips.md (exception_receiver): Likewise.
12327 * config/mips/linux64.h: Likewise.
12328
12329 2004-02-11 Hartmut Penner <hpenner@de.ibm.com>
12330
12331 * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12332 Set AltiVec ABI and vrsave as default for ppc64 linux.
12333 (init_cumulative_args): Post error, if try to return
12334 value in AltiVec register without enable AltiVec.
12335 (function_arg_advance): Ditto for passing arguments.
12336
12337 2004-02-11 Richard Sandiford <rsandifo@redhat.com>
12338
12339 * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12340 a label before updating its usage count.
12341
12342 2004-02-10 Matt Kraai <kraai@alumni.cmu.edu>
12343
12344 * doc/install.texi: Remove extra cd.
12345
12346 2004-02-10 Ziemowit Laski <zlaski@apple.com>
12347
12348 * c-common.c (vector_size_helper): Remove; call
12349 reconstruct_complex_type() instead.
12350 * tree.c (reconstruct_complex_type): New function
12351 (formerly vector_size_helper() in c-common.c).
12352 (make_vector): Make externally visible.
12353 * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12354
12355 2004-02-10 Kazu Hirata <kazu@cs.umass.edu>
12356
12357 * config/h8300/h8300-protos.h: Add a prototype for
12358 h8300_regs_ok_for_stm.
12359 * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12360 * config/h8300/h8300.md (stm_h8300s_2_advanced,
12361 stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12362 stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12363 stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12364 ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12365 ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12366 ldm_h8300s_4_normal, ldm_h8300s_4): Use
12367 h8300_regs_ok_for_stm().
12368
12369 2004-02-10 Danny Smith <dannysmith@users.sourceforge.net>
12370
12371 PR c/14088
12372 * real.c (real_from_string): Look for 'X' as well as 'x' in
12373 hexfloat strings.
12374
12375 2004-02-10 Kazu Hirata <kazu@cs.umass.edu>
12376
12377 * config/h8300/h8300.md: Remove an incorrect comment about
12378 peephole2. Add comments.
12379
12380 2004-02-10 Josef Zlomek <zlomekj@suse.cz>
12381
12382 PR/14058
12383 * emit-rtl.c (set_decl_incoming_rtl): New.
12384 * tree.h (set_decl_incoming_rtl): New.
12385 * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12386 DECL_INCOMING_RTL.
12387 * ada/misc.c (adjust_decl_rtl): Likewise.
12388
12389 2004-02-10 Per Bothner <per@bothner.com>
12390
12391 * c-opts.c (c_common_post_options): Don't emit working directory
12392 in cpp output if -P was specified.
12393
12394 2004-02-10 Paolo Bonzini <bonzini@gnu.org>
12395
12396 PR c/14092
12397 * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12398 negate_expr back to the original type.
12399
12400 2004-02-10 Alan Modra <amodra@bigpond.net.au>
12401
12402 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12403 bump retaddr here.
12404
12405 2004-02-10 Paolo Bonzini <bonzini@gnu.org>
12406
12407 * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12408 gen_lowpart_SUBREG): Move under the file in which they
12409 are actually declared.
12410
12411 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>
12412
12413 * doc/sourcebuild.texi: Add libada documentation.
12414
12415 * doc/install.texi: Update documentation on Ada build, now
12416 that the GNAT lib and tools are built automatically.
12417
12418 2004-02-10 Richard Sandiford <rsandifo@redhat.com>
12419
12420 * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12421 && TARGET_IRIX.
12422
12423 2004-02-09 Ziemowit Laski <zlaski@apple.com>
12424
12425 * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12426 boundaries outside build_component_ref() call (a macro in ObjC++).
12427
12428 2004-02-09 Bob Wilson <bob.wilson@acm.org>
12429
12430 * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12431 (init_cumulative_args): Likewise.
12432 (a7_overlap_mentioned_p): Delete prototype.
12433 * config/xtensa/xtensa.c (struct machine_function): Replace
12434 incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12435 Add set_frame_ptr_insn field.
12436 (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12437 (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12438 if the operand is an argument in a7. If so, copy a7 to a new pseudo
12439 at the function entry and replace the operand with the pseudo.
12440 (init_cumulative_args): Remove unused arguments. Add new "incoming"
12441 argument and record this flag in CUMULATIVE_ARGS.
12442 (function_arg): Remove result_mode and special-case code to handle
12443 arguments in a7. Instead, set need_a7_copy flag when there is an
12444 incoming argument in a7.
12445 (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12446 and use the value recorded in cfun->machine->set_frame_ptr_insn.
12447 (xtensa_builtin_saveregs): Check for negative gp_left value. Set
12448 need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
12449 special-case code.
12450 (a7_overlap_mentioned_p): Delete.
12451 * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12452 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12453 arguments to init_cumulative_args and pass "incoming" flag instead.
12454 (BLOCK_REG_PADDING): Delete.
12455 * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12456 checks for reload_in_progress and reload_completed. Update calls to
12457 xtensa_copy_incoming_a7.
12458 (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
12459 to call xtensa_copy_incoming_a7.
12460
12461 2004-02-09 DJ Delorie <dj@redhat.com>
12462
12463 * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12464 longer modify standard_exec_prefix, standard_bindir_prefix, or
12465 standard_startfile_prefix.
12466
12467 2004-02-09 James E Wilson <wilson@specifixinc.com>
12468
12469 PR c++/11295
12470 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12471 to expand_expr_real call, and pass in alt_rtl as last argument.
12472
12473 PR libstdc++/5625
12474 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12475 * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12476 * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12477 * except.c (expand_builtin_extend_pointer): New.
12478 * except.h (expand_builtin_extend_pointer): Declare.
12479
12480 2004-02-09 David Edelsohn <edelsohn@gnu.org>
12481
12482 * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12483 unaligned loads and stores.
12484
12485 2004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12486
12487 * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12488 * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12489
12490 * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12491 * config/mips/iris5.h: ... here.
12492 * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12493
12494 * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12495 * config/mips/iris5.h: ... here.
12496
12497 2004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12498
12499 * configure.ac: Remove default executable files before AC_PROG_CC.
12500 * configure: Regenerate.
12501
12502 2004-02-09 Kazu Hirata <kazu@cs.umass.edu>
12503
12504 PR target/13721
12505 * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12506 print a operand other than a register.
12507
12508 2004-02-09 Roger Sayle <roger@eyesopen.com>
12509
12510 * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12511 tree code rather than call fold_convert, which doesn't specify a
12512 default floating point to integer conversion.
12513
12514 2004-02-08 Bernardo Innocenti <bernie@develer.com>
12515
12516 * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12517 code to support SGS assembler. Reformat adjacent code where possible.
12518 * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12519 definition.
12520 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12521 for '%#'.
12522 * config/m68k/linux.h, config/m68k/m68k.c,
12523 * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12524 macros and asm_printf() format strings.
12525 * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12526 * config/m68k/linux.h: Update copyright.
12527 * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12528
12529 2004-02-08 Andreas Schwab <schwab@suse.de>
12530 Bernardo Innocenti <bernie@develer.com>
12531
12532 * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12533 REGISTER_PREFIX.
12534 * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12535 frame pointer register, overridable by OS targets.
12536 * (M68K_REGNAME): Macro to obtain register name for asm output,
12537 eventually replacing %a6 with M68K_FP_REG_NAME.
12538 * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12539 * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12540 * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12541 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12542 * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12543
12544 2004-02-08 Kazu Hirata <kazu@cs.umass.edu>
12545
12546 * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12547 hook_rtx_tree_int_null.
12548 * targhooks.c (default_struct_value_rtx): Remove.
12549 * targhooks.h: Remove the prototype for
12550 default_struct_value_rtx.
12551 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12552 config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12553 config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12554 config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12555 config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12556 config/rs6000/rs6000.c, config/s390/s390.c,
12557 config/stormy16/stormy16.c, config/v850/v850.c,
12558 config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12559 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12560
12561 2004-02-08 Joseph S. Myers <jsm@polyomino.org.uk>
12562
12563 * README.Portability: Change "ISO C89" to "ISO C90".
12564 * c-parse.in (primary, initelt): Likewise.
12565
12566 2004-02-08 Richard Sandiford <rsandifo@redhat.com>
12567
12568 * real.c (encode_ibm_extended): Normalize the input value before
12569 converting it to a double. Handle the case where a normal value
12570 rounds to infinity.
12571
12572 2004-02-08 Kazu Hirata <kazu@cs.umass.edu>
12573
12574 * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12575 warning.
12576 * cse.c (preferrable): Change to preferable. Update all of its
12577 callers.
12578 * genautomata.c (ainsn): Change
12579 first_ainsn_with_given_equialence_num to
12580 first_ainsn_with_given_equivalence_num. Update all of its
12581 references.
12582
12583 2004-02-08 Jan Hubicka <jh@suse.cz>
12584
12585 * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12586
12587 2004-02-07 David Edelsohn <edelsohn@gnu.org>
12588
12589 * function.c (assign_parms): Fix formatting.
12590
12591 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12592
12593 * default.h (PROMOTE_PROTOTYPES): Remove.
12594 * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12595 STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12596 EXPAND_BUILTIN_SAVEREGS): Poison.
12597 * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12598 hook_bool_tree_false.
12599 (TARGET_PROMOTE_PROTOTYPES): Likewise.
12600 * target.h: Replace SETUP_INCOMING_VARARGS with
12601 targetm.calls.setup_incoming_varargs().
12602 * targhooks.c (default_promote_function_return): Remove.
12603 (default_promote_prototypes): Likewise.
12604 (default_struct_value_rtx): Always abort().
12605 (default_expand_builtin_saveregs): Always print an error
12606 message.
12607 (default_setup_incoming_varargs): Do nothing.
12608 (default_pretend_outgoing_varargs_named): Don't depend on
12609 SETUP_INCOMING_VARARGS.
12610 * targhooks.h: Remove the prototype for
12611 default_promote_function_return and
12612 default_promote_prototypes.
12613
12614 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12615
12616 * system.h (SHARED_SECTION_ASM_OP): Poison.
12617 * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12618 * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12619
12620 2004-02-07 Zack Weinberg <zack@codesourcery.com>
12621
12622 Bug 13856
12623 * c-decl.c (diagnose_mismatched_decls): Only give special
12624 treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12625 is also true.
12626 (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12627 DECL_FUNCTION_CODE when defining a built-in function.
12628 Don't update DECL_ESTIMATED_INSNS.
12629 * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12630 FUNCTION_DECLs.
12631 * tree.h: Delete DECL_ESTIMATED_INSNS.
12632 * tree-inline.c (struct inline_data): Delete inlined_insns field.
12633 (expand_call_inline, optimize_inline_calls): Don't update
12634 DECL_ESTIMATED_INSNS nor inlined_insns.
12635 * cgraphunit.c (cgraph_analyze_function): Don't update
12636 DECL_ESTIMATED_INSNS.
12637
12638 2004-02-07 Zack Weinberg <zack@codesourcery.com>
12639
12640 * c-common.c (shadow_warning): Delete.
12641 * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12642 * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12643 * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12644 * c-parse.in (free_parser_stacks): Delete.
12645
12646 2004-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
12647
12648 * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12649 config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12650 Use the top level mkinstalldirs, not the one in the gcc subdir.
12651 * mkinstalldirs: Remove (from the gcc subdir).
12652
12653 2004-02-07 Roger Sayle <roger@eyesopen.com>
12654
12655 PR middle-end/13696
12656 * fold-const.c (fold_convert): New function to provide type
12657 conversion to the middle-end without using convert.
12658 (negate_expr, associate_trees, size_diffop, omit_one_operand,
12659 operand_equal_for_comparison_p, pedantic_omit_one_operand,
12660 invert_truthvalue, optimize_bit_field_compare, range_binop,
12661 decode_field_reference, make_range, build_range_check, unextend,
12662 fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12663 fold_binary_op_with_conditional_arg, fold_inf_compare,
12664 fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12665 convert with calls to fold_convert.
12666
12667 2004-02-07 Jan Hubicka <jh@suse.cz>
12668
12669 * genrecog.c (find_operand): add extra argument stop.
12670 (validate_pattern): Verify that mach_dup is duplicating operand
12671 defined lexically earlier.
12672
12673 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12674
12675 * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12676 * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12677 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12678 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12679 config/ia64/ia64.h, config/ip2k/ip2k.h,
12680 config/iq2000/iq2000.h, config/mips/iris5.h,
12681 config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12682 config/rs6000/aix51.h, config/rs6000/aix52.h,
12683 config/rs6000/darwin.h, config/rs6000/rs6000.h,
12684 config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12685 config/sparc/linux.h, config/sparc/linux64.h,
12686 config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12687 config/xtensa/xtensa.h: Remove the definitions of
12688 MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12689 MAX_WCHAR_TYPE_SIZE.
12690 * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12691 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12692
12693 2004-02-07 Stephane Carrez <stcarrez@nerim.fr>
12694
12695 PR bootstrap/13990
12696 * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12697 gen_rtx_NE.
12698
12699 2004-02-07 Josef Zlomek <zlomekj@suse.cz>
12700
12701 * var-tracking.c (vt_add_function_parameters): Surround checkings by
12702 #ifdef ENABLE_CHECKING and #endif.
12703
12704 2004-02-07 Roger Sayle <roger@eyesopen.com>
12705
12706 * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12707 either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12708 (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12709 integer types and floating point with unsafe_math_optimizations.
12710 Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12711 Optimize A - B as A + (-B), if B is easily negated.
12712
12713 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12714
12715 * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12716 config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12717 config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12718 config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12719 Update copyright.
12720
12721 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12722
12723 * c-ppoutput.c, var-tracking.c: Fix comment typos.
12724
12725 2004-02-06 James E Wilson <wilson@specifixinc.com>
12726
12727 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12728 glibc 2.3 or better.
12729
12730 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12731
12732 * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12733 to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12734
12735 2004-02-07 Alan Modra <amodra@bigpond.net.au>
12736
12737 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12738 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12739 (SHLIB_MKMAP_OPTS): Delete.
12740 (TARGET_LIBGCC2_CFLAGS): Add -specs.
12741 (bispecs): Add rule.
12742 * config/rs6000/libgcc-ppc64.ver: New file.
12743 * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12744 (__floatdidf, __floatdisf): Optimize multiply.
12745 (__fixunstfdi): New function.
12746 * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12747 real and imag parts larger than one register.
12748 (function_arg): Correct type of reg used when fp arg split partially
12749 to stack.
12750 * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12751 and __MACH__ or __powerpc64__.
12752
12753 2004-02-06 Roger Sayle <roger@eyesopen.com>
12754 Ulrich Weigand <uweigand@de.ibm.com>
12755
12756 * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12757 of gen_highpart or gen_lowpart when the floating point format is
12758 wider than the result mode.
12759
12760 2004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
12761
12762 * dwarf2out.c (loclabel_num): Move into #ifdef
12763 DWARF2_DEBUGGING_INFO.
12764
12765 2004-02-06 Ziemowit Laski <zlaski@apple.com>
12766
12767 * objc/objc-act.c (build_super_template) the 'class' field of
12768 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12769 (get_super_receiver): Likewise.
12770
12771 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12772
12773 * reload1.c (check_eliminable_occurrences): Optimize the reset
12774 of can_eliminate.
12775 (eliminate_regs_in_insn): Likewise.
12776
12777 2004-02-06 Daniel Berlin <dberlin@dberlin.org>
12778 Josef Zlomek <zlomekj@suse.cz>
12779
12780 * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12781 at the beginning of function, call dwarf2out_var_location for
12782 NOTE_INSN_VAR_LOCATION note.
12783 (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12784 decl_loc_table): New.
12785 (lookup_decl_loc): New function.
12786 (add_var_loc_to_decl): New function.
12787 (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12788 only if can_use_fbreg.
12789 (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12790 functions.
12791 (loc_descriptor): Likewise. Process VAR_LOCATION.
12792 (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12793 (loc_descriptor_from_tree): Call mem_loc_descriptor with
12794 can_use_fbreg == true.
12795 (add_location_or_const_value_attribute): Added parameter enum
12796 dwarf_attribute attr, generate attribute ATTR. Create the location list.
12797 (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12798 (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12799 with attr == DW_AT_location.
12800 (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12801 if frame_base_decl is defined and has a location list.
12802 (gen_variable_die): Call add_location_or_const_value_attribute with
12803 attr == DW_AT_location.
12804 (dwarf2out_var_location): New function.
12805 (dwarf2out_begin_function): New function.
12806 (dwarf2out_init): Create decl_loc_table.
12807
12808 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
12809
12810 * loop.c (force_movables): Transitively increase the priorities of
12811 all insns forces by an insn, not just the first one.
12812
12813 2004-02-06 Josef Zlomek <zlomekj@suse.cz>
12814 Daniel Berlin <dberlin@dberlin.org>
12815
12816 Josef Zlomek <zlomekj@suse.cz>
12817 * Makefile.in (var-tracking.o): New.
12818 * common.opt (fvar-tracking): New.
12819 * flags.h (flag_var_tracking): New.
12820 * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12821 * opts.c (common_handle_option): Add OPT_fvar_tracking.
12822 * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
12823 * rtl.c (note_insn_name): Likewise.
12824 * rtl.def (VAR_LOCATION): New.
12825 * rtl.h (NOTE_VAR_LOCATION): New.
12826 (NOTE_VAR_LOCATION_DECL): New.
12827 (NOTE_VAR_LOCATION_LOC): New.
12828 (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12829 (variable_tracking_main): New exported function.
12830 * timevar.def (TV_VAR_TRACKING): New.
12831 * toplev.c (enum dump_file_index): Added DFI_vartrack.
12832 (dump_file): "vartrack" was added (-dV).
12833 (flag_var_tracking): New.
12834 (f_options): "var-tracking" was added.
12835 (rest_of_handle_variable_tracking): New function.
12836 (rest_of_compilation): Run variable tracking.
12837 (process_options): If user has not specified flag_var_tracking set it
12838 according to optimize, debug_info_level and debug_hooks.
12839 * tree.h (frame_base_decl): New.
12840 * var-tracking.c: New file.
12841 * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12842 (ia64_override_options): Set flags to run variable tracking in machine
12843 dependent reorg instead of toplev.c.
12844 (ia64_reorg): Run variable tracking if wanted.
12845 * doc/invoke.texi: Mention variable tracking in -dV,
12846 add and -fvar-tracking.
12847 * doc/passes.texi: Added variable tracking pass.
12848
12849 Daniel Berlin <dberlin@dberlin.org>
12850 * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12851 * dbxout.c (dbx_debug_hooks): Likewise.
12852 (xcoff_debug): Likewise.
12853 * debug.c (do_nothing_debug_hooks): Likewise.
12854 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12855 * dwarfout.c (dwarf_debug_hooks): Likewise.
12856 * sdbout.c (sdb_debug_hooks): Likewise.
12857 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12858 * final.c (final_scan_insn): Call var_location debug hook for each
12859 NOTE_INSN_VAR_LOCATION.
12860
12861 2004-02-06 Jan Hubicka <jh@suse.cz>
12862
12863 * flow.c (update_life_info): Allocate reg_deaths when called from
12864 scheudler.
12865 (attempt_auto_inc): Update life ranges accordingly.
12866
12867 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
12868
12869 PR debug/11816
12870 * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12871
12872 2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
12873
12874 * cfganal.c (flow_call_edges_add): Never split a libcall block.
12875
12876 2004-02-06 Daniel Berlin <dberlin@dberlin.org>
12877
12878 * dwarf2out.c (output_loc_list): Don't use deltas if we have
12879 a separate line info table in use.
12880 Use the correct size for terminators.
12881 (output_die): Use offset, not delta.
12882
12883 2004-02-06 H.J. Lu <hongjiu.lu@intel.com>
12884
12885 * doc/invoke.texi: Remove the pni option from -mfpmath=.
12886
12887 2004-02-06 Jan Hubicka <jh@suse.cz>
12888
12889 * recog.c (split_all_insns): Do not update reg info.
12890 * regrename.c (regrename_optimize): Likewise.
12891 * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12892 * flow.c (struct propagate_block_info): Add insn_num field.
12893 (reg_deaths): New array.
12894 (life_analysis): Free reg_deaths info.
12895 (allocate_reg_life_data): Allocate reg_deaths array.
12896 (propagate_one_insn): Use new array.
12897 (init_propagate_block): Initialize it.
12898 (free_propagate_block_info): Finish compuation of
12899 REG_LIVE_LENGTH
12900 (attempt_auto_inc): Sanity check that REG_INFO is not
12901 computed at same time.
12902 (mark_used_regs): Update new array.
12903
12904 * reg-stack.c (subst_stack_regs): Unshare clobbers before
12905 substitution.
12906
12907 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12908
12909 * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12910 *extendqisi2_short_displ.
12911
12912 2004-02-06 Alan Modra <amodra@bigpond.net.au>
12913
12914 * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12915 * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12916 (emit_library_call_value_1): Likewise pass nargs.
12917 * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12918 * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12919 * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12920 parameter instead of scanning TYPE_ARGS_TYPES to count args.
12921 * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12922 prototype.
12923 * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12924 (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12925 (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12926 * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12927 INIT_CUMULATIVE_ARGS.
12928 * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12929 * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12930 config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12931 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12932 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12933 config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12934 config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12935 config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12936 config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12937 config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12938 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12939 config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12940
12941 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12942
12943 * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12944 possible.
12945
12946 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12947
12948 * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12949 note containing (plus (reg) (const_int)), where reg is an
12950 eliminable reg, then perform the register elimination without
12951 depending on eliminate_regs().
12952
12953 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12954
12955 * config/arc/arc.c (arc_return_in_memory): Check the return
12956 value of int_size_in_bytes against -1. Don't check
12957 TREE_ADDRESSABLE.
12958 * config/avr/avr.c (avr_return_in_memory): Check the return
12959 value of int_size_in_bytes against -1.
12960 * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12961 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12962 Likewise.
12963 * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12964 * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12965 Likewise.
12966
12967 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12968
12969 * config/frv/frv-protos.h: Remove the prototype for
12970 frv_setup_incoming_varargs.
12971 * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12972 (frv_setup_incoming_varargs): Make it static.
12973 * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12974
12975 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12976
12977 * config/fr30/fr30-protos.h: Remove the prototype for
12978 fr30_setup_incoming_varargs.
12979 Update the prototypes for fr30_num_arg_regs and
12980 fr30_function_arg_partial_nregs.
12981 * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12982 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12983 (fr30_setup_incoming_varargs): Make it static.
12984 Add argument second_time. Don't do anything when second_time
12985 is nonzero.
12986 (fr30_num_arg_regs): Change the type of the first argument to
12987 enum machine_mode.
12988 (fr30_function_arg_partial_nregs): Change the type of the
12989 second argument to enum machine_mode.
12990 * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12991 (SETUP_INCOMING_VARARGS): Remove.
12992
12993 2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12994
12995 * config/arc/arc-protos.h: Remove the prototype for
12996 arc_setup_incoming_varargs.
12997 * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12998 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12999 (arc_setup_incoming_varargs): Make it static.
13000 (arc_external_libcall): Likewise.
13001 * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13002 Remove the commented-out definition of
13003 ASM_OUTPUT_EXTERNAL_LIBCALL.
13004
13005 2004-02-05 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
13006
13007 * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13008 to $$(slibdir) in the installation commands.
13009
13010 2004-02-05 David Edelsohn <edelsohn@gnu.org>
13011
13012 * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13013 with inner_regno, not regno.
13014 * rtlanal.c (refers_to_regno_p): Same.
13015
13016 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13017
13018 * config.gcc: Remove i370 support.
13019
13020 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
13021
13022 * doc/install.texi: Update automake and autoconf version
13023 requirements. Note where to find gcj automake version.
13024
13025 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
13026
13027 * Makefile.in (generate-manpages): Move dependencies to ...
13028 (man): here.
13029 * doc/makefile.texi: Document new targets.
13030 * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13031
13032 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
13033
13034 PR/13485
13035 Makefile.in (srcextra): Add a level of indirection to ...
13036 (gcc.srcextra): ... here.
13037 (po-generated): Delete.
13038 (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on
13039 options.c.
13040 (start.encap): Remove superfluous lang.srcextra dependency.
13041 objc/Make-lang.in (po-generated): Delete.
13042
13043 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13044
13045 * config/ia64/ia64.c (REG_GP): Remove.
13046
13047 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13048
13049 * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13050
13051 2004-02-05 Devang Patel <dpatel@apple.com>
13052
13053 * dwarf2out.c (force_type_die): Look up input type itself
13054 instead of root_type() of type.
13055
13056 2004-02-05 Andreas Krebbel <krebbel1@de.ibm.com>
13057
13058 * config/s390/s390.md ("*tmqidi_ext"): New insn.
13059 ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13060 pre-reload splitters are transformed to post-reload
13061 define_insn_and_split patterns.
13062 ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13063
13064 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13065
13066 * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13067 TARGET_PROMOTE_PROTOTYPES.
13068
13069 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13070
13071 PR middle-end/13750
13072 Revert:
13073 2004-01-15 Geoffrey Keating <geoffk@apple.com>
13074 PR pch/13361
13075 * c-typeck.c (constructor_asmspec): Delete.
13076 (struct initializer_stack): Delete field 'asmspec'.
13077 (start_init): Delete saving of asmspec.
13078 (finish_init): Don't update constructor_asmspec.
13079 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13080 * stmt.c (expand_asm): Duplicate strings from tree.
13081 (expand_asm_operands): Likewise.
13082 * tree.c (tree_size): Update computation of size of STRING_CST.
13083 (make_node): Don't make STRING_CST nodes.
13084 (build_string): Allocate string with tree node.
13085 * tree.def (STRING_CST): Update comment.
13086 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13087 (tree_string): Place contents of string in tree node.
13088 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13089 from tree.
13090
13091 2004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
13092
13093 * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13094 msgid.
13095
13096 2004-02-05 Dorit Naishlos <dorit@il.ibm.com>
13097
13098 * config/rs6000/altivec.md (*movv4si_internal): At least one
13099 operand must be altivec_register_operand.
13100 (*movv8hi_internal1): Likewise.
13101 (*movv16qi_internal1): Likewise.
13102 (*movv4sf_internal1): Likewise.
13103
13104 2004-02-05 David Edelsohn <edelsohn@gnu.org>
13105
13106 * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13107 * configure: Regenerate.
13108
13109 2004-02-05 Jonathan Wakely <redi@gcc.gnu.org>
13110
13111 * doc/install.texi: Update description of --gxx-include-dir to
13112 give correct default value.
13113
13114 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13115
13116 * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13117 8 with MAC_REG.
13118
13119 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13120
13121 * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13122 gen_rtx_PARALLEL.
13123
13124 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13125
13126 * emit-rtl.c: Update the comment about the file.
13127
13128 2004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
13129
13130 * sourcebuild.texi (Test Idioms): Update testcase naming
13131 conventions.
13132
13133 2004-02-04 Per Bothner <per@bothner.com>
13134
13135 Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13136 * c-ppoutput.c (pp_dir_change): New function.
13137 * c-common.h (pp_dir_change): New declaration.
13138 * cpplib.h (struct cpp_options): Remove working_directory field.
13139 * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to
13140 (cpp_read_main_file): as before 10-01. Call _cpp_stack_file.
13141 Don't handle -fworking_directory here, but in c_common_post_options.
13142 (read_original_directory): Don't back up when done.
13143 Don't clear no-longer used working_directory flag.
13144 * cpplib.h: Update declarations to match.
13145 * c-lex.c (cb_dir_change): Move to c-opts.c.
13146 (init_c_lex): Don't set dir_change callback here, since we want
13147 to set it even if flag_preprocess_only.
13148 * c-opts.c (cb_dir_change): Function moved from c-lex.c.
13149 (c_common_post_options): Set dir_change callback.
13150 Call pp_dir_change if approporiate.
13151 (finish_options): Don't call cpp_find_main_file here. Hence remove
13152 unneeded parameter and result. Do LC_RENAME for <built-in>.
13153 (c_common_post_options): Call cpp_read_main_file here instead.
13154 (c_common_init): Update accordingly.
13155 (push_command_line_include): Don't cpp_push_main_file.
13156 Do LC_RENAME rather than LC_LEASE to get back to main file.
13157 Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13158 (c_common_parse_file): Call cpp_read_main_file for subsequent main
13159 files, but call finish_options for all files.
13160 * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory.
13161 * fix-header.c (read_scan_file): Call cpp_read_main_file instead of
13162 cpp_find_main_file + cpp_push_main_file.
13163 * c-lex.c (fe_file_change): Don't set main_input_filename here.
13164 * opts.c (handle_options): Only set main_input_filename first time.
13165
13166 2004-02-05 Ian Lance Taylor <ian@wasabisystems.com>
13167
13168 * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13169
13170 2004-02-04 Geoffrey Keating <geoffk@apple.com>
13171
13172 * reload.c (find_equiv_reg): When checking for register overlap,
13173 don't index hard_regno_nregs with a pseudo-reg.
13174
13175 2004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
13176
13177 * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13178
13179 2004-02-04 David Edelsohn <edelsohn@gnu.org>
13180
13181 * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13182 against FIRST_PSEUDO_REGISTER.
13183
13184 2004-02-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13185
13186 * Makefile.in: Move target, host overrides after per-language
13187 fragments.
13188
13189 * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13190 (GNATLIBCFLAGS): Remove -g.
13191
13192 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13193
13194 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13195 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13196 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13197 config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13198 config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13199 config/sparc/sparc.c, config/vax/vax.c: Revert the
13200 replacements of "FALLTHRU" with "Fall through" done in the
13201 previous patch.
13202
13203 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13204
13205 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13206 config/arm/arm.c, config/arm/arm.md,
13207 config/cris/cris-protos.h, config/fr30/fr30.c,
13208 config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13209 config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13210 config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13211 config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13212 config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13213 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13214 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13215 config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13216 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13217 config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13218 config/s390/s390.md, config/sparc/netbsd-elf.h,
13219 config/sparc/openbsd.h, config/sparc/sparc.c,
13220 config/xtensa/lib2funcs.S: Fix comment formatting.
13221
13222 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13223
13224 * config/alpha/alpha.c, config/arc/arc.c,
13225 config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13226 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13227 config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13228 config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13229 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13230 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13231 config/iq2000/iq2000.c, config/m32r/m32r.c,
13232 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13233 config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13234 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13235 config/rs6000/rs6000.h, config/sparc/sparc.c,
13236 config/vax/vax.c: Fix comment typos. Follow spelling
13237 conventions.
13238
13239 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13240
13241 * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13242 caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13243 ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13244 sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13245 config/arm/fpa.md, config/arm/iwmmxt.md,
13246 config/arm/netbsd-elf.h, config/arm/netbsd.h,
13247 config/m68hc11/m68hc11.md, config/mips/iris5.h,
13248 config/mn10300/mn10300.md, config/rs6000/altivec.md,
13249 config/sparc/netbsd-elf.h: Update copyright.
13250
13251 2004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr>
13252
13253 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13254 for all modes whose size is greater than 8 bytes if ARCH32.
13255 (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13256 by reference if ARCH32.
13257
13258 2004-02-04 Aldy Hernandez <aldyh@redhat.com>
13259
13260 * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13261
13262 2004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
13263
13264 * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13265 to before adddi3 insn patterns.
13266 ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13267 "reload_insi"): Move to before addsi3 insn patterns.
13268
13269 2004-02-04 Mark Mitchell <mark@codesourcery.com>
13270
13271 * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13272 parameter. Use it instead of current_function_is_thunk.
13273 * function.h (struct function): Update documentation for is_thunk.
13274 * tree.h (CALL_FROM_THUNK_P): New macro.
13275 * config/alpha/alpha.c (alpha_sa_mask): Do not check
13276 no_new_pseudos when testing current_function_is_thunk.
13277 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13278
13279 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13280
13281 * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13282 TARGET_SETUP_INCOMING_VARARGS.
13283
13284 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13285
13286 * emit-rtl.c (gen_rtx): Remove.
13287 * genattrtab.c: Don't mention gen_rtx in a comment.
13288 * rtl.h: Remove the prototype for gen_rtx.
13289 * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13290
13291 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13292
13293 * config/arc/arc.h, config/fr30/fr30.h
13294 (SETUP_INCOMING_VARARGS): Remove the target-independent
13295 comments.
13296 * doc/tm.texi: Don't mention deprecated target macros.
13297
13298 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13299
13300 * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13301 target-independent comment.
13302
13303 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13304
13305 * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13306 mention deprecated target macros.
13307
13308 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13309
13310 * config.gcc: Remove obsolete ports and configurations.
13311 * config/linux-aout.h, config/netware.h,
13312 config/t-linux-gnulibc1, config/d30v/abi,
13313 config/d30v/d30v-protos.h, config/d30v/d30v.c,
13314 config/d30v/d30v.h, config/d30v/d30v.md,
13315 config/d30v/libgcc1.asm, config/d30v/t-d30v,
13316 config/dsp16xx/dsp16xx-modes.def,
13317 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13318 config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13319 config/i370/README, config/i370/i370-c.c,
13320 config/i370/i370-protos.h, config/i370/i370.c,
13321 config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13322 config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13323 config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13324 config/i386/moss.h, config/i386/netware.h,
13325 config/i386/svr3.ifile, config/i386/svr3dbx.h,
13326 config/i386/svr3gas.h, config/i386/svr3z.ifile,
13327 config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13328 config/i960/i960-c.c, config/i960/i960-coff.h,
13329 config/i960/i960-modes.def, config/i960/i960-protos.h,
13330 config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13331 config/i960/rtems.h, config/i960/t-960bare,
13332 config/m68k/hp310.h, config/m68k/hp320.h,
13333 config/m68k/hp320base.h, config/m68k/m68kv4.h,
13334 config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13335 Remove.
13336 * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13337 doc/md.texi: Remove mentions of obsolete ports.
13338
13339 2004-02-04 Jan Hubicka <jh@suse.cz>
13340
13341 * alias.c (find_base_term, get_addr): Do not dereference NULL
13342 pointer when all VALUE's locations has been invalidated.
13343 (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13344
13345 2004-02-03 Wolfgang Bangerth <bangerth@dealii.org>
13346
13347 * doc/invoke.texi (x86 options): Fix spelling/wording.
13348
13349 2004-02-03 Richard Sandiford <rsandifo@redhat.com>
13350
13351 * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13352 put the original string in a comment.
13353 * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13354 * config/mips/mips.c (mips_output_ascii): Likewise.
13355 * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13356
13357 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13358
13359 * system.h (GIV_SORT_CRITERION): Poison.
13360 * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13361 * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13362
13363 2004-02-03 Roger Sayle <roger@eyesopen.com>
13364
13365 PR target/9348
13366 * expr.c (expand_expr_real) <MULT_EXPR>: When performing widening
13367 multiplies with a multiplication of the wrong signedness, its the
13368 signedness of the multiplication that we've performed that needs to
13369 be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move
13370 if expand_mult_highpart_adjust places the result in target.
13371
13372 2004-02-03 Richard Henderson <rth@redhat.com>
13373
13374 * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13375
13376 2004-02-03 J"orn Rennecke <joern.rennecke@superh.com>
13377
13378 * config.gcc (sh[234]l): Use little endian fragments.
13379
13380 2004-02-03 Paul Koning <pkoning@equallogic.com>
13381
13382 * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13383 * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13384 * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13385 encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13386 floating point format.
13387 (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13388 the above functions.
13389 (output_move_quad): Output float values in correct target format.
13390 (legitimate_const_double_p): New function.
13391 * config/pdp11/pdp11.h: Fix typos.
13392 (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13393 (TARGET_FLOAT_FORMAT): Ditto.
13394 (pdp11_f_format, pdp11_d_format): Add external declarations.
13395 (MAX_REGS_PER_ADDRESS): Corrected.
13396 (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13397 (PRINT_OPERAND): Output float literals in target format.
13398
13399 2004-02-03 Mark Mitchell <mark@codesourcery.com>
13400
13401 PR c++/13975
13402 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13403 TI_PRIVATE.
13404 (access_public_node): Redefine.
13405 (access_protected_node): Likewise.
13406 (access_private_node): Likewise.
13407 * tree.c (build_common_tree_nodes): Create access_public_node,
13408 access_protected_node, and access_private_node.
13409
13410 2004-02-03 Steve Ellcey <sje@cup.hp.com>
13411
13412 * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13413 (MASK_INLINE_INT_DIV_THR): Ditto.
13414 (MASK_INLINE_SQRT_LAT): Ditto.
13415 (MASK_INLINE_SQRT_THR): Ditto.
13416 (MASK_DWARF2_ASM): Ditto.
13417 (MASK_EARLY_STOP_BITS): Ditto.
13418
13419 2004-02-02 Paul Brook <paul@codesourcery.com>
13420
13421 Merge from csl-arm-branch.
13422
13423 2004-01-30 Paul Brook <paul@codesourcery.com>
13424
13425 * aof.h (REGISTER_NAMES): Add vfp reg names
13426 (ADDITIONAL_REGISTER_NAMES): Ditto.
13427 * aout.h (REGISTER_NAMES): Ditto.
13428 (ADDITIONAL_REGISTER_NAMES): Ditto.
13429 * arm-protos.h: Update/Add Prototypes.
13430 * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13431 Only allow 0.0 for VFP.
13432 (fp_consts_inited): Rename from fpa_consts_inited. Update users.
13433 (values_fp): Rename from values_fpa. Update Users.
13434 (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13435 Update users. Only check valid constants for this hardware.
13436 (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users.
13437 Only allow consts for FPA.
13438 (arm_float_add_operand): Rename from fpa_add_operand. Update users.
13439 Only allow consts for FPA.
13440 (use_return_insn): Check for saved VFP regs.
13441 (arm_legitimate_address_p): Handle VFP DFmode addressing.
13442 (arm_legitimize_address): Ditto.
13443 (arm_general_register_operand): New function.
13444 (vfp_mem_operand): New function.
13445 (vfp_compare_operand): New function.
13446 (vfp_secondary_reload_class): New function.
13447 (arm_float_compare_operand): New function.
13448 (vfp_print_multi): New function.
13449 (vfp_output_fstmx): New function.
13450 (vfp_emit_fstm): New function.
13451 (arm_output_epilogue): Output VPF reg restore code.
13452 (arm_expand_prologue): Output VFP reg save code.
13453 (arm_print_operand): Add 'P'.
13454 (arm_hard_regno_mode_ok): Return modes for VFP regs.
13455 (arm_regno_class): Return classes for VFP regs.
13456 (arm_compute_initial_elimination_offset): Include space for VFP regs.
13457 (arm_get_frame_size): Ditto.
13458 * arm.h (FIXED_REGISTERS): Add VFP regs.
13459 (CALL_USED_REGISTERS): Ditto.
13460 (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13461 (FIRST_VFP_REGNUM): Define.
13462 (LAST_VFP_REGNUM): Define.
13463 (IS_VFP_REGNUM): Define.
13464 (FIRST_PSEUDO_REGISTER): Include VFP regs.
13465 (HARD_REGNO_NREGS): Handle VFP regs.
13466 (REG_ALLOC_ORDER): Add VFP regs.
13467 (enum reg_class): Add VFP_REGS.
13468 (REG_CLASS_NAMES): Ditto.
13469 (REG_CLASS_CONTENTS): Ditto.
13470 (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13471 (REG_CLASS_FROM_LETTER): Add 'w'.
13472 (EXTRA_CONSTRAINT_ARM): Add 'U'.
13473 (EXTRA_MEMORY_CONSTRAINT): Define.
13474 (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13475 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13476 (REGISTER_MOVE_COST): Ditto.
13477 (PREDICATE_CODES): Add arm_general_register_operand,
13478 arm_float_compare_operand and vfp_compare_operand.
13479 * arm.md (various): Rename as above.
13480 (divsf3): Enable when TARGET_VFP.
13481 (divdf3): Ditto.
13482 (movdfcc): Ditto.
13483 (sqrtsf2): Ditto.
13484 (sqrtdf2): Ditto.
13485 (arm_movdi): Disable when TARGET_VFP.
13486 (arm_movsi_insn): Ditto.
13487 (movsi): Only split with general regs.
13488 (cmpsf): Use arm_float_compare_operand.
13489 (push_fp_multi): Restrict to TARGET_FPA.
13490 (vfp.md): Include.
13491 * vfp.md: New file.
13492 * fpa.md (various): Rename as above.
13493 * doc/md.texi: Document ARM w and U constraints.
13494
13495 2004-01-15 Paul Brook <paul@codesourcery.com>
13496
13497 * config.gcc: Add with_fpu. Allow with-float=softfp.
13498 * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13499 Break out of loop when we find a float-abi. Fix typo.
13500 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13501 Set -mfloat-abi=.
13502 * doc/install.texi: Document --with-fpu.
13503
13504 2003-01-14 Paul Brook <paul@codesourcery.com>
13505
13506 * config.gcc (with_arch): Add armv6.
13507 * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13508 * config/arm/arm.c (arm_overrride_options): Ditto.
13509
13510 2004-01-08 Richard Earnshaw <rearnsha@arm.com>
13511
13512 * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13513 (FL_ARCH6): Renamed from FL_ARCH6J.
13514 (arm_arch3m): Renamed from arm_fast_multiply.
13515 (arm_arch6): Renamed from arm_arch6j.
13516 * arm.h: Update all uses of above.
13517 * arm-cores.def: Likewise.
13518 * arm.md: Likewise.
13519
13520 * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13521 not arm6j. Add entry for arch armv6.
13522
13523 2004-01-07 Richard Earnshaw <rearnsha@arm.com>
13524
13525 * arm.c (arm_emit_extendsi): Delete.
13526 * arm-protos.h (arm_emit_extendsi): Delete.
13527 * arm.md (zero_extendhisi2): Also handle zero-extension of
13528 non-subregs.
13529 (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13530 (thumb_zero_extendhisi2): Only match if not v6.
13531 (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13532 (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13533 (thumb_extendqisi2): Likewise.
13534 (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13535 (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13536 (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13537 (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13538 (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13539 (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13540 (arm_zero_extendhisi2addsi): Remove subreg. Add attributes.
13541 (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13542 (arm_extendqisi2addsi): Likewise.
13543
13544 2003-12-31 Mark Mitchell <mark@codesourcery.com>
13545
13546 Revert this change:
13547 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13548 + REG addressing modes.
13549
13550 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13551 + REG addressing modes.
13552
13553 2003-12-30 Mark Mitchell <mark@codesourcery.com>
13554
13555 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13556 CONSTANT_P_RTX.
13557
13558 2003-30-12 Paul Brook <paul@codesourcery.com>
13559
13560 * longlong.h: protect arm inlines with !defined (__thumb__)
13561
13562 2003-30-12 Paul Brook <paul@codesourcery.com>
13563
13564 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13565
13566 2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
13567
13568 * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13569 change.
13570
13571 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
13572
13573 * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13574 to the virtual incoming args pointer for downward stacks.
13575
13576 2003-12-29 Paul Brook <paul@codesourcery.com>
13577
13578 * config/arm/arm-cores.def: Add cost function.
13579 * config/arm/arm.c (arm_*_rtx_costs): New functions.
13580 (arm_rtx_costs): Remove
13581 (struct processors): Add rtx_costs field.
13582 (all_cores, all_architectures): Ditto.
13583 (arm_override_options): Set targetm.rtx_costs.
13584 (thumb_rtx_costs): New function.
13585 (arm_rtx_costs_1): Remove cases handled elsewhere.
13586 * config/arm/arm.h (processor_type): Add COSTS parameter.
13587
13588 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
13589
13590 * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13591 (arm926ejs.md): Include it.
13592 * config/arm/arm926ejs.md: New pipeline description.
13593
13594 2003-12-24 Paul Brook <paul@codesourcery.com>
13595
13596 * config/arm/arm.c (arm_arch6j): New variable.
13597 (arm_override_options): Set it.
13598 (arm_emit_extendsi): New function.
13599 * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13600 * config/arm/arm.h (arm_arch6j): Declare.
13601 * config/arm/arm.md: Add sign/zero extend insns.
13602
13603 2003-12-23 Paul Brook <paul@codesourcery.com>
13604
13605 * config/arm/arm.c (all_architectures): Add armv6.
13606 * doc/invoke.texi: Document it.
13607
13608 2003-12-19 Paul Brook <paul@codesourcery.com>
13609
13610 * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify
13611 insn patterns to match.
13612 * config/arm/arm-generic.md: Ditto.
13613 * config/arm/cirrus.md: Ditto.
13614 * config/arm/fpa.md: Ditto.
13615 * config/amm/iwmmxt.md: Ditto.
13616 * config/arm/arm1026ejs.md: Ditto.
13617 * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses
13618 for 11_loadb.
13619
13620 2003-12-18 Nathan Sidwell <nathan@codesourcery.com>
13621
13622 * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13623 * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13624 TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13625 (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13626 arm_no_early_mul_dep): Correctly deal with conditional execution,
13627 parallels and single shift operations.
13628 (arm_no_early_alu_shift_value_dep): Define.
13629 * arm.md (attr type): Replace 'normal' with 'alu',
13630 'alu_shift' and 'alu_shift_reg'.
13631 (attr core_cycles): Adjust.
13632 (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13633 *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13634 *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13635 *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13636 *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13637 *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13638 *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13639 attribute appropriately.
13640 * config/arm/arm1026ejs.md (alu_op): Adjust.
13641 (alu_shift_op, alu_shift_reg_op): New.
13642 * config/arm/arm1136.md: Add better bypasses for early
13643 registers. Remove load[234] and store[234] bypasses.
13644 (11_alu_op): Adjust.
13645 (11_alu_shift_op, 11_alu_shift_reg_op): New.
13646
13647 2003-12-15 Nathan Sidwell <nathan@codesourcery.com>
13648
13649 * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13650 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13651 * config/arm/arm.c (arm_no_early_store_addr_dep,
13652 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13653 * config/arm/arm1026ejs.md: Add load-store bypass.
13654 * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13655 Add bypasses between instructions.
13656
13657 2003-12-10 Paul Brook <paul@codesourcery.com>
13658
13659 * config/arm/arm.c (arm_fpu_model): New variable.
13660 (arm_fload_abi): New variable.
13661 (target_fpe_name): Rename from target_fp_name.
13662 (target_fpu_name): New variable.
13663 (arm_is_cirrus): Remove.
13664 (fpu_desc): New struct.
13665 (all_fpus): Define.
13666 (pf_model_for_fpu): Define.
13667 (all_loat_abis): Define.
13668 (arm_override_options): Set fp arch flags based on -mfpu=
13669 and -float-abi=.
13670 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13671 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13672 (*): Use new TARGET_* flags.
13673 * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13674 (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13675 (TARGET_SOFT_FLOAT): Ditto.
13676 (TARGET_SOFT_FLOAT_ABI): New.
13677 (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies
13678 TARGET_HARD_FLOAT.
13679 (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13680 (TARGET_OPTIONS): Add -mfpu=.
13681 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13682 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13683 (arm_pf_model): Define.
13684 (arm_float_abi_type): Define.
13685 (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE
13686 * config/arm/arm.md: Use new TARGET_* flags.
13687 * config/arm/cirrus.md: Ditto.
13688 * config/arm/fpa.md: Ditto.
13689 * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13690 * config/arm/semi.h (ASM_SPEC): Ditto.
13691 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13692 (FPUTYPE_DEFAULT): Set to VFP.
13693 * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13694
13695 2003-11-22 Phil Edwards <phil@codesourcery.com>
13696
13697 PR target/12476
13698 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use
13699 'bx' instead of 'b' to avoid branch range restrictions. Output
13700 the thunk immediately before the thunked-to function.
13701 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit
13702 .thumb_func if a thunk is being generated. Emit .code 16 along
13703 with .thumb_func if a thunk is not being generated.
13704
13705 2003-11-15 Nicolas Pitre <nico@cam.org>
13706
13707 * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13708 arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13709 * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13710 (lshrdi3_iwmmxt): Renamed from lshrdi3.
13711 * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13712
13713 2003-11-12 Steve Woodford <scw@wasabisystems.com>
13714 Ian Lance Taylor <ian@wasabisystems.com>
13715
13716 * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13717 code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13718
13719 2003-11-05 Phil Edwards <phil@codesourcery.com>
13720
13721 * config/arm/arm.md (insn): Add new V6 instruction names.
13722 (generic_sched): New attr.
13723 * config/arm/arm-generic.md: Use generic_sched here.
13724 * config/arm/arm1026ejs.md: Do not model fetch/issue/decode
13725 stages of pipeline. Adjust latency counts accordingly.
13726 * config/arm/arm1136jfs.md: New file.
13727
13728 2003-10-28 Mark Mitchell <mark@codesourcery.com>
13729
13730 * config/arm/arm.h (processor_type): New enumeration type.
13731 (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13732 ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13733 (CPP_CPU_ARCH_SPEC): Likewise.
13734 * config/arm/arm.c (arm_tune): New variable.
13735 (all_cores): Use cores.def.
13736 (all_architectures): Add representative processor.
13737 (arm_override_options): Restructure way in which tuning
13738 information is deduced.
13739 * arm.md: Update "insn" and "type" attributes throughout.
13740 (insn): New attribute.
13741 (type): Compute "mult" from "insn" attribute. Add load2,
13742 load3, load4 alternatives.
13743 (arm automaton): Move to arm-generic.md.
13744 * config/arm/arm-cores.def: New file.
13745 * config/arm/arm-generic.md: Likewise.
13746 * config/arm/arm1026ejs.md: Likewise.
13747
13748 2004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr>
13749
13750 * doc/invoke.texi (SPARC options): Remove -mflat and
13751 all -mxxx (xxx:chip) options.
13752 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13753 * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13754 * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13755 * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13756 * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13757 * config/sparc/sparc.c: Likewise.
13758 (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13759 (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13760 (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13761 (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13762 (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13763 (sparc_flat_must_save_register_p): Likewise.
13764 (sparc_flat_compute_frame_size): Likewise.
13765 (sparc_flat_save_restore): Likewise.
13766 (sparc_flat_function_prologue): Likewise.
13767 (sparc_flat_function_epilogue): Likewise.
13768 (sparc_flat_epilogue_delay_slots): Likewise.
13769 (sparc_flat_eligible_for_epilogue_delay): Likewise.
13770 (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13771 * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13772 (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13773 (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13774 (CONDITIONAL_REGISTER_USAGE): Likewise.
13775 (FRAME_POINTER_REQUIRED): Likewise.
13776 (INITIAL_ELIMINATION_OFFSET): Likewise.
13777 (BASE_RETURN_VALUE_REG): Likewise.
13778 (BASE_OUTGOING_VALUE_REG): Likewise.
13779 (BASE_PASSING_ARG_REG): Likewise.
13780 (BASE_INCOMING_ARG_REG): Likewise.
13781 (INCOMING_REGNO): Likewise.
13782 (OUTGOING_REGNO): Likewise.
13783 (LOCAL_REGNO): Likewise.
13784 (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13785 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13786 (EPILOGUE_USES): Likewise.
13787 * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13788 ("flat" attribute): Delete.
13789 (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13790 handling.
13791 (call followed by jump define_peephole's): Delete.
13792 (exception_receiver): Likewise.
13793 (builtin_setjmp_receiver): Likewise.
13794 * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13795
13796 2004-02-03 Paolo Bonzini <bonzini@gnu.org>
13797
13798 PR c/11658
13799 PR c/13994
13800 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13801 on langhooks.h.
13802 * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13803 * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13804 Include langhooks.h. Replace c_common_truthvalue_conversion
13805 with the truthvalue_conversion language hook throughout.
13806 (expr_no_commas): Call default_conversion before save_expr
13807 for the first term of the production 'x ? : y'.
13808 * c-common.c (c_common_truthvalue_conversion): Remove
13809 obsolete block. Invoke recursively the hook instead
13810 of this function.
13811 * c-convert.c (convert): handle ERROR_MARK_NODE.
13812 * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13813 returned by the truthvalue_conversion language hook.
13814 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13815 c_objc_common_truthvalue_conversion.
13816 * c-objc-common.c (c_objc_common_truthvalue_conversion):
13817 New function.
13818 * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13819 * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13820 c_objc_common_truthvalue_conversion.
13821
13822 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13823
13824 * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13825 of gen_rtx.
13826 (LIBCALL_VALUE): Likewise.
13827 * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13828 gen_rtx_CC0 instead of gen_rtx.
13829 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13830 gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13831 (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13832 gen_rtx.
13833 (m68hc11_emit_logical): Likewise.
13834
13835 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13836
13837 * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13838 config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13839 config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13840 config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13841 config/mips/mips.md, config/mmix/mmix.c,
13842 config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13843 config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13844 config/rs6000/altivec.md, config/s390/s390.c,
13845 config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13846 config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13847 Use const0_rtx instead of GEN_INT (0). Do the same for other
13848 constants that are readily available.
13849
13850 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13851
13852 * doloop.c, optabs.c, regmove.c, sched-deps.c,
13853 config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13854 instead of GEN_INT (0). Do the same for other constants that
13855 are readily available.
13856
13857 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13858
13859 * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13860 gen_rtx.
13861 * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13862 instead of gen_rtx.
13863 * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13864 gen_rtx.
13865 * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13866 gen_rtx_ASHIFT instead of gen_rtx.
13867 (udivmodqi4): Likewise.
13868
13869 2004-02-02 Richard Henderson <rth@redhat.com>
13870
13871 PR target/13789
13872 * expr.c (store_expr): Use force_operand before emit_move_insn.
13873
13874 2004-02-02 Jeff Law <law@redhat.com>
13875 Roger Sayle <roger@eyesopen.com>
13876
13877 * tree.c (commutative_tree_code, associative_tree_code): New
13878 functions.
13879 (iterative_hash_expr): Use commutative_tree_code.
13880 * tree.h (commutative_tree_code, associative_tree_code): Declare.
13881 * fold-const.c (operand_equal_p): Use commutative_tree_code
13882 rather than inlining the commutativity check.
13883 (fold): Likewise.
13884
13885 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
13886
13887 * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13888 * config/frv/frv-protos.h: Remove the prototype for
13889 frv_function_arg_keep_as_reference.
13890 * config/frv/frv.c (frv_function_arg_keep_as_reference):
13891 Remove.
13892 * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13893 * config/stormy16/stormy16.h: Remove the commented-out
13894 definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13895
13896 2004-02-03 Alan Modra <amodra@bigpond.net.au>
13897
13898 PR target/13914
13899 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13900 for retaddr_column.
13901
13902 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
13903
13904 * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13905 gen_rtx.
13906
13907 2004-02-02 Eric Christopher <echristo@redhat.com>
13908 Zack Weinberg <zack@codesourcery.com>
13909
13910 * c-opts.c (c_common_handle_option): Add -finput-charset.
13911 * c.opt: Ditto.
13912 * cppcharset.c (one_iso88591_to_utf8): Remove.
13913 (convert_iso88591_utf8): Ditto.
13914 (conversion_tab): Remove 8859-1 converter.
13915 (_cpp_input_to_utf8): Remove.
13916 (_cpp_init_iconv_buffer): Ditto.
13917 (_cpp_close_iconv_buffer): Ditto.
13918 (_cpp_convert_input): New function.
13919 (_cpp_default_encoding): Ditto.
13920 * cpphash.h: Add/remove prototypes for above.
13921 * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13922 * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13923 for narrow execution and input character sets.
13924 * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13925 * doc/cppopts.texi: Document -finput-charset.
13926
13927 2004-02-02 David Edelsohn <edelsohn@gnu.org>
13928
13929 * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13930 against FIRST_PSEUDO_REGISTER.
13931
13932 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
13933
13934 * doc/invoke.texi (SPARC options): Further improve.
13935
13936 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
13937
13938 * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13939 config/h8300/h8300.c, config/ip2k/ip2k.md,
13940 config/iq2000/iq2000.c, config/mips/mips.c,
13941 config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13942 config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13943 config/v850/v850.md: Fix indentation.
13944
13945 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
13946
13947 * config/sparc/sparc.c (function_arg_slotno): Align TImode
13948 arguments on a 16-byte boundary in the parameter array if ARCH64.
13949 Split handling of TFmode.
13950
13951 2004-02-02 Paolo Bonzini <bonzini@gnu.org>
13952
13953 * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13954 Don't test CONSTANT_P (x).
13955 (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13956 ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13957 Fix misindentation.
13958
13959 2004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
13960
13961 * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13962
13963 2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
13964
13965 * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13966 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13967 config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13968 config/iq2000/iq2000.c, config/m32r/m32r.c,
13969 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13970 config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13971 config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13972 config/stormy16/stormy16.c, config/v850/v850.md,
13973 config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13974
13975 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
13976
13977 * config/mcore/mcore.c (block_move_sequence): Replace
13978 gen_rtx_CONST_INT with GEN_INT.
13979
13980 2004-02-02 Jan Hubicka <jh@suse.cz>
13981
13982 * alias.c (record_set): Use hard_regno_nregs.
13983 * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13984 * builtins.c (apply_args_size): Likewise.
13985 * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13986 mark_set_regs, add_stored_regs, mark_referenced_regs,
13987 insert_restore, insert_save, insert_one_insn): Likewise.
13988 * cfgcleanup.c: Include regs.h
13989 (mark_effect, mentions_nonequal_regs): Likewise.
13990 * cfgrtl.c (mark_killed_regs): Likewise
13991 * combine.c (update_table_tick, record_value_for_reg,
13992 record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13993 reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13994 reg_bitfield_target_p, distribute_notes): Likewise.
13995 * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13996 exp_equiv_p, cse_insn): Likewise.
13997 * cselib.c (cselib_lookup): Likewise.
13998 (cselib_invalidate_regno, cselib_record_set): Likewise.
13999 * df.c (df_ref_record): Likewise.
14000 * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14001 Likewise.
14002 * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14003 count_or_remove_death_notes_bb): Likewise.
14004 * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14005 * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14006 mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14007 * integrate.c (mark_stores): Likewise.
14008 * jump.c (delete_prior_computation): Likewise.
14009 * lcm.c (reg_dies, reg_becomes_live): Likewise.
14010 * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14011 * loop.c (LOOP_REGNO_NREGS): Likewise.
14012 * postreload.c (reload_combine, reload_combine_note_store,
14013 reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14014 * ra-colorize.c (combine, color_usable_p, get_free_reg,
14015 calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14016 try_recolor_web, insert_coalesced_conflicts, check_colors,
14017 break_precolored_alias): Likewise.
14018 * ra-debug.c: Include regs.h
14019 (ra_print_rtx_object): Likewise.
14020 * ra-rewrite (choose_spill_colors): Likewise.
14021 (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14022 * ra.c (init_ra): Likewise.
14023 * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14024 peep2_find_free_register): Likewise.
14025 * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14026 * regclass.c (hard_regno_nregs): New array.
14027 (init_reg_modes_once): Initialize it.
14028 (choose_hard_reg_mode): Use it.
14029 (record_reg_classes): Likewise.
14030 * regmove.c (mark_flags_life_zones): Likewise.
14031 * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14032 scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14033 copy_value, maybe_mode_change, find_oldest_value_reg,
14034 copyprop_hardreg_forward_1):
14035 * regs.h (hard_regno_nregs): Declare.
14036 * realod.c (reload_inner_reg_of_subreg): Use it.
14037 (push_reload, combine_reloads, find_dummy_reload,
14038 hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14039 refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14040 reload_adjust_reg_for_mode): Likewise.
14041 * reload1.c (compute_use_by_pseudos, count_pseudo,
14042 count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14043 spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14044 clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14045 allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14046 delete_output_reload): Likewise.
14047 * resource.c (update_live_status, mark_referenced_resources,
14048 mark_set_resources, mark_target_live_regs): Likewise.
14049 * rtlanal.c: Include regs.h
14050 (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14051 dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14052 subreg_regno_offset, subreg_offset_representable_p,
14053 hoist_test_store): Likewise.
14054 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14055 * sched-rgn.c (check_live_1, update_live_1): Likewise.
14056 * stmt.c: Include regs.h
14057 (decl_conflicts_with_clobbers_p): Likewise.
14058 * varasm.c (make_decl_rtl): Likewise.
14059 * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14060
14061 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
14062
14063 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14064 config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14065 config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14066 config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14067 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14068 config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14069 config/iq2000/iq2000.h, config/m32r/m32r.c,
14070 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14071 config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14072 config/mcore/mcore.c, config/mcore/mcore.h,
14073 config/mcore/mcore.md, config/mips/mips.c,
14074 config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14075 config/rs6000/rs6000.c, config/s390/s390.c,
14076 config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14077 config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14078 "gen_rtx (FOO, " with "gen_rtx_FOO (".
14079
14080 2004-02-01 Kazu Hirata <kazu@cs.umass.edu>
14081
14082 * config/h8300/h8300.md (two peephole2's): New.
14083
14084 2004-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
14085
14086 * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14087 (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14088 (ASM_CPU_SPEC): Likewise
14089 * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14090 (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3.
14091
14092 2004-02-01 Roger Sayle <roger@eyesopen.com>
14093
14094 * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14095 isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14096 (expand_builtin): Always call expand_builtin_pow.
14097
14098 2004-02-01 Roger Sayle <roger@eyesopen.com>
14099
14100 * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14101 BUILT_IN_SIGNBITL): New GCC builtins.
14102 * builtins.c (expand_builtin_signbit): New function to RTL expand
14103 calls to signbit, signbitf and signbitl as inline intrinsics.
14104 (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14105 (fold_builtin_signbit): New function to perform constant folding
14106 of signbit, signbitf and signbitl.
14107 (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14108
14109 * doc/extend.texi: Document new signbit{,f,l} builtins.
14110
14111 2004-02-01 Richard Sandiford <rsandifo@redhat.com>
14112
14113 * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14114
14115 2004-02-01 Chris Demetriou <cgd@broadcom.com>
14116
14117 * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14118 "mips_const_double_ok" and "simple_memory_operand", which were
14119 removed from the MIPS port with the mips-3_4-rewrite branch merge.
14120 * config/mips/mips.c (mips16_lay_out_constants): Update comment
14121 for removal of simple_memory_operand.
14122
14123 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14124
14125 * config/c4x/c4x.md: Use GEN_INT instead of
14126 gen_rtx (CONST_INT, ...).
14127
14128 2004-01-31 Richard Henderson <rth@redhat.com>
14129
14130 * varasm.c (output_constant_pool): Don't zap the pool.
14131
14132 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14133
14134 * genrecog.c (decision_type): Add DT_const_int.
14135 (write_cond) [DT_const_int]: Print a comparison against small
14136 constant.
14137 (write_node): Simplify comparisons against small constants
14138 before printing tests.
14139
14140 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14141
14142 * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14143 instead of gen_rtx_CONST_INT.
14144
14145 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14146
14147 * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14148 instead of gen_rtx_CONST_INT.
14149
14150 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14151
14152 * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14153 hook_bool_CUMULATIVE_ARGS_false.
14154 * targhooks.c (default_strict_argument_naming): Rename to
14155 hook_bool_CUMULATIVE_ARGS_false.
14156 * targhooks.h: Update the prototype for
14157 default_strict_argument_naming.
14158
14159 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14160
14161 * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14162 * config/sh/sh.h: Likewise.
14163 * config/sh/sh.md: Likewise.
14164
14165 2004-01-31 Eric Botcazou <ebotcazou@libertysurf.fr>
14166
14167 * doc/invoke.texi (SPARC options): Restructure and update.
14168
14169 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14170
14171 * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14172 STRICT_ARGUMENT_NAMING): Poison.
14173 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14174 hook_bool_tree_false.
14175 * targhooks.c (default_promote_function_args): Remove.
14176 (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14177 Don't check incoming.
14178 (default_strict_argument_naming): Don't use
14179 STRICT_ARGUMENT_NAMING.
14180 * targhooks.h: Remove the prototype for
14181 default_promote_function_args.
14182
14183 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14184
14185 * config/i386/i386-protos.h: Remove the prototype for
14186 ix86_setup_incoming_varargs.
14187 * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14188 (ix86_setup_incoming_varargs): Make it static.
14189 * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14190
14191 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14192
14193 * alloc-pool.c: Fix comment typos.
14194 * builtin-types.def: Likewise.
14195 * builtins.def: Likewise.
14196 * c-pretty-print.c: Likewise.
14197 * df.h: Likewise.
14198 * reload1.c: Likewise.
14199
14200 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14201
14202 * doc/invoke.texi: Follow spelling conventions.
14203 * doc/tm.texi: Likewise.
14204
14205 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14206
14207 * doc/install.texi: Fix typos.
14208 * doc/invoke.texi: Likewise.
14209
14210 2004-01-31 Ulrich Weigand <uweigand@de.ibm.com>
14211
14212 * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14213 registers as pointers.
14214 * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14215
14216 2004-01-31 Paolo Bonzini <bonzini@gnu.org>
14217
14218 * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14219 and restore it to gen_lowpart_general on exit.
14220 (gen_lowpart_for_combine): Adjust all callers to go through
14221 gen_lowpart.
14222 * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14223 and restore it to gen_lowpart_general on exit.
14224 (gen_lowpart_if_possible): Adjust all callers to go through
14225 gen_lowpart.
14226 * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14227 (gen_lowpart): Declare as pointer to function, initialized to
14228 gen_lowpart_general.
14229 * rtl.h (gen_lowpart): Declare as pointer to function.
14230
14231 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14232
14233 * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14234 * calls.c: Likewise.
14235 * emit-rtl.c: Likewise.
14236 * function.c: Likewise.
14237 * reload1.c: Likewise.
14238 * config/i386/cygming.h: Likewise.
14239 * config/i386/i386.c: Likewise.
14240 * config/i386/winnt.c: Likewise.
14241
14242 2004-01-30 Dara Hazeghi <dhazeghi@yahoo.com>
14243
14244 PR bootstrap/9249
14245 * doc/install.texi: document --enable-__cxa_atexit option.
14246 * configure.ac: Disable __cxa_atexit if not supported.
14247 * configure: Regenerate.
14248
14249 2003-01-30 Daniel Berlin <dberlin@dberlin.org>
14250
14251 * ggc-zone.c (ggc_free): New function.
14252
14253 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14254
14255 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14256 cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14257 flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14258 ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14259 tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14260 config/alpha/alpha.c, config/alpha/alpha.h,
14261 config/alpha/alpha.md, config/alpha/unicosmk.h,
14262 config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14263 config/c4x/c4x-protos.h, config/c4x/c4x.md,
14264 config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14265 config/frv/frvend.c, config/i386/cygming.h,
14266 config/i386/djgpp.h, config/i386/emmintrin.h,
14267 config/i386/gthr-win32.c, config/i386/i386-interix.h,
14268 config/i386/i386-protos.h, config/i386/openbsd.h,
14269 config/i386/winnt.c, config/i386/xm-mingw32.h,
14270 config/i386/xmmintrin.h, config/ia64/ia64.md,
14271 config/iq2000/iq2000.md, config/m32r/m32r.md,
14272 config/m68k/m68k.md, config/mcore/mcore-elf.h,
14273 config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14274 config/mips/iris5gas.h, config/mips/iris6.h,
14275 config/mips/iris6gas.h, config/mips/linux.h,
14276 config/mips/mips.md, config/mips/netbsd.h,
14277 config/mips/openbsd.h, config/mips/windiss.h,
14278 config/pa/fptr.c, config/rs6000/aix.h,
14279 config/rs6000/altivec.h, config/rs6000/darwin.h,
14280 config/rs6000/xcoff.h, config/s390/s390-protos.h,
14281 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14282 config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14283 config/sparc/sol2.h: Update copyright.
14284
14285 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
14286
14287 * Makefile.in (abs_docdir, abs_srcdir): Define.
14288 (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14289
14290 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14291
14292 * genconfig.c (main): Have CC0_P check its operand even on a
14293 target without cc0.
14294
14295 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14296
14297 * config/alpha/alpha.c: Remove mentions of deprecates macros
14298 in comments, remove some target-independent comments about target
14299 macros, and/or add minimal function comments for target hook
14300 implementations.
14301 * config/avr/avr.c: Likewise.
14302 * config/ia64/ia64.h: Likewise.
14303 * config/ip2k/ip2k.c: Likewise.
14304 * config/iq2000/iq2000.c: Likewise.
14305 * config/m32r/m32r.h: Likewise.
14306 * config/m68hc11/m68hc11.c: Likewise.
14307 * config/mcore/mcore.c: Likewise.
14308 * config/mmix/mmix.c: Likewise.
14309 * config/mn10300/mn10300.c: Likewise.
14310 * config/pa/pa.c: Likewise.
14311 * config/pdp11/pdp11.c: Likewise.
14312 * config/rs6000/rs6000.h: Likewise.
14313 * config/sh/sh.c: Likewise.
14314 * config/sh/sh.h: Likewise.
14315 * config/sparc/sparc.c: Likewise.
14316 * config/sparc/sparc.h: Likewise.
14317 * config/stormy16/stormy16.c: Likewise.
14318 * config/xtensa/xtensa.c: Likewise.
14319
14320 2004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
14321
14322 PR optimization/12147
14323 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14324 RELOAD_FOR_OPADDR_ADDR.
14325 (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14326 might be reused as RELOAD_FOR_OPADDR_ADDR register.
14327
14328 2004-01-30 Jan Hubicka <jh@suse.cz>
14329
14330 * reload.c (get_secondary_mem): Fix updating of
14331 secondary_memlocs_elim_used.
14332
14333 2004-01-30 Richard Henderson <rth@redhat.com>
14334
14335 * varasm.c (struct rtx_const, struct pool_constant): Remove.
14336 (MAX_RTX_HASH_TABLE): Remove.
14337 (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14338 (first_pool, last_pool, pool_offset): Remove.
14339 (struct rtx_constant_pool): Split out from ...
14340 (struct varasm_status): ... here. Reference one via pointer.
14341 (struct constant_descriptor_rtx): Merge struct pool_constant.
14342 (SYMHASH): Remove.
14343 (decode_rtx_const): Remove.
14344 (const_hash_rtx, compare_constant_rtx): Remove.
14345 (record_constant_rtx): Remove.
14346 (const_desc_rtx_hash, const_desc_rtx_eq): New.
14347 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14348 (const_rtx_hash_1, const_rtx_hash): New.
14349 (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14350 (simplify_subtraction): Use simplify_rtx.
14351 (force_const_mem): Rewrite to use new data structures.
14352 (find_pool_constant): Likewise.
14353 (get_pool_constant, get_pool_constant_mark,
14354 get_pool_constant_for_function, get_pool_mode,
14355 get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14356 (output_constant_pool_2): Split out from output_constant_pool.
14357 (output_constant_pool_1): Likewise. Use new pool datastructures.
14358 (output_constant_pool): Zap entire pool datastructure.
14359 (mark_constant): Use new pool datastructures.
14360 (mark_constants): Use for_each_rtx.
14361 (mark_constant_pool): Use new pool datastructures.
14362
14363 2004-01-30 Fariborz Jahanian <fjahanian@apple.com>
14364
14365 * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14366 Copy operands[1] to pseudo for simplify_gen_subreg.
14367
14368 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14369
14370 * gcse.c (bypass_block): Fix a typo in the previous check-in
14371 to the file.
14372
14373 2004-01-30 Andrew Pinski <pinskia@physics.uc.edu>
14374
14375 * toplev.c: Include alloc-pool.h.
14376 * Makefile.in (toplev.c): Update dependencies.
14377
14378 2004-01-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14379
14380 * combine.c (simplify_shift_const, case XOR): Be careful when
14381 commuting XOR with ASHIFTRT.
14382
14383 2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14384 Eric Botcazou <ebotcazou@libertysurf.fr>
14385
14386 * config/sparc/sparc-protos.h: Remove the prototype for
14387 sparc_builtin_saveregs.
14388 * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14389 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14390 (TARGET_PROMOTE_PROTOTYPES): Likewise.
14391 (TARGET_STRUCT_VALUE_RTX): Likewise.
14392 (TARGET_RETURN_IN_MEMORY): Likewise.
14393 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14394 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14395 (sparc_builtin_saveregs): Make it static.
14396 (sparc_promote_prototypes): New.
14397 (sparc_struct_value_rtx): Likewise.
14398 (sparc_return_in_memory): Likewise.
14399 * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14400 (PROMOTE_FUNCTION_RETURN): Likewise.
14401 (RETURN_IN_MEMORY): Likewise.
14402 (STRUCT_VALUE): Likewise.
14403 (STRUCT_VALUE_INCOMING): Likewise.
14404 (EXPAND_BUILTIN_SAVEREGS): Likewise.
14405 (STRICT_ARGUMENT_NAMING): Likewise.
14406 (PROMOTE_PROTOTYPES): Likewise.
14407
14408 * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14409
14410 2004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
14411
14412 PR c/12818
14413 * varasm.c (const_hash_1) <STRING_CST>: Use the
14414 address to compute the hash value if flag_writable_strings.
14415 (compare_constant) <STRING_CST>: Compare the addresses
14416 if flag_writable_strings.
14417 (build_constant_desc): Do not copy the expression for a
14418 STRING_CST if flag_writable_strings.
14419
14420 2004-01-30 Jan Hubicka <jh@suse.cz>
14421
14422 * alloc-pool.c: Include hashtab.h
14423 (alloc_pool_descriptor): New structure
14424 (alloc_pool_hash): New global variable.
14425 (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14426 (create_alloc_pool): Update statistics.
14427 (free_alloc_pool): Likewise.
14428 (pool_alloc): Likewise.
14429 (output_info): New structure
14430 (print_statistics, dump_alloc_pool_statistics): New function.
14431 * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14432 (dump_alloc_pool_statistics): Declare.
14433 * toplev.c (finalize): Dump statistics.
14434
14435 * reload.c (secondary_memlocs_elim_used): New static variable.
14436 (get_secondary_mem): Update it.
14437 (find_reloads): Use it.
14438
14439 2004-01-30 Steven Bosscher <s.bosscher@student.tudelft.nl>
14440
14441 * toplev.c: Fix broken checkin of 2003-12-30, again.
14442
14443 2004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
14444
14445 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14446 s390*-*-* targets by specifying a 'nop' insn.
14447 * configure: Regenerate.
14448
14449 2004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
14450
14451 PR target/11475
14452 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14453
14454 2004-01-29 Jakub Jelinek <jakub@redhat.com>
14455
14456 * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14457 of addr when creating MEM copy.
14458
14459 2004-01-29 Devang Patel <dpatel@apple.com>
14460
14461 * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14462
14463 2004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
14464
14465 PR inline-asm/6162
14466 * reload.c (find_reloads): Only support one pair of commutative
14467 operands.
14468
14469 2004-01-29 Roger Sayle <roger@eyesopen.com>
14470
14471 PR java/13824
14472 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14473 as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14474 recursion.
14475
14476 2004-01-29 Kazu Hirata <kazu@cs.umass.edu>
14477
14478 * config/frv/frv.c: Don't mention deprecated macros in
14479 comments. Remove some target-independent comments about
14480 target macros.
14481 * config/frv/frv.h: Likewise.
14482
14483 2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14484
14485 * cfghooks.c (split_block): Set probability and count of the
14486 new edge.
14487
14488 2005-01-29 Josef Zlomek <zlomekj@suse.cz>
14489
14490 * dwarf2out.c (struct die_struct): Added field decl_id.
14491 (decl_die_table): Changed to hash table.
14492 (decl_die_table_allocated): Deleted.
14493 (decl_die_table_in_use): Deleted.
14494 (DECL_DIE_TABLE_INCREMENT): Deleted.
14495 (decl_die_table_hash): New function.
14496 (decl_die_table_eq): New function.
14497 (lookup_decl_die): Lookup in a hash table.
14498 (equate_decl_number_to_die): Insert into a hash table.
14499 (dwarf2out_init): Init hash table decl_die_table.
14500
14501 2004-01-29 Jakub Jelinek <jakub@redhat.com>
14502
14503 PR optimization/13424
14504 * expr.c (store_constructor): Revert 2003-12-03 change.
14505
14506 * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14507 expected before returning early. Avoid sharing RTL if they
14508 need to be changed.
14509
14510 * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14511 handling so that memory attributes are preserved. Don't call
14512 ix86_set_move_mem_attrs.
14513 (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14514 (ix86_expand_clrstr): Rename src argument to
14515 dst. Rework rep_stos and strset handling so that memory attributes
14516 are preserved.
14517 (ix86_expand_strlen): Pass src argument to
14518 ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that
14519 memory attributes are preserved.
14520 (ix86_expand_strlensi_unroll_1): Add src argument. Use
14521 change_address instead of gen_rtx_MEM.
14522 * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14523 expanders.
14524 (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14525 strmovqi, strmovqi_rex64): Remove.
14526 (rep_mov*, strmov*): Prefix insn names with *.
14527 (strset, strset_singleop, rep_stos): New expanders.
14528 (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14529 strsetqi, strsetqi_rex64): Remove.
14530 (rep_stos*, strset*): Prefix insn names with *.
14531 (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode
14532 to SImode.
14533 (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14534 are preserved.
14535 (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14536 Prefix insn names with *.
14537 (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14538 (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14539 (strlenqi_1): New expander.
14540 * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14541
14542 2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14543
14544 * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14545 * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14546 verify_flow_info): Declaration removed.
14547 * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14548 (debug_bb, debug_bb_n): Add argument to dump_bb call.
14549 * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14550 try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14551 instead of delete_block.
14552 * cfghooks.c: Include timevar.h and toplev.h.
14553 (cfg_hooks): Define here.
14554 (verify_flow_info, dump_bb): Moved from cfg.c.
14555 (redirect_edge_and_branch, redirect_edge_and_branch_force,
14556 split_block, split_block_after_labels, move_block_after,
14557 delete_basic_block, split_edge, create_basic_block,
14558 create_empty_bb, can_merge_blocks_p, merge_blocks,
14559 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14560 New functions.
14561 * cfghooks.h (struct cfg_hooks): Added fields name,
14562 make_forwarder_block, tidy_fallthru_edge and
14563 move_block_after. Changed type of verify_flow_info, dump_bb,
14564 split_block fields. Renamed cfgh_split_edge and delete_block
14565 fields.
14566 (redirect_edge_and_branch, redirect_edge_and_branch_force,
14567 split_block, delete_block, split_edge, create_basic_block,
14568 can_merge_blocks_p, merge_blocks): Macros removed.
14569 (cfg_hooks): Do not export.
14570 (verify_flow_info, dump_bb, redirect_edge_and_branch,
14571 redirect_edge_and_branch_force, split_block, split_block_after_labels,
14572 move_block_after, delete_basic_block, split_edge, create_basic_block,
14573 create_empty_bb, can_merge_blocks_p, merge_blocks,
14574 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14575 Declare.
14576 (cfg_layout_rtl_cfg_hooks): Declare.
14577 * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14578 New functions.
14579 (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14580 (redirect_edge_with_latch_update): Removed.
14581 (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14582 * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14583 * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14584 rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14585 tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14586 cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14587 cfghooks.c.
14588 (rtl_create_basic_block): Coding style fix.
14589 (rtl_tidy_fallthru_edge, rtl_move_block_after,
14590 rtl_make_forwarder_block): New functions.
14591 (update_cfg_after_block_merging): Removed.
14592 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14593 * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14594 to dump_bb.
14595 * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14596 find_if_case_2): Don't update dominators.
14597 * timevar.def (TV_CFG_VERIFY): New.
14598 * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14599 * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14600 * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14601 (remove_bbs): Don't call remove_bbs.
14602 (create_preheader): Use make_forwarder_block.
14603 (mfb_keep_just, mfb_update_loops): New static functions.
14604
14605 2004-01-29 Kazu Hirata <kazu@cs.umass.edu>
14606
14607 * config/avr/avr.h: Remove target-independent comments about
14608 target macros.
14609
14610 2004-01-28 Daniel Berlin <dberlin@dberlin.org>
14611
14612 * timevar.c (timevar_print): Mention when checking is enabled.
14613
14614 2004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
14615
14616 * c-lex.c (c_lex): Rename to...
14617 (c_lex_with_flags): Add new parameter to get CPP flags.
14618 (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14619 * c-pragma.h (c_lex_with_flags): Declare.
14620
14621 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14622
14623 * config/mcore/mcore.c (mcore_external_libcall): Add a
14624 comment.
14625 (mcore_return_in_memory): Likewise.
14626
14627 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14628
14629 * config/mcore/mcore-protos.h: Remove the prototype for
14630 mcore_setup_incoming_varargs.
14631 * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14632 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14633 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14634 (TARGET_PROMOTE_PROTOTYPES): Likewise.
14635 (TARGET_STRUCT_VALUE_RTX): Likewise.
14636 (TARGET_RETURN_IN_MEMORY): Likewise.
14637 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14638 (mcore_setup_incoming_varargs): Make it static. Receive the
14639 first argument by reference. Add argument second_time.
14640 (mcore_external_libcall): New.
14641 (mcore_return_in_memory): Likewise.
14642 * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14643 (PROMOTE_FUNCTION_RETURN): Likewise.
14644 (STRUCT_VALUE): Likewise.
14645 (RETURN_IN_MEMORY): Likewise.
14646 (SETUP_INCOMING_VARARGS): Likewise.
14647 (PROMOTE_PROTOTYPES): Likewise.
14648 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14649
14650 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14651
14652 * config/m32r/m32r-protos.h: Remove the prototype for
14653 m32r_setup_incoming_varargs.
14654 * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14655 (TARGET_STRUCT_VALUE_RTX): Likewise.
14656 (TARGET_RETURN_IN_MEMORY): Likewise.
14657 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14658 (m32r_return_in_memory): New.
14659 (m32r_setup_incoming_varargs): Make it static.
14660 * config/m32r/m32r.h: Remove #undef of
14661 ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out
14662 definitions of PROMOTE_FUNCTION_ARGS and
14663 PROMOTE_FUNCTION_RETURN.
14664 (PROMOTE_PROTOTYPES): Remove.
14665 (RETURN_IN_MEMORY): Likewise.
14666 (STRUCT_VALUE): Likewise.
14667
14668 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14669
14670 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14671 (TARGET_STRUCT_VALUE_RTX): Likewise.
14672 (m68k_struct_value_rtx): Likewise.
14673 * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14674 STRUCT_VALUE_REGNUM.
14675 (PROMOTE_PROTOTYPES): Remove.
14676 * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14677 STRUCT_VALUE_REGNUM.
14678 * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14679 * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14680
14681 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14682
14683 * config/stormy16/stormy16.c
14684 (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14685 TARGET_BUILD_BUILTIN_VA_LIST.
14686
14687 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14688
14689 * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14690 (TARGET_STRUCT_VALUE_RTX): Likewise.
14691 (TARGET_RETURN_IN_MEMORY): Likewise.
14692 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14693 (v850_return_in_memory): Likewise.
14694 (v850_setup_incoming_varargs): Likewise.
14695 * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14696 (SETUP_INCOMING_VARARGS): Likewise.
14697 (RETURN_IN_MEMORY): Likewise.
14698 (STRUCT_VALUE): Likewise.
14699
14700 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14701
14702 * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14703 (fr30_setup_incoming_varargs): Don't use
14704 STRICT_ARGUMENT_NAMING.
14705 * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14706 (STRICT_ARGUMENT_NAMING): Likewise.
14707
14708 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14709
14710 * config/frv/frv-protos.h: Remove the prototype for
14711 frv_expand_builtin_saveregs.
14712 * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14713 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14714 (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14715 STRUCT_VALUE_REGNUM.
14716 (frv_expand_builtin_saveregs): Make it static.
14717 (frv_struct_value_rtx): New.
14718 * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14719
14720 2004-01-29 Jan Hubicka <jh@suse.cz>
14721
14722 PR c++/12850
14723 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14724 initial pointers.
14725 * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14726 for functions that will be only inlined.
14727 (cgraph_mark_function_to_output): Likewise.
14728 (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14729 do not clear function body.
14730 * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14731 (tree_rest_of_compilation): Reorganize the logic releasing function
14732 body to use callgraph datastructure.
14733
14734 2004-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14735
14736 * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14737 to register_operand.
14738
14739 2004-01-28 Zack Weinberg <zack@codesourcery.com>
14740
14741 * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14742 (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14743 match_operand expressions so that all match_dups appear
14744 lexically after their corresponding match_operands.
14745
14746 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14747
14748 * config/h8300/h8300.c (WORD_REG_USED): Use
14749 HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14750 (compute_saved_regs): Likewise.
14751 (h8300_expand_prologue): Likewise. Allocate locals after
14752 saving registers.
14753 (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14754 of FRAME_POINTER_REGNUM. Deallocate locals before saving
14755 registers.
14756 (h8300_initial_elimination_offset): Adjust for the new frame
14757 layout, which swaps flips the order of locals and saved
14758 registers.
14759 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14760 (HARD_FRAME_POINTER_REGNUM): New.
14761 (ELIMINABLE_REGS): Add an elimination rule from
14762 FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14763 (REGISTER_NAMES): Add fp.
14764 * config/h8300/h8300.md (FP_REG): Change to 11.
14765 (HFP_REG): New.
14766
14767 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14768
14769 * genrecog.c (write_node): Remove a useless local variable.
14770
14771 2004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
14772
14773 * Makefile.in (options.c options.h): Use stamp file s-options to
14774 avoid unnecessary rebuilds.
14775 (options.o): New target listing dependencies.
14776 (gtyp-gen.h): Use stamp file s-gtyp-gen.
14777 (STAGESTUFF): Add s-gtyp-gen.
14778
14779 2004-01-28 Richard Henderson <rth@redhat.com>
14780
14781 * ggc.h (ggc_free): Declare.
14782 * ggc-common.c (ggc_realloc): Use it.
14783 * ggc-page.c: Remove lots of inline markers.
14784 (globals): Add free_object_list.
14785 (ggc_alloc): Tidy.
14786 (ggc_free, validate_free_objects): New.
14787 (poison_pages): Provide default.
14788 (ggc_collect): Call validate_free_objects; emit markers to
14789 the debug file.
14790
14791 2004-01-28 Zack Weinberg <zack@codesourcery.com>
14792 Jim Wilson <wilson@specifixinc.com>
14793
14794 * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14795 Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14796 scratch pointer.
14797 (ia64_secondary_reload_class): Delete case GR_REGS.
14798 * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14799 Do not allocate a scratch register.
14800 (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14801
14802 2004-01-28 Jan Hubicka <jh@suse.cz>
14803
14804 * gcse.c (bypass_block): Prevent edges to be unified when we are
14805 about to emit compenstation code.
14806
14807 2004-01-28 Nick Clifton <nickc@redhat.com>
14808
14809 * config/arm/arm.c (arm_expand_builtin): Force second argument of
14810 the setcwx insn into a register.
14811
14812 2004-01-28 Richard Sandiford <rsandifo@redhat.com>
14813
14814 * config/fp-bit.c (pack_d): When using paired doubles to implement
14815 a long double, round the high part separately.
14816 (unpack_d): Fix the case in which the high part is a power of two
14817 and the low part is a nonzero value of the opposite sign.
14818
14819 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14820
14821 * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14822 (TARGET_STRUCT_VALUE_RTX): Likewise.
14823 (c4x_external_libcall): Likewise.
14824 (c4x_struct_value_rtx): Likewise.
14825 * config/c4x/c4x.h: Remove.
14826 (STRUCT_VALUE_REGNUM): Likewise.
14827 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14828
14829 2004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14830
14831 * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14832 (TARGET_STRUCT_VALUE_RTX): Likewise.
14833 * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14834 (STRUCT_VALUE): Likewise.
14835 (PROMOTE_PROTOTYPES): Likewise.
14836
14837 2004-01-27 Roger Sayle <roger@eyesopen.com>
14838
14839 * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14840 CONST_INT before using INTVAL.
14841
14842 2004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
14843
14844 * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14845 * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14846 frame if !TARGET_BACKCHAIN.
14847 * config/s390/s390.md ("allocate_stack"): Use pattern only if
14848 TARGET_BACKCHAIN.
14849 * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14850
14851 2004-01-27 Zack Weinberg <zack@codesourcery.com>
14852
14853 * ia64.c (ia64_function_arg): When placing HFAs in integer
14854 registers, do not special case the mode used for complex
14855 types. Do not advance int_regs until the current register
14856 is full.
14857
14858 2004-01-27 Richard Sandiford <rsandifo@redhat.com>
14859
14860 PR target/7297
14861 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14862
14863 2004-01-27 David Edelsohn <edelsohn@gnu.org>
14864
14865 * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14866 slow, unaligned loads and stores while debugging. Fix formatting.
14867
14868 2004-01-27 David Edelsohn <edelsohn@gnu.org>
14869
14870 * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14871 of computing wmode.
14872 (restore_stack_nonlocal): Same.
14873
14874 2004-01-27 Devang Patel <dpatel@apple.com>
14875
14876 * Makefile.in (dwarf2out.o): Depend on input.h
14877 * dbxout.c (dbx_debug_hooks): Add new empty hook for
14878 imported_module_or_decl.
14879 (xcoff_debug_hooks): Same.
14880 * sdbout.c (sdb_debug_hooks): Same.
14881 * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14882 * debug.c (do_nothing_debug_hooks): Same.
14883 (debug_nothing_tree_tree): New function.
14884 * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14885 * dwarf2out.c: Include input.h.
14886 (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14887 (remove_child_TAG): New function.
14888 (dwarf_tag_name): Handle DW_TAG_imported_module.
14889 (gen_subprogram_die): Equate decl number to declaration die. Do not
14890 remove all children dies while reusing declaration die for definition.
14891 Instead, selectively remove only formal parameters.
14892 (gen_variable_die): Equate variable decl to declaration die.
14893 (gen_field_die): Equate field decl to line number.
14894 (force_namespace_die): Replace it with ...
14895 (force_decl_die): ... this.
14896 (force_type_die): New function.
14897 (setup_namespace_context): Replace use of force_namespace_die() with
14898 force_decl_die().
14899 (gen_namespace_die): Same.
14900 (dwarf2out_imported_module_or_decl): New function.
14901
14902 2004-01-27 Bob Wilson <bob.wilson@acm.org>
14903
14904 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14905 on CQImode and CHImode incoming arguments in register a7.
14906 (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14907 * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14908 * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14909 xtensa_copy_incoming_a7 before reload.
14910
14911 2004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
14912
14913 * coverage.c (get_coverage_counts): Give a different message
14914 if flag_guess_branch_prob is set.
14915 * predict.c (counts_to_freqs): Return an int.
14916 (estimate_bb_frequencies): If counts_to_freqs returns zero,
14917 calculate estimates.
14918
14919 2004-01-27 Kazu Hirata <kazu@cs.umass.edu>
14920
14921 * config/iq2000/iq2000-protos.h: Remove the prototype for
14922 iq2000_setup_incoming_varargs.
14923 * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14924 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14925 (TARGET_PROMOTE_PROTOTYPES): Likewise.
14926 (TARGET_STRUCT_VALUE_RTX): Likewise.
14927 (TARGET_RETURN_IN_MEMORY): Likewise.
14928 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14929 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14930 (iq2000_return_in_memory): Likewise.
14931 (iq2000_setup_incoming_varargs): Make it static. Receive the
14932 first argument by reference.
14933 * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14934 (PROMOTE_FUNCTION_RETURN): Likewise.
14935 (PROMOTE_PROTOTYPES): Likewise.
14936 (RETURN_IN_MEMORY): Likewise.
14937 (STRUCT_VALUE): Likewise.
14938 (SETUP_INCOMING_VARARGS): Likewise.
14939 (STRICT_ARGUMENT_NAMING): Likewise.
14940
14941 2004-01-24 James A. Morrison <ja2morri@uwaterloo.ca>
14942
14943 * fixinc/fixinc.c (test_test): Initialize res.
14944 (start_flexer): Initialize pz_cmd_save.
14945
14946 2004-01-27 Zack Weinberg <zack@codesourcery.com>
14947
14948 * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14949 SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14950
14951 2004-01-27 Zack Weinberg <zack@codesourcery.com>
14952
14953 PR 7198
14954 * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14955 (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14956 (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14957 Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14958 Possibly rename pattern for consistency.
14959 Remove ??? comments suggesting that this be done.
14960 (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14961 New patterns.
14962 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14963 (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14964 (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14965 (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14966 Update to match.
14967
14968 2004-01-27 Ian Lance Taylor <ian@wasabisystems.com>
14969
14970 * config/arm/arm.c (output_return_instruction): Only restore IP
14971 into SP if frame_pointer_needed.
14972
14973 2004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
14974
14975 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14976 for SCmode and DCmode if ARCH32.
14977 (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14978 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14979 if ARCH32.
14980 (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14981 if ARCH32.
14982 (BASE_OUTGOING_VALUE_REG): Likewise.
14983
14984 2004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
14985
14986 PR target/10904
14987 PR target/13058
14988 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14989 Forbid mode changes from SImode for lower FP regs if ARCH64.
14990
14991 2004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
14992
14993 * Makefile.in (bt-load.o): Depend on except.h.
14994 * bt-load.c (except.h): #include.
14995 (compute_defs_uses_and_gen): If insn at end of BB can throw
14996 within this function, consider registers used by it unavailable for
14997 btr migration.
14998 (move_btr_def): If insn at end of BB can throw, insert before rather
14999 than after.
15000
15001 * flags.h (flag_btr_bb_exclusive): Declare.
15002 * toplev.c (flag_btr_bb_exclusive): New variable.
15003 (f_options): Add btr-bb-exclusive.
15004 * bt-load.c (augment_live_range): Restore old behaviour if
15005 flag_btr_bb_exclusive is set.
15006 * common.opt: Add entry for -fbtr-bb-exclusive.
15007 * opts.c (common_handle_options): Same.
15008 * doc/invoke.texi: Document -fbtr-bb-exclusive.
15009
15010 * bt-load.c (btrs_live_at_end): New variable.
15011 (compute_defs_uses_and_gen): Compute its pointed-to array.
15012 (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15013 (augment_live_range): When augmenting with a new dominator,
15014 use only its btrs_live_at_end set, but also add in the full set
15015 of the old dominator.
15016 (btr_def_live_range): Use btrs_live_at_end.
15017 (move_btr_def): Set other_btr_uses_before_def, and move new set
15018 to the end of the basic block, if appropriate.
15019 (migrate_btr_defs): Allocate and free btrs_live_at_end.
15020
15021 * bt-load.c (basic_block_freq): Remove outdated comment.
15022
15023 2004-01-27 Alan Modra <amodra@bigpond.net.au>
15024
15025 * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15026 (PREDICATE_CODES): Remove duplicate.
15027 * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15028 (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15029 (MASK_PROFILE_KERNEL): Adjust define.
15030
15031 2004-01-27 Jakub Jelinek <jakub@redhat.com>
15032
15033 * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15034 of long string literals from 32 bytes to sizeof (void *) when !-Os
15035 and to 1 with -Os.
15036
15037 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15038
15039 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15040 constant addresses in the normal mode.
15041
15042 2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15043
15044 * system.h (CHAR_BITFIELD): Delete.
15045 (BOOL_BITFIELD): New.
15046 * c-decl.c (c_scope): Use BOOL_BITFIELD.
15047 * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15048
15049 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15050
15051 * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15052 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15053 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15054 (TARGET_STRUCT_VALUE_RTX): Likewise.
15055 (TARGET_RETURN_IN_MEMORY): Likewise.
15056 (arc_return_in_memory): Likewise.
15057 * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15058 (PROMOTE_FUNCTION_RETURN): Likewise.
15059 (RETURN_IN_MEMORY): Likewise.
15060 (STRUCT_VALUE): Likewise.
15061
15062 2004-01-26 Richard Henderson <rth@redhat.com>
15063
15064 * c-parse.in (extension): Use itype.
15065 (SAVE_EXT_FLAGS): Don't allocate a tree.
15066 (RESTORE_EXT_FLAGS): Don't read a tree.
15067
15068 2004-01-26 Jan Hubicka <jh@suse.cz>
15069
15070 * cselib.c (discard_useless_values): Clear out value pointer pointing
15071 to datastructure to be recycled.
15072
15073 2004-01-25 Jan Hubicka <jh@suse.cz>
15074
15075 * genextract.c (main): Do not output the memset when not checking.
15076
15077 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15078
15079 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15080 switch statement instead of a chain of if statements.
15081
15082 2004-01-26 Jeff Law <law@redhat.com>
15083
15084 * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
15085 acute accents for Petur Runolfsson's entry.
15086
15087 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15088
15089 * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15090 (TARGET_RETURN_IN_MEMORY): Likewise.
15091 * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15092 (RETURN_IN_MEMORY): Likewise.
15093
15094 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
15095
15096 * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15097 unaligned load/store into smaller loads and stores.
15098
15099 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
15100
15101 * function.c (assign_parms): Do not assign
15102 long long argument to memory in prologue if
15103 is it loaded into register.
15104
15105 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
15106
15107 PR middle-end/13779
15108 * expr.c (emit_group_load): split constant
15109 correctly into register components of PARALLEL insn.
15110
15111 2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
15112
15113 * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15114 Use adjust_address_nv directly with appropriate mode.
15115 (restore_stack_nonlocal): Ditto.
15116
15117 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15118
15119 * config/xtensa/xtensa-protos.h: Remove the prototype for
15120 xtensa_builtin_saveregs.
15121 * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15122 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15123 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15124 (TARGET_STRUCT_VALUE_RTX): Likewise.
15125 (TARGET_RETURN_IN_MEMORY): Likewise.
15126 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15127 (xtensa_builtin_saveregs): Make it static.
15128 (xtensa_return_in_memory): New.
15129 * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15130 (PROMOTE_FUNCTION_RETURN): Likewise.
15131 (PROMOTE_PROTOTYPES): Likewise.
15132 (STRUCT_VALUE): Likewise.
15133 (RETURN_IN_MEMORY): Likewise.
15134 (EXPAND_BUILTIN_SAVEREGS): Likewise.
15135
15136 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15137
15138 * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15139 (arm_setup_incoming_varargs): Likewise.
15140 * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15141
15142 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15143
15144 * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15145 (cris_setup_incoming_varargs): Likewise.
15146 * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15147
15148 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15149
15150 * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15151 (ns32k_struct_value_rtx): Likewise.
15152 * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15153 NS32K_STRUCT_VALUE_REGNUM.
15154
15155 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15156
15157 * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15158 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15159 (TARGET_STRUCT_VALUE_RTX): Likewise.
15160 (arm_struct_value_rtx): Likewise.
15161 * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15162 (STRUCT_VALUE): Likewise.
15163 (STRUCT_VALUE_REGNUM): Likewise.
15164 (PROMOTE_PROTOTYPES): Likewise.
15165
15166 2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15167
15168 * config/ia64/ia64-protos.h: Remove the prototype for
15169 ia64_setup_incoming_varargs and ia64_return_in_memory.
15170 * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15171 (TARGET_RETURN_IN_MEMORY): Likewise.
15172 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15173 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15174 (ia64_setup_incoming_varargs): Adjust the arguments to meet
15175 the requirement of TARGET_SETUP_INCOMING_VARARGS.
15176 (ia64_return_in_memory): Make it static. Change the return
15177 type to bool from int. Add an argument.
15178 (ia64_struct_value_rtx): New.
15179 * config/ia64/ia64.h: Remove commented-out definitions of
15180 PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15181 PROMOTE_PROTOTYPES.
15182 (RETURN_IN_MEMORY): Remove.
15183 (STRUCT_VALUE_REGNUM): Likewise.
15184 (STRICT_ARGUMENT_NAMING): Likewise.
15185
15186 2004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
15187
15188 PR target/13666
15189 * config/sparc/sparc.c (function_arg_union_value): New function.
15190 (function_arg): Use it to deal with unions.
15191 (function_value): Likewise. Define 'regbase' only for ARCH64.
15192 Replace a conditional statement by a simpler one.
15193
15194 2004-01-26 Richard Sandiford <rsandifo@redhat.com>
15195
15196 * config/mips/mips.c (mips16_optimize_gp): Delete.
15197 (mips_reorg): Don't call it.
15198
15199 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15200
15201 * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15202 (floatunsqihf2): Remove operand 6.
15203 (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15204 fix patterns.
15205 (ldi_conditional, ldf_conditional): Validate operands.
15206
15207 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15208
15209 * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15210 (HAVE_GAS_HIDDEN): Undefine as interim measure.
15211
15212 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15213
15214 * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
15215 memory references if TARGET_EXPOSE_LDP nonzero.
15216
15217 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15218
15219 * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15220
15221 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15222
15223 * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15224 invalid operand combinations.
15225
15226 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15227
15228 * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15229 c4x_legitimate_address_p. Fix post_modify check.
15230
15231 * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15232 * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15233
15234 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15235
15236 * config/pa/pa-protos.h: Remove the prototype for
15237 hppa_builtin_saveregs. Add a prototype for
15238 pa_return_in_memory.
15239 * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15240 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15241 (TARGET_STRUCT_VALUE_RTX): Likewise.
15242 (TARGET_RETURN_IN_MEMORY): Likewise.
15243 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15244 (pa_struct_value_rtx): Likewise.
15245 (pa_return_in_memory): Likewise.
15246 * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15247 PA_STRUCT_VALUE_REGNUM.
15248 (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15249 (EXPAND_BUILTIN_SAVEREGS): Remove.
15250 (PROMOTE_PROTOTYPES): Likewise.
15251 (PROMOTE_FUNCTION_RETURN): Likewise.
15252
15253 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15254
15255 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15256 (TARGET_STRUCT_VALUE_RTX): Likewise.
15257 (vax_struct_value_rtx): Likewise.
15258 * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15259 VAX_STRUCT_VALUE_REGNUM.
15260 (PROMOTE_PROTOTYPES): Remove.
15261
15262 2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15263
15264 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
15265
15266 2003-04-25 Chris Demetriou <cgd@broadcom.com>
15267
15268 * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15269 and MIPS64 have HI/LO interlocks. Update comment.
15270
15271 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15272
15273 * config/stormy16/stormy16-protos.h: Remove the prototype for
15274 xstormy16_setup_incoming_varargs.
15275 * config/stormy16/stormy16.c
15276 (xstormy16_setup_incoming_varargs): Remove.
15277 (xstormy16_return_in_memory): New.
15278 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15279 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15280 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15281 (TARGET_STRUCT_VALUE_RTX): Likewise.
15282 (TARGET_RETURN_IN_MEMORY): Likewise.
15283 * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15284 (PROMOTE_FUNCTION_RETURN): Likewise
15285 (PROMOTE_PROTOTYPES): Likewise
15286 (RETURN_IN_MEMORY): Likewise
15287 (STRUCT_VALUE): Likewise
15288 (SETUP_INCOMING_VARARGS): Likewise
15289
15290 2004-01-25 Richard Sandiford <rsandifo@redhat.com>
15291
15292 * config/mips/mips.c (mips_offset_within_object_p): New function.
15293 (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15294 SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
15295 ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15296
15297 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15298
15299 * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15300 (PROMOTE_FUNCTION_RETURN): Likewise.
15301
15302 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15303
15304 * config/mn10300/mn10300-protos.h: Remove the prototype for
15305 mn10300_builtin_saveregs.
15306 * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15307 (TARGET_STRUCT_VALUE_RTX): Likewise.
15308 (TARGET_RETURN_IN_MEMORY): Likewise.
15309 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15310 (mn10300_return_in_memory): Likewise.
15311 (mn10300_builtin_saveregs): Make it static.
15312 * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15313 (RETURN_IN_MEMORY): Likewise.
15314 (STRUCT_VALUE): Likewise.
15315 (EXPAND_BUILTIN_SAVEREGS): Likewise.
15316
15317 2004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
15318
15319 PR bootstrap/13853
15320 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15321
15322 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15323
15324 * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15325 using ccr.
15326
15327 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15328
15329 * config/i860/i860-protos.h: Remove the prototype for
15330 i860_saveregs.
15331 * config/i860/i860.c (i860_saveregs): Make it static.
15332 (i860_struct_value_rtx): New.
15333 (TARGET_STRUCT_VALUE_RTX): Likewise.
15334 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15335 * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15336 I860_STRUCT_VALUE_REGNUM.
15337 (EXPAND_BUILTIN_SAVEREGS): Remove.
15338
15339 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15340
15341 * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15342 (TARGET_RETURN_IN_MEMORY): Likewise.
15343 (m68hc11_struct_value_rtx): Likewise.
15344 (m68hc11_return_in_memory): Likewise.
15345 * config/m68hc11/m68hc11.h: Remove a commented-out definition
15346 of PROMOTE_PROTOTYPES.
15347 (RETURN_IN_MEMORY): Remove.
15348 (STRUCT_VALUE_REGNUM): Likewise.
15349
15350 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15351
15352 * config/mmix/mmix-protos.h: Remove the prototype for
15353 mmix_setup_incoming_varargs.
15354 * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15355 (TARGET_STRUCT_VALUE_RTX): Likewise.
15356 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15357 (mmix_setup_incoming_varargs): Make it static.
15358 (mmix_struct_value_rtx): New.
15359 * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15360 Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15361 (STRUCT_VALUE_REGNUM): Remove.
15362 (SETUP_INCOMING_VARARGS): Likewise.
15363
15364 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15365
15366 * config/mips/mips-protos.h: Remove the prototypes for
15367 mips_setup_incoming_varargs and mips_return_in_memory.
15368 * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15369 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15370 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15371 (TARGET_STRUCT_VALUE_RTX): Likewise.
15372 (TARGET_RETURN_IN_MEMORY): Likewise.
15373 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15374 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15375 (mips_setup_incoming_varargs): Match the prototype for
15376 TARGET_SETUP_INCOMING_VARARGS.
15377 (mips_return_in_memory): Make it static. Add argument fntype.
15378 (mips_strict_argument_naming): New.
15379 * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15380 (PROMOTE_FUNCTION_ARGS): Likewise.
15381 (PROMOTE_FUNCTION_RETURN): Likewise.
15382 (STRUCT_VALUE): Likewise.
15383 (RETURN_IN_MEMORY): Likewise.
15384 (SETUP_INCOMING_VARARGS): Likewise.
15385 (STRICT_ARGUMENT_NAMING): Likewise.
15386
15387 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15388
15389 * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15390 (TARGET_RETURN_IN_MEMORY): Likewise.
15391 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15392 (ip2k_return_in_memory): Likewise.
15393 (ip2k_setup_incoming_varargs): Likewise.
15394 * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15395 (STRUCT_VALUE): Likewise.
15396 (STRUCT_VALUE_INCOMING): Likewise.
15397 (SETUP_INCOMING_VARARGS): Likewise.
15398
15399 2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15400
15401 * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15402 (TARGET_RETURN_IN_MEMORY): Likewise.
15403 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15404 (avr_return_in_memory): Remove.
15405 * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15406 (STRUCT_VALUE): Likewise.
15407 (STRUCT_VALUE_INCOMING): Likewise.
15408 (STRICT_ARGUMENT_NAMING): Likewise.
15409
15410 2004-01-25 Jan Hubicka <jh@suse.cz>
15411
15412 * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15413
15414 2004-01-25 Richard Sandiford <rsandifo@redhat.com>
15415
15416 * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15417 (mips_regno_mode_ok_for_base_p): Declare.
15418 * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15419 (FRAME_POINTER_REGNUM): Renumber to 78.
15420 (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15421 (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15422 (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15423 (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15424 (REG_MODE_OK_FOR_BASE_P): Likewise.
15425 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15426 entry for 77 to "$arg" and entry for 78 to "$frame".
15427 (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15428 (mips_reg_mode_ok_for_base_p): Remove.
15429 (mips_regno_mode_ok_for_base_p): New function, derived from old
15430 BASE_REG_P macro. Don't enforce the mips16 stack pointer
15431 restrictions unless we're being strict.
15432 (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15433
15434 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15435
15436 * c-common.h: Fix comment typos.
15437 * c-decl.c: Likewise.
15438 * cgraphunit.c: Likewise.
15439 * combine.c: Likewise.
15440 * et-forest.c: Likewise.
15441 * flow.c: Likewise.
15442 * function.c: Likewise.
15443 * ifcvt.c: Likewise.
15444 * integrate.c: Likewise.
15445 * jump.c: Likewise.
15446 * postreload.c: Likewise.
15447 * varray.c: Likewise.
15448
15449 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15450
15451 * doc/frontends.texi: Update copyright.
15452 * doc/gcov.texi: Likewise.
15453 * doc/gty.texi: Likewise.
15454 * doc/sourcebuild.texi: Likewise.
15455 * doc/standards.texi: Likewise.
15456
15457 2004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
15458
15459 PR target/12978
15460 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15461 Remove movstrqi_small because it conflicts with movstrqi_large.
15462
15463 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15464
15465 * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15466 (TARGET_STRUCT_VALUE_RTX): Likewise.
15467 (cris_struct_value_rtx): Likewise.
15468 * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15469 (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15470 STRUCT_VALUE_REGNUM.
15471 (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15472
15473 2004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
15474
15475 PR bootstrap/13848
15476 * cse.c (cse_cc_succs): Change the mode of the source expression
15477 as soon as decide we need a new mode. Don't permit changing modes
15478 if we found a match in a successor block.
15479 (cse_condition_code_reg): Save original mode of source expression
15480 so that we know whether we have to change the mode in other
15481 insns.
15482
15483 2004-01-24 Jan Hubicka <jh@suse.cz>
15484
15485 * emit-rtl.c (change_address, adjust_address_1, offset_address,
15486 widen_memory_access): Return early when there is nothing to change.
15487
15488 2004-01-24 Jakub Jelinek <jakub@redhat.com>
15489
15490 * simplify-rtx.c (simplify_relational_operation): Don't
15491 simplify address == constant into address + -constant == 0.
15492
15493 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15494
15495 * gcc.c (process_command): Don't internationalize the
15496 Copyright message.
15497 * mips-tfile.c (main): Likewise.
15498
15499 2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
15500
15501 * cse.c: (cse_cc_succs) Fix comparison warning.
15502
15503 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15504
15505 * config/h8300/h8300.md: Remove extraneous USE in expanders.
15506
15507 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15508
15509 * config/h8300/h8300-protos.h: Provide prototypes for
15510 h8300_legitimate_constant_p and h8300_legitimate_address_p.
15511 * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15512 (h8300_rtx_ok_for_base_p): Likewise.
15513 (h8300_legitimate_address_p): Likewise.
15514 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15515 h8300_legitimate_constant_p.
15516 (RTX_OK_FOR_BASE_P): Remove.
15517 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15518
15519 2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15520
15521 * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15522 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15523 (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15524 (REG_OK_FOR_BASE_STRICT_P): Likewise.
15525 (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15526 (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15527 (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15528 (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15529
15530 2004-01-24 Jan Hubicka <jh@suse.cz>
15531
15532 * cselib.c (remove_useless_values): Do not access discarded values.
15533
15534 2004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
15535
15536 * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15537 arrays.
15538
15539 2004-01-23 Kazu Hirata <kazu@cs.umass.edu>
15540
15541 * recog.c: Fix a typo in copyright.
15542
15543 2004-01-23 Andrew Pinski <apinski@apple.com>
15544
15545 * config/rs6000/rs6000.md (call): Fix misappiled patch.
15546 (call_value): Likewise.
15547
15548 2004-01-23 Richard Henderson <rth@redhat.com>
15549
15550 PR opt/12941
15551 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15552 (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15553 if SHIFT_COUNT_TRUNCATED is set.
15554
15555 2004-01-23 Bob Wilson <bob.wilson@acm.org>
15556
15557 * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15558 separate real and imaginary parts.
15559 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15560
15561 2004-01-23 Hartmut Penner <hpenner@de.ibm.com>
15562
15563 PR target/13674
15564 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15565 loading into GPR.
15566
15567 2004-01-23 Jan Hubicka <jh@suse.cz>
15568
15569 * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
15570 change.
15571
15572 * alloc-pool.c (align_four): Kill.
15573 (create_alloc_pool): Align size to eight.
15574 (free_alloc_pool, free_pool): Invalidate deallocated data.
15575
15576 2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
15577
15578 PR gcc/1532
15579 * cse.c (cse_change_cc_mode): New static function.
15580 (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15581 (cse_condition_code_reg): New function.
15582 * rtl.h (cse_condition_code_reg): Declare.
15583 * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15584 * target.h (struct gcc_target): Add fixed_condition_code_regs and
15585 cc_modes_compatible.
15586 * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15587 (TARGET_CC_MODES_COMPATIBLE): Define.
15588 (TARGET_INITIALIZER): Add new initializers.
15589 * targhooks.c (default_cc_modes_compatible): New function.
15590 * targhooks.c (default_cc_modes_compatible): Declare.
15591 * hooks.c (hook_bool_intp_intp_false): New function.
15592 * hooks.h (hook_bool_intp_intp_false): Declare.
15593 * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15594 (TARGET_CC_MODES_COMPATIBLE): Define.
15595 (ix86_fixed_condition_code_regs): New static function.
15596 (ix86_cc_modes_compatible): Likewise.
15597 * doc/tm.texi (Condition Code): Document new hooks.
15598
15599 2004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15600
15601 * fixinc/inclhack.def (bad_lval): Renamed to ...
15602 (alpha_bad_lval): ... this.
15603 Removed file list.
15604 Restrict to alpha*-dec-osf*.
15605 * fixinc/fixincl.x: Regenerate.
15606 * fixinc/tests/base/dirent.h: Remove, moving test ...
15607 * fixinc/tests/base/testing.h: ... here, reflecting new name.
15608
15609 2004-01-23 Zack Weinberg <zack@codesourcery.com>
15610
15611 PR c/13814
15612 * c-decl.c (diagnose_mismatched_decls): Also discard a
15613 built-in if we encounter an old-style definition with the
15614 same name.
15615
15616 2004-01-23 Jakub Jelinek <jakub@redhat.com>
15617
15618 * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15619 set to default{32,64}.
15620
15621 2004-01-21 Jakub Jelinek <jakub@redhat.com>
15622
15623 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15624 [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15625
15626 2004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
15627 Olivier Hainque <hainque@act-europe.fr>
15628
15629 * fold-const.c (fold_binary_op_with_conditional_arg): Only
15630 build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15631
15632 2004-01-23 Daniel Jacobowitz <drow@mvista.com>
15633
15634 * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15635 size for minipool references.
15636
15637 2004-01-23 Roger Sayle <roger@eyesopen.com>
15638
15639 * real.c (real_floor, real_ceil): Tweak to allow input and output
15640 arguments to overlap.
15641 (real_round): New function to implement round(3m) semantics.
15642 * real.h (real_round): Prototype here.
15643 * builtins.c (fold_builtin_round): New function to constant fold
15644 round, roundf and roundl.
15645 (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15646
15647 2004-01-23 Alexandre Oliva <aoliva@redhat.com>
15648
15649 PR optimization/13819
15650 * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15651 introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15652 (sh_handle_sp_switch_attribute): Remove warning.
15653
15654 2003-11-30 Jan Hubicka <jh@suse.cz>
15655
15656 * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
15657
15658 2004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
15659
15660 * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15661 may or may not return non-NIL.
15662 * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15663 check CANNOT_CHANGE_MODE_CLASS
15664
15665 2004-01-23 Jan Hubicka <jh@suse.cz>
15666
15667 * basic-block.h (PROP_POSTRELOAD): New macro.
15668 (CLEANUP_LOG_LINKS): New.
15669 * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15670 * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
15671
15672 * cselib.c (value_pool): New.
15673 (new_cselib_val): Use pool.
15674 (cselib_init): Initialize value_pool
15675 (cselib_finish): Free pool.
15676
15677 2004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
15678
15679 * config/sparc/sparc.c (scan_record_type): New function.
15680 (function_arg_slotno): Use it to determine which kinds of
15681 registers the record can be passed in.
15682
15683 2004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
15684
15685 * config/pa/fptr.c: Fix old-style definition.
15686
15687 2004-01-22 Paolo Bonzini <bonzini@gnu.org>
15688
15689 PR optimization/13724
15690 * cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
15691 represents the zero bits produced by a ZERO_EXTEND operation.
15692
15693 2004-01-22 Roger Sayle <roger@eyesopen.com>
15694
15695 PR optimization/13821
15696 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15697 correctly calculate the lowpart offset of the contracted subreg.
15698
15699 2004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
15700
15701 * doc/invoke.texi (Optimize Options): Note that --param arguments
15702 are subject to change without notice.
15703
15704 2004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15705
15706 * config.gcc (mips-sgi-irix6*o32): Removed.
15707 * config/mips/iris6-o32-as.h: Likewise.
15708 * config/mips/iris6-o32-gas.h: Likewise.
15709 * config/mips/iris6-o32.h: Likewise.
15710
15711 2004-01-22 Jan Hubicka <jh@suse.cz>
15712
15713 * cfgcleanup.c (first_pass): New static variable.
15714 (try_forward_edges): Add work limiting check for threading.
15715 (try_crossjump_bb): Add work limiting check for crossjumping.
15716 (try_optimize_cfg): Maintain first pass variable.
15717
15718 2004-01-22 Bob Wilson <bob.wilson@acm.org>
15719
15720 * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15721 handles complex and vector modes.
15722
15723 2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
15724
15725 * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15726 (REG_OK_FOR_BASE_P_STRICT): Likewise.
15727 (STRICT): Likewise.
15728
15729 2004-01-22 Daniel Jacobowitz <drow@mvista.com>
15730
15731 * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15732 (genrtl_for_stmt): Remove emit_nop calls.
15733
15734 2004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15735
15736 PR target/13713
15737 PR target/13324
15738 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15739 movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15740 clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15741
15742 2004-01-22 Daniel Jacobowitz <drow@mvista.com>
15743
15744 * config/arm/arm.c: Include "debug.h".
15745 (thumb_pushpop): Take two new arguments. Add some commentary.
15746 Output frame information when pushing.
15747 (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15748 thumb_pushpop.
15749 (thumb_output_function_prologue): Likewise. Accumulate a CFA
15750 offset, and pass it to thumb_pushpop. Output CFI information.
15751 (thumb_expand_prologue): Add some frame-related markers and notes.
15752
15753 2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
15754
15755 * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15756 for TARGET_64BIT.
15757 (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15758 * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15759
15760 2004-01-22 Roger Sayle <roger@eyesopen.com>
15761 Paolo Bonzini <bonzini@gnu.org>
15762
15763 * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15764 (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15765 * rtl.h (subreg_lsb_1): Prototype here.
15766 * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15767 sign extensions.
15768
15769 2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
15770
15771 * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15772 macro need not be defined if jump-tables should contain
15773 relative addresses only when -fPIC or -fPIC is in effect.
15774
15775 2004-01-22 Jan Hubicka <jh@suse.cz>
15776
15777 * alias.c (reg_base_value): Turn into varray.
15778 (reg_base_value_size): Kill.
15779 (old_reg_base_value): New deletable varray.
15780 (alias_invariant_size): New variable.
15781 (REG_BASE_VALUE): Update to use varray.
15782 (find_base_value): Likewise.
15783 (record_set): Likewise.
15784 (record_base_value): Likewise.
15785 (memrefs_conflict_p): Likewise.
15786 (record_set): Likewise
15787 (record_base_value): Likewise.
15788 (memrefs_conflict_p): Use alias_invariant_size.
15789 (init_alias_analysis): Use varray; set alias_invariant_size;
15790 rescale other arrays to be sized by maxreg.
15791 (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15792
15793 2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
15794
15795 * config/sparc/sparc.c (function_arg_slotno): Use
15796 FLOAT_TYPE_P to detect FP fields in structures.
15797 (function_arg_record_value_1): Likewise.
15798 (function_arg_record_value_2): Likewise.
15799
15800 2004-01-22 Jan Hubicka <jh@suse.cz>
15801
15802 * function.c (allocate_struct_function): Do not initialize expr, emit
15803 and varasm.
15804 (prepare_function_start): Do it here.
15805 * c-parse.in (maybe_type_qual): Do not produce line number notes.
15806
15807 2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
15808
15809 PR target/13559
15810 * config/sparc/sparc.c (function_arg_record_value_3): Revert
15811 to 'word_mode' once the first slot has been filled.
15812
15813 2004-01-22 Olivier Hainque <hainque@act-europe.fr>
15814
15815 * config/sparc/sparc.c (function_arg_record_value_1): Fix
15816 computation of the number of integer registers required.
15817
15818 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
15819
15820 * config/i386/i386.md: Simplify certain comparisons of
15821 const_int.
15822
15823 2004-01-21 Andrew Pinski <apinski@apple.com>
15824
15825 PR target/13785
15826 * config/rs6000/rs6000.md (call_value): Force operand
15827 1 not operand 0 into a register.
15828
15829 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
15830
15831 * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15832 unwind-dw2-fde.h: Update copyright.
15833
15834 2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15835
15836 * pa-protos.h: Update copyright.
15837 * pa.h: Likewise.
15838 * pa.md: Likewise.
15839
15840 2004-01-21 Caroline Tice <ctice@apple.com>
15841
15842 PR target/12308
15843 * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
15844 flags register.
15845 (fix_truncdfdi2): Likewise.
15846 (fix_truncsfdi2): Likewise.
15847 (*fix_truncdi_1): Likewise.
15848 (fix_truncxfsi2): Likewise.
15849 (fix_truncdfsi2): Likewise.
15850 (fix_truncsfsi2): Likewise.
15851 (*fix_truncsi_1): Likewise.
15852 (fix_truncxfhi2): Likewise.
15853 (fix_truncdfhi2): Likewise.
15854 (fix_truncsfhi2): Likewise.
15855 (*fix_trunchi_1): Likewise.
15856
15857 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
15858
15859 * alias.c, basic-block.h, c-common.c, c-common.h,
15860 c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15861 calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15862 combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15863 cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15864 defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15865 expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15866 genautomata.c, genconditions.c, genemit.c, genflags.c,
15867 gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15868 ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15869 langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15870 line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15871 ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15872 rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15873 target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15874 unwind.h, varray.c, varray.h: Update copyright.
15875
15876 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
15877
15878 * config/h8300/coff.h: Update copyright.
15879 * config/h8300/elf.h: Likewise.
15880 * config/h8300/h8300-protos.h: Likewise.
15881 * config/h8300/h8300.c: Likewise.
15882 * config/h8300/h8300.h: Likewise.
15883 * config/h8300/h8300.md: Likewise.
15884
15885 2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15886
15887 * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15888 ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15889 ultrix_unistd): New hacks.
15890 * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15891 ULTRIX_CONST2_CHECK): Add checks.
15892 * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15893 * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15894 * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15895 * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15896 * fixinc/tests/base/locale.h: New file.
15897 * fixinc/fixincl.x: Rebuilt.
15898
15899 2004-01-21 Andreas Jaeger <aj@suse.de>
15900 Michael Matz <matz@suse.de>
15901
15902 * doc/extend.texi (Extended Asm): Clarify memory clobber.
15903
15904 2004-01-21 Jakub Jelinek <jakub@redhat.com>
15905
15906 * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15907 _Jv_RegisterClasses through a function pointer.
15908
15909 2004-01-21 Falk Hueffner <falk@debian.org>
15910
15911 PR target/12898
15912 * config/alpha/alpha.c (alpha_emit_set_const_1): If
15913 no_new_pseudos, use gen_rtx_SET directly for SImode constants
15914 which need multiple instructions to emit.
15915
15916 2004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
15917
15918 * config/m32r/m32r.h (CPP_SPEC): Define.
15919
15920 2004-01-21 Zack Weinberg <zack@codesourcery.com>
15921
15922 * c-decl.c (merge_decls): Kill different_binding_level and
15923 different_tu arguments; simplify throughout.
15924 (duplicate_decls): Likewise.
15925 (pushdecl, merge_translation_unit_decls): Update calls to
15926 duplicate_decls.
15927
15928 2004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15929
15930 * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15931 $(SYSTEM_H).
15932 (print-rtl1.o): Depend on $(SYSTEM_H).
15933
15934 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
15935
15936 PR bootstrap/12730
15937 * configure.ac: Delete definition and subsitution of docdir.
15938 Add info, man, srcman and srcinfo to target hooks. Create doc/
15939 directory.
15940 * configure: Regenerate.
15941 * Makefile.in: Don't substitute docdir and delete all references
15942 throughout.
15943 (MAKEINFOFLAGS): Define.
15944 (stmp-docobjdir): Delete.
15945 (INFOFILES, MANFILES): Define.
15946 (info): Call lang.info, srcinfo and lang.srcinfo.
15947 (generated-manpages): Call lang.man, srcman and lang.srcman.
15948 (srcinfo, srcman): New rules to copy back files to source directory.
15949 (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15950 (install-man): Revamp rule.
15951 (clean): Update dvi directory.
15952 (distclean): Delete TAGS from front end directorys.
15953 (maintainer-clean): Delete all document files in source directory.
15954
15955 objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15956 (objc.srcman, objc.srcinfo): Likewise.
15957
15958 2004-01-20 Bruce Korb <bkorb@gnu.org>
15959
15960 * fixinc/inclhack.def(math_exception): bypass only for glibc.
15961 (matherr_decl): rename & relocate as exception_structure.
15962 This fix must precede the math_exception fix.
15963
15964 2004-01-20 Roger Sayle <roger@eyesopen.com>
15965
15966 * fold-const.c (fold_convert): Rename to fold_convert_const.
15967 (fold_convert_const): Change arguments to take a tree_code,
15968 a type and the operand/expression to be converted. Return
15969 NULL_TREE if no simplification is possible. Add support for
15970 FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15971 (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15972 Adjust call to fold_convert to match new fold_convert_const.
15973 Avoid modifying the tree passed to fold in-place.
15974
15975 2004-01-21 Alan Modra <amodra@bigpond.net.au>
15976
15977 * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15978 * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15979 * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15980
15981 2004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15982
15983 * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15984 * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15985 Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
15986 (emit_move_sequence): Check scratch_reg first in various if statements.
15987 Extend source simplification to handle all 64-bit CONST_INTs.
15988 (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15989 frame size.
15990 (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15991 frame offset calculations.
15992 * pa.h (NEW_HP_ASSEMBLER): Add comment.
15993 (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15994 LEGITIMATE_64BIT_CONST_INT_P): Define.
15995 (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
15996 any CONST_INT as legitimate during and after reload.
15997 (VAL_32_BITS_P, INT_32_BITS): Define.
15998 (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15999
16000 2004-01-20 Jan Hubicka <jh@suse.cz>
16001
16002 * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16003 emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16004 containing hard regs are shared.
16005 (gen_hard_reg_clobber): New function.
16006 (hard_reg_clobbers): New array.
16007 * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16008 (copy_rtx): Do not copy clobbers containing hard regs.
16009 * rtl.h (gen_hard_reg_clobber): Declare.
16010
16011 2004-01-20 Jan Hubicka <jh@suse.cz>
16012
16013 * varray.c: Include hashtab.h
16014 (varray_descriptor): New structure.
16015 (hash_descriptor, eq_descriptor, varray_descriptor,
16016 print_statistics): New static functions
16017 (varray_init, varray_grow): Update statistics
16018 (dump_varray_statistics): New function.
16019 * varray.h (dump_varray_statistics): Declare.
16020 * toplev.c (finalize): Call it.
16021 * Makefile.in (varray.o): Add dependency.
16022
16023 2004-01-20 Jan Hubicka <jh@suse.cz>
16024
16025 * cselib.c: Include alloc-pool.h
16026 (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16027 (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16028 (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16029 unchain_one_elt_loc_list_pool, unchain_one_value,
16030 new_cselib_val): Simplify using allocpool.
16031 (cselib_init): Initialize allocpools.
16032 (cselib_finish): Finish allocpools.
16033 * Makefile.in (cselib.o): Depend on alloc-pool.h
16034
16035 2004-01-20 Richard Sandiford <rsandifo@redhat.com>
16036
16037 * config/mips/mips.c (mips_load_call_address): Make the call insn
16038 use $gp if it could be calling a lazy binding stub.
16039
16040 2004-01-20 Kazu Hirata <kazu@cs.umass.edu>
16041
16042 * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16043 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16044 (TARGET_STRUCT_VALUE_RTX): Likewise.
16045 * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16046 (PROMOTE_FUNCTION_RETURN): Remove.
16047 (STRUCT_VALUE): Remove.
16048
16049 2004-01-20 Denis Chertykov <denisc@overta.ru>
16050
16051 PR bootstrap/13735
16052 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16053 register as pointer after reload.
16054
16055 2004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
16056
16057 PR optimization/12440
16058 * loop.c: Include ggc.h.
16059 (loop_optimize): Run garbage collector between optimization of loops.
16060 * Makefile.in (loop.o): Add GGC_H dependency.
16061
16062 2004-01-20 Hartmut Penner <hpenner@de.ibm.com>
16063
16064 * gcc/config/rs6000/rs6000.c (function_arg) Handle
16065 vector register special in function without prototype.
16066 (function_arg_advance): Vector parameters get always
16067 GPRs allocated for the linux64 target.
16068
16069 2004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
16070
16071 * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16072 not TARGET_M32RX_MASK.
16073
16074 2004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
16075
16076 PR target/13557
16077 * config/sparc/sparc.c (function_arg): Reorder the cases.
16078
16079 2004-01-19 Per Bothner <per@bothner.com>
16080
16081 Move cpp_reader's line_maps field to a shared global.
16082 * cpphash.h (cpp_reader): Rename line_maps field to line_table
16083 and change the type to a pointer rather than a struct.
16084 * cppinit.c (cpp_push_main_field): Adjust accordingly.
16085 * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16086 Likewise.
16087 * cppfiles.c (validate_pch): Likewise.
16088 * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16089 Likewise.
16090 * cpperror.c (print_location): Likewise.
16091 * cpplib.h (cpp_create_reader): New line_maps pointer parameter.
16092 * cppinit.c (cpp_create_reader): Handle new parameter.
16093 (cpp_destroy): Don't free line_maps - that's no longer our job.
16094 * input.h (line_table): New variable.
16095 * toplev.c (line_table): Declare variable.
16096 (general_init): Initialize line_table.
16097 * c-opts.c (c_common_init_options): Pass line_table to
16098 cpp_create_reader.
16099 * fix-header.c (read_scan_file): New local variable line_table.
16100 Initialize, and pass it to cpp_create_reader.
16101 * Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
16102 (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
16103
16104 2004-01-19 Per Bothner <per@bothner.com>
16105
16106 Implement a cache for linemap_lookup.
16107 * line-map.h (struct_line_maps): Add cache field.
16108 * line-map.c (linemap_init): Zero cache field.
16109 (linemap_add): Set cache field to offset of newly allocated map.
16110 (linemap_lookup): Use and set cache field.
16111
16112 2004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
16113
16114 PR optimization/13567
16115 * cse.c (cse_basic_block): Call cse_insn with a non-null
16116 libcall_insn for the last SET insn of a no-confilict block.
16117
16118 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
16119
16120 * Makefile.in (target_noncanonical, program_transform_name): Use
16121 immediate define instead of deferred.
16122 (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16123 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16124 GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16125 deferred backquote.
16126
16127 2004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
16128
16129 * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16130 true unconditionally.
16131 * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16132 Remove.
16133 (build_unary_op, build_modify_expr): Don't handle extended
16134 lvalues.
16135 (build_component_ref, build_conditional_expr): Call non_lvalue
16136 instead of pedantic_non_lvalue.
16137 (build_c_cast): Don't condition use of non_lvalue on pedantic.
16138 * fold-const.c (fold): Don't check pedantic directly for
16139 COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
16140 passed to pedantic_non_lvalue.
16141 * doc/extend.texi: Remove documentation of extended lvalues.
16142
16143 2004-01-19 Roger Sayle <roger@eyesopen.com>
16144
16145 PR optimization/5263
16146 * simplify-rtx.c (associative_constant_p): Delete.
16147 (simplify_associative_operation): Rewrite to linearize terms, and
16148 attempt to simplify new term against both left and right subterms.
16149 (simplify_binary_operation): Call swap_commutative_operands_p on
16150 op0 and op1, not trueop0 and trueop1. Move the initialization of
16151 trueop0 and trueop1 down to where first needed.
16152 (simplify_relational_operation): Likewise.
16153 * rtlanal.c (commutative_operand_precedence): Also order constant
16154 operands using avoid_constant_pool_reference.
16155
16156 2004-01-19 Richard Henderson <rth@redhat.com>
16157
16158 * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16159 don't check memory mode.
16160 (unaligned_memory_operand): Likewise.
16161 (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16162 abort for op0 not MEM.
16163
16164 * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16165 is not a reg, copy to a scratch first.
16166 (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16167 unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16168 unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16169 (reload_inqi, reload_inhi): Fix mode of op0.
16170 (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16171 reload_outhi_help): Likewise. Use define_insn_and_split.
16172
16173 * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16174 as well as $29 dead.
16175
16176 2004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
16177
16178 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
16179 "tls_object" for thread-local objects.
16180 * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16181 "#tls" for thread-local sections.
16182 * configure.ac (thread-local checks): Specify --fatal-warnings in
16183 every binutils-specific checks. For sparc*-*-*, test whether the
16184 OS is Solaris and the tools are native and act accordingly.
16185 * configure: Rebuild.
16186
16187 2004-01-19 Jeff Law <law@redhat.com>
16188
16189 * contrib.texi: Update Paolo Carlini's entry. New entries for
16190 Jerry Quinn and Petur Runolfsson.
16191
16192 2004-01-19 Roger Sayle <roger@eyesopen.com>
16193
16194 * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16195 size, don't use the larger zero-extending loads.
16196
16197 2004-01-19 Richard Henderson <rth@redhat.com>
16198
16199 * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16200 * alpha.md (UNSPEC_NT_LDA): Remove.
16201 (UNSPEC_CVTLQ, cvtlq): New.
16202 (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16203 (extendsidi2_fix): Remove.
16204 (extendsidi2 splitter): Use cvtlq.
16205 (extendsidi2 fp peepholes): Remove.
16206 (cvtql): Use SFmode instead of SImode.
16207 (fix_trunc?fsi): Update to match.
16208 (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16209 (movsi): Rename from movsi_nofix, remove f alternatives.
16210 (movsi_nt_vms): Similarly.
16211 (movsi_fix, movsi_nt_vms_fix): Remove.
16212 (nt_lda): Remove.
16213 * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16214
16215 2004-01-19 Jan Hubicka <jh@suse.cz>
16216
16217 * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16218 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16219 list.
16220 (cgraph_remove_unreachable_nodes): New function
16221 (cgraph_decide_inlining_of_small_function): Fix pasto.
16222 (cgraph_decide_inlining_incrementally): Fix pasto.
16223 (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16224
16225 2004-01-19 Steven Bosscher <stevenb@suse.de>
16226
16227 * gengtype.c (header_file): Make it static.
16228 (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16229 * gengtype.h (header_file): No longer extern.
16230
16231 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16232
16233 * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16234 * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16235 * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16236
16237 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16238
16239 * stmt.c (HAVE_casesi): Define it not already defined.
16240 (HAVE_tablejump): Likewise.
16241 (expand_end_case_type): Resort to the binary tree method if
16242 neither casesi or tablejump is available.
16243
16244 2004-01-18 Daniel Jacobowitz <drow@mvista.com>
16245
16246 * final.c (final_scan_insn): Make non-static again.
16247 * output.h (final_scan_insn): Re-add prototype.
16248 * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16249 to final_scan_insn call.
16250 * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16251 * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16252 * config/pa/pa.c (output_lbranch, output_call): Likewise.
16253 * config/sh/sh.c (print_slot): Likewise.
16254 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16255 (output_sibcall, sparc_flat_function_epilogue): Likewise.
16256
16257 2004-01-18 Jan Hubicka <jh@suse.cz>
16258
16259 * basic-block.h (try_redirect_by_replacing_jump): Declare.
16260 * cfgcleanup.c (try_optimize_cfg): Use it.
16261 * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16262 (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16263 Kill hack.
16264 (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16265
16266 Revert:
16267 2004-01-16 Geoffrey Keating <geoffk@apple.com>
16268
16269 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16270 even after reload, just don't remove the actual jump tables.
16271
16272 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16273
16274 * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16275
16276 2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16277
16278 * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16279 the size of a pointer in bytes.
16280
16281 2004-01-18 Roger Sayle <roger@eyesopen.com>
16282
16283 * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16284 live "next" variable, which could lead to an infinite loop.
16285
16286 2004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
16287
16288 * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16289 block.
16290
16291 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16292 Check for NULL in the chain and remove repeated code.
16293
16294 2004-01-18 Jan Hubicka <jh@suse.cz>
16295
16296 * coverage.c (checksum_string): Rename to ...
16297 (coverage_checksum_string): ... this one, Use crc32_string; recognize
16298 names containing random number and zero the number out in order to get
16299 match.
16300
16301 2004-01-18 Richard Sandiford <rsandifo@redhat.com>
16302
16303 * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16304
16305 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16306
16307 * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16308 doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16309 doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16310 doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16311 doc/trouble.texi: Remove trailing whitespace.
16312
16313 2004-01-18 Richard Sandiford <rsandifo@redhat.com>
16314
16315 PR target/7618
16316 * config/mips/mips.c: Include cfglayout.h.
16317 (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16318 (mips_unspec_offset_high): Add temporary register argument.
16319 (mips_load_call_address): New function, split out from...
16320 (mips_expand_call): ...here.
16321 (mips_output_cplocal): New function.
16322 (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16323 (mips_emit_loadgp): New function, split out from...
16324 (mips_expand_prologue): ...here.
16325 (mips_output_mi_thunk): New function.
16326
16327 2004-01-17 Bernardo Innocenti <bernie@develer.com>
16328
16329 * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16330 mcpu32): Remove redundant checks for implied target predefines.
16331
16332 2004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
16333
16334 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16335 Return type is unsigned int not int.
16336 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16337 Likewise.
16338
16339 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16340
16341 * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16342 doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16343 "GNU/Linux" and "Microsoft Windows" terminology.
16344
16345 2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16346
16347 * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16348 doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16349 doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16350 doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16351 @smallexample instead of @example.
16352
16353 2004-01-17 Ziemowit Laski <zlaski@apple.com>
16354
16355 * objc/objc-act.c (build_objc_method_call): Use target
16356 hooks instead of macros to determine if ..._stret
16357 dispatchers should be used (NeXT runtime only).
16358
16359 2004-01-17 Roger Sayle <roger@eyesopen.com>
16360
16361 * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16362 last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16363
16364 2004-01-17 Daniel Jacobowitz <drow@mvista.com>
16365
16366 * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16367 (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16368 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16369 macros.
16370 * reload1.c (emit_reload_insns): Use them.
16371 * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16372 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16373 for NULL PATTERN.
16374
16375 2004-01-17 Daniel Jacobowitz <drow@mvista.com>
16376
16377 * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16378 (final_scan_insn): Update to take an additional SEEN argument. Emit
16379 a line note after the prologue. Make static.
16380 (line_note_exists): Remove.
16381 (final): Don't initialize line_note_exists. Update call to
16382 final_scan_insn.
16383 * output.h (final_scan_insn): Remove prologue.
16384 * function.c (set_insn_locators): Update comment.
16385 (thread_prologue_and_epilogue_insns): Add a comment.
16386
16387 2004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
16388
16389 PR target/10781
16390 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16391 Prototype.
16392 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16393 New function.
16394 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16395 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16396 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16397
16398 2004-01-17 Jan Hubicka <jh@suse.cz>
16399
16400 * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16401 commit.
16402
16403 * toplev.c (HAVE_conditional_execution): Provide default.
16404 (rest_of_handle_reorder_blocks): For conditional_execution target
16405 update liveness once after all transformations
16406 (rest_of_compilation): Do crossjumping before ce3.
16407
16408 2004-01-17 Geoffrey Keating <geoffk@apple.com>
16409
16410 * alias.c (new_alias_set): Mark last_alias_set for PCH.
16411 (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16412 for PCH.
16413 (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16414 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16415 (get_TOC_alias_set): Mark 'set' for PCH.
16416
16417 2004-01-16 Geoffrey Keating <geoffk@apple.com>
16418
16419 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16420 even after reload, just don't remove the actual jump tables.
16421
16422 2004-01-17 J. Brobecker <brobecker@gnat.com>
16423
16424 * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16425 Remove checks for is_ada() and TREE_UNSIGNED.
16426 (subrange_type_die): Emit a byte_size attribute if the subrange
16427 type size is different from the base type size.
16428 (modified_type_die): Replace call to is_ada_subrange_type() by
16429 call to is_subrange_type().
16430
16431 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
16432
16433 * config/sh/sh.c: Include ggc.h.
16434
16435 2004-01-16 Geoffrey Keating <geoffk@apple.com>
16436
16437 * Makefile.in (MD5_H): New.
16438 (fold-const.o): Depend on md5.h.
16439 (dwarf2out.o): Likewise.
16440 (cppfiles.o): Likewise.
16441 * cppfiles.c: Include md5.h.
16442 (should_stack_file): Check against list read from PCH file.
16443 (struct pchf_data): New.
16444 (pchf): New variable.
16445 (struct pchf_adder_info): New.
16446 (pchf_adder): New.
16447 (pchf_save_compare): New.
16448 (_cpp_save_file_entries): New.
16449 (_cpp_read_file_entries): New.
16450 (struct pchf_compare_data): New.
16451 (pchf_compare): New.
16452 (check_file_against_entries): New.
16453 * cpphash.h (_cpp_save_file_entries): Prototype.
16454 (_cpp_read_file_entries): Prototype.
16455 * cpppch.c (cpp_write_pch_state): Write the list of headers.
16456 (cpp_read_state): Read the list of headers.
16457
16458 2004-01-17 Jan Hubicka <jh@suse.cz>
16459
16460 * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16461 builtin_expect specially.
16462 * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16463 (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16464 * invoke.texi (max-inline-insns-single): Set to 100.
16465 (large-function-insns): Set to 3000.
16466
16467 2004-01-16 Eric Christopher <echristo@redhat.com>
16468 Chandrakala Chavva <cchavva@redhat.com>
16469
16470 * cppcharset.c (one_iso88591_to_utf8): New function.
16471 (convert_iso88591_utf8): Ditto. Use.
16472 (conversion_tab): Use.
16473 (_cpp_input_to_utf8): New function.
16474 (_cpp_init_iconv_buffer): Ditto.
16475 (_cpp_close_iconv_buffer): Ditto.
16476 * cpphash.h: Prototype new functions.
16477 (cpp_buffer): Add input_cset_desc.
16478 * cppinit.c: Add input_charset default.
16479 * cpplib.c (cpp_push_buffer): Support init and
16480 close of iconv.
16481 * cpplib.h (cpp_options): Add input_charset.
16482
16483 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16484
16485 * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16486 * config/alpha/unicosmk.h: Remove a commented-out definition
16487 of ASM_OUTPUT_SECTION_NAME.
16488 * config/stormy16/stormy16.h: Likewise.
16489
16490 2004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16491
16492 * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16493 (alpha___extern_prefix_sys_stat): ... this.
16494 Apply to <sys/mount.h>, too.
16495 Tweak to match more variations.
16496 * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16497
16498 * fixinc/inclhack.def (alpha___extern_prefix,
16499 alpha___extern_prefix_standards): New hacks to obey
16500 __PRAGMA_EXTERN_PREFIX.
16501 * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16502 test.
16503 * fixinc/tests/base/standards.h: Likewise.
16504
16505 * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16506 variations.
16507 New testcase.
16508 * fixinc/tests/base/pthread.h: Handle it.
16509
16510 * fixincl/inclhack.def (bad_lval): Sort file list.
16511 Add many missing files up to Tru64 UNIX V5.1B.
16512 * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16513 * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16514 order.
16515
16516 * fixinc/fixincl.x: Regenerate.
16517
16518 2004-01-16 Mark Mitchell <mark@codesourcery.com>
16519
16520 * version.c (version_string): Change to 3.5.0.
16521 * doc/include/gcc-common.texi (version-GCC): Likewise.
16522
16523 2004-01-16 Jan Hubicka <jh@suse.cz>
16524
16525 * i386.md (load_tp_di): Fix pasto.
16526
16527 PR opt/13608
16528 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16529
16530 * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16531 pp_c_character_constant, pp_c_floating_constant,
16532 pp_c_additive_expression, pp_c_shift_expression,
16533 pp_c_equality_expression, pp_c_and_expression,
16534 pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16535 pp_c_logical_and_expression): Remove inline modifier.
16536 * dwarf2out.c (get_AT): Likewise.
16537 * et-forest.c (et_splay): Likewise.
16538 * ra.h (ra_alloc, ra_calloc): Likewise
16539
16540 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16541
16542 * config/frv/frv-protos.h: Fix comment formatting.
16543 * config/frv/frv.c: Likewise.
16544 * config/frv/frv.h: Likewise.
16545 * config/frv/frv.md: Likewise.
16546 * config/frv/frvbegin.c: Likewise.
16547 * config/frv/frvend.c: Likewise.
16548
16549 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16550
16551 * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16552 * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16553 LINKER_DOES_NOT_WORK_WITH_DWARF2.
16554 (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16555
16556 2004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
16557
16558 PR 11864
16559 * postreload.c (reload_cse_simplify_operands): Don't remove
16560 implicit extension from LOAD_EXTEND_OP.
16561
16562 2004-01-16 Jan Hubicka <jh@suse.cz>
16563
16564 PR opt/11350
16565 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16566 after reload.
16567 * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16568 rtl_try_redirect_by_replacing_branch): Likewise.
16569
16570 2004-01-15 Geoffrey Keating <geoffk@apple.com>
16571
16572 PR pch/13689
16573 * alias.c (struct alias_set_entry): Mark for GC.
16574 (alias_sets): Make static, mark for GC.
16575 (record_alias_subset): Use GC to allocate alias structures.
16576 * varray.c (element): Make generic varrays GCed.
16577
16578 PR pch/13361
16579 * c-typeck.c (constructor_asmspec): Delete.
16580 (struct initializer_stack): Delete field 'asmspec'.
16581 (start_init): Delete saving of asmspec.
16582 (finish_init): Don't update constructor_asmspec.
16583 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16584 * stmt.c (expand_asm): Duplicate strings from tree.
16585 (expand_asm_operands): Likewise.
16586 * tree.c (tree_size): Update computation of size of STRING_CST.
16587 (make_node): Don't make STRING_CST nodes.
16588 (build_string): Allocate string with tree node.
16589 * tree.def (STRING_CST): Update comment.
16590 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16591 (tree_string): Place contents of string in tree node.
16592 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16593 from tree.
16594
16595 * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16596 altivec operands.
16597
16598 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16599
16600 * c-common.h: Fix comment formatting.
16601 * c-cppbuiltin.c: Likewise.
16602 * c-pragma.c: Likewise.
16603 * calls.c: Likewise.
16604 * collect2.c: Likewise.
16605 * cppcharset.c: Likewise.
16606 * cpptrad.c: Likewise.
16607 * dbxout.c: Likewise.
16608 * defaults.h: Likewise.
16609 * dwarf2out.c: Likewise.
16610 * fold-const.c: Likewise.
16611 * genautomata.c: Likewise.
16612 * genconditions.c: Likewise.
16613 * genflags.c: Likewise.
16614 * gengtype.c: Likewise.
16615 * integrate.c: Likewise.
16616 * loop.c: Likewise.
16617 * predict.c: Likewise.
16618 * sdbout.c: Likewise.
16619
16620 2004-01-15 Zack Weinberg <zack@codesourcery.com>
16621
16622 * config/ia64/ia64.md (*movti_internal): C output template
16623 extracted to ia64.c.
16624 (*movti_internal_reg): Delete.
16625 (reload_inti, reload_outti): Use the correct mode on operand 2
16626 in the first place, don't fix it up in the output template.
16627 (movtf, reload_ointf, reload_outtf): New expanders.
16628 (*movtf_internal): New define_insn_and_split.
16629 * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16630 make static; do not hand TFmode CONST_DOUBLEs to split_double.
16631 (ia64_split_tmode_move): New function, body mostly pulled
16632 from ia64.md:*movti_internal.
16633 (ia64_function_arg_words): New function, extracted common
16634 logic from ia64_function_arg et seq.
16635 (ia64_function_arg_offset): Likewise. Handle correctly the
16636 case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16637 (ia64_function_arg, ia64_function_arg_partial_nregs)
16638 (ia64_function_arg_advance): Use ia64_function_arg_words and
16639 ia64_function_arg_offset.
16640 (ia64_function_value): TCmode does not go in float regs.
16641 (ia64_secondary_reload_class): Also handle TFmode.
16642 * config/ia64/ia64-protos.h: Remove prototype for
16643 ia64_split_timode; add prototype for ia64_split_tmode_move.
16644
16645 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
16646
16647 * Makefile.in (MAINT): Make it an immediate assignment.
16648
16649 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16650
16651 * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16652
16653 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16654
16655 * config/h8300/coff.h: Replace Hitachi with Renesas.
16656 * config/h8300/elf.h: Likewise.
16657 * config/h8300/h8300-protos.h: Likewise.
16658 * config/h8300/h8300.c: Likewise.
16659 * config/h8300/h8300.h: Likewise.
16660 * config/h8300/h8300.md: Likewise.
16661 * config/h8300/lib1funcs.asm: Likewise.
16662
16663 2004-01-15 Andrew Pinski <apinski@apple.com>
16664
16665 * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16666 around it.
16667
16668 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16669
16670 * config/h8300/h8300.c (h8300_return_in_memory): New.
16671 (TARGET_STRUCT_VALUE_RTX): Likewise.
16672 (TARGET_RETURN_IN_MEMORY): Likewise.
16673 * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16674 (RETURN_IN_MEMORY): Likewise.
16675
16676 2004-01-15 Richard Earnshaw <rearnsha@arm.com>
16677
16678 PR optimization/13375
16679 * gcse.c (handle_avail_expr): Just return if the source is not a
16680 single set.
16681
16682 2004-01-15 Richard Earnshaw <rearnsha@arm.com>
16683 Daniel Jacobowitz <drow@mvista.com>
16684
16685 * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16686 (EQUIV): Define.
16687 (ARM_FUNC_ALIAS): New macro.
16688 * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16689 * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16690
16691 2004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16692
16693 PR optimization/12372
16694 * calls.c (expand_call): Add call_fusage data for stack arguments in
16695 constant calls.
16696
16697 2004-01-15 Alan Modra <amodra@bigpond.net.au>
16698
16699 * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
16700 (rs6000_elf_declare_function_name): Formatting.
16701 * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16702
16703 2004-01-15 Jan Hubicka <jh@suse.cz>
16704
16705 PR bootstrap/13692
16706 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16707 previous patch.
16708
16709 2004-01-15 Richard Henderson <rth@redhat.com>
16710
16711 * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16712 integer regs of the same call-savedness.
16713
16714 2004-01-15 Andreas Schwab <schwab@suse.de>
16715
16716 PR bootstrap/13562
16717 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16718 status for NOTB/NOTW/NEGW methods.
16719
16720 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16721
16722 * doc/invoke.texi: Update dump file names. Fix a typo.
16723
16724 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16725
16726 * builtins.c (expand_builtin_va_end): Don't use
16727 EXPAND_BUILTIN_VA_END.
16728 * system.h (EXPAND_BUILTIN_VA_END): Poison.
16729 * config/d30v/d30v.h: Remove a commented-out definition of
16730 EXPAND_BUILTIN_VA_END.
16731 * config/stormy16/stormy16.h: Likewise.
16732
16733 2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16734
16735 * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16736 * targhooks.c (default_struct_value_rtx): Don't use
16737 STRUCT_VALUE_INCOMING_REGNUM.
16738
16739 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
16740
16741 PR bootstrap/12744
16742 * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16743 GENINSRC and not parsedir. Define srcextra as a langhook.
16744 * configure: Regenerate.
16745 * Makefile.in: Suppress default .l.c rule. Don't substitute
16746 parsedir and delete all references throughout. Conditionally define
16747 rule for srcextra dependent on GENINSRC.
16748 (stmp-docobjdir): Delete.
16749 (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16750 (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16751 and gengtype-yacc.h back to source directory.
16752 (maintainer-clean): Delete all parse files in source directory.
16753 (distclean): Delete generated files.
16754
16755 * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16756 (objc-parse.c, objc-parse.y): Don't use parsedir.
16757 (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16758 directory if requested.
16759 (po-generated): Don't use parsedir.
16760 (objc.maintainer-clean): Delete above files from source directory.
16761
16762 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16763
16764 * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16765
16766 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16767
16768 * doc/tm.texi: Replace RETURN_IN_MEMORY with
16769 TARGET_RETURN_IN_MEMORY.
16770
16771 2004-01-15 Jan Hubicka <jh@suse.cz>
16772
16773 * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16774 * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16775 functions accepting SSE arguments
16776 (function_arg): Warn only when asked to warn.
16777 * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16778
16779 2004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
16780
16781 * c-parse.in (stmts_and_decls): Make label at end of compound
16782 statement a hard error.
16783
16784 2004-01-14 Jan Hubicka <jh@suse.cz>
16785
16786 * cgraph.c (create_edge): Use local.redefined_extern_inline.
16787 * cgraph.h (cgraph_local_info): Sort fields by size; add
16788 redefined_extern_inline
16789 (cgraph_global_info): Sort fields by size.
16790 (cgraph_node): Likewise.
16791 * cgraphunit.c (cgraph_finalize_function): Se
16792 local.redefined_extern_inline on redefinition.
16793 (cgraph_analyze_function): Use it; fix formating.
16794
16795 2004-01-14 Jan Hubicka <jh@suse.cz>
16796
16797 PR c++/10776
16798 * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16799 outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16800 bitmaps
16801 (cache_size): New variable
16802 (add_dependence): Update use; canonize early memory locations
16803 (sched_analyze_1): Likewise.
16804 (sched_analyze_2): Likewise.
16805 (init_dependency_caches): Initialize bitmaps.
16806 (free_dependency_caches): Free bitmaps
16807
16808 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16809
16810 * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16811 targetm.calls.strict_argument_naming().
16812 * target.h: Likewise.
16813
16814 2004-01-14 Richard Henderson <rth@redhat.com>
16815
16816 PR debug/13231
16817 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16818 instructions.
16819
16820 2004-01-14 Richard Henderson <rth@redhat.com>
16821
16822 PR c++/12491
16823 * except.c (struct eh_region): Add u.fixup.resolved.
16824 (resolve_one_fixup_region): Split out from ...
16825 (resolve_fixup_regions): ... here.
16826
16827 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16828
16829 * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16830
16831 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16832
16833 * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16834 * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16835 (STRUCT_VALUE): Remove.
16836
16837 2004-01-14 Steven Bosscher <stevenb@suse.de>
16838
16839 * system.h: Poison PROMOTED_MODE
16840 * integrate.c (expand_inline_function): Don't mention the
16841 PROMOTED_MODE.
16842 * loop.c (update_giv_derive): Same.
16843 * tree.h (DECL_RTL): Same.
16844
16845 2004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
16846
16847 PR target/9365
16848 * sh.c (gen_block_redirect): Add special handling of RETURN.
16849 (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16850 far branch target (i.e. it's a return).
16851
16852 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16853
16854 * regrename.c (find_oldest_value_reg): Fix a warning.
16855
16856 2004-01-14 Richard Earnshaw <rearnsha@arm.com>
16857
16858 PR bootstrap/12527
16859 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16860 Move linux-gas.h and linux-elf.h before aout.h.
16861 * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16862 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16863
16864 2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16865
16866 * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16867 (CONST_INT, VOIDmode, ...).
16868
16869 2004-01-14 Richard Earnshaw <rearnsha@arm.com>
16870
16871 * regrename.c (find_oldest_value_reg): If the replacement uses
16872 multiple hard registers, check that all of them are in CLASS.
16873
16874 2004-01-14 Jan Hubicka <jh@suse.cz>
16875
16876 * alias.c (get_alias_set): Initialize alias set to 0 when subset is
16877 impossible.
16878
16879 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
16880
16881 * Makefile.in: Define MAINT from --enable-maintainer-mode.
16882
16883 2004-01-14 Hartmut Penner <hpenner@de.ibm.com>
16884
16885 * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16886 Calculate always vrsave_mask if TARGET_ALTIVEC.
16887 (rs6000_emit_prologue): Emit code for vrsave
16888 only if TARGET_ALTIVEC_VRSAVE.
16889 (rs6000_emit_epilogue): Likewise.
16890
16891 2004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
16892
16893 * config/sparc/sparc.md (tie_add32): Fix pasto.
16894 (tie_add64): Likewise.
16895
16896 2004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
16897
16898 * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16899
16900 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16901
16902 * config/iq2000/iq2000-protos.h: Fix comment formatting.
16903 * config/iq2000/iq2000.c: Likewise.
16904 * config/iq2000/iq2000.md: Likewise.
16905
16906 2004-01-14 J. Brobecker <brobecker@gnat.com>
16907
16908 * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16909 (subrange_type_die): Add handle for nameless subrange types.
16910
16911 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16912
16913 * config/h8300/h8300-protos.h: Replace do_movsi with
16914 h8300_expand_movsi.
16915 * config/h8300/h8300.c (do_movsi): Change to
16916 h8300_expand_movsi.
16917 * config/h8300/h8300.md (movsi): Replace do_movsi with
16918 h8300_expand_movsi.
16919 (movsf): Likewise.
16920
16921 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16922
16923 * config/h8300/h8300.c (dosize): Change to
16924 h8300_emit_stack_adjustment. Update callers.
16925
16926 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16927
16928 * config/h8300/h8300.md (movstrictqi): Add an alternative with
16929 the source being post_inc. Tighten the predicate for the
16930 destination to register_operand.
16931 (movstricthi): Likewise.
16932
16933 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16934
16935 * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16936 * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16937 * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16938
16939 2004-01-14 Jan Hubicka <jh@suse.cz>
16940
16941 Partial fix PR c++/12850
16942 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16943 at zero nest level.
16944
16945 2004-01-13 Bernardo Innocenti <bernie@develer.com>
16946
16947 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16948 pseudo-register.
16949
16950 2004-01-13 Devang Patel <dpatel@apple.com
16951
16952 PR debug/7078
16953 * dbxout.c (dbxout_symbol_name): Emit mangled names for
16954 NAMESPACE_DECL memebers.
16955
16956 2004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
16957
16958 PR c++/12709
16959 * c-common.c (finish_fname_decls): Use the chain only if the
16960 tree is an expr_stmt.
16961
16962 2004-01-13 Vladimir Makarov <vmakarov@redhat.com>
16963
16964 * rtl.def: Add comment about new option in automata_option.
16965
16966 * genautomata.c (PROGRESS_OPTION): New macro.
16967 (progress_flag): New global variable.
16968 (gen_automata_option): Process `progress'.
16969 (transform_insn_regexps, check_unit_distributions_to_automata,
16970 make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16971 expand_automata, write_automata): Print about the progress only if
16972 progress_flag. Remove fflush.
16973 (initiate_automaton_gen): Process command line flag `-progress'.
16974
16975 * doc/md.texi: Describe the new option.
16976
16977 2004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
16978
16979 * cfg.c (dump_bb): Dump entry edges.
16980
16981 2004-01-13 Richard Earnshaw <rearnsha@arm.com>
16982
16983 * arm.c (thumb_legitimate_address_p): Only allow constant pool
16984 references from SImode.
16985 * arm.md (thumb_movhi_insn): Don't allow minipool references.
16986
16987 2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16988
16989 * system.h (TEXT_SECTION): Poison.
16990 * varasm.c (text_section): Don't use TEXT_SECTION.
16991 * config/sh/sh.c (sh_file_start): Fix a comment typo.
16992 * doc/tm.texi (TEXT_SECTION): Remove.
16993
16994 2004-01-13 Ben Elliston <bje@wasabisystems.com>
16995
16996 * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16997
16998 2004-01-12 James E Wilson <wilson@specifixinc.com>
16999
17000 * unwind-libunwind.c: Delete.
17001
17002 2004-01-12 Zack Weinberg <zack@codesourcery.com>
17003
17004 PR 13656
17005 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17006 oldtype is set, set *newtypep or *oldtypep too. Do not set
17007 them at the very end.
17008 (validate_proto_after_old_defn): Restructure for comprehensibility;
17009 make error messages clearer.
17010
17011 2004-01-12 Zack Weinberg <zack@codesourcery.com>
17012
17013 * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17014 (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17015 * varray.c: No need to prototype error.
17016 (varray_check_failed): Wrap long string onto two lines.
17017 (varray_underflow): New function.
17018
17019 2004-01-13 Steven Bosscher <stevenb@suse.de>
17020
17021 PR c++/13376
17022 * function.h (struct function): Kill `name' field.
17023 (current_function_name): Make it an extern function.
17024 * function.c (current_function_name): New function.
17025 * graph.c: Update all uses of current_function_name.
17026 * gcse.c: Likewise.
17027 * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17028 config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17029 * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17030 instead of a strcmp with "main".
17031
17032 2004-01-13 Jan Hubicka <jh@suse.cz>
17033
17034 * c-decl.c (diagnose_mismatched_decls): Fix warning calls.
17035
17036 * cgraphunit.c (cgraph_optimize_function): Always do
17037 optimize_inline_calls when there is always_inline callee.
17038 (cgraph_decide_inlining): Fix formating.
17039 * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17040 functions.
17041 (expand_call_inline): Likewise.
17042 * toplev.h (sorry): Fix prototype.
17043
17044 2004-01-12 Roger Sayle <roger@eyesopen.com>
17045
17046 * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17047 conditional jumps that drop through to unconditional jumps or the
17048 end of the sequence.
17049
17050 2004-01-13 Jan Hubicka <jh@suse.cz>
17051
17052 * alias.c (new_alias_set): Construct the alias_set varray.
17053 (init_alias_once): Don't do it here.
17054
17055 2004-01-12 Marc Espie <espie@openbsd.org>
17056
17057 * system.h: handle YYBYACC like YYBISON.
17058
17059 2004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
17060
17061 PR target/10847
17062 * config.gcc: No longer includes conflicting header sparc/sol2.h when
17063 building on sparc64-*-openbsd*.
17064
17065 2004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
17066
17067 PR debug/13539
17068 * dbxout.c (dbxout_type): Protected inheritance is not
17069 private but protected.
17070
17071 2004-01-12 Richard Sandiford <rsandifo@redhat.com>
17072
17073 * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17074
17075 2004-01-12 Kazu Hirata <kazu@cs.umass.edu>
17076
17077 PR optimization/12508.
17078 * combine.c (try_combine): Remove a dead set in a parallel
17079 even if its destination is a subreg.
17080
17081 Revert:
17082 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
17083 * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17084 SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17085
17086 2004-01-12 Geoffrey Keating <geoffk@apple.com>
17087
17088 * real.c: Update copyright date.
17089 * emit-rtl.c: Likewise.
17090 * rtl.h: Likewise.
17091 * dwarf2out.c: Likewise.
17092 * config/rs6000/darwin-ldouble.c: Likewise.
17093 * config/rs6000/rs6000.md: Likewise.
17094
17095 2004-01-12 David Edelsohn <edelsohn@gnu.org>
17096
17097 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17098 TFmode to SImode libfuncs.
17099
17100 2004-01-12 Roger Sayle <roger@eyesopen.com>
17101
17102 PR middle-end/11397
17103 * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17104
17105 2004-01-12 Jan Hubicka <jh@suse.cz>
17106
17107 PR opt/12826
17108 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17109 stored.
17110
17111 PR opt/12863
17112 * cfgcleanup.c (label_is_jump_target_p): Move to...
17113 * rtlanal.c (label_is_jump_target_p): ... here.
17114 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
17115 edges unified with branch edges.
17116
17117 2004-01-12 Richard Earnshaw <rearnsha@arm.com>
17118
17119 * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17120 high word of an integral CONST_DOUBLE.
17121
17122 2004-01-12 Paul Brook <paul@codesourcery.com>
17123
17124 * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17125
17126 2004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
17127
17128 PR target/13585
17129 * sh-protos.h (check_use_sfunc_addr): Declare.
17130 * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17131 * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17132
17133 2004-01-12 Jan Hubicka <jh@suse.cz>
17134
17135 * alias.c: Invlude varray.h
17136 (alias_sets): Turn into varray.
17137 (get_alias_set_entry): Use VARRAY; mark inline.
17138 (mems_in_disjoint_alias_sets_p): Mark inline.
17139 (record_alias_subset): Use varray.
17140 (init_alias_once): Initialize varray.
17141 (new_alias_set): Grow array.
17142 * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17143
17144 2004-01-12 Jan Hubicka <jh@suse.cz>
17145
17146 Partial fix for PR opt/10776 II
17147 * cselib.c: Include params.h
17148 (cselib_invalidate_mem): Limit amount of nonconflicting memory
17149 locations.
17150 * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17151 * Makefile.in (cselib.o): Depend on params.h
17152
17153 2004-01-12 Richard Sandiford <rsandifo@redhat.com>
17154
17155 * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17156 simplify_unary_operation if the operand has a known mode.
17157
17158 2004-01-12 Hartmut Penner <hpenner@de.ibm.com>
17159
17160 PR target/13534
17161 * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17162 predicate to handle 'ld' conform addresses.
17163 * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17164 contraint.
17165 (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17166 are memory contraints.
17167 * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17168 New prototype.
17169 * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17170 Change 'o' to 'Y' constraint.
17171 (*movdf_softfloat64): Ditto.
17172
17173 2004-01-12 Bernardo Innocenti <bernie@develer.com>
17174
17175 * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17176 brace-enclosed syntax in all C output statements.
17177
17178 2004-01-12 David Edelsohn <edelsohn@gnu.org>
17179
17180 PR target/13401
17181 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17182 Objective-C language type value is 14.
17183
17184 2004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
17185
17186 PR c/12148
17187 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17188 `int' in a number of places to make sure we always have a SImode
17189 and not a HImode. Add a 'L' suffix to a number of constants.
17190
17191 2004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17192
17193 * pa.c: Don't include obstack.h.
17194
17195 * pa.md: Correct constraint in pattern for loading PIC label address.
17196
17197 2004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
17198
17199 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17200 before defining.
17201
17202 2004-01-11 Steven Bosscher <stevenb@suse.de>
17203
17204 PR fortran/9972
17205 * toplev.c (rest_of_handle_inline): Also consider functions
17206 for deferral if the language is GNU F77.
17207
17208 2004-01-11 Zack Weinberg <zack@codesourcery.com>
17209
17210 * c-decl.c (diagnose_arglist_conflict): Add missing space to
17211 diagnostic messages.
17212
17213 2004-01-11 Jakub Jelinek <jakub@redhat.com>
17214
17215 PR middle-end/13392
17216 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17217 to drop through label. Don't fall back to SCC even when conditional
17218 jump has not been found.
17219
17220 2004-01-11 Jan Hubicka <jh@suse.cz>
17221
17222 * invoke.texi: Fix syntax error in previous patch.
17223
17224 Partial fix for PR opt/10776
17225 * Makefile.in (reload.o): Include param.h
17226 * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17227 * reload.c: Include params.h.
17228 (find_equiv_reg): Work limiting check.
17229 * invoke.texi: Document.
17230
17231 2004-01-11 Richard Sandiford <rsandifo@redhat.com>
17232
17233 * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17234 out-of-bounds accesses to string constants. Simplify mips16
17235 case accordingly.
17236
17237 2004-01-11 Richard Sandiford <rsandifo@redhat.com>
17238
17239 PR optimization/13469
17240 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17241 reload_cse_regs (-fnon-call-exceptions only).
17242
17243 2004-01-11 Kazu Hirata <kazu@cs.umass.edu>
17244
17245 * config/mcore/lib1.asm: Fix comment formatting.
17246 * config/mcore/mcore-elf.h: Likewise.
17247 * config/mcore/mcore.c: Likewise.
17248 * config/mcore/mcore.h: Likewise.
17249 * config/mcore/mcore.md: Likewise.
17250
17251 2004-01-10 Zack Weinberg <zack@codesourcery.com>
17252
17253 * c-decl.c (duplicate_decls): Break apart into...
17254 (diagnose_arglist_conflict, validate_proto_after_old_defn)
17255 (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17256 ... these new functions. Restructure for comprehensibility.
17257 Remove various archaic special cases. Always report the
17258 location of the previous declaration when a diagnostic is issued.
17259 (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17260 (match_builtin_function_types): Delete unnecessary forward declaration.
17261
17262 2004-01-10 Zack Weinberg <zack@codesourcery.com>
17263
17264 * genautomata.c (make_automaton, NDFA_to_DFA):
17265 Print progress bars with '.' characters instead of '*'.
17266 (build_automaton): Change notes to match.
17267
17268 2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
17269
17270 * config/m32r/m32r.md: Use define_constants for unspec and
17271 unspec_volatile.
17272
17273 2004-01-10 Jan Hubicka <jh@suse.cz>
17274
17275 PR opt/11635
17276 * expr.c (expand_expr_real): More curefully expand union casts.
17277
17278 2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
17279
17280 * config/m32r/m32r.md (flush_icache): Use 1 for
17281 unspec_volatile.
17282
17283 2004-01-10 David Edelsohn <edelsohn@gnu.org>
17284 James E Wilson <wilson@specifixinc.com>
17285
17286 PR debug/12860
17287 * dbxout.c (dbxout_symbol): Remove initialization of
17288 current_sym_code, current_sym_value, and current_sym_addr.
17289 (dbxout_symbol_location): Same.
17290 (dbxout_prepare_symbol): Zero current_sym_code,
17291 current_sym_value, and current_sym_addr.
17292
17293 2004-01-10 Richard Sandiford <rsandifo@redhat.com>
17294
17295 * tree.c (get_unwidened): Reorder conditions so that the null pointer
17296 check is done first.
17297
17298 2004-01-09 Eric Christopher <echristo@redhat.com>
17299
17300 * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17301 if we're running mark_constant_function.
17302
17303 2004-01-09 Jeff Bailey <jbailey@nisa.net>
17304
17305 PR target/12561
17306 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17307
17308 2004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
17309
17310 PR debug/11231
17311 * dbxout.c (dbxout_type_fields): Return if any item is
17312 error_mark_node or the type is error_mark_node.
17313
17314 2004-01-09 Geoffrey Keating <geoffk@apple.com>
17315
17316 * config/rs6000/darwin-ldouble.c: Add big comment explaining
17317 exactly what is expected as a 'long double'.
17318 (_xlqadd): When a value to be returned is representable as a
17319 'double', just return it directly, do not construct it using a union.
17320 Also, correct final fixup.
17321 (_xlqmul): Likewise.
17322 (_xlqdiv): Likewise.
17323 * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17324
17325 * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17326
17327 2004-01-09 Richard Henderson <rth@redhat.com>
17328
17329 * recog.c (constrain_operands): Validate mem operands.
17330
17331 2004-01-09 James E Wilson <wilson@specifixinc.com>
17332
17333 * gcc.c (init_spec): Remove -lunwind from shared case.
17334 * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17335
17336 2004-01-09 Steve Ellcey <sje@cup.hp.com>
17337
17338 * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17339 * configure: Regenerate
17340
17341 2004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
17342
17343 PR c/11234
17344 * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17345 between function and object pointers.
17346 (digest_init): When comparing a pointer to function type to the
17347 target type, only apply TREE_TYPE once to the pointer to function
17348 type.
17349 * except.c (for_each_eh_label_1): Treat data as a pointer to a
17350 function pointer rather than casting it to a function pointer.
17351 (for_each_eh_label): Update caller.
17352 * recog.h (struct insn_data): Use a struct or union for output.
17353 * genoutput.c (output_insn_data): Update.
17354 * final.c (get_insn_template): Update.
17355
17356 2004-01-09 Mark Mitchell <mark@codesourcery.com>
17357
17358 * expr.h (expand_expr): Make it a macro, not a function.
17359 (expand_expr_real): New function.
17360 * expr.c (store_expr): Adjust logic for deciding whether or not to
17361 copy the value returned by expand_expr.
17362 (expand_expr): Rename to ...
17363 (expand_expr_real): ... this. Add alt_rtl parameter. Adjust
17364 calls to language hooks.
17365 * c-common.h (c_expand_expr): Adjust prototype.
17366 * c-common.c (c_expand_expr): Add alt_rtl parameter.
17367 * langhooks-def.h (lhd_expand_expr): Change prototype.
17368 * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17369 * langhooks.h (lang_hooks): Change type of expand_expr.
17370 * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17371 (last_expr_alt_rtl): Likewise.
17372 (expand_expr_stmt_value): Set last_expr_alt_rtl.
17373 (clear_last_expr): Clear it.
17374 (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17375 (expand_end_bindings): Save and restor last_expr_alt_rtl.
17376 * tree.def (RTL_EXPR): Give it an additional operand.
17377 * tree.h (RTL_EXPR_ALT_RTL): New macro.
17378
17379 2004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17380
17381 * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17382 * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17383
17384 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17385
17386 PR target/13380.
17387 * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17388 or (ne:SI (reg:CC 17) (const_int 0)).
17389 Be specific about modes wherever possible.
17390
17391 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17392
17393 * config/m32r/m32r.c (m32r_expand_block_move): Call
17394 gen_movestrsi_internal with two more arguments.
17395 (m32r_output_block_move): Adjust operand numbers.
17396 Properly update the source and destination pointers.
17397 * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17398 'r+'. Change the set detinations to match_operand.
17399
17400 2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17401
17402 * final.c (FIRST_INSN_ADDRESS): Remove.
17403 (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17404 * system.h (FIRST_INSN_ADDRESS): Poison.
17405 * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17406 * config/m32r/m32r-protos.h: Remove the prototype for
17407 m32r_first_insn_address.
17408 * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17409 * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17410 * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17411
17412 2004-01-09 J. Brobecker <brobecker@gnat.com>
17413
17414 * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17415 we just created.
17416 (is_ada_subrange_type): DIEs for enumeration subtypes should be
17417 emitted as subrange types too.
17418 (subrange_type_die): Add handling of enumeration subtypes.
17419
17420 2004-01-08 Richard Henderson <rth@redhat.com>
17421
17422 PR opt/12441
17423 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
17424 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17425 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17426 (ix86_address_cost): Be prepared for SUBREGed registers.
17427 (legitimate_address_p): Accept SUBREGed registers.
17428
17429 2004-01-08 Kelley Cook <kcook@gcc.gnu.org>
17430
17431 * Makefile.in: Rename configure.in to configure.ac
17432 * doc/sourcebuild.texi: Likewise.
17433 * configure: Regenerate.
17434 * config.in: Regenerate.
17435
17436 2004-01-08 Stuart Hastings <stuart@apple.com>
17437
17438 * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17439
17440 2004-01-08 Jan Hubicka <jh@suse.cz>
17441
17442 * cgraphunit.c (cgraph_decide_inlining): Fix typo.
17443
17444 2004-01-08 Geoffrey Keating <geoffk@apple.com>
17445
17446 * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17447 (UNSPEC_FIX_TRUNC_TF): New constant.
17448 (movtf_internal): Make splitter active only when insn is active.
17449 (extenddftf2): Rewrite to properly load zero into low part.
17450 (extenddftf2_internal): New.
17451 (extendsftf2): Rewrite.
17452 (truncdftf2): Correct length.
17453 (floatditf2): Delete.
17454 (fix_trunc_helper): New.
17455 (fix_trunctfdi2): Use fix_trunc_helper.
17456 (fix_trunctfsi2): Likewise.fix_trunc
17457 (fix_trunctfsi2_internal): New.
17458
17459 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17460 addresses are legitimate on Darwin even when flag_pic.
17461 (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17462 non-offsettable addresses for loads of TFmode constants.
17463
17464 2004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17465
17466 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17467 variables in the appropriate bss section.
17468
17469 2004-01-09 Alan Modra <amodra@bigpond.net.au>
17470
17471 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17472 target_flags has MASK_POWERPC64 when -m64.
17473 * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17474 to 620, 630, power3, power4 and rs64a entries.
17475 * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17476
17477 2004-01-08 Richard Sandiford <rsandifo@redhat.com>
17478
17479 * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17480 floating-point constants.
17481
17482 2004-01-08 J. Brobecker <brobecker@gnat.com>
17483
17484 * dwarf2out.c (subrange_type_die): Add context_die parameter.
17485 Create the subrange_type DIE using the given context DIE.
17486 (modified_type_die): Update call to subrange_type_die.
17487
17488 2004-01-08 Zack Weinberg <zack@codesourcery.com>
17489
17490 * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17491 Add multiple-include guard.
17492
17493 2004-01-08 Hartmut Penner <hpenner@de.ibm.com>
17494
17495 * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17496 all vector constant loadable by vsplt*.
17497 (output_vec_const_move): Likewise.
17498
17499 2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
17500
17501 PR c/6024
17502 * c-typeck.c (comptypes): Only treat enumerated types in the same
17503 translation unit as compatible with each other when they are the
17504 same type.
17505 * doc/extend.texi: Update.
17506
17507 2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
17508
17509 PR c/12165
17510 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17511 array type from the array element type.
17512
17513 2004-01-07 Alan Modra <amodra@bigpond.net.au>
17514
17515 * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17516 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17517 * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17518 (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17519 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17520
17521 2004-01-06 Eric Christopher <echristo@redhat.com>
17522
17523 * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17524 (DWARF2_DEBUGGING_INFO): Define.
17525 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17526 * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17527 * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17528 for irix as.
17529 (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17530 * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17531 * config/mips/iris5gas.h: Ditto.
17532 (DBX_DEBUGGING_INFO): Remove.
17533 (DWARF2_DEBUGGING_INFO): Ditto.
17534 (MIPS_DEBUGGING_INFO): Ditto.
17535 (PREFERRED_DEBUGGING_TYPE): Ditto.
17536 * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17537 (PREFERRED_DEBUGGING_TYPE): Ditto.
17538 (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17539 * config/mips/elf64.h: Ditto.
17540
17541 2004-01-06 Jan Hubicka <jh@suse.cz>
17542
17543 * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17544 (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17545
17546 2004-01-06 Geoffrey Keating <geoffk@apple.com>
17547
17548 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17549 (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17550 * config/rs6000/darwin-ldouble.c: New.
17551
17552 * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17553 for constants.
17554 (constant_subword): Delete.
17555 * rtl.h (constant_subword): Delete prototype.
17556 (immed_double_const): Is not in varasm.c.
17557 * simplify-rtx.c (simplify_immed_subreg): New.
17558 (simplify_subreg): Use simplify_immed_subreg.
17559
17560 * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17561 than trying to generate RTL directly.
17562 (fix_trunctfsi2): Use expand_fix rather than trying to generate
17563 RTL directly.
17564
17565 * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17566
17567 2004-01-06 David Edelsohn <edelsohn@gnu.org>
17568
17569 * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17570 function into a separate macro.
17571 (read_only_data_section): Add void argument.
17572 (private_data_section): Same.
17573 (read_only_private_data_section): Same.
17574 (toc_section): Same.
17575
17576 2004-01-06 Jan Hubicka <jh@suse.cz>
17577
17578 * invoke.texi: Remove typo in last change.
17579
17580 PR target/10301
17581 * config.gcc: Accept opteron and athlon-64 as variants
17582 of k8.
17583 * i386.c (override_options): Likewise.
17584 * invoke.texi (i386 -mtune): Expand documentation.
17585
17586 2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
17587
17588 * alias.c: Fix comment typos.
17589 * builtins.c: Likewise.
17590 * cfg.c: Likewise.
17591 * df.c: Likewise.
17592 * dominance.c: Likewise.
17593 * dwarf2out.c: Likewise.
17594 * emit-rtl.c: Likewise.
17595 * expr.c: Likewise.
17596 * final.c: Likewise.
17597 * fold-const.c: Likewise.
17598 * gcse.c: Likewise.
17599 * genattrtab.c: Likewise.
17600 * genrecog.c: Likewise.
17601 * gensupport.c: Likewise.
17602 * ggc-zone.c: Likewise.
17603 * integrate.c: Likewise.
17604 * local-alloc.c: Likewise.
17605 * loop.c: Likewise.
17606 * recog.c: Likewise.
17607 * regmove.c: Likewise.
17608 * reg-stack.c: Likewise.
17609 * reorg.c: Likewise.
17610 * rtlanal.c: Likewise.
17611 * rtl.h: Likewise.
17612 * sched-ebb.c: Likewise.
17613 * simplify-rtx.c: Likewise.
17614 * toplev.c: Likewise.
17615 * varasm.c: Likewise.
17616
17617 2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
17618
17619 * doc/install.texi: Fix typos.
17620 * doc/invoke.texi: Likewise.
17621 * doc/md.texi: Likewise.
17622
17623 2004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17624
17625 * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17626
17627 2004-01-06 Jan Hubicka <jh@suse.cz>
17628
17629 * i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
17630 (function_arg_advance): Do not pass aggregates in SSE; deal handling
17631 of MMX_REGPARM.
17632 (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
17633 add MMX_REGPARM.
17634 * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17635 (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17636 (MMX_REGPARM_MAX): Similarly for -mmmx.
17637
17638 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17639
17640 * config/sh/linux.h: Fix comment formatting.
17641 * config/sh/netbsd-elf.h: Likewise.
17642 * config/sh/sh.c: Likewise.
17643 * config/sh/sh.h: Likewise.
17644 * config/sh/vxworks.h: Likewise.
17645
17646 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17647
17648 * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17649 * toplev.c (output_file_directive): Don't use
17650 ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17651
17652 2004-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl>
17653
17654 * toplev.c: Fix broken checkin of 2003-12-30.
17655
17656 2004-01-05 Daniel Berlin <dberlin@dberlin.org>
17657
17658 * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17659 (USING_MMAP): We don't support non-mmap.
17660 (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17661 large objects.
17662 (struct page_entry): Remove bytes_free.
17663 (struct page_table_chain): Remove.
17664 (struct globals): Remove page_table member.
17665 (loookup_page_table_entry): Function deleted.
17666 (set_page_table_entry): Ditto.
17667 (ggc_allocated_p): No longer need page table lookups.
17668 (ggc_marked_p): Ditto.
17669 (alloc_small_page): Don't care about bytes_free anymore.
17670 (alloc_large_page): Round up size.
17671 (ggc_alloc_zone_1): Mark large objects as such, and calculate
17672 their size the new way.
17673 Remove page table lookups and setting.
17674 (ggc_get_size): Calculate large object size the new way.
17675 (sweep_pages): Redo to account for fact that we no longer have
17676 bytes_free.
17677 (ggc_collect): No longer need to reincrement bytes_free.
17678 (ggc_pch_alloc_object): Handle new large objects properly.
17679 (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17680
17681 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17682
17683 * doc/invoke.texi: Remove a page break.
17684
17685 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17686
17687 * config/avr/avr.c (avr_output_function_prologue): Remove an
17688 extra pair of curly braces.
17689
17690 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17691
17692 * config/mn10300/mn10300.c: Fix comment formatting.
17693 * config/mn10300/mn10300.h: Likewise.
17694
17695 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17696
17697 * tree.h: Update documentation on nothrow_flag.
17698 * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17699 types.
17700
17701 2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17702
17703 * doc/invoke.texi: Remove traces of dead ports.
17704
17705 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
17706
17707 * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17708 option.
17709
17710 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
17711
17712 PR target/12945
17713 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17714 counter labels.
17715 * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17716 (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17717 string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
17718 the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17719 (mips_symbol_insns): Don't trust the local/global classification.
17720 (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17721 (override_options): Make -mabicalls -fno-unit-at-a-time imply
17722 -mno-explicit-relocs.
17723 (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17724 between local and global symbols.
17725
17726 2004-01-05 Richard Sandiford <rsandifo@redhat.com>
17727
17728 * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17729 (mips_preferred_reload_class): Declare.
17730 * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17731 (EXTRA_CONSTRAINT): Update accordingly.
17732 (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17733 * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17734 (mips_preferred_reload_class): New function. Prefer LEA_REGS if
17735 mips_dangerous_for_la25_p.
17736 (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17737 if mips_dangerous_for_la25_p.
17738
17739 2004-01-05 Bernardo Innocenti <bernie@develer.com>
17740
17741 * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17742 warning.
17743
17744 2004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
17745
17746 * configure.ac: Use AC_PROG_CPP_WERROR.
17747 * configure: Regenerate.
17748
17749 2004-01-04 Zack Weinberg <zack@codesourcery.com>
17750
17751 * .cvsignore: Add autom4te.cache.
17752
17753 2004-01-04 Richard Sandiford <rsandifo@redhat.com>
17754
17755 * doc/invoke.texi: Revamp documentation of MIPS options. Remove
17756 -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17757 -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
17758 then architecture options, then ABI options. General rewording.
17759
17760 2004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
17761
17762 PR c/3414
17763 * doc/extend.texi: Clarify definition of malloc attribute.
17764
17765 2004-01-04 Jan Hubicka <jh@suse.cz>
17766
17767 * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17768 * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17769 * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17770 (cgraph_inline_p): Add extra argument reason.
17771 * cgraphunit.c: Minor formating fixes.
17772 cgraph_first_inlined_callee): New functions.
17773 (record_call_1): Record builtins too.
17774 (cgraph_analyze_function): Update inline_failed messages.
17775 (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17776 cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17777 (cgraph_check_inline_limits): Likewise; Add argument reason.
17778 (cgraph_set_inline_failed): New static function.
17779 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17780 reasons.
17781 (cgraph_inline_p): Add new argument reason.
17782 * tree-inline.c (expand_call_inline): Update warning.
17783
17784 2004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
17785
17786 * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17787 with modern equivalents.
17788 * configure: Regenerate.
17789
17790 * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17791 * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17792 * configure: Regenerate.
17793
17794 * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17795
17796 * configure.in: Rename to configure.ac.
17797 * configure.ac: Renamed from configure.in; make minimum necessary
17798 changes for autoconf 2.5x.
17799 * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17800 * configure: Regenerate with autoconf 2.57.
17801
17802 2004-01-03 Kazu Hirata <kazu@cs.umass.edu>
17803
17804 * config/mips/linux.h: Fix comment formatting.
17805 * config/mips/mips.c: Likewise.
17806 * config/mips/mips.h: Likewise.
17807 * config/mips/mips.md: Likewise.
17808 * config/mips/netbsd.h: Likewise.
17809 * config/mips/windiss.h: Likewise.
17810
17811 2004-01-02 Richard Henderson <rth@redhat.com>
17812
17813 * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17814 for sse and 387; add suppression for mmx.
17815
17816 2004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
17817
17818 * loop.c (loop_optimize): Free all loops_info's mems.
17819
17820 * c-typeck.c (finish_init): Free spelling_base before
17821 setting it again.
17822
17823 * cfgloop.c (flow_loops_find): Always free the sbitmap
17824 headers.
17825
17826 * predict.c (estimate_probability): Free bbs after being
17827 done with it.
17828
17829 2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
17830
17831 * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17832 const_8bit_operand and call_address_operand.
17833
17834 2004-01-02 Jan Hubicka <jh@suse.cz>
17835
17836 * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
17837 when there is nothing to inline but warnings are requested.
17838 (cgraph_decide_inlining): Fix memory leak.
17839
17840 2004-01-02 Jan Hubicka <jh@suse.cz>
17841
17842 * expr.c (store_constructor): Fix pasto in previous patch.
17843
17844 2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
17845
17846 * config/i386/cygming.h: Fix comment formatting.
17847 * config/i386/djgpp.h: Likewise.
17848 * config/i386/gthr-win32.c: Likewise.
17849 * config/i386/i386-interix.h: Likewise.
17850 * config/i386/i386.c: Likewise.
17851 * config/i386/i386.h: Likewise.
17852 * config/i386/openbsd.h: Likewise.
17853 * config/i386/winnt.c: Likewise.
17854 * config/i386/xm-mingw32.h: Likewise.
17855
17856 2004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
17857
17858 * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17859 copyright and last modification dates.
17860
17861 2004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
17862
17863 * doc/install.texi (Specific): Mention x86_64.
17864
17865 2004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
17866
17867 * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17868 Call force_operand on plus_constant result.
17869
17870 2004-01-01 Jan Hubicka <jh@suse.cz>
17871
17872 * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17873 * expr.c (store_constructor): Use vec_init pattern.
17874 * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17875 * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17876 (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17877 * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17878 New patterns.
17879 (sse2_unpc?pd): Fix pattern.
17880 (sse2_movlpd): Kill.
17881 (sse2_movsd): Deal with movlpd too.
17882 * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17883 (ix86_expand_vector_init): New.
17884 * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17885 * md.texi (vec_set, vec_extract): Document
17886
17887 2003-12-31 Jan Hubicka <jh@suse.cz>
17888
17889 PR opt/13473
17890 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
17891 ASM input operands
17892
17893 PR opt/12617
17894 * toplev.c (dump_file_index): Reorder ce3 and bbro.
17895 (dump_file): Likewise.
17896 (rest_of_compilation): Likewise.
17897
17898 PR debug/13367
17899 * cgraph.c (cgraph_function_possibly_inlined): Even with
17900 flag_really_no_inline we inline always_inline functions.
17901 * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17902 for non-always_inline functions when there is flag_really_no_inline.
17903 (cgraph_decide_inlining): Limit work done when not inlining.
17904 (cgraph_decide_inlining_incrementally): Likewise.
17905 (cgraph_optimize_function): Check whether something got inlined.
17906 * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17907 extern inline functions when not inlining.
17908
17909 * opts.c (decode_options): Disable crossjumping at -O1
17910 * invoke.texi (-O1): Document change.
17911
17912 See ChangeLog.10 for earlier changes.