]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
Makefile.in (FLAGS_H): New.
[gcc.git] / gcc / ChangeLog
CommitLineData
50431bc4
ZD
12004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2
3 * Makefile.in (FLAGS_H): New.
4 (flags.h): Replace by FLAGS_H.
5 * c.opt: Document Var, VarExists, Init and Report attributes.
6 * common.opt: Fill the values of the attributes.
7 * diagnostic.c (flag_fatal_errors): Do not define.
8 * except.c (flag_non_call_exceptions): Do not define.
9 * flags.h: Include options.h. Remove declarations conflicting with
10 the automatically defined ones.
11 * opts.c: Remove automatically defined variables.
12 (handle_option): Perform default initialization.
13 (common_handle_option): Do not handle options covered by the
14 default initialization.
15 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
16 fields.
17 (CL_REPORT): New.
18 * opts.sh: Generate variable declarations, handle CL_REPORT.
19 * toplev.c: Remove automatically defined variables.
20 (f_options): Removed.
21 (print_switch_values): Use cl_options instead of f_options.
22 * toplev.h (version_flag): Declaration removed.
23
1c2cdd56
ILT
242004-06-14 Ian Lance Taylor <ian@wasabisystems.com>
25
715f8bb8
ILT
26 * config/sparc/sparc.h: Correct comment about availability of
27 little endian option.
28
1c2cdd56
ILT
29 * config.gcc: Remove sparc64-*-aout*.
30 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
31 * config/sparc/sp64-aout.h: Remove.
32 * config/sparc/aout.h: Remove.
33
63694b5e
UW
342004-06-14 Ulrich Weigand <uweigand@de.ibm.com>
35
36 * config/s390/s390.c: Include "tree-gimple.h".
37 (s390_gimplify_va_arg): New function.
38 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
39 (s390_va_arg): Remove.
40 * config/s390/s390-protos.h (s390_va_arg): Remove.
41 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
42
623a66fa
R
432004-06-14 J"orn Rennecke <joern.rennecke@superh.com>
44
45 * basic-block.h (could_fall_through): Declare.
46 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
47 Fail if the source already has a fallthrough edge to the exit
48 block pointer.
49 (could_fall_through): New function.
50 * cfgbuild.c (make_edges): Check if we already have a fallthrough
51 edge to the exit block pointer.
52 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
53 not called before reload has completed.
54 Handle special case of first block having a fall-through exit edge.
55 (cfg_layout_finalize): Don't call it before reload or if we have
56 rtl epilogues.
57 (fixup_reorder_chain): A fall through to the exit block does not
58 require the block to come last. Add sanity checks.
59 * cfgrtl.c (rtl_split_edge): Add special handling of fall through
60 edges to the exit block.
61 * function.c (cfglayout.h): #include.
62 (thread_prologue_and_epilogue_insns): If we have neither return nor
63 epilogue, but a fall through to the exit block from mid-function,
64 force a non-fall-through exit.
65 * Makefile.in (function.o): Depend on CFGLAYOUT_H.
66
93ae5495
AM
672004-06-14 Alan Modra <amodra@bigpond.net.au>
68
69 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
70 for power5 and rs64a. Correct condition for default. Correct power3,
71 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many.
72
6e72d1e9
SB
732004-06-13 Steven Bosscher <stevenb@suse.de>
74
75 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
76 Revert previous change, don't use CALL_P.
77
e5da415c
JM
782004-06-13 Jason Merrill <jason@redhat.com>
79
80 * tree.h: Move std_gimplify_va_arg_expr protoype here.
81 * tree-gimple.h: From here.
82
ce25943a
DB
832004-06-13 Daniel Berlin <dberlin@dberlin.org>
84
85 Fix PR tree-optimization/15979
86 Fix PR tree-optimization/15981
87 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
88 try to insert values undefined along some path.
89
3bce843e
DB
902004-06-13 Daniel Berlin <dberlin@dberlin.org>
91
92 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
93 are available everywhere too.
94
a40de696
AP
952004-06-13 Andrew Pinski <pinskia@physics.uc.edu>
96
97 * fold-const.c (fold_checksum_tree <case 't'>): Only
98 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
99 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
100 EXPR is an INTEGERAL_TYPE or a scalar float type.
101
a18f61f8
DN
1022004-06-13 Diego Novillo <dnovillo@redhat.com>
103
104 * tree-sra.c (tree_sra): Update documentation.
105
132da1a5
JM
1062004-06-13 Joseph S. Myers <jsm@polyomino.org.uk>
107
108 * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
109 function_types_compatible_p, type_lists_compatible_p): Remove
110 flags parameter.
111 * c-tree.h (comptypes): Likewise.
112 (COMPARE_STRICT): Remove.
113 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
114 callers changed.
115
118a3a8b
EC
1162004-06-13 Eric Christopher <echristo@redhat.com>
117
118 * c-decl.c (diagnose_mismatched_decls): Improve error message.
119 Remove unused code.
120 * c-typeck.c (comptypes): Add location in standard we're checking.
121
9f680e79
KK
1222004-06-13 Kaz Kojima <kkojima@gcc.gnu.org>
123
124 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
125 version 3.3.4.
126
965703ed
RS
1272004-06-12 Roger Sayle <roger@eyesopen.com>
128
129 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
130 index by machine mode.
131 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
132 tables inside the loop over machine modes.
133 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
134 expand_divmod): Index shift*_cost by the appropriate machine mode.
135
3839e36a
EC
1362004-06-12 Eric Christopher <echristo@redhat.com>
137
138 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
139 * config/s390/s390.md: Ditto.
140 * config/s390/s390.c: Ditto.
141 (s390_frame_info): Conditionalize frame and setup info on
142 TARGET_TPF_PROFILING.
143 (s390_arg_frame_offset): Ditto.
144
08039bd8
RS
1452004-06-12 Roger Sayle <roger@eyesopen.com>
146
147 * fold-const.c (omit_two_operands): New function.
148 * tree.h (omit_two_operands): Prototype here.
149 * builtins.c (fold_builtin_unordered_cmp): New function to lower
150 C99 unordered comparison builtins to the appropriate tree nodes.
151 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
152 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
153 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower
154 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
155 (simplify_builtin_memcmp, simplify_builtin_strncmp,
156 simplify_builtin_strncat, simplify_builtin_strspn): Use the new
157 omit_two_operands function to build the required COMPOUND_EXPRs.
158
7b1b4aed
SB
1592004-06-12 Steven Bosscher <stevenb@suse.de>,
160 Andreas Jaeger <aj@suse.de>
161
162 * gcse.c (record_set_info): Use predicates like REG_P.
163 (mems_conflict_for_gcse_p): Likewise.
164 (load_killed_in_block_p): Likewise.
165 (hash_expr_1): Likewise.
166 (insert_set_in_table): Likewise.
167 (gcse_constant_p): Likewise.
168 (hash_scan_set): Likewise.
169 (hash_scan_insn): Likewise.
170 (canon_list_insert): Likewise.
171 (record_last_mem_set_info): Likewise.
172 (record_last_set_info): Likewise.
173 (compute_hash_table_work): Likewise.
174 (mark_set): Likewise.
175 (mark_clobber): Likewise.
176 (mark_oprs_set): Likewise.
177 (compute_transp): Likewise.
178 (find_avail_set): Likewise.
179 (cprop_insn): Likewise.
180 (do_local_cprop): Likewise.
181 (cprop): Likewise.
182 (find_implicit_sets): Likewise.
183 (find_bypass_set): Likewise.
184 (bypass_conditional_jumps): Likewise.
185 (insert_insn_end_bb): Likewise.
186 (pre_insert_copy_insn): Likewise.
187 (compute_transpout): Likewise.
188 (next_ls_expr): Likewise.
189 (invalidate_any_buried_refs): Likewise.
190 (compute_ld_motion_mems): Likewise.
191 (reg_set_info): Likewise.
192 (reg_clear_last_set): Likewise.
193 (find_moveable_store): Likewise.
194 (compute_store_table): Likewise.
195 (find_loads): Likewise.
196 (store_killed_in_insn): Likewise.
197 (insert_insn_start_bb): Likewise.
198 (reg_set_between_after_reload_p): Likewise.
199 (reg_used_between_after_reload_p): Likewise.
200 (is_jump_table_basic_block): Likewise.
201 (gcse_after_reload): Likewise.
202 (hash_scan_set_after_reload): Likewise.
203 (compute_hash_table_after_reload): Likewise.
204
3d27dbd0
SB
2052004-06-12 Steven Bosscher <stevenb@suse.de>
206
207 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
208 (INSN_P): Don't look at the rtx code class, just explicitly
209 check for one of the tree RTX_INSN codes.
210
019c8e80
ZW
2112004-06-11 Zack Weinberg <zack@codesourcery.com>
212
213 * c-typeck.c (default_function_array_conversion): Use
214 build_pointer_type not TYPE_POINTER_TO.
215
2fac9c01
ZW
2162004-06-11 Zack Weinberg <zack@codesourcery.com>
217
218 * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
219 * configure, config.in: Regenerate.
220 * system.h: Unconditionally define bool as unsigned char,
221 BOOL_BITFIELD as unsigned int.
222 * domwalk.h: Use BOOL_BITFIELD.
223
9ade2479
AJ
2242004-06-12 Andreas Jaeger <aj@suse.de>
225
226 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
227 * libgcc-darwin.ver: Likewise.
228
b605eb59
PJ
2292004-06-12 Peter Jakubek <peter@laseranimation.com>
230
231 * reload.c (find_reloads): Force reload for pseudo registers on big
232 endian machines.
233
7e6eb623
DB
2342004-06-11 Steven Bosscher <stevenb@suse.de>
235
236 * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
237 Don't try to mark anything control dependent on the entry or
238 exit blocks.
239
2402004-06-11 Daniel Berlin <dberlin@dberlin.org>
9ade2479 241
7e6eb623
DB
242 Fix Bug 15899
243 Fix Bug 15460
244 * tree.h (SSA_NAME_VALUE): New macro.
245 (struct tree_ssa_name): Add value_handle member.
246 * tree-ssa-pre.c: Replaced.
247 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
248 (struct cst_ann_d): New.
249 (struct expr_ann_d): New.
250 (union tree_ann_d): Add cst_ann, expr_ann.
251 * tree-dfa.c (create_cst_ann): New function.
252 (create_expr_ann): Ditto.
253 * tree-flow-inline.h (cst_ann): New function.
254 (expr_ann): Ditto.
255 (get_cst_ann): Ditto.
256 (get_expr_ann): Ditto..
257
9839edf1
JDA
2582004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
259
e2ddd6ca
JDA
260 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
261 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
262 _U_Qfcmp library function.
263 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
264 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
265
9839edf1
JDA
266 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
267 unspec used for loading address from DLT.
268 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
269 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
270 Don't use short code sequence when loading the address of a nonlocal
271 label.
272 (nonlocal_goto): New expander.
273 (indirect_goto): New jump pattern for nonlocal gotos.
274 (short_jump): Remove extra whitespace.
275 (builtin_longjmp): Clobber memory and hard frame pointer. Restore
276 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
277 pattern.
278
41c64ac0
RS
2792004-06-11 Roger Sayle <roger@eyesopen.com>
280
281 * expmed.c (synth_mult): Add an additional MODE argument for the
282 machine mode of the multiplication. Update recursive calls. Use
283 mode instead of word_mode for determining operation costs.
284 (choose_mult_variant): Update calls to synth_mult with "mode".
285
9098a3ec
RH
2862004-06-11 Richard Henderson <rth@redhat.com>
287
288 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
289 and makes_aliased_stores.
290
55c45226
AP
2912004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
292
293 * doc/install.text (--enable-shared): Fix typo.
294
65da5a20
RH
2952004-06-11 Richard Henderson <rth@redhat.com>
296
297 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
298 argument. Use internal post for call to gimplify_expr. Tidy
299 rounded type size computation.
300 (alpha_gimplify_va_arg): Use get_formal_tmp_var and
301 get_initialized_tmp_var.
302
07659e97
AP
3032004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
304
65da5a20
RH
305 * doc/install.texi (--enable-shared): Update libobjc's shared library
306 status. Remove reference to libf2c.
07659e97 307
67c605a5
JM
3082004-06-11 Jason Merrill <jason@redhat.com>
309
310 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
311 * config/i386/i386.c (ix86_va_arg): Remove.
312 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
313 * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
314 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
315 * config/alpha/alpha.c (alpha_va_arg): Remove.
316 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
317 * config/sparc/sparc.c (sparc_va_arg): Remove.
318
319 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
320 assignment might throw.
321 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
322 expressions.
323
e6ff425c
R
3242004-06-11 J"orn Rennecke <joern.rennecke@superh.com>
325
67fc0c0f 326 PR 15886:
e6ff425c
R
327 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
328
ccfca4ae
JM
3292004-06-11 Joseph S. Myers <jsm@polyomino.org.uk>
330
331 * doc/install.texi (Prerequisites): Update documentation of
332 required versions of autoconf and automake. Remove mention of
333 libf2c.
334
5f393b25
JM
3352004-06-11 Jason Merrill <jason@redhat.com>
336
337 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
338 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
339
5801c467
JQ
3402004-06-11 Jerry Quinn <jlquinn@optonline.net>
341
342 * typeclass.h: Add GPL plus exception license. Add include
343 guard.
344
3bcb4e37
JM
3452004-06-10 Jason Merrill <jason@redhat.com>
346
347 * gimplify.c (gimplify_modify_expr): Don't force a temporary
348 of an aggregate_value_p type.
349
3100d647
JL
3502004-06-10 Jeff Law <law@redhat.com>
351
352 * fold-const.c (fold_inf_compare): Avoid creating non-gimple
353 code when we are in gimple form.
354
95a3742c
DN
3552004-06-10 Diego Novillo <dnovillo@redhat.com>
356
357 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
358 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
359 (highest_ssa_version): Remove.
360 * tree-outof-ssa.c (new_temp_expr_table): Replace
361 highest_ssa_version with num_ssa_names.
362 (dump_replaceable_exprs): Likewise.
363 (rewrite_vars_out_of_ssa): Likewise.
364 * tree-ssa-ccp.c (initialize): Likewise
365 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
366 * tree-ssa-dce.c (tree_dce_init): Likewise.
367 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
368 * tree-ssa-live.c (create_ssa_var_map): Likewise.
369 (dump_var_map): Likewise.
370 * tree-ssa.c (verify_ssa): Likewise.
371 (kill_redundant_phi_nodes): Likewise.
372 Do not build a local array of SSA_NAMEs. Use the ssa_names table.
373 * tree-ssanames.c: Include tree-flow.h
374 (ssa_names): New varray.
375 (init_ssa_names): Initialize ssa_names.
376 Reserve the first slot of the ssa_names table.
377 (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
378 Assign version numbers using num_ssa_names.
379
a72967cd
JM
3802004-06-10 Joseph S. Myers <jsm@polyomino.org.uk>
381
382 * doc/sourcebuild.texi (Front End): Add details of more
383 installation documentation required.
384
a32b97a2
BB
3852004-06-10 Brian Booth <bbooth@redhat.com>
386
387 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
388 of V_MAY_DEF and V_MUST_DEF.
389 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
390 num_vdefs to num_v_may_defs.
391 (compute_immediate_uses_for_stmt): Rename occurences of vdef
392 to v_may_def.
393 (redirect_immediate_uses): Ditto.
394 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
395 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
396 Also add code to sum up the number of v_must_defs.
397 (vdefs_disappeared_p): Replace with...
398 (v_may_defs_disappeared_p): This.
399 (v_must_defs_disappeared_p): New function.
400 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
401 Also add code to mark new variables found in V_MUST_DEFs for
402 renameing.
403 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
404 vdef_ops to v_may_def_ops.
405 (get_vdef_ops): Replace with...
406 (get_v_may_def_ops): This.
407 * tree-flow-inline.h (get_vdef_ops): Replace with...
408 (get_v_may_def_ops): This.
409 (get_v_must_def_ops): New function.
410 (get_vdef_result_ptr): Replace with...
411 (get_v_may_def_result_ptr): This.
412 (get_vdef_op_ptr): Ditto with...
413 (get_v_may_def_op_ptr); This.
414 (get_v_must_def_op_ptr): New function.
415 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
416 to v_may_def. Also add code to mark statements with
417 V_MUST_DEFs as definition sites.
9ade2479 418 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
a32b97a2
BB
419 add code to register new V_MUST_DEFs made by the statement.
420 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
9ade2479 421 (check_replaceable): Rename occurences of vdef to v_may_def. Also
a32b97a2
BB
422 add check for V_MUST_DEFs.
423 (find_replaceable_in_bb): Ditto.
424 * tree-pretty-print.c (dump_vops): Rename occurences of vdef
425 to v_may_def. Also add code to dump V_MUST_DEFs.
426 * tree-sra.c (mark_all_vdefs): Replace with...
427 (mark_all_v_may_defs): This.
428 (mark_all_v_must_defs): New function.
429 (create_scalar_copies): Replace call to mark_all_vdefs with
430 calls to mark_all_v_may_defs and mark_all_v_must_defs.
9ade2479 431 (scalarize_structures): Rename occurences of vdef to v_may_def.
a32b97a2
BB
432 Also add a check for V_MUST_DEFs.
433 (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
434 * tree-ssa-alias.c (global_var): Update comment.
435 (compute_may_aliases): Ditto.
436 (compute_points_to_and_addr_escape): Rename occurences of vdef
9ade2479 437 to v_may_def. Also add code to mark variables in V_MUST_DEF
a32b97a2
BB
438 operands as being written to.
439 (group_aliases): Update comment.
440 (maybe_create_global_var): Ditto.
441 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
442 Also add a check for V_MUST_DEFs on GIMPLE registers.
443 (replace_immediate_uses): Rename occurences of vdef to v_may_def.
444 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
9ade2479 445 to v_may_def. Also add code to mark all V_MUST_DEF operands
a32b97a2
BB
446 VARYING.
447 (initialize): Ditto.
448 (set_rhs): Rename occurences of vdef to v_may_def. Also add
449 code to update SSA_NAMEs in V_MUST_DEFs.
450 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
451 to v_may_def.
9ade2479 452 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
a32b97a2
BB
453 occurences of vdef to v_may_def. Also add code to mark statements
454 with V_MUST_DEFs as necessary.
455 (propagate_necessity): Rename occurences of vdef to v_may_def.
9ade2479 456 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
a32b97a2
BB
457 occurences of vdef to v_may_def. Also add code to mark operands
458 in V_MUST_DEFs for renaming.
459 (eliminate_redundant_computations): Rename occurences of vdef
460 to v_may_def.
461 (record_equivalences_from_stmt): Rename occurences of vdef
462 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
463 (optimize_stmt): Remove unnesessary variable vdefs. Update
464 comment.
465 (register_definitions_for_stmt): Rename occurences of vdef
466 to v_may_def. Also add code to register definitions made with
467 V_MUST_DEFs.
468 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
469 (fix_stmt_v_may_defs): This.
470 (fix_phi_uses): Rename occurences of vdef to v_may_def.
471 (dse_optimize_stmt): Ditto.
472 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
473 to v_may_def. Also add code to mark V_MUST_DEF operands as being
474 used in virtual operators.
9ade2479 475 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
a32b97a2
BB
476 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
477 renaming.
9ade2479 478 * tree-ssa-operands.c (opf_kill_def): New flag for killing
a32b97a2
BB
479 definitions.
480 (build_vdefs): Renamed to...
481 (build_v_may_defs): This.
482 (build_v_must_defs): New variable.
483 (voperands_d): Add v_must_def_ops and replace vdef_ops with
484 v_may_def_ops.
485 (append_vdef): Replace with...
486 (append_v_may_def): This.
487 (append_v_must_def): New function.
488 (NUM_FREE): Increment for V_MUST_DEF
489 (optype_freelist): Increment its size for V_MUST_DEF
490 (allocate_vdef_optype): Replace with...
491 (allocate_v_may_def_optype): This.
492 (allocate_v_must_def_optype): New function.
493 (free_vdefs): Replace with...
494 (free_v_may_defs): This.
495 (free_v_must_defs): New function.
496 (remove_vdefs): Replace with...
497 (remove_v_may_defs): This.
498 (remove_v_must_defs): New function.
499 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
500 add code to initialize build_v_must_defs.
501 (finalize_ssa_vdefs): Replace with...
502 (finalize_ssa_v_may_defs): This.
503 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
504 (finalize_ssa_v_must_defs): New function.
505 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
506 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
507 (verify_start_operands): Rename occurences of vdef to v_may_def.
508 Also add check for build_v_must_defs.
509 (get_stmt_operands): Rename occurences of vdef to v_may_def.
510 Also add code to handle V_MUST_DEFs and to use opf_kill_def for
511 killing definitions.
512 (get_expr_operands): Update comment and use opf_kill_def for
513 killing definitions.
514 (add_stmt_operand): Replace code that appends VDEFs with code
515 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
516 otherwise.
517 (add_call_clobber_ops): Update comments.
518 * tree-ssa-operands.h (vdef_optype_d): Replace with...
519 (v_may_def_optype_d): This.
520 (v_must_def_optype_d): New structure.
521 (VDEF_OPS): Replace with...
522 (V_MAY_DEF_OPS): This.
523 (STMT_VDEF_OPS): Same with...
524 (STMT_V_MAY_DEF_OPS): This.
525 (NUM_VDEFS): And...
526 (NUM_V_MAY_DEFS): This.
527 (VDEF_RESULT_PTR): As well as...
528 (V_MAY_DEF_RESULT_PTR): This.
529 (VDEF_RESULT): Same goes for...
530 (V_MAY_DEF_RESULT): This.
531 (VDEF_OP_PTR): And...
532 (V_MAY_DEF_OP_PTR): This.
533 (VDEF_OP): And...
534 (V_MAY_DEF_OP): This.
535 (V_MUST_DEF_OPS): New macro.
536 (STMT_V_MUST_DEF_OPS): Ditto.
537 (NUM_V_MUST_DEFS): Ditto.
538 (V_MUST_DEF_OP_PTR): Ditto.
539 (V_MUST_DEF_OP): Ditto.
540 (remove_vdefs): Replace signature with...
541 (remove_v_may_defs): This.
542 (remove_v_must_defs): New function signature.
543 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
544 with calls to remove_v_may_defs and remove_v_must_defs.
545 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
546 Also add code that marks left occurences of operands in V_MUST_DEFs.
9ade2479 547 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
a32b97a2
BB
548 to v_may_def. Also add check for V_MUST_DEFs.
549 (eliminate_tail_call):Rename occurences of vdef to v_may_def.
550
d57f1617
VM
5512004-06-10 Vladimir Makarov <vmakarov@redhat.com>
552
553 PR target/15653
554 * haifa-sched.c (schedule_block): Finish cycle after issuing asm
555 insn.
556
322afd16
VR
5572004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
558
559 PR web/15263
560 * doc/install.texi: Remove superfluous linebreak.
561
aa6c7c3a
RS
5622004-06-10 Roger Sayle <roger@eyesopen.com>
563
564 * builtins.c (expand_builtin): Fall back to library function call for
565 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
566 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
567 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
568 IMAGPART_EXPR respectively.
569
078c8b08
R
5702004-06-10 J"orn Rennecke <joern.rennecke@superh.com>
571
572 * sh.c (dump_table): New argument start. Changed caller.
573 (fixup_mova): New function.
574 (find_barrier): Use it.
575 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2.
576 If the label a mova refers to is above the mova itself, change
577 the mova into a load.
578 * sh.md (*casesi_worker): Rename to:
579 (casesi_worker_1).
580 (casesi_worker_2): New insn.
581
23a60a04
JM
5822004-06-10 Jason Merrill <jason@redhat.com>
583
9ade2479 584 * target.h (struct gcc_target): Change gimplify_va_arg_expr
23a60a04
JM
585 hook signature.
586 * tree-gimple.h: Adjust.
587 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
588 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
589 Use fold_convert.
590 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
591 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
592 Use COMPLEX_EXPR for complex numbers. Use fold_convert.
593 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert.
594 (gimplify_va_arg_expr): Return GS_ERROR in error case.
595 Gimplify valist rather than calling stabilize_va_list.
596
9bf7acfc
ZD
5972004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
598
599 * Makefile.in (df.o): Remove fibheap dependency.
600 * df.h: Do not include sbitmap.h.
601 (struct ref): New field "data".
602 (DF_REF_DATA): New accessor macro.
603 (struct df): Field "dom" removed.
604 (df_analyze_subcfg): New function.
605 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
606 (transfer_function): ... new type.
607 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
608 (iterative_dataflow): ... new function.
609 (enum set_representation, struct dataflow): New.
610 * df.c: Do not include fibheap.h.
611
612 (df_reg_def_chain_clean, df_reg_use_chain_clean,
613 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
614 prune_to_subcfg, df_bb_modify): New functions.
615 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
616 df_refs_update, df_reg_table_realloc, df_ref_create,
617 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
618 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
619 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
9ade2479 620
9bf7acfc
ZD
621 (dataflow_set_a_op_b, dataflow_set_copy): New functions.
622 (df_rd_transfer_function, df_ru_transfer_function,
623 df_lr_transfer_function): Type of bitmaps changed to void *.
624 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
625 (hybrid_search): ... new function.
626 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
627 (iterative_dataflow): ... new function. Avoid use of fibheaps for
628 a worklist. Do not process basic blocks unnecessarily.
629
9655d83b
RS
6302004-06-10 Roger Sayle <roger@eyesopen.com>
631
632 * fold-const.c (fold_abs_const): Make extern.
633 * tree.h (fold_abs_const): Prototype here.
634 * builtins.c (fold_builtin_fabs): New function to transform
635 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
636 (fold_builtin_abs): New function to transform abs, labs, llabs
637 and imaxabs builtins into ABS_EXPR tree nodes.
638 (expand_builtin): Fall back to a function call for abs, labs,
639 llabs and imaxabs builtins that survive constant folding.
640 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
641 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
642
897105a1
JJ
6432004-06-10 Jakub Jelinek <jakub@redhat.com>
644
645 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
646 leaf function without unwind info at RP 0.
647
498c0f27
JJ
6482004-06-10 Jakub Jelinek <jakub@redhat.com>
649
650 PR c++/14791
651 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
652 (fileptr_type_node): Define.
653 * tree.c (build_common_tree_nodes_2): Initialize
654 fileptr_type_node to ptr_type_node.
655 * c-common.c (c_common_nodes_and_builtins): For C++, make
656 fileptr_type_node a distinct type copy.
657 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
658 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
659 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
660 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
661 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
662 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
663 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
664 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
665 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
666 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
667 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
668 the above *FILEPTR* types instead of *PTR*.
669
fce66145
DB
6702004-06-09 Daniel Berlin <dberlin@dberlin.org>
671
9ade2479 672 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
fce66145
DB
673 match.
674
a653e758
RS
6752004-06-09 Roger Sayle <roger@eyesopen.com>
676
677 * fold-const.c (fold_not_const): New function.
678 (fold) <ABS_EXPR>: Don't bother testing wins.
679 (fold) <BIT_NOT_EXPR>: Call fold_not_const.
680 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
681
e66e7856 6822004-06-09 Richard Henderson <rth@redhat.com>
9ade2479 683
498c0f27
JJ
684 PR middle-end/15228
685 * function.c (assign_parms): Always set_mem_align with the computed
686 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT.
e66e7856 687
4b5b9613
RH
6882004-06-09 Richard Henderson <rth@redhat.com>
689
690 PR opt/15108
691 * tree-tailcall.c (find_tail_calls): Don't check early for
692 tail_recursion failure.
693
313679b0
DN
6942004-06-09 Diego Novillo <dnovillo@redhat.com>
695
696 Move SSA_NAME annotations into tree_ssa_name.
697
698 * tree-dfa.c (create_ssa_name_ann): Remove.
699 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
700 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
701 (struct ssa_name_ann_d): Remove.
702 (union tree_ann_d): Update.
703 (ssa_name_ann_t): Remove.
704 * tree-ssa-alias.c: (get_ptr_info): New local function.
705 Replace references to ssa_name_ann_t with struct ptr_info_def.
706 * tree-ssa-operands.c (get_expr_operands): Likewise.
707 * tree.h (SSA_NAME_PTR_INFO): Define.
708 (struct ptr_info_def): Declare.
709 (struct tree_ssa_name): Add field 'ptr_info'.
710
33300a2e
DS
7112004-06-09 Danny Smith <dannysmith@users.sourceforge.net>
712
8041d6ab 713 * config/i386/winnt.c (i386_pe_output_labelref): Correct
33300a2e
DS
714 misplaced ')'.
715
8695f61e
SB
7162004-06-09 Steven Bosscher <stevenb@suse.de>
717
718 * config/i386/k6.md: Rewrite using the DFA model.
719 * config/i386/i386.c (ix86_adjust_cost): Don't increase the
720 cost of load-operation insns for the K6.
721 (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
722 (ia32_multipass_dfa_lookahead): Likewise.
723
28245018
RH
7242004-06-09 Richard Henderson <rth@redhat.com>
725
726 * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
727 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
728
bb394606
RH
7292004-06-09 Richard Henderson <rth@redhat.com>
730
731 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
732
d8044160
GK
7332004-06-09 Geoffrey Keating <geoffk@apple.com>
734
735 * Makefile.in (CPPLIB_H): Put files in order of inclusion.
736 (CPP_ID_DATA_H): New.
737 (gtype-desc.o): Update dependencies.
738 (GTFILES): Use CPP_ID_DATA_H.
739
0e5b7cfa
MM
7402004-06-09 Mark Mitchell <mark@codesourcery.com>
741
742 Revert:
743 PR c++/15815
744 2004-06-07 Mark Mitchell <mark@codesourcery.com>
745 * doc/extend.texi: Deprecate #pragma interface and #pragma
746 implementation.
747
5162e02a
DM
7482004-06-09 David S. Miller <davem@nuts.davemloft.net>
749
750 * config/sparc/sparc.h (MOVE_RATIO): New definition.
751
62b857ea
RH
7522004-06-09 Richard Henderson <rth@redhat.com>
753
754 * basic-block.h (struct edge_def): Add goto_locus.
755 * tree-cfg.c (make_goto_expr_edges): Set it.
756 (disband_implicit_edges): Use it.
757 * tree-pretty-print.c (dump_implicit_edges): Print it.
758
93a9f7d6
AP
7592004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
760
761 * h8300.md (ldm_h8300s_4): Fix condition for expander.
762
cd3ce9b4
JM
7632004-06-08 Jason Merrill <jason@redhat.com>
764
765 Gimplify VA_ARG_EXPR into simpler forms.
766 * target.h: Add gimplify_va_arg_expr hook.
767 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
768 * fold-const.c (build_fold_addr_expr)
769 (build_fold_addr_expr_with_type): Move from gimplify.c.
770 * tree.h: Declare them.
771 * gimplify.c (gimplify_and_add): New fn.
772 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
773 (gimplify_array_ref_to_plus, gimplify_modify_expr)
774 (gimplify_expr): Use build_fold_*.
775 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
776 don't know how to gimplify it.
777 * builtins.c (std_gimplify_va_arg_expr): New fn.
778 (dummy_object): New static fn.
779 (gimplify_va_arg_expr): New fn.
780 (stabilize_va_list): Use build_fold_*.
781 * tree-gimple.h: Declare new fns.
782 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
783 (ix86_gimplify_va_arg): New fn.
373614fc 784 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
cd3ce9b4 785 (ia64_gimplify_va_arg): New fn.
373614fc 786 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
cd3ce9b4 787 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
cd3ce9b4 788 * alias.c (get_varargs_alias_set): Just return 0 for now.
9ade2479 789
cd3ce9b4
JM
790 * c-objc-common.c (c_tree_printer): Improve handling of %T.
791
e072ae27
AP
7922004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
793
794 * tree-complex.c (expand_complex_comparison): Use fold_convert instead
795 of convert.
796 * tree-inline.c (setup_one_parameter): Likewise.
797 * tree-sra.c (csc_build_component_ref): Likewise.
798 * tree-ssa-ccp.c (ccp_fold): Likewise.
799 * tree-ssa-copy.c (cprop_operand): Likewise.
800 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
801 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
802
b40742a5
R
8032004-06-09 J"orn Rennecke <joern.rennecke@superh.com>
804
805 PR rtl-optimization/15521:
806 * sched-int.h (in_post_call_group_p): Change type to enum.
807 * sched-deps.c (sched_analyze_insn):
808 (sched_analyze): When in_post_call_group_p is post_call_initial,
809 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
810 and also reset in_post_call_group_p to post_call.
811 (sched_analyze): When the previous basic block ended in a CALL_INSN,
812 initialize in_post_call_group_p as post_call_initial.
813 (init_deps): initialize in_post_call_group_p to not_post_call.
9ade2479 814
e22df315
AC
8152004-06-09 Arnaud Charlet <charlet@act-europe.fr>
816
817 PR ada/6637
818 * doc/install.texi: List ada, libada as options to --enable-shared
819
ad6717df
PB
8202004-06-09 Paolo Bonzini <bonzini@gnu.org>
821
822 * aclocal.m4 (gcc_AC_PROG_LN): Remove.
823 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
824 config.in entries.
825 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
826 if hard links are not available.
827 * configure: Regenerate.
828 * config.in: Regenerate.
829
74ee1642
PB
8302004-06-08 Per Bothner <per@bothner.com>
831
832 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION.
833
144cbad0
RK
8342004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
835
836 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
837 Correct formatting.
838
02760d2f
JW
8392004-06-08 James E Wilson <wilson@specifixinc.com>
840
841 PR target/15790
842 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
843
908d0773
AP
8442004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
845
846 * fold-const.c (fold_convert): Treat OFFSET_TYPE like
847 POINTER_TYPE and INTEGER_TYPE.
848
d7777192
BI
8492004-06-08 Bernardo Innocenti <bernie@develer.com>
850
851 * modulo-sched.c: Compile only when INSN_SCHEDULING is
852 defined.
853
2d488668
JL
8542004-06-08 Jeff Law <law@redhat.com>
855
8695f61e
SB
856 * doc/contrib.texi: Add entries for Stefan Olsson and
857 Ola Ronnerup.
2d488668 858
73d10efa
DD
8592004-06-08 DJ Delorie <dj@redhat.com>
860
861 * toplev.c (floor_log2_wide): Replace loop with faster bit
862 operations.
863 (exact_log2_wide): Define in terms of the above.
864 * toplev.h (floor_log2): Use _builtin_clz family of builtins if
865 available.
866
3b48085e
AP
8672004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
868
869 * config/rs6000/rs6000.c (print_operand, <case 'z'>):
870 Make sure that we are in INDIRECT mode when getting the
871 stub name.
872
3d5c8546
AP
8732004-06-08 Anil Paranjpe <anilp1@kpitcummins.com>
874
875 * h8300.md (extendqisi2_h8300): Add constraints.
876 (ldm_h8300s_4_normal): Fix typo.
877
71877985
RH
8782004-06-08 Richard Henderson <rth@redhat.com>
879
8695f61e
SB
880 * gimple-low.c (struct lower_data): Replace the_return_label and
881 one_return_stmt with return_statements.
882 (lower_function_body): Process the entire list of return_statements.
9ade2479 883 (lower_return_expr): Check source value before unifying return_exprs.
8695f61e
SB
884 * gimplify.c (gimplify_return_expr): Force the use of a temporary
885 for !aggregate_value_p.
886 * tree-gimple.c: Update RETURN_EXPR grammer.
71877985 887
de101ad2
VM
8882004-06-08 Vladimir Makarov <vmakarov@redhat.com>
889
890 PR target/15598
891 * config/ia64/ia64.c (bundling): Add missed TYPE_A.
892
d599f329
ZD
8932004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
894
895 PR rtl-optimization/15717
896 * config/i386/i386.c (legitimate_constant_p): Do not allow
897 x - symbol_ref.
898
0b1d52f7
AO
8992004-06-08 Alexandre Oliva <aoliva@redhat.com>
900
901 * gimplify.c (copy_if_shared_r): Revert:
902 2004-05-21 Richard Henderson <rth@redhat.com>
903 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
904
58777718
RS
9052004-06-07 Roger Sayle <roger@eyesopen.com>
906
907 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
908 Make arrays indexed by machine mode. Rename negate_cost to neg_cost.
909 (init_expmed): Initialize these cost arrays as appropriate.
910 (store_bit_field, extract_bit_field): Correct whitespace.
911 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
912 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
913 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
914 word_mode or compute_mode as appropriate.
915
85bbb21f
EB
9162004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr>
917
918 PR target/15783
919 * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
920 parameter. Enumerate the registers inside the PARALLEL.
921 (function_arg): Adjust call to function_arg_union_value.
922 (function_value): Likewise.
923
924 * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
925
67057c53
RS
9262004-06-07 Roger Sayle <roger@eyesopen.com>
927
928 * real.c (real_copysign): New function to implement libm's copysign.
929 * real.h (real_copysign): Prototype here.
930 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
931 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace.
932 * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
933 fold_builtin_isdigit): Add function prototypes.
934 (fold_builtin_copysign): New function to fold copysign, copysignf
935 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of
936 constant arguments at compile-time using real_copysign. Fold
937 copysign(X,Y) as fabs(X) if Y is always non-negative.
938 (fold_builtin_1): Correct minor whitespace/style issues. Call
939 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
940
f29b9db9
R
9412004-06-07 J"orn Rennecke <joern.rennecke@superh.com>
942
943 * tree.c (iterative_hash_expr): Use real_hash.
944
45b0c94c
JM
9452004-06-07 Joseph S. Myers <jsm@polyomino.org.uk>
946
947 PR c/14765
948 * c-parse.in (compstmt_primary_start): Set last_expr_type to
949 NULL_TREE.
950
3743236e
MM
9512004-06-07 Mark Mitchell <mark@codesourcery.com>
952
953 PR c++/15815
954 * doc/extend.texi: Deprecate #pragma interface and #pragma
955 implementation.
956
0b395e19
AO
9572004-06-07 Alexandre Oliva <aoliva@redhat.com>
958
959 PR middle-end/15666
960 * c-decl.c (finish_decl): Use change_decl_assembler_name for the
961 builtin decl as well.
962
bf730f15
RS
9632004-06-07 Roger Sayle <roger@eyesopen.com>
964
965 PR c/14649
966 * c-typeck.c (require_constant_value, require_constant_elements):
967 Move declarations to the top of the file.
968 (build_function_call): If we require a constant value, fold with
969 fold_initializer. If the result is a constant, and the function
970 wasn't called using __builtin_foo, issue a pedantic warning.
971 (build_unary_op): If we require a constant value, fold tree with
972 fold_initializer.
973 (build_binary_op): Use require_constant_value to determine whether
974 to call fold or fold_initializer.
975
f5a76aea
RH
9762004-06-07 Richard Henderson <rth@redhat.com>
977
978 * gimple-low.c (struct lower_data): Add the_return_label and
979 one_return_stmt.
980 (lower_function_body): Initialize and use them.
981 (lower_return_expr): New.
982 (lower_stmt): Call it.
983 * gimplify.c (gimplify_return_expr): Force the argument to be either
984 null or a result_decl.
985 * tree-gimple.c: Update gimple grammer to match.
986 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
987 coalescing of result_decls.
988
5c64c900
RH
9892004-06-07 Richard Henderson <rth@redhat.com>
990
991 PR rtl-opt/15193
992 * expmed.c (extract_bit_field): Fix vector_extract return.
993
994 * config/i386/i386.md (negv4sf2): New pattern.
995
d5a10cf0
MM
9962004-06-07 Mark Mitchell <mark@codesourcery.com>
997
998 PR c++/15337
07d5edd2 999 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
d5a10cf0
MM
1000 message.
1001
2af5538b
PB
10022004-06-06 Paolo Bonzini <bonzini@gnu.org>
1003
1004 * config.in: Regenerate.
1005
7853504d
SB
10062004-06-06 Steven Bosscher <stevenb@suse.de>
1007
1008 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1009 SWITCH_LABELS are always sorted.
1010
e4638a72
SB
10112004-06-06 Steven Bosscher <stevenb@suse.de>
1012
1013 * hooks.c (hook_int_void_1): New generic hook.
1014 * hooks.h (hook_int_void_1): Add prototype.
1015 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1016 Define to hook_int_void_1.
1017 * config/c4x/c4x.md: Replace dummies for the old pipeline model
1018 with dummies for the new one.
1019
25a1a39e
RS
10202004-06-06 Roger Sayle <roger@eyesopen.com>
1021
1022 * tree.h (lvalue_or_else): Delete function prototype.
1023 * c-typeck.c (lvalue_or_else): Make static. Add static prototype.
1024
37f40c9c
SC
10252004-06-06 Stephane Carrez <stcarrez@nerim.fr>
1026
1027 PR target/14542
1028 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1029 a live change of a register after peephole replacement.
1030
10bc1b1b
JM
10312004-06-06 Joseph S. Myers <jsm@polyomino.org.uk>
1032
1033 PR c/13519
1034 * c-typeck.c (composite_type, common_pointer_type): New functions.
1035 (common_type): Split parts into composite_type and
1036 common_pointer_type. Ensure that arithmetic operations return
1037 unqualified types without attributes. Don't make composite type
1038 of signed enum and compatible integer be unsigned.
1039 (build_conditional_expr, build_binary_op): Use
1040 common_pointer_type.
1041 * c-decl.c (merge_decls): Use composite_type.
1042 * c-tree.h (composite_type): Declare.
1043
ff24b820
SC
10442004-06-06 Stephane Carrez <stcarrez@nerim.fr>
1045
1046 PR target/14457
1047 * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1048 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1049 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1050 (inhibit_libc): Must define.
1051 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1052 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1053 ("xorhi3"): Likewise.
1054
2ddbba80
EB
10552004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr>
1056
1057 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1058 always_inline pass.
1059
0eef99c1
DM
10602004-06-05 David S. Miller <davem@nuts.davemloft.net>
1061
1062 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1063 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1064
1ee19633
BI
10652004-06-05 Bernardo Innocenti <bernie@develer.com>
1066
1067 * regclass.c (init_reg_sets): Check for missing registers in target
1068 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1069
c6e83800
ZW
10702004-06-05 Zack Weinberg <zack@codesourcery.com>
1071
1072 * Makefile.in (MKDEPS_H): New shorthand.
1073 (c-opts.o): Update dependencies.
1074 * c-opts.c: Include mkdeps.h.
1075 (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1076 not cpp_add_dependency_target.
1077
dbeff3e5
SB
10782004-06-05 Steven Bosscher <stevenb@suse.de>
1079
1080 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1081 * config/v850/v850.md: Convert to DFA scheduler description.
1082
3e31938b 10832004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
bda4d063
TS
1084
1085 PR fortran/15478
1086 * doc/install.texi: Document GMP as prerequisite. Document
1087 --with-gmp and --with-gmp-dir configure options.
1088 * fortran/gfortran.texi: Remove section "Compiling and testing",
c6e83800 1089 remove TOC reference to it.
bda4d063 1090
446f52f4
GS
10912004-06-05 Graham Stott <graham.stott@btinternet.com>
1092
1093 * combine.c(simplify_shift_const): Check shift amount is a
1094 CONST_INT.
1095
90aa6719
DS
10962004-06-05 Danny Smith <dannysmith@users.sourceforge.net>
1097
446f52f4 1098 * toplev.c (init_asm_output): Add explicit 'b' to mode when
c6e83800 1099 opening asm_out_file.
446f52f4
GS
1100 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1101 reading asm_out_file. Replace fflush after reading asm_out_file
1102 with fseek.
1103 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
c6e83800 1104 default and add to HOST_HOOKS_INITIALIZER.
446f52f4
GS
1105 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1106 * ggc-common.c (default_gt_pch_alloc_granularity): New function.
c6e83800 1107 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
446f52f4
GS
1108 to set mmi.offset padding.
1109 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1110 $(srcdir)/config/i386/winnt.c.
1111 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1112 (i[34567]86-*-uwin*): Likewise.
1113 *i[34567]86-*-interix3*): Likewise.
1114 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1115 * config/i386/host-mingw32.c: New file.
1116 * config/i386/x-mingw32: Add rule for host-mingw32.o.
1117 * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1118 (extern_head): Likewise.
1119 (struct export_list) Likewise.
1120 (export_head): Likewise.
1121 (i386_pe_record_external_function): Use ggc_alloc.
1122 (i386_pe_record_exported_symbol): Likewise.
1123 Include "gt-winnt.h" at end.
1124 * doc/hostconfig.texi: Document
90aa6719
DS
1125 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1126
859711c5
BI
11272004-06-04 Bernardo Innocenti <bernie@develer.com>
1128
1129 * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1130 Rename 68000 and 68k to m68k for consistency in comments. Remove
1131 trailing whitespace before EOLs and before TABs.
1132 (MAX_CODE_ALIGN): Remove unused macro.
1133 (CALL_USED_REGISTERS): Reformat and add comments.
1134
f4d8a9ae
FCE
11352004-06-04 Frank Ch. Eigler <fche@redhat.com>
1136
1137 * gcc.c (MFLIB_SPEC): Remove library references, to require users
1138 to enumerate -lmudflap* and dependencies when linking.
1139
14bbffa1
PB
11402004-06-04 Paolo Bonzini <bonzini@gnu.org>
1141
1142 PR target/15822
1143 * dojump.c (do_jump): Fix uninitialized variable tcode1.
1144
3a786c62
JQ
11452004-06-04 Jerry Quinn <jlquinn@optonline.net>
1146
1147 * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1148 * genconditions.c (write_header): Back out removal of reload.h.
1149
2e2052b1
JH
11502004-06-04 Jan Hubicka <jh@suse.cz>
1151
1152 Re-apply hopefully fixed patch:
1153 * i386.md (UNSPECV_EH_RETURN): Kill.
1154 (eh_return): Use jump_insn.
1155 (eh_return_si, eh_return_di): Change pattern to jump instruction.
1156
9cf84a3c
JL
11572004-06-04 Jeff Law <law@redhat.com>
1158
1159 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1160
f698d217
SB
11612004-06-04 Steven Bosscher <stevenb@suse.de>
1162
1163 * except.c (for_each_eh_region): New function.
1164 * except.h (for_each_eh_region): Add a prototype for it.
1165 * tree-cfg.c (update_eh_labels): New function, callback for
1166 for_each_eh_region.
1167 (label_for_bb): Make global static, unfortunately.
1168 (cleanup_dead_labels): Also update label references for
1169 exception regions.
1170
c759d454
CD
11712004-06-03 Chris Demetriou <cgd@broadcom.com>
1172
1173 * config/mips/mips.c (struct irix_section_align_entry): Fix
1174 GTY marker.
1175
3d98fa14
GK
11762004-06-03 Geoffrey Keating <geoffk@apple.com>
1177
1178 * toplev.c (check_global_declarations): Don't ask for
1179 DECL_ASSEMBLER_NAME unless the function really is declared
1180 static and not defined.
1181
0524c91d
MA
11822004-06-03 Matt Austern <austern@apple.com>
1183
1184 PR c++/15428
1185 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1186 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1187 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1188 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
c6e83800 1189 documentation to reflect the new macro name and to clarify its
0524c91d 1190 meaning.
c6e83800 1191
f698d217 11922004-06-03 Steven Bosscher <stevenb@suse.de>
ed5947c9
SB
1193
1194 * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1195
c0d594f1
AP
11962004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
1197
1198 * config/darwin.c (machopic_indirect_data_reference): Copy
1199 the SYMBOL_REF_DECL from the original RTX for the new
1200 non-lazy pointer RTX.
1201
ed5947c9 12022004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
a757585a
MA
1203
1204 * tree.h: Remove include of version.h
1205 * c-cppbuiltin.c: Include version.h
1206 * diagnostic.c: Include version.h
1207 * dwarf2out.c: Include version.h
1208 * toplev.c: Include version.h
1209 * vmsdbgout.c: Include version.h
1210 * Makefile.in: Remove dependency on version.h from TREE_H, and
1211 add dependencies to required .o targets
1212
59587b18
JQ
12132004-06-03 Jerry Quinn <jlquinn@optonline.net>
1214
1215 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1216 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1217 (TARGET_H): Add insn-modes.h.
1218 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1219 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1220 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1221 loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1222 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1223 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1224 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1225 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1226 CFGLAYOUT_H.
1227 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1228 Replace ra.h with RA_H.
1229 (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1230 insn-recog.o): Replace resource.h with RESOURCE_H.
1231 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1232 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h
1233 with SCHED_INT_H.
1234 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1235 ra-rewrite.o): Replace df.h with DF_H.
1236 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1237 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1238 Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1239 (insn-conditions.o): Remove unused reload.h.
1240 * cfglayout.h: Add include guard. Include basic-block.h.
1241 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h.
1242 * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1243 * df.h: Add include guard. Include bitmap.h, sbitmap.h,
1244 basic-block.h.
1245 * genconditions.c: Remove reload.h.
1246 * ra.h: Add include guard. Include bitmap.h, sbitmap.h,
1247 hard-reg-set.h, insn-modes.h.
1248 * resource.h: Add include guard. Include hard-reg-set.h.
1249 * sched-int.h: Add include guard. Include insn-attr.h,
1250 basic-block.h, rtl.h.
1251 * target.h: Add include guard. Include insn-modes.h.
1252 * tree-ssa-live.h: Include partition.h.
1253
95eec0d6
DB
12542004-06-03 Daniel Berlin <dberlin@dberlin.org>
1255 Kenneth Zadeck <zadeck@naturalbridge.com>
1256
1257 * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1258 (add_var_to_ssa_edges_worklist): Add value argument.
1259 Update callers.
1260 Use new worklist.
1261 (process_ssa_edge_worklist): New function.
c6e83800 1262 (tree_ssa_ccp): Move worklist processing core to
95eec0d6
DB
1263 process_ssa_edge_worklist, and just call that for the two worklists.
1264
12652004-06-03 Steven Bosscher <stevenb@suse.de>
6ce2bcb7
SB
1266
1267 * basic-block.c (tail_recursion_label_list): Don't declare.
1268 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_*
1269 accordingly.
1270 * cfgbuild.c (find_label_refs): Remove.
1271 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1272 * cfgcleanup.c (tail_recursion_label_p): Remove.
1273 (merge_blocks_move): Do not check for tail recursion.
1274 (try_optimize_cfg): Likewise.
1275 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1276 * cfgrtl.c (tail_recursion_label_list): Remove.
1277 * except.c (remove_unreachable_regions): Don't handle
1278 CALL_PLACEHOLDER insns.
1279 (convert_from_eh_region_ranges_1, can_throw_internal,
1280 can_throw_external): Likewise.
1281 * function.c (free_after_compilation): Don't clear
1282 x_tail_recursion_label.
1283 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1284 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1285 (reorder_blocks_1): Likewise.
1286 * function.h (struct function): Remove x_tail_recursion_label
1287 member. Don't define tail_recursion_label.
1288 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1289 * print-rtl.c (print_rtx): Likewise.
1290 * rtl.def (CALL_PLACEHOLDER): Remove.
1291 * rtl.h (sibcall_use_t): Remove enum.
1292 (optimize_sibling_and_tail_recursive_calls,
1293 replace_call_placeholder): Remove function prototypes.
1294 * stmt.c (tail_recursion_args): Remove.
1295 (optimize_tail_recursion): Remove.
1296 (expand_return): Don't check for possible tail recursion.
1297 * tree.h (optimize_tail_recursion): Remove prototype.
1298
ce068299
JH
12992004-06-02 Jan Hubicka <jh@suse.cz>
1300
1301 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before
1302 return_stmt.
1303
b25a8933
JM
13042004-06-02 Jason Merrill <jason@redhat.com>
1305
1306 * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1307 Do include c-parse.in.
1308
3aeb3655
EC
13092004-06-02 Eric Christopher <echristo@redhat.com>
1310
1311 * c-typeck.c (common_type): Don't lose type qualifiers
1312 when creating new variants.
1313
3facc4b6
AP
13142004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
1315
1316 PR tree-optimization/14042
1317 PR tree-optimization/14729
1318 PR tree-optimization/14736
03a4c969
AP
1319 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1320 Check the type which the pointer points to
3facc4b6
AP
1321 instead of the pointer types.
1322
91fa0e3d
KH
13232004-06-02 Kazu Hirata <kazu@cs.umass.edu>
1324
1325 PR tree-optimization/15738.
1326 * builtins.c (fold_builtin_strchr): Transform
1327 strrchr (s, '\0') to strchr (s, '\0').
1328
dff008b4
SB
13292004-06-02 Steven Bosscher <stevenb@suse.de>
1330
1331 * i386.c (ix86_adjust_cost): Don't increase the cost for
1332 load+operation for PROCESSOR_PENTIUMPRO, it is already
1333 modelled in the DFA description
1334
78528714
JQ
13352004-06-01 Jerry Quinn <jlquinn@optonline.net>
1336
1337 * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1338 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1339 (ALIAS_H, EMIT_RTL_H): New.
1340 (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1341 (cfgcleanup.o): Add EMIT_RTL_H.
1342 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1343 * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1344 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1345 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1346 * expr.h: Add include guard. Include function.h, rtl.h, flags.h,
1347 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1348 (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1349 record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1350 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1351 set_mem_size): Move to emit-rtl.h.
1352 * emit-rtl.h: New.
1353 * alias.h: New.
1354
95c73b23
EB
13552004-06-01 Eric Botcazou <ebotcazou@act-europe.fr>
1356
1357 * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1358 Call fixup_memory_subreg only if the MEM is equal to 'var'.
1359 Adjust recursive calls to self.
1360 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1361
7a3ea201
RH
13622004-06-01 Richard Henderson <rth@redhat.com>
1363 Andrew Pinski <pinskia@physics.uc.edu>
1364
1365 * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1366 (primary): Handle offsetof. Add error productions for faux functions.
1367 Move component_ref objc checking to build_component_ref.
1368 (reswords): Add offsetof.
1369 (rid_to_yy): Add offsetof.
1370 * c-tree.h (build_offsetof): Declare.
1371 * c-common.h (objc_is_public): Declare.
1372 * c-typeck.c (build_component_ref): Check objc_is_public.
1373 (build_offsetof): New.
1374 * stub-objc.c (objc_is_public): New.
1375 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1376 from is_public.
1377 * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1378 * doc/extend.texi (Offsetof): Move from C++ section to C section
1379 and rewrite for __builtin_offsetof.
1380
5050d266 13812004-06-01 Peter Barada <peter@the-baradas.com>
dff008b4 1382 Peter Jakubek <peter@laseranimation.com>
5050d266
PB
1383
1384 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as
1385 a scratch to perform an add to memory.
1386
225d221a
BI
13872004-06-01 Bernardo Innocenti <bernie@develer.com>
1388
1389 PR target/14018
1390 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1391 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1392 m68k_align_funcs): Remove.
1393 (override_options): Remove code to handle -malign-* options.
1394 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1395 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1396 (m68k_align_loops_string, m68k_align_jumps_string,
1397 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1398 m68k_align_funcs): Remove definitions.
1399
1460af95
PE
14002004-06-01 Paul Eggert <eggert@cs.ucla.edu>
1401
1402 PR target/15626
1403 * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1404 by the Sun linker in conjunction with the Sun assembler.
1405 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1406
225d221a 14072004-06-01 Jeff Law <law@redhat.com>
0b068ee9 1408
dff008b4
SB
1409 * stmt.c (expand_decl): Be more selective about calling
1410 mark_reg_pointer.
0b068ee9 1411
61c627ed
NP
14122004-06-01 Nicola Pero <nicola@brainstorm.co.uk>
1413
9ade2479 1414 PR objc/7993
61c627ed
NP
1415 * objc-act.c (is_private): Do not emit the 'instance variable %s
1416 is declared private' error.
1417 (is_public): Emit the error after calling is_private.
1418 (lookup_objc_ivar): If the instance variable is private, return 0
1419 - the instance variable is invisible here.
1420
d3144423
EB
14212004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
1422
1423 * doc/invoke.texi (-static-libgcc): Explicitly mention
1424 non-GNU linkers.
1425
5847e53e
BI
14262004-06-01 Bernardo Innocenti <bernie@develer.com>
1427
1428 PR target/12968
1429 * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1430
ec3e6835
JM
14312004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
1432
1433 PR c/15749
1434 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1435 misuses of structures with flexible array members if
1436 in_system_header.
1437
a4a90b84
EB
14382004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1439
1440 PR target/15693
1441 * config/sparc/sparc.c (compare_operand): New predicate.
1442 * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1443 * config/sparc/sparc.md (cmpsi expander): Use it. If the first
1444 operand is a ZERO_EXTRACT and the second operand is not zero,
1445 force the former to a register.
1446 (cmpdi expander): Likewise.
1447
133f7a77
GK
14482004-05-31 Geoffrey Keating <geoffk@apple.com>
1449
1450 * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1451 looks at.
1452 * alias.c (alias_invariant_size): Make alias_invariant_size
1453 static, fix GTY marker.
1454
09d98c72
KH
14552004-05-31 Kazu Hirata <kazu@cs.umass.edu>
1456
1457 PR tree-optimization/15743.
1458 * builtins.c (fold_builtin_1): Fold index() and rindex().
1459
1f7a8dcc
RS
14602004-05-31 Roger Sayle <roger@eyesopen.com>
1461
1462 PR middle-end/15069
1463 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1464 into "X < 0" (where C is the signbit) if X's type is a full mode.
1465
1027314a
JDA
14662004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1467
1468 * pa.md: Disable the peephole2 patterns that generate indexed
1469 floating-point stores when indexing is disabled.
1470
41fd3bac
GDR
14712004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
1472
1473 * c-pretty-print.c (pp_c_left_bracket): Make a function.
1474 (pp_c_right_bracket): Likewise.
1475 (pp_c_star): Likewise.
1476 (pp_c_ampersand): Define.
1477 * c-pretty-print.h (pp_c_left_bracket): Declare.
1478 (pp_c_right_bracket): Likewise.
1479 (pp_c_star): Likewise.
1480 (pp_c_ampersand): Likewise.
1481
d3157fb6
EB
14822004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
1483
1484 * config/sol2.h (__enable_execute_stack): ANSIfy function
1485 definition.
1486
421563d5
DS
14872004-05-31 Danny Smith <dannysmith@users.sourceforge.net>
1488
1489 * c-incpath.c (add_path): Canonicalize paths to use '/' if
1490 HAVE_DOS_BASED_FILESYSTEM.
1491
1c052514
SB
14922004-05-31 Steven Bosscher <stevenb@suse.de>
1493
1494 * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1495 Only look at case labels if the immediate dominator is also
1496 the only predecessor. Don't look for more case labels if the
1497 first seen is a case range.
1498
e784e649
KH
14992004-05-31 Kazu Hirata <kazu@cs.umass.edu>
1500
1501 * builtins.c: Add a prototype for fold_builtin_strchr().
1502
1999435c
PB
15032004-05-31 Paolo Bonzini <bonzini@gnu.org>
1504
1505 Revert this patch:
1506 2004-05-27 Paolo Bonzini <bonzini@gnu.org>
1507
1508 * combine.c (gen_binary): Remove.
1509 (known_cond, simplify_shift_const
1510 find_split_point, combine_simplify_rtx,
1511 simplify_if_then_else, simplify_set,
1512 simplify_logical, expand_field_assignment,
1513 extract_left_shift, force_to_mode,
1514 if_then_else_cond, apply_distributive_law,
1515 simplify_and_const_int, simplify_shift_const,
1516 gen_lowpart_for_combine, simplify_comparison,
1517 reversed_comparison): Replace with
1518 simplify_gen_binary, simplify_gen_relational or
1519 distribute_and_simplify_rtx.
1520 (distribute_and_simplify_rtx): New function.
1521
97509a89
JDA
15222004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1523
1524 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1525 when generating PIC code.
1526
3c79fa86
AP
15272004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
1528
1529 * c-decl.c (c_expand_body_1): Remove and fold back into ...
1530 (c_expand_body): here.
1531 (c_expand_decl): Move to ...
1532 * c-common.c (c_expand_decl): Here and remove check for nested
1533 functions.
1534 * c-common.h (c_expand_decl): Add prototype.
1535 * c-tree.h (c_expand_decl): Remove.
1536
1b0f3e79
RS
15372004-05-30 Roger Sayle <roger@eyesopen.com>
1538
1539 * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1540 range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1541 fold_mathfn_compare, fold_inf_compare, fold,
1542 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1543 Use constant_boolean_node where appropriate. Don't bother using
1544 fold_convert on the second argument to omit_one_operand.
1545
29d64660
RS
15462004-05-30 Roger Sayle <roger@eyesopen.com>
1547
1548 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1549 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1550 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of
1551 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1552 Add missing (but documented) tree nodes to the index.
1553
b3dd9f35
SB
15542004-05-30 Steven Bosscher <stevenb@suse.de>
1555
1556 PR tree-optimization/14819
1557 * builtins.c (fold_builtin_strchr): New.
1558 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1559 with fold_builtin_strchr().
1560
9cf737f8
KH
15612004-05-30 Kazu Hirata <kazu@cs.umass.edu>
1562
1563 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1564 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1565 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1566 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1567 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1568 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1569 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1570 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1571 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1572 formatting.
1573
0f1f6967
SB
15742004-05-30 Steven Bosscher <stevenb@suse.de>
1575
1576 * gimplify.c (sort_case_labels): New. Split out from...
1577 (gimplify_switch_expr): ...here. Use it.
1578 * tree-eh.c (lower_try_finally_switch): Sort the labels of
1579 the SWITCH_EXPR created here before leaving the function.
1580 * tree.c (sort_case_labels): Add prototype.
1581
d22b7e14
AP
15822004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
1583
1584 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1585 of BOOLEAN_TYPE.
1586
1ea7e6ad
KH
15872004-05-30 Kazu Hirata <kazu@cs.umass.edu>
1588
1589 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1590 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1591 fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1592 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1593 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1594 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1595 comment typos. Follow spelling conventions.
1596
b453c95f
GK
15972004-05-29 Geoffrey Keating <geoffk@apple.com>
1598
1599 * gengtype-yacc.y: Add NESTED_PTR token.
1600 (option): Record `nested_ptr' option.
1601 * gengtype-lex.l: Handle `nested_ptr' keyword.
1602 * gengtype.c (walk_type): Process `nested_ptr' option.
1603 * gengtype.h (struct nested_ptr_data): New.
1604 * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1605 * stringpool.c (struct string_pool_data): Make 'entries' point to
1606 ht_identifier instead of tree.
1607 (gt_pch_save_stringpool): Don't adjust pointers.
1608 (gt_pch_restore_stringpool): Call ht_load.
1609
be00f578
JM
16102004-05-29 Jason Merrill <jason@redhat.com>
1611
1612 * gimplify.c (gimplify_expr): Don't build a statement list
1613 if no gimplification was necessary.
1614
ca09cd34
JM
16152004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
1616
1617 * pretty-print.c (pp_base_format_text): Support %< instead of %`
1618 and %> as well as %'.
1619 * c-format.c: Use %< and %>.
1620 (gcc_diag_char_table, gcc_cdiag_char_table,
1621 gcc_cxxdiag_char_table): Update.
1622
5305f6d7
JM
16232004-05-29 Joseph S. Myers <jsm@polyomino.org.uk>
1624
1625 * c-typeck.c (common_type): Correct comment.
1626
d1fe6168
PB
16272004-05-29 Peter Barada <peter@the-baradas.com>
1628
28bad6d1
PB
1629 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1630 * config/m68k/m68k.c (const_method): Likewise.
1631 * config/m68k/m68k.c (const_int_cost): Likewise.
1632 * config/m68k/m68k.c (const_int_cost): Likewise.
1633 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1634
16352004-05-29 Peter Barada <peter@the-baradas.com>
1636
1637 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
d1fe6168
PB
1638 addressing.
1639 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1640 movsi,movhi,movqi insn patterns.
1641
f935f97b
AP
16422005-05-28 Andrew Pinski <pinskia@physics.uc.edu>
1643
27e1a8d2
AP
1644 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1645
f935f97b
AP
1646 PR target/15720
1647 * config/darwin.c (machopic_indirect_call_target): Copy
1648 the SYMBOL_REF_DECL from the original RTX for the new
1649 stub RTX.
1650
5182fafe
DD
16512004-05-28 DJ Delorie <dj@redhat.com>
1652
1653 * stor-layout.c (place_field): Revert erroneous commit.
1654
bfefd4d5
ZL
16552004-05-28 Ziemowit Laski <zlaski@apple.com>
1656
1657 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1658 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1659 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1660 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1661 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1662 vec_ste): Remove type checks for integral parameters and literals
1663 from '..._args_eq' macros.
1664
e851b373
AH
16652004-05-28 Aldy Hernandez <aldyh@redhat.com>
1666
1667 * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1668
0d0bc036
AH
16692004-05-28 Aldy Hernandez <aldyh@redhat.com>
1670
1671 * testsuite/g++.dg/charset/function.cc: New.
1672
1673 * testsuite/gcc.dg/charset/function.c: New.
1674
1675 * c-decl.c (c_make_fname_decl): Free return value from
1676 fname_as_string.
1677
1678 * cp/decl.c (cp_make_fname_decl): Free return value from
1679 fname_as_string.
1680
1681 * c-common.c (fname_as_string): Translate if necessary.
1682
4bb4ae96
GK
16832004-05-28 Geoffrey Keating <geoffk@apple.com>
1684
1685 * stringpool.c: Add comments to PCH saving/restoring routines.
1686
09b01df8
AP
16872004-05-28 Andrew Pinski <pinskia@physics.uc.edu>
1688
2fec96c1
AP
1689 * c-common.c (c_estimate_num_insns_1): Kill.
1690 (c_estimate_num_insns): Kill.
1691 * c-common.h (c_estimate_num_insns): Kill.
1692
1693 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1694 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1695 Remove comment about not checking for
1696 _POSIX_PRIORITY_SCHEDULING.
1697 * gthr-posix.c: Likewise.
09b01df8 1698
d1a7edaf
PB
16992004-05-28 Paolo Bonzini <bonzini@gnu.org>
1700 Roger Sayle <roger@eyesopen.com>
1701
1702 PR rtl-optimization/15649
1703 Add LTGT_EXPR and improve pretty-printing of unordered
1704 comparisons.
1705 * c-common.c (c_common_truthvalue_conversion):
1706 Handle LTGT_EXPR.
1707 * c-typeck.c (build_binary_op): Likewise.
1708 * dojump.c (do_jump): Likewise.
1709 * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1710 * predict.c (tree_predict_by_opcode): Likewise.
1711 * real.c (real_compare): Likewise.
1712 * tree-cfg.c (verify_expr): Likewise.
1713 * tree-inline.c (estimate_num_insns_1): Likewise.
1714 * tree-pretty-print.c (dump_generic_node): Likewise.
1715 Handle ORDERED_EXPR, UNORDERED_EXPR.
1716 (op_symbol): Print unordered comparisons differently
1717 than ordered ones.
1718 * tree.def (LTGT_EXPR): New '<' tree code.
1719 * doc/c-tree.texi (Expressions): Document floating-point
1720 comparison nodes.
1721
1722 Fold comparisons between floating point values.
1723 * fold-const.c (enum comparison_code): New, from
1724 #define'd constants. Define compcodes for unordered
1725 comparisons and for invalid transformations.
1726 (invert_tree_comparison): Add "honor_nans" parameter.
1727 (fold_truthop): Revamp to work on floating-point types too.
1728 (comparison_to_compcode): Support unordered comparisons.
1729 Use new enum comparison_code.
1730 (compcode_to_comparison): Likewise.
1731 (combine_compcodes): New function.
1732 (invert_truthvalue): Let invert_tree_comparison decide
1733 whether it is valid to fold the comparison. Fold ORDERED
1734 and UNORDERED even if flag_unsafe_math_optimizations is off,
1735 and the remaining even if flag_unsafe_math_optimizations
1736 is off but we are under -fno-trapping-math.
1737 (fold_relational_const): Integer modes do not honor NaNs.
61c627ed 1738
2966b00e
PB
17392004-05-28 Paul Brook <paul@codesourcery.com>
1740
1741 * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1742
3c7ad43e
PB
17432004-05-28 Paul Brook <paul@codesourcery.com>
1744
1745 * config/arm/arm.c (thumb_force_lr_save): New function.
1746 (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1747 thumb_output_function_prologue): Use it.
1748 (thumb_expand_prologue): Set lr_save_eliminated.
1749
a97a3e73
RS
17502004-05-28 Richard Sandiford <rsandifo@redhat.com>
1751
1752 * config/mips/mips.md (extendsidi2): Tie the source and destination
1753 of the register alternative. Split it into nothing.
1754
6c2511d3
RS
17552004-05-28 Richard Sandiford <rsandifo@redhat.com>
1756
1757 * rtl.h (skip_consecutive_labels): Declare.
1758 * emit-rtl.c (skip_consecutive_labels): New function.
1759 * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1760 * jump.c (follow_jumps): Say what null return values mean.
1761
4fbf3498
KK
17622004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1763
1764 PR target/13250
1765 * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1766
cc212178
KK
17672004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
1768
1769 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1770 libgcc-std.ver.
1771 * config/sh/libgcc-std.ver: New file.
1772
aed30657
BM
17732004-05-27 Bryce McKinlay <mckinlay@redhat.com>
1774
1775 * except.c: Revert change of 2004-05-26.
1776 * config/i386/i386.md: Revert change of 2004-05-27.
1777
13f05fd0
BM
17782004-05-27 Bryce McKinlay <mckinlay@redhat.com>
1779
1780 * configure.ac: Remove --enable-tree-browser option.
1781 Define TREEBROWSER when ac_tree_checking is defined.
1782 * configure: Rebuilt.
1783
7c50e202
OH
17842004-05-27 Olivier Hainque <hainque@act-europe.fr>
1785
1786 * expr.c (store_constructor): Restore sanity check on
1787 the size of the type before clearing.
1788
baf8706c
JH
17892004-05-27 Jan Hubicka <jh@suse.cz>
1790
1791 * cfgbuild.c (control_flow_insn_p): Notice noreturn call
1792
1999435c 17932004-05-27 Paolo Bonzini <bonzini@gnu.org>
dce1438a
PB
1794
1795 * combine.c (gen_binary): Remove.
1796 (known_cond, simplify_shift_const
1797 find_split_point, combine_simplify_rtx,
1798 simplify_if_then_else, simplify_set,
1799 simplify_logical, expand_field_assignment,
1800 extract_left_shift, force_to_mode,
1801 if_then_else_cond, apply_distributive_law,
1802 simplify_and_const_int, simplify_shift_const,
1803 gen_lowpart_for_combine, simplify_comparison,
1804 reversed_comparison): Replace with
1805 simplify_gen_binary, simplify_gen_relational or
1806 distribute_and_simplify_rtx.
1807 (distribute_and_simplify_rtx): New function.
1808 * simplify-rtx.c (simplify_binary_operation):
1809 Use nonzero_bits to simplify ANDs where we are
1810 turning off bits already known to be off in OP0.
1811
42f806e5
AM
18122004-05-27 Alan Modra <amodra@bigpond.net.au>
1813
1814 PR target/14478
1815 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1816
e314a036
JZ
18172004-05-27 Josef Zlomek <zlomekj@suse.cz>
1818
1819 PR middle-end/14084
1820 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1821 to size of decl.
1822
61bea3b0
AH
18232004-05-26 Aldy Hernandez <aldyh@redhat.com>
1824
1825 PR/14924
1826 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1827
cdc9d803
RS
18282004-05-26 Roger Sayle <roger@eyesopen.com>
1829
1830 * tree.h: Fix comment typo.
1831
f667741c
SB
18322004-05-27 Steven Bosscher <stevenb@suse.de>
1833
1834 * gimplify.c (compare_case_labels): New function.
1835 (gimplify_switch_expr): Sort case labels, and make sure the
1836 last label in the label vector is the default case.
1837 * tree-cfg.c (group_case_labels): New function.
1838 (build_tree_cfg): Cleanup redundant labels and group case labels
1839 before creating edges.
1840 (cleanup_dead_labels): Handle GOTO_EXPRs.
1841 (find_case_label_for_value): Use a binary search to find the
1842 case label for the given value.
1843 * tree-gimple.c: Mention that labels are sorted, and that the
1844 last label must be the default.
1845
e4efa971
JH
18462004-05-27 Jan Hubicka <jh@suse.cz>
1847
1848 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1849
dabbc722
JH
18502004-05-27 Jan Hubicka <jh@suse.cz>
1851
1852 * i386.md (UNSPECV_EH_RETURN): Kill.
1853 (eh_return): Use jump_insn.
1854 (eh_return_si, eh_return_di): Change pattern to jump instruction.
1855
43acb4c4
JH
18562004-05-26 Jan Hubicka <jh@suse.cz>
1857
1858 * cfgcleanup.c (try_forward_edges): Do not check loop structure when
1859 not loop optimizing.
43acb4c4 1860
f00d196d
JH
18612004-05-26 Jan Hubicka <jh@suse.cz>
1862
1863 * except.c (can_throw_internal): Notice RESX instructions.
1864
42048866
EB
18652004-05-26 Eric Botcazou <ebotcazou@act-europe.fr>
1866
1867 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1868 of the two sizes to assemble_integer.
1869
b31ad637
PB
18702004-05-25 Paul Brook <paul@codesourcery.com>
1871
1872 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1873 pointless #ifdef.
1874
5da9128a
PB
18752004-04-25 Paolo Bonzini <bonzini@gnu.org>
1876
1877 * Makefile.in (top_builddir): Define to .
1878
08d105fa
AO
18792004-05-25 Alexandre Oliva <aoliva@redhat.com>
1880
1881 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1882 top-level detects, except when in-tree ld is being cross-built.
1883 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and
1884 then AS only if target is host.
1885 * configure: Rebuilt.
1886
9abe5d07
VM
18872004-05-25 Vladimir Makarov <vmakarov@redhat.com>
1888
1889 * global.c (global_alloc): Call make_accurate_live_analysis.
1890 (record_one_conflict): Remove dead code.
1891 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1892 (bb_info): New structure.
1893 (BB_INFO, BB_INFO_BY_INDEX): New macros.
1894 (allocate_bb_info, free_bb_info, mark_reg_change,
1895 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1896 modify_bb_reg_pav, calculate_reg_pav,
1897 make_accurate_live_analysis): New functions.
61c627ed 1898
f411a73a
DP
18992004-05-25 Devang Patel <dpatel@apple.com>
1900
1901 * alias.c (init_alias_analysis): Use ggc_calloc instead of
1902 xrealloc.
1903 (end_alias_analysis): Use ggc_free instead fo free.
61c627ed 1904
104a4010
AP
19052004-05-25 Andrew Pinski <pinskia@physics.uc.edu>
1906
1907 PR target/15546
1908 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1909 as needed to be outputted.
1910
d601c996
JH
19112004-05-25 Jan Hubicka <jh@suse.cz>
1912
1913 * builtins.def (__builtin_expect): Mark the function as const&nothrow.
1914
e5626198
AZ
19152004-05-25 Ayal Zaks <zaks@il.ibm.com>
1916 Mostafa Hagog <mustafa@il.ibm.com>
1917
1918 * Makefile.in (modulo-sched.o, ddg.o): New.
1919 * ddg.h, ddg.c, modulo-sched.c: New files.
1920 * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1921 internals to "dupicate_insn".
1922 (duplicate_insn): New function.
1923 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1924 declarations.
1925 * common.opt (fmodulo-sched): New flag.
1926 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1927 Remove static and forward declaration.
1928 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
1929 functions.
1930 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
1931 df_bb_regno_last_def_find, df_find_def, df_reg_used): New
1932 declarations.
1933 * flags.h (flag_modulo_sched): New flag.
1934 * opts.c (common_handle_option): Handle modulo-sched flag.
1935 * params.def (max-sms-loop-number, sms-max-ii-factor,
1936 sms-dfa-history, sms-loop-average-count-threshold): New
1937 parameters.
1938 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
1939 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
1940 parameters.
1941 * passes.c ("sms", "sms-vcg"): New dumps.
1942 (rest_of_handle_sched): Call sms_schedule.
1943 * rtl.h (sms_schedule): New declaration.
1944 * timevar.def (TV_SMS): New.
1945 * toplev.c (flag_modulo_sched): Initialize.
1946 (f_options): Handle -fmodulo-sched option.
1947 * docs/invoke.texi: Document -fmodulo-sched & -dm options.
1948 * docs/passes.texi: Document new SMS pass.
1949
2f93eea8
PB
19502004-05-25 Paolo Bonzini <bonzini@gnu.org>
1951
1952 * Makefile.in (OBJS): Add rtlhooks.o.
1953 (rtlanal.o): Depend on function.h.
1954 (cse.o): Depend on rtlhooks-def.h.
1955 (combine.o): Depend on rtlhooks-def.h.
1956 (rtlhooks.o): New rule.
1957 * combine.c: Include rtlhooks-def.h.
1958 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1959 num_sign_bit_copies, cached_num_sign_bit_copies,
1960 num_sign_bit_copies1): Move most of the code to rtlanal.c.
1961 (reg_nonzero_bits_for_combine,
1962 reg_num_sign_bit_copies_for_combine): New functions holding
1963 the remnants of the above.
1964 (combine_rtl_hooks): New.
1965 (combine_instructions): Set rtl_hooks instead of gen_lowpart.
1966 * cse.c: Include rtlhooks-def.h.
1967 (cse_rtl_hooks): New.
1968 (cse_main): Set rtl_hooks instead of gen_lowpart.
1969 * emit-rtl.c (gen_lowpart): Remove.
1970 (gen_lowpart_general): Move to rtlhooks.c.
1971 * rtl.h (nonzero_bits, num_sign_bit_copies,
1972 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
1973 (gen_lowpart_general): Remove.
1974 (gen_lowpart): Temporarily redefine as a macro.
1975 * rtlanal.c: Include function.h.
1976 (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1977 num_sign_bit_copies, cached_num_sign_bit_copies,
1978 num_sign_bit_copies1): New, from combine.c.
61c627ed 1979 * rtlhooks.c: New file.
789550d1 1980 * rtlhooks-def.h: New file.
2f93eea8 1981
11338cda
SS
19822004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com>
1983
1984 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
1985 to support 32-bit -mint8 mode.
1986
1987 * doc/invoke.texi (-mint8): Added documentation for the -mint8
61c627ed 1988 option in the AVR architecture.
11338cda 1989
cfc984b5
MS
19902004-05-24 Mike Stump <mrs@apple.com>
1991
1992 * doc/install.texi: Document that dejagnu 1.4.4 is required.
1993
a668adb2
JM
19942004-05-24 Joseph S. Myers <jsm@polyomino.org.uk>
1995
1996 * intl.h (open_quote, close_quote): New.
1997 * intl.c (open_quote, close_quote): New.
1998 (gcc_init_libintl): Set them.
1999 * pretty-print.c: Include "intl.h".
2000 (pp_base_format_text): Support 'q' format flag and %` and %'
2001 formats. Use ' instead of ` in comments.
2002 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2003 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2004 foramt_types_orig): Describe these new formats.
2005 (decode_format_attr, check_function_format,
2006 check_format_info_main): Use these new formats.
2007 (status_warning): Use ATTRIBUTE_GCC_DIAG.
2008 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2009 check these formats to 3.5.
2010
6046b0ed
RO
20112004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2012
2013 * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2014 (BACKEND): Reflect this.
2015 (LIBDEPS): Move CPPLIB before LIBIBERTY.
2016 (LIBS): Likewise.
2017
aef0afc4
UW
20182004-05-24 Ulrich Weigand <uweigand@de.ibm.com>
2019
2020 PR tree-optimization/14197
2021 * builtins.c: Include "tree-gimple.h"
61c627ed 2022 (readonly_data_expr): Use get_base_address. Make sure to call
aef0afc4
UW
2023 decl_readonly_section only on trees it can handle.
2024 * tree-gimple.c (get_base_address): Accept STRING_CST and
2025 CONSTRUCTOR expressions.
2026 * Makefile.in: Update dependencies.
2027
4f4e53dd
PB
20282004-05-23 Paolo Bonzini <bonzini@gnu.org>
2029
2030 Move libcpp to the toplevel.
2031 * Makefile.in: Remove references to libcpp files,
2032 use CPPLIBS instead of libcpp.a. Define SYMTAB_H
2033 and change hashtable.h to that.
2034 * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2035 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2036 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2037 * configure: Regenerate.
2038 * config.in: Regenerate.
2039 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2040 * cppcharset.c: Removed.
2041 * cpperror.c: Removed.
2042 * cppexp.c: Removed.
2043 * cppfiles.c: Removed.
2044 * cpphash.c: Removed.
2045 * cpphash.h: Removed.
2046 * cppinit.c: Removed.
2047 * cpplex.c: Removed.
2048 * cpplib.c: Removed.
2049 * cpplib.h: Removed.
2050 * cppmacro.c: Removed.
2051 * cpppch.c: Removed.
2052 * cpptrad.c: Removed.
2053 * cppucnid.h: Removed.
2054 * cppucnid.pl: Removed.
2055 * cppucnid.tab: Removed.
2056 * hashtable.c: Removed.
2057 * hashtable.h: Removed.
2058 * line-map.c: Removed.
2059 * line-map.h: Removed.
2060 * mkdeps.c: Removed.
2061 * mkdeps.h: Removed.
2062 * stringpool.h: Include symtab.h instead of hashtable.h.
2063 * tree.h: Include symtab.h instead of hashtable.h.
2064 * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2065
76391e5a
PB
20662004-05-23 Paolo Bonzini <bonzini@gnu.org>
2067
2068 * gcc.c (struct prefix_list): Add forward declaration.
2069 (do_spec_path): New function, extracted from...
2070 (do_spec_1) <'D'>: ... here. Drop support for
2071 SPACE_AFTER_L_OPTION.
2072 (do_spec_1) <'I'>: Use do_spec_path.
2073 (process_command): Do not store the 'include' suffix
2074 in include_prefixes.
2075 * system.h: Poison SPACE_AFTER_L_OPTION.
2076
8d4a2ff6
RS
20772002-05-23 Roger Sayle <roger@eyesopen.com>
2078
2079 * fold-const.c (non_lvalue): Explicitly list the tree codes that
2080 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2081
6972898c
JM
20822004-05-23 Joseph S. Myers <jsm@polyomino.org.uk>
2083
2084 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2085 Update based on printed manual. Enable setting of offsets for
2086 FSFPRINT and move it to gcc-common.texi.
2087 * doc/gcc.texi: Update FSF printing details.
2088 * doc/gccint.texi: Remove FSF printing details.
2089
68ca1923
AP
20902004-05-23 Andrew Pinski <pinskia@physics.uc.edu>
2091
2092 * config/rs6000/t-rs6000: Remove the disabling -Werror.
2093
d6dc556b
RS
20942004-05-22 Roger Sayle <roger@eyesopen.com>
2095
2096 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2097 expand_builtin_strrchr, expand_builtin_strpbrk,
2098 expand_builtin_mempcpy, expand_builtin_memcmp,
2099 expand_builtin_strcmp, expand_builtin_strncmp,
2100 expand_builtin_strcat, std_expand_builtin_va_start,
2101 std_expand_builtin_va_arg, expand_builtin_va_copy,
2102 expand_builtin_signbit, fold_builtin_cabs,
2103 fold_builtin_logarithm, fold_builtin_mempcpy,
2104 fold_builtin_signbit, fold_builtin_isascii,
2105 fold_builtin_toascii, fold_builtin_isdigit,
2106 fold_builtin_1, build_function_call_expr,
2107 simplify_builtin_strchr, simplify_builtin_strrchr,
2108 simplify_builtin_strpbrk, simplify_builtin_strncpy,
2109 simplify_builtin_memcmp, simplify_builtin_strcmp,
2110 simplify_builtin_strncmp, simplify_builtin_strncat,
2111 simplify_builtin_strspn, simplify_builtin_strcspn,
2112 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2113 to build with calls to build2, build3 or omit_one_operand.
2114
0a0de3bf
RS
21152004-05-22 Richard Sandiford <rsandifo@redhat.com>
2116
8e657c46 2117 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
0a0de3bf
RS
2118 section when generating EABI code.
2119
79bba51c
AP
21202004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
2121
2122 PR 15546
2123 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2124 Call mark_decl_referenced on the SYMBOL_REF_DECL.
2125
6f312d18
ZW
21262004-05-22 Andrew Pinski <pinskia@physics.uc.edu>
2127
2128 * c-common.c (c_common_truthvalue_conversion): Handle
2129 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2130 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2131 i.e. set the type to truthvalue_type_node and return.
2132
21332004-05-22 Zack Weinberg <zack@codesourcery.com>
2134
2135 * tree.h (struct tree_decl): Add possibly_inlined bit.
2136 (DECL_POSSIBLY_INLINED): New accessor macro.
2137 * cgraph.h: Remove declaration of cgraph_inline_hash.
2138 * cgraph.c: Remove definition of cgraph_inline_hash.
2139 (hash_node): Revert to hashing DECL_UID.
2140 (eq_node): Take two pointers to cgraph_node structures.
2141 Compare DECL_UIDs.
2142 (cgraph_remove_node): Pass the node directly to htab_find_slot.
2143 (cgraph_varpool_hash_node): Rename hash_varpool_node;
2144 hash on DECL_UID.
2145 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2146 pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2147 (cgraph_node): Allocate a temporary node on the stack, fill in
2148 its DECL field, and pass that to htab_find_slot.
2149 (cgraph_varpool_node): Likewise.
2150 (cgraph_function_possibly_inlined_p): If global info is ready,
2151 return the DECL_POSSIBLY_INLINED bit.
2152 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2153 instead of mucking with cgraph_inline_hash.
2154
2dec00bf
JM
21552004-05-22 Joseph S. Myers <jsm@polyomino.org.uk>
2156
2157 * doc/contrib.texi: Add g77 contributors.
2158
9fd47435
RS
21592004-05-22 Richard Sandiford <rsandifo@redhat.com>
2160
2161 * calls.c (initialize_argument_information): Forbid sibcalls if a
2162 callee-copied argument is stored in the current function's frame.
2163
0bc0f41d
EC
21642004-05-22 Eric Christopher <echristo@redhat.com>
2165
2166 * fix-header.c (read_scan_file): Update for add_path change.
2167
b02398bd
BE
21682004-05-22 Ben Elliston <bje@au.ibm.com>
2169
2170 * c.opt (Wmissing-include-dirs): New.
2171 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2172 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2173 OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2174 * c-incpath.h (add_path): Add fourth (bool) argument.
2175 * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2176 (add_standard_paths): Likewise.
2177 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2178 is used and the directory was user-supplied via -I.
2179 (add_path): Set p->user_supplied_p. Remove duplicated code by
2180 using add_cpp_dir_path ().
2181 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2182 (struct cpp_dir): Add user_supplied_p.
2183 * doc/invoke.texi (Warning Options): Document new option.
2184
12fea1f9
UW
21852004-05-21 Ulrich Weigand <uweigand@de.ibm.com>
2186
2187 * fold-const.c (fold_read_from_constant_string): Convert result to
2188 requested type.
2189
f0638e1d
RH
21902004-05-21 Richard Henderson <rth@redhat.com>
2191
2192 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2193 (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2194 Don't mark VA_ARG_EXPRs volatile here.
2195 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2196
11ed191c
RH
21972004-05-21 Richard Henderson <rth@redhat.com>
2198
2199 * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2200 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2201
b953ebd6
RS
22022004-05-21 Roger Sayle <roger@eyesopen.com>
2203
2204 * fold-const.c (fold, fold_relational_hi_lo,
2205 nondestructive_fold_binary_to_constant,
2206 fold_read_from_constant_string): Use fold_convert instead of convert.
2207 * builtins.c (simplify_builtin, simplify_builtin_strstr,
2208 simplify_builtin_strchr, simplify_builtin_strrchr,
2209 simplify_builtin_strpbrk): Use fold_convert instead of convert.
2210
e54d0214
DN
22112004-05-21 Diego Novillo <dnovillo@redhat.com>
2212
2213 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2214 is NULL.
2215
942e0f44
JJ
22162004-05-21 Jakub Jelinek <jakub@redhat.com>
2217
2218 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2219 override sparc.h definition.
2220
59ce6d6b
RS
22212004-05-20 Roger Sayle <roger@eyesopen.com>
2222
2223 * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2224 get_unwidened, get_narrower): Replace build with build2.
2225 * fold-const.c (negate_expr, associate_trees, size_binop,
2226 fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2227 pedantic_omit_one_operand, distribute_bit_expr,
2228 make_bit_field_ref, optimize_bit_field_compare,
2229 decode_field_reference, range_binop, make_range,
2230 build_range_check, fold_range_test, fold_truthop,
0bc0f41d 2231 optimize_minmax_comparison, extract_muldiv_1,
59ce6d6b
RS
2232 fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2233 fold_inf_compare, fold_single_bit_test, fold,
2234 fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2235 Likewise replace build with either build2 or build3.
2236
3972995b
ILT
22372004-05-20 Ian Lance Taylor <ian@wasabisystems.com>
2238
2239 * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2240 * calls.c (prepare_call_address): Don't test
2241 NO_RECURSIVE_FUNCTION_CSE.
2242 * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2243 * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2244 * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2245 * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2246 * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2247 * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2248 * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2249 * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2250 * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2251 * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2252 * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2253 * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2254 Likewise.
2255 * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2256 * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2257 * doc/tm.texi (Costs): Remove documentation for
2258 NO_RECURSIVE_FUNCTION_CSE.
2259
0ef54a47
PB
22602004-05-20 Paul Brook <paul@codesourcery.com>
2261
2262 * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2263 * unwind-dw2.c (extract_cie_info): Ditto.
2264 (_Unwind_FrameState): Change retaddr_column to word type.
2265
f4085d4c
RS
22662004-05-20 Roger Sayle <roger@eyesopen.com>
2267
2268 PR middle-end/3074
2269 * fold-const.c (strip_compound_expr): Delete function.
2270 (count_cond): Delete function.
2271 (fold_binary_op_with_conditional_arg): Only perform transformations
2272 "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2273 when a is constant. This greatly simplifies this routine.
2274
2275 * tree.c (saved_expr_p): Delete function.
2276 * tree.h (saved_expr_p): Delete function prototype.
2277
b8850dd2
AP
22782004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
2279
2280 * common.opt (ftree-loop-optimize): Remove.
2281
4ac29b33
DJ
22822004-05-20 Daniel Jacobowitz <dan@debian.org>
2283
2284 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2285 (NM_FOR_TARGET): Use := and $(shell).
2286 (mainversion): Remove unused variable.
2287
52fe4de8
JDA
22882004-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2289
2290 * reorg.c (delete_from_delay_slot): If we have a barrier after the
2291 sequence containing the insn to be deleted, always reemit it.
2292
7e140280
RH
22932004-05-20 Richard Henderson <rth@redhat.com>
2294
2295 PR 15454
2296 * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2297 * function.c (expand_function_start): Expand static_chain_decl by hand.
2298 * gimplify.c (create_tmp_var_name): Export.
2299 * tree-gimple.h (create_tmp_var_name): Declare.
2300
9bf6462a
AP
23012004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
2302
2303 * rs6000.c (print_operand) <case 'z'>: Call
2304 mark_decl_referenced before assemble_name.
2305
30719c65
ZW
23062004-05-20 Zack Weinberg <zack@codesourcery.com>
2307
2308 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2309 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2310 (cgraph_varpool_node): Hash on the pointer to the decl, not
2311 the DECL_UID. Fixes 64-bit bootstrap failure.
2312
69260355
RE
23132004-05-20 Richard Earnshaw <rearnsha@arm.com>
2314
2315 * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2316 we don't earlyclobber operands used in the second insn.
2317
1ffae628
SB
23182004-05-20 Steven Bosscher <stevenb@suse.de>
2319
2320 * tree-mudflap.c: Formatting fixes.
2321
965ccc5a
R
23222004-05-20 J"orn Rennecke <joern.rennecke@superh.com>
2323
2324 * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2325 * gengtype.c (open_base_files): Include reload.h in ifiles.
2326 * reload.h (reg_equiv_memory_loc_varray): Declare.
2327 * reload1.c (reg_equiv_memory_loc_varray): New variable.
2328 (init_reload): Initialize it.
2329 (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2330 reg_equiv_memory_loc_varray to size 0.
2331 * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2332 growing reg_equiv_memory_loc_varray to the desired size.
2333 * passes.c (rest_of_handle_old_regalloc): Likewise.
2334 * reload.c: Amend comment on calling init_reload.
2335
4ccfc10a
NC
23362004-05-20 Nick Clifton <nickc@redhat.com>
2337
2338 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2339 with 'TRAMP' in the body of the macro definition.
2340
6bc709c1
L
23412004-05-19 H.J. Lu <hongjiu.lu@intel.com>
2342
2343 PR target/15383
2344 * config/ia64/ia64.c (ia64_expand_compare): Don't check
2345 TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2346 cmptf_libfunc isn't set.
2347 (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2348 conventions.
2349 (ia64_sysv4_init_libfuncs): New.
2350
2351 * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2352 ia64_sysv4_init_libfuncs.
2353
d3a7ef9a
FH
23542004-05-20 Falk Hueffner <falk@debian.org>
2355
2356 PR other/15526
2357 * libgcc2.c (__mulvsi3): Fix overflow test.
2358
e916e1d0
AP
23592004-05-19 Andrew Pinski <pinskia@physics.uc.edu>
2360
dc44e18a 2361 PR c/14171
d2032ad8
AP
2362 * reg-stack.c (nan): Rename to ...
2363 (not_a_num): Here.
2364 (reg_to_stack): Rename nan to not_a_num.
2365 (subst_stack_regs_pat): Likewise.
2366 (convert_regs_entry): Likewise.
2367 (convert_regs_1): Likewise.
2368
e916e1d0
AP
2369 * tree-cfg.c (find_case_label_for_value): Replace call to
2370 simple_cst_equal with tree_int_cst_equal.
2371
84c672b9
JL
23722004-05-19 Jeff Law <law@redhat.com>
2373
34eb8991
JL
2374 * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2375 If the operand is for a use, then strip away the SSA_NAME, do not
2376 strip away the SSA_NAME for a set. Never call release_ssa_name.
2377 (mark_def_sites): Appropriately pass additional argument to
2378 prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME,
2379 then set the VDEF_RESULT to the VDEF_OP.
2380 (set_def_block): Strip away any SSA_NAME to get to the real
2381 underlying variable.
2382
84c672b9
JL
2383 * tree-ssa-phiopt.c (value_replacement): Handle the case where
2384 the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2385 BB directly.
2386
0aea6467
ZD
23872004-05-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2388
2389 PR c++/15463
2390 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on
2391 result of inverse.
2392
2393 PR rtl-optimization/15274
2394 * loop-iv.c (determine_max_iter, shorten_into_mode,
2395 iv_number_of_iterations): Handle constants correctly.
2396 * rtl.h (get_mode_bounds): Declaration changed.
2397 * stor-layout.c (get_mode_bounds): Return a constant suitable for
2398 the target mode.
2399
2400 PR rtl-optimization/14692
2401 * loop-unswitch.c (may_unswitch_on): Try folding the result.
2402 (unswitch_single_loop): Work correctly when may_unswitch_on
2403 returns a folded constant.
2404
2405 * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2406 * simplify-rtx.c (simplify_const_relational_operation): Optimize
2407 comparisons with mode bounds.
2408
2409 * function.c (struct temp_slot): Add new field prev.
2410 (free_after_compilation, init_temp_slots): Free new fields.
2411 (cut_slot_from_list, insert_slot_to_list,
2412 temp_slots_at_level, max_slot_level, move_slot_to_level,
2413 make_slot_available): New functions.
2414 (assign_stack_temp_for_type, combine_temp_slots,
2415 find_temp_slot_from_address, preserve_temp_slots,
2416 preserve_rtl_expr_result, free_temp_slots,
2417 free_temps_for_rtl_expr, pop_temp_slots): Work with
2418 the new structure of lists.
2419 (mark_all_temps_used): Removed.
2420 * function.h (struct function): Field x_temp_slots
2421 replaced by x_used_temp_slots and x_avail_temp_slots.
2422 (temp_slots): Replaced by ...
2423 (used_temp_slots, avail_temp_slots): New.
2424 * tree.h (mark_all_temps_used): Declaration removed.
2425
2426 * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2427 simplify_using_assignment): Take the expression out of
2428 the expr_list wrapper.
2429
2430 * loop-iv.c (iv_number_of_iterations): Improve clasification of
2431 infinite loops.
2432
31a52b86
RS
24332004-05-19 Roger Sayle <roger@eyesopen.com>
2434
2435 * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2436 costs should be based on code size when optimizing for size.
2437
d28f752b
PB
24382004-05-19 Paolo Bonzini <bonzini@gnu.org>
2439
2440 * fold-const.c: Remove non-printable character 160.
2441
d55b55aa
NC
24422004-05-19 Nick Clifton <nickc@redhat.com>
2443
34a86306
NC
2444 * doc/invoke.texi (ARM Options): Fix typo.
2445 Remove descrption of -mshort-load-bytes and
2446 -mno-short-load-bytes.
2447
d55b55aa
NC
2448 * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2449 missing parenthesis.
2450 * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2451 * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2452
6af8eb57
SB
24532004-05-19 Steven Bosscher <stevenb@suse.de>
2454
2455 * expr.c (store_constructor): Build loop start and end by hand
2456 instead of via loop functions from stmt.c.
2457 (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2458 Remove the code to expand them.
2459
2460 * stmt.c (loop_stack): Remove this and everything related.
2461 (struct nesting, enum nesting_desc): Update.
2462 (expand_fixup): Likewise.
2463 (expand_loop_start, expand_start_loop_continue_elsewhere,
2464 expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2465 expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2466 expand_exit_loop_if_false, expand_exit_loop_top_cond,
2467 expand_exit_something): Remove.
2468 * tree.h: Remove prototypes.
2469
eeab4d81
MS
24702004-05-18 Mike Stump <mrs@apple.com>
2471 Devang Patel <dpatel@apple.com>
2472
2473 * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2474 if this label is for eh.
2475 * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2476 * config/darwin.c (darwin_emit_unwind_label): Likewise.
2477 * dwarf2out.c (output_call_frame_info): Likewise.
2478 * output.h (default_emit_unwind_label): Likewise.
2479 * target.h (unwind_label): Likewise.
2480 * varasm.c (default_emit_unwind_label): Likewise.
2481
2482 * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2483 DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2484 DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2485 DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2486 DEBUG_RANGES_SECTION): Define.
2487
bb9a388d
ZW
24882004-05-18 Zack Weinberg <zack@codesourcery.com>
2489
2490 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2491 (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2492 (cgraph_varpool_node):
2493 Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2494 (cgraph_function_possibly_inlined_p): Use the decl itself for
2495 the key, not DECL_ASSEMBLER_NAME.
2496 (change_decl_assembler_name): No need to muck with the hash tables.
2497 (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2498 Delete.
2499 * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2500 for the key, not DECL_ASSEMBLER_NAME.
2501 * cgraph.h: Remove prototypes of deleted functions.
2502 * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2503 (mark_decl_referenced): New function.
2504 * tree.h: Prototype mark_decl_referenced.
2505 * final.c (output_addr_const) <case SYMBOL_REF>: Call
2506 mark_decl_referenced before assemble_name.
2507 * c-decl.c (finish_decl): Use mark_decl_referenced.
2508
3a3f4da9
AP
25092004-05-18 Andrew Pinski <pinskia@physics.uc.edu>
2510 Jeff Law <law@redhat.com>
2511
cc52902d
AP
2512 * tree-ssa-phiopt.c (abs_replacement): New function.
2513 (empty_block_p): New function extracted from...
2514 (candidate_bb_for_phi_optimization): Break out empty block test.
2515 (conditional_replacement): Use empty_block_p.
2516 (value_replacement): Similarly.
2517
3a3f4da9
AP
2518 * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2519 * tree-ssa-phiopt.c: Include flags.h.
2520 (conditional_replacement): Remove argument names from prototype.
2521 Minor formatting and comment fixes.
2522 (tree_ssa_phiopt): If conditional_replacement returns false, then
2523 call value_replacement.
2524 (value_replacement): New function.
2525
14886ab7
JL
25262004-05-18 Jeff Law <law@redhat.com>
2527
1833df5c
JL
2528 * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2529 from conditional_replacement.
2530 (candidate_bb_for_phi_optimization): Similarly.
2531 (conditional_replacement): Use replace_phi_with_stmt and
2532 candidate_bb_for_phi_optimization.
2533
14886ab7
JL
2534 * tree-ssa-phiopt.c: Fix various formatting issues.
2535
70315fcd
SB
25362004-05-18 Steven Bosscher <stevenb@suse.de>
2537
2538 * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2539 s390_expand_cmpmem): Do not use expand_start_loop and
2540 expand_end_loop, instead build the loop manually.
2541
f82ddcae
AM
25422004-05-18 Alan Modra <amodra@bigpond.net.au>
2543
2544 * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2545 (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2546
dd747311
JL
25472004-05-17 Jeff Law <law@redhat.com>
2548
2549 * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2550 * flags.h (flag_delete_null_pointer_checks): Here.
2551 * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2552 * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2553 (add_phi_arg, remove_phi_arg_num): Similarly.
2554 * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2555 property into PHI nodes.
2556 * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2557 (record_equivalences_from_phis): If all PHI arguments are known to be
2558 nonzero, then the result must be nonzero as well.
8eb14e2e
SB
2559 (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2560 (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
dd747311
JL
2561 appropriately. Walk the USE-DEF chains and propagate nonzero property
2562 as appropriate.
2563 * tree.h (PHI_ARG_NONZERO): Define.
2564 (phi_arg_d): Add nonzero flag.
2565
b4117c30
ZW
25662004-05-17 Zack Weinberg <zack@codesourcery.com>
2567
2568 * f: Entire directory removed
2569
2570 * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2571 (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2572 (g77_integer_type_node, g77_uinteger_type_node)
2573 (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2574 * c-common.c (c_common_nodes_and_builtins): Do not initialize
2575 the above set of variables.
2576
2577 * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2578 * doc/invoke.texi, doc/standards.texi: Remove cross-references
2579 to g77 manual.
2580
6944d9dd
SB
25812004-05-17 Steven Bosscher <stevenb@suse.de>
2582
5e806501 2583 PR tree-optimization/15438
6944d9dd
SB
2584 * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2585 attributed functions as pure or const.
2586
e1564e1d
FCE
25872004-05-17 Frank Ch. Eigler <fche@redhat.com>
2588
2589 * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2590 from source code with errors.
2591
a2824db3
RM
25922004-05-17 Ranjit Mathew <rmathew@hotmail.com>
2593
2594 Enable tree browser for all front ends.
2595 * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2596 (BACKEND): ...to here.
2597
2c6b27c3
JH
25982004-05-17 Jan Hubicka <jh@suse.cz>
2599
2600 * i386.c (construct_container): Do not produce BLKmode registers.
2601 (classify_argument): Properly compute alignment of complex types.
2602
044b3892
L
26032004-05-17 H.J. Lu <hongjiu.lu@intel.com>
2604
2605 PR target/15084
2606 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2607 and renamed to movdi_insv_1_rex64.
2608 (insv): Support SImode for 32bit and DImode for 64bit.
2609
646ca712
RS
26102004-05-17 Richard Sandiford <rsandifo@redhat.com>
2611
2612 * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2613 (TARGET_SWITCHES): Remove debugg.
2614 * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2615 TARGET_64BIT.
2616 (subdi3): Replace the define_expand with a define_insn, the latter
2617 renamed from subdi3_internal_3.
2618 (negdi2): Likewise negdi2_internal_2.
2619 (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2620 (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2621 and associated define_splits.
2622 (adddi3_internal): Renamed from adddi3_internal_3.
2623 (ashldi3_internal): Likewise ashldi3_internal4.
2624 (ashrdi3_internal): Likewise ashrdi3_internal4.
2625 (lshrdi3_internal): Likewise lshrdi3_internal4.
2626
d83aba0f
RS
26272004-05-17 Richard Sandiford <rsandifo@redhat.com>
2628
2629 * optabs.c (expand_unop): Try implementing negation using subtraction
2630 from zero.
2631
15581992
JDA
26322004-05-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2633
2634 * pa.md: Fix typo from last change. Remove DFmode move to and from
2635 SAR register.
2636
2a2789d8
RE
26372004-05-16 Richard Earnshaw <rearnsha@arm.com>
2638
2639 PR target/10982
2640 * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2641 (ne_zeroextractsi_shifted): New pattern.
2642 (ite_ne_zeroextractsi): New pattern.
2643 (ite_ne_zeroextractsi_shifted): New pattern.
2644
673fda6b
SB
26452004-05-15 Steven Bosscher <stevenb@suse.de>
2646
2647 * c-gimplify.c (c_genericize):
2648 Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2649 * c-parse.in <expr_no_commas>: Likewise.
2650 <if_prefix>: Likewise.
2651 <select_or_iter_stmt>: Likewise.
2652 * expr.c (expand_var, expand_expr_real_1): Likewise.
2653 * expr.h (expand_expr): Make it a static inline function.
2654 Move prototype for expand_expr_real up before this.
2655 * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2656 Likewise.
2657 * gimplify.c (gimple_boolify, gimplify_addr_expr,
2658 gimplify_asm_expr, gimplify_expr): Likewise.
2659 * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2660 dump_function_to_file): Likewise.
2661 * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2662 * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2663 * tree-into-ssa.c (dump_tree_ssa): Likewise.
2664 * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2665 Likewise.
2666 * tree-optimize.c (execute_one_pass): Likewise.
2667 * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2668 * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2669
2670 * objc/objc-act.c (objc_build_try_enter_fragment,
2671 objc_build_try_epilogue, objc_build_catch_stmt,
2672 objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2673 with lang_hooks.foo ().
2674
e2bb53e5
RS
26752004-05-15 Roger Sayle <roger@eyesopen.com>
2676
2677 * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2678 that simplify_builtin doesn't destructively modify its argument.
2679
dc491742
RE
26802004-05-15 Richard Earnshaw <reanrsha@arm.com>
2681
b4117c30 2682 * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
dc491742
RE
2683 implementations for ARM and Thumb.
2684 * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2685
428d4d76
TQ
26862004-05-15 Thomas Quinot <quinot@act-europe.fr>
2687
2688 * prefix.c (update_path): Replace PREFIX with KEY only
2689 when it matches a full directory name in PATH.
2690
61f0ccff
RE
26912004-05-15 Richard Earnshaw <reanrsha@arm.com>
2692
2693 * arm.h (TARGET_APCS_32): Delete.
2694 (TARGET_MMU_TRAPS): Delete.
2695 (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never
2696 define __APCS_26__.
2697 (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2698 (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2699 (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2700 (prog_mode_type): Delete.
2701 (PROMOTE_MODE): Always promote unsigned for HImode.
2702 (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2703 (MASK_RETURN_ADDR): Simplify.
2704 * arm.c (arm_prgmode): Delete.
2705 (arm_override_options, arm_gen_rotated_half_load): Simplify.
2706 (print_multi_reg, output_return_instruction): Simplify.
2707 (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2708 (arm_return_addr): Simplify.
2709 * arm.md (prog_mode): Delete.
2710 (conds): Simplify.
2711 (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2712 (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2713 (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2714 (loadhi_shiftpredec): Delete.
2715 (peephole for post-increment on HImode load): Delete.
2716 * arm/crtn.asm: (FUNC_END): Simplify.
2717 * arm/lib1funcs.asm: Remove APCS-26 return macros.
2718 * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
b4117c30 2719 * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
61f0ccff
RE
2720 * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2721 MULTILIB_DEFAULTS as required.
2722 * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2723 * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2724 variables as required.
2725 * doc/invoke.texi (ARM Options): Remove obsolete flags.
2726
11c01dcc
AM
27272004-05-15 Alan Modra <amodra@bigpond.net.au>
2728
2729 * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2730 UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg
2731 count to 8 to handle n_reg > 2.
2732
aaa67502
JM
27332004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
2734
2735 * doc/extend.texi: Update WG14 URL.
2736
827c06b6
SB
27372004-05-15 Steven Bosscher <stevenb@suse.de>
2738
2739 * basic-block.h (life_analysis, delete_noop_moves):
2740 Update prototypes.
2741 * bt-load.c (branch_target_load_optimize): Don't take the
2742 insns stream as an argument. Update the life_analysis calls.
2743 * combine.c (combine_instructions): Update delete_noop_moves
2744 calls.
2745 * flow.c (notice_stack_pointer_modification): Don't take the
2746 insns stream as an argument. Work on the flow graph.
2747 (life_analysis): Likewise.
2748 (delete_noop_moves): Likewise.
2749 * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2750 (rest_of_handle_life): Update life_analysis call.
2751 (rest_of_compilation): Likewise, and also update
2752 branch_target_load_optimize call.
2753 * ra.c (reg_alloc): Update life_analysis call.
2754 * reg-stack.c (reg_to_stack): Likewise. Also, don't take
2755 the insns stream as an argument.
2756 * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2757 call.
2758 * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2759 prototypes.
2760 * value-profile.c (branch_prob): Update life_analysis call.
2761 * web.c (web_main): Work on the CFG, not on the insns stream.
2762
2763 * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2764 * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2765 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2766
e9a75776
JM
27672004-05-15 Joseph S. Myers <jsm@polyomino.org.uk>
2768
2769 PR c/15444
2770 * c-format.c (avoid_dollar_number): New function.
2771 (check_format_info_main): Call avoid_dollar_number when operand
2772 numbers might occur but has_operand_number == 0.
2773
3053b100
RE
27742004-05-14 Richard Earnshaw <rearnsha@arm.com>
2775
2776 * arm.md (all peephole2 patterns): Use predicates that validate
2777 register classes as appropriate.
2778
b89e96ac
SB
27792004-05-14 Steven Bosscher <stevenb@suse.de>
2780
2781 PR opt/14472
2782 * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2783 ignore type conversions that do not inhibit tail calling.
2784 (find_tail_calls): Likewise.
2785
14bc8dc2
JL
27862004-05-14 Jeff Law <law@redhat.com>
2787
91cde0c3
JL
2788 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2789 bother marking bypassed virtuals for out-of-ssa. Instead merge
827c06b6 2790 bypassed virtuals into vars_to_rename just before into-ssa pass.
91cde0c3 2791
14bc8dc2
JL
2792 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2793 so that it picks up more opportunities to eliminate ABS expressions
2794 or turn them into negations.
2795
e83f4801
SB
27962004-05-14 Steven Bosscher <stevenb@suse.de>
2797
2798 * passes.c (rest_of_handle_null_pointer): Remove.
2799 (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2800 (rest_of_compilation): Likewise.
2801 * rtl.h (delete_null_pointer_checks): Remove prototype.
2802 * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2803 Remove declarations.
2804 (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2805 compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2806 free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2807 expr_reaches_here_p, computing_insn, def_reaches_here_p,
2808 can_disregard_other_sets, handle_avail_expr, classic_gcse,
2809 one_classic_gcse_pass, invalidate_nonnull_info,
2810 delete_null_pointer_checks_1, delete_null_pointer_checks,
2811 expr_reached_here_p_work): Remove.
2812 (gcse_main): Do not perform classic GCSE when optimizing for size.
2813 (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2814 are never used.
2815
571325db
AP
28162004-05-14 Andrew Pinski <pinskia@physics.uc.edu>
2817
2818 PR optimization/14466
2819 * tree-complex.c (make_temp): Remove.
2820 (gimplify_val): Replace make_temp with make_rename_temp
2821 and add NULL as the second argument.
2822 (expand_complex_div_wide): Likewise.
2823 * tree-dfa.c (make_rename_temp): New function.
2824 * tree-flow.h (make_rename_temp): Declare.
2825 * tree-sra.c (make_temp): Remove.
2826 (lookup_scalar): Replace make_temp with make_rename_temp.
2827 (create_scalar_copies): Likewise.
2828 * tree-ssa-phiopt.c (conditional_replacement): When we
2829 get non gimple create a temporary variable to hold the
2830 casted expression.
2831
13c1cd82
PB
28322004-05-14 Paul Brook <paul@codesourcery.com>
2833
2834 * stor-layout.c (update_alignment_for_field): Use
2835 targetm.align_anon_bitfield.
2836 * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2837 (TARGET_INITIALIZER): Use it.
2838 * target.h (struct gcc_target): Add align_anon_bitfield.
2839 * config/arm/arm.c (arm_align_anon_bitfield): New function.
2840 (TARGET_ALIGN_ANON_BITFIELD): Define.
2841 * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2842
90afe2c9
ZW
28432004-05-13 Zack Weinberg <zack@codesourcery.com>
2844
2845 * tree.def (documentation): Remove mention of class 'b'.
2846 (BLOCK): Now in class 'x'.
2847 * c-common.c (verify_tree): Remove case 'b'.
2848 * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2849 * calls.c (calls_function_1): Control cannot get past the switch
2850 when exp is a BLOCK.
2851 * print-tree.c (print_node): Move code for class 'b' to the class
2852 'c'/'x' switch, as case BLOCK.
2853 * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2854 (unsafe_for_reeval, substitute_placeholder_in_expr)
2855 (stabilize_reference_1): Remove case 'b'.
2856 * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2857 of something being 'b' to tests for TREE_CODE of something being
2858 BLOCK.
2859 * tree-ssa-operands.c (get_expr_operands): Likewise.
2860
eadf906f
DN
28612004-05-13 Diego Novillo <dnovillo@redhat.com>
2862
2863 * tree-gimple.c: Rename from tree-simple.c.
2864 * tree-gimple.h: Rename from tree-simple.h.
2865 * c-gimplify.c: Rename from c-simplify.c
2866 * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2867 langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2868 tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2869 tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2870 tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2871 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2872 tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2873 Update.
2874
fc55c95e
RM
28752004-05-14 Ranjit Mathew <rmathew@hotmail.com>
2876
2877 * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2878
2b648957
AP
28792004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
2880
6b9bee8e
AP
2881 * tree-ssa.c (delete_tree_ssa): XFREE
2882 bitmaps allocated with BITMAP_XMALLOC.
2883
15342341
AP
2884 * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2885 idfs_cache at the end of the function.
2886
2887 * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
623f4556
AP
2888 at the end of the function.
2889
960076d9
AP
2890 * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2891 el at the end of the function.
2892
8b752086
AP
2893 * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2894 bitmaps allocated with BITMAP_XMALLOC.
2895
77e23325
AP
2896 * loop-unswitch.c (unswitch_single_loop): Free bbs at
2897 the end.
2898
07a1f795
AP
2899 * final.c (shorten_branches): Free uid_shuid before
2900 reallocating it.
2901
2b648957
AP
2902 * bb-reoder.c (connect_traces): Free cold_traces at the end.
2903
91581bcc
JL
29042004-05-13 Jeff Law <law@redhat.com>
2905
02ea8d06
JL
2906 * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2907 variables. Simplify slightly by using USE_OP/DEF_OP instead
2908 of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2909
6c875a31
JL
2910 * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2911 rather than iterating through the blocks testing each bit in
2912 livein to initialize the worklist.
2913 (mark_def_sites): Remove useless checks of KILLS for virtual
2914 operands.
2915
91581bcc
JL
2916 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2917 new parameters for the statement and variable worklist as well
2918 as a bitmap of interesting SSA_NAMEs. Walk over the statement
2919 worklist recording interesting variables in the variable worklist
2920 and bitmap. Handle casts between integral and boolean types.
2921 (substitute_single_use_vars): Accept new parameters for the statement
2922 and variable worklist. When a substitution is made add a new
2923 entry to the statement worklist. Handle casts between integral
2924 and boolean types.
2925 (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2926 worklists to children. Iterate until the statement worklist
2927 is empty.
2928
0b87eff5
AP
29292004-05-13 Andrew Pinski <pinskia@physics.uc.edu>
2930
520f0c48
AP
2931 * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
2932 the end of the block.
2933
f472590a
AP
2934 * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
2935 with BITMAP_XMALLOC.
2936
d1f9044b
AP
2937 * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
2938 with BITMAP_XMALLOC.
2939
cfa4cb00
AP
2940 * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2941 Free nonzero_vars at the end of the function.
2942
0b87eff5
AP
2943 * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
2944 need to generate code instead of a NOP_EXPR.
2945
eb18fd8d
ILT
29462004-05-13 Ian Lance Taylor <ian@wasabisystems.com>
2947
2948 * gcc.c (default_compilers): Fill out initializers for new Fortran
2949 entries.
2950
d81d0bdd
PB
29512004-05-13 Paul Brook <paul@codesourcery.com>
2952
2953 * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
2954
6b045785
PB
29552004-05-13 Paul Brook <paul@codesourcery.com>
2956
2957 * config/arm/arm.c (arm_default_short_enums): New function.
2958 (TARGET_DEFAULT_SHORT_ENUMS): Define.
2959
6de9cd9a
DN
29602004-05-13 Diego Novillo <dnovillo@redhat.com>
2961
2962 Merge from tree-ssa-20020619-branch.
2963
2964 * Makefile.in (reload1.o-warn): Add.
2965 (tree-alias-ander.o-warn): Add.
2966 (GMPLIBS): Define.
2967 (GMPINC): Define.
2968 (BANSHEELIB): Define.
2969 (BANSHEEINC): Define.
2970 (TREE_DUMP_H): Define.
2971 (TREE_SIMPLE_H): Define.
2972 (TREE_FLOW_H): Define.
2973 (LIBDEPS): Add BANSHEELIB.
2974 (INCLUDES): Add BANSHEEINC and GMPINC.
2975 (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
2976 c-mudflap.o and c-pretty-print.o.
2977 (C_OBJS): Remove c-pretty-print.o.
2978 (OBJS-common): Remove sibcall.o.
2979 Add tree-cfg.o, tree-dfa.o, tree-eh.o,
2980 tree-ssa.o, tree-optimize.o, tree-simple.o,
2981 tree-alias-type.o, gimplify.o, tree-pretty-print.o,
2982 tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
2983 tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
2984 tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
2985 tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
2986 tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
2987 tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
2988 tree-tailcall.o, gimple-low.o, tree-iterator.o,
2989 tree-phinodes.o, tree-ssanames.o, tree-sra.o,
2990 tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
2991 tree-profile.o.
2992 (OBJC-archive): Add tree-nomudflap.o.
2993 (cc1): Add dependency on @TREEBROWSER@.
2994 (c-decl.o): Add dependency on TREE_DUMP_H.
2995 (c-dump.o): Likewise.
2996 (c-common.o): Add dependency on tree-iterator.h
2997 (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
2998 (gtype-desc.o): Add dependency on TREE_FLOW_H.
2999 (tree.o): Add dependency on tree-iterator.h,
3000 BASIC_BLOCK_H and TREE_FLOW_H.
3001 (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3002 (langhooks.o): Add dependency on TREE_SIMPLE_H.
3003 (tree-alias-type.o, tree-alias-ander.o,
3004 tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3005 tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3006 tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3007 tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3008 domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3009 tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3010 tree-nested.o, tree-iterator.o, tree-dfa.o,
3011 tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3012 tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3013 gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3014 tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3015 tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3016 tree-sra.o, tree-complex.o, tree-profile.o,
3017 rtl-profile.o): New rules.
3018 (function.o): Add dependency on basic-block.h
3019 (expr.o): Add dependency on tree-iterator.h.
3020 (sibcall.o): Remove.
3021 (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3022 (cfg.o): Add dependency on TIMEVAR_H.
3023 (cfghooks.o): Add dependency on TREE_FLOW_H.
3024 (reg-stack.o): Add dependency on basic-block.h.
3025 (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3026 c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3027 tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3028 tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3029 tree-alias-type.h, tree-alias-common.h,
3030 tree-alias-type.c, tree-alias-common.c,
3031 tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3032 rtl-profile.c and tree-nested.c.
3033 (gt-tree-alias-common.h, gt-tree-mudflap.h,
3034 gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3035 gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3036 gt-tree-cfg.h, gt-tree-nested.h): New rules.
3037 (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3038 * basic-block.h: Include predict.h
3039 (struct edge_def): Add GTY marker.
3040 Change field 'insns' to be a union of tree and rtx.
3041 (EDGE_TRUE_VALUE): Define.
3042 (EDGE_FALSE_VALUE): Define.
3043 (EDGE_EXECUTABLE): Define.
3044 (struct bb_ann_d): Forward declare.
3045 (struct basic_block_def): Add GTY marker.
3046 Remove fields head_tree and end_tree.
3047 Add fields stmt_list, rbi and tree_annotations.
3048 (struct reorder_block_def): Define.
3049 (basic_block_info): Add GTY marker.
3050 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3051 variables instead of macros.
3052 (flow_call_edges_add): Remove declaration.
3053 (make_eh_edge): Remove declaration.
3054 (brief_dump_cfg, find_edge, tree_predicted_by_p,
3055 rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3056 predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3057 cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3058 alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3059 (try_redirect_by_replacing_jump): Modfiy return type to
3060 edge instead of bool.
3061 * bb-reorder.c (copy_bb): Call duplicate_block
3062 instead of cfg_layout_duplicate_bb.
3063 (copy_bb_p): Call can_duplicate_block_p instead of
3064 cfg_layout_can_duplicate_bb_p.
3065 * bitmap.c (bitmap_first_set_bit): Abort if word
3066 wasn't found.
3067 (bitmap_last_set_bit): Likewise.
3068 * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3069 (DEF_FUNCTION_TYPE_3): Add.
3070 * builtins.c (c_strlen): Make extern.
3071 (builtin_save_expr): New.
3072 (expand_builtin_nonlocal_goto): New.
3073 (expand_builtin_constant_p): Remove.
3074 (expand_builtin_mathfn): Call builtin_save_expr instead
3075 of save_expr.
3076 (expand_builtin_mathfn_2): Likewise.
3077 (expand_builtin_strcmp): Likewise.
3078 (expand_builtin_strncmp): Likewise.
3079 (expand_builtin_strcat): Likewise.
3080 (fold_builtin_cabs): Likewise.
3081 (expand_builtin_alloca): Don't trigger if -fmudflap is
3082 given.
3083 (build_string_literal): Set TREE_INVARIANT on new node.
3084 (expand_builtin_profile_fun): New.
3085 (round_trampoline_addr): New.
3086 (expand_builtin_init_trampoline): New.
3087 (expand_builtin_adjust_trampoline): New.
3088 (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3089 <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3090 <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3091 BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3092 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3093 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3094 Handle.
3095 (fold_builtin_expect): New.
3096 (fold_builtin_isascii): Don't return non-constant results
3097 in GIMPLE form.
3098 (fold_builtin_isdigit): Likewise.
3099 (fold_builtin_1): New.
3100 (fold_builtin): Call it.
3101 (build_function_call_expr): Update call to build a new
3102 CALL_EXPR.
3103 (purge_builtin_constant_p): Remove.
3104 (simplify_builtin, simplify_builtin_memcmp,
3105 simplify_builtin_strcmp, simplify_builtin_strncmp,
3106 simplify_builtin_strpbrk, simplify_builtin_strstr,
3107 simplify_builtin_strchr, simplify_builtin_strrchr,
3108 simplify_builtin_strcat, simplify_builtin_strncat,
3109 simplify_builtin_strspn, simplify_builtin_strcspn,
3110 simplify_builtin_next_arg, simplify_builtin_va_start,
3111 simplify_builtin_sprintf): New.
3112 * builtins.def (BUILT_IN_STACK_ALLOC,
3113 BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3114 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3115 BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3116 BUILT_IN_PROFILE_FUNC_EXIT): Define.
3117 * c-common.c: Include tree-iterator.h and hashtab.h.
3118 (lang_statement_code_p): Declare.
3119 (lang_gimplify_stmt): Declare.
3120 (fix_string_type): Set TREE_INVARIANT for value.
3121 (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3122 (c_type_hash): New.
3123 (c_common_get_alias_set): Handle multiple type nodes
3124 referring to "the same" type, currently for C90 only.
3125 (c_add_case_label): Use create_artificial_label.
3126 (finish_label_address_expr): Don't set TREE_CONSTANT on
3127 result.
3128 (c_expand_expr): Don't handle STMT_EXPR.
3129 (handle_alias_attribute): Marke aliased variables to be
3130 TREE_STATIC.
3131 (handle_nonnull_attribute): Initialize arg_num.
3132 (check_function_nonnull): Likewise.
3133 (c_walk_subtrees): New.
3134 (c_estimate_num_insns_1): Don't handle
3135 EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3136 (c_decl_uninit_1): Remove.
3137 (c_decl_uninit): Remove.
3138 (c_warn_unused_result): New.
3139 * c-common.def (ASM_STMT): Change number of operands
3140 to 4.
3141 (FILE_STMT): Remove.
3142 * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3143 Remove.
3144 (lang_gimplify_stmt): Add.
3145 (expand_stmt): Remove.
3146 (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3147 ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3148 ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3149 FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3150 ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3151 (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3152 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3153 genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3154 genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3155 genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3156 genrtl_compound_stmt, genrtl_asm_stmt,
3157 genrtl_cleanup_stmt, c_decl_uninit): Remove.
3158 (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3159 c_tree_chain_matters_p, c_warn_unused_result,
3160 c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3161 Declare.
3162 * c-convert.c (convert): Make convert work when
3163 converting to compatible types across translation unit.
3164 * c-decl.c: Include langhooks.h, tree-mudflap.h,
3165 tree-simple.h, diagnostic.h and tree-dump.h
3166 (merge_decls): Initialize oldtype to NULL.
3167 (finish_decl): Use DECL_HARD_REGISTER instead of
3168 DECL_C_HARD_REGISTER.
3169 (check_bitfield_type_and_width): Check for null
3170 lang_type_specific when check the precision of an enum.
3171 (grokdeclarator): Immediately layout an ARRAY_TYPE used
3172 in a pointer-to-array declarator.
3173 (finish_struct): Clear allocated struct lang_type.
3174 (finish_enum): Set enum_min and enum_max. Set
3175 TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3176 not to the enumerators.
3177 (set_decl_nonlocal): New.
3178 (store_parm_decls): Use it via walk_tree.
3179 (c_finalize): New.
3180 (finish_function): When !targetm.have_ctors_dtors,
3181 record static constructors and destructors here...
3182 (c_expand_body_1): ... not here.
3183 (c_expand_decl): Rename from c_expand_decl_stmt.
3184 Handle all C-specific expansion semantics.
3185 * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3186 STMT_LINENO.
3187 * c-format.c (handle_format_arg_attribute): Initialize
3188 format_num.
3189 * c-lang.c: Include tree-inline.h
3190 (LANG_HOOKS_EXPAND_DECL,
3191 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3192 LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3193 LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3194 LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3195 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3196 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3197 (c_types_compatible_p): New.
3198 * c-mudflap.c: New file.
3199 * c-objc-common.c: Include tree-mudflap.h
3200 (start_cdtor, finish_cdtor): Collapse
3201 together into
3202 (build_cdtor): ...here. Update to construct a complete tree
3203 for the function. No need to call push_scope, pop_scope, or
3204 clear_last_expr, or set current_function_cannot_inline.
3205 (c_missing_noreturn_ok_p): Change prototype to return
3206 bool.
3207 (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3208 * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3209 opts.c.
3210 (c_common_post_options): Don't ever use rtl inlining.
3211 * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3212 * c-pragma.c (handle_pragma_redefine_extname): Define
3213 always.
3214 (init_pragma): Activate #pragma redefine_extname for mudflap.
3215 * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3216 (pp_c_initializer): Accept any type CONSTRUCTOR.
3217 (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3218 COMPLEX_TYPE.
3219 (decl_name_str): New local function.
3220 (pp_c_direct_declarator): Call it.
3221 (pp_c_primary_expression): Call it.
3222 (pp_c_id_expression): Call it.
3223 (pp_c_statement): Call it.
3224 (print_c_tree): Create new pp object.
3225 * c-pretty-print.h (pp_c_tree_decl_identifier,
3226 print_c_tree): Declare.
3227 * c-semantics.c: Include langhooks.h
3228 (lang_expand_stmt, lang_expand_decl_stmt,
3229 find_reachable_label_1, find_reachable_label,
3230 expand_unreachable_if_stmt, expand_unreachable_stmt,
3231 genrtl_do_stmt_1): Remove.
3232 (begin_stmt_tree): Don't check for changed filename.
3233 Call annotate_with_locus.
3234 (finish_stmt_tree): Don't set line for end of function.
3235 (build_stmt): Don't check type nodes for
3236 side effects.
3237 (build_stmt): Set TREE_SIDE_EFFECTS.
3238 Set EXPR_LOCUS instead of STMT_LINENO.
3239 (lang_expand_stmt, lang_expand_decl_stmt,
3240 expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3241 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3242 genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3243 genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3244 genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3245 genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3246 genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3247 find_reachable_label_1, expand_unreachable_if_stmt,
3248 expand_unreachable_stmt): Remove.
3249 (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3250 * c-simplify.c: New file.
3251 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3252 (struct lang_type): Add fields enum_min and enum_max.
3253 (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3254 (c_expand_decl, c_missing_noreturn_ok_p,
3255 c_types_compatible_p): Declare.
3256 * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3257 compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3258 (default_function_array_conversion): Rely on build to
3259 set TREE_CONSTANT.
3260 (parser_build_binary_op, pointer_diff): Likewise.
3261 (build_unary_op, build_binary_op): Likewise.
3262 (build_array_ref):
3263 (build_external_ref): Set TREE_INVARIANT.
3264 (build_c_cast, pop_init_level): Likewise.
3265 (process_init_element): Use ASM_VOLATILE_P.
3266 (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3267 (c_finish_case): Call c_do_switch_warnings.
3268 * c.opt (fdump-): Remove.
3269 * calls.c (try_to_integrate): Remove.
3270 (prepare_call_address): Replace fndecl arg with a
3271 precomputed static chain value.
3272 (emit_call_1): New argument for full call expr.
3273 (flags_from_decl_or_type): Call special_function_p.
3274 (initialize_argument_information): Add argument
3275 may_tailcall.
3276 (purge_reg_equiv_notes): New.
3277 (expand_call): Do not try to expand calls inline.
3278 (fixup_tail_calls): New.
3279 * cfg.c: Include timevar.h and ggc.h.
3280 (bb_pool, edge_pool): Remove.
3281 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3282 (entry_exit_blocks): Remove.
3283 (rbi_pool): Declare.
3284 (init_flow): Do not create pools.
3285 Allocate entry/exit block.
3286 (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3287 (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3288 (unlink_block): Clear b->prev_bb and b->next_bb.
3289 (compact_blocks): Clear all slots of BASIC_BLOCK array.
3290 (dump_flow_info): Work on trees too.
3291 (dump_cfg_bb_info): New.
3292 (brief_dump_cfg): New.
3293 * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3294 (find_edge): New.
3295 * cfgbuild.c (rtl_make_eh_edge): Rename from
3296 make_eh_edge. Update all users.
3297 (find_basic_blocks): Don't call VARRAY_FREE on
3298 basic_block_info.
3299 * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3300 and newpos2.
3301 (delete_unreachable_blocks): Return changed status.
3302 (merge_seq_blocks): New.
3303 * cfghooks.c: Include tree-flow.h
3304 (tree_register_cfg_hooks, ir_type): New.
3305 (redirect_edge_and_branch): Change return type to edge.
3306 (predict_edge, predicted_by_p, can_duplicate_block_p,
3307 duplicate_block, block_ends_with_call_p,
3308 block_ends_with_condjump_p, flow_call_edges_add): New.
3309 * cfghooks.h (redirect_edge_and_branch): Change return
3310 type to edge.
3311 (predict_edge, predicted_by_p, can_duplicate_block_p,
3312 duplicate_block, block_ends_with_call_p,
3313 block_ends_with_condjump_p, flow_call_edges_add): Declare.
3314 (redirect_edge_and_branch): Change return type to edge.
3315 (struct cfg_hooks): Add fields block_ends_with_call_p,
3316 block_ends_with_condjump_p, flow_call_edges_add,
3317 predict_edge, predicted_by_p, can_duplicate_block_p and
3318 duplicate_block.
3319 (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3320 * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3321 (fixup_reorder_chain): Use initialize_bb_rbi.
3322 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3323 (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3324 (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3325 (insn_locators_initialize): Use new info about blocks.
3326 * cfglayout.h (typedef struct reorder_block_def): Moved to
3327 basic_block.h.
3328 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3329 removed.
3330 * cfgloop.c: Include tree.h and tree-flow.h.
3331 * cfgloop.h (create_loop_notes): Declare.
3332 * cfgloopmanip.c (create_loop_notes): New.
3333 * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3334 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3335 and duplicate_block fields.
3336 (create_basic_block_structure): Don't look at
3337 RTX_INTEGRATED_P.
3338 (rtl_block_ends_with_call_p): New.
3339 (rtl_block_ends_with_condjump_p): New.
3340 (need_fake_edge_p): Moved from cfganal.c.
3341 (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3342 (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3343 rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3344 (cfg_layout_rtl_cfg_hooks): Ditto.
3345 * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3346 functions to be reachable.
3347 * cgraphunit.c (decide_is_function_needed):
3348 * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3349 inline functions don't need to be output.
3350 (cgraph_assemble_pending_functions): Don't do anything
3351 special for nested functions.
3352 (cgraph_mark_functions_to_output): Likewise.
3353 (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3354 (cgraph_analyze_function): Use estimate_num_insns.
3355 (cgraph_mark_functions_to_output): Likewise.
3356 (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3357 (cgraph_expand_function): Allow functions to not be
3358 emitted.
3359 (cgraph_remove_unreachable_nodes):
3360 (cgraph_recursive_inlining_p): Simplify.
3361 (lookup_recursive_calls,
3362 cgraph_decide_recursive_inlining): New.
3363 (cgraph_decide_inlining_*): Update calls of
3364 cgraph_mark_inline.
3365 * combine.c (get_pos_from_mask): Always set *plen.
3366 * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3367 ftree-based-profiling, ftree-ccp, ftree-ch,
3368 ftree-combine-temps, ftree-copyrename, ftree-dce,
3369 ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3370 ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3371 ftree-lrs): Add.
3372 * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3373 Undefine.
3374 * configure.ac: Add --enable-tree-browser option.
3375 Add --with-libbanshee option.
3376 Add GMPLIBS and GMPINC.
3377 * configure: Regenerate.
3378 * coverage.c (tree_ctr_tables): New.
3379 (coverage_counter_alloc): Use it.
3380 (build_ctr_info_value): Ditto.
3381 (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref.
3382 (tree_coverage_counter_ref): New.
3383 * coverage.h (coverage_counter_ref): Remove declaration.
3384 (rtl_coverage_counter_ref): Declare.
3385 (tree_coverage_counter_ref): Declare.
3386 * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3387 (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3388 * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3389 (struct cse_basic_block_data): Rename enum values to not
3390 conflict with profile.h; update all uses.
3391 * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3392 in comments.
3393 * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3394 * diagnostic.h (debug_output_buffer, dump_generic_node,
3395 print_generic_stmt, print_generic_stmt_indented,
3396 print_generic_expr, print_generic_decl,
3397 debug_generic_expr, debug_generic_stmt, debug_c_tree):
3398 Declare.
3399 * dominance.c: Cache immediate dominators.
3400 * domwalk.c: New file.
3401 * domwalk.h: New file.
3402 * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3403 (gen_subprogram_die): Generate a DIE for a named
3404 return value.
3405 (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3406 (add_location_or_const_value_attribute): Likewise.
3407 (add_bound_info): Likewise.
3408 (gen_decl_die): Likewise.
3409 * emit-rtl.c (maybe_set_first_label_num): New.
3410 (copy_most_rtx): Don't copy the integrated flag.
3411 Copy the new return_val flag.
3412 * et-forest.c (MAX_NODES): Define.
3413 (record_path_before_1): Abort if len is greater than
3414 MAX_NODES.
3415 * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3416 gen_eh_region_catch, gen_eh_region_allowed,
3417 gen_eh_region_must_not_throw, get_eh_region_number,
3418 get_eh_region_may_contain_throw, get_eh_region_tree_label,
3419 set_eh_region_tree_label, expand_resx_expr): New.
3420 (expand_eh_region_start, expand_start_catch): Use them.
3421 (expand_end_catch): Tidy.
3422 (note_eh_region_may_contain_throw): Take region argument.
3423 (note_current_region_may_contain_throw): New.
3424 (get_exception_filter): Export.
3425 (collect_eh_region_array): Export.
3426 (remove_unreachable_regions): Check ERT_TRY based on reachability
3427 of catches, not reachability of continue_label. Never remove
3428 ERT_MUST_NOT_THROW regions.
3429 (collect_rtl_labels_from_trees): New.
3430 (convert_from_eh_region_ranges): Use it.
3431 (connect_post_landing_pads): Handle dying cleanups.
3432 (struct reachable_info): Add callback data.
3433 (add_reachable_handler): Invoke the callback.
3434 (foreach_reachable_handler): New.
3435 (reachable_handlers): Use it.
3436 (arh_to_landing_pad, arh_to_label): New.
3437 (can_throw_internal_1): Split out from can_throw_internal.
3438 (can_throw_external_1): Similarly.
3439 * except.h: Update.
3440 * explow.c (emit_stack_save): Remove savearea mode check.
3441 (update_nonlocal_goto_save_area): New.
3442 (allocate_dynamic_stack_space): Use it.
3443 (probe_stack_range): Never emit loop notes.
3444 * expmed.c (extract_fixed_bit_field): Always propagate the
3445 target for the shift if it is a REG.
3446 * expr.c: Include tree-iterator.h
3447 (is_zeros_p): Remove.
3448 (categorize_ctor_elements_1, categorize_ctor_elements): New.
3449 (count_type_elements): New.
3450 (mostly_zeros_p): Use them.
3451 (expr_wfl_stack): Remove.
3452 (convert_move): Do nothing if to and from are the same.
3453 (emit_block_move_via_loop): Don't emit LOOP notes.
3454 (emit_move_insn): Don't handle CONSTANT_P_RTX.
3455 (emit_move_insn_1): Don't generate inline warnings.
3456 (expand_vars, expand_var): Split from ...
3457 (expand_expr_1): ... here.
3458 (expand_expr_real, expand_expr_real_1): Use new macros
3459 EXPR_LOCATION and EXPR_HAS_LOCATION.
3460 * expr.h (simplify_builtin_fputs,
3461 simplify_builtin_strcpy, simplify_builtin_strncpy,
3462 expand_var, fixup_tail_calls,
3463 update_nonlocal_goto_save_area): Declare.
3464 (lookup_static_chain, expand_inline_function,
3465 mark_seen_cases): Remove.
3466 (prepare_call_address): Change type of 2nd argument to
3467 rtx.
3468 * final.c (profile_function): Update static chain test.
3469 (final): Don't look at RTX_INTEGRATED_P.
3470 * flags.h (flag_mudflap, flag_mudflap_threads,
3471 flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3472 flag_tree_dce, flag_tree_combine_temps,
3473 flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3474 flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3475 flag_tree_points_to): Declare.
3476 (enum pta_type): Declare.
3477 * flow.c (lang_missing_noreturn_ok_p): Remove.
3478 (check_function_return_warnings): Remove.
3479 (update_life_info): Update comments.
3480 (free_basic_block_vars): Don't call VARRAY_FREE for
3481 basic_block_info.
3482 (regno_uninitialized): Remove.
3483 * fold-const.c (int_const_binop): Make extern.
3484 (non_lvalue): Rely on build to set TREE_CONSTANT.
3485 (operand_equal_p): Replace only_const argument with
3486 flags. Allow pure functions if OEP_PURE_SAME.
3487 (fold): Use OEP_ONLY_CONST.
3488 (invert_truthvalue) <NOP_EXPR> Break if argument is of
3489 boolean type.
3490 (fold_relational_hi_lo,
3491 nondestructive_fold_binary_to_constant,
3492 nondestructive_fold_unary_to_constant,
3493 fold_read_from_constant_string): New.
3494 * function.c (struct function): Remove calls_constant_p.
3495 (current_function_calls_constant_p): Remove.
3496 (inline_function_decl): Remove.
3497 (put_var_into_stack): Don't use it.
3498 (fix_lexical_addr): Likewise.
3499 (inline_function_decl): Remove extern declaration.
3500 (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3501 (trampolines_created): Move to varasm.c.
3502 (free_after_compilation): Update for removed fields.
3503 (allocate_struct_function): Likewise.
3504 (delete_handlers, lookup_static_chain): Remove.
3505 (fix_lexical_addr): Don't consider non-local variable refs.
3506 (trampoline_address): Remove.
3507 (round_trampoline_addr): Move to builtins.c.
3508 (adjust_trampoline_addr): Remove.
3509 (expand_function_start): Update for changes to static chain
3510 and nonlocal goto handling.
3511 (initial_trampoline): Move to varasm.c.
3512 (expand_function_end): Don't build trampolines or kill
3513 unreferenced nonlocal goto labels.
3514 (free_after_compilation): Don't set it.
3515 (expand_function_end): Likewise.
3516 (setjmp_vars_warning): Rename from
3517 uninitialized_vars_warning, remove uninitialized vars warning.
3518 (uninitialized_vars_warning): Remove old comment
3519 and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3520 and do not call the langhook.
3521 (expand_function_start, expand_function_end): Don't do
3522 function instrumentation here.
3523 (clear_block_marks): Rename from reorder_blocks_0, export.
3524 (blocks_nreverse): Export.
3525 (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3526 of rtl.
3527 (reset_block_changes, record_block_change, finalize_block_changes,
3528 check_block_change, free_block_changes): New functions.
3529 (assign_parms): Setting of current_function_stdarg
3530 moved ...
3531 (allocate_struct_function): ... here.
3532 * function.h (struct function): Remove x_nonlocal_labels,
3533 x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3534 x_context_display, x_trampoline_list, needs_context.
3535 Add static_chain_decl, nonlocal_goto_save_area.
3536 (struct function): Remove x_clobber_return_insn.
3537 Add tail_call_emit field, last_label_uid,
3538 unexpanded_var_list, dont_emit_block_notes,
3539 ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3540 (clear_block_marks): Declare.
3541 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3542 (mfwrap_spec, mflib_spec): Declare.
3543 (cpp_unique_options, cc1_options): Ditto.
3544 (default_compilers): Add .F and .f90.
3545 (static_specs): Add mfwrap and mflib.
3546 * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3547 CONSTANT_RTX_P.
3548 (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3549 Update to match insns field in struct edge_def.
3550 * gdbinit.in (pgs, pge): Define.
3551 * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3552 instead of the integrated flag.
3553 * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3554 * gengtype-yacc.y (bitfieldlen): Add empty action.
3555 (struct_fields): Accept unnamed bitfields.
3556 (bitfieldlen): Split from ...
3557 (bitfieldopt): ... here.
3558 * gengtype.c (ifiles): Add tree-alias-type.h and
3559 tree-flow.h.
3560 * genrecog.c (validate_pattern): Do not handle
3561 CONSTANT_P_RTX.
3562 * gimple-low.c: New file.
3563 * gimplify.c: New file.
3564 * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3565 (restore_line_notes): Do not set RTX_INTEGRATED_P.
3566 * ifcvt.c (dead_or_predicable): Initialize local variable
3567 'earliest'.
3568 * input.h (expr_wfl_stack): Remove.
3569 * integrate.c (INTEGRATE_THRESHOLD): Remove.
3570 (setup_initial_hard_reg_value_integration): Likewise.
3571 (initialize_for_inline): Likewise.
3572 (note_modified_parmregs): Likewise.
3573 (integrate_parm_decls): Likewise.
3574 (process_reg_param): Likewise.
3575 (save_parm_insns): Likewise.
3576 (copy_insn_list): Likewise.
3577 (copy_insn_notes): Likewise.
3578 (compare_blocks): Likewise.
3579 (find_block): Likewise.
3580 (inlining): Likewise.
3581 (function_cannot_inline_p): Likewise.
3582 (parmdecl_map): Likewise.
3583 (in_nonparam_insns): Likewise.
3584 (save_for_inline): Likewise.
3585 (FIXED_BASE_PLUS): Likewise.
3586 (expand_inline_function): Likewise.
3587 (copy_rtx_and_substitute): Don't look at map->integrating,
3588 map->inline_target, and inlining, since we are never copying
3589 for integrating.
3590 Don't abort on RTX_INTEGRATED_P.
3591 (old_fun): Remove.
3592 (output_inline_function): Remove.
3593 * integrate.h (struct inline_map): Remove fields integrating,
3594 block_map, leaf_reg_map, inline_target, and local_return_label.
3595 * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3596 copy_loop_headers, never_reached_warning): Removed.
3597 (any_uncondjump_p): Reject nonlocal goto.
3598 * langhooks-def.h (lhd_types_compatible_p,
3599 lhd_expand_decl, lhd_gimplify_expr): Declare.
3600 (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3601 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3602 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3603 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3604 LANG_HOOKS_GIMPLIFY_EXPR,
3605 LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3606 LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3607 LANG_HOOKS_GIMPLIFY_EXPR,
3608 LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3609 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3610 LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3611 LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3612 LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3613 LANG_HOOKS_DECL_UNINIT,
3614 LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3615 * langhooks.c: Include tree-simple.h.
3616 (lhd_expand_decl): New.
3617 (lhd_types_compatible_p): New.
3618 (lhd_decl_uninit): Remove.
3619 (lhd_gimplify_expr): New.
3620 * langhooks.h (struct lang_hooks_for_rtl_expansion):
3621 Remove.
3622 (struct lang_hooks_for_functions): Add field
3623 missing_noreturn_ok_p.
3624 (struct lang_hooks): Add field expand_decl,
3625 types_compatible_p, gimplify_expr and
3626 gimple_before_inlining.
3627 Remove fields decl_uninit and rtl_expand
3628 * opts.c (decode_options): Set flag_tree_ccp,
3629 flag_tree_dce, flag_tree_dom, flag_tree_dse,
3630 flag_tree_pre, flag_tree_ter,
3631 flag_tree_live_range_split, flag_tree_sra,
3632 flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3633 (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3634 OPT_fmudflapth, OPT_fmudflapir,
3635 OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3636 OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3637 OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3638 OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3639 OPT_ftree_points_to_ and OPT_ftree_pre.
3640 * output.h (regno_uninitialized, find_basic_blocks,
3641 cleanup_cfg, delete_unreachable_blocks,
3642 check_function_return_warnings): Remove.
3643 * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3644 PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3645 PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3646 PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3647 PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3648 * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3649 Define.
3650 * passes.c (rest_of_decl_compilation):
3651 (rest_of_handle_sibling_calls): Remove.
3652 (rest_of_handle_inlining): Remove.
3653 (rest_of_handle_gcse): Do not run
3654 purge_builtin_constant_p.
3655 (rest_of_compilation): Update.
3656 Do not call copy_loop_headers.
3657 Do rtl-based profiling only when
3658 !flag_tree_based_profiling. Register rtl-based profiling
3659 hooks.
3660 * predict.c: Include tree-flow.h, ggc.h, tree-dump.h
3661 (predicted_by_p): Rename to ...
3662 (rtl_predicted_by_p): .. this one; make global
3663 (tree_predicted_by_p): New.
3664 (dump_prediction): Add FILE argument.
3665 (predict_edge): Rename to ...
3666 (rtl_predict_edge): .. this one.
3667 (tree_predict_edge): New.
3668 (combine_predictions_for_insn): Update calls of predict_edge.
3669 (predict_loops): Break out from ...
3670 (estimate_probability): ... here; update comments; move updating
3671 of unknown probabilities from ...
3672 (estimate_bb_frequencies): ... here.
3673 (combine_predictions_for_bb): New.
3674 (tree_predict_by_opcode): New.
3675 (tree_estimate_probability): New.
3676 * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3677 PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3678 * predict.h: Add include guard.
3679 (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3680 * pretty-print.c (pp_write_text_to_stream): Make extern.
3681 * pretty-print.h (pp_write_text_to_stream): Declare.
3682 * print-rtl.c (print_rtx): Don't print the integrated flag.
3683 Print the return_val flag.
3684 * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3685 of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3686 Remove support for EXPR_WITH_FILE_LOCATION nodes.
3687 (print_node): Print TREE_INVARIANT and TREE_VISITED.
3688 * profile.c: Include cfghooks.h, tree-flow.h.
3689 (profile_hooks): New.
3690 (profile_dump_file): New.
3691 (instrument_edges): Use hooks instead of RTL-specific code.
3692 (instrument_values): Ditto.
3693 (get_exec_counts): Ditto.
3694 (compute_branch_probabilities): Ditto.
3695 (compute_value_histograms): Ditto.
3696 (branch_prob): Ditto.
3697 (find_spanning_tree): Ditto.
3698 (end_branch_prob): Ditto.
3699 (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3700 (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3701 (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3702 (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3703 (tree_register_profile_hooks): New.
3704 (rtl_register_profile_hooks): New.
3705 * ra-rewrite.c (rewrite_program): Clear variable info.
3706 * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3707 * regs.h: Add include guards.
3708 * reload.c (decompose): Clear val using memset.
3709 * rtl.def (CONSTANT_P_RTX): Remove.
3710 * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3711 (copy_loop_headers): Remove.
3712 (struct rtx_def): Replace the integrated flag with the
3713 return_val flag.
3714 (maybe_set_first_label_num): Declare.
3715 (init_branch_prob): Move declaration to value-prof.h.
3716 (end_branch_prob): Ditto.
3717 (branch_prob): Ditto.
3718 (never_reached_warning): Don't declare it.
3719 * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3720 (hoist_insn_to_edge): Update to match field insns in
3721 struct edge_def.
3722 * sbitmap.c (sbitmap_realloc): New.
3723 * sbitmap.h (sbitmap_realloc): Declare.
3724 * sibcall.c: Remove file.
3725 * simplify-rtx.c (simplify_rtx): Do not handle
3726 CONSTANT_P_RTX.
3727 * stmt.c (parse_output_constraint): Don't warn for read-write
90afe2c9 3728 memory operand.
6de9cd9a
DN
3729 (tail_recursion_args): Use types_compatible_p langhook.
3730 (force_label_rtx): Don't look at inline_function_decl.
3731 (label_rtx): Set LABEL_PRESERVE_P appropriately.
3732 (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3733 (declare_nonlocal_label): Remove.
3734 (expand_goto): Don't handle nonlocal gotos.
3735 (expand_nl_handler_label): Remove.
3736 (expand_nl_goto_receivers): Remove.
3737 (expand_end_bindings): Don't expand_nl_goto_receivers. Use
3738 update_nonlocal_goto_save_area.
3739 (expand_expr_stmt_value): Check TREE_NO_WARNING.
3740 (warn_if_unused_value): Likewise.
3741 (expand_start_loop, expand_loop_continue_here,
3742 expand_end_loop): Don't create loop notes.
3743 (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3744 mark_seen_cases, check_for_full_enumeration_handling): Remove.
3745 (expand_end_case_type): Don't do warn_switch handling.
3746 (pushcase, pushcase_range) Update add_case_node calls.
3747 (add_case_node): Add dont_expand_label argument.
3748 (same_case_target_p): Don't search rtl.
3749 (expand_start_bindings_and_block, expand_end_bindings):
3750 Don't emit block notes when dont_emit_block_notes.
3751 (using_eh_for_cleanups_p): Export.
3752 (expand_return): Allow any typed rhs.
3753 (expand_stack_alloc): New.
3754 (expand_stack_save, expand_stack_restore): New.
3755 (containing_blocks_have_cleanups_or_stack_level): New
3756 function.
3757 (asm_op_is_mem_input): New fn.
3758 (expand_asm_expr): New fn.
3759 (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3760 nodes.
3761 * stor-layout.c (layout_type): Just return if type is
3762 error_mark_node.
3763 (update_alignment_for_field): Export.
3764 (variable_size): We don't care about global_bindings_p if
3765 the frontend doesn't want a list of the expressions.
3766 * system.h: Poison INTEGRATE_THRESHOLD.
3767 * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3768 TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3769 TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3770 TV_TREE_SSA_OTHER, TV_TREE_OPS,
3771 TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3772 TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3773 TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3774 TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3775 TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3776 TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3777 TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3778 TV_CONTROL_DEPENDENCES): Define.
3779 * toplev.c: Include tree-alias-common.h
3780 (current_file_decl, flag_mudflap, flag_mudflap_threads,
3781 flag_mudflap_ignore_reads, flag_tree_based_profiling,
3782 flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3783 flag_tree_dce, flag_tree_ch, flag_tree_sra,
3784 flag_tree_combine_temps, flag_tree_ter,
3785 flag_tree_live_range_split, flag_tree_dom,
3786 flag_tree_copyrename, flag_tree_dse): Declare.
3787 (f_options): Add tree-based-profiling, tree-gvn,
3788 tree-pre, tree-ccp, tree-dce,
3789 tree-dominator-opts, tree-copyrename, tree-dse,
3790 tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3791 (wrapup_global_declarations): Don't output nested inlined functions.
3792 (general_init): Call init_tree_optimization_passes.
3793 (process_options): Sorry for -ftree-based-profiling plus
3794 -ftest-coverage or -fprofile-values.
3795 * toplev.h (init_tree_optimization_passes,
3796 flag_tree_based_profiling): Declare.
3797 * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3798 * tree-alias-ander.c: New file.
3799 * tree-alias-ander.h: New file.
3800 * tree-alias-common.c: New file.
3801 * tree-alias-common.h: New file.
3802 * tree-alias-type.c: New file.
3803 * tree-alias-type.h: New file.
3804 * tree-browser.c: New file.
3805 * tree-browser.def: New file.
3806 * tree-cfg.c: New file.
3807 * tree-complex.c: New file.
3808 * tree-dfa.c: New file.
3809 * tree-dump.c (dump_enable_all): New.
3810 (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3811 (dump_node): Remove const from field suffix and swtch.
3812 (dump_files): Add null entry, .generic, .nested, .vcg,
3813 .xml and a match-all entry.
3814 (extra_dump_files, extra_dump_files_in_use,
3815 extra_dump_files_alloced): Declare
3816 (dump_option_value_info): Add raw, details, stats,
3817 blocks, vops, lineno, uid and all.
3818 (dump_register): New.
3819 (get_dump_file_info): New.
3820 (dump_begin): Call it.
3821 Do nothing for TDI_none.
3822 (dump_begin): Include phase number in dump filename.
3823 (dump_enable_all): New.
3824 (dump_switch_p_1): Split out from dump_switch_p.
3825 (dump_switch_p): Handle extra_dump_files.
3826 Start our scan at TDI_none + 1.
3827 If -fdump-tree-all was given, call dump_enable_all.
3828 * tree-dump.h: Include splay-tree.h.
3829 (dump_function, dump_function_to_file, dump_register):
3830 Declare.
3831 * tree-eh.c: New file.
3832 * tree-flow-inline.h: New file.
3833 * tree-flow.h: New file.
3834 * tree-inline.c: Re-write to handle inlining on GIMPLE.
3835 * tree-inline.h (walk_tree,
3836 walk_tree_without_duplicates): Move to tree.h.
3837 (estimate_num_insns): Declare.
3838 * tree-into-ssa.c: New file.
3839 * tree-iterator.c: New file.
3840 * tree-iterator.h: New file.
3841 * tree-mudflap.c: New file.
3842 * tree-mudflap.h: New file.
3843 * tree-nested.c: New file.
3844 * tree-nomudflap.c: New file.
3845 * tree-nrv.c: New file.
3846 * tree-optimize.c (dump_flags, vars_to_rename,
3847 in_gimple_form, all_passes, pass_gimple,
3848 pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3849 (execute_gimple, execute_rebuild_bind,
3850 gate_all_optimizations, execute_del_cfg,
3851 register_one_dump_file, register_dump_files, dup_pass_1,
3852 init_tree_optimization_passes, execute_todo,
3853 execute_one_pass, execute_pass_list): New.
3854 (clear_decl_rtl): Remove.
3855 (tree_rest_of_compilation): Update to use tree
3856 optimizers.
3857 * tree-outof-ssa.c: New file.
3858 * tree-pass.h: New file.
3859 * tree-phinodes.c: New file.
3860 * tree-pretty-print.c: New file.
3861 * tree-profile.c: New file.
3862 * tree-simple.c: New file.
3863 * tree-simple.h: New file.
3864 * tree-sra.c: New file.
3865 * tree-ssa-alias.c: New file.
3866 * tree-ssa-ccp.c: New file.
3867 * tree-ssa-copy.c: New file.
3868 * tree-ssa-copyrename.c: New file.
3869 * tree-ssa-dce.c: New file.
3870 * tree-ssa-dom.c: New file.
3871 * tree-ssa-dse.c: New file.
3872 * tree-ssa-forwprop.c: New file.
3873 * tree-ssa-live.c: New file.
3874 * tree-ssa-live.h: New file.
3875 * tree-ssa-loop.c: New file.
3876 * tree-ssa-operands.c: New file.
3877 * tree-ssa-operands.h: New file.
3878 * tree-ssa-phiopt.c: New file.
3879 * tree-ssa-pre.c: New file.
3880 * tree-ssa.c: New file.
3881 * tree-ssanames.c: New file.
3882 * tree-tailcall.c: New file.
3883 * tree.c: Include tree-iterator.h, basic-block.h and
3884 tree-flow.h.
3885 (tree_node_kind): Add phi_nodes and ssa names.
3886 (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3887 EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3888 (make_node_stat): Handle PHI_NODE and SSA_NAME.
3889 <'c'> Set TREE_INVARIANT.
3890 (copy_node_stat): Abort if trying to copy a
3891 STATEMENT_LIST.
3892 Clear TREE_VISITED.
3893 Clear annotation field.
3894 (build_constructor): Copy TREE_INVARIANT from vals.
3895 Don't clear TREE_CONSTANT.
3896 (expr_first, expr_last, expr_length): Remove.
3897 (staticp): Pass unknown component references to the language.
3898 (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3899 (skip_simple_arithmetic): Likewise.
3900 (stabilize_reference_1): Likewise.
3901 (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3902 EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3903 STATEMENT_LIST.
3904 (lhd_unsave_expr_now): Remove.
3905 (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3906 (recompute_tree_invarant_for_addr_expr): New.
3907 (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3908 Call recompute_tree_invarant_for_addr_expr.
3909 Set TREE_INVARIANT accordingly.
3910 (build2_stat): Don't handle CALL_EXPR.
3911 (build3_stat): Don't call build2_stat for CALL_EXPRs.
3912 (build_expr_wfl): Remove.
3913 (annotate_with_file_line, annotate_with_locus): New.
3914 (simple_cst_equal): Call simple_cst_list_equal to compare
3915 CONSTRUCTOR_ELTS pointers.
3916 (iterative_hash_expr): Don't hash types associated
3917 with conversions. Instead hash on the signedness of the
3918 toplevel object and the operand of the conversion.
3919 (dump_tree_statistics): Call ssanames_print_statistics
3920 and phinodes_print_statistics.
3921 (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3922 add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3923 needs_to_live_in_memory): New.
3924 (initializer_zerop): Handle VECTOR_CST. Don't check
3925 AGGREGATE_TYPE_P for CONSTRUCTOR.
3926 * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3927 SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3928 PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
3929 (GOTO_SUBROUTINE_EXPR): Change type to 's'.
3930 (CALL_EXPR): Add another operand.
3931 (EXPR_WITH_FILE_LOCATION): Remove.
3932 (SWITCH_EXPR): Add another operand.
3933 * tree.h: Update various comments.
3934 (union tree_ann_d): Forward declare.
3935 (struct tree_common): Add fields nowarning_flag,
3936 invariant_flag and visited.
3937 (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
3938 PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
3939 EPHI_NODE_ELT_CHECK, TREE_BLOCK,
3940 STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
3941 TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
3942 IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
3943 EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
3944 EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
3945 CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
3946 BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
3947 ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
3948 ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
3949 COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
3950 CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
3951 EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
3952 SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
3953 SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
3954 PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
3955 PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
3956 EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
3957 EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
3958 EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
3959 EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
3960 EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
3961 EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
3962 EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
3963 EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
3964 EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
3965 EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
3966 TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
3967 DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
3968 DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
3969 STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
3970 TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
3971 TDF_UID,): Define.
3972 (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
3973 EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
3974 EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
3975 EXPR_WFL_SET_LINECOL): Remove.
3976 (phi_node_elt_check_failed, ephi_node_elt_check_failed,
3977 make_phi_node, init_phinodes, fini_phinodes,
3978 release_phi_node, phinodes_print_statistics,
3979 init_ssanames, fini_ssanames, make_ssa_name,
3980 release_ssa_name, ssanames_print_statistics,
3981 annotate_with_file_line, build_empty_stmt,
3982 annotate_with_locus, expr_only, categorize_ctor_elements,
3983 count_type_elements, add_var_to_bind_expr, is_essa_node,
3984 expand_stack_alloc, expand_stack_save,
3985 expand_stack_restore, add_case_node, operand_equal_p,
3986 nondestructive_fold_unary_to_constant,
3987 nondestructive_fold_binary_to_constant,
3988 fold_read_from_constant_string, int_const_binop,
3989 strip_float_extensions, simplify_builtin, c_strlen,
3990 recompute_tree_invarant_for_addr_expr,
3991 needs_to_live_in_memory, make_vector,
3992 setjmp_vars_warning, update_alignment_for_field,
3993 expand_asm_expr, asm_op_is_mem_input,
3994 containing_blocks_have_cleanups_or_stack_level,
3995 create_artificial_label, gimplify_function_tree,
3996 get_name, unshare_expr, walk_tree,
3997 walk_tree_without_duplicates, in_gimple_form): Declare.
3998 (struct tree_exp): Add fields locus and block.
3999 (struct tree_ssa_name, struct edge_def, struct
4000 tree_phi_node, struct tree_eref_common, struct
4001 tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4002 union alias_var_def, struct tree_statement_list_node,
4003 struct tree_statement_list, enum operand_equal_flag): Declare.
4004 (enum tree_node_structure_enum): Add TS_SSA_NAME,
4005 TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4006 TS_STATEMENT_LIST.
4007 (union tree_node): Add fields ssa_name, phi, eref, ephi,
4008 euse and stmt_list.
4009 (function_cannot_inline_p, uninitialized_vars_warning,
4010 save_for_inline, output_inline_function, all_cases_count,
4011 check_for_full_enumeration_handling,
4012 declare_nonlocal_label): Remove.
4013 (enum tree_dump_index): Add TDI_none, TDI_tu,
4014 TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4015 * unroll.c (unroll_loop): Don't clear map->inline_target.
4016 * unwind-sjlj.c (uw_install_context): Make a proper static inline
4017 function.
4018 * value-prof.c (value_prof_hooks): New.
4019 (find_values_to_profile): Rename to rtl_find_values_to_profile.
4020 Move rtl-specific bits in from branch_prob.
4021 (value_profile_transformations): Rename to
4022 rtl_value_profile_transformations.
4023 (struct value_prof_hooks): New.
4024 (rtl_value_prof_hooks): New.
4025 (rtl_register_value_prof_hooks): New.
4026 (tree_find_values_to_profile): New stub.
4027 (tree_value_profile_transformations): New stub.
4028 (tree_value_prof_hooks): New stub.
4029 (tree_register_value_prof_hooks): New stub.
4030 (find_values_to_profile): New.
4031 (value_profile_transformations): New.
4032 * value-prof.h: Add multiple inclusion guard.
4033 (struct histogram_value): Change rtx fields to void *.
4034 (rtl_register_value_prof_hooks): New declaration.
4035 (tree_register_value_prof_hooks): New declaration.
4036 (find_values_to_profile): New declaration.
4037 (free_profiled_values): New declaration.
4038 (value_profile_transformations): New declaration.
4039 (struct profile_hooks): New declaration.
4040 (init_branch_prob): Declaration moved from rtl.h.
4041 (branch_prob): Declaration moved from rtl.h.
4042 (end_branch_prob): Declaration mooved from rtl.h.
4043 (tree_register_profile_hooks): New declaration.
4044 (rtl_register_profile_hooks): New declaration.
4045 (tree_profile_hooks): New declaration.
4046 (rtl_profile_hooks): New declaration.
4047 * varasm.c: Include tree-mudflap.h.
4048 (TRAMPOLINE_ALIGNMENT): Remove.
4049 (make_decl_rtl): Call mudflap_enqueue_decl.
4050 (assemble_static_space):
4051 (assemble_trampoline_template): Set and return
4052 TRAMPOLINE_ALIGNMENT.
4053 * varray.c (element): Add GENERIC_PTR_NOGC entry.
4054 Add entry for 'tree *'.
4055 Add entry for struct edge_def *.
4056 (varray_copy): New.
4057 * varray.h (enum varray_data_enum): Add
4058 VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4059 VARRAY_DATA_TREE_PTR.
4060 (union varray_data_tag): Corresponding changes.
4061 (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4062 VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4063 VARRAY_EDGE, VARRAY_TREE_PTR,
4064 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4065 VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4066 VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4067
4068 * config/*/*: Various updates for changed macros, tree
4069 codes, etc. Check ChangeLog.tree-ssa.
4070
4071 * doc/cfg.texi: New file.
4072 * doc/tree-ssa.texi: New file.
4073 * doc/c-tree.texi: Document new codes.
4074 * doc/gccint.texi: Include new files.
4075 * doc/install.texi: Document new features.
4076 * doc/invoke.texi: Document new switches.
4077 * doc/passes.texi: Document new passes.
4078 * doc/rtl.texi: Update changed RTL codes.
4079 * doc/sourcebuild.texi: Update build instructions.
4080 * doc/standards.texi: Document Fortran changes.
4081 * doc/tm.texi: Update.
4082
5eaad481
PB
40832004-05-12 Paolo Bonzini <bonzini@gnu.org>
4084
4085 Replace several arrays with a struct of arrays.
90afe2c9
ZW
4086 * combine.c (struct reg_stat): New.
4087 (init_reg_last_arrays): Renamed to...
4088 (init_reg_last): ...this. Callers adjusted.
4089 (reg_stat): New.
4090 (combine_instructions): Allocate it and use it.
4091 (reg_last_death, reg_last_set, reg_last_set_value,
4092 reg_last_set_label, reg_last_set_table_tick,
4093 reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4094 reg_last_set_mode, reg_last_set_nonzero_bits,
4095 reg_last_set_sign_bit_copies): Replace throughout
4096 with items of reg_stat.
5eaad481 4097
e51f9159
KK
40982004-05-11 Kaz Kojima <kkojima@gcc.gnu.org>
4099
4100 PR optimization/15100
4101 * combine.c (distribute_notes): Don't create a dangling
4102 REG_LIBCALL/REG_RETVAL note.
4103
6a599451
AH
41042004-05-11 Aldy Hernandez <aldyh@redhat.com>
4105
4106 * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4107
4108 * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4109 negv2si2.
4110
425a2bde
AH
41112004-05-11 Aldy Hernandez <aldyh@redhat.com>
4112
4113 * doc/md.texi (Standard Names): Fix typo in vec_init description.
4114
bed7b8f1
GK
41152004-05-11 Geoffrey Keating <geoffk@apple.com>
4116
4117 * doc/gty.texi (GTY Options): Clarify example.
4118
7958a2a6
FJ
41192004-05-11 Fariborz Jahanian <fjahanian@apple.com>
4120
4121 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4122 Add const qualifier to altivec vector type if one is needed.
4123
32770746
PB
41242004-05-11 Paul Brook <paul@codesourcery.com>
4125
4126 * flags.h (flag_short_enums): Update comment.
4127 * opts.c (decode_options): Set flag_short_enums to 2.
4128 * toplev.c (flag_short_enums): Update comment.
4129 (process_options): Call default_short_enums target hook.
4130
78f59f3e
AP
41312004-05-11 Andrew Pinski <pinskia@gcc.gnu.org>
4132
4133 PR target/14063
4134 * config/rs6000/altivec.md (altivec_dssall):
4135 Change to unspec_volatile.
4136 (altivec_dss): Likewise.
4137
39302b6a
AH
41382004-05-10 Aldy Hernandez <aldyh@redhat.com>
4139
4140 * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4141 vnor.
4142 ("one_cmplv8hi2"): Same.
4143 ("one_cmplv4si2"): Same.
4144
726d4cb7
KK
41452004-05-10 Kaz Kojima <kkojima@gcc.gnu.org>
4146
4147 PR target/15130
4148 * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4149 * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4150 into account. Compute the correct number of general registers
4151 for the return value. Generate a special push/pop sequence when
4152 failing to get a temporary register for non SHmedia epilogue.
4153 (sh_expand_epilogue): Add an argument to show whether it's for
4154 sibcall or not. Set the 3rd argument of output_stack_adjust to
4155 -1 if needed.
4156 (sh_need_epilogue): Call sh_expand_epilogue with 0.
4157 * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4158 with 1.
4159 (epilogue): Call sh_expand_epilogue with 0.
4160
0c196bf9
AP
41612004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
4162
4163 * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4164 goto a cleanup label. After the cleanup, free the allocated memory.
4165
16cfa3dc
ZL
41662004-05-10 Ziemowit Laski <zlaski@apple.com>
4167
4168 * config/rs6000/altivec.h (vec_sld): Add overloads for
4169 argument/return types of 'vector bool int', 'vector bool short'
4170 and 'vector bool char'.
4171
3358cae0
ZW
41722004-05-10 Zack Weinberg <zack@codesourcery.com>
4173
4174 * c-decl.c (store_parm_decls_newstyle): Correct test for a
4175 nested function.
4176
62d45923
RS
41772004-05-10 Richard Sandiford <rsandifo@redhat.com>
4178
4179 * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4180 treating missing ones as "".
4181 * config/mips/mips.md: Remove constraints from match_operands and
4182 match_scratches if they appear in define_expands (except reload*),
4183 define_peephole2s, define_splits or attribute specifications.
4184 * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4185 constraint strings.
4186
b2d04ecf
AM
41872004-05-10 Alan Modra <amodra@bigpond.net.au>
4188
4189 * config/rs6000/rs6000.c (function_arg_boundary): Always align
4190 AltiVec vectors.
4191 (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4192 vectors by refererence. Align the same for TARGET_64BIT to a 16
4193 byte boundary. Remove useless code. Add function comment.
4194 (function_arg): Similarly. Move gpr rs6000_mixed_function_arg
4195 call to where it belongs.
4196 (function_arg_partial_nregs): Return true for all TARGET_32BIT
4197 -mabi=no-altivec AltiVec vectors. Fix debug output.
4198 (rs6000_va_arg): Adjust for AltiVec change.
4199
b6685939
PB
42002004-05-10 Paul Brook <paul@codesourcery.com>
4201
4202 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4203 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4204 (TARGET_DOUBLEWORD_ALIGN): Use it.
4205 (WCHAR_TYPE): Define.
4206 (WCHAR_SIZE_TYPE): Define.
4207 (SIZE_TYPE): Define.
4208
4ed78545
AM
42092004-05-10 Alan Modra <amodra@bigpond.net.au>
4210
4211 * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4212 when size is 8 bytes.
4213 (function_arg_advance): Account for stack space used by AltiVec
3358cae0 4214 args when -mabi=altivec. Simplify alignment calculations. For
4ed78545
AM
4215 ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4216 (function_arg): Similarly.
4217 (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4218 not AltiVec ABI.
4219 (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change.
4220 Correct alignment, and align before testing reg count. Remove
4221 TREE_THIS_VOLATILE from reg. Don't emit unused labels.
4222 (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4223 TARGET_FPRS here..
4224 (rs6000_function_value): .. not here before call.
4225
f350ff00
AH
42262004-05-09 Aldy Hernandez <aldyh@redhat.com>
4227
4228 * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4229
eecec698
ZW
42302004-05-09 Zack Weinberg <zack@codesourcery.com>
4231
4232 PR 15007
4233 * c-decl.c (current_file_decl): Rename to all_translation_units,
4234 adjust comment.
4235 (pop_scope): If popping file_scope, construct a
4236 TRANSLATION_UNIT_DECL and make it the context of all the
4237 symbols in the scope.
4238 (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4239 (pushdecl): Clarify comment. Do not set DECL_CONTEXT of
4240 anything to current_file_decl.
4241 (pushdecl_top_level): Likewise.
4242 (store_parm_decls_newstyle): Adjust check for nested function.
4ed78545
AM
4243 (c_write_global_declarations): Update for renamed variable.
4244
2aa4498c
AH
42452004-05-09 Aldy Hernandez <aldyh@redhat.com>
4246
4247 * config/rs6000/rs6000-protos.h
4248 (rs6000_conditional_register_usage): Protoize.
4249
4250 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4251
4252 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4253 function.
4254
8dc2384c
RS
42552004-05-08 Roger Sayle <roger@eyesopen.com>
4256
4257 * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4258 where op is a comparison operator and C1 and C2 are integer constants
4259 into a range check.
4260 (fold): Call fold_div_compare.
4261
ae81c844
EB
42622004-05-08 Eric Botcazou <ebotcazou@libertysurf.fr>
4263
4264 * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4265 problems with earlier versions of the GNU compiler.
4266
0d1fbc8c
AH
42672004-05-07 Aldy Hernandez <aldyh@redhat.com>
4268
4269 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4270 Declare.
4271
4272 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4273 (rs6000_hard_regno_mode_ok): New.
4274 (rs6000_init_hard_regno_mode_ok): New.
4275 (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4276
4277 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4278 result.
4279
f95d9272
ZL
42802004-05-07 Ziemowit Laski <zlaski@apple.com>
4281
4282 * config/rs6000/altivec.h (vector, pixel, bool): Do not
4283 define as macros #ifdef __APPLE_ALTIVEC__.
4284
42852004-05-07 Fariborz Jahanian <fjahanian@apple.com>
4286
36a454e1
FJ
4287 * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4288 Generate appropriate parallels for vector arguments
4289 passed to vararg functions. (function_arg): make the call
4290 to rs6000_mixed_function_arg for vector args as needed.
eecec698 4291
f7dbd289
RS
42922004-05-07 Richard Sandiford <rsandifo@redhat.com>
4293
4294 * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4295 EABI_FLOAT_VARARGS_P.
4296
5c8a81d5
RS
42972004-05-07 Richard Sandiford <rsandifo@redhat.com>
4298
4299 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4300 * config/mips/mips.c (override_options): Disable branch likely
4301 instructions if TUNE_MIPS5500.
4302
9045f39a
RS
43032004-05-07 Richard Sandiford <rsandifo@redhat.com>
4304
4305 * config/mips/mips.c (override_options): Allow the hi and lo registers
4306 to store any integral mode, not just MODE_INTs.
4307
bc21b3f3
PB
43082004-05-07 Paul Brook <paul@codesourcery.com>
4309
4310 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4311 * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4312 (TARGET_DOUBLEWORD_ALIGN): Use it.
4313 (WCHAR_TYPE): Define.
4314 (WCHAR_SIZE_TYPE): Define.
4315 (SIZE_TYPE): Define.
4316
2484cc35
UB
43172004-05-07 Uros Bizjak <uros@kss-loka.si>
4318
4319 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4320 testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4321
7600f094
AP
43222004-05-07 Andrew Pinski <pinskia@physics.uc.edu>
4323
4324 * loop-doloop.c (doloop_valid_p): Make sure that body
4325 gets freed.
4326
bfb23806
EB
43272004-05-07 Eric Botcazou <ebotcazou@act-europe.fr>
4328
4329 * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4330 declaration.
4331 * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4332 (sparc_skip_caller_unimp): New global variable.
4333 (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4334 Use it instead of SKIP_CALLERS_UNIMP_P.
4335 * config/sparc/sparc.md (call expander): Add sanity check.
4336 (call_address_struct_value_sp32): Re-sync with expander.
4337 (call_symbolic_struct_value_sp32): Likewise.
4338 (return peepholes): Use 'sparc_skip_caller_unimp' instead
4339 of custom predicate.
4340
92ff0c41
EB
43412004-05-07 Eric Botcazou <ebotcazou@libertysurf.fr>
4342
4343 PR c++/14962
4344 * c-pragma.c (handle_pragma_redefine_extname): Only change
4345 the assembler name of FUNCTION_DECLs and VAR_DECLs.
4346
c2fcfa4f
UB
43472004-05-07 Uros Bizjak <uros@kss-loka.si>
4348
4349 * optabs.h (enum optab_index): Add new OTI_log1p.
4350 (log1p_optab): Define corresponding macro.
4351 * optabs.c (init_optabs): Initialize log1p_optab.
4352 * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4353 patterns.
4354 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4355 using log1p_optab.
4356 (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4357 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4358
4359 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4360
4361 * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4362 * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4363 Prototype here.
4364 * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4365 x87's fyl2xp1 instruction.
4366 (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4367 (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4368 (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4369 log1p and log1pl built-ins as inline x87 intrinsics.
4370
4d980568
LR
43712004-05-07 Loren James Rittle <ljrittle@acm.org>
4372
3c4392aa 4373 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4d980568
LR
4374 * config/arm/freebsd.h: Likewise.
4375 * config/ia64/freebsd.h: Likewise.
4376 * config/sparc/freebsd.h: Likewise.
4377
afce2847
HPN
43782004-05-07 Hans-Peter Nilsson <hp@axis.com>
4379
4380 PR optimization/15296
4381 * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4382 getting last consecutive label at a branch.
4383 (relax_delay_slots): Similar, near top of loop.
4384
9acf97b6
JDA
43852004-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4386
4387 PR target/15202
4388 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4389 register to general register.
4390
19fb36e3
AM
43912004-05-07 Alan Modra <amodra@bigpond.net.au>
4392
4393 * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4394 TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4395 * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4396 (STACK_BOUNDARY): Delete.
4397
db643b91 43982004-05-06 Stuart Hastings <stuart@apple.com>
2484cc35 4399
db643b91
SH
4400 * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4401 mistakenly clobbered by 1.423.
19fb36e3 4402
dc884a86
RS
44032004-05-06 Richard Sandiford <rsandifo@redhat.com>
4404
4405 * doc/invoke.texi: Document -mvr4130-align.
4406 * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4407 (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4408 (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4409 (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4410 * config/mips/mips.md: Include sched-int.h.
4411 (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4412 (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4413 (override_options): Enable -mvr4130-align at -O3 and above.
4414 (mips_sim_insn): New variable.
4415 (mips_sim): New structure.
4416 (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4417 (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4418 (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4419 (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4420 (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4421 (mips_reorg): Call vr4130_align_insns.
4422 (vr4130_last_insn): New variable.
4423 (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4424 (vr4130_swap_insns_p, vr4130_reorder): New functions.
4425 (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4426 (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4427 (mips_use_dfa_pipeline_interface): Return true for the same.
4428 * config/mips/4130.md: New file.
4429 * config/mips/mips.md: Include it. Add a peephole2 to convert
4430 "mult;mflo" into "mtlo;macc".
4431 (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4432 target of maccs.
4433 (*msac_using_macc): New pattern.
4434
615ccdd3
RS
44352004-05-06 Richard Sandiford <rsandifo@redhat.com>
4436
4437 * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4438 (ir_vr55_hilo): Split into...
4439 (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4440 (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4441 (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles.
4442 Add various multiplication bypasses.
4443 * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4444 multiplication.
4445
152e3565
UB
44462004-05-06 Uros Bizjak <uros@kss-loka.si>
4447
4448 * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4449 attribute to "XF".
4450
5ae27cfa
UB
44512004-05-05 Uros Bizjak <uros@kss-loka.si>
4452
4453 * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
152e3565 4454 (fmod_optab, drem_optab): Define corresponding macros.
5ae27cfa
UB
4455 * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4456 * genopinit.c (optabs): Implement fmod_optab and drem_optab
4457 using fmod?f3 and drem?f3 patterns.
4458 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4459 using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4460 (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4461 BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4462 flag_unsafe_math_optimizations is set.
4463
4464 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4465 UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4466
4467 * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4468 * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4469 Prototype here.
4470 * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4471 UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4472 fprem and fprem1 instructions.
4473 (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4474 Rename insn definition to x86_fnstsw_1.
4475 (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4476 x87 instructions.
4477 (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4478 and fmodl built-ins as inline x87 intrinsics.
4479 (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4480 and dreml built-ins as inline x87 intrinsics.
4481
cf9c6ca5
RS
44822004-05-05 Roger Sayle <roger@eyesopen.com>
4483
4484 * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4485
32dd2dc9
ILT
44862004-05-05 Ian Lance Taylor <ian@wasabisystems.com>
4487
4488 PR driver/9822
4489 * doc/invoke.texi (Spec Files): Remove documentation of %c.
4490
4a6f766d
CD
44912004-05-05 Chris Demetriou <cgd@broadcom.com>
4492
4493 * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4494 representation.
4495
fdd695fd
PB
44962004-05-06 Paul Brook <paul@codesourcery.com>
4497
4498 * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4499 (arm_coproc_mem_operand): ... To this.
4500 * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4501 (arm_legitimate_index_p): Ditto.
4502 (vfp_mem_operand): Rename ...
4503 (arm_coproc_mem_operand): ... To this. Handle writeback modes.
4504 (vfp_secondary_reload_class): Use it.
4505 (output_move_double): Use doubleword load/store instructions.
4506 (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4507 * config/arm/arm.h (TARGET_LDRD): Define.
4508 (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4509 * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4510 New splitter for invalid doubleword loads.
4511 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4512 * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4513 * doc/md.texi: Document Uy constraint.
4514
59af0b6a
JH
45152004-05-05 Jan Hubicka <jh@suse.cz>
4516
4517 PR opt/14980
4518 * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4519 inline clones.
4520
9953b5e1
L
45212004-05-05 H.J. Lu <hongjiu.lu@intel.com>
4522
4523 PR target/15290
4524 * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4525 instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4526
e3c287c9
MS
45272004-05-05 Mike Stump <mrs@apple.com>
4528
4529 * config/darwin-c.c (add_framework): Copy the directory name as it
4530 can be freed later. Also, ensure we always allocate enough room
4531 for the cached framework information.
4532 (find_subframework_header): Keep track of the directory where the
4533 subframework header was found.
4534 (framework_construct_pathname): Speed up by not trying to re-add a
4535 framework.
4536 * cppfiles.c (search_path_exhausted): Arrange for the missing
4537 header callback to be able to set the directory where the header
4538 was found.
4539 (cpp_get_dir): Add.
4540 * cpplib.h (missing_header_cb): Add a parameter.
4541 (cpp_get_dir): Add.
4542
45432004-05-03 Mike Stump <mrs@apple.com>
4bed3787
MS
4544
4545 * doc/invoke.texi (Directory Options): Document -iquote.
4546 * doc/cpp.texi: Likewise.
4547 * doc/cppopts.texi: Likewise.
4548 * c-opts.c (c_common_missing_argument): Add -iquote processing.
4549 (c_common_handle_option): Likewise.
4550 * c.opt (iquote): Add.
4551 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4552 * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4553
4554 * c-opts.c (case OPT_I): Deprecate -I- support.
4555 * doc/invoke.texi: Likewise.
4556 * doc/cpp.texi: Likewise.
4557 * doc/cppopts.texi: Likewise.
4558
bb8a619e
SB
45592004-05-05 Steven Bosscher <stevenb@suse.de>
4560
4561 * basic-block.h (free_basic_block_vars): Update prototype.
4562 * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4563 argument.
4564 (life_analysis): Update call.
4565 * ifcvt.c (if_convert): Likewise.
4566 * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4567 * passes.c (rest_of_handle_final): Likewise.
4568 (rest_of_compilation): Likewise.
4569 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4570
4571 * emit-rtl.c (next_real_insn): Use INSN_P.
4572 (prev_real_insn): Likewise.
4573
2e592dce
EC
45742004-05-05 Eric Christopher <echristo@redhat.com>
4575
4576 * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4577 representation.
4578
7c62e993
PB
45792004-05-05 Paolo Bonzini <bonzini@gnu.org>
4580
4581 * config/rs6000/rs6000.c (build_opaque_vector_type):
4582 New function.
4583 (rs6000_init_builtins): Use it.
4584
87fac4e3
BG
45852004-05-04 Bernard Giroud <bgiroud2@free.fr>
4586
4587 * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4588 (func_table): Change type from char ** to vms_func_ref.
4589 (write_rtnbeg): Update to reflect func_table change. Use
4590 fde->funcdef_number instead of rtnnum in output.
4591 (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4592
cc27e657
PB
45932004-05-04 Paolo Bonzini <bonzini@gnu.org>
4594 Richard Henderson <rth@redhat.com>
4595
4596 PR target/14899
4597
4598 * c-common.c (vector_types_convertible_p): New function.
4599 * c-typeck.c (comptypes): Recurse on vector types.
4600 (convert_for_assignment): Use vector_types_convertible_p.
4601 (digest_init): Use vector_types_convertible_p to check
4602 validness of constant vector initializers; otherwise treat
4603 them as scalars.
4604 * tree.c (make_or_reuse_type): New.
4605 (build_common_tree_nodes): Use it.
4606 * cp/call.c (standard_conversion): Likewise.
4607 * cp/typeck.c (comptypes): Recurse on vector types.
4608 (convert_for_assignment): Use vector_types_convertible_p.
cc27e657 4609
6fc8a30a
CD
46102004-05-04 Chris Demetriou <cgd@broadcom.com>
4611
4612 * config/mips/mips.c (override_options): Default to no
4613 generation of branch-likely operations when tuning for
4614 CPUs where they tend to have a negative performance impact
4615 (e.g., SB-1).
4616
6c89c39a
RK
46172004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4618
4619 * expr.c (store_constructor_field): Don't call store_constructor
4620 if bitsize is not a multiple of a byte.
4621
b5ba341f
RS
46222004-05-04 Richard Sandiford <rsandifo@redhat.com>
4623
4624 * reload1.c (inherit_piecemeal_p): New function.
4625 (emit_reload_insns): When reloading a group of hard registers, use
4626 inherit_piecemeal_p to decide whether the values of individual hard
4627 registers can be inherited.
4628
c6c8779b
L
46292004-05-04 H.J. Lu <hongjiu.lu@intel.com>
4630
4631 * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4632 * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4633 * config/t-linux (LIB2ADDEHDEP): Likewise.
4634
82c732f9
PB
46352004-05-04 Paul Brook <paul@codesourcery.com>
4636
4637 * config/arm/crti.asm: Push an even number of registers.
4638 * config/arm/crtn.asm: And restore them. Load via sp.
4639
92e838e2
PB
46402004-05-04 Paolo Bonzini <bonzini@gnu.org>
4641
4642 * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4643 Collect overhead information.
4644 (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL
4645 parameter and pass it through.
4646 (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add
4647 MEM_STAT_DECL parameter and pass it through.
4648 (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add
4649 MEM_STAT_DECL parameter and pass it through.
4650
d8ecbcdb
AH
46512004-05-03 Aldy Hernandez <aldyh@redhat.com>
4652
4653 * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4654
4655 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4656
4657 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4658 rs6000_hard_regno_nregs.
4659
2f7e5a0d
EC
46602004-05-03 Eric Christopher <echristo@redhat.com>
4661
4662 * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4663 prologue insn instead of setting up call.
4664 (s390_emit_epilogue): Ditto.
4665 * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4666 (define_constants): Add numbers for above patterns.
4667
38899e29
EC
46682004-05-03 Eric Christopher <echristo@redhat.com>
4669
4670 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4671 * config/s390/s390.c (s390_conditional_register_usage): ...here.
4672 * config/s390/s390-protos.h: Prototype.
4673
97d62313
JB
46742004-05-03 Joe Buck <jbuck@welsh-buck.org>
4675
4676 * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4677 assignment.
4678
03a53989
EC
46792004-05-03 Eric Christopher <echristo@redhat.com>
4680
4681 * config/mips/mips.md: Fix branch length attribute definition.
4682
318fec6d
AH
46832004-05-03 Aldy Hernandez <aldyh@redhat.com>
4684
4685 * config.gcc: Remove --enable-altivec support.
4686
4687 * config/rs6000/altivec-defs.h: Remove.
4688
553cba65
RO
46892004-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4690
4691 * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4692 * fixinc/fixincl.x: Regenerate.
4693
6adcf89d
UB
46942004-05-03 Uros Bizjak <uros@kss-loka.si>
4695
4696 * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4697 definition.
4698 (log?f2, log10?f2, log2?f2): Reimplement expanders with
4699 float_truncate insn.
4700 (*fxtractsf3, *fxtractdf3): Remove insn definition.
4701 (logb?f2): Reimplement expanders with float_truncate insn.
4702
834eb1f0
GS
47032004-05-03 Graham Stott <graham.stott@btinternet.com>
4704
4705 PR 14718
4706 * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4707 force_type_die for CONST_DECL.
4708
bb8a619e
SB
47092004-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
4710 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
178af0f3
EB
4711
4712 * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4713 tm-dwarf2.h to tm_file.
4714 (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4715 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4716 (ASM_DEBUG_SPEC): Delete.
4717
7a8e07c7
UB
47182004-05-03 Uros Bizjak <uros@kss-loka.si>
4719
4720 * optabs.h (enum optab_index): Add new OTI_expm1.
4721 (expm1_optab): Define corresponding macro.
4722 * optabs.c (init_optabs): Initialize expm1_optab.
4723 * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4724 patterns.
4725 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4726 using expm1_optab.
4727 (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4728 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4729
4730 * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4731 to implement expm1, expm1f and expm1l built-ins as inline x87
4732 intrinsics.
4733
5f2b9599
AO
47342004-05-02 Alexandre Oliva <aoliva@redhat.com>
4735
4736 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
4737 * config/frv/frv.md (*return_true, *return_false): New patterns.
4738
1e5b67ff
KH
47392004-05-02 Kazu Hirata <kazu@cs.umass.edu>
4740
4741 * rtl.h (PHI_NODE_P): Remove.
4742
cfa29a4c
EB
47432004-05-02 Eric Botcazou <ebotcazou@act-europe.fr>
4744
4745 PR middle-end/14988
4746 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4747 when passed -2 as 'align'.
4748 (put_var_into_stack): Use 'bool' as the type for the three local
4749 predicates. Adjust calls to put_reg_into_stack.
4750 When passed a CONCAT, instruct put_reg_into_stack to use
4751 a consecutive stack slot for the second part.
4752 (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4753 'consecutive_p' parameter. Turn the three predicates into 'bool'
4754 parameters. Retrieve the register mode from 'reg'.
4755 When consecutive_p is true, instruct assign_stack_local_1 to use
4756 BITS_PER_UNIT alignment.
4757 (put_addressof_into_stack): Use 'bool' as the type for the two
4758 local predicates. Adjust call to put_reg_into_stack.
4759
fc627530
KG
47602004-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4761
4762 * fold-const.c (fold_convert_const, fold): Add missing
4763 FIX_ROUND_EXPR case.
4764
afbe7e61
AO
47652004-05-02 Alexandre Oliva <aoliva@redhat.com>
4766
9850f34a
AO
4767 * configure.ac (FLEX, BISON): Only use tools from the build tree
4768 if build equals host.
4769 * configure: Rebuilt.
4770
764678d1
AO
4771 * config/frv/frv-protos.h (frv_expand_epilogue,
4772 frv_expand_fdpic_call): Add bool argument.
4773 * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4774 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4775 (frv_expand_epilogue): Use new argument to decide whether to emit
4776 return instruction or copy the return address to LR.
4777 (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4778 sibcalls.
4779 (sibcall_operand): New.
4780 * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4781 PLUS nor LABEL_REF. Add sibcall_operand.
4782 * config/frv/frv.md (call, call_value): Pass false to
4783 frv_expand_fdpic_call.
4784 (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4785 (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4786 sibcall_value_internal, sibcall_value_fdpicdi): New.
4787 (return_unsigned_true, return_unsigned_false): New.
4788 (epilogue): Adjust call to frv_expand_epilogue.
4789 (sibcall_epilogue): New.
4790
afbe7e61
AO
4791 * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4792 (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4793 before redefining them.
4794
ca3df643
KG
47952004-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4796
4797 * builtins.c (fold_fixed_mathfn): New function.
4798 (fold_builtin_lround, fold_builtin): Use it.
4799
f2c0cb15
JJ
48002004-05-01 Jakub Jelinek <jakub@redhat.com>
4801
4802 * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4803 also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4804
ea2637eb
KH
48052004-05-01 Kazu Hirata <kazu@cs.umass.edu>
4806
4807 * config/cris/cris.h: Revert my "fix comment typos" patch.
4808
d0cb84e9
RS
48092004-05-01 Richard Sandiford <rsandifo@redhat.com>
4810
6c3db3ab 4811 * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
d0cb84e9 4812
ebade076
FH
48132004-05-01 Falk Hueffner <falk@debian.org>
4814
4815 * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4816 builtin_insll): Disallow 0 as first input operand.
4817
0962c33d
FH
48182004-05-01 Falk Hueffner <falk@debian.org>
4819
4820 * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4821
e2655d15 48222004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
03a53989 4823
e2655d15 4824 PR middle-end/15054
03a53989 4825 * expr.c (expand_expr_real): Do not call preserve_temp_slots
e2655d15
UW
4826 on a TARGET_EXPR temp.
4827 * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4828 TARGET_EXPR temp slots.
4829
77306e3e
PB
48302004-05-01 Paolo Bonzini <bonzini@gnu.org>
4831
4832 * simplify-rtx.c (simplify_ternary_operation): When
4833 converting an IF_THEN_ELSE to a relational op, return
4834 correct mode.
4835
3bf05748
KG
48362004-04-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4837
4838 * builtins.c (fold_builtin_round): Fix comment typo.
4839 (fold_builtin_lround): New function.
4840 (fold_builtin): Use it.
4841
c0873231
AP
48422004-04-20 Andrew Pinski <pinskia@physics.uc.edu>
4843
4844 PR target/11608
4845 * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4846 more like the one in config/dbxelf.h.
4847
5c5214a9
ZW
48482004-04-30 Zack Weinberg <zack@codesourcery.com>
4849
4850 * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4851 and adjust definition accordingly.
4852 (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4853 (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4854 * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4855 VECTOR_TYPE.
4856
67214984
JM
48572004-04-30 Jason Merrill <jason@redhat.com>
4858
4859 PR c++/14587
4860 * config/i386/winnt.c (associated_type): Look for attributes on
4861 the TYPE_MAIN_VARIANT of *this.
4862 * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4863 apply the attributes to the variants.
4864
b73f075a
PB
48652004-04-30 Paul Brook <paul@codesourcery.com>
4866
4867 * config.gcc: Simplify arm --with-{cpu,tune} test.
4868 * config/arm/arm-cores.def: Document whitespace restrictions.
4869
5076da17
RO
48702004-04-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4871
4872 PR other/1963
4873 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4874
8a897bf9 48752004-04-30 Brian Ford <ford@vss.fsi.com>
bb8a619e
SB
4876 DJ Delorie <dj@redhat.com>
4877
4878 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4879 (DWARF2_DEBUGGING_INFO): Define to enable.
4880 (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4881 DWARF2.
4882 * configure.ac (Target-specific assembler checks)
4883 <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4884 relocs.
4885 * configure: Regenerate.
4886 * config.in: Likewise.
4887
4888 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4889 (ASM_OUPUT_DWARF_OFFSET): Define.
8a897bf9 4890
ed9676cf
AK
48912004-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
4892
4893 * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4894 (s390_emit_call): New function prototype added.
4895 (s390_tls_get_offset): Function removed.
4896 * config/s390/s390.c (s390_function_ok_for_sibcall,
4897 s390_call_saved_register_used_p): New functions.
4898 (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4899 (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4900 (s390_emit_tls_call_insn): New function.
4901 (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4902 emit_call_insn.
4903 (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5c5214a9 4904 (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
ed9676cf 4905 added.
5c5214a9 4906 * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
ed9676cf
AK
4907 register number used to hold the target address for sibcalls.
4908 * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4909 New expanders.
5c5214a9 4910 ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
ed9676cf 4911 "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5c5214a9 4912 ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
ed9676cf
AK
4913 Expanders removed.
4914 ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5c5214a9 4915 ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
ed9676cf
AK
4916 "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4917 ("epilogue"): Changed the call to s390_emit_epilogue to use the
4918 new parameter.
4919
1ae58c30
KH
49202004-04-30 Kazu Hirata <kazu@cs.umass.edu>
4921
4922 * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4923 cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4924 reg-stack.c, varasm.c, config/alpha/ev4.md,
4925 config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4926 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4927 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4928 config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
4929 config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
4930 config/ia64/itanium2.md, config/ip2k/ip2k.c,
4931 config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
4932 config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
4933 comment typos.
4934
78011587
PB
49352004-04-30 Paul Brook <paul@codesourcery.com>
4936
2d84a437 4937 * config.gcc: Default ep9312 to hard-float.
78011587
PB
4938 * config/arm/arm-cores.def: Add ARCH field.
4939 * config/arm/arm.c (FL_FOR_ARCH*): Define.
4940 (arm_arch_cirrus): New variable.
4941 (all_cores): Set and use arch.
4942 (all_architectures): Ditto.
4943 (arm_arch_name): New variable.
4944 (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
4945 Set and use arm_arch_cirrus.
4946 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
4947 (enum processor_type): Update ARM_CORE define.
4948 (enum target_cpus): Add. Replaces TARGET_CPU_* defines.
4949 (CPP_SPEC): Remove %(cpp_cpu_arch).
4950 (CPP_ARCH_DEFAULT_SPEC): Remove.
4951 (CPP_CPU_ARCH_SPEC): Remove.
4952 (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
4953 (FPUTYPE_DEFAULT): Don't define here.
4954
e344dbf3
R
49552004-04-30 J"orn Rennecke <joern.rennecke@superh.com>
4956
4957 * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
4958 updates too.
4959
65a939f7
PB
49602004-04-30 Paul Brook <paul@codesourcery.com>
4961
4962 * arm.c (arm_needs_doubleword_align): Use mode alignment.
4963
0bf87ea5
PB
49642004-04-30 Paolo Bonzini <bonzini@gnu.org>
4965
4966 * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
4967 vec_sububs.
4968 [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
4969 duplicates.
4970
a6bf61c7
UB
49712004-04-30 Uros Bizjak <uros@kss-loka.si>
4972
65a939f7
PB
4973 * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
4974 atan2?f3 expanders.
a6bf61c7 4975
150e407a
NC
49762004-04-29 Nick Clifton <nickc@redhat.com>
4977
4978 Bug 14093
4979 * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
4980 * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
4981 Delete static from definition.
4982 * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
4983
6862f97f
UB
49842004-04-30 Uros Bizjak <uros@kss-loka.si>
4985
65a939f7
PB
4986 * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
4987 UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
4988 <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
4989 <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
6862f97f 4990
c65a01af
RG
49912004-04-29 Richard Guenther <richard.guenther@uni-tuebingen.de>
4992
4993 * commom.opt (Wfatal-errors): Add it.
4994 * diagnostic.c (flag_fatal_errors): Define it.
4995 (diagnostic_action_after_output): Check for flag_fatal_errors.
4996 * flags.h (flag_fatal_errors): Declare it.
4997 * opts.c (common_handle_option): Add OPT_Wfatal_errors.
4998 * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
4999
d1c6a401
JZ
50002004-04-30 Josef Zlomek <zlomekj@suse.cz>
5001
5002 * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5003 blocks which have kill flag set.
5004
99c012a8
BE
50052004-04-29 Ben Elliston <bje@au.ibm.com>
5006
5007 * configure.ac (--with-as): Abort if user-supplied assembler
5008 cannot be executed.
5009 (--with-ld): Likewise for the linker.
5010 * configure: Regenerate.
5011
d2be4368
KG
50122004-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5013
5014 * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5015 isn't NULL before using it.
5016
15a6f2c3
RS
50172004-04-29 Richard Sandiford <rsandifo@redhat.com>
5018
5019 PR target/15189
5020 * config/mips/mips.md (load_df_low): Use default length.
5021 (load_df_high, store_df_high): Likewise.
5022
effa5d5d
KH
50232004-04-29 Kazu Hirata <kazu@cs.umass.edu>
5024
5025 * config/mips/mips.md, config/mips/sb1.md,
5026 config/rs6000/rs6000.c: Fix comment typos.
5027
2b8a92de
KH
50282004-04-29 Kazu Hirata <kazu@cs.umass.edu>
5029
5030 * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5031 Fix comment typos.
5032
8fd58397
DR
50332004-04-29 Douglas B Rupp <rupp@gnat.com>
5034
5035 * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5036 (delete_if_ordinary): Use above macro.
5037 * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5038 Update copyright.
5039 * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5040
56141a6a
RE
50412004-04-29 Richard Earnshaw <rearnsha@arm.com>
5042
5043 * c-decl.c (get_parm_info): Use the correct tag keywords when
5044 warning about type declarations in prototypes.
5045
2682e19f
PB
50462004-04-29 Paul Brook <paul@codesourcery.com>
5047
5048 * config.gcc: Pull list of cores from arm-cores.def.
5049
c6fb08ad
PB
50502004-04-29 Paolo Bonzini <bonzini@gnu.org>
5051
5052 * combine.c (combine_simplify_rtx): Adjust call to use
5053 simplify_relational_operation. Do not use SELECT_CC_MODE
5054 when a comparison already has a MODE_CC mode.
0bf87ea5
PB
5055
50562004-04-29 Paolo Bonzini <bonzini@gnu.org>
5057
c6fb08ad
PB
5058 (simplify_set): simplify_relational_operation may now
5059 return another relational expression.
5060 * cse.c (fold_rtx): simplify_relational_operation now
5061 takes of computing the comparison mode.
5062 * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5063 remove dead code.
5064 (do_compare_rtx_and_jump): Likewise.
5065 * integrate.c (subst_constants): simplify_relational_operation
5066 may now return another relational expression.
5067 * simplify-rtx.c (simplify_gen_relational): Move most code to
5068 the new simplify_relational_operation and
5069 simplify_relational_operation_1 functions.
5070 (simplify_relational_operation): Rewritten.
5071 (simplify_relational_operation_1): New function.
5072 (simplify_ternary_operation): simplify_relational_operation
5073 may now return another relational expression.
5c5214a9 5074 (simplify_rtx): Remove unnecessary temp variable.
c6fb08ad 5075
f964bd29
UB
50762004-04-29 Uros Bizjak <uros@kss-loka.si>
5077
2682e19f
PB
5078 * reg-stack.c (swap_to_top): New function.
5079 (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5080 swap_to_top().
5081 (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5c5214a9 5082 (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
2682e19f 5083 UNSPEC_FSCALE_EXP.
f964bd29 5084
2682e19f
PB
5085 * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5086 (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5087 (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5088 x87's fscale insn.
5089 (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5090 (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5091 patterns.
f964bd29 5092
cb83302c
SB
50932004-04-28 Serge Belyshev <1319@bot.ru>
5094
5095 PR 14944
5096 * coverage.c (read_counts_file): Fix usage of warning () call.
5097 * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5098
5ad7ae7f
BE
50992004-04-28 Ben Elliston <bje@au.ibm.com>
5100
5101 * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5102 options with "-" in the option index.
5103 (SPARC Options): Likewise.
5104 (M32R/D Options): Likewise.
5105
332d782c
KG
51062004-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5107
5108 * convert.c (convert_to_integer): Convert (long)round -> lround,
5109 etc.
5110
90f81f99
AP
51112004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
5112
5113 * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5114 Return false if we do not have fp register.
5115 (addrs_ok_for_quad_peep): Rename to ...
5116 (mems_ok_for_quad_peep): this.
5117 Add check for volatile memory.
5118 * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5119 Rename to ...
5120 (mems_ok_for_quad_peep): this.
5121 * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5122 to peephole2's.
5123 (lfq_power2): New instruction.
5124 (stfq_power2): Likewise.
5125
902edd36
JH
51262004-04-28 Jan Hubicka <jh@suse.cz>
5127
5128 PR c/15004
5129 * function.c (do_warn_unused_parameter): Break out form ...
5130 (expand_function_end): ... here; warn only when not using cgraphunit.
5131 * function.h (do_warn_unused_parameter): Declare.
5132 * cgraphunit.c: Include function.h.
5133 (cgraph_finalize_function): Do unused parameter warning.
5134 * Makefile.in (cgraphunit.o): Depend on function.h
5135
a89f5df3
JM
51362004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
5137
5138 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5139 calling install-info on $(DESTDIR)$(infodir)/dir already being
5140 present.
5141
40f0b3ee
PB
51422004-04-28 Paul Brook <paul@codesourcery.com>
5143
5144 * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5145
c2e2375e
UW
51462004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
5147
5c5214a9 5148 * gcse.c (find_moveable_store): Do not accept store insns with
c2e2375e
UW
5149 REG_EH_REGION note.
5150
9e1622ed
PB
51512004-04-28 Paul Brook <paul@codesourcery.com>
5152
5153 * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5154 * function.c (assign_temp): Ditto.
5155 * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5156
e0d4a859
PB
51572004-04-28 Paul Brook <paul@codesourcery.com>
5158
5159 * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5160
83532fb7
JZ
51612004-04-28 Josef Zlomek <zlomekj@suse.cz>
5162
5163 * var-tracking.c (variable_different_p): Add a parameter
5164 compare_current_location, compare current location of variable parts
5165 if it is true.
5166 (dataflow_set_different_1): Pass compare_current_location == false.
5167 (dataflow_set_different_2): Pass compare_current_location == false.
5168 (emit_notes_for_differences_1): Pass compare_current_location == true.
5169
cfa29496
UW
51702004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
5171
5172 * config/s390/s390.md ("casesi"): Mark jump table access as
5173 non-trapping and unchanging.
5174
23959f19
JDA
51752004-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5176
5177 PR debug/14829
5178 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all
5179 callers.
5180 (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5181 number for indexing hard_regno_nregs array.
5c5214a9 5182
2f70eed1
GK
51832004-04-27 Geoffrey Keating <geoffk@apple.com>
5184
5185 * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5186 * config/darwin-crt2.c: Only have contents on __ppc__.
5187
f1dfe704
BW
51882004-04-27 Bob Wilson <bob.wilson@acm.org>
5189
5190 * config/xtensa/xtensa.c (call_insn_operand): Check
5191 SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5192 * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5193 * config/xtensa/xtensa.md (call, call_value): Likewise.
5194
80408cac
WY
51952004-04-27 Wu Yongwei <adah@sh163.net>
5196
5197 * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5198 (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5199 (__gthread_mutex_init_function): Replace CreateMutex with
5200 initialization of custom mutex using CreateSemaphore.
5201 (__gthread_mutex_lock): Use InterlockedIncrement.
5202 (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5203 (__gthread_mutex_unlock): Use InterlockedDecrement and
5204 ReleaseSemaphore to unlock
5205 * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5206 __gthread_mutex_lock, __gthread_mutex_trylock,
5207 __gthread_mutex_unlock): Adjust to match inline versions in
5208 gthr-win32.h.
5209
70301b45
PB
52102004-04-27 Paul Brook <paul@codesourcery.com>
5211
5212 * config/arm/arm.c (arm_promote_prototypes): New function.
5213 (TARGET_PROMOTE_PROTOTYPES): Use it.
5214
4b763d77
PB
52152004-04-27 Paul Brook <paul@codesourcery.com>
5216
5217 * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5218
7053a0e2
BG
52192004-04-26 Bernard Giroud <bgiroud@free.fr>
5220
5221 * config/alpha.c (alpha_end_function): For OpenVMS gas,
5222 correctly output .pdesc directive before .end.
5223
6d7870d1
JW
52242004-04-26 James E Wilson <wilson@specifixinc.com>
5225
5226 Bug 14927
5227 * config/ia64/ia64.md (movxf): New local op0. Handle case where
5228 operands[0] is a SUBREG. Handle case where operands[1] is a GR reg.
5229
7dd7fb88
ZW
52302004-04-26 Zack Weinberg <zack@codesourcery.com>
5231
5232 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5233 * config/pa/pa-hpux10.h: Likewise.
5234 * config/pa/pa-hpux11.h: Likewise.
5235
488061c8
GK
52362004-04-26 Geoffrey Keating <geoffk@apple.com>
5237
5238 * doc/invoke.texi (Overall Options): Document default for -o
5239 for PCH files.
5240
2b92e7f5
RK
52412004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5242
5243 * builtins.c (expand_builtin_update_setjmp_buf): New function.
5244 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5245 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5246
3657dc3e
PB
52472004-04-26 Paul Brook <paul@codesourcery.com>
5248
5249 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5250
778ebdd9
PB
52512004-04-26 Paul Brook <paul@codesourcery.com>
5252
5253 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5254
7c95f621
RS
52552004-04-25 Roger Sayle <roger@eyesopen.com>
5256
5257 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5258 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and
5259 X % -1 as 0.
5260
29c246a7
HPN
52612004-04-26 Hans-Peter Nilsson <hp@bitrange.com>
5262
5263 PR bootstrap/15141
5264 * except.c (connect_post_landing_pads): Delete insns after the
5265 barrier when generating a unwind_resume_libfunc call.
5266
95df09f0
RK
52672004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5268
5269 PR/c++ 15119
5270 * tree.c (substitute_placeholder_in_expr, case 4): New case,
5271 for TARGET_EXPR.
5272
52732004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
060c5f00
ZD
5274
5275 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5276 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5277 inhibit_libc is defined.
5278
39ba1719
RS
52792004-04-25 Richard Sandiford <rsandifo@redhat.com>
5280
5281 * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5282 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5283 * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5284 (TARGET_SCHED_VARIABLE_ISSUE): Define.
5285 (mips_adjust_cost): Move later in file, next to other sched hooks.
5286 (mips_macc_chains_last_hilo): New variable.
5287 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5288 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5289 * config/mips/mips.md (may_clobber_hilo): New attribute.
5290
d3535e80
RS
52912004-04-24 Roger Sayle <roger@eyesopen.com>
5292 Bruce Korb <bkorb@gnu.org>
5293
5294 * fixinc/inclhack.def (aix_syswait_2): New fix.
5295 * fixinc/fixincl.x: Regenerate.
5296 * fixinc/tests/base/sys/wait.h: Update for new test.
5297
44688022
AM
52982004-04-24 Alan Modra <amodra@bigpond.net.au>
5299
5300 PR target/14960
5301 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5302 to non_fixed_size, and leave out fixed_size from the sum.
5303 (generate_set_vrsave): Correct clobbers.
5304 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5305 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5306 (rs6000_libcall_value): Likewise.
5307 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5308 (FUNCTION_ARG_REGNO_P): Likewise.
5309
77278891
UW
53102004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
5311
5312 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5313 is a CONST_INT.
5314 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5315 with NARROW_OP1 instead of OP1.
5316
170f9e63
UW
53172004-04-24 Ulrich Weigand <uweigand@de.ibm.com>
5318
5319 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5320 and __s390x__ hosts.
5321
d1c38823
ZD
53222004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5323
5324 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5325 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5326 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5327 BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5328 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5329 * builtins.c (expand_builtin_fork_or_exec): New.
5330 (expand_builtin): Call it.
5331 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5332 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5333 * c-common.c (PID_TYPE): New macro.
5334 (c_common_nodes_and_builtins): Initialize pid_type_node.
5335 * calls.c (special_function_p): Do not handle fork and exec.
5336 (expand_call): Do not handle ECF_FORK_OR_EXEC.
5337 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5338 __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5339 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5340 __gcov_execv, __gcov_execvp, __gcov_execve): New.
5341 * tree.h (enum tree_index): Add TI_PID_TYPE.
5342 (pid_type_node): New macro.
5343 (ECF_FORK_OR_EXEC): Removed.
5344
1548580c
EB
53452004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr>
5346
5347 PR optimization/13985
5348 * cfgloopmanip.c (fix_loop_placements): New prototype.
5349 Call fix_bb_placements on the preheader of loops that have
5350 been reparented.
5351 (remove_path): Adjust call to fix_loop_placements.
5352
9b2d02a0
AP
53532004-04-23 Andrew Pinski <pinskia@physics.uc.edu>
5354
5355 * config/darwin7.h: New file.
5356 * config.gcc (*-*-darwin*): Add darwin7.h if the
5357 version is greater than 6.
5358 * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5359 (MATH_LIBRARY): Wrap in ifdefs.
5360
01d4c813
DJ
53612004-04-23 Daniel Jacobowitz <drow@mvista.com>
5362
5363 * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5364 loading iWMMXt registers with a frame pointer. Use post-increment
5365 without a frame pointer.
5366 (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5367
7797ff53
PB
53682004-04-23 Paolo Bonzini <bonzini@gnu.org>
5369
5370 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5371 mode" rather than "-funit-at-a-time" since -O2 enables it
5372 without requiring -f* options. Refer to -fprofile-generate and
5373 -fprofile-use correctly. Move -funit-at-a-time among options
5374 enabled by -O. Add information about unit-at-a-time caveats.
5375
500bee0a
PB
53762004-04-22 Per Bothner <per@bothner.com>
5377
5378 * line-map.h (struct line_maps): New field highest_line.
5379 (linemap_position_for_column): Make non-inline function.
5380 (LINEMAP_POSITION_FOR_COLUMN): New macro.
5381 * line-map.c (linemap_init): Clear highest_line field.
5382 (linemap_add): Set highest_line field.
5383 (linemap_line_start): Minor optimization - use highest_line field.
5384 Reduce maximum column hint to 10000. Update highest_line field.
5385 (linemap_position_for_column): Moved from line-map.h. Optimize a bit.
5386 * cpphash.h (struct cpp_reader): Remove line field - instead use
5387 line_table->highest_line.
5388 (saved_line): Remove unused field.
5389 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
5390 Use line_table's highest_line field instead of cpp_reader's line.
5391 * cpplib.c (start_directive): Likewise use highest_line field.
5392 (do_line, do_linemarker): Likewise just use newest map.
5393 (_cpp_do_file_change): Don't need to set cpp_reader's line field.
5394 * cpperror.c (cpp_error): Likewise use highest_line field.
5395 * cppfiles.c (open_file_failed: Likewise.
5396 (cpp_make_system_header): Likewise use newest map and highest_line.
5397 * cppinit.c (cpp_create_reader): Don't initialize removed field.
5398 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5399 skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5400 _cpp_lex_direct): Likewise use highest_line.
5401 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
5402 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
5403 and use newest map.
5404 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
5405 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
5406 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
5407
8efcd34f
AM
54082004-04-23 Alan Modra <amodra@bigpond.net.au>
5409
9344fdb9 5410 PR bootstrap/14992
8efcd34f
AM
5411 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5412 * config/linux.h (USE_LD_AS_NEEDED): Define.
5413 * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5414 * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5415 * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5416 * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5417 * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5418 * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5419 * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5420
3092d0fc
PB
54212004-04-22 Per Bothner <per@bothner.com>
5422
5423 * cppinit.c (cpp_read_main_file): Return NULL rather than false.
5424 Fixes PR preprocessor/15067.
5425
e203404e
AS
54262004-04-23 Andreas Schwab <schwab@suse.de>
5427
5428 * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5429 avoid aliasing warning.
5430
bade3a00 54312004-04-22 Jan Hubicka <jh@suse.cz>
bdabb153 5432 Mostafa Hagog <mustafa@il.ibm.com>
bade3a00
JH
5433
5434 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5435 * cfgloopanal.c (expected_loop_iterations): Change the return value
5436
fb5d4a68
JJ
54372004-04-22 Jakub Jelinek <jakub@redhat.com>
5438
5439 * cselib.h (struct elt_loc_list): Remove canon_loc field.
5440 * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5441 (cselib_invalidate_mem): Remove all canon_loc and canon_x
5442 traces.
5443
b10e5b3a
JZ
54442004-04-22 Josef Zlomek <zlomekj@suse.cz>
5445
5446 Revert
5447 2004-04-20 Josef Zlomek <zlomekj@suse.cz>
5448
5449 * var-tracking.c (variable_part_different_p): Variable parts
5450 differ when the most recent locations differ.
5451
827555ea
RS
54522004-04-22 Richard Sandiford <rsandifo@redhat.com>
5453
5454 * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5455 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5456 (embedded_pic_offset): Delete.
5457 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other
5458 MASK_* constants.
5459 (TARGET_EMBEDDED_PIC): Delete.
5460 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5461 (ASM_SPEC): Remove -membedded-pic.
5462 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5463 (ASM_OUTPUT_CASE_LABEL): Likewise.
5464 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5465 * config/mips/windiss.h (ASM_SPEC): Likewise.
5466 * config/mips/mips.c (struct machine_function): Remove
5467 embedded_pic_fnaddr_rtx.
5468 (TARGET_ENCODE_SECTION_INFO): Remove override.
5469 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5470 (override_options): Remove -membedded-pic handling.
5471 (print_operand): Remove handling of '%S'.
5472 (mips_select_section: Remove -membedded-pic handling.
5473 (mips_encode_section_info): Delete.
5474 (mips_output_conditional_branch): Remove mention of -membedded-pic.
5475 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5476 -membedded-pic handling.
5477 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5478
00ca716b
AM
54792004-04-22 Alan Modra <amodra@bigpond.net.au>
5480
5481 * var-tracking.c (frame_base_decl): Remove useless GTY.
5482
e4463bf1
AH
54832004-04-21 Aldy Hernandez <aldyh@redhat.com>
5484
5485 * config/rs6000/rs6000.c (rs6000_override_options): Error when
5486 user wants altivec and e500 instructions.
5487
e24e0aa7
L
54882004-04-21 H.J. Lu <hongjiu.lu@intel.com>
5489
5490 PR target/14813
5491 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5492 in .init_array section to ...
5493 * config/ia64/crtbegin.asm: Here.
5494
5495 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5496 and hidden if HAVE_INITFINI_ARRAY is defined.
5497
cb7761f5
JW
54982004-04-21 James E Wilson <wilson@specifixinc.com>
5499
50d32cf6
JW
5500 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5501 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5502 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5503 (fp_register_operand, lo_operand): New.
5504 (mips_rtx_costs): Add TUNE_SB1 support.
5505 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support.
5506 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5507 (mips_multipass_dfa_lookahead): New.
5508 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5509 TUNE_SB1): New.
5510 (TARGET_SWITCHES): Add -mfp-exceptions support.
5511 (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5512 (BRANCH_COST): Fix whitespace.
5513 * config/mips/mips.md: Include sb1.md.
5514 * config/mips/sb1.md: New file.
5515 * doc/invoke.texi: Document -mfp-exceptions.
5516
cb7761f5
JW
5517 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix
5518 comment.
5519 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5520 (fixincl.o-warn): Delete.
5521
a031e781
AP
55222004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
5523
5524 * config/rs6000/rs6000 (print_operand) ['z']:
5525 Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5526
06a6469a
DJ
55272004-04-21 Daniel Jacobowitz <drow@mvista.com>
5528
5529 * config.gcc: Support --with-arch=iwmmxt for ARM.
5530
665acd1e
RK
55312004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5532
5533 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5534 in two more places; remove unneeded force_reg
5535
f9da97f0
AP
55362004-04-21 Andrew Pinski <pinskia@physics.uc.edu>
5537
5538 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5539 for TARGET_MACHO.
5540 (print_operand): For TARGET_MACHO check to see if we need a stub
5541 and output one if we need it.
de3c6d93
AP
5542
5543 PR debug/15033
5544 * dwarf2out.c (rtl_for_decl_location): Check for NULL
5545 rtl.
5546
75293ad6
JW
55472004-04-20 James E Wilson <wilson@specifixinc.com>
5548
5549 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5550 (vall_value_gp): Likewise.
5551
8b495402 55522004-04-20 DJ Delorie <dj@redhat.com>
7dd7fb88 5553
8b495402
DD
5554 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5555 variables stored in word registers, then in memory.
5556
77a705e4
EC
55572004-04-20 Eric Christopher <echristo@redhat.com>
5558
5559 * cp/parser.c (cp_parser_declaration): Move translate
5560 up before tokens are lexed.
5561
c56122d8
UB
55622004-04-20 Uros Bizjak <uros@kss-loka.si>
5563
5564 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5565 (asin_optab, acos_optab): Define corresponding macros.
5566 * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5567 * genopinit.c (optabs): Implement asin_optab and acos_optab
5568 using asin?f2 and acos?f2 patterns.
5569 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5570 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5571 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5572 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5573
5574 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5575 acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5576 acos, acosf and acosl built-ins as inline x87 intrinsics.
5577
386d3a16
PB
55782004-04-20 Paul Brook <paul@codesourcery.com>
5579
5580 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5581
7aebacee
PB
55822004-04-20 Paul Brook <paul@codesourcery.com>
5583
5584 * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5585
a7b1dc36
PB
55862004-04-20 Paolo Bonzini <bonzini@gnu.org>
5587
5588 Revert part of 2004-04-17 change that moved -frename-registers
5589 to -O1. -frename-registers is buggy.
5590
5591 * toplev.c (flag_rename_registers): Initialize to 0.
5592 * doc/invoke.texi (Optimize options): Move -frename-registers
5593 to "Not triggered by any -O level" section. Adjust commentary
5594 accordingly.
77a705e4 5595
1548580c 55962004-04-20 Anil Paranjpe <anilp1@kpitcummins.com>
57bef48e
AP
5597
5598 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5599
169304de
RS
56002004-04-20 Richard Sandiford <rsandifo@redhat.com>
5601
5602 * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5603 for mflo and mfhi instructions.
5604 (mips_output_move): Remove mflo and mfhi handling.
5605 * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5606 (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5607 Likewise various define_peephole2s.
5608 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5609 alternatives.
5610 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5611 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5612 (mfhilo_di, mfhilo_si): New patterns.
5613
c6ca23fb
JZ
56142004-04-20 Josef Zlomek <zlomekj@suse.cz>
5615
5616 * function.c (assign_parms): Force
5617 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5618
6f615a28
JZ
56192004-04-20 Josef Zlomek <zlomekj@suse.cz>
5620
5621 * var-tracking.c (variable_part_different_p): Variable parts differ
5622 when the most recent locations differ.
5623
a1bac22c
JW
56242004-04-19 James E Wilson <wilson@specifixinc.com>
5625
5626 * rtl.h (reg_set_last): Delete declaration.
5627 * rtlanal.c (reg_set_last): Delete.
5628
e419fe91
RS
56292004-04-19 Roger Sayle <roger@eyesopen.com>
5630
5631 * fold-const.c (fold_convert): Make function extern/public.
5632 * tree.h (fold_convert): Prototype here.
5633 * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5634 expand_builtin_strrchr, expand_builtin_strpbrk,
5635 expand_builtin_mempcpy, expand_builtin_bcopy,
5636 expand_builtin_bzero, expand_builtin_memcmp,
5637 expand_builtin_strcmp, expand_builtin_strncmp,
5638 stabilize_va_list, expand_builtin_sprintf,
5639 fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5640 fold_builtin_exponent, fold_builtin_mempcpy,
5641 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5642 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5643 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5644
423c1189
AH
56452004-04-19 Aldy Hernandez <aldyh@redhat.com>
5646
7dd7fb88
ZW
5647 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5648 (move_from_CR_gt_bit): New.
5649 (cceq_ior_compare): Name previously unnamed pattern. Disable for
5650 E500.
5651 (cceq_rev_compare): Name previously unnamed pattern. Allow for
5652 E500.
5653
5654 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5655 (tstsfeq_gpr): Same.
5656 (cmpsfgt_gpr): Same.
5657 (tstsfgt_gpr): Same.
5658 (cmpsflt_gpr): Same.
5659 (tstsflt_gpr): Same.
5660 (e500_cceq_ior_compare): New.
5661 (e500_flip_gt_bit): New.
5662
5663 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5664 (print_operand): Add 'c' and 'D'.
5665 (rs6000_generate_compare): Rewrite to generate correct rtl.
5666 (rs6000_emit_sCOND): Handle E500.
5667 (output_cbranch): Adjust for changes in rs6000_generate_compare.
5668 (output_e500_flip_gt_bit): New.
5669
5670 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5671 Protoize.
423c1189 5672
d2beeae7
EC
56732004-04-19 Eric Christopher <echristo@redhat.com>
5674
5675 * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5676
06e7f299
DE
56772004-04-19 David Edelsohn <edelsohn@gnu.org>
5678
5679 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5680 fix information.
d2beeae7 5681
8df5a2b4
RO
56822004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5683
5684 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5685 download URL.
5686
9ca75f15
DJ
56872004-04-19 Daniel Jacobowitz <drow@mvista.com>
5688
5689 * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5690 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after.
5691
4b493aa5
AP
56922004-04-19 Andrew PInski <pinskia@physics.uc.edu>
5693
66a5d24b
AP
5694 * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5695 (fold_builtin): Update caller to match.
5696
4b493aa5
AP
5697 PR bootstrap/15009
5698 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5699
5700 PR bootstrap/14999
5701 * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5702
3d8f2528
RK
57032004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5704
a3d71605
RK
5705 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5706
3d8f2528
RK
5707 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5708 (expand_mult_highpart_optab): Likewise.
5709 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5710
6f6c1f6d
PB
57112004-04-19 Paul Brook <paul@codesourcery.com>
5712
5713 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5714 floatunssisf2, floatunssidf2): New patterns.
5715
fea77ed9
MM
57162004-04-18 Mark Mitchell <mark@codesourcery.com>
5717
33adcb6c
MM
5718 PR other/14918
5719 * doc/invoke.texi (-fprofile-generate): Document requirement to
5720 use -fprofile-generate when linking.
5721
fea77ed9
MM
5722 * doc/extend.texi (Strong Using): Warn users against using this
5723 feature.
5724
76cbf5bf
RS
57252004-04-18 Richard Sandiford <rsandifo@redhat.com>
5726
5727 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5728 * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5729 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5730 * config/mips/mips.c (struct mips16_constant): Renamed from struct
5731 constant. Propogate change throughout file.
5732 (struct machine_function): Remove insns_len.
5733 (mips_string_length, mips16_strings, string_constants): Delete.
5734 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5735 when generating mips16 code. Remove special mips16 treatment of
5736 string constants.
5737 (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5738 to have the form LABEL+CONSTANT.
5739 (mips_symbolic_address_p): Fix comment.
5740 (m16_usym8_4, m16_usym5_4): Delete.
5741 (mips_output_function_epilogue): Remove mips16 string handling.
5742 (mips_output_mi_thunk): Call mips16_lay_out_constants.
5743 (mips_select_section, mips_encode_section_info): Remove mips16
5744 string handling.
5745 (struct mips16_constant_pool): New.
5746 (add_constant): Take a mips16_constant_pool structure. Keep pool
5747 sorted into order of ascending mode size. Keep track of the highest
5748 possible start address, taking padding and the masking of the base PC
5749 value into account.
5750 (dump_constants_1): New function, split out from dump_constants.
5751 Handle vector constants. Use gen_consttable_{int,float} rather than
5752 separate functions for each mode.
5753 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align
5754 rather than separate functions for each alignment.
5755 (mips_find_symbol): Delete.
5756 (mips16_insn_length): New function, split out from
5757 mips16_lay_out_constants.
5758 (mips16_rewrite_pool_refs): New function.
5759 (mips16_lay_out_constants): Rework. Remove string handling.
5760 Always create an inline constant pool.
5761 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5762 (UNSPEC_ALIGN): New constants.
5763 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5764 (UNSPEC_ALIGN_[248]): Delete.
5765 (consttable_int, consttable_float, align): New patterns.
5766 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5767
8d33585c
AH
57682004-04-17 Aldy Hernandez <aldyh@redhat.com>
5769
5770 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5771 __unn_args_eq.
5772
03e007d7
AM
57732004-04-17 Alan Modra <amodra@bigpond.net.au>
5774
5775 PR target/14715
5776 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5777 with STARTING_FRAME_OFFSET.
5778
3bd06df7
RS
57792004-04-17 Richard Sandiford <rsandifo@redhat.com>
5780
5781 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5782 * config/mips/mips.c (macc_msac_operand): New function.
5783 * config/mips/mips.md (*msac): Move after *macc.
5784 (*msac2): New. Generalize macc-related peepholes so that they apply
5785 to msac too.
5786
38d396e5
PB
57872004-04-17 Paolo Bonzini <bonzini@gnu.org>
5788
5789 * opts.c (decode_options): Do not enable flag_rename_registers
5790 and flag_web at -O3.
5791 * toplev.c (flag_rename_registers): Initialize
5792 flag_rename_registers and flag_web to
5793 AUTODETECT_FLAG_VAR_TRACKING.
5794 (default_debug_hooks): New global.
5795 (process_options): Initialize default_debug_hooks. Warn if
5796 -fvar-tracking specified but not supported by the current
5797 debug format. Do not run var tracking at -O0 or if not
5798 supported by the current debug format, even if
5799 -fvar-tracking was given. If -fno-rename-registers
5800 is not specified, always run register renaming if var
5801 tracking is supported by the default debugging information
5802 format for the target, and we are at -O1 or higher; similarly
5803 for -fweb, but only at -O2 or higher.
5804 * doc/invoke.texi (Optimize Options): Document this.
5805
82e923f6
RS
58062004-04-17 Richard Sandiford <rsandifo@redhat.com>
5807
5808 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5809 * configure: Regenerate.
5810
f645e2bd
RS
58112004-04-17 Richard Sandiford <rsandifo@redhat.com>
5812
5813 * gcc.c (used_arg): Check whether an option has been removed.
5814
04db08db
RO
58152004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5816
5817 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5818 debugging on Solaris 7 and up.
5819
7e270317
RO
58202004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5821
5822 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5823 IRIX 5 port.
5824 Remove -save-temps workaround, handled automatically.
5825 Require GNU binutils 2.15 for debugging.
5826 Remove SGI make warnings since GNU make is now required.
5827 (Specific, mips-sgi-irix6): Some markup fixes.
5828 Describe MIPSpro C problems and workarounds.
5829 Mention working O32 ABI support.
5830 Recommend GNU as 2.15 for O32 with debugging.
5831 Remove description of fixed structure pass/return bug.
5832
2d49ce67
DD
58332004-04-16 DJ Delorie <dj@redhat.com>
5834
5835 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5836 TYPE_FIELDS.
5837 (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5838
41067a2f
JDA
58392004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5840
e6b75edc
JDA
5841 * pa.md: Remove unnecessary declarations for asm_out_file.
5842
7945b276
JDA
5843 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5844 SAR register. Fix comment.
5845 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5846 (%cr11).
5847
41067a2f
JDA
5848 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5849
c805f22e
NC
58502004-04-16 Nick Clifton <nickc@redhat.com>
5851
5852 * config/arm/arm.c (arm_override_options): Revert previous patch.
5853 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5854 be safely built.
5855
8a897efe
KI
58562004-04-16 Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
5857
5858 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5859 bug.
5860 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5861 TARGET_DEFAULT): Changed. Ditto.
5862 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5863 TARGET_ENDIAN_DEFAULT): Added. Ditto.
5864 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5865 (TARGET_ENDIAN_DEFAULT): Added.
5866
b069dd3f
KG
58672004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5868
5869 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5870 ATTR_CONST_NOTHROW_LIST.
5871
df28deda
KG
58722004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5873
5874 PR/middle-end 14915
5875 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5876 BITS_BIG_ENDIAN.
5877
c87fbb0a
PH
58782004-04-15 Pat Haugen <pthaugen@us.ibm.com>
5879
5880 * ra-debug.c (ra_print_rtx): Add break's to case legs.
5881
ea7b98d0
JW
58822004-04-14 James E Wilson <wilson@specifixinc.com>
5883
5884 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5885
69f9a345
NN
58862004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
5887
5888 * libada-mk.in: New file.
5889 * configure.ac: Create libada-mk from libada-mk.in.
5890 * configure: Regenerate.
5891
88b28a31
UB
58922004-04-14 Uros Bizjak <uros@kss-loka.si>
5893
5894 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5895 (logb_optab, ilogb_optab): Define corresponding macros.
5896 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5897 * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5898 using logb?f2 and ilogb?i2 patterns.
5899 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5900 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5901 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5902 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5903
5904 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5905 and UNSPEC_XTRACT_EXP.
5906
5907 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5908 patterns to implement fxtract x87 instruction.
5909 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5910 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5911 intrinsics.
5912 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5913 x87's fxtract insn.
5914
ec6e4092
EC
59152004-04-14 Eric Christopher <echristo@redhat.com>
5916
5917 * config/mips/t-elf: Enable multilibs by default.
5918
ef482a86
AT
59192004-04-14 Andreas Tobler <a.tobler@schweiz.ch>
5920
5921 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5922 previous fix to check HAVE_return at runtime too.
5923
cd2b7af0
NC
59242004-04-14 Nick Clifton <nickc@redhat.com>
5925
5926 * config/arm/arm.c (arm_override_options): If the user has not
5927 specified an ABI, then default to AAPCS for the iWMMXt processor.
5928 * config/arm/t-xscale-elf: Remove redundant multilib specifications.
5929 * config/arm/t-xscale-coff: Likewise.
5930
61218d19
KG
59312004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5932
5933 * builtins.c (fold_builtin_isdigit): New.
5934 (fold_builtin): Handle BUILT_IN_ISDIGIT.
5935 * defaults.h: Add TARGET_DIGIT0 and sort.
5936 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
5937
a69934e0
KG
59382004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5939
5940 * builtins.c (fold_builtin_cabs, fold_builtin): Use
5941 `mathfn_built_in' to determine the new builtin.
5942 * fold-const.c (fold): Likewise.
5943
74b9f2d5
RS
59442004-04-14 Richard Sandiford <rsandifo@redhat.com>
5945
5946 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
5947 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
5948 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
5949 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
5950 (ASM_SPEC): Update accordingly.
5951 * config/mips/mips.c: Update after above renaming.
5952 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
5953 * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
5954
540554f4
JW
59552004-04-13 James E Wilson <wilson@specifixinc.com>
5956
5957 * c-opt.c (c_common_post_options): If this_input_filename is NULL,
5958 increment errorcount and return false instead of true.
5959
a072d43b
UB
59602004-04-13 Uros Bizjak <uros@kss-loka.si>:
5961
5962 * optabs.c (expand_twoval_unop): Reorder function arguments.
5963 * builtins.c (expand_builtin_mathfn_3): Update calls to
5964 expand_twoval_unop.
5965
5966 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
5967 and UNSPEC_TAN_TAN. Add missing comment.
5968
5969 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
5970 patterns to implement fptan x87 instruction.
5971 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
5972 and tanl built-ins as inline x87 intrinsics. Define corresponding
5973 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
5974 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
5975 x87's fptan insn.
5976
b50b729d
RH
59772004-03-13 Richard Henderson <rth@redhat.com>
5978
5979 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
5980 for LABEL_REFs.
5981
3a4bdd05
RH
5982 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
5983 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
5984 * doc/invoke.texi: Update to match.
5985
73ad3de5
RH
5986 * varasm.c (unlikely_text_section): Use assemble_align instead of
5987 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately
5988 correct alignment argument.
5989
9532c14f
UW
59902004-04-13 Ulrich Weigand <uweigand@de.ibm.com>
5991
5992 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
5993 after setting reg_last_reload_reg for optional output reloads.
5994
3d3947a9
FJ
59952004-04-12 Fariborz Jahanian <fjahanian@apple.com>
5996
5997 * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
5998 Definition of these two macros are corrected by adding
5999 matchine right paren.
6000
f778cbf0
JL
60012004-04-12 Jonathan Larmour <jifl@eCosCentric.com>
6002
6003 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6004
5ea9cb6e
RS
60052004-04-12 Roger Sayle <roger@eyesopen.com>
6006
6007 * config/i386/i386.c (output_387_reg_move): New function.
6008 * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6009 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6010 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6011 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6012 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6013
1c9766da
RK
60142004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6015
6016 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6017 TYPE_DECL.
6018 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6019 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6020 * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6021 Use skip_simple_arithmetic to find SAVE_EXPR.
6022 (force_type_save_exprs, force_type_save_exprs_1): New functions.
6023 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6024 Properly chain multiple pointers.
6025 (copy_tree_r): Copy a TYPE_DECL.
6026 * tree.c (variably_modified_type_p): Add some missing tests and
6027 make some other minor changes.
6028 * tree.h (force_type_save_exprs): New declaration.
6029
1e9b78b0
RS
60302004-04-12 Roger Sayle <roger@eyesopen.com>
6031
6032 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6033 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has
6034 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs.
6035 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert
6036 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize
6037 x%-1 into 0 (or x&0 if x has side-effects).
6038
fef98bf2
AH
60392004-04-11 Aldy Hernandez <aldyh@redhat.com>
6040
6041 * config/rs6000/rs6000.md: Document why a pattern is not
6042 available.
6043
6044 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6045 of floats on the E500.
6046 (branch_positive_comparison_operator): Do not allow NE even on the
6047 E500.
6048
642af3be
AH
60492004-04-11 Aldy Hernandez <aldyh@redhat.com>
6050
6051 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6052 in_text_unlikely_section to in_unlikely_text_section.
6053
b3e65ebb
RS
60542004-04-11 Roger Sayle <roger@eyesopen.com>
6055
6056 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak
6057 calling convention to allow a NULL_TREE to be returned. Factor
6058 sanity checks from callers, return NULL_TREE when appropriate.
6059 (fold): Handle COMPOUND_EXPR operands of binary expressions
6060 before COND_EXPR operands. Use reorder_operands_p(a,b) to check
6061 whether a op (b,c) can be rewritten as (b, a op c). Simplify
6062 calls to fold_binary_op_with_conditional_arg.
6063
19d33948
KG
60642004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6065
6066 * config/mips/iris5.h (current_section_flags): Add
6067 in_unlikely_executed_text and default case.
6068
cf22ce3c
AT
60692004-04-11 Andreas Tobler <a.tobler@schweiz.ch>
6070
6071 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6072 failure on solaris. Place ifdef HAVE_return around gen_ret call.
6073 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6074 HAVE_return and place it around the place where it is needed.
6075
34982294
AP
60762004-04-11 Andrew Pinski <pinskia@physics.uc.edu>
6077
6078 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6079 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6080 and NORMAL_TEXT_SECTION_NAME.
6081 (unlikely_text_section): Check targetm.have_named_sections
6082 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6083 instead of SECTION_FORMAT_STRING.
6084 * config/mips/iris5.h (current_section_name): Add
6085 in_unlikely_executed_text case and move the abort into the switch.
6086 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6087 (NORMAL_TEXT_SECTION_NAME): Remove.
6088 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6089 (SECTION_FORMAT_STRING): Remove.
6090 * defaults.h (SECTION_FORMAT_STRING): Remove.
6091 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6092 (SECTION_FORMAT_STRING): Remove.
6093
c7e1876b
JM
60942004-04-10 Joseph S. Myers <jsm@polyomino.org.uk>
6095
6096 * c-typeck.c (common_type): Prefer long long to long when same
6097 precision.
6098
7c3ac422
ZW
60992004-04-09 Zack Weinberg <zack@codesourcery.com>
6100
6101 PR 14887
6102 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6103 mode argument.
6104 * config/ia64/ia64.c (ia64_hpux_file_end): Check
6105 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6106
0b24db88
RS
61072004-04-09 Roger Sayle <roger@eyesopen.com>
6108
6109 * simplify-rtx.c (mode_signbit_p): New function to check whether
6110 an RTX is an immediate constant that represents the most significant
6111 bit of a given machine mode.
6112 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6113 C is the sign bit.
6114 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6115 when C2 is the sign bit.
6116 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6117 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6118 sign bit.
6119
ce58118c
KG
61202004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6121
6122 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6123 TYPE_MODE.
6124
c29726e2
AP
61252004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
6126
6127 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6128 of TREE_READONLY for types.
6129
750054a2
CT
61302004-04-09 Caroline Tice <ctice@apple.com>
6131
7c3ac422 6132 * basic-block.h (struct edge_def): Add new field, crossing_edge.
750054a2
CT
6133 (struct basic_block_def): Add new field, partition.
6134 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
6135 definitions.
7c3ac422 6136 (partition_hot_cold_basic_blocks): Add extern function
750054a2 6137 declaration.
7c3ac422 6138 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
750054a2
CT
6139 include statements.
6140 (N_ROUNDS): Increase the maximum number of rounds by 1.
6141 (branch_threshold): Add array value for new round.
6142 (exec_threshold): Add array value for new round.
6143 (push_to_next_round_p): New function.
6144 (add_unlikely_executed_notes): New function.
6145 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6146 (mark_bb_for_unlikely_executed_section): New function.
6147 (add_labels_and_missing_jumps): New function.
6148 (add_reg_crossing_jump_notes): New function.
6149 (fix_up_fall_thru_edges): New function.
6150 (find_jump_block): New function.
6151 (fix_crossing_conditional_branches): New function.
6152 (fix_crossing_unconditional_branches): New function.
6153 (fix_edges_for_rarely_executed_code): New function.
6154 (partition_hot_cold_basic_blocks): New function.
6155 (find_traces): Add an extra round for partitioning hot/cold
6156 basic blocks.
6157 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
6158 and only cold blocks, into the last (extra) round of collecting traces.
7c3ac422 6159 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
750054a2 6160 over crossing edges.
7c3ac422 6161 (bb_to_key): Add code to correctly identify cold blocks when
750054a2
CT
6162 doing partitioning.
6163 (connect_traces): Modify to connect all the non-cold traces first, then
6164 go back and connect up all the cold traces.
6165 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
6166 * cfg.c (entry_exit_blocks): Add initialization for partition field in
6167 entry and exit blocks.
7c3ac422 6168 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
750054a2
CT
6169 if we are doing hot/cold partitioning.
6170 * cfgcleanup.c (cfglayout.h): Add new include statement.
7c3ac422 6171 (try_simplify_condjump): Modify to not attempt on blocks with jumps
750054a2
CT
6172 that cross section boundaries.
6173 (try_forward_edges): Likewise.
6174 (merge_blocks_move_predecessor_nojumps): Likewise.
6175 (merge_blocks_move_successor_nojumps): Likewise.
6176 (merge_blocks_move): Likewise.
6177 (try_crossjump_to_edge): Modify to not attempt after we have done
6178 the block partitioning.
6179 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6180 cross section boundaries.
6181 (try_optimize_cfg): Likewise.
6182 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6183 jumps that cross section boundaries.
7c3ac422 6184 * cfglayout.c (flags.h): Add new include statement.
750054a2 6185 (update_unlikely_executed_notes): New function.
7c3ac422
ZW
6186 (fixup_reorder_chain): Add code so when a new jumping basic block is
6187 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
750054a2
CT
6188 updated appropriately.
6189 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
6190 introduced by this optimization.
7c3ac422
ZW
6191 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
6192 extern function declaration.
750054a2
CT
6193 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6194 list of notes that can be deleted.
6195 (create_basic_block_structure): Add initialization for partition field.
6196 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
6197 section boundaries.
6198 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
6199 cross section boundaries.
6200 (commit_one_edge_insertion): Add code so newly created basic block
7c3ac422 6201 ends up in correct (hot or cold) section. Modify to disallow
750054a2
CT
6202 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6203 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
6204 crosses section boundaries.
6205 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6206 cross section boundaries.
6207 (force_nonfallthru_and_redirect): Modify to make sure new basic block
6208 ends up in correct section, with correct notes attached.
7c3ac422
ZW
6209 * common.opt (freorder-blocks-and-partition): Add new flag for this
6210 optimization.
6211 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
6212 the end of functions are written into the correct (hot or cold)
6213 section.
750054a2
CT
6214 (dbx_source_file): Add code so writing debug file information
6215 doesn't incorrectly change sections.
7c3ac422 6216 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
750054a2 6217 in partitioning hot/cold basic blocks into separate sections.
7c3ac422 6218 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
750054a2
CT
6219 section partitioning.
6220 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6221 conditional branches can span all of memory.
6222 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6223 unconditional branches can span all of memory.
7c3ac422
ZW
6224 * final.c (scan_ahead_for_unlikely_executed_note): New function.
6225 (final_scan_insn): Add code to check for NOTE instruction indicating
6226 whether basic block belongs in hot or cold section, and to make sure
6227 the current basic block is being written to the appropriate section.
6228 Also added code to ensure that jump table basic blocks end up in the
6229 correct section.
6230 * flags.h (flag_reorder_blocks_and_partition): New flag.
750054a2
CT
6231 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
6232 one of the branches has a jump that crosses between sections.
6233 (find_if_case_2): Likewise.
7c3ac422 6234 (ifcvt): Modify to not attempt to mark loop exit edges after
750054a2 6235 hot/cold partitioning has occurred.
7c3ac422
ZW
6236 * opts.c (decode_options): Code to handle new flag,
6237 flag_reorder_blocks_and_partition; also to turn it off if
750054a2 6238 flag_exceptions is on.
7c3ac422
ZW
6239 (common_handle_option): Code to handle new flag,
6240 flag_reorder_blocks_and_partition.
6241 * output.h (unlikely_text_section): New extern function declaration.
750054a2 6242 (in_unlikely_text_section): New extern function declaration.
7c3ac422
ZW
6243 * passes.c (rest_of_handle_stack_regs): Add
6244 flag_reorder_blocks_and_partition as an 'or' condition for calling
750054a2 6245 reorder_basic_blocks.
7c3ac422 6246 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
750054a2
CT
6247 as an 'or' condition for calling reorder_basic_blocks.
6248 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
7c3ac422
ZW
6249 * print-rtl.c (print_rtx): Add code for handling new note,
6250 NOTE_INSN_UNLIKELY_EXECUTED_CODE
6251 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
750054a2
CT
6252 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6253 cross between section boundaries.
7c3ac422
ZW
6254 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
6255 indicating the basic block containing it belongs in the cold section.
750054a2
CT
6256 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6257 between hot and cold sections.
7c3ac422
ZW
6258 * toplev.c (flag_reorder_blocks_and_partition): Add code to
6259 initialize this flag, and to tie it to the command-line option
6260 freorder-blocks-and-partition.
6261 * varasm.c (cfglayout.h): Add new include statement.
6262 (unlikely_section_label_printed): New global variable, used for
6263 determining when to output section name labels for cold sections.
750054a2
CT
6264 (in_section): Add in_unlikely_executed_text to enum data structure.
6265 (text_section): Modify code to use SECTION_FORMAT_STRING and
6266 NORMAL_TEXT_SECTION_NAME macros.
6267 (unlikely_text_section): New function.
6268 (in_unlikely_text_section): New function.
7c3ac422
ZW
6269 (function_section): Add code to make sure beginning of function is
6270 written into correct section (hot or cold).
6271 (assemble_start_function): Add code to make sure stuff is written to
6272 the correct section.
6273 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
6274 to an if statement that was checking 'in_text_section'.
6275 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
6276 condition to an if statement that was checking 'in_text_section'.
6277 (default_section_type_flags_1): Add check: if in cold section
6278 flags = SECTION_CODE.
750054a2
CT
6279 * config/darwin.c (darwin_asm_named_section): Modify to use
6280 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
7c3ac422 6281 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
750054a2
CT
6282 specifically for the i386.
6283 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
7c3ac422 6284 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
750054a2
CT
6285 text string to something more informative.
6286 (NORMAL_TEXT_SECTION_NAME): Add new definition.
6287 (SECTION_FORMAT_STRING): Add new definition.
7c3ac422
ZW
6288 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
6289 '!in_unlikely_text_section' as an 'and' condition to an if statement
6290 that was already checking '!in_text_section'.
6291 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6292 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6293 sure these are properly defined for linux on ppc.
6294 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
6295 for this new flag.
750054a2
CT
6296 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
6297 reg_note.
7c3ac422
ZW
6298 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6299 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
750054a2
CT
6300 these new macros.
6301
88673361
RS
63022004-04-08 Roger Sayle <roger@eyesopen.com>
6303
6304 * function.c (gen_mem_addressof): When changing the RTX from a REG
6305 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6306
82a6a758
RS
63072004-04-08 Roger Sayle <roger@eyesopen.com>
6308
6309 PR target/14888
6310 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6311 truncxfdf2_noop): Provide dummy "fmov" implementations.
6312
febc5365
ILT
63132004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
6314
2a782c52
ILT
6315 * gcc.c (default_compilers): Add missing initializers.
6316
febc5365
ILT
6317 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6318 Return 1 if file was successfully mapped.
6319
f07e9f0f
GK
63202004-04-08 Geoffrey Keating <geoffk@apple.com>
6321
54e109ed
GK
6322 PR pch/13419
6323 PR pch/14137
6324 Radar #: 3315288
6325 * doc/invoke.texi (Precompiled Headers): Suggest -o
6326 to put an output file in a particular place. Be more detailed
6327 about which options affect PCH validity and which options
6328 might not work.
6329 * c-pch.c (pch_matching): New.
6330 (MATCH_SIZE): New.
6331 (struct c_pch_validity): New field 'match'.
6332 (pch_init): Handle pch_matching.
6333 (c_common_valid_pch): Check pch_matching.
6334
f07e9f0f
GK
6335 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6336
f7b6f250
MM
63372004-04-08 Mark Mitchell <mark@codesourcery.com>
6338
6339 * doc/invoke.texi (Precompiled Headers): Warn about known
6340 problems.
6341
4a77e08c
DS
63422004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
6343
6344 PR c++/14808
6345 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6346 to 1 if ASM_OUTPUT_DEF is defined.
6347 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6348 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6349 Set to non-zero iff not a one_only decl.
6350
cc81dde8
PB
63512004-04-08 Paul Brook <paul@codesourcery.com>
6352
6353 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6354
d4453b7a
PB
63552004-04-08 Paul Brook <paul@codesourcery.com>
6356
6357 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6358 PROMOTE_FOR_CALL_ONLY.
6359 * config/arm/arm-protos.h (arm_function_value): Declare.
6360 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6361 (TARGET_PROMOTE_PROTOTYPES): Return false.
6362 (arm_function_value): New function.
6363 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6364 (FUNCTION_VALUE): Call arm_function_value.
6365 * config/cris/cris.h (PROMOTE_MODE): Rename ...
6366 (PROMOTE_FUNCTION_MODE): ... to this.
6367 (PROMOTE_FOR_CALL_ONLY): Remove.
6368 * config/mmix/mmix.h: Likewise.
6369 * config/s390/s390.h: Likewise.
6370 * config/sparc/sparc.h: Likewise.
6371 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6372 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6373 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6374 (PROMOTE_FOR_CALL_ONLY): Remove.
6375
c00e272e
JS
63762004-04-08 Joel Sherrill <joel@oarcorp.com>
6377
6378 PR ada/14538
6379 * ada/5rosinte.adb: Remove fake mprotect() body.
6380 * ada/5rosinte.ads: Add SA_SIGINFO.
6381 * ada/5rtpopsp.adb: Rewrite to use new interface.
6382 * ada/init.c: Reorder so the simple single OS conditional __rtems__
6383 is tested before more complex ones which mix UNIX and embedded
6384 systems in the conditional.
6385
4afae4b9
JS
63862004-04-08 Joel Sherrill <joel@oarcorp.com>
6387
6388 PR ada/14665
6389 * ada/osint.adb (Find_Program_Name): Rework to properly handle
6390 filenames which end in .exe or have versioning suffixes like VMS.
6391
bfbdca0b
AP
63922004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
6393
467f3af0 6394 PR target/10129
bfbdca0b
AP
6395 * config/darwin.c (darwin_encode_section_info): When the decl has
6396 a DECL_INITIAL, it is only defined also when it is not a common.
6397
df0785d6
KG
63982004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6399
6400 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6401 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6402
2897f1d4
L
64032004-04-07 H.J. Lu <hongjiu.lu@intel.com>
6404
6405 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6406 global register variables.
6407
6ed6a1b9
JM
64082004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
6409
6410 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6411 rpc_xdr_lvalue_cast_b): New fixes.
6412 * fixinc/fixincl.x: Regenerate.
6413 * fixinc/tests/base/rpc/xdr.h: Add new tests.
6414
fc091c8e
DE
64152004-04-07 David Edelsohn <edelsohn@gnu.org>
6416
6417 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6418 to power4 and power5 entries.
6419
7876228d
GK
64202004-04-06 Geoffrey Keating <geoffk@apple.com>
6421
6422 * c-common.h (pending_lang_change): Mark for PCH.
6423
b21292d0
CT
64242004-04-07 Caroline Tice <ctice@apple.com>
6425
6426 * gcc.c (main): Move 'break' in main loops (on an error)
6427 to wait until error processing has occurred.
7c3ac422 6428
615be2cf
NN
64292004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
6430
6431 * config.gcc: Stop changing enable_threads midstream.
6432 Replace uses of enable_threads_flag with enable_threads.
6433 * configure.ac: Replace uses of enable_threads_flag with
6434 enable_threads. Improve autoconf quotation in one place.
6435 * configure: Regenerate.
6436
6c7cf1f0
UB
64372004-04-06 Uros Bizjak <uros@kss-loka.si>
6438
6439 * builtins.c: Implement support for sincos function.
6440 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6441 BUILT_IN_COS{,F,L}.
6442 (expand_builtin_mathfn_3): New function.
6443 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6444 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6445 flag_unsafe_math_optimization is set.
6446
6447 * optabs.h (enum optab_index): Add new OTI_sincos.
6448 (sincos_optab): Define corresponding macro.
6449
6450 * optabs.c (init_optabs): Initialize sincos_optab.
6451 (expand_twoval_unop): New function.
6452
6453 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6454 patterns.
6455
6456 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6457 and UNSPEC_SINCOS_SIN.
6458
6459 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6460 sincosxf3): New patterns to implement sincos, sincosf and sincosl
6461 built-ins as inline x87 intrinsics. Define splits for
6462 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6463 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6464 sincos patterns.
6465 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6466 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6467
a072d43b
UB
6468 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6469 x87's fsincos insn.
6c7cf1f0 6470
23bd1514
DP
64712004-04-06 Devang Patel <dpatel@apple.com>
6472
6473 PR 14467
6474 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7c3ac422 6475
c5124497
JDA
64762004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6477
6478 * doc/install.texi: Update HP-UX 11 installation procedure.
6479
485d61a7
PB
64802004-04-06 Paul Brook <paul@codesourcery.com>
6481
6482 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6483
13ecc9e0
KK
64842004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
6485
6486 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6487 when the TLS address is generated by a function call.
6488 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6489 (tls_local_dynamic): Likewise.
6490
e0e4ac7f
AP
64912004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
6492
6493 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6494 and TYPE_VOLATILE.
6495
0855eab7
CT
64962004-04-05 Caroline Tice <ctice@apple.com>
6497
485d61a7 6498 * gcc.c (combine_flag): New global variable, for new driver option.
0855eab7
CT
6499 (struct compiler): Add two new fields, to be used when
6500 combining multiple input files in a single pass (IMA).
7c3ac422
ZW
6501 (default_compilers): Add values for the new fields to all
6502 compiler entries. Modify the "@c" compiler entry for doing IMA
0855eab7
CT
6503 properly with "-save-temps" and the "combine" flag.
6504 (option_map): Add new driver option, "--combine", to tell driver
6505 to pass multiple input files to compiler at one time.
6506 (have_o_argbuf_index): New global variable.
6507 (store_arg): Modify to assign value to have_o_argbuf_index.
6508 (struct infile): Add three new fields, to help with IMA.
6509 (display_help): Add help for new "combine" option.
6510 (process_command): Remove local variable have_o; add code to check
6511 for new "combine" option; remove assignment to combine_inputs.
6512 (do_spec_1): Modify to deal with IMA better.
6513 (main): Make variable 'lang_n_infiles' local to entire function
7c3ac422
ZW
6514 rather than to a single block. Use flag combine_flag to
6515 determine whether to do IMA or not; Modify loop initializing
0855eab7
CT
6516 infiles to deal properly with linker files.
6517 Add code for doing preprocessing in presence of
6518 IMA with "-save-temps" flag. Modify "main" loop to handle
6519 multiple input files, in multiple languages, with or without
6520 preprocessing, gracefully.
6521 * toplev.c (set_src_pwd): Modify to not complain if attempting to
6522 re-set it to same directory it's previously been set to (avoid
7c3ac422 6523 irritating, meaningless warning messages when doing IMA with
0855eab7
CT
6524 save-temps).
6525 * doc/invoke.texi: Add "-combine" to list of Overall Options;
6526 remove documentation about IMA that is no longer accurate; Add
6527 documentation explaining what "-combine" does.
6528 * ada/lang-specs.h: Add initialization values for new fields in
6529 "struct compiler".
6530 * cp/lang-specs.h: Likewise.
6531 * f/lang-specs.h: Likewise.
6532 * java/lang-specs.h: Likewise.
6533 * objc/lang-specs.h: Likewise.
6534 * treelang/lang-specs.h: Likewise.
6535
26be75db
DE
65362004-04-05 David Edelsohn
6537
6538 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6539 symbol handling.
6540
fda935a2 65412004-04-05 Jakub Jelinek <jakub@redhat.com>
26be75db 6542 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
fda935a2
JJ
6543
6544 PR optimization/13424 (hppa), bootstrap/14462, c/14828
6545 * pa.md: Use replace_equiv_address to retain the attributes of the
6546 memory operands used in the split and peephole2 patterns for optimizing
6547 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6548
4f976745
RK
65492004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6550
6551 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6552 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6553 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6554 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6555 PARM_DECL.
6556 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6557 for a type.
6558 * print-tree.c (print_node): Properly handle side-effects, readonly,
6559 and constant flags.
6560 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6561 and TREE_CONSTANT if not a type.
6562 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6563 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6564 (NON_TYPE_CHECK): New macro.
6565 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6566
5ffc4730
EB
65672004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
6568
6569 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6570 to DWARF2_DEBUG unconditionally.
6571 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6572
c38f02df
ILT
65732004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
6574 Nathanael Nerode <neroden@gcc.gnu.org>
6575
6576 PR target/14548
6577 * config.host: Set the shell variable host_can_use_collect2.
6578 Set it to yes by default, and to no for alpha*-dec-*vms*,
6579 i[34567]86-*-mingw32*, and powerpc-*-beos*.
6580 * configure.ac: Set and substitute the shell variable collect2.
6581 Give an error if use_collect2 is yes and host_can_use_collect2 is
6582 no.
6583 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
6584 uses. Initialize to @collect2@.
6585 (STAGESTUFF): Remove $(USE_COLLECT2).
6586 * config/alpha/x-vms (USE_COLLECT2): Don't set.
6587 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6588 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6589 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6590 * configure: Regenerate.
6591
9d317251
RS
65922004-04-04 Roger Sayle <roger@eyesopen.com>
6593
6594 * simplify-rtx.c (simplify_binary_operation): Constant fold
6595 DIV, MOD, UDIV and UMOD using div_and_round_double.
6596
64480988
MM
65972004-04-04 Mark Mitchell <mark@codesourcery.com>
6598
6599 PR c++/14804
6600 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6601 RECORD_TYPEs.
6602
aaf3c6d9
MM
66032004-04-04 Mark Mitchell <mark@codesourcery.com>
6604
6605 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6606 documentation.
cd3f11a6 6607
d8b7ec41
RS
66082004-04-04 Roger Sayle <roger@eyesopen.com>
6609
6610 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6611 updating the REG_EQUAL note on an insn's libcall_insn.
6612
4012b7db
RS
66132004-04-04 Roger Sayle <roger@eyesopen.com>
6614
6615 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6616
2f63a457
RS
66172004-04-03 Roger Sayle <roger@eyesopen.com>
6618
6619 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6620 with reorder_operands_p.
6621
ef1140a9
JH
66222004-04-03 Jan Hubicka <jh@suse.cz>
6623
6624 * md.texi (vec_set, vec_extract, vec_init): Document.
6625
f736cb3e
GL
66262004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
6627
6628 * opts.c (decode_options): Do function inlining with very small
6629 max-inline-insns-* parameters when optimizing for size.
6630
89c43c0a
VM
66312004-04-02 Vladimir Makarov <vmakarov@redhat.com>
6632
6633 * config/i386/i386.h (TARGET_NOCONA): New macro.
6634 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6635 (processor_type): Add PROCESSOR_NOCONA.
7c3ac422 6636
89c43c0a
VM
6637 * config/i386/i386.md (cpu): Add nocona to the attribute values.
6638
6639 * config/i386/i386.c (nocona_cost): New variable.
6640 (m_NOCONA): New macro.
6641 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6642 x86_branch_hints, x86_use_sahf, x86_single_stringop,
6643 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6644 x86_integer_DFmode_moves, x86_partial_reg_dependency,
6645 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6646 x86_decompose_lea, x86_arch_always_fancy_math_387,
6647 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6648 x86_ext_80387_constants, x86_four_jump_limit):
6649 (override_options): Add nocona_cost to processor_target_table.
6650 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6651 (incdec_operand): Prevent inc/dec generation for Nocona too.
6652 (ix86_issue_rate): Add PROCESSOR_NOCONA.
7c3ac422 6653
cd798543
AP
66542004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
6655
6656 * rtlanal.c (find_reg_note): Manually
6657 unswitch the loop.
6658
a406f566
MM
66592004-04-01 Mark Mitchell <mark@codesourcery.com>
6660
6661 * genemit.c (gen_split): Change prototype of generated code.
6662 * genrecog.c (write_action): Adjust prototype for and calls to
6663 gen_split_*.
6664 * gensupport.c (struct queue_elem): Add split field.
6665 (queue_pattern): Return a value. Clear the split field.
6666 (process_rtx): Maintain an association between an insn and the
6667 split generated from it for a define_insn_and_split.
6668 (process_one_cond_exec): Generate a new split for a
6669 define_insn_and_split.
6670 * config/arm/arm-protos.h (arm_split_constant): Add insn
6671 parameter.
6672 (emit_constant_insn): New function.
6673 (arm_gen_constant): Use it.
6674 * config/arm/arm.md: Adjust calls to arm_split_constant.
6675
18c6ada9
JH
66762004-04-02 Jan Hubicka <jh@suse.cz>
6677
6678 * cgraph.c: Add overall comment.
6679 (cgraph_inline_hash): New global variable.
6680 (cgraph_create_node): Break out from ...
6681 (cgraph_node): ... here.
6682 (cgraph_edge): New function.
6683 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6684 (cgraph_remove_edge): Accept edge, intead of source and destination.
6685 (cgraph_redirect_edge_callee): New.
6686 (cgraph_remove_node): Update all new datastructures.
6687 (cgraph_record_call, cgraph_remove_call): Kill.
6688 (dump_cgraph_node): Break out from ... ; dump new datastructures.
6689 (dump_cgraph): ... here.
6690 (cgraph_function_possibly_inlined_p): Use new hashtable.
6691 (cgraph_clone_edge, cgraph_clone_node): New.
6692 * cgraph.h: Include hashtab.h
6693 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6694 fields, add inlined_to pointer.
6695 (cgraph_node): Add pointer to next_clone.
6696 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6697 (cgraph_remove_call, cgraph_record_call): Kill.
6698 (cgraph_inline_hash): Declare.
6699 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6700 cgraph_redirect_edge_callee): Declare.
6701 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6702 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6703 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6704 * cgraphunit.c: Add overall comment.
6705 (cgraph_optimize_function): Kill.
6706 (cgraph_assemble_pending_functions): Do not assemble inline clones.
6707 (cgraph_finalize_function): Update call of cgraph_remove_node
6708 (record_call_1): Record call sites.
6709 (cgraph_create_edges): Accept node instead of decl argument.
6710 (error_found): New static variable.
6711 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6712 (cgraph_analyze_function): Update for new datastructures.
6713 (cgraph_finalize_compilation_unit): Plug memory leak.
6714 (cgraph_optimize_function): Kill.
6715 (cgraph_expand_function): Do not use cgraph_optimize_function.
6716 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6717 cgraph_inlined_callees): Kill.
6718 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6719 clones.
6720 (estimate_growth): Simplify.
6721 (cgraph_clone_inlined_nodes): New function.
6722 (cgraph_mark_inline_edge): Re-implement.
6723 (cgraph_mark_inline): Likewise.
6724 (cgraph_check_inline_limits): Simplify.
6725 (cgraph_recursive_inlining_p): New.
6726 (update_callee_keys): Break out from ...
6727 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6728 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6729 Likewise.
6730 (cgraph_expand_all_functions): Remove inline clones from the ordered
6731 list.
6732 (cgraph_preserve_function_body_p): New predicate.
6733 (cgraph_optimize): Verify cgraph.
6734 * function.h (struct function): Add fields saved_tree/saved_args.
6735 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6736 * toplev.c (rest_of_compilation): Do not free cfun.
6737 * tree-inline.c: Include function.h
6738 (struct inline_data): Add saving_p field; replace decl/current_decl by
6739 node/current_node.
6740 (insert_decl_map): New function.
6741 (copy_body_r): Handle saving; update cgraph datastructure.
6742 (copy_body): Handle recursive inlining.
6743 (initialize_inlined_parameters): Likewise.
6744 (expand_call_inline): Propagate node attributes; update cgraph.
6745 (optimize_inline_calls): Verify that datastructure still match.
6746 (save_body): New function.
6747 * tree-inline.h (save_body): New.
6748 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6749 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6750 * langhooks.c (lang_hooks): Add update_decl_after_saving.
6751
717415ad
SB
67522004-04-01 Serge Belyshev <1319@bot.ru>
6753
7c3ac422
ZW
6754 PR target/14702
6755 * config/i386/i386.md: fix source operand constraints in
6756 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
717415ad 6757
af5bdf6a
WH
67582004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
6759
6760 * fold-const.c (folda): Preserve types of comparisons.
6761
54fdc910
RH
67622004-04-01 Richard Henderson <rth@redhat.com>
6763
6764 * toplev.c (backend_init): Move init_optimization_passes call ...
6765 (lang_dependent_init): ... here.
6766
765f1bf9
AM
67672004-04-01 Alan Modra <amodra@bigpond.net.au>
6768 Jakub Jelinek <jakub@redhat.com>
6769
6770 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6771 -lgcc --as-needed -lgcc_s --no-as-needed by default.
6772 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6773 * configure: Rebuilt.
6774 * config.in: Rebuilt.
6775 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6776 (stage2-start, stage3-start, stage4-start): Likewise.
6777 (stageprofile-start, stagefeedback-start): Likewise.
6778
45dcc026
JJ
67792004-04-01 Jakub Jelinek <jakub@redhat.com>
6780
6781 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6782 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6783 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6784 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6785 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6786 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6787 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6788 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6789 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6790 * config/sparc/t-linux: Removed.
6791
0b612185
JJ
67922004-04-01 Jakub Jelinek <jakub@redhat.com>
6793
6794 PR c++/14755
6795 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6796 "bitfld++ == const" to "++bitfld == const + incr" transformations.
6797
a150de29
RK
67982004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6799
6800 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6801 * stor-layout.c (layout_decl): Likewise.
6802 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6803 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6804 * print-tree.c (print_node): Handle various used of unsigned_flag.
6805 * tree.def (BIT_FIELD_REF): Update comment.
6806 * tree.h (TREE_UNSIGNED): Deleted.
6807 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6808
8df83eae
RK
68092004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6810
6811 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6812 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6813 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6814 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6815 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6816 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6817 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6818 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6819 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6820 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6821 REAL_TYPE, not INTEGER_TYPE.
6822 (layout_type, case VECTOR_TYPE): Simplify code.
6823 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6824 * tree.h: Update comments.
6825 (STRIP_NOPS): Use TYPE_UNSIGNED.
6826 (TYPE_UNSIGNED): New macro.
6827 (TYPE_TRAP_SIGNED): Remove now redundant check.
6828 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6829
8465edcc
RK
68302004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6831
6832 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6833
68342004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
efdc5d91
AP
6835
6836 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6837 Add darwin-fpsave.asm, darwin-vecsave.asm,
6838 and darwin-world.asm.
6839 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6840 as the asm files contain altivec instructions.
6841 * config/rs6000/darwin-fpsave.asm: New file.
6842 * config/rs6000/darwin-vecsave.asm: New file.
6843 * config/rs6000/darwin-world.asm: New file.
6844
5fece182
ZW
68452004-03-31 Zack Weinberg <zack@codesourcery.com>
6846
6847 * gengtype-yacc.y (option, stringseq): Add missing
6848 terminating semicolon.
6849
b150f4f3
DE
68502004-03-30 David Edelsohn <edelsohn@gnu.org>
6851
6852 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6853 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6854 tls_dtprel_ha_32, tls_dtprel_ha_64,
6855 tls_dtprel_lo_32, tls_dtprel_lo_64,
6856 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6857 tls_tprel_ha_32, tls_tprel_ha_64,
6858 tls_tprel_lo_32, tls_tprel_lo_64,
6859 tls_got_tprel_32, tls_got_tprel_64,
6860 tls_tls_32, tls_tls_64): Replace register_operand with
6861 gpc_reg_operand.
6862
68632004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
6864
6865 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6866 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6867 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6868 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6869 *ctrdi_internal6): Replace register_operand with
6870 nonimmediate_operand.
6871
0af5da7f
FJ
68722004-03-29 Fariborz Jahanian <fjahanian@apple.com>
6873
5fece182
ZW
6874 * fold-const.c (fold): Reassociate multiply expression
6875 with an adjacent non-multiply expression to use
6876 architecture's multiply-add instruction.
0af5da7f 6877
1431042e
ZW
68782004-03-30 Zack Weinberg <zack@codesourcery.com>
6879
6880 * gengtype.c (create_option): New function.
6881 * gengtype.h: Prototype it.
6882 * gengtype-yacc.y (stringseq): New rule.
6883 (option): Use create_option. Add new bare ID production. Use
6884 stringseq, not STRING directly.
6885
6886 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6887 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6888 * varray.h, config/alpha/alpha.c:
6889 Use new shorter form of GTY markers.
6890
6891 * doc/gty.texi: Rewrite.
6892
9ffab06b
AP
68932004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
6894
6895 * config/darwin.c (machopic_function_base_name):
6896 Remove current_name and getting the name of the
6897 current function.
6898
a2246edc
NC
68992004-03-30 Nick Clifton <nickc@redhat.com>
6900
6901 * config/arm/arm.md (thumb_jump): Reduce the backward branch
6902 range, and increase the forward branch range, to allow for
6903 the fact that the PC will be off by 4.
6904
547799a7
AM
69052004-03-30 Alan Modra <amodra@bigpond.net.au>
6906
6907 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6908
452a7d36
HP
69092004-03-30 Hartmut Penner <hpenner@de.ibm.com>
6910
1431042e
ZW
6911 * config/rs6000/rs6000.c (output_vec_const_move):
6912 Find all cases of EASY_VECTOR_15_ADD_SELF.
6913 (easy_vector_constant_add_self): Accept
6914 all vector constant loadable by vsplt* and vadd*.
452a7d36
HP
6915 (easy_vector_same): Use easy_vector_splat_const.
6916 (easy_vector_const): Use easy_vector_splat_const.
1431042e 6917 (easy_vector_splat_const): New function.
452a7d36 6918 (gen_easy_vector_constant_add_self): New function.
1431042e 6919
452a7d36
HP
6920 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6921 New prototype.
6922
1431042e 6923 * config/rs6000/altivec.md (movv4si splitter): Change to
452a7d36
HP
6924 emit move insn with halfed vector constant.
6925 (*movv8hi splitter): Likewise.
6926 (*movv16qi splitter): Likewise.
1431042e 6927
708d2456
HP
69282004-03-30 Hartmut Penner <hpenner@de.ibm.com>
6929
1431042e
ZW
6930 PR 11591
6931 * config/rs6000/rs6000.c (rs6000_legitimate_address):
708d2456
HP
6932 Allow any offset to argument pointer in no-strict case.
6933
6868bb1c
JH
69342004-03-30 Jan Hubicka <jh@suse.cz>
6935
6936 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
6937 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
6938 dump file in non-unit-at-a-time mode.
6939
43537bf6
HPN
69402004-03-29 Hans-Peter Nilsson <hp@axis.com>
6941
6942 * config/cris/cris.h: Correct #ifdef to test for
6943 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
6944 HAVE_AS_MUL_BUG_ABORT_OPTION.
6945
97955d55
RK
69462004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6947
6948 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
6949 the address inside the old RTL.
6950
18d5f982
ZW
69512004-03-28 Zack Weinberg <zack@codesourcery.com>
6952
6953 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
6954 (struct c_binding, struct c_scope): Add chain_next
6955 attributes to GTY markers.
6956 (struct lang_identifier, struct lang_tree_node): Define
6957 here...
6958 * c-tree.h: ... not here. No longer need to declare struct
6959 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6960 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
6961 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6962
6963 PR 14734, 11944
6964 * c-decl.c (get_parm_info): If error_mark_node is encountered
6965 in the bindings chain, unbind and discard it; don't abort.
6966
e20f3dd1 69672004-03-28 Olga Golovonevsky <olga@il.ibm.com>
18d5f982 6968 Dorit Naishlos <dorit@il.ibm.com>
e20f3dd1 6969
18d5f982
ZW
6970 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
6971 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
e20f3dd1 6972
d5ebbf58
SC
69732004-03-28 Stephane Carrez <stcarrez@nerim.fr>
6974
6975 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
6976
6977 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
6978 (m68hc11_attribute_table): New attribute "page0" to mark a global
6979 variable as being allocated from within page0 section.
6980 (m68hc11_encode_label): New function.
6981 (m68hc11_strip_name_encoding): New function.
6982 (m68hc11_page0_symbol_p): New function.
6983 (m68hc11_indirect_p): Accept global variables marked in page0.
6984 (m68hc11_encode_section_info): Lookup "page0" attribute.
6985
6986 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
6987 represents access to page0 variables.
6988
6989 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
6990 ("*logicalsi3_silshl16_zext"): Likewise.
6991 ("*ashldi3_const32"): Likewise.
6992 (peephole2 ashift): Likewise.
6993
5baeaac0
JM
69942004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
6995
6996 * c-tree.h (C_DECL_REGISTER): New.
6997 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
6998 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
6999 (build_array_ref, c_mark_addressable): Set and use it.
7000 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7001 Allow structures with volatile fields to be declared register.
7002 Don't check TREE_ADDRESSABLE before warning about taking address
7003 of register.
7004 * c-decl.c (finish_decl): Don't allow structures with volatile
7005 fields to be placed in named register.
7006 * doc/trouble.texi: Remove reference to structures with volatile
7007 fields in registers.
7008
84c1fa24
UW
70092004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
7010
7011 * function.c (thread_prologue_and_epilogue): Move
7012 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7013 before the epilogue.
7014
053ee101
UW
70152004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
7016
7017 * expr.c (store_constructor): Use gen_int_mode to correctly
7018 sign-extend CONST_INT value.
7019
ca4944e1
KG
70202004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7021
7022 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7023 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
7024 * doc/extend.texi: Likewise.
7025
eb1a2c88
DN
70262004-03-26 Diego Novillo <dnovillo@redhat.com>
7027
7028 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7029 with TYPE_ORIG_SIZE_TYPE.
7030
eabe2b29 70312004-03-25 Aldy Hernandez <aldyh@redhat.com>
18d5f982
ZW
7032
7033 PR 14219
7034 * c-typeck.c (build_binary_op): Do not allow comparisons of
7035 vectors.
eabe2b29 7036
9e1395f1
JM
70372004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
7038
7039 * config.gcc: Remove sparc-tti-*.
7040 * config/sparc/pbd.h: Delete.
7041
7042 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7043 * config/sparc/aout.h: Likewise.
7044
7045 * config/sparc/sparc.h: Remove if 0'd code.
7046 * config/sparc/sparc.md (call): Remove if 0'd code.
7047 (call_value): Likewise.
7048 (nonlocal_goto): Likewise.
7049 (unimp_insn): Delete.
7050
22e63bd3
RS
70512004-03-25 Roger Sayle <roger@eyesopen.com>
7052
7053 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7054 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7055
0066ef9c
RH
70562004-03-25 Richard Henderson <rth@redhat.com>
7057
7058 PR 11527
18d5f982
ZW
7059 * c-typeck.c (pop_init_level): Emit pending init elements earlier
7060 rather than later.
0066ef9c 7061
3a048383
KG
70622004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7063
7064 * builtins.c (fold_builtin): Fix error in last change.
7065
0d63bf21
RS
70662004-03-25 Richard Sandiford <rsandifo@redhat.com>
7067
7068 * config/mips/mips.h: Formatting fix.
7069
740e5b6f
KG
70702004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7071
7072 * builtins.def: Add ctype builtins.
7073 * doc/extend.texi: Likewise.
7074
e19f6bde
KG
70752004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7076
7077 * builtins.c (fold_builtin): Add new builtin optimizations for
7078 sqrt and/or cbrt.
7079 * fold-const.c (fold): Likewise.
7080
ec507f2d
DE
70812004-03-25 David Edelsohn <edelsohn@gnu.org>
7082
7083 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7084 (rs6000_sched_groups): New variable.
7085 (processor_target_table): Add power5.
7086 (rs6000_override_options): Set rs6000_sched_insert_nops,
7087 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7088 from rs6000_sched_groups.
7089 (output_cbranch): Use rs6000_always_hint.
7090 (rs6000_variable_issue): Use rs6000_sched_groups.
7091 (rs6000_adjust_cost): Add CPU_POWER5.
7092 (is_microcoded_insn): Use rs6000_sched_groups.
7093 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7094 Return 2 for POWER5 cracked instructions.
7095 (is_cracked_insn): Use rs6000_sched_groups.
7096 (is_branch_slot_insn): Use rs6000_sched_groups.
7097 (rs6000_issue_rate): Add CPU_POWER5.
7098 (rs6000_sched_finish): Use rs6000_sched_groups.
7099 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7100 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7101 (DEFAULT_SCHED_COSTLY_DEP): Delete.
7102 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7103 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7104 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7105 * config/rs6000/power5.md: New file.
7106 * doc/invoke.texi: Add power5 option.
7107
666c27b9
KH
71082004-03-25 Kazu Hirata <kazu@cs.umass.edu>
7109
7110 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7111 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7112 * doc/invoke.texi: Fix a typo.
7113
43a21dfc
KH
71142004-03-25 Kazu Hirata <kazu@cs.umass.edu>
7115
7116 PR optimization/9707.
7117 * stmt.c (emit_case_nodes): Emit equality comparisons instead
7118 of recursing if both children are single-valued cases with no
7119 children.
7120
9728c9d1
PB
71212004-03-25 Paul Brook <paul@codesourcery.com>
7122
7123 * config/arm/arm.c (vfp_print_multi): Remove.
7124 (arm_output_fldmx): New function.
7125 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7126 (arm_expand_prologue): Update to match.
7127 (arm_get_vfp_saved_size): New Function.
7128 (arm_get_frame_offsets): Use it.
7129 (arm_output_epilogue): Use new functions.
7130
bb1acb3e
RH
71312004-03-24 Richard Henderson <rth@redhat.com>
7132
7133 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7134 (reg_known_value, reg_known_value_size): Likewise; make static.
7135 (reg_known_equiv_p): Make static.
7136 (clear_reg_alias_info): Update for new indexing.
7137 (get_reg_known_value, set_reg_known_value): New.
7138 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7139 (canon_rtx): Use them.
7140 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
7141 Don't play queer offsetting games with reg_known_value and
7142 reg_known_equiv_p.
7143 (end_alias_analysis): Free reg_known_value with gc.
7144 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7145 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7146 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7147 functions instead.
7148
ef335eb8
KH
71492004-03-24 Kazu Hirata <kazu@cs.umass.edu>
7150
7151 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7152 config/i386/mmintrin.h: Update copyright.
7153
09a9c095
NN
71542004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7155
7156 * configure.ac: Add --enable-werror-always (for top level bootstrap
7157 support).
7158 * configure: Regenerate.
7159
f75963f5
ZL
71602004-03-24 Ziemowit Laski <zlaski@apple.com>
7161
7162 * objc/objc-act.c (objc_comptypes): Treat comparisons
7163 between 'Class' and '<class> *' as explicitly invalid.
7164
8d3b3fb7
DE
71652004-03-24 David Edelsohn <edelsohn@gnu.org>
7166
827c06b6 7167 * doc/invoke.texi (-frename-registers): Add enabled at -O3.
8d3b3fb7
DE
7168 (-fprofile-values): Add enabled with profile-{generate,use}.
7169 (-fvpt): Same.
7170 (-ftracer): Add enabled with profile-use.
7171 (-funit-at-a-time): Add enabled at -O2,-O3.
7172 (-funroll-loops): Add enabled with profile-use.
7173 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
7174 (max-gcse-passes): Mention default.
7175 (max-cse-path-length): Mention default.
7176
643d3bd2
NN
71772004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7178
7179 * Makefile.in (STRICT2_WARN): Reorder.
7180 * configure.ac: Check for -Wold-style-definition, and use it
7181 in strict1_warn if it's available.
7182 * configure: Regnerate.
7183
5848830f
PB
71842004-03-24 Paul Brook <paul@nowt.org>
7185
7186 * config.gcc <arm>: Add --with-abi=
7187 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7188 thumb_far_jump_used): Remove prototypes.
7189 (arm_needs_doubleword_align): Add prototype.
7190 (thumb_compute_initial_elimination_offset): Ditto.
7191 * config/arm/arm.c (arm_get_frame_offsets): New function.
7192 (use_return_insn, output_return_instruction, arm_output_epilogue,
7193 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7194 arm_expand_prologue, thumb_expand_epilogue): Use it.
7195 (arm_abi, target_abi_name, all_arm_abis): New variables.
7196 (arm_override_options): Set them. Set structure padding for AAPCS.
7197 (arm_return_in_memory): Update ABI check.
7198 (arm_init_cumulative_args): Initialize can_split.
7199 (arm_needs_doubleword_align): New function.
7200 (arm_function_arg): Don't split args after pushing to stack. Handle
7201 doubleword/even reg alignment.
7202 (arm_va_arg): Handle all doubleword aligned args.
7203 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7204 on ABI, not CPU.
7205 (arm_compute_save_reg0_reg12_mask): Fix comment.
7206 (thumb_get_frame_size, thumb_get_frame_size): Remove.
7207 (thumb_jump_far_used_p): Remove superfluous argument. Return save
7208 value for alignment.
7209 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7210 to match.
7211 (thumb_compute_initial_elimination_offset): New function.
7212 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
7213 unneccessary rounding.
7214 * config/arm/arm.h (target_abi_name): Declare.
7215 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7216 arm_abi_type, ARM_DEFAULT_ABI): Define.
7217 (ARM_FLAG_ATPCS): Remove.
7218 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7219 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7220 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7221 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7222 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7223 Contitionalize on ABI, not CPU.
7224 (struct arm_stack_offsets): Define.
7225 (struct machine_function): Add stack_offsets. Remove frame_size.
7226 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7227 pushed.
7228 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7229 doubleword alignment.
7230 (THUMB_INITIAL_ELIMINATION_OFFSET,
7231 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7232 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7233 * config/arm/arm.md (align_8): Enable for all targets.
7234 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7235 (ARM_DEFAULT_ABI): Define.
7236 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7237 -mstructure-size-boundary.
7238
b5472e1d
NN
72392004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
7240
7241 * configure.ac: Check for -Wno-variadic-macros; don't use
7242 -pedantic (in stage 1 or a simple 'make all') unless it's available,
7243 and if it's available, use it. Also, clean up check for
7244 -Wno-long-long.
7245 * configure: Regenerate.
7246
c1077e1e
RS
72472004-03-24 Richard Sandiford <rsandifo@redhat.com>
7248
7249 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7250 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7251 (MULTILIB_DEFAULTS): Use it.
7252 (MIPS_CPU_STRING_DEFAULT): Remove.
7253 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7254 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
7255 EABI64 -mlong32 the default ABI. Enforce the default architecture.
7256 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
398a9492 7257 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
c1077e1e
RS
7258 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7259 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
7260 accordingly.
7261
c235ddf2
DD
72622004-03-24 DJ Delorie <dj@redhat.com>
7263 Richard Sandiford <rsandifo@redhat.com>
7264
7265 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7266 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7267 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7268 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7269 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7270 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7271 if TARGET_FIX_VR4122.
7272 * config/mips/mips.md (define_attr length): Account for nops inserted
7273 after macc and dmult when using -mfix-vr4122-bugs.
7274 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7275 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7276 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
7277 * config/mips/vr4122-div.S: New file.
7278 * doc/invoke.texi: Document -mfix-vr4122-bugs.
7279
cf768d70
RS
72802004-03-24 Richard Sandiford <rsandifo@redhat.com>
7281
7282 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7283 (TARGET_MIPS4130): New macro.
7284 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7285 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7286 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7287 with PROCESSOR_R4130.
7288 * config/mips/mips.md (define_attr cpu): Add r4130.
7289 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7290
5ef1a99d
MR
72912004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
7292 Richard Sandiford <rsandifo@redhat.com>
7293
7294 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7295
ae87624f
AO
72962004-03-24 Alexandre Oliva <aoliva@redhat.com>
7297
7298 PR preprocessor/14438
7299 * cpplib.c (do_pragma): Remove line_change call after pragma
7300 handler.
7301
d63851eb
ILT
73022004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
7303
7304 * doc/extend.texi (ARM Built-in Functions): Replace with correct
7305 declarations.
7306
0c5faf29
RS
73072004-03-23 Roger Sayle <roger@eyesopen.com>
7308
7309 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7310 if flag_unsafe_math_optimizations.
7311 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7312 and TARGET_80387 expand using truncdfsf2_noop pattern.
7313 (truncxfsf2): Likewise using truncxfsf2_noop.
7314 (truncxfdf2): Likewise using truncxfdf2_noop.
7315 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7316
f18eca82
ZL
73172004-03-23 Ziemowit Laski <zlaski@apple.com>
7318
7319 * hooks.c (hook_constcharptr_tree_null): New hook.
7320 * hooks.h (hook_constcharptr_tree_null): New prototype.
7321 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7322 * target.h (mangle_fundamental_type): New target hook.
7323 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7324 target hook at rs6000_mangle_fundamental_type.
7325 (rs6000_mangle_fundamental_type): New function.
7326 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7327
f75fbaf7
ZW
73282004-03-23 Zack Weinberg <zack@codesourcery.com>
7329
1b1d85bd 7330 PR 12267, 12391, 12560, 13129, 14114, 14133
f75fbaf7
ZW
7331 * c-tree.h: Forward declare struct c_binding. Declare
7332 c_override_bindings_to_false. Update prototypes.
7333 (struct lang_identifier): Update comments. Change fields to be
7334 struct c_binding *.
7335 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7336 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7337 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7338 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7339 * c-common.h: Update prototypes.
7340 * c-decl.c (struct c_scope): Update commentary. Remove names,
7341 names_last, parms, parms_last, tags, and shadowed fields. Add
7342 bindings and depth fields.
7343 (scope_freelist): Move to more appropriate location.
7344 (c_print_identifier): Update for changes to struct lang_identifier.
7345 (objc_mark_locals_volatile): Update for new bindings structures.
7346 (global_bindings_p): Honor c_override_global_bindings_to_false.
7347 (pushlevel): Rename to push_scope; take no arguments; use the
7348 scope_freelist; initialize scope->depth and check for overflow.
7349 (poplevel): Rename to pop_scope; totally rewritten for new bindings
7350 structures.
7351 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7352 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
7353 Improve some commentary. Adjust handling of forward parm decls.
7354 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7355 Preserve C_DECL_IN_EXTERNAL_SCOPE.
7356 (warn_if_shadowing): Correct indentation. Improve diagnostics.
7357 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
7358 decls. Rewrite for new bindings structures. Improve commentary.
7359 Eliminate the copy_node call.
7360 (implicit_decl_warning): Use the "diag" idiom (as seen in
7361 locate_old_decl) to reduce code duplication; call locate_old_decl
7362 if appropriate. Relocate to remove need for forward declaration.
7363 (implicitly_declare): Adjust for new bindings structures. Kludge
7364 around Objective-C not-really-builtin functions.
7365 (undeclared_variable): Improve diagnostics. If current_function_decl
7366 is nonnull but current_function_scope is null, use current_scope.
7367 Use bind.
7368 (lookup_tag): Adjust for new bindings structures. Kludge around
7369 Objective-C's tag declarations that wind up in the external scope.
7370 (lookup_name): Adjust for new bindings structures. Kludge around
7371 c-common.c's pseudo-typedefs that wind up in the external scope.
7372 (lookup_name_current_level): Rename lookup_name_in_scope; take a
7373 second argument indicating the scope to examine; rewrite for
7374 new bindings structures.
7375 (c_init_decl_processing): Adjust for renamed functions. Do not
7376 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7377 First scope pushed is the external scope, not the global scope.
7378 (builtin_function): Use bind, not pushdecl. Adjust other bits
7379 for new data structures. Keep track of builtins that should be
7380 made visible automatically.
7381 (start_decl): Adjust diagnostics. Remove unnecessary call to
7382 expand_decl.
7383 (grokparms): Return 0 if arg_types is error_mark_node.
7384 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7385 reversed sense. Rewrite for new bindings structures. Do not
7386 leave any decls in the scope, to prevent pop_scope from doing
7387 contradictory things with them.
7388 (finish_struct, finish_enum): Remove redundant diagnostics.
7389 (build_enumerator): Don't cascade diagnostics for error_mark_node.
7390 Mark location where -pedantic changes the meaning of the program.
7391 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7392 parameter decls into the function's scope structure using bind.
7393 Warn here about function definitions in the wrong style.
7394 Adjust diagnostics.
7395 (store_parm_decls): Correct the determination of whether a
7396 function was defined with a prototype.
7397 (c_write_global_declarations): Operate on all file decls and on
7398 the external scope. Split body of the loop to...
7399 (c_write_global_declarations_1): ... this new function, to avoid
7400 code duplication.
7401 (truly_local_externals, first_builtin_decl, last_builtin_decl)
7402 (make_scope, pop_scope, in_parm_level_p, set_block)
7403 (any_external_decl, record_external_decl, bind_label, getdecls)
7404 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7405 (c_reset_state): Delete.
7406 (visible_builtins, c_override_global_bindings_to_false)
7407 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7408 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7409 (external_scope, binding_freelist, bind, free_binding_and_advance)
7410 (push_file_scope, pop_file_scope): New.
7411 (pushtag, pushdecl_top_level, lookup_label, declare_label)
7412 (define_label, c_make_fname_decl, finish_decl)
7413 (mark_forward_parm_decls, build_compound_literal)
7414 (grokdeclarator, start_function, check_for_loop_decls)
7415 (identifier_global_value, record_builtin_type): Minor adjustments
7416 for new bindings structures. Improve diagnostics and commentary.
7417 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7418 pushlevel/poplevel respectively.
7419 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7420 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7421 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
7422 correct loop over multiple translation units; call fatal_error if
7423 requested to compile more than one file at once. (This disables
7424 IMA temporarily - an up-front error being preferable to a crash.)
7425 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7426 (all actions): Adjust calls to pushlevel/poplevel.
7427 (parsing_iso_function_signature): Delete.
7428 (extdef_1): Fold into extdef.
7429 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
7430 warn here about function definitions in the wrong style.
7431 (after_tyle_declarator, parm_declarator_starttypename)
7432 (parm_declarator_nostarttypename, notype_declarator): Remove
7433 commented-out productions.
7434 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7435 an empty TREE_LIST node. Adjust calls to get_parm_info.
7436 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7437 to suppress -Wold-style-definition after this error.
7438 (c_parse_file): Don't clear the binding stack or call
7439 finish_fname_decls here. Correct comment.
7440 * c-typeck.c (same_translation_unit_p): Export.
7441 (common_type): Use c_override_global_bindings_to_false, not
7442 pushlevel/poplevel/declare_parm_level.
7443 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7444 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7445 and LANG_HOOKS_GETDECLS with do-nothing stubs.
7446 * objc/objc-lang.c: Likewise.
7447 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7448 get_parm_info.
7449 (OBJC_VOID_AT_END): Delete; replace all uses
7450 with void_list_node.
7451 (generate_forward_declaration_to_string_table): Delete.
7452 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7453
7454 * coverage.c (create_coverage): Don't pushdecl anything.
7455 * langhooks.c (lhd_clear_binding_stack): Call
7456 lang_hooks.decls.poplevel, not poplevel.
7457 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7458 circular list rather than going into an infinite loop.
7459
0c0ab0f1
OH
74602004-03-23 Olivier Hainque <hainque@act-europe.fr>
7461
f75fbaf7
ZW
7462 * optabs.c (expand_binop): When synthesizing double word rotates
7463 from single word shifts, use a new register target if the provided
7464 target is not a REG already.
0c0ab0f1 7465
22421b79
RK
74662004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7467
7468 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7469 * c-common.c (handle_mode_attribute): Add extra arg to
7470 build_pointer_type_for_mode and build_reference_type_for_mode.
7471 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7472 for INTEGER_CST.
7473 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7474 Chain pointers via TYPE_NEXT_PTR_TO.
7475 (build_reference_type_for_mode): Similarly.
7476 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7477 and build_reference_type_for_mode.
7478 (tree_check4_failed): New function.
7479 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7480 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7481 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7482 Add check.
7483
b1500d00
RS
74842004-03-23 Roger Sayle <roger@eyesopen.com>
7485
7486 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7487 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
7488 when both A and B are nonnegative.
7489 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7490 nonzero.
7491
73b91357
KH
74922004-03-23 Kazu Hirata <kazu@cs.umass.edu>
7493
7494 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7495 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7496
bb3a37ac
RS
74972004-03-23 Kazu Hirata <kazu@cs.umass.edu>
7498
7499 PR optimization/14669
7500 * fold-const.c (fold): Only unwiden integer comparisons for equality
7501 and inequality operators, or when the signedness doesn't change.
7502
f2c79f80
JJ
75032004-03-23 Jakub Jelinek <jakub@redhat.com>
7504
7505 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7506 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7507 * config/sparc/t-linux: New file.
7508
1707bafa
RS
75092004-03-23 Richard Sandiford <rsandifo@redhat.com>
7510
7511 * gcse.c (can_assign_to_reg_p): New function, split out from...
7512 (want_to_gcse_p): ...here.
7513 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7514 the rhs of a store.
7515
63185fab
DN
75162004-03-22 Diego Novillo <dnovillo@redhat.com>
7517
7518 * c-typeck.c (same_translation_unit_p): Fix pasto.
7519
f72c6b56
DE
75202004-03-22 David Edelsohn <edelsohn@gnu.org>
7521
7522 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7523 (PARAM_MAX_SCHED_REGION_INSNS): New.
7524 * sched-rgn.c: Include params.h
7525 (MAX_RGN_BLOCKS): Delete.
7526 (MAX_RGN_INSNS): Delete.
7527 (too_large): Return bool. Convert to PARAM_VALUE.
0483ab6e 7528 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
f72c6b56
DE
7529 * doc/invoke.texi (param): Document max-sched-region-blocks and
7530 max-sched-region-insns.
7531
d6672e91
JB
75322004-03-22 Joel Brobecker <brobecker@gnat.com>
7533
7534 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7535 for base types.
7536
886de2d4
JB
75372004-03-22 Joel Brobecker <brobecker@gnat.com>
7538
7539 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7540 change.
7541
d915eec0
JJ
75422004-03-22 Jakub Jelinek <jakub@redhat.com>
7543
7544 PR c/14069
7545 * c-decl.c (finish_struct): Change type of incorrect flexible array
7546 field into error_mark_node.
7547
aa6d25c9
AP
75482004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
7549
19a03303 7550 PR target/14580
aa6d25c9
AP
7551 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7552 who are not local for Darwin PIC.
7553
ead61c1d
UW
75542004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
7555
7556 * regrename.c (regrename_optimize): Set regs_ever_live for all
7557 registers introduced as replacement.
7558
1bbd65cd
EB
75592004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
7560
7561 PR middle-end/14470
7562 * expr.c (mark_queue): New function.
7563 (emit_insns_enqueued_after_mark): New function replacing
7564 emit_queue. Clear the body of emitted queued insns.
7565 (emit_queue): Call emit_insns_enqueued_after_mark.
7566 (store_expr): Mark the increment queue on entry. Emit
7567 only the incrementations queued when expanding the source.
7568
6dd297da
NN
75692004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
7570
7571 * configure.ac: Allow --disable-coverage-flags (for the future benefit
7572 of top level bootstrap, and consistency). Reindent.
7573 * configure: Regenerate.
7574
400e39e3
KH
75752004-03-21 Kazu Hirata <kazu@cs.umass.edu>
7576
7577 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7578 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7579 unnecessary casts.
7580
bd8ec6a7
DS
75812004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
7582
7583 PR target/14291
7584 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7585 __MINGW32__.
7586
bd446804
UW
75872004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
7588
7589 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7590 to nonimmediate_operand.
7591 ("*doloop_di"): Likewise.
7592
1e92bbb9
AO
75932004-03-21 Alexandre Oliva <aoliva@redhat.com>
7594
7595 * real.h (struct real_value): Use the same type for all
7596 bitfields. Rename exp to uexp.
7597 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7598 Adjust all uses of exp...
7599 * builtins.c: ... here, ...
7600 * emit-rtl.c: ... here, and ...
7601 * real.c: ... and here.
7602
b9b44fb9
GDR
76032004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
7604
7605 * pretty-print.c (pp_base_maybe_space): New function.
7606 * pretty-print.h (pp_base_maybe_space): Declare.
7607 (pp_maybe_space): New macro.
7608
1c7b1b7e
UW
76092004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
7610
7611 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7612
f258e38b
UW
76132004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
7614
7615 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7616 of using register multiplication cost.
7617 (expand_mult): Adapt choose_mult_variant call.
7618 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7619 of MODE; pass appropriate cost bound. Adjust result when
7620 performing signed multiplication by a negative constant.
7621 Don't use intermediate modes larger than word_mode.
7622
6fce44af
RK
76232004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7624
7625 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7626 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7627 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7628 * explow.c (expr_size): Likewise.
7629 * expr.h (placeholder_list, find_placeholder): Deleted.
7630 * expr.c (store_constructor): Likewise.
7631 (get_inner_reference): Likewise. Also don't call find_placeholder.
7632 (placeholder_list, find_placeholder): Deleted.
7633 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7634 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7635 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7636 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7637 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7638 Likewise.
7639 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7640 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7641 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7642 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7643 Clean up by using first_rtl_op.
7644 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7645 (substitute_placeholder_in_expr): New function.
7646 * tree.def (WITH_RECORD_EXPR): Deleted.
7647 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7648 (substitute_placeholder_in_expr): New.
7649
0f005f33
AP
76502004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
7651
7652 * dojump.c (prefer_and_bit_test): Fix which part of
7653 the and_test is replaced.
7654
f80352b8
JM
76552004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
7656
7657 * frontends.texi: Add missing line.
7658
6ad79f18 76592004-03-21 Zack Weinberg <zack@codesourcery.com>
f75fbaf7
ZW
7660 Chris Devers <cdevers@pobox.com>
7661 Joseph S. Myers <jsm@polyomino.org.uk>
6ad79f18
JM
7662
7663 * doc/frontends.texi: Rewrite.
7664 * doc/gcc.texi: Update last modification date.
7665
eabd7d31
JZ
76662004-03-21 Josef Zlomek <zlomekj@suse.cz>
7667
7668 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7669 message before redirecting the edge.
7670
f8ad8d7c
ZD
76712004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7672
7673 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7674 flag.
7675 * explow.c (force_not_mem): Set REG_POINTER flag according to
7676 MEM_POINTER one.
7677 * rtl.h (MEM_POINTER): New macro.
7678 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7679 for MEM_POINTER.
7680
8cce3d04
RS
76812004-03-20 Roger Sayle <roger@eyesopen.com>
7682
7683 PR target/13889
7684 * cse.c (fold_rtx): Avoid substituting constants into unary
687c3ea5 7685 conversion operations.
8cce3d04 7686
05fe5c67
KH
76872004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7688
7689 * fold-const.c (fold): Replace "expr" with "t".
7690
dea984dc
ILT
76912004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
7692
7693 PR c/12373
7694 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7695 DECL_ORIGINAL_TYPE if there isn't one.
7696
079f946d
KH
76972004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7698
7699 * fold-const.c (fold): Replace "final_type" with "type".
7700 Remove variable "final_type".
7701
8d3784af
KH
77022004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7703
7704 * fold-const.c (fold): Constify "type".
7705 Replace "TREE_TYPE (t)" with "type".
7706
245f1bfa
KH
77072004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7708
7709 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7710 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7711 via (*targetm.foo) () with targetm.foo ().
7712
802f6d4b
JM
77132004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
7714
7715 PR other/14630
7716 * doc/install.texi: Add info directory category and entry.
7717
ea993805
KH
77182004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7719
7720 * fold-const.c (fold): Replace "t" with "tem" where it is used
7721 as a temporary variable. Remove "orig_t" and all of its uses.
7722
8e7b3a43
KH
77232004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7724
7725 * fold-const.c (fold): Remove variable "invert".
7726 Move the handling of relational expressions that can be folded
7727 to a constant ...
7728 (fold_relational_const): ... here.
7729 (tree_expr_nonzero_p): New.
7730
b1c2d04a
JM
77312004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
7732
7733 PR c/14635
7734 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7735 DEF_GCC_BUILTIN.
7736
dbf833ee
RS
77372004-03-20 Richard Sandiford <rsandifo@redhat.com>
7738
7739 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7740 (GTFILES): Add $(srcdir)/dojump.h.
7741 (gt-dojump.h): New dependency.
7742 * dojump.c (and_reg, and_test, shift_test): New static variables.
7743 (prefer_and_bit_test): New function.
7744 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7745
d1a6adeb
KH
77462004-03-20 Kazu Hirata <kazu@cs.umass.edu>
7747
7748 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7749 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7750 reorg.c, tree.h: Fix comment typos.
7751
5fd9b178
KH
77522004-03-19 Kazu Hirata <kazu@cs.umass.edu>
7753
7754 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7755 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7756 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7757 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7758 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7759 vmsdbgout.c: Replace calls via (*targetm.foo) () with
7760 targetm.foo ().
7761
86e7df90
ZL
77622004-03-19 Ziemowit Laski <zlaski@apple.com>
7763
7764 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7765 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7766 always_inline attribute.
7767 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7768 Treat expansion as completed even if literal argument is
7769 invalid (so that other expansions are not tried in vain).
7770
147d77b6
KH
77712004-03-19 Kazu Hirata <kazu@cs.umass.edu>
7772
7773 * loop-doloop.c (add_test): Replace GEN_INT (0) with
7774 const0_rtx.
7775
73c4ab99
KH
77762004-03-19 Kazu Hirata <kazu@cs.umass.edu>
7777
7778 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7779 ...
7780 (fold_abs_const): ... here.
7781
a6002f8d
RK
77822004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7783
7784 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7785
829bde68
DC
77862004-03-19 Denis Chertykov <denisc@overta.ru>
7787
d0aa5f10 7788 PR target/11520
829bde68
DC
7789 * config/avr/avr.md ("call_insn"): Handle explicit integer
7790 specially.
7791 (call_value_insn): Likewise.
7792
9d2a492d
RK
77932004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7794
7795 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7796
33d13fac
KH
77972004-03-19 Kazu Hirata <kazu@cs.umass.edu>
7798
7799 * fold-const.c (negate_expr): Move the handling of constants
7800 ...
7801 (fold_negate_const): ... here.
7802
7548281d
RK
78032004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7804
7805 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7806 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7807 * tree.c (debug_no_type_hash): Deleted.
7808 (type_hash_canon): Abort if passed a variant.
7809 Check lang_hooks.types.hash_types.
7810 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7811 (build_array_type): Remove unnecessary allocation of pointer type.
7812 (build_complex_type): Properly qualify resulting type.
7813
7e463bda
PB
78142004-03-19 Paolo Bonzini <bonzini@gnu.org>
7815
7816 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7817
8efc8980
RS
78182004-03-19 Richard Sandiford <rsandifo@redhat.com>
7819
7820 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7821 (expand_mult): ...here.
7822 (extract_high_half): New, split out from expand_mult_highpart.
7823 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
7824 (expand_highpart): Evaluate the cost of a shift/add sequence,
7825 then see if any of the specialized optabs are cheaper.
7826
ff3fcb8a
ILT
78272004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
7828
7829 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7830
1fb7e3af
KG
78312004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7832
7833 * convert.c (convert_to_real): Add more math builtins.
7834
b3810360
KG
78352004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7836
7837 * convert.c (convert_to_real): Reformat using switch stmt.
7838
9d363a56
MM
78392004-03-18 Mark Mitchell <mark@codesourcery.com>
7840
7841 * c-common.c (pointer_int_sum): Do not complain about using
7842 pointers to pointers-to-members.
7843
c3690d79
KH
78442004-03-18 Kazu Hirata <kazu@cs.umass.edu>
7845
7846 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7847 have moved to the target hooks structure".
7848
c3840092
JW
78492004-03-18 James E Wilson <wilson@specifixinc.com>
7850
7851 * config/mips/mips.md (type): Split move into arith and fmove. Split
7852 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
7853 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7854 Likewise.
7855 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7856 Likewise.
7857 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7858 rm7_fp_quick): Likewise.
7859 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7860 rm9k_fquick): Likewise.
7861 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7862 Likewise.
7863 (ir_sr70_icmp): Delete.
7864
eb34af89 78652004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
f75fbaf7 7866
eb34af89
RK
7867 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7868 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7869 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7870 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7871 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7872 Protect with proper check.
7873 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7874 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7875 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7876 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7877 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7878 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7879 not TYPE_FIELDS.
d3b6a5fb 7880 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
eb34af89 7881
2171cb85
MH
78822004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
7883
7884 * gcse.c (eliminate_partially_redundant_loads): Reject change if
7885 dest is set between beginning and current insn.
7886
4ada538b
MM
78872004-03-18 Mark Mitchell <mark@codesourcery.com>
7888
7889 * c-decl.c (grokdeclarator): Do not complain about redeclaring
7890 visible "static" identifiers "extern" in a local scope.
7891 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7892 post-increments/decrements.
7893
79e9ebdc
BW
78942004-03-18 Bob Wilson <bob.wilson@acm.org>
7895
7896 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7897 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7898 (xtensa_va_start): Remove assignment to current_function_arg_words.
7899
5da6f168
RS
79002004-03-18 Richard Sandiford <rsandifo@redhat.com>
7901
7902 * alias.c (record_set): Detect the case where a register is assigned
7903 a new value that has the same base term as the old one.
7904
689ba89d
ZD
79052004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
7906
7907 * doloop.c: Removed.
7908 * loop-doloop.c: New file.
7909 * Makefile.in (doloop.o): Remove.
7910 (loop-doloop.o): New.
7911 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7912 * cfgloopanal.c (get_loop_level): New function.
7913 * loop-iv.c (iv_number_of_iterations): Handle case when loop
7914 is leaved immediatelly.
7915 * loop.c (strength_reduce): Do not call doloop optimization.
7916 * loop.h (LOOP_BCT): Removed.
7917 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7918 (rest_of_handle_loop2): Call doloop_optimize_loops.
7919 (rest_of_compilation): Test for optimizations moved to
7920 rest_of_handle_loop2.
7921
327e5343
FJ
79222004-03-17 Fariborz Jahanian <fjahanian@apple.com>
7923
f75fbaf7
ZW
7924 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7925 for mixed mode.
7926 (rs6000_emit_prologue): Ditto.
7927 (rs6000_emit_epilogue): Ditto.
7928 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
7929 macro for mixed mode.
327e5343 7930
214ee4a2
JH
79312004-03-18 Jan Hubicka <jh@suse.cz>
7932
7933 * predict.c (propagate_freq): Compute correctly frequency of
7934 EXIT_BLOCK.
7935
33521f7d
EC
79362004-03-17 Eric Christopher <echristo@redhat.com>
7937
7938 * builtins.c (apply_args_size): Use reg_raw_mode.
7939 (apply_result_size): Ditto.
7940
d3daf7bb
RC
79412004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7942
7943 PR target/14620
7944 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
7945
bb6df272
JJ
79462004-03-17 Jakub Jelinek <jakub@redhat.com>
7947
7948 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
7949 32-bit builds when defaulting to 32-bit.
7950
7eca0767
JH
79512004-03-17 Jan Hubicka <jh@suse.cz>
7952
7953 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
7954 array.
7955
3a3ae5e5
JW
79562004-03-17 James E Wilson <wilson@specifixinc.com>
7957
7958 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
7959 (hazard_nop): Change type to nop.
7960 (type): Split arith into arith, shift, slt, clz. Delete darith.
7961 Fix all uses. Change arith to multi if more than one insn emitted.
7962 * config/mips/5400.md (ir_vr54_arith): Likewise.
7963 * config/mips/5500.md (ir_vr55_arith): Likewise.
7964 * config/mips/7000.md (rm7_int_other): Likewise.
7965 * config/mips/9000.md (rm9k_int): Likewise.
7966 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
7967
6582c808
JB
79682004-03-17 Joel Brobecker <brobecker@gnat.com>
7969
7970 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
7971 to hold the subtype tree instead of recomputing it several times.
7972
7ae4afcb
KH
79732004-03-17 Kazu Hirata <kazu@cs.umass.edu>
7974
7975 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
7976 CC_INVERT.
7977 * config/mn10300/mn10300.md (cc): Remove "invert".
7978
b57051b2
KG
79792004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7980
d093738d
KG
7981 * builtins.c (integer_valued_real_p): Add builtin rint.
7982 (fold_builtin): Likewise.
7983 * convert.c (convert_to_real): Likewise.
7984
b57051b2
KG
7985 * convert.c (convert_to_real): Fix typos in `long double'
7986 builtins.
7987
88020bd8
MM
79882004-03-16 Mark Mitchell <mark@codesourcery.com>
7989
7990 PR c++/14481
7991 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
7992 generated COMPOUND_EXPRs.
7993
bf3864fe
RC
79942004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7995
7996 * config/h8300/t-rtems (h8300-*-rtems*): New.
7997
bc4c01b7
EC
79982004-03-16 Eric Christopher <echristo@redhat.com>
7999
8000 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8001
3c5cb3e4
KH
80022004-03-16 Kazu Hirata <kazu@cs.umass.edu>
8003
8004 * config/i386/i386-protos.h: Add a prototype for
8005 ix86_reverse_condition.
8006 * config/i386/i386.c (ix86_reverse_condition): New.
8007 * config/i386/i386.h (REVERSE_CONDITION): Use
8008 ix86_reverse_condition.
8009 * config/i386/i386.md: Use ix86_reverse_condition instead of
8010 REVERSE_CONDITION.
8011
fd5580cb
B
80122004-03-16 J. Brobecker <brobecker@gnat.com>
8013
8014 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8015
78fab00f
NN
80162004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
8017
8018 PR bootstrap/12974
8019 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8020
4a5eab38
PB
80212004-03-16 Paolo Bonzini <bonzini@gnu.org>
8022
8023 * c-common.c (c_common_type_for_mode): Build vector types on
8024 demand.
8025 (handle_mode_attribute): Deprecate using the mode attribute
8026 to create vector types. Fix indentation.
8027 (vector_type_node_list): Remove.
8028 (handle_vector_size_attribute): Create vector types on demand.
8029 Strip a NON_LVALUE_EXPR from the attribute if there is one.
8030 * c-typeck.c (comptypes): Make vector types compatible if they
8031 have the same underlying mode.
8032 (convert_for_assignment): Use comptypes to convert between
8033 vector types.
8034 * tree.c (build_common_tree_nodes_2): Do not create vector types.
8035 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8036 vector types.
8037 * tree.h: Remove vector types.
8038 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8039 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8040 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8041 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8042 * doc/extend.texi (Vector Types): Document how to use the
8043 vector_size attribute to create vectors, rather than mode.
8044
8045 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8046 * config/i386/emmintrin.h: Likewise.
8047 * config/i386/mmintrin.h: Likewise.
8048 * config/i386/xmmintrin.h: Likewise.
8049 * config/sh/ushmedia.h: Likewise.
8050
b862b3b3
KH
80512004-03-16 Kazu Hirata <kazu@cs.umass.edu>
8052
8053 * config/freebsd-spec.h, config/arc/arc-protos.h,
8054 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8055 config/arm/linux-gas.h, config/arm/semi.h,
8056 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8057 config/ia64/freebsd.h, config/mips/7000.md,
8058 config/mips/9000.md, config/ns32k/ns32k-protos.h,
8059 config/sparc/pbd.h: Update copyright.
8060
314733e2
RC
80612004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8062
8063 PR target/14577
8064 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
8065
6621d78e
PB
80662004-03-16 Paolo Bonzini <bonzini@gnu.org>
8067
8068 * combine.c (combine_simplify_rtx): Remove the "last"
8069 parameter and its documentation. Adjust recursive calls.
8070 (simplify_logical): Always perform the only simplification
8071 controlled by "last", if the simplified expression is
8072 actually different.
8073 (try_combine): Do not pass the "last" parameter to
8074 combine_simplify_rtx.
8075
4e7edcca
RS
80762004-03-16 Richard Sandiford <rsandifo@redhat.com>
8077
8078 PR target/14599
8079 * config/mips/mips.md (UNSPEC_GP): New constant.
8080 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8081 an UNSPEC instead of (reg $gp).
8082 (mips16_gp_pseudo_reg): Change accordingly.
8083 (print_operand): Print $gp directly when handling CONST_GP_P.
8084
80852004-03-16 Richard Zidlicky <rz@linux-m68k.org>
3704aae9
RZ
8086
8087 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8088 * longlong.h: Make code 68060 clean when compiling for m68060.
8089
4e7edcca 80902004-03-16 Richard Zidlicky <rz@linux-m68k.org>
8ac658b6
RZ
8091
8092 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8093 * doc/md.texi: Clarify description of "i" constraint.
8094
1a478672
JW
80952004-03-15 James E Wilson <wilson@specifixinc.com>
8096
8097 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8098 Split store into store, fpstore, fpidxstore. Fix all uses.
8099 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8100 Likewise.
8101 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8102 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8103 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8104 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8105 ir_sr70_fstore): Likewise.
8106
0977ab3a
RH
81072004-03-15 Richard Henderson <rth@redhat.com>
8108
8109 PR middle-end/14535
8110 * except.c (collect_one_action_chain): Record action for cleanup
8111 outer of exception spec.
8112
4e4083ad
ILT
81132004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
8114
8115 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8116 Fix the check for abort and only do the mmap if we can.
8117
ed38d6fe
EB
81182004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
8119
8120 * config/sparc/sparc.h: Rework comments about the code model
8121 in 64-bit environment and the mode 'Pmode'.
8122 * doc/invoke.texi (SPARC options): Rework description of the
8123 different code models supported in 64-bit environment.
8124
1f8551b2
KH
81252004-03-15 Kazu Hirata <kazu@cs.umass.edu>
8126
8127 * defaults.h (REVERSIBLE_CC_MODE): Define.
8128 * jump.c (reversed_comparison_code_parts): Don't check if
8129 REVERSIBLE_CC_MODE is defined.
8130
ca2b05ba
KH
81312004-03-15 Kazu Hirata <kazu@cs.umass.edu>
8132
8133 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8134 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8135 hosthooks.h, params.h, ra-colorize.c, web.c,
8136 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8137 config/avr/avr-protos.h, config/avr/avr.md,
8138 config/fr30/fr30-protos.h, config/fr30/fr30.md,
8139 config/h8300/fixunssfsi.c, config/i386/darwin.h,
8140 config/i386/freebsd.h, config/i386/freebsd64.h,
8141 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8142 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8143 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8144 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8145 config/pa/pa64-regs.h, config/rs6000/aix41.h,
8146 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8147 config/sparc/aout.h, config/sparc/freebsd.h,
8148 config/sparc/litecoff.h, config/vax/vax-protos.h,
8149 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8150 copyright.
8151
983e6484
PB
81522004-03-15 Paul Brook <paul@codesourcery.com>
8153
8154 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8155
5c3c69f4
GDR
81562004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
8157
8158 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8159 (pp_c_cv_qualifier): Document.
8160 (pp_c_space_for_pointer_operator): Likewise.
8161 (pp_c_integer_constant): Likewise.
8162 (pp_c_identifier): Likewise.
8163 (pp_c_init_declarator): Don't print function body.
8164
2dd76960
JM
81652004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
8166
8167 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8168 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8169 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8170 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
8171 wording and grammar.
8172
ae2bcd98
RS
81732004-03-14 Roger Sayle <roger@eyesopen.com>
8174
8175 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8176 with lang_hooks.foo ().
8177 * builtins.c (expand_builtin_va_arg): Likewise.
8178 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8179 c_common_type_for_mode, c_common_nodes_and_builtins,
8180 handle_mode_attribute, handle_vector_size_attribute): Likewise.
8181 * c-convert.c (convert): Likewise.
8182 * c-format.c (check_format_types): Likewise.
8183 * c-objc-common.c (c_tree_printer): Likewise.
8184 * c-typeck.c (build_unary_op, build_conditional_expr,
8185 build_binary_op): Likewise.
8186 * calls.c (try_to_integrate, expand_call,
8187 emit_library_call_value_1): Likewise.
8188 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8189 Likewise.
8190 * cgraphunit.c (record_call_1, cgraph_analyze_function,
8191 cgraph_expand_function): Likewise.
8192 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8193 * coverage.c (build_fn_info_type, build_ctr_info_type,
8194 build_gcov_info, create_coverage): Likewise.
8195 * dbxout.c (dbxout_init): Likewise.
8196 * diagnostic.c (diagnostic_report_current_function): Likewise.
8197 * dojump.c (do_jump): Likewise.
8198 * dwarf2out.c (dwarf2_name): Likewise.
8199 * except.c (init_eh): Likewise.
8200 * explow.c (expr_size, int_expr_size): Likewise.
8201 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8202 Likewise.
8203 * expr.c (store_expr, store_constructor, safe_from_p,
8204 expand_expr_real, do_store_flag, try_casesi): Likewise.
8205 * function.c (push_function_context_to, pop_function_context_from,
8206 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8207 put_var_into_stack, allocate_struct_function, current_function_name):
8208 Likewise.
8209 * integrate.c (copy_decl_for_inlining, expand_inline_function):
8210 Likewise.
8211 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8212 lhd_print_error_function): Likewise.
8213 * opts.c (handle_option, decode_options): Likewise.
8214 * passes.c (open_dump_file): Likewise.
8215 * print-tree.c (print_node): Likewise.
8216 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8217 expand_decl_cleanup, emit_case_nodes): Likewise.
8218 * stor-layout.c (variable_size): Likewise.
8219 * toplev.c (announce_function, wrapup_global_declarations,
8220 check_global_declarations, compile_file, default_tree_printer,
8221 process_options, lang_dependent_init, finalize): Likewise.
8222 * tree-dump.c (dequeue_and_dump): Likewise.
8223 * tree-inline.c (remap_decl, remap_block, copy_body_r,
8224 initialize_inlined_parameters, declare_return_variable,
8225 inlinable_function_p, expand_call_inline, optimize_inline_calls,
8226 walk_tree, copy_tree_r): Likewise.
8227 * tree-optimize.c (tree_rest_of_compilation): Likewise.
8228 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8229 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8230 variably_modified_type_p, dump_tree_statistics): Likewise.
8231 * varasm.c (assemble_variable, compare_constant, copy_constant,
8232 force_const_mem, compute_reloc_for_constant, output_constant,
8233 output_addressed_constants, initializer_constant_valid_p): Likewise.
8234
89acbae0
KC
82352004-03-14 Kelley Cook <kcook@gcc.gnu.org>
8236
8237 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8238
d01b30dc
AT
82392004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
8240
8241 * doc/install.texi: Reflect autoconf and automake version for
8242 libffi. Update autoconf version to 2.59.
8243
5785c7de
RS
82442004-03-13 Roger Sayle <roger@eyesopen.com>
8245
8246 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8247 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8248 make_range, build_range_check, fold_range_test, unextend,
8249 constant_boolean_node, fold_binary_op_with_conditional_arg,
8250 fold_truthop, fold_mathfn_compare, fold_inf_compare,
8251 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8252 with lang_hooks.foo ().
8253
edc62122
RE
82542004-03-14 Richard Earnshaw <rearnsha@arm.com>
8255
8256 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8257
7db956db
DH
82582004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
8259
8260 * doc/install.texi: Note status of -fnew-ra.
8261
e6d55fd7
EB
82622004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
8263
8264 PR middle-end/14470
8265 * expr.c (store_expr): Call emit_queue before generating the move
8266 from the temporary to the original target. Protect the temporary
8267 from emit_queue.
8268
cfbab41c
JJ
82692004-03-13 Jakub Jelinek <jakub@redhat.com>
8270
8271 PR target/14533
8272 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8273 other than UNSPEC_GOTOFF.
8274
1e1ab407
RE
82752004-03-13 Richard Earnshaw <rearnsha@arm.com>
8276
8277 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
8278 to arm_legitimate_index_p. Update all callers with SET as default
8279 value.
8280 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
8281 range if OUTER is a sign-extend operation on QImode. Correctly
8282 reject shift operations on sign-extended QImode addresses.
8283 (bad_signed_byte_operand): Delete.
8284 (arm_extendqisi_mem_op): New function.
8285 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
8286 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
8287 constraints.
8288 (CONSTRAINT_LEN): New.
8289 (EXTRA_CONSTRAINT): Delete. Replace with...
8290 (EXTRA_CONSTRAINT_STR): ... this.
8291 (PREDICATE_CODES): Remove bad_signed_byte_operand.
8292 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
8293 is now always default.
8294 (define_splits for bad sign-extend loads): Delete.
8295 (arm_extendqisi, arm_extendqisi_v5): Likewise.
8296 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8297 Rework 'U' constraint to 'Uv'.
8298 * arm-protos.h: Remove bad_signed_byte_operand. Add
8299 arm_extendqisi_mem_op.
8300 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8301 Add Uq constraint.
8302
c53bdcf5
AM
83032004-03-13 Alan Modra <amodra@bigpond.net.au>
8304
fa78dbea
AM
8305 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8306 with targetm version.
8307
c53bdcf5
AM
8308 PR target/14567
8309 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8310 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8311 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8312 Update all users of RS6000_ARG_SIZE.
8313 (function_arg_advance): Count fregno using mode size.
8314 (function_arg): Handle long double split over regs and memory.
8315 (function_arg_partial_nregs): Likewise.
8316 (rs6000_va_arg): Repackage complex args.
8317
992ab122
DF
83182004-03-13 Dean Ferreyra <dferreyra@igc.org>
8319
8320 PR target/14047
8321 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8322 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8323 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8324
c973d557
JJ
83252004-03-12 Jakub Jelinek <jakub@redhat.com>
8326
8327 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8328 prototype.
8329 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8330 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8331
4319ac92
AP
83322003-03-12 Andrew Pinski <apinski@apple.com>
8333
8334 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8335 Use ret instead of result. Use addr instead of base.
8336
bb674cef
DE
83372004-03-12 David Edelsohn <edelsohn@gnu.org>
8338
8339 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8340 fixes required by libstdc++ and update installation instructions
8341 for libstdc++.a.
8342
b1f123c7
DS
83432004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
8344
8345 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8346 leading '@' on fastcall symbols before stripping suffix.
8347
67962db5
RS
83482004-03-12 Roger Sayle <roger@eyesopen.com>
8349
8350 * combine.c (unmentioned_reg_p): New function to check whether an
8351 expression is a "specialization" of another, i.e. that there are
8352 no registers or memory references mentioned in the first that don't
8353 appear in the second.
8354 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8355 (combine_instructions): Also try combining instructions using the
8356 REG_EQUAL note from a preceding log-linked instruction.
8357
8937b6a2
RS
83582004-03-12 Roger Sayle <roger@eyesopen.com>
8359
8360 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8361
4746cf84
MA
83622004-03-12 Matt Austern <austern@apple.com>
8363
8364 * target.h (struct gcc_target): New target hook, unwind_label.
8365 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8366 * output.h (default_emit_unwind_label): New function.
8367 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8368 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8369 (TARGET_SUPPORTS_HIDDEN): New target macro.
8370 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8371 that corresponds to this FDE.
8372 (FRAME_BEGIN_LABEL): Allow target to override default label.
8373 (output_call_frame_info): If FDEs are linknonce, then use extra
c53bdcf5 8374 indirection for FDE encoding, output a label for each FDE, and
4746cf84
MA
8375 output an empty label for each function without an FDE.
8376 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8377 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8378 decls with DECL_ONE_ONLY set, if that macro is defined.
8379 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8380 for a SUPPORTS_ONE_ONLY target.
8381 * config/darwin-protos.h (darwin_unique_section): Declare.
8382 (darwin_asm_named_section): Likewise.
8383 (darwin_section_type_flags): Likewise.
8384 (darwin_non_lazy_pcrel): Likewise.
8385 (darwin_emit_unwind_label): Likewise.
8386 (darwin_make_decl_one_only): Likewise.
8387 * config/darwin.c (machopic_finish): Get rid of tweak that
8388 eliminate stubs for symbols that are defined.
8389 (darwin_encode_section_info): Don't treat weak functions as defined.
8390 (darwin_make_decl_one_only): Define.
8391 (darwin_asm_named_section): Likewise.
8392 (darwin_section_type_flags): Likewise.
8393 (darwin_unique_section): Likewise.
8394 (darwin_emit_unwind_label): Likewise.
8395 (darwin_non_lazy_pcrel): Likewise.
8396 (darwin_asm_output_dwarf_delta): Difference between two labels is
8397 local only if both labels are local.
8398 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8399 (ASM_MAKE_LABEL_LINKONCE): Likewise.
8400 (TARGET_SUPPORTS_HIDDEN): Likewise.
8401 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8402 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8403 (FRAME_BEGIN_LABEL): Likewise.
8404 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8405 (ASM_DECLARE_FUNCTION_NAME): Likewise.
8406 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8407 (TARGET_ASM_UNIQUE_SECTION): Define.
8408 (EH_FRAME_SECTION_NAME): Define.
8409 (EH_FRAME_SECTION_ATTR): Likewise.
8410 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8411 (TARGET_ASM_NAMED_SECTION): Likewise.
8412 (TARGET_SECTION_TYPE_FLAGS): Likewise.
8413 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8414 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8415 TARGET_ASM_EMIT_UNWIND_LABEL.
bc4c01b7 8416
fd0c8c8d
KG
84172004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8418
8419 * builtins.c (expand_builtin_mathfn): Add pow10* to the
8420 existing exp10* case.
8421 (expand_builtin): Likewise.
8422
ca0b6e3b
EB
84232004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
8424
8425 * doc/tm.texi (registers) <Values in Registers>: Add
8426 entry for REGMODE_NATURAL_SIZE.
8427
42ba5130
RH
84282004-03-12 Richard Henderson <rth@redhat.com>
8429
8430 PR target/14547
8431 * target.h (struct gcc_target): Move calls substructure before
8432 booleans. Add split_complex_arg.
8433 * function.c (assign_parms, split_complex_args): Use it.
c53bdcf5
AM
8434 * calls.c (expand_call): Likewise.
8435 (split_complex_values): Likewise. Check for splittable types
8436 before allocating memory.
8437 (split_complex_types): Likewise.
42ba5130
RH
8438 * system.h (SPLIT_COMPLEX_ARGS): Poison.
8439 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8440 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8441 * config/alpha/alpha.c (alpha_split_complex_arg): New.
8442 (TARGET_SPLIT_COMPLEX_ARG): New.
8443 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8444 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8445 (rs6000_override_options): Zap it for non-AIX.
8446 (rs6000_function_value): Use targetm.calls.split_complex_arg.
8447 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8448 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8449 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8450 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8451 SPLIT_COMPLEX_ARGS entry.
8452
75959f0a
RH
84532004-03-11 Richard Henderson <rth@redhat.com>
8454
8455 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8456 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8457 (alpha_emit_xfloating_arith): Update to match.
8458 (alpha_emit_xfloating_compare): Likewise.
8459 (alpha_emit_xfloating_cvt): Likewise.
8460 (alpha_emit_xfloating_libcall): Take already built symbol,
8461 mark call const.
8462 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8463 op1 in a register.
8464
e5e10fb4
RH
84652004-03-11 Richard Henderson <rth@redhat.com>
8466
8467 PR target/14539
8468 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8469
55cf9d62
RH
8470 * simplify-rtx.c (simplify_relational_operation): Fix typo.
8471
9caad63a
RH
84722004-03-11 Richard Henderson <rth@redhat.com>
8473
8474 PR middle-end/14477
8475 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8476
03ca1672
UW
84772004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
8478
8479 PR target/14262
8480 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8481 defined, pass small BLKmode values in registers in the low-order part.
8482
bbe708a3
UW
84832004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
8484
8485 * combine.c (if_then_else_cond): Check for NULL return value of
8486 simplify_gen_subreg.
8487
0e808055
RS
84882004-03-11 Richard Sandiford <rsandifo@redhat.com>
8489
8490 PR target/14496
8491 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8492 TARGET_SINGLE_FLOAT.
8493
1f7aa7cd
SE
84942004-03-11 Steve Ellcey <sje@cup.hp.com>
8495
8496 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8497 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8498 * config/ia64/ia64.c (ia64_init_libfuncs): New.
8499 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8500
239a625e
RS
85012004-03-11 Roger Sayle <roger@eyesopen.com>
8502
8503 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8504 -((int)X>>C) where C is an integer constant one bit less than the
8505 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
8506 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8507
8508 * simplify-rtx.c (simplify_unary_operation): Also implement the
8509 above transformations at the RTL level.
8510
40131a38
AM
85112004-03-11 Alan Modra <amodra@bigpond.net.au>
8512
8513 * real.c (encode_ibm_extended): Do round low word.
8514
df8e2ad0
BE
85152004-03-11 Ben Elliston <bje@wasabisystems.com>
8516
8517 * config/arm/arm.md (is_xscale): Comment this attribute and move
8518 it a bit further up in the file, closer to related attributes.
8519
d1704a35
EB
85202004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
8521
8522 * config/host-solaris.c (sol_gt_pch_use_address): Add
8523 missing terminating marker to comment.
8524
fc31c7ca
RS
85252004-03-11 Richard Sandiford <rsandifo@redhat.com>
8526
8527 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8528 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8529 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8530 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
8531 move_operand as source predicate in all cases.
8532 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
8533 Test reg_or_0_operand. Use move_operand as source predicate.
8534 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
8535 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8536 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
8537 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8538 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
8539 Use move_operand as source predicate. Remove 'K' constraint.
8540 (*movqi_internal): Likewise movqi_internal.
8541 (*movsf_hardfloat): Renamed from movsf_internal1. Test
8542 reg_or_0_operand. Use move_operand as source predicate.
8543 (*movsf_softfloat): Likewise movsf_internal2.
8544 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8545 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8546 (*movdf_softfloat): Likewise movdf_internal2.
8547 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8548 for DImode if !TARGET_64BIT.
8549 (mips_legitimize_move): Simplify accordingly.
8550
81f2eadb
JZ
85512004-03-11 Josef Zlomek <zlomekj@suse.cz>
8552
8553 PR/14362
8554 * var-tracking.c (struct variable_def): Added field refcount.
8555 (variable_htab_free): Decrease the refcount and delete variable
8556 only if there are no more references.
8557 (unshare_variable): New function.
8558 (vars_copy_1): Increase refcount instead of copying the variable.
8559 (variable_union): Share the variables where possible, unshare
8560 the variables if needed.
8561 (variable_different_p): Return false if var1 and var2 are
8562 the same structure.
8563 (variable_was_changed): Init the refcount of new variable.
8564 (set_frame_base_location): Unshare variable if needed.
8565 (set_variable_part): Init the refcount of new variable.
8566 Unshare the variables if needed.
c53bdcf5 8567 (delete_variable_part): Unshare the variables if needed.
81f2eadb
JZ
8568 (emit_notes_for_differences_1): Init the refcount of new variable.
8569 (vt_add_function_parameters): Do not add function parameters to
8570 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8571 (vt_initialize): Do not add frame_base_decl to IN set of
8572 ENTRY_BLOCK_PTR because it is unused anyway.
8573
11599d14
JZ
85742004-03-11 Josef Zlomek <zlomekj@suse.cz>
8575
8576 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8577 (vars_copy): Likewise.
8578 (variable_union): Likewise.
8579 (set_variable_part): Likewise.
8580 (delete_variable_part): Likewise.
8581
71cc389b
KH
85822004-03-11 Kazu Hirata <kazu@cs.umass.edu>
8583
8584 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8585 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8586 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8587 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8588 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8589 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8590 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8591 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8592 config/stormy16/stormy16.c: Fix comment typos and formatting.
8593
f3c9f174
NN
85942004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
8595
8596 * configure: Regenerate, since I forgot to while committing Paolo's
8597 changes.
8598
e4c9c075
PB
85992004-03-08 Paolo Bonzini <bonzini@gnu.org>
8600
8601 PR ada/14131
8602 Move language detection to the top level.
8603 * configure.ac: Remove code to detect languages,
8604 it now lives exclusively in the top level.
8605 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8606 top level, renamed to ACX_PROG_GNAT.
8607
4d0c31e6
RH
86082004-03-10 Richard Henderson <rth@redhat.com>
8609
8610 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8611 extra arguments.
8612 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8613 and host_xmake_file fragments.
8614 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8615 (gt_pch_restore): Similarly for gt_pch_use_address.
8616 (default_gt_pch_get_address): New.
8617 (mmap_gt_pch_get_address): Split out of gt_pch_save.
8618 (default_gt_pch_use_address): Split out of gt_pch_restore.
8619 (mmap_gt_pch_use_address): Likewise.
8620 * hooks.c (hook_voidp_size_t_null): Remove.
8621 (hook_bool_voidp_size_t_false): Remove.
8622 * hooks.h: Likewise.
8623 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8624 default_ or mmap_ definitions.
8625 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8626 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8627 and gt_pch_use_address.
8628 * config/host-linux.c, config/host-solaris.c: New files.
8629 * config/x-linux, config/x-solaris: New files.
bc4c01b7 8630 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
4d0c31e6
RH
8631 Update for changed definition.
8632 (darwin_rs6000_gt_pch_use_address): Likewise.
8633 * doc/hostconfig.texi: Update docs.
8634
28fca7e4
RH
86352004-03-10 Richard Henderson <rth@redhat.com>
8636
8637 PR c/14517
8638 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8639 except for pedantic c90 mode.
8640
8ab705be
KC
86412004-03-10 Kelley Cook <kcook@gcc.gnu.org>
8642
8643 * configure.ac: Bump AC_PREREQ to 2.59.
8644 * configure: Regenerate.
8645
a251102e
UB
86462004-03-10 Uros Bizjak <uros@kss-loka.si>
8647
8648 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8649 (exp10_optab, exp2_optab): Define corresponding macros.
8650 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8651 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8652 using exp10?f2 and exp2?f2 patterns.
8653 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8654 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8655 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8656 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8657
8658 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8659 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8660 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8661
11f01d37
AG
86622004-03-10 Anthony Green <green@redhat.com>
8663
8664 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8665
bb904c1a
DE
86662004-03-10 David Edelsohn <edelsohn@gnu.org>
8667
8668 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8669 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
8670 __LONGDOUBLE128.
8671 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8672 TARGET_OS_AIX_CPP_BUILTINS.
8673 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8674 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8675 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8676 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8677 previous change.
8678
b45d3a36
KG
86792004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8680
8681 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8682
35ae04ba
DE
86832004-03-10 David Edelsohn <edelsohn@gnu.org>
8684
8685 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8686 __LONGDOUBLE128 on AIX.
8687
ffad84cd
AH
86882004-03-10 Andrew Haley <aph@redhat.com>
8689
f7b48371 8690 PR optimization/14381
ffad84cd
AH
8691 * function.c (expand_function_end): Emit a blockage insn before
8692 the epilogue when -fnon-call-exceptions is used.
8693
8694 * except.c (expand_start_all_catch): Make comment more accurate.
8695
65cd26a6
JS
86962004-03-08 Joel Sherrill <joel@oarcorp.com>
8697
8698 PR target/14480
8699 * config/rs6000/t-rtems: Add missing file on branch.
8700
452c159e
UW
87012004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
8702
8703 * dbxout.c (dbxout_symbol_location): Do not output references
8704 to optimized-out constant pool symbols.
8705
5f1b2068
AS
87062004-03-10 Andreas Schwab <schwab@suse.de>
8707
8708 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8709 twon34_r.
8710
5399d643
JW
87112004-03-09 James E Wilson <wilson@specifixinc.com>
8712
8713 * alias.c (alias_sets_might_conflict_p): New.
8714 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8715 * common.opt (Wstrict-aliasing=): New.
8716 * flags.h (warn_strict_aliasing): Change type to int.
8717 * opts.c (warn_strict_aliasing): Change type to int.
8718 (common_handle_option): Handle OPT_Wstrict_aliasing_.
8719 * tree.h (alias_sets_might_conflict_p): Declare it.
8720 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8721
a4e9467d
RZ
87222004-03-10 Roman Zippel <zippel@linux-m68k.org>
8723
8724 PR bootstrap/12371
8725 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8726 (CALL_USED_REGISTERS): Likewise.
c53bdcf5 8727 (REG_CLASS_CONTENTS): Likewise.
a4e9467d
RZ
8728 (REG_ALLOC_ORDER): New.
8729 (REGNO_REG_CLASS): Use regno_reg_class.
8730 * config/m68k/m68k.c: Add regno_reg_class array.
8731
9aec7fb4
SE
87322004-03-09 Steve Ellcey <sje@cup.hp.com>
8733
8734 * config/ia64/ia64.md (divsi3): Fix algorithm.
8735 (udivsi3): Ditto.
8736 (setf_exp_xf): Remove '*' from name.
8737 * testsuite/gcc.dg/20040309-1.c: New test.
8738
9acd4a03
ILT
87392004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
8740
8741 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8742 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8743 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8744 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8745 (sparc_aout_select_rtx_section): Don't check
8746 SUNOS4_SHARED_LIBRARIES.
8747 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8748
a5249a21
HPN
87492004-03-10 Hans-Peter Nilsson <hp@axis.com>
8750
8751 PR other/14474
8752 * doc/md.texi (Pattern Ordering, Dependent Patterns)
8753 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8754 INTERNALS".
8755
e373cdb4
ZW
87562004-03-09 Zack Weinberg <zack@codesourcery.com>
8757
8758 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8759 (LIBGCC_SPEC): Update to match.
8760
77dbdb57
ZW
87612004-03-09 Zack Weinberg <zack@codesourcery.com>
8762
8763 * c-decl.c (last_function_parms, last_function_parm_tags)
8764 (last_function_parm_others, current_function_parms)
8765 (current_function_parm_tags, current_function_parm_others):
8766 Delete.
8767 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8768 New macros.
8769 (grokdeclarator): For function definitions, save the arg-info
8770 block from the declarator in DECL_ARGUMENTS.
8771 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
8772 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
8773 contains only PARM_DECLs. Improve diagnostics.
8774 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
8775 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
8776 (store_parm_decls_newstyle): Take the function to operate on,
8777 and an arg-info block, as arguments; don't get anything from
8778 current_function_* globals.
8779 (store_parm_decls_oldstyle): Likewise.
8780 (store_parm_decls): Pass fndecl and its arg-info block down to
8781 store_parm_decls_newstyle/oldstyle. Send functions with empty
8782 argument lists through store_parm_decls_newstyle to reduce
8783 overhead.
8784 (pushdecl): Comment on the problems with the call to copy_node.
8785 Clear DECL_ARGUMENTS of the old node after copying it, if it
8786 is an arg-info block instead of a chain of decls.
8787 (start_function): Do not manipulate current_function_parm* or
8788 last_function_parm*.
8789
305eeaeb
RS
87902004-03-09 Roger Sayle <roger@eyesopen.com>
8791 Andrew Pinski <pinskia@physics.uc.edu>
8792
8793 * ifcvt.c (noce_try_sign_mask): New function to transform
8794 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8795 (noce_process_if_block): Call noce_try_sign_mask.
8796
f38f747d
AP
87972004-03-09 Andrew Pinski <apinski@apple.com>
8798
8799 * c-typeck.c (tagged_types_tu_compatible_p):
8800 Fix typo.
8801
7ce3e360
RS
88022004-03-09 Roger Sayle <roger@eyesopen.com>
8803
8804 * simplify-rtx.c (simplify_const_relational_operation): New function
8805 renamed from simplify_relational_operation.
8806 (simplify_relational_operation): Change prototype to accept an
8807 additional mode argument. Call simplify_const_relational_operation.
8808 (simplify_gen_relational): Update simplify_relational_operation call.
8809 (simplify_ternary_operation): Update simplify_relational_operation
8810 subroutine call to use simplify_const_relational_operation instead.
8811
8812 * rtl.h (simplify_const_relational_operation): Prototype here.
8813 (simplify_relational_operation): Add addtional mode argument.
8814
8815 * combine.c (combine_simplify_rtx): Update calls to
8816 simplify_relational_operation.
8817 (simplify_set): Likewise.
8818 (gen_binary): Likewise.
8819 * cse.c (fold_rtx): Likewise.
8820 * dojump.c (compare_from_rtx): Likewise.
8821 (do_compare_rtx_and_jump): Likewise.
8822 * integrate.c (subst_constants): Likewise.
8823 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8824
c0e63064
KH
88252004-03-09 Kazu Hirata <kazu@cs.umass.edu>
8826
8827 * config/m32r/m32r.md: Remove all define_peephole's.
8828
6ae08853
AM
88292004-03-09 Alan Modra <amodra@bigpond.net.au>
8830
8831 * config/rs6000/rs6000.md: Remove trailing whitespace.
8832
5340bbea
EC
88332004-03-08 Eric Christopher <echristo@redhat.com>
8834
8835 * Makefile.in (site.exp): Add libiconv variable definition.
8836
3beb1315
HPN
88372004-03-09 Hans-Peter Nilsson <hp@axis.com>
8838
8839 * configure: Regenerate for config/accross.m4 correction.
8840
c589970a
JS
88412004-03-08 Joel Sherrill <joel@oarcorp.com>
8842
8843 PR target/14480
8844 * config/rs6000/t-rtems: Add missing file on branch.
8845
e697b20f
RS
88462004-03-08 Roger Sayle <roger@eyesopen.com>
8847
8848 PR middle-end/14289
8849 * c-typeck.c (c_mark_addressable): A register variable should
8850 be considered global if its not automatic, i.e. TREE_PUBLIC,
8851 TREE_STATIC or DECL_EXTERNAL.
8852 * function.c (put_var_into_stack): Call abort when placing a
8853 hard register into the stack, if x_parm_reg_stack_loc is NULL.
8854
59f8a8be
UW
88552004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
8856
8857 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8858 ("*extendqisi2_short_displ"): Likewise.
8859
23bd99da
KH
88602004-03-08 Kazu Hirata <kazu@cs.umass.edu>
8861
8862 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8863 (comp_operator): Likewise.
8864 * config/pdp11/pdp11-protos.h: Remove corresponding
8865 prototypes.
8866
d50a16c4
EB
88672004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
8868
8869 * expr.c (highest_pow2_factor_for_type): Rename into
8870 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
8871 TYPE_ALIGN when the target is a COMPONENT_REF.
8872 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8873
957211c3
AM
88742004-03-08 Alan Modra <amodra@bigpond.net.au>
8875
b1917422
AM
8876 * config/rs6000/rs6000.c: Formatting fix.
8877 (legitimate_offset_address_p): Correct offset range check.
8878
957211c3
AM
8879 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8880 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
8881 and MASK_STRING.
8882
97727e85 88832004-03-07 Aldy Hernandez <aldyh@redhat.com>
5340bbea 8884
77dbdb57
ZW
8885 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8886 for little endian.
8887 ("ashrdi3_no_power"): Disable for little endian.
97727e85
AH
8888 (ashrdi3): Same.
8889
280e63ec
KG
88902004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8891
8892 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8893 builtins.
8894
86da66b5
HPN
88952004-03-08 Hans-Peter Nilsson <hp@axis.com>
8896
8897 PR target/14471
8898 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8899 case, checking for -no-mul-bug-abort option.
8900 * configure, config.in: Regenerate.
8901 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8902 and -mno-mul-bug-workaround.
8903 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8904 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8905 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8906 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
8907 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8908 sure mulu.d is not last on cache-line.
8909 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8910 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8911 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8912 (TARGET_SWITCHES): New options -mmul-bug-workaround and
8913 -mno-mul-bug-workaround.
8914 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8915 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8916 * config/cris/cris.c (cris_operand_extend_operator): Clarify
8917 relation to MULT in head comment.
8918 (cris_op_str): Abort for MULT.
8919 (cris_print_operand) <case '!'>: New case.
8920
e7ee3914
AM
89212004-03-08 Alan Modra <amodra@bigpond.net.au>
8922
8923 PR debug/11983
8924 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8925 dw_val_class_vec. Replace use throughout file.
8926 (dw_float_const): Delete.
8927 (dw_vec_const): New.
8928 (dw_val_struct_union): Rename val_float to val_vec. Replace use
8929 throughout file.
8930 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
8931 (same_dw_val_p): Adjust vec comparison. Use memcmp.
8932 (size_of_die): Adjust dw_val_class_vec sizing.
8933 (output_die): Output dw_val_class_vec.
8934 (insert_int, extract_int, insert_float): New functions.
8935 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
8936 Handle CONST_VECTOR.
8937 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
5cc73f91
AH
8938
89392004-03-07 Aldy Hernandez <aldyh@redhat.com>
8940
8941 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
8942 AltiVec abi cannot co-exist.
8943
8944 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
8945
a61bf177
JH
89462004-03-07 Jan Hubicka <jh@suse.cz>
8947
8948 * except.c (emit_to_new_bb_before): Break fallthru edges.
8949
17c60946
SC
89502004-03-07 Stephane Carrez <stcarrez@nerim.fr>
8951
8952 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
8953 ("*lshrsi3"): Also accept an immediate for 68HC12.
8954 ("*ashrsi3_const"): Likewise.
8955 ("*ashrsi3"): Likewise.
8956 ("*ashlsi3_const"): Likewise.
8957 ("*ashlsi3"): Likewise.
8958 ("cmphi_1_hc12"): Compare two hard register by pushing them and
8959 comparing with a pop; don't use a split for that.
8960 ("cmphi split"): Disable compare split for 68HC12.
8961
8962 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
8963 the status operands if they have side effects.
8964
3e759eda
KH
89652004-03-07 Kazu Hirata <kazu@cs.umass.edu>
8966
8967 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
8968 definition.
8969 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
8970 config/h8300/h8300.h, config/ia64/ia64.h,
8971 config/mcore/mcore.h, config/mmix/mmix.h,
8972 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8973 config/stormy16/stormy16.h, config/v850/v850.h,
8974 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
8975 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
8976 definition.
8977
cd2f1c7a
RS
89782004-03-07 Roger Sayle <roger@eyesopen.com>
8979
8980 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
8981 <XOR_EXPR>: Fold x ^ x as zero.
8982 <AND_EXPR>: Fold x & x as x.
8983
350f4ea8
RS
89842004-03-07 Roger Sayle <roger@eyesopen.com>
8985
8986 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
8987 "foo++ == const" into "++foo == const+incr".
8988
91455597
RS
89892004-03-07 Richard Sandiford <rsandifo@redhat.com>
8990
8991 * config/mips/mips.c (mips_in_small_data_p): Return false if
8992 TARGET_ABICALLS.
8993
a75ea627
SC
89942004-03-06 Stephane Carrez <stcarrez@nerim.fr>
8995
8996 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
8997 the stack register.
8998 (expand_prologue): Don't make an interrupt or a trap handler a far
8999 symbol.
9000 (m68hc11_initial_elimination_offset): Likewise.
9001
7179b6db
RH
90022004-03-06 Richard Henderson <rth@redhat.com>
9003
9004 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9005
eff3c926
KH
90062004-03-06 Kazu Hirata <kazu@cs.umass.edu>
9007
9008 * config/ns32k/ns32k-protos.h: Add a prototype for
9009 ns32k_notice_update_cc.
9010 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9011 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9012 ns32k_notice_update_cc.
9013
22ea6b4f
UW
90142004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
9015
9016 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9017 "*load_multiple_si"): Allow only if reload_completed.
9018 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9019 Likewise.
9020
af0ec113
KH
90212004-03-06 Kazu Hirata <kazu@cs.umass.edu>
9022
9023 * config/vax/vax-protos.h: Add a prototype for
9024 vax_notice_update_cc.
9025 * config/vax/vax.c (vax_notice_update_cc): New.
9026 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9027 vax_notice_update_cc.
9028
aaef9b06
DE
90292004-03-06 David Edelsohn <edelsohn@gnu.org>
9030
9031 * collect2.c (main): Only export initfunc and finifunc if
9032 LD_INIT_SWITCH not defined.
9033 (scan_prog_file): Only export constructors and destructors if
9034 LD_INIT_SWITCH not defined. Only export symbols not found in
9035 shared objects.
9036
7a9a5a44
JDA
90372004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9038
9039 * pa.md (icacheflush): Reorder operands to make match_scratch operand
9040 last.
9041 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9042 from calls to gen_icacheflush.
9043
0f15adbd
RH
90442004-03-06 Richard Henderson <rth@redhat.com>
9045
9046 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9047 (TARGET_LONG_DOUBLE_128): New.
9048 (TARGET_SWITCHES): Add long-double-{128,64}.
9049 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9050 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9051 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9052 (WIDEST_HARDWARE_FP_SIZE): New.
9053 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9054 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9055 if TARGET_VAX_FLOAT.
9056 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9057 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9058
b9c685ae
RH
90592004-03-06 Richard Henderson <rth@redhat.com>
9060
9061 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9062 botched rtx class conversion.
9063
82b4201f
KG
90642004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9065
9066 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9067 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9068
9069 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9070 macros.
9071 * fold-const.c (fold_mathfn_compare, fold): Likewise.
9072
84289c76
EB
90732004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
9074
9075 PR target/14343
9076 * config/i386/i386.md (movv2di_internal): Conditionalize on
9077 TARGET_SSE, not TARGET_SSE2.
9078
3fdf09a1
CD
90792004-03-05 Chris Demetriou <cgd@broadcom.com>
9080
9081 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9082 duplicated line.
9083
f2f4e976
KG
90842004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9085
9086 * builtins.c: Consistently use logN not log* in comments.
9087
2b3493c8
AK
90882004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
9089
9090 * rtl.h (mem_expr_equal_p): Function prototype added.
9091 * cfgcleanup.c (merge_memattrs): New function.
9092 (flow_find_cross_jump): Call merge_memattrs for matching insns.
9093 * emit-rtl.c (mem_expr_equal_p): New function.
9094
1a4a7065
ZL
90952004-03-05 Ziemowit Laski <zlaski@apple.com>
9096
9097 * objc/objc-act.c (synth_module_prologue): Const-qualify
9098 objc_selector type if using the GNU runtime; fix generated
9099 signatures for objc_msg_lookup and objc_msg_lookup_super
9100 to match what GNU ObjC headers provide; reformat and clean up.
9101 (synth_self_and_ucmd_args): Use previously constructed (and
9102 hence possibly const-qualified) objc_selector type.
9103
150c9fe8
KH
91042004-03-05 Kazu Hirata <kazu@cs.umass.edu>
9105
9106 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9107
fd917e0d
JM
91082004-03-05 Jason Merrill <jason@redhat.com>
9109
9110 * tree.h (TYPE_HASH): Use TYPE_UID.
9111 (TREE_HASH): New macro with old definition of TYPE_HASH.
9112 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9113 (build_array_type, build_function_type): Likewise.
9114 (build_method_type_directly): Likewise.
9115 (build_offset_type, build_complex_type): Likewise.
9116 (type_hash_list, attribute_hash_list): Likewise. Now static.
9117 * except.c: s/TYPE_HASH/TREE_HASH/.
9118
822e895c
BW
91192004-03-05 Bob Wilson <bob.wilson@acm.org>
9120
9121 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9122 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
9123 __va_ndx by 2 words when referencing an argument on the stack.
9124 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
9125 words when an arg on the stack is first seen.
9126
2eb83715
PB
91272004-03-05 Paul Brook <paul@codesourcery.com>
9128
9129 * arm.h (ARM_FLAG_VFP): Remove.
9130 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9131 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9132
ce407aa9
PB
91332004-03-05 Paul Brook <paul@codesourcery.com>
9134
9135 * function.c (assign_parms): Include pretend alignment offset.
9136
019dd4ec
RK
91372004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9138
9139 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9140 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9141
33e70558
ILT
91422004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
9143
9144 * configure.ac: When passing --enable-languages to subdir
9145 configure when host != build, make sure we don't pass an empty
9146 value.
9147 * configure: Regenerate.
9148
ab786753
NS
91492004-03-05 Nathan Sidwell <nathan@codesourcery.com>
9150
9151 PR 13577
9152 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9153 options.
9154
d2782048
PB
91552004-03-05 Paolo Bonzini <bonzini@gnu.org>
9156
9157 * simplify-rtx.c (simplify_relational_operation): If
9158 flag_wrapv is set, do not move terms between the two
9159 side of a relational operator.
9160
f894b69b
PB
91612004-03-05 Paolo Bonzini <bonzini@gnu.org>
9162
9163 * rtlanal.c: Include target.h and output.h
9164 (rtx_cost, address_cost, default_address_cost): Move from...
9165 * cse.c (rtx_cost, address_cost, default_address_cost):
9166 ... this file.
9167 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9168 * Makefile.in: Adjust dependencies.
9169
86caf04d
PB
91702004-03-05 Paolo Bonzini <bonzini@gnu.org>
9171
9172 * cse.c (cse_end_of_basic_block): Make static.
9173 * local-alloc.c (function_invariant_p): Move to
9174 reload1.c.
9175 * loop.c (libcall_other_reg, record_excess_regs):
9176 Make static.
9177 * reload1.c (function_invariant_p): Moved here
9178 from local-alloc.c, made static.
9179 * rtl.h (cse_end_of_basic_block, function_invariant_p,
9180 libcall_other_reg, record_excess_regs): Remove
9181 declarations.
9182
d0fe265e
KH
91832004-03-05 Kazu Hirata <kazu@cs.umass.edu>
9184
9185 * config/m32r/m32r.c (signed_comparison_operator): Add a
9186 missing parenthesis.
9187
ee0d75ef
ILT
91882004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
9189
9190 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9191 going to call mmap again. Read the file into the right place.
9192 Give a fatal error if we have to relocate.
9193
6e5ff6e7
BW
91942004-03-04 Bob Wilson <bob.wilson@acm.org>
9195
9196 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9197 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9198
fc7b80e4
HPN
91992004-03-05 Hans-Peter Nilsson <hp@axis.com>
9200
fd9361f7 9201 PR other/14354
fc7b80e4
HPN
9202 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9203 round the same. When rounding, clear bits that would cause a
9204 second rounding in pack_d.
9205 (_fpmul_parts): Ditto. Remove #if 0:d code.
9206
b9e4e5d1
ZL
92072004-03-04 Ziemowit Laski <zlaski@apple.com>
9208
9209 PR c++/14425, c++/14426
9210 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9211 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9212 Change C++ definitions to accept a 'const int' argument;
9213 the prototypes already do.
9214 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9215 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9216 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9217 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9218 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9219 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9220 end in ..._int; change them to accept an int instead of a char
9221 as the last parameter.
9222
8653fed7
PE
92232004-03-04 Phil Edwards <phil@codesourcery.com>
9224
9225 * genmultilib: Change '=' to '-' when translating option names
9226 to directory names.
9227
daae8185
RK
92282004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9229
9230 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9231 stack slot for temp used for result of BLKmode but in integral mode.
9232
f345f21a
JH
92332004-03-04 Jan Hubicka <jh@suse.cz>
9234
9235 * reload.c (find_reloads): Reorganize if seqeunce to switch.
9236
9237 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
9238 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
9239
aa42f99d
SE
92402004-03-04 Steve Ellcey <sje@cup.hp.com>
9241
9242 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9243 * testsuite/gcc.dg/20040303-1.c: New test.
9244
56bab446
SB
92452004-03-04 Steven Bosscher <stevenb@suse.de>
9246
9247 * ppro.md: Rewrite as a DFA pipeline description.
9248 * i386.md: Remove all uses of the ppro_uops attribute.
9249 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9250 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9251 ix86_sched_reorder, ix86_variable_issue,
9252 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9253 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9254 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9255 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9256 * athlon.md (athlon_ssecmp_load): Fix comment
9257
5a26b329 92582004-03-04 Stuart Hastings <stuart@apple.com>
56bab446 9259
5a26b329
SH
9260 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9261
2e5d2af9 92622004-03-04 Stuart Hastings <stuart@apple.com>
56bab446 9263
2e5d2af9
SH
9264 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9265 686, tell Darwin assembler to allow prefetch insns, non-empty def
9266 of SUBTARGET_OPTION_TRANSLATE_TABLE.
9267
58f206d6
DD
92682004-03-04 DJ Delorie <dj@redhat.com>
9269
9270 PR optimization/14282
9271 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9272 between a call and the assignment of its return value.
9273
e9eba255
KH
92742004-03-04 Kazu Hirata <kazu@cs.umass.edu>
9275
9276 * config/h8300/h8300.c: Put a comment for every function.
9277
d3c40837
KH
92782004-03-04 Kazu Hirata <kazu@cs.umass.edu>
9279
9280 * config/h8300/h8300.md: Add comments about peephole2's.
9281
eb3d7f9d
SB
92822004-03-04 Steven Bosscher <stevenb@suse.de>
9283
9284 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9285
463301c3
JH
92862004-03-04 Jan Hubicka <jh@suse.cz>
9287
9288 * cfgcleanup.c (thread_jump): Update call of cselib_init.
9289 * cselib.c (cselib_record_memory): New static variable.
9290 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9291 Give up on memories when asked for.
9292 (cselib_init): Accept new argument.
9293 * cselib.h (cselib_init): Update prototype.
9294 * gcse.c (local_cprop_pass): Update call of cselib_init.
9295 * loop.c (load_mems): Update call of cselib_init.
9296 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9297 * sched-deps.c (sched_analyze): Update call of cselib_init.
9298
3b6ce0af
DE
92992004-03-04 David Edelsohn <edelsohn@gnu.org>
9300 GP <gp@qnx.com>
9301
9302 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9303 when compiling PIC.
9304
af931390
JZ
93052004-03-04 Josef Zlomek <zlomekj@suse.cz>
9306
9307 PR/14362
9308 * var-tracking.c (track_expr_p): Do not track variables which
9309 should be ignored for debugging purposes.
9310
ddc68564
AM
93112004-03-04 Alan Modra <amodra@bigpond.net.au>
9312
9313 * real.c (encode_ibm_extended): Don't bother rounding low double.
9314 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9315 when fmt->pnan < fmt->p.
9316
ca87076c
EC
93172004-03-04 Eric Christopher <echristo@redhat.com>
9318
9319 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9320 only range of valid arg registers and fixed_regs.
9321
1a402dc1
AM
93222004-03-04 Alan Modra <amodra@bigpond.net.au>
9323
9324 PR target/14406
9325 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9326 (abstf2, abstf2_internal): New define_expand.
9327
6a2d136b
EB
93282004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
9329
9330 PR optimization/14235
9331 * expr.c (convert_move): Copy the source to a new pseudo
9332 when converting from a sub-word source to a larger-than-word
9333 register which conflicts with the source.
9334
3205a71e
ZW
93352004-03-03 Zack Weinberg <zack@codesourcery.com>
9336
9337 PR 13728
9338 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9339 parameters with the same name, unless one is a forward decl.
9340 Do not issue a redundant-redeclaration warning for forward
9341 decls of parameters.
9342
e8d8a034
DE
93432004-03-04 David Edelsohn <edelsohn@gnu.org>
9344
9345 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9346 configuration.
9347
ebe29bbf
ILT
93482004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
9349
9350 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9351
7cd60054
AM
93522004-03-04 Alan Modra <amodra@bigpond.net.au>
9353
9354 * target-def.h (TARGET_OPTF): Delete.
9355 * c-opts.c (TARGET_OPTF): Define.
9356
e654c19e
JH
93572004-03-04 Jan Hubicka <jh@suse.cz>
9358
9359 * cselib.c (cselib_finish): Fix another miss-application of my previous
9360 patch.
9361
94d1613b
MS
93622004-03-03 Mike Stump <mrs@apple.com>
9363
9364 Add framework support for darwin.
9365
9366 * c-incpath.c: Include target.h and machmode.h.
9367 (add_path): Use a consistent style for cpp_dir. Initialize
9368 p->construct to 0.
9369 (add_cpp_dir_path): New.
9370 (register_include_chains): Add use of extra_includes callback.
9371 (hook_void_int): Add.
9372 (target_c_incpath): Add.
9373 * c-incpath.h (add_cpp_dir_path): New.
9374 (target_c_incpath_s): Add.
9375 (target_c_incpath): Add.
9376 (C_INCPATH_INIT): Add.
9377 * c-opts.c (c_common_missing_argument,
9378 c_common_handle_option): Add -F argument processing.
9379 * c.opt: Add -F argument processing.
9380 * gcc.c (trad_capable_cpp): Add -F argument processing.
9381 * cppfiles.c (find_file_in_dir): Update to use construct
9382 callback.
9383 (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9384 cpp_get_prev): New.
9385 (_cpp_find_file): Use search_path_exhausted.
9386 (make_cpp_dir): Initialize construct to 0.
9387 * cpplib.h (missing_header_cb
9388 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9389 (cpp_callbacks): Add missing_header
9390 (cpp_dir): Add construct.
9391 * target-def.h: (TARGET_OPTF): New.
9392 * hooks.c (hook_void_int, hook_void_charptr): Add.
9393 * hooks.h (hook_void_int, hook_void_charptr): Add.
9394 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9395 $(MACHMODE_H) dependencies.
9396 * doc/invoke.texi (Darwin Options): Document -F.
9397 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9398 (TARGET_OPTF): Add.
9399 * fix-header.c (target_c_incpath): Add.
9400
9401 * config/darwin-c.c: Add c-incpath.h include.
9402 (using_frameworks, find_subframework_file,
9403 find_subframework_header, add_system_framework_path,
9404 frameworks_in_use, num_frameworks, max_frameworks,
9405 add_framework, find_framework, struct framework_header,
9406 framework_header_dirs, framework_construct_pathname,
9407 find_subframework_file, add_system_framework_path,
9408 add_framework_path, framework_defaults,
9409 darwin_register_frameworks, find_subframework_header): Add.
9410 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9411 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9412 (CPP_SPEC): Add __APPLE_CC__ support.
9413 * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9414
0fc0c4c9
JH
94152004-03-04 Jan Hubicka <jh@suse.cz>
9416
9417 * cselib.c (cselib_finish): Fix miss-application of my previous
9418 patch.
9419
67dfe110
KH
94202004-03-03 Kazu Hirata <kazu@cs.umass.edu>
9421
9422 * hooks.c (hook_tree_tree_identity): New.
9423 * hooks.h: Add a prototype for hook_tree_tree_identity.
9424 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9425 instead of MD_ASM_CLOBBERS.
9426 * system.h (MD_ASM_CLOBBERS): Poison.
9427 * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9428 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9429 * target.h (gcc_target): Add md_asm_clobbers.
9430 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9431 (ix86_md_asm_clobbers): New.
9432 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9433 * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9434 TARGET_MD_ASM_CLOBBERS.
9435
d79944f4 94362004-03-03 Stuart Hastings <stuart@apple.com>
67dfe110 9437
d79944f4 9438 * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3205a71e 9439
fc9232c9
EB
94402004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr>
9441
9442 * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9443
9444 * config/sparc/sparc.h (ASM_FLOAT): Delete.
9445 (ASM_DOUBLE): Likewise.
9446 (ASM_LONGDOUBLE): Likewise.
9447 * config/sparc/pbd.h (ASM_INT_OP): Delete.
9448
b7048ab7
RH
94492003-03-03 Richard Henderson <rth@redhat.com>
9450
9451 PR opt/13862
9452 * cselib.c (cselib_record_sets): Don't record multiple sets in
9453 asm insns.
9454
f9957958
MH
94552004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
9456
9457 * common.opt: Add description of the new -fgcse-after-reload flag.
9458
9459 * flags.h (flag_gcse_after_reload): Declaration of global variable.
9460
9461 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9462 reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9463 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9464 get_bb_avail_insn, hash_scan_set_after_reload,
9465 compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9466 gcse_after_reload, get_bb_avail_insn): New functions to implement
9467 gcse-after-reload.
9468 (gcse_after_reload_main): New function, the main entry point to
9469 gcse-after-reload.
9470
9471 * rtl.h (gcse_after_reload_main): Declaration of the new function.
9472
9473 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9474
9475 * toplev.c (flag_gcse_after_reload): Initialization.
9476
9477 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9478
9479 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9480 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9481 the gcse after reload optimization.
9482
9483 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9484 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9485 parameters.
9486
9487 * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9488
6f6dedf5
NP
94892004-03-03 Nicolas Pitre <nico@cam.org>
9490
9491 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9492 small negative values.
9493
6790d1ab
JH
94942004-03-03 Jan Hubicka <jh@suse.cz>
9495
9496 * cselib.c (hash_table): Remove GTY marker.
9497 (reg_values): Turn into array.
9498 (used_regs): Likewise.
9499 (n_used_regs): New static variable.
9500 (reg_values_old): Kill.
9501 (clear_table): Update uses of arrays.
9502 (cselib_lookup): Likewise.
9503 (cselib_record_set): Likewise.
9504 (cselib_init): Likewise.
9505 (cselib_finish): Likewise.
9506 (cselib_udpate_varray_sizes): Kill.
9507 * cselib.h (cselib_update_varray_sizes): Kill.
9508
33e6a97a
PB
95092004-03-03 Paul Brook <paul@codesourcery.com>
9510
9511 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9512
b9dcdee4
JH
95132004-03-03 Jan Hubicka <jh@suse.cz>
9514
9515 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9516 Rename from ...; make statistics transparent.
9517 (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9518 (loc_descriptor): New structure.
9519 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9520 add_statistics):
9521 New static function.
9522 (ggc_record_overhead, dump_statistics): New global function.
9523 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9524 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9525 from ...; accept locations
9526 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9527 ggc_realloc, ggc_alloc_typed): ... this one.
9528 from ...; accept locations
9529 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9530 ggc_alloc_stat): Rename from ... ; pass locations
9531 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9532 ... this one.
9533 (ggc_alloc_stat): Record overehead.
9534 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9535 ggc_realloc, ggc_alloc_typed): Turn to macros
9536 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9537 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9538 (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9539 * langhooks.h (lhd_make_node): Declare.
9540 (LANG_HOOKS_MAKE_TYPE): Default to new function,
9541 * langhooks.c (lhd_make_node): New.
9542 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9543 locations.
9544 (rtx_alloc, swallow_copy_rtx): ... this one.
9545 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9546 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9547 * toplpev.c (finalize): Dump stats.
9548 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9549 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
9550 Rename from ... ; pass locators.
9551 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9552 build?, build_decl): Declare.
9553 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9554 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
9555 Declare.
9556 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9557 build?, build_decl): New macros.
9558 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9559 * statistics.h: New file.
9560
6ba7b547
MR
95612004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
9562 Richard Sandiford <rsandifo@redhat.com>
9563
9564 * config/mips/mips.h (MASK_FIX_SB1): Bump.
9565 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9566 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9567 * config/mips/mips.c (mips_output_division): Fill the branch delay
9568 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
9569 TARGET_FIX_R4400.
9570 (mips_output_division): Adjust accordingly.
9571 (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9572 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9573
ec8e098d
PB
95742004-03-03 Paolo Bonzini <bonzini@gnu.org>
9575
9576 * alias.c (rtx_equal_for_memref_p): Use predicates
9577 to test rtx classes and new rtx class codes, possibly
9578 splitting conditionals that tested against '<' and 'o'.
9579 * caller-save.c (save_call_clobbered_regs): Likewise.
9580 * combine.c (contains_muldiv, find_split_point, subst,
9581 combine_simplify_rtx, simplify_if_then_else,
9582 simplify_set, simplify_logical, expand_compound_operation,
9583 make_compound_operation, if_then_else_cond, known_cond,
9584 apply_distributive_law, cached_nonzero_bits,
9585 cached_num_sign_bit_copies, simplify_shift_const,
9586 gen_binary, simplify_comparison, update_table_tick,
9587 record_value_for_reg, get_lsat_value_validate): Likewise.
9588 * cse.c (mention_regs, find_best_addr, find_comparison_args,
9589 fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9590 Likewise.
9591 * emit-rtl.c (copy_insn_1): Likewise.
9592 * expr.c (force_operand): Likewise.
9593 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9594 * flow.c (notice_stack_pointer_modification_1,
9595 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9596 and_reg_cond, elim_reg_cond): Likewise.
9597 * function.c (update_epilogue_consts): Likewise.
9598 * genattrtab.c (attr_rtx_1): Likewise.
9599 * genopinit.c (gen_insn): Likewise.
9600 * integrate.c (subst_constants): Likewise.
9601 * jump.c (reversed_comparison_code_parts,
9602 reversed_comparison_code, delete_related_insns,
9603 rtx_renumbered_equal_p): Likewise.
9604 * local-alloc.c (block_alloc): Likewise.
9605 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9606 canonicalize_condition): Likewise.
9607 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9608 Likewise.
9609 * optabs.c (add_equal_node, expand_binop): Likewise.
9610 * predict.c (estimate_probability): Likewise.
9611 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9612 * recog.c (validate_replace_rtx_1, comparison_operator,
9613 offsettable_address_p, constrain_operands): Likewise.
9614 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9615 Likewise.
9616 * regclass.c (scan_one_insn): Likewise.
9617 * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9618 * regrename.c (kill_autoinc_value): Likewise.
9619 * reload.c (find_reusable_reload, find_reloads,
9620 reg_overlap_mentioned_for_reload_p): Likewise.
9621 * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9622 * rtl.c (copy_rtx): Likewise.
9623 * rtl.h (CONSTANT_P, INSN_P): Likewise.
9624 * rtlanal.c (commutative_operand_precedence): Likewise.
9625 * sched-deps.c (conditions_mutex_p): Likewise.
9626 * sched-rgn.c (is_cfg_nonregular): Likewise.
9627 * simplify-rtx.c (simplify_gen_binary,
9628 simplify_gen_relational, simplify_replace_rtx,
9629 simplify_unary_operation, simplify_binary_operation,
9630 simplify_ternary_operation, simplify_rtx): Likewise.
9631 * unroll.c (reg_dead_after_loop): Likewise.
9632 * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9633 print_operand): Likewise.
9634 * config/arc/arc.c (proper_comparison_operator): Likewise.
9635 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9636 Likewise.
9637 * config/avr/avr.c (_reg_unused_after): Likewise.
9638 * config/frv/frv.c (frv_ifcvt_modify_tests,
9639 frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9640 * config/i386/i386.c (ix86_comparison_operator,
9641 ix86_carry_flag_operator, fcmov_comparison_operator,
9642 arith_or_logical_operator, print_operand,
9643 ix86_expand_binary_operator, ix86_binary_operator_ok):
9644 Likewise.
9645 * config/i386/i386.md: Likewise.
9646 * config/ia64/ia64.c (not_postinc_memory_operand,
9647 ia64_print_operand, update_set_flags, errata_emit_nops):
9648 Likewise.
9649 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9650 CONSTRAINT_OK_FOR_S): Likewise.
9651 * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9652 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9653 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9654 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9655 Likewise.
9656 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9657 eqne_comparison_operator, signed_comparison_operator):
9658 Likewise.
9659 * config/mips/mips.c (cmp_op, symbolic_expression_p):
9660 Likewise.
9661 * config/mmix/mmix (mmix_foldable_comparison_operator,
9662 mmix_comparison_operator): Likewise.
9663 * config/pa/pa.c (hppa_legitimize_address): Likewise.
9664 * config/rs6000/rs6000.c (stmw_operation,
9665 branch_comparison_operator, trap_comparison_operator,
9666 ccr_bit): Likewise.
9667 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9668 * config/s390/s390.c (s390_alc_comparison,
9669 s390_slb_comparison):L Likewise.
9670 * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9671 Likewise.
9672 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9673 noov_compare_op, noov_compare64_op, v9_regcmp_op,
9674 emit_hard_tfmode_operation, reg_unused_after)
9675 * doc/md.texi, doc/rtl.texi: Likewise.
9676
9677 * ra-debug.c: Add 2004 to list of copyright years.
9678 * unroll.c: Likewise.
9679
9680 * combine.c (simplify_logical): Remove dummy test,
9681 (apply_distributive_law): Fix typo in comment.
9682 GET_CODE (x) == AND so x is a commutative binary op.
9683 * jump.c (delete_related_insns): simplify loop
9684 condition, move testing of RTX codes inside the loop.
9685 (rtx_renumbered_equal_p): do not use RTX_CODE.
9686 * rtl.c (rtx_class): Declare as enum rtx_class.
9687 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9688 Move to RTX_COMM_COMPARE class.
9689 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9690 Move to RTX_CONST_OBJ class.
9691 * rtl.h (enum rtx_class): New declaration,
9692 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9693 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9694 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9695 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9696 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9697 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9698 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9699 OBJECT_P): New macros.
9700 * config/sparc/sparc.c (noov_compare_op): Remove register
9701 from parameter.
9702
a841ab8b
KH
97032004-03-03 Kazu Hirata <kazu@cs.umass.edu>
9704
9705 * target.h: Remove texi jargons in comments.
9706
cb36ddba
KH
97072004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9708
9709 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9710 threshold to 0x4f.
9711
9712 Revert:
9713 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
9714 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9715 as well.
9716 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9717 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9718
66c87bae
KH
97192004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9720
9721 * doc/md.texi (cbranchmode4): New.
9722
91e01231
EC
97232004-03-02 Eric Christopher <echristo@redhat.com>
9724
9725 * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9726 fix_trunc.
9727 * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9728 * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9729 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9730 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9731
27ab3e91
RH
97322004-03-02 Richard Henderson <rth@redhat.com>
9733
3205a71e
ZW
9734 PR middle-end/11767
9735 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9736 * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9737 before the compare, if flag_non_call_exceptions.
27ab3e91 9738
0eadce52
RH
97392004-03-02 Richard Henderson <rth@redhat.com>
9740
9741 PR middle-end/14327
9742 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9743 emitting the label, not after.
9744
de70723b
SC
97452004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9746
9747 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9748 (m68hc11_mov_addr_mode): Likewise.
9749 (m68hc11_override_options): Initialize them based on target.
9750 (register_indirect_p): Allow a MEM for indirect addressing modes and
9751 use flags to control what is allowed.
9752 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9753 supported addressing modes.
9754 (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9755 (go_if_legitimate_address_internal): Likewise.
9756 (m68hc11_indirect_p): Likewise and check the mode.
9757 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9758
d6da68b9
KH
97592004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9760
9761 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9762 (expand_builtin_setjmp_setup): Use
9763 targetm.builtin_setjmp_frame_value instead of
9764 BUILTIN_SETJMP_FRAME_VALUE.
9765 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9766 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9767 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9768 * target.h (gcc_target): Add builtin_setjmp_frame_value.
9769 * targhooks.c (default_builtin_setjmp_frame_value): New.
9770 * targhooks.h: Add a prototype for
9771 default_builtin_setjmp_frame_value.
9772 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9773 TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9774
d87e83b9
SC
97752004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9776
9777 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9778 sequences of moves.
9779 (add peepholes): New peepholes to optimize sequences adding small
9780 constants.
9781 (bset peepholes): New peepholes to transform an OR in a bset form
9782 (bclr peepholes): Likewise for bclr form.
9783 (cmp peepholes): New peepholes to avoid register copies when comparing.
9784
d5111c9c
SC
97852004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9786
9787 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9788 to separate push from moves.
9789 ("*pushdf_internal"): Likewise.
9790 ("*pushsf_internal"): Likewise.
9791 ("*pushsi_internal"): Likewise.
9792 ("movdi_internal"): Use define_insn_and_split; non push operand.
9793 ("movdf_internal"): Likewise.
9794 ("movsf_internal"): Likewise.
9795 ("movsi_internal"): Likewise.
9796 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9797 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9798 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9799
9449502d
SC
98002004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9801
9802 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9803 ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9804 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9805 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9806 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9807 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9808 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9809 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9810 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9811 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9812 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9813
b90f3299
SC
98142004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9815
9816 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9817 (SOFT_XY_REGNUM): Define.
9818 (cmp split): Use the above instead of hard coded numbers.
9819 (8-bit op split): No need to check the mode; allow Q_REG.
9820 (ashift split): Adjust the first operand if it uses the SP and we
9821 are pushing the shifted value.
9822 (plus shift split): Fix when a source is in register D+X.
9823 ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9824
77d2a36d
SC
98252004-03-02 Stephane Carrez <stcarrez@nerim.fr>
9826
9827 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9828 comparing with Z register.
9829
f2dca510
ZD
98302004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9831
9832 * cfgloop.h (struct loop_desc): Removed.
9833 (struct loop): Fields simple, desc and has_desc removed.
9834 (simple_loop_p, count_loop_iterations): Declaration removed.
9835 * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9836 (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9837 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9838 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9839 simple_loop_exit_p, variable_initial_value, variable_initial_values,
9840 simple_condition_p, simple_increment, count_strange_loop_iterations,
9841 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9842 Removed.
9843 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9844
87ca8b8c
KH
98452004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9846
9847 * genattrtab.c: Don't handle MATCH_INSN.
9848 * genrecog.c: Likewise.
9849 * gensupport.c: Likewise.
9850 * rtl.def (match_insn): Remove.
9851 * doc/md.texi (match_insn, match_insn2): Remove.
9852
bdc2893c
MM
98532004-03-02 Mark Mitchell <mark@codesourcery.com>
9854
9855 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9856 macro results in memory allocation.
9857
2de2f846
DB
98582004-03-02 David O'Brien <obrien@FreeBSD.org>
9859
9860 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9861 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9862 %(fbsd_dynamic_linker),
9863 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9864 config/i386/freebsd.h
9865 * config/arm/freebsd.h: Ditto.
9866 * config/i386/freebsd.h: Ditto.
9867 * config/i386/freebsd64.h: Ditto.
9868 * config/ia64/freebsd.h: Ditto.
9869 * config/rs6000/sysv4.h: Ditto.
9870 * config/sparc/freebsd.h: Ditto.
9871
f08dc6c1
LR
98722004-03-02 Loren James Rittle <ljrittle@acm.org>
9873
9874 * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9875
c24938d4
KH
98762004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9877
9878 * rtl.def (define_combine): Remove.
9879
ba29f5de
KH
98802004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9881
9882 * config/h8300/h8300.md: Tweak formatting.
9883
a5a0ab45
KH
98842004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9885
9886 * config/h8300/h8300.md (*cmphi_h8300): Rename to
9887 *cmphi_h8300_znvc.
9888 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9889
e451301f
MM
98902004-03-01 Mark Mitchell <mark@codesourcery.com>
9891
9892 PR bootstrap/14356
9893 * gcc.c (process_command): Remove const-qualification from argv.
9894 (main): Likewise.
9895
b698e58b
KH
98962004-03-02 Kazu Hirata <kazu@cs.umass.edu>
9897
9898 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9899 pushqi1_h8300hs_advanced. Adjust its caller.
9900 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9901 Adjust its caller.
9902
a5c40cfb 99032004-03-02 Nicolas Roche <roche@act-europe.fr>
3a41db81
NR
9904
9905 * Makefile.in (install-libgcc, install-multilib): Pass
9906 mkinstalldirs var to libgcc.mk.
9907
fdf89bf5
KH
99082004-03-01 Kazu Hirata <kazu@cs.umass.edu>
9909
9910 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9911 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9912
0e26895c
KH
99132004-03-01 Kazu Hirata <kazu@cs.umass.edu>
9914
9915 * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9916 * config/h8300/h8300.md: Split several peephole2's, each into
9917 two.
9918
738ed977
ZD
99192004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9920
9921 * dominance.c (recount_dominator): Handle postdominators.
9922
e245bd81
RS
99232004-03-01 Richard Sandiford <rsandifo@redhat.com>
9924
9925 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9926 (NUM_SYMBOL_TYPES): Likewise.
9927 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9928 (mips_unspec_address): Declare.
9929 (mips_gotoff_page, mips_gotoff_global): Delete.
9930 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
9931 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
9932 (mips_symbolic_constant_p, mips_symbolic_address_p)
9933 (mips_symbol_insns): Handle new symbol types.
9934 (general_symbolic_operand): New predicate.
9935 (mips_unspec_address): Make extern.
9936 (mips_gotoff_page, mips_gotoff_global): Delete.
9937 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
9938 Handle new symbol types.
9939 * config/mips/mips.md (*lea_high64, *lea64): New patterns.
9940 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
9941 mips_unspec_address directly.
9942 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
9943 the documentation of -mexplicit-relocs.
9944
9bf793f9
JL
99452004-03-01 Jeff Law <law@redhat.com>
9946
9947 * fold-const.c (fold): An equality comparison of a non-weak object
9948 against zero has a known result. Similarly an equality comparison
9949 of the address of two non-weak, unaliased symbols has a known result.
91e01231 9950
9bf793f9
JL
9951 * ggc-page.c (struct page_entry): New field PREV.
9952 (ggc_alloc): Update PREV field appropriately.
9953 (sweep_pages): Likewise.
9954 (ggc_free): Likewise. Use PREV field rather than loop to
9955 improve ggc_free performance.
91e01231 9956
c9e0ce37
RS
99572004-03-01 Richard Sandiford <rsandifo@redhat.com>
9958
9959 * config/mips/mips.c (mips_output_division): Use the division
9960 instruction to fill the delay slot of a zero check.
9961 (mips_idiv_insns): Adjust accordingly.
9962
65d151a7
NN
99632004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
9964
9965 * config.gcc: Create a default tmake_file for linux, and use
9966 it in all but two linux clauses. Comment those two.
9967
9a5a17f3
PB
99682004-03-01 Paolo Bonzini <bonzini@gnu.org>
9969
9970 * combine.c (try_combine): Do not refer to is_replaced.
9971 (gen_lowpart_for_combine): Perverse subregs now have a
9972 more politically correct name.
9973 * cse.c (cse_insn): Likewise.
9974 * jump.c: Fix bogus reference to delete_insn.
9975
c5b6f18e
MM
99762004-02-29 Mark Mitchell <mark@codesourcery.com>
9977
5bb2ed2c
MM
9978 PR debug/14328
9979 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
9980 constants as signed values.
9981
c5b6f18e
MM
9982 PR middle-end/13448
9983 * c-tree.h (readonly_warning): Rename to ...
9984 (readonly_error): ... this.
9985 * c-typeck.c (build_unary_op): Adjust accordingly.
9986 (readonly_warning): Rename to ...
9987 (readonly_error): ... this and issue errors, not warnings.
9988 (build_modify_expr): Call readonly_error, not readonly_warning.
9989 (c_expand_asm_operands): Likewise.
9990 * tree-inline.c (optimize_inline_calls): Do not inline functions
9991 after errors have occurred.
9992
8bb915b6
NN
99932004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
9994
9995 * configure.ac: Rearrange some threading code for clarity;
9996 add section comment.
9997 * configure: Regenerate.
9998
4ee31f1e
KH
99992004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10000
10001 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10002 typos.
10003 * doc/cppopts.texi: Fix a typo.
10004
15ec19b9
KH
100052004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10006
10007 * config/i386/i386.md: Fix formatting.
10008
cbff2c1c
NN
100092004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
10010
630327c3
NN
10011 * configure.ac: Add some comments delineating sections of code.
10012
38fe9090
NN
10013 * doc/install.texi: Note that libada uses autoconf 2.57 also.
10014
42fce956
NN
10015 * doc/install.texi: Fix idiot typo in previous commit.
10016
cbff2c1c
NN
10017 * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10018
c8574b54
KH
100192004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10020
10021 * config/h8300/h8300.md: Add comments about peephole2's.
10022
2f537af9
KH
100232004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10024
10025 * config/h8300/h8300.md: Tweak operand numbers of some
10026 peephole2's.
10027
a207f649
KH
100282004-02-29 Kazu Hirata <kazu@cs.umass.edu>
10029
10030 * config/h8300/h8300.md: Tweak comments about peephole2's.
10031
bc41842b
RS
100322004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl>
10033
10034 PR middle-end/14203
10035 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10036 instead of testing whether DECL_RTL is not NULL.
10037
832a3292
KH
100382004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10039
10040 * config/sh/sh.c: Fix formatting.
10041
508ea1c5
KH
100422004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10043
10044 * config/sh/sh.c: Convert to ISO-C.
10045
dd833c7b 100462004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
91e01231 10047
8cd6bdd1
AP
10048 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10049 my previous patch.
dd833c7b
AP
10050
10051 * config/darwin.h (machopic_finish): Output stub even if the
10052 symbol is already defined.
10053
5f190838
JDA
100542004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10055
10056 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10057
c1a41c2f
KH
100582004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10059
10060 * genattr.c (main): Don't define
10061 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10062 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10063 (DFA_PIPELINE_INTERFACE): Likewise.
10064 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10065 (DFA_PIPELINE_INTERFACE): Likewise.
10066
757f9053
RS
100672004-02-28 Richard Sandiford <rsandifo@redhat.com>
10068
10069 * config/mips/mips.md (tstsi, tstdi): Delete.
10070
23cf6987
MR
100712004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10072
91e01231 10073 * config/mips/mips.c (override_options): Remove an obsolete
23cf6987
MR
10074 duplicate definition of the "e" constraint.
10075 * config/mips/mips.h: Update a comment accordingly.
10076
bddbfe5f
MR
100772004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10078
10079 * config/mips/mips.md: Complete the unfinished R4000
10080 multiply/shift errata workaround. Improve documentation.
10081 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10082 has a hilo hazard.
10083 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10084 (muldi3, muldi3_internal): Likewise.
10085 (muldi3_internal2): Remove, replacing with...
10086 (muldi3_mult3, muldi3_r4000): ...these new patterns.
10087 (mulsidi3): Take the errata into account.
10088 (mulsidi3_32bit): Remove, replacing with...
10089 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10090 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10091 (umulsidi3): Take the errata into account.
10092 (umulsidi3_32bit): Remove, replacing with..
10093 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10094 (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10095 TARGET_FIX_R4000.
10096 (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10097 (smuldi3_highpart, umuldi3_highpart): Likewise.
10098 * doc/invoke.texi: Document the errata workaround.
10099
46490403
MR
101002004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
10101
10102 * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10103 * config/mips/mips.h (MASK_FIX_SB1): Bump.
10104 (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10105 (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10106 * config/mips/mips.c (mips_idiv_insns): New function.
10107 (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10108 (mips_output_division): Add a workaround for the R4000 divide/shift
10109 errata.
10110 * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10111 the length of an "idiv" instruction.
10112 * doc/invoke.texi: Document the new switches.
10113
1b2c3767
KH
101142004-02-28 Kazu Hirata <kazu@cs.umass.edu>
10115
10116 * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10117 TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10118
79771cc4
ZD
101192004-02-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10120
10121 PR optimization/14229
10122 * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10123
68a1a5da
EB
101242004-02-28 Eric Botcazou <ebotcazou@act-europe.fr>
10125
10126 * fold-const.c (fold): Strip NOPs that change the signedness
10127 for RSHIFT too. Expand comment.
10128
a10016d3
ILT
101292004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
10130
10131 PR optimization/7871
10132 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
68a1a5da 10133 from or to call insns.
a10016d3
ILT
10134
101352004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
10136
10137 PR optimization/7871
10138 * flow.c (propagate_one_insn): Interpret calls as setting global
10139 registers, not merely clobbering them.
10140
b30e1617 101412004-02-27 Dale Johannesen <dalej@apple.com>
a10016d3 10142
b30e1617
DJ
10143 * config/darwin.c (machopic_output_possible_stub_label): Remove.
10144 config/darwin-protos.h: Ditto.
10145 config/darwin.h: Remove call to it.
10146 * combine.c (distribute_notes): Do not place a REG_DEAD note
10147 when value is both set and used.
10148
bbc51dc2
KH
101492004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10150
10151 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10152 as well.
10153 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10154 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10155
dedbabed
AP
101562004-02-27 Andrew Pinski <apinski@apple.com>
10157
10158 * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10159 Speedup common case of the type values being in the same order.
10160
b6b979d4
SE
101612004-02-27 Steve Ellcey <sje@cup.hp.com>
10162
10163 * config/ia64/ia64.h (no-inline-float-divide): New option.
10164 * config/ia64/ia64.h (no-inline-int-divide): New option.
10165 * config/ia64/ia64.h (no-inline-sqrt): New option.
10166 (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10167 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10168 * config/ia64/ia64.c (ia64_override_options): Modify error
10169 checking for inlined division/sqrt.
10170
88462c42
KH
101712004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10172
10173 * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10174 ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10175 value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10176 config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10177 copyright.
10178
53c428d0
PB
101792004-02-27 Paul Brook <paul@codesourcery.com>
10180
10181 * function.c (assign_parms): Don't count pretend args for alignment.
10182
f6db1481
RH
101832004-02-27 Richard Henderson <rth@redhat.com>
10184
10185 * passes.c: New file.
10186 * Makefile.in (OBJS-common): Add it.
10187 * diagnostic.c (rtl_dump_and_exit): Move decl ...
10188 * flags.h (rtl_dump_and_exit): ... here.
91e01231 10189 * output.h (size_directive_output, last_assemble_variable_decl):
f6db1481
RH
10190 Move from toplev.c.
10191 * rtl.h (reg_alloc): Move from toplev.c.
10192 * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10193 struct dump_file_info, enum dump_file_index, dump_file_tbl,
10194 open_dump_file, close_dump_file, rest_of_decl_compilation,
10195 rest_of_type_compilation, rest_of_handle_final,
91e01231 10196 rest_of_handle_delay_slots, rest_of_handle_stack_regs,
f6db1481
RH
10197 rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10198 rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10199 rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10200 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
91e01231 10201 rest_of_handle_tracer, rest_of_handle_if_conversion,
f6db1481
RH
10202 rest_of_handle_if_after_combine, rest_of_handle_web,
10203 rest_of_handle_branch_prob,
10204 rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
91e01231 10205 rest_of_handle_addressof, rest_of_handle_sibling_calls,
f6db1481
RH
10206 rest_of_handle_jump_bypass, rest_of_handle_inlining,
10207 rest_of_handle_null_pointer, rest_of_handle_combine,
10208 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
91e01231 10209 rest_of_handle_gcse, rest_of_handle_loop_optimize,
f6db1481
RH
10210 rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10211 (decode_d_option): Use enable_rtl_dump_file.
10212 (compile_file, finalize, do_compile): Move profile+combine+graph
10213 cleanup to finish_optimization_passes.
10214 * toplev.h (init_optimization_passes, finish_optimization_passes,
10215 enable_rtl_dump_file): Declare.
10216
288dc1ea 102172004-02-27 Eric Botcazou <ebotcazou@act-europe.fr>
3205a71e 10218 Roger Sayle <roger@eyesopen.com>
288dc1ea
EB
10219
10220 * fold-const.c (fold): Revert 2004-02-25 change. Use the original
10221 operands to build a tree with swapped operands.
10222 * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10223 'unsignedp' predicate to specify the signedness.
10224
a1105617
KH
102252004-02-27 Kazu Hirata <kazu@cs.umass.edu>
10226
10227 * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10228 expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10229 params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10230 comment typos and formatting. Follow spelling conventions.
10231
d095928f
AH
102322004-02-26 Aldy Hernandez <aldyh@redhat.com>
10233
10234 * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10235 fix_truncsfsi2.
10236
10237 * config/rs6000/spe.md: Delete spe_efsctuiz.
10238 Add spe_fixuns_truncsfsi2.
10239 Add spe_fix_truncsfsi2.
91e01231 10240
21526606
EC
102412004-02-26 Eric Christopher <echristo@redhat.com>
10242
10243 * c-lex.c (c_lex_string_translate): New variable.
10244 (lex_string): Use to determine string translation.
10245 * c-pragma.h: Prototype.
10246 * c-parse.in (start_string_translation): New. Set above.
10247 (stop_string_translation): Ditto.
10248 (attribute, attribute_list, asm_def, asm_stmt,
10249 asm_operand): Use above functions.
10250 * cp/parser.c (cp_parser_declaration): Translate strings
10251 unless token is RID_EXTERN. Set c_lex_string_translate
10252 for recursive use.
10253 (cp_parser_asm_definition): Only translate argument strings
10254 to asms.
10255 (cp_parser_asm_operand_list): Ditto.
10256 (cp_parser_attribute_list): Do not translate attribute strings.
10257
e8eebd31
KH
102582004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10259
10260 * stmt.c (expand_start_case_dummy): Remove.
10261 * tree.h: Remove the corresponding prototype.
10262
8f2de5f1
KH
102632004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10264
10265 * builtins.c (apply_args_register_offset): Remove.
10266 * tree.h: Remove the corresponding prototype.
10267
c7924937
KH
102682004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10269
10270 * stor-layout.c (is_pending_size): Remove.
10271 * tree.h: Remove the corresponding prototype.
10272
ca0afc29
KH
102732004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10274
10275 * recog.c (validate_replace_src): Remove.
10276 * recog.h: Remove the corresponding prototype.
10277
6c5caf00
KH
102782004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10279
10280 * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10281 MAYBE_REG_PARM_STACK_SPACE.
10282 * function.c: Likewise.
10283 * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10284 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10285 * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10286 (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10287
17fd9cb9
KH
102882004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10289
10290 * c-decl.c (c_expand_deferred_function): Remove.
10291 * c-tree.h: Remove the corresponding prototype.
10292
ec5de8d8
KH
102932004-02-26 Kazu Hirata <kazu@cs.umass.edu>
10294
10295 * postreload.c (reload_cse_move2add): Generate just a PLUS
10296 instead of an entire SET.
10297
5bbeea44
JH
102982004-02-26 Jan Hubicka <jh@suse.cz>
10299
10300 * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10301 /pentium4m.
10302 * i386.c (override_options): Add support for new CPUs.
10303 * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10304 (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10305 constants.
10306 * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10307
48c0150c
BW
103082004-02-26 Bob Wilson <bob.wilson@acm.org>
10309
10310 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10311
b178305d
EB
103122004-02-26 Eric Botcazou <ebotcazou@act-europe.fr>
10313
10314 * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10315 (sparc_emit_fixunsdi): New prototype.
10316 * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10317 (sparc_emit_fixunsdi): New function.
10318 * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10319 operand 1. Pass SFmode to sparc_emit_floatunsdi.
10320 (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode
10321 to sparc_emit_floatunsdi.
10322 (fixuns_truncsfdi2): New expander.
10323 (fixuns_truncdfdi2): Likewise.
10324
fb643f64
AM
103252004-02-26 Alan Modra <amodra@bigpond.net.au>
10326
10327 * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10328 unless HAVE_cc0.
10329
4a4f95d9
RH
103302004-02-25 Richard Henderson <rth@redhat.com>
10331
10332 * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10333 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10334 use (op0-op1) == 0 if op0 is a pointer.
10335 * config/alpha/alpha.md (cmpdi): Use some_operand.
10336 (three comparison combine splits): Remove.
10337
f6a76b9f
RH
103382004-02-25 Richard Henderson <rth@redhat.com>
10339
0d593f31 10340 PR c/12794
f6a76b9f
RH
10341 * c-common.c (handle_alias_attribute): Reject the attribute if
10342 current_function_decl is set.
10343
30500d84
KC
103442004-02-25 Kelley Cook <kcook@gcc.gnu.org>
10345
10346 * config.gcc: Add comment describing extra_gcc_objs.
10347 i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10348 * configure.ac (extra_gcc_objs): New substitution variable.
10349 (host_extra_gcc_objs): Don't substitute.
10350 * configure: Regenerate.
10351 * Makefile.in: Use extra_gcc_objs.
10352
ed80fa2e
KC
103532004-02-25 Kelley Cook <kcook@gcc.gnu.org>
10354
10355 * doc/contrib.texi: Add an entry for myself.
10356
12c3874e
JH
103572004-02-25 Jan Hubicka <jh@suse.cz>
10358
10359 * basic-block.h (make_eh_edge, break_superblocks): Declare.
10360 * cfgbuild.c (make_eh_edge): Make global.
10361 * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10362 * except.c (build_post_landing_pads, connect_post_landing_pads,
10363 dw2_build_landing_pads, sjlj_emit_function_enter,
21526606 10364 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
12c3874e
JH
10365 sjlj_build_landing_pads): Update CFG.
10366 (emit_to_new_bb_before): New function.
10367 (finish_eh_generation): Do not rebuild the CFG.
10368
7b79fe71
JDA
103692004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10370
10371 * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10372 target_cpu_default defines.
10373 * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10374 * pa.h (TARGET_DEFAULT): Likewise.
10375
81fbecac
EB
103762004-02-25 Eric Botcazou <ebotcazou@act-europe.fr>
10377
10378 * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10379 comparisons with regard to signedness.
10380
6f5b4f3e
RE
103812004-02-25 Richard Earnshaw <rearnsha@arm.com>
10382
10383 * arm.c (thumb_legitimize_address): New function.
10384 * arm-protos.h: Prototype it.
10385 * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10386 (LEGITIMIZE_ADDRESS): Use it.
10387
4ab51fb5
R
103882004-02-25 J"orn Rennecke <joern.rennecke@superh.com>
10389
10390 * reload1.c (reload): Only spill eliminable register with multiple
10391 adjacent elimination alternatives if all alternatives fail.
10392
e1471c91
RE
103932004-02-25 Richard Earnshaw <rearnsha@arm.com>
10394
10395 * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10396 is -4095...+4095 inclusive.
10397
94b18ec1
EB
103982004-02-25 Eric Botcazou <ebotcazou@libertysurf.fr>
10399
10400 * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10401 the bootstrap failure with Sun CC 5.4 and 5.5.
10402
2e802a6f
KH
104032004-02-24 Kazu Hirata <kazu@cs.umass.edu>
10404
10405 * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10406 which modifies NEWREG.
10407 (cse_condition_code_reg): Update the mode of CC_REG in
10408 CC_SRC_INSN on our own.
10409
89ab2b79
MM
104102004-02-24 Michael Matz <matz@suse.de>
10411
10412 * config/i386/i386.c (ix86_comp_type_attributes): Check for
10413 regparm attributes.
10414
c263766c
RH
104152004-02-24 Richard Henderson <rth@redhat.com>
10416
10417 * toplev.c (dump_file_tbl): Rename from dump_file.
10418 * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
c53bdcf5 10419 cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
c263766c
RH
10420 config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10421 config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10422 loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10423 ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10424 toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10425 s/rtl_dump_file/dump_file/g.
10426
dba2921d
AH
104272004-02-24 Aldy Hernandez <aldyh@redhat.com>
10428
3205a71e
ZW
10429 * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10430 (spe_fixuns_truncsfsi2): Delete.
dba2921d 10431
3205a71e
ZW
10432 * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10433 (fixuns_truncsfsi2): Delete.
dba2921d 10434
173cd571
JZ
104352004-02-24 Josef Zlomek <zlomekj@suse.cz>
10436
10437 PR/14240
10438 * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10439
8db4d7a1
GK
104402004-02-24 Geoffrey Keating <geoffk@apple.com>
10441
10442 * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10443
896c3aa3
JM
104442004-02-24 Jason Merrill <jason@redhat.com>
10445
10446 * tree.c (check_qualified_type): New fn.
10447 (get_qualified_type): Use it. If type already has the desired
10448 quals, just return it.
10449 * tree.h: Declare it.
896c3aa3 10450
58565a33
SKG
104512003-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com>
10452
10453 * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10454 TARGET_SCHED_FINISH_GLOBAL): New macros.
10455
10456 * target.h (md_init_global, md_finish_global): Function
10457 declarations corresponding to new target macros.
10458
10459 * haifa-sched.c (sched_init, sched_finish): Allow target to
10460 call the new schedular hooks.
10461
10462 * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10463 call to update_life_info.
10464
10465 * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10466 flag_schedule_insns for SH4.
10467
10468 * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10469 find_set_regmode_weight, find_insn_regmode_weight,
10470 find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10471 sh_variable_issue, high_pressure, ready_reorder,
10472 rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10473 functions used to throttle the insn movement in first
10474 scheduling pass for SH.
10475
10476 * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10477 TARGET_SCHED_FINISH_GLOBAL.
10478
34208acf
AO
104792004-02-24 Alexandre Oliva <aoliva@redhat.com>
10480
10481 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10482 2004-02-05 Alexandre Oliva <aoliva@redhat.com>
10483 * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10484 symbols in sections named by the user.
10485 2004-01-30 Alexandre Oliva <aoliva@redhat.com>
10486 * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10487 2004-01-27 Alexandre Oliva <aoliva@redhat.com>
10488 * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10489 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10490 the above.
10491 2004-01-20 Alexandre Oliva <aoliva@redhat.com>
10492 * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10493 one more pseudo to further improve code generation.
10494 2004-01-19 Alexandre Oliva <aoliva@redhat.com>
10495 * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10496 inside UNSPEC.
10497 2004-01-16 Alexandre Oliva <aoliva@redhat.com>
10498 * config/frv/frv.c (frv_legitimate_address_p): Added
10499 allow_double_reg_p argument. Adjust all callers. Use it to
10500 decide whether to enable double-register indirect addressing.
10501 (frv_funcdesc_alias_set): Remove.
10502 (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10503 register. Emit movdi_ldd.
10504 (ldd_address_operand): New.
10505 * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10506 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10507 (PREDICATE_CODES): Add ldd_address_operand.
10508 * config/frv/frv.md (movdi_ldd): New.
10509 (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10510 intermediate computations if possible.
10511 (symGOTOFF2reg_i): Fix harmless typo.
10512 2003-12-18 Alexandre Oliva <aoliva@redhat.com>
10513 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10514 relocated p_vaddr to vaddr type.
10515 * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10516 * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10517 (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10518 MEM, or use a funcdesc alias set. Use regular move instead of
10519 ldd.
10520 (dbl_memory_one_insn_operand): Recognize function descriptors by
10521 type or by alias set, and don't split them.
10522 * config/frv/frv.md (call, call_value): Never use call_internal
10523 for fdpic.
10524 (call_internal, call_value_internal): Never match for FDPIC.
10525 (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10526 call_value_fdpicsi): Require FDPIC.
10527 (ldd): Removed.
10528 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
10529 * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10530 * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10531 (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10532 FDPIC. Compute data base address.
10533 * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10534 before the other self-specs are processed.
10535 * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10536 Build with -fPIC.
10537 2003-12-15 Alexandre Oliva <aoliva@redhat.com>
10538 * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10539 inhibit_libc is defined.
10540 2003-12-12 Alexandre Oliva <aoliva@redhat.com>
10541 * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10542 __FRV_FDPIC__.
10543 (__RELOC_POINTER): Define.
10544 (_Unwind_IteratePhdrCallback): Use it.
10545 * config/frv/frv.h (Twrite): Define.
10546 (TRANSFER_FROM_TRAMPOLINE): Use it.
10547 * config/frv/linux.h (INVOKE__main): Undefine.
10548 (Twrite): Override.
10549 2003-12-05 Richard Sandiford <rsandifo@redhat.com>
10550 * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10551 (-mlibrary-pic): Emphasize that this option generates EABI code.
10552 (-mcpu): Add fr550.
10553 (-mpack): Remove.
10554 2003-11-30 Alexandre Oliva <aoliva@redhat.com>
10555 * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10556 and CONSTs in FDPIC mode.
10557 * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10558 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
10559 * config/frv/frv.c (move_source_operand): Don't accept symbolic
10560 constants.
10561 * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10562 rather than 'i' constraint for the 2-instruction alternative.
10563 (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10564 2003-11-29 Richard Sandiford <rsandifo@redhat.com>
10565 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10566 EXTRA_CONSTRAINT_FOR_Y.
10567 (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10568 * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10569 (addsi3): Change 'Y' constraint to 'Q'.
10570 2003-11-27 Richard Sandiford <rsandifo@redhat.com>
10571 * reload.c (CONST_POOL_OK_P): New macro.
10572 (find_reloads): Use it to decide whether a constant can be forced
10573 into memory.
10574 * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10575 constant satisfies got12_operand.
10576 (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10577 (frv_legitimate_address_p): Check for valid unspec offsets using
10578 got12_operand rather than frv_legitimate_fdpic_operand_p.
10579 (frv_legitimate_fdpic_operand_p): Delete.
10580 (frv_emit_movsi): Abort if we try to use the FDPIC register during
10581 or after reload.
10582 (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10583 TARGET_FDPIC.
10584 * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10585 2003-11-19 Richard Sandiford <rsandifo@redhat.com>
10586 * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10587 (frv_fdpic_fptr_operand): Don't declare here.
10588 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10589 rather than fdpic_got12_operand.
10590 (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for
10591 got12_operand and const_unspec_operand.
10592 * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10593 (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10594 (symbolic_operand): Remove.
10595 (const_unspec_operand): New predicate.
10596 * config/frv/frv.md (*movsi_got): Use got12_operand.
10597 (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10598 2003-11-18 Richard Sandiford <rsandifo@redhat.com>
10599 * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10600 * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10601 * config/frv/frv.c (frv_unspec): New structure.
10602 (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10603 (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10604 validate CONST indices. Use frv_output_const_unspec to print them.
10605 (frv_print_operand): Update call to unspec_got_name. Use
10606 frv_output_const_unspec to print constant unspecs.
10607 (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10608 Reject UNSPECs otherwise.
10609 (unspec_got_name): Take the relocation number as argument, not an
10610 rtx containing it.
10611 (frv_output_addr_const_extra): Remove, replacing with...
10612 (frv_output_const_unspec): ...this new function.
10613 (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10614 (gpr_or_int12_operand): Use fdpic_got12_operand.
10615 (dbl_memory_one_insn_operand): Likewise.
10616 (fdpic_got12_operand): Use frv_const_unspec_p.
10617 (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10618 are already legitimate. Use frv_small_data_reloc_p when deciding
10619 whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10620 2003-11-18 Alexandre Oliva <aoliva@redhat.com>
10621 * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10622 * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file.
10623 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10624 label, for real this time.
10625 * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10626 representation of visibility.
10627 (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10628 such.
10629 2003-11-17 Richard Sandiford <rsandifo@redhat.com>
10630 * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10631 (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10632 * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10633 it was explicitly disabled.
10634 (frv_stack_info): There is no need to save the link register in every
10635 frame unless TARGET_LINKED_FP is true.
10636 (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10637 frame pointer if the stack pointer might change value.
10638 (frv_return_addr_rtx): Check and process "count" argument.
10639 2003-11-14 Richard Sandiford <rsandifo@redhat.com>
10640 * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10641 (frv_find_base_term): Declare.
10642 * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10643 (FIND_BASE_TERM): Define.
10644 (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10645 small_data_register_operand, small_data_symbolic_operand. Add
10646 symbolic_operand.
10647 * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10648 (frv_print_operand_memory_reference, output_move_single): Remove
10649 special handling for unlegitimized sdata addresses.
10650 (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10651 and symbolic addresses.
10652 (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10653 (frv_find_base_term): New function.
10654 (int_2word_operand): Check specifically for symbolic address constants.
10655 (pic_register_operand, pic_symbolic_operand): Delete.
10656 (small_data_register_operand, small_data_symbolic_operand): Delete.
10657 (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10658 Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10659 (move_source_operand): Only accept CONSTs if they're a two-insn
10660 symbolic constant.
10661 (fdpic_got12_operand): Don't require TARGET_FDPIC.
10662 (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10663 using gen_symGOTOFF2reg*.
10664 (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10665 (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs
10666 themselves a cost of 3 insns.
10667 * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10668 Change predicate to symbolic_operand.
10669 (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10670 (*movsi_lda_sdata): Delete.
10671 (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10672 2003-11-05 Alexandre Oliva <aoliva@redhat.com>
10673 * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10674 frv-*-*linux*.
10675 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10676 label.
10677 * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10678 -multilib-library-pic.
10679 (LINK_SPEC): Add -z text for -mfdpic.
10680 * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10681 * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10682 * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10683 Override.
10684 (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10685 FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10686 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10687 crtstuff-generated files.
10688 2003-10-31 Alexandre Oliva <aoliva@redhat.com>
10689 * config.gcc: Add frv-*-*linux*.
10690 * config/frv/linux.h, config/frv/t-linux: New.
10691 2003-10-06 Alexandre Oliva <aoliva@redhat.com>
10692 * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10693 when -mfdpic even if a linker script is explicitly listed.
10694 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
10695 * config/frv/frv.c (frv_override_options): Clear asm_out
10696 unaligned_op for SImode on FDPIC.
10697 (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10698 argument passed to decl_readonly_section.
10699 (frv_assemble_integer): Revert 2003-09-30's change, but make the
10700 whole block run with FDPIC even with -fno-PIC.
10701 2003-10-02 Alexandre Oliva <aoliva@redhat.com>
10702 * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10703 symbol or label plus offset to memory.
10704 (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit
10705 GOTOFF and GPREL for LABEL_REF.
10706 * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10707 -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10708 (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10709 (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10710 * doc/invoke.texi: Document them.
10711 2003-09-30 Alexandre Oliva <aoliva@redhat.com>
10712 * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10713 (frv_splittable_got_operand): Removed.
10714 * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10715 LO_SUM. Add comments.
10716 (frv_override_options): Moved enabling of FDPIC to
10717 DRIVER_SELF_SPECS. Don't enable MASK_DWORD.
10718 (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10719 (frv_legitimize_fdpic_address): Don't duplicate logic in
10720 frv_emit_movsi.
10721 (frv_gen_GPsym2reg): New.
10722 (unspec_got_name): Added gprel.
10723 (frv_expand_fdpic_call): Add support for inlining PLTs.
10724 (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10725 (gpr_or_int12_operand): Added GPREL12.
10726 (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10727 (small_data_symbolic_operand): Fail if FDPIC.
10728 (fdpic_splittable_got_operand): Removed.
10729 (fdpic_got12_operand): Added GPREL12.
10730 (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL
10731 when appropriate. Fix sdata GOTOFF.
10732 (frv_legitimate_constant_p): Require legitimate PIC operand for
10733 FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10734 (frv_assemble_integer): Move FDPIC funcdesc handling out of
10735 flag_pic case.
10736 (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10737 frv_assemble_integer fails.
10738 * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10739 (SUBTARGET_DRIVER_SELF_SPECS): New.
10740 (ASM_SPEC): Don't pass -mno-fdpic.
10741 (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10742 (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10743 (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10744 -multilib-library-pic.
10745 (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10746 condexec_si_media_operator, condexec_sf_add_operator and
10747 condexec_sf_conv_operator. Removed condexec_sf_binary_operator
10748 and condexec_sf_unary_operator.
10749 * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10750 New.
10751 (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10752 movsi_internal. Give them internal names. movsi_got has type
10753 int.
10754 (fdpic got splitters): Remove.
10755 (symGPREL2reg, symGPREL2reg_hilo): New.
10756 * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10757 to -mlibrary-pic. Map -multilib-library-pic to it.
10758 * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10759 Document.
10760 2003-09-28 Alexandre Oliva <aoliva@redhat.com>
10761 * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10762 (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10763 (frv_cannot_force_const_mem): New function.
10764 (const_small_data_p, plus_small_data_p): Update comments on sdata
10765 on FDPIC.
10766 (frv_override_options): Set flag_pie for FDPIC too.
10767 (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10768 call-saved registers on FDPIC.
10769 (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10770 don't force LR to be preserved.
10771 (frv_expand_prologue): Likewise.
10772 (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10773 (frv_frame_pointer_required): Don't force it just because the
10774 FDPIC register is used.
10775 (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10776 operand only if !condexec_p.
10777 (frv_legitimize_address): Return the FDPIC-legitimized address.
10778 Don't match small data here on FDPIC.
10779 (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10780 symbols. Use TRUE/FALSE instead of 1/0.
10781 (frv_local_funcdesc_p): New.
10782 (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10783 immediates when possible.
10784 (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10785 (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10786 an UNSPEC_GOT.
10787 (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and
10788 12-bit immediates when possible.
10789 (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10790 are not legitimate pic operands.
10791 (frv_in_small_data_p): Re-enable for FDPIC.
10792 * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10793 (FRV_GLOBAL_P): Removed.
10794 * config/frv/frv.md: Add modes to CONSTs.
10795 (movsi_got): New.
10796 (movsi_lo_sum_got): Use separate matches instead of match_dup.
10797 (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10798 (fdpic splittable operations): Match on flag_pic != 1.
10799 2003-09-22 Alexandre Oliva <aoliva@redhat.com>
10800 * config/frv/frv.c (frv_asm_out_constructor,
10801 frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10802 bytes, not bits.
10803 2003-09-19 Alexandre Oliva <aoliva@redhat.com>
10804 * config/frv/frv.c (frv_assemble_integer): Reject complex
10805 expressions referencing function SYMBOL_REFs.
10806 * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10807 (move_source_operand): Reject CONSTs that reference function
10808 SYMBOL_REFs on FDPIC.
10809 (frv_emit_movsi): If we get such a CONST, break it up.
10810 * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10811 (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10812 * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10813 MEM.
10814 (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10815 (frv_trampoline_size): Increase for FDPIC.
10816 * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10817 (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10818 * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10819 Disable use of GOTOFF for now.
10820 (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10821 Disable use of small data in FDPIC for now.
10822 (frv_asm_output_mi_thunk): Implement for FDPIC.
10823 * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10824 * config/frv/frv.c (frv_asm_out_constructor): Use
10825 frv_assemble_integer for FDPIC pointers.
10826 (frv_asm_out_destructor): Likewise.
10827 * config/frv/frv.md (ldd): Fix order of operands. Use
10828 address_operand for input.
10829 2003-09-18 DJ Delorie <dj@redhat.com>
10830 * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10831 (unspec_got_name): Correct typo.
10832 (frv_emit_movsi): Pre-expand splittable GOTs.
10833 (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10834 * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10835 (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10836 * config/frv/t-frv: Add -mfdpic multilibs.
10837 * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10838 (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10839 * config/frv/frv.c (frv_override_options): -mfdpic assumes
10840 flag_pic, default to 32-bit pics, require DWORD ops.
10841 (frv_override_options): Add W and Z constraints.
10842 (frv_expand_prologue): No pic prologue for -mfdpic.
10843 (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10844 (frv_print_operand_memory_reference): Handle GOT constants.
10845 (frv_legitimate_address_p): Allow GOT constants.
10846 (frv_legitimize_address): Handle GOT addresses too.
10847 (frv_legitimate_fdpic_operand_p): New.
10848 (frv_legitimize_fdpic_address): New.
10849 (unspec_got_name): New.
10850 (frv_output_addr_const_extra): New.
10851 (frv_expand_fdpic_call): New.
10852 (frv_fdpic_fptr_operand): New.
10853 (gpr_or_int12_operand): Handle GOT operands.
10854 (int_2word_operand): Handle GOT operands.
10855 (fdpic_operand): New.
10856 (fdpic_splittable_got_operand): New.
10857 (fdpic_got12_operand): New.
10858 (frv_emit_movsi): Handle GOT operands.
10859 (frv_assemble_integer): -mfdpic doesn't use rofixups.
10860 (frv_print_operand): Support 'g' code for GOT operands.
10861 * config/frv/frv-protos.h: Add prototypes as needed.
10862 * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10863 R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10864 R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10865 R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10866 R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10867 R_FRV_GOTOFFLO): New.
10868 (movsi_high_got, movsi_lo_sum_got): New.
10869 (*movsi_pic): Don't use this splitter for -mfdpic.
10870 (addsi3): Allow GOT references also.
10871 (call, call_value): Handle -mfdpic separately.
10872 (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10873 call_value_fdpicsi): New.
10874 (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10875 symGOTOFF2reg_i): New.
10876 * config/frv/frv.h (MASK_FDPIC): New.
10877 (TARGET_FDPIC): New.
10878 (TARGET_SWITCHES): Add -mfdpic.
10879 (FDPIC_FPTR_REGNO): New.
10880 (FDPIC_REGNO): New.
10881 (OUR_FDPIC_REG): New.
10882 (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10883 FDPIC_CALL_REGS.
10884 (REG_CLASS_NAMES): Likewise.
10885 (REG_CLASS_CONTENTS): Likewise.
10886 (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10887 (EXTRA_CONSTRAINT): Add it here.
10888 (FRV_GLOBAL_P): New.
10889 (OUTPUT_ADDR_CONST_EXTRA): New.
10890
7e26b0e3
KH
108912004-02-24 Kazu Hirata <kazu@cs.umass.edu>
10892
10893 * config/sparc/sparc.h: Remove commented-out definitions of
10894 TARGET_EDOM and GEN_ERRNO_RTX.
10895
b57f2e10
KH
108962004-02-24 Kazu Hirata <kazu@cs.umass.edu>
10897
10898 * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10899 df_analyse with df_analyze.
10900
cb7c3c3f
AM
109012004-02-24 Alan Modra <amodra@bigpond.net.au>
10902
10903 * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10904 beginning of block.
10905
3638733b
JW
109062004-02-23 James E Wilson <wilson@specifixinc.com>
10907
238470bd 10908 * calls.c (precompute_arguments): Update comment.
3638733b 10909
fa0ac78a
KH
109102004-02-23 Kazu Hirata <kazu@cs.umass.edu>
10911
10912 * et-forest.c: Replace et_occurences with et_occurrences.
10913
6d4e0ecc
KH
109142004-02-23 Kazu Hirata <kazu@cs.umass.edu>
10915
10916 * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10917 with iv_analyze.
10918
9e200aaf
KC
109192004-02-23 Kelley Cook <kcook@gcc.gnu.org>
10920
10921 * config/i386/i386.c: Rename pni to sse3.
10922 * config/i386/i386.h: Likewise.
3205a71e 10923 * config/i386/i386.md: Likewise.
9e200aaf
KC
10924 * config/i386/pmmintrin.h: Likewise.
10925 * doc/extend.texi: Likewise.
10926 * doc/invoke.texi: Likewise.
10927
3521b33c
ZW
109282004-02-23 Zack Weinberg <zack@codesourcery.com>
10929 Kazu Hirata <kazu@cs.umass.edu>
10930
10931 Remove -fwritable-strings.
10932 * c-common.c (fix_string_type): Don't check
10933 flag_writable_strings.
10934 (fix_string_type): Likewise.
10935 * c-opts.c (set_std_c89): Don't initialize
10936 flag_writable_strings.
10937 (set_std_c99): Likewise.
10938 * common.opt (fwritable-strings): Remove.
10939 * flags.h: Remove the external declaration of
10940 flag_writable_strings.
10941 * opts.c (common_handle_option) <OPT_fwritable_strings>:
10942 Remove.
10943 * toplev.c (flag_writable_strings): Remove.
10944 (f_options): Remove an entry for writable-strings.
10945 * varasm.c (const_hash_1) <STRING_CST>: Don't check
10946 flag_writable_strings.
10947 (compare_constant) <STRING_CST>: Likewise.
10948 (build_constant_desc): Likewise.
10949 * config/darwin.c (machopic_select_section): Likewise.
10950 * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
10951 * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
10952 * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
10953 * config/mips/mips.c (mips_select_section): Likewise.
10954 (mips_encode_section_info): Likewise.
10955 * config/pa/pa.c (pa_select_section): Likewise.
10956 * config/pa/pa.h (TEXT_SPACE_P): Likewise.
10957 * config/v850/v850.c (v850_select_section): Likewise.
10958 * doc/invoke.texi (-fwritable-strings): Remove.
10959 (-fno-const-strings): Don't mention -fwritable-strings.
10960 * doc/trouble.texi: Don't mention -fwritable-strings.
10961
eb6bddf6
NN
109622003-02-23 Nathanael Nerode <neroden@gcc.gnu.org>
10963
10964 * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
10965
e0740893
DJ
109662004-02-23 Dale Johannesen <dalej@apple.com>
10967
10968 * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
10969 (movdf_hardfloat64): Ditto.
10970 (movdf_softfloat64): Ditto.
10971
e91fa876 109722004-02-23 Fariborz Jahanian <fjahanian@apple.com>
3205a71e 10973 * config/rs6000/rs6000.c (function_arg): call to
e91fa876 10974 rs6000_mixed_function_arg for DFmode moved to allow
21526606 10975 normal DFmode incoming register assignment.
e91fa876 10976
ae6669e7
DJ
109772004-02-23 Dale Johannesen <dalej@apple.com>
10978
10979 * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
10980 (movdf_hardfloat64): Ditto.
10981
2a9f2ad3
KH
109822004-02-23 Kazu Hirata <kazu@cs.umass.edu>
10983
10984 * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
10985 config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
10986 copyright.
10987
aa5fa0fc
AP
109882004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
10989
a2f1f4c3
AP
10990 PR c/14156
10991 * c-typeck.c (c_expand_return): Change check for VAR_DECL
10992 to use DECL_P instead.
10993
aa5fa0fc
AP
10994 * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
10995 * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
10996
221ee7c9
KH
109972004-02-23 Kazu Hirata <kazu@cs.umass.edu>
10998
10999 * Makefile.in (opts.o): Depend on target.h.
11000 * opts.c (decode_options): Use targetm.default_short_enums
11001 instead of DEFAULT_SHORT_ENUMS.
11002 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11003 * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11004 (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11005 * target.h (gcc_target): Add default_short_enums.
11006 * config/cris/cris.h: Remove a comment about
11007 DEFAULT_SHORT_ENUMS.
11008 * config/ip2k/ip2k.h: Likewise.
11009 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11010 TARGET_DEFAULT_SHORT_ENUMS. Update the description.
11011
bba745c1 110122004-02-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3205a71e 11013 Falk Hueffner <falk@debian.org>
bba745c1
EB
11014
11015 PR c/14188
11016 * builtins.c (expand_builtin_va_arg): Emit an informative message
11017 if a trap is generated.
11018 * c-typeck.c (build_function_call): Likewise.
11019
c2cd64b5
JJ
110202004-02-22 Jakub Jelinek <jakub@redhat.com>
11021
11022 * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11023 fopen.
11024 * libgcov.c: Include sys/stat.h.
11025 * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11026 * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11027 * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11028 * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11029
fcfcb20e
KH
110302004-02-22 Kazu Hirata <kazu@cs.umass.edu>
11031
11032 * reorg.c: Remove comments about dead ports.
11033
56d03a40
CF
110342004-02-22 Christopher Faylor <cgf@redhat.com>
11035
11036 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11037 extra host object file when targetting cygwin rather than generic
11038 object files.
11039
5e20bdd7
JZ
110402004-02-22 Josef Zlomek <zlomekj@suse.cz>
11041
11042 Merge from tree-ssa:
11043 2003-11-20 Richard Henderson <rth@redhat.com>
11044
11045 * tree-inline.c (insert_decl_map): New.
11046 (remap_decl, remap_type, remap_block, copy_body_r,
11047 initialize_inlined_parameters, declare_return_variable,
11048 remap_save_expr): Use it.
11049
11050 * function.c (copy_body_r): Add mapping from id->ret_label to
11051 id->ret_label. Revert test for ret_label.
11052
4112be4a
JJ
110532004-02-22 Jakub Jelinek <jakub@redhat.com>
11054
11055 * genoutput.c (process_template): Strip trailing whitespace in @
11056 templates and issue a warning if there was any.
11057
3a6efa98 110582004-02-21 Christopher Faylor <cgf@redhat.com>
dc4a2f32
CF
11059
11060 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11061 object file when targetting cygwin.
11062 * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11063 overridden by top-level Makefile.
11064
22cc69c4
RS
110652004-02-21 Roger Sayle <roger@eyesopen.com>
11066
11067 * config/i386/i386.c (standard_80387_constant_p): Also prefer
11068 the x87's load constant instructions when optimizing for size.
11069
bee07d3f
KH
110702004-02-21 Kazu Hirata <kazu@cs.umass.edu>
11071
11072 * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11073 * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11074 * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11075 * fold-const.c: Likewise.
11076 * simplify-rtx.c: Likewise.
11077
da6fdad3
AM
110782004-02-21 Alan Modra <amodra@bigpond.net.au>
11079
11080 * combine.c (can_combine_p): Don't ignore SETs marked with
11081 REG_EH_REGION notes.
11082 (try_combine): When attemting to fix unrecognized insns, don't
11083 split a PARALLEL that contains the original i2.
11084
8bb418a3
ZL
110852004-02-21 Ziemowit Laski <zlaski@apple.com>
11086
11087 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11088 SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11089 * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11090 * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11091 (vector, pixel, bool): #define to __vector, __pixel and __bool.
11092 (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11093 portion of header.
11094 (__altivec_link_error_invalid_argument): Remove prototype; will use
11095 __builtin_altivec_compiletime_error("vec_*") instead.
11096 (vec_*): Fix/complete set of available operation overloads given the
11097 existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11098 cv-correctness of pointer arguments; in C, always check for correct
11099 argument types before macro expansion.
11100 * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11101 defining Darwin/PowerPC-specific '-f[no-]altivec' and
11102 '-W[no-]altivec-long-deprecated' switches.
11103 * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11104 '__vector', '__pixel' and '__bool' macros using
11105 '__attribute__((altivec(...)))' types.
11106 * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11107 bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11108 bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11109 New type nodes.
11110 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11111 handling '-W[no-]altivec-long-deprecated'.
11112 (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11113 (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11114 altivec_expand_dst_builtin): Remove casts from integer literals.
11115 (altivec_expand_builtin): Likewise; handle expansion of new
11116 '__builtin_altivec_compiletime_error' function.
11117 (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11118 types, and make them distinct from other vector types; register
11119 '__builtin_altivec_compiletime_error' function.
11120 (print_operand): For 'P', print a full target register name instead of
11121 merely its number.
11122 (rs6000_attribute_table): Add "altivec" attribute.
11123 (rs6000_handle_altivec_attribute): New function.
21526606 11124 * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
8bb418a3
ZL
11125 '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11126 maps to).
11127 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11128 declare.
11129 (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11130
06a419ff
JW
111312004-02-20 James E Wilson <wilson@specifixinc.com>
11132
11133 * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11134 check.
11135 (shift_mix4left+2): Delete redundant pattern.
11136
d220de0e
KH
111372004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11138
11139 * alias.c (OUTGOING_REGNO): Don't define the default.
11140 * builtins.c (OUTGOING_REGNO): Likewise.
11141 (INCOMING_REGNO): Likewise.
11142 (apply_args_register_offset): Always use OUTGOING_REGNO.
11143 * combine.c (OUTGOING_REGNO): Likewise.
11144 * sibcall.c (OUTGOING_REGNO): Likewise.
11145 * defaults.h (INCOMING_REGNO): Provide the default.
11146 (OUTGOING_REGNO): Likewise.
11147
701ad47e
JH
111482004-02-21 Jan Hubicka <jh@suse.cz>
11149
11150 * params.def (max-peeled-insns, max-completely-peeled-insns,
11151 max-once-peeled-insns): Set to 400.
11152
7a3e01c4
JDA
111532004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11154
3205a71e 11155 PR c++/12007
7a3e01c4
JDA
11156 * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11157 are set for parameters before outputing debugging information.
11158
f4d9988b
FH
111592004-02-20 Falk Hueffner <falk@debian.org>
11160
11161 PR target/14201
11162 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11163 numbers.
11164
2ae5c785
PB
111652004-02-20 Per Bothner <per@bothner.com>
11166
11167 * input.h: Don't #include line-map.h. It may cause link problems
11168 with undefined linemap_line_start when line-map.h is included but
11169 line-map.o is not linked, as currently happens with gengtype on
11170 compilers that don't support inline.
11171 * toplev.c: So we do have to explicitly #include line-map.h here.
11172
7c4d376d
RH
111732004-02-20 Richard Henderson <rth@redhat.com>
11174
11175 * doc/invoke.texi: Add -Wvariadic-macros.
11176
2c598860
KH
111772004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11178
11179 * haifa-sched.c (sched_emit_insn): Remove.
11180 * sched-int.h: Remove the corresponding prototype.
11181
35afa569
KH
111822004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11183
11184 Revert:
11185 2004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11186 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11187 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11188 * config/cris/cris.h: Remove a comment about
11189 DEFAULT_SHORT_ENUMS.
11190 * config/ip2k/ip2k.h: Likewise.
11191 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11192
c1c3bb0c
ME
111932004-02-20 Mohan Embar <gnustuff@thisiscool.com>
11194 Tom Tromey <tromey@redhat.com>
11195
11196 * doc/install.texi: Moved --disable-libgcj and
11197 --with-system-zlib documentation to new section for
11198 Java-specific options.
11199 Added explicit Cross-Compiler-Specific Options subheading.
11200 Added section for Java-specific options.
11201
ee095310
MK
112022004-02-20 Matt Kraai <kraai@alumni.cmu.edu>
11203
11204 * doc/install.texi (Building the Ada compiler): Remove
3205a71e 11205 example.
ee095310 11206
15316a6f
JW
112072004-02-20 James E Wilson <wilson@specifixinc.com>
11208
11209 * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11210
9f76f909
KH
112112004-02-20 Kazu Hirata <kazu@cs.umass.edu>
11212
11213 * gcc.c (process_command): Allow translation of the copyright
11214 symbol but not the rest of the copyright message.
11215 * gcov.c (print_version): Likewise. Allow translation of the
11216 message about warranty.
11217
f38a62ff
HPN
112182004-02-20 Hans-Peter Nilsson <hp@axis.com>
11219
11220 * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11221 predicate.
11222 ("*andsi_clear"): Tweak constraints to not match postincrement.
11223 Adjust the predicate to exclude a volatile memory reference.
11224 ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
11225 ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11226
88e3a2a3
MK
112272004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
11228
11229 * move-if-change: Remove.
11230 * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11231 (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11232 (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11233 (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11234 (s-gtyp-gen, s-iov): Use the top level move-if-change.
11235 * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11236
e0c34369
JW
112372004-02-19 James E Wilson <wilson@specifixinc.com>
11238
11239 * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11240 for operand2. Add condition that requires register_operand operand2
11241 before reload.
11242
656f37ee 112432004-02-19 Richard Sandiford <rsandifo@redhat.com>
2b5f287b 11244 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
656f37ee
RS
11245
11246 * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11247 * config/mips/mips.md: Expand comment above unaligned loads and stores.
11248
4221057e
RH
112492004-02-19 Richard Henderson <rth@redhat.com>
11250
11251 * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11252 * tree.c (build0, build1, build2, build3, build4): Split out from...
11253 (build): ... here. Call them.
11254 * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11255
11256 * convert.c (convert_to_integer): Remove extra build argument.
11257 * tree-inline.c (expand_call_inline): Likewise.
11258
e5b79219
RH
112592004-02-19 Richard Henderson <rth@redhat.com>
11260
11261 * c-opts.c (warn_variadic_macros): New.
11262 (c_common_handle_option): Set it.
11263 (sanitize_cpp_opts): Copy it to cpp_opts.
11264 * c.opt (Wvariadic-macros): New.
11265 * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11266 * cppinit.c (cpp_create_reader): Initialize it.
11267 * cppmacro.c (parse_params): Check it.
11268
18586cb7
DD
112692004-02-19 David Daney <ddaney@avtrex.com>
11270
11271 PR preprocessor/14198
11272 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11273 builtin_assert ("machine=mips")
11274
37a46828
KH
112752004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11276
11277 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11278 * system.h (DEFAULT_SHORT_ENUMS): Poison.
11279 * config/cris/cris.h: Remove a comment about
11280 DEFAULT_SHORT_ENUMS.
11281 * config/ip2k/ip2k.h: Likewise.
11282 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11283
f9c887ac
ZW
112842004-02-19 Zack Weinberg <zack@codesourcery.com>
11285
11286 * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11287 when passing single SFmode quantities in general registers,
11288 put them in the high half.
11289
0e1d7f32 112902004-02-19 Aldy Hernandez <aldyh@redhat.com>
f9c887ac
ZW
11291
11292 * doc/md.texi (Standard Names): Document additional dependency on
11293 fix pattern.
11294
11295 * optabs.c (ftruncify): Remove.
11296 (expand_fix): Manually inline ftruncify above.
11297 (can_fix_p): Add FIXME note.
0e1d7f32 11298
c6e9f0eb 112992004-02-19 Aldy Hernandez <aldyh@redhat.com>
f9c887ac
ZW
11300
11301 * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11302 spe_fixuns_truncsfsi2.
11303
11304 * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11305 fixuns_truncsfsi2.
c6e9f0eb 11306
919b531d
SE
113072004-02-19 Steve Ellcey <sje@cup.hp.com>
11308
11309 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11310 * testsuite/gcc.dg/20040219-1.c: New test.
11311
4dbb5970
UW
113122004-02-19 Ulrich Weigand <uweigand@de.ibm.com>
11313
11314 * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11315 "*subsf3_cconly"): Subtraction is not commutative.
11316
16edbbf0
ZW
113172004-02-19 Zack Weinberg <zack@codesourcery.com>
11318
11319 * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11320 (sdbout_symbol): If called before sdbout_init, queue DECL for
11321 later and return.
11322 (sdbout_init): Set sdbout_initialized true, process decls
11323 queued earlier by sdbout_symbol.
11324 (sdbout_finish): Use size_t for index variable.
11325
f46e5baa 113262004-02-19 Jeff Law <law@redhat.com>
16edbbf0 11327
f46e5baa
JL
11328 * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11329 for unordered comparison codes.
11330
d754127f
ILT
113312004-02-19 Ian Lance Taylor <ian@wasabisystems.com>
11332
11333 * reload1.c (reload): Correct comment.
11334 (scan_paradoxical_subregs): Remove #if 0 and old comment.
11335 * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11336 register variables are not used by reload.
11337
428eae94
HPN
113382004-02-19 Hans-Peter Nilsson <hp@axis.com>
11339
11340 PR target/14209
11341 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11342 constraints to not match postincrement. Adjust the predicate to
11343 exclude a volatile memory reference.
11344
a5ee8d80
KH
113452004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11346
11347 * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11348
45ea6431
KH
113492004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11350
11351 * hooks.c (hook_void_tree_int): Remove.
11352 (hook_void_constcharptr): Likewise.
11353 (hook_int_void_0): Likewise.
11354 * hooks.h: Remove the prototypes for the above three
11355 functions.
11356 * targhooks.c (hook_bool_machine_mode_true): Remove.
11357 * targhooks.h: Remove the prototype for
11358 hook_bool_machine_mode_true.
11359
c59102b4
KH
113602004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11361
11362 * emit-rtl.c (subreg_realpart_p): Remove.
11363 (reorder_insns_with_line_notes): Likewise.
11364 (end_full_sequence): Likewise.
11365 * rtl.h: Remove the prototype for the above functions.
11366
3ad17f7b
KH
113672004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11368
11369 * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11370 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11371 config/iq2000/iq2000.h, config/m32r/m32r.h,
11372 config/pdp11/pdp11.h, config/sparc/sparc.h,
11373 config/xtensa/xtensa.h: Remove commented-out or useless
11374 definitions of CASE_VECTOR_PC_RELATIVE.
11375
a3b182a7
KH
113762004-02-19 Kazu Hirata <kazu@cs.umass.edu>
11377
11378 * loop.c (all_sets_invariant_p): Remove.
11379
1b5963f7
EB
113802004-02-19 Eric Botcazou <ebotcazou@libertysurf.fr>
11381
11382 PR target/12916
11383 * config/sparc/sparc.h (NPARM_REGS): Delete.
11384 (BASE_RETURN_VALUE_REG): Likewise.
11385 (BASE_OUTGOING_VALUE_REG): Likewise.
11386 (BASE_PASSING_ARG_REG): Likewise.
11387 (BASE_INCOMING_ARG_REG): Likewise.
11388 * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11389 TARGET_ARCH64, not TARGET_V9.
11390 (function_arg_slotno): Dispatch based on the mode class.
11391 Handle vector modes like floating-point modes.
11392 (function_arg_record_value_1): Handle vector types like
11393 floating-point types.
11394 (function_arg_record_value_2): Likewise.
11395 Calculate regno after mode transformation.
11396 (function_arg): Handle vector modes like floating-point modes.
11397 (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11398 If ARCH64, do not recheck alignment.
11399 (function_arg_pass_by_reference): Reorder the conditions.
11400 (sparc_return_in_memory): Move after function_arg_padding.
11401 Implement calling conventions for vector modes.
11402 (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11403 (function_value): Move scope of 'regbase'.
11404 Implement calling conventions for vector modes.
11405 (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11406 and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11407 (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11408 the argument is passed by reference.
11409 (sparc_type_code): Handle vector types.
11410
196c42cd
AM
114112004-02-19 Alan Modra <amodra@bigpond.net.au>
11412
11413 * function.c (assign_parms): When building decl_rtl for
11414 SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11415
c0cfc691
OH
114162004-02-19 Olivier Hainque <hainque@act-europe.fr>
11417
11418 * expr.c (is_aligning_offset): Check if we are aligning the
11419 expressions's address over BIGGEST_ALIGNMENT in bytes, not
11420 in bits.
11421
328163dc
MA
114222003-02-18 Matt Austern <austern@apple.com>
11423
11424 * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11425 LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11426 (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11427 defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11428 spec string.
11429 * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
16edbbf0 11430
57d4f65c
ZW
114312004-02-18 Zack Weinberg <zack@codesourcery.com>
11432
11433 * dwarf2out.c (loclabel_num): Move outside #ifdef
11434 DWARF2_DEBUGGING_INFO and mark with GTY(()).
11435 * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11436 Mark with GTY(()).
11437 (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11438 Allocate memory with ggc_alloc. No need to copy anything.
11439 (ia64_hpux_file_end): Update to match.
11440
3fec9fa9
JJ
114412004-02-18 Jakub Jelinek <jakub@redhat.com>
11442
11443 * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11444 by default.
11445
5665e398
UW
114462004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
11447
11448 * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11449 ("divmodtisi3"): Likewise.
11450 ("udivmoddi4", "udivmodtidi3"): Likewise.
11451 ("divmodsi4", "divmoddisi3"): Likewise.
11452 ("udivmodsi4", "udivmoddisi3"): Likewise.
11453 ("udivsi3", "umodsi3"): Likewise.
11454
d76e8439
UW
114552004-02-18 Ulrich Weigand <uweigand@de.ibm.com>
11456
11457 * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11458 placeholder insn when chunkifying the pool.
11459
3cf7104e
JDA
114602004-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11461
11462 * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11463 generating PIC code.
11464
8981ecd3
KH
114652004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11466
11467 * config/h8300/h8300-protos.h: Add a prototype for
11468 h8300_expand_branch.
11469 * config/h8300/h8300.c (h8300_expand_branch): New.
11470 * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11471 bgtu, beq, bne): Call h8300_expand_branch().
11472
07ee3b58
KH
114732004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11474
11475 * config/h8300/h8300-protos.h: Add prototypes for
11476 h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11477 * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11478 (h8300_hard_regno_mode_ok): Likewise.
11479 * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11480 h8300_hard_regno_nregs().
11481 (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11482
22234f56
PB
114832004-02-18 Per Bothner <per@bothner.com>
11484
11485 * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This
11486 partly reverts my 2003-10-01 change, because we're back to logically
11487 including <command line> inside the main line.
11488 * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field.
11489 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer.
11490 Fixes PR preprocessor/14103.
11491
11492 * cppfiles.c (_cpp_stack_include): When appropriate decrement
11493 line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11494 (cpp_push_include): Don't need to increment pfile's line field.
11495 * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1.
11496
11497 * c-ppoutput.c (print struct): New first_time field.
11498 (init_pp_output): Set print.first_time.
11499 (pp_file_change): Use print.first_time, rather than MAIN_FILE_P,
11500 which is set also for (say) <command line>. Clear print.first_time.
11501
11502 * cppfiles.c (struct _cpp_file): Comment and type for pch field
11503 does not match the code, so fix both.
11504 (should_stack_file): Inline include_pch_p function.
11505 (include_pch_p): Remove pointless function.
11506
11507 * cpphash.h (struct cpp_buffer): Remove unused search_cached field.
11508
5a6d9a81
KH
115092004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11510
11511 * config/h8300/h8300.md (four define_peephole2's): Use
11512 h8300_regs_ok_for_stm().
11513
3d2e90d6
KH
115142004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11515
11516 * config/h8300/h8300-protos.h: Update the prototype for
11517 expand_a_rotate().
11518 * config/h8300/h8300.c (expand_a_rotate): Remove the first
11519 argument.
11520 * config/h8300/h8300.md: Update all callers.
11521
79ae63b1
JH
115222004-02-18 Jan Hubicka <jh@suse.cz>
11523
11524 * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11525 floats.
11526 (simplify_binary_operation): Deal with logicals on floats.
11527
11528 * i386.md (SSE fabs splitters): Emit new patterns.
11529 (SSE cmov splitters): Likewise.
11530 (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11531 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11532 subregs.
11533 (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11534 (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11535
01ab5574
KH
115362004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11537
11538 * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11539 by hand.
11540 (output_a_rotate): Tweak a comment.
11541 * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11542 (*rotlhi3_1): Change to rotlhi3_1.
11543 (*rotlsi3_1): Change to rotlsi3_1.
11544
d5f7d2d0
RE
115452004-02-18 Richard Earnshaw <rearnsha@arm.com>
11546
11547 PR target/13866
11548 * arm.c (load_multiple_operation): Don't insist that the source reg
11549 of a post-increment component is the same as the destination.
11550 (store_multiple_operation): Likewise.
11551
b0c8a821
KH
115522004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11553
11554 * config/h8300/h8300.md: Move movsf patterns into one section
11555 of the file.
11556
aa335b76
KH
115572004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11558
11559 * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11560 loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11561 xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11562 config/mips/linux64.h, config/pa/pa-64.h,
11563 config/rs6000/aix51.h, config/rs6000/aix52.h,
11564 config/rs6000/spe.md, config/sparc/linux.h,
11565 config/sparc/linux64.h: Update copyright.
11566
5a64541a
KH
115672004-02-18 Kazu Hirata <kazu@cs.umass.edu>
11568
11569 * config/h8300/h8300.md: Move push patterns into one
11570 section of the file.
11571
8d04e6db
MM
115722004-02-18 Mark Mitchell <mark@codesourcery.com>
11573
11574 PR c++/11326
11575 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11576 fntype.
11577
e978d62e
PB
115782004-02-18 Paul Brook <paul@codesourcery.com>
11579
11580 * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11581
cdbafce1
PB
115822004-02-18 Paul Brook <paul@codesourcery.com>
11583
c5fe5036 11584 PR debug/12934
cdbafce1
PB
11585 * dwarf2out.c (loc_descriptor_from_tree): Handle
11586 EXPR_WITH_FILE_LOCATION.
11587
5a0855a0
JJ
115882004-02-18 Jakub Jelinek <jakub@redhat.com>
11589
11590 * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11591 testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11592 trailing whitespace from instructions.
11593
9c56033f
GK
115942004-02-17 Geoffrey Keating <geoffk@apple.com>
11595
11596 * configure.ac: When generating auto-build.h, pass
11597 --enable-languages to the sub-configure.
11598 Put quotes around ${program_transform_name} when generating
11599 name of as, ld, nm, objdump.
11600 * configure: Regenerate.
11601
80bcb4d2
MK
116022004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
11603
11604 * Makefile.in (s-check, s-config, s-conditions, s-flags)
11605 (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11606 (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11607 (s-preds, s-iov): Do not depend on move-if-change.
11608
ce7b36a4
JW
116092004-02-17 James E Wilson <wilson@specifixinc.com>
11610
11611 * caller-save.c (insert_restore): Pass mem through copy_rtx.
11612 (insert_save): Likewise.
11613
f8b58e56
KH
116142004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11615
11616 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11617 warning.
11618
8d82e1d8
KH
116192004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11620
11621 * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11622 *one_cmplsi2_h8300.
11623 (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11624
4093985c
KH
116252004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11626
11627 * config/h8300/h8300-protos.h: Update the prototype of
11628 fix_bit_operand().
11629 * config/h8300/h8300.c (fix_bit_operand): Remove the second
11630 argument "what".
11631 * config/h8300/h8300.md: Update all callers.
11632
fd57a6e4
KH
116332004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11634
11635 * config/h8300/h8300.c (fix_bit_operand): Change the name of
11636 the last argument to "code" from "type".
11637
6a415867
KH
116382004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11639
11640 * config/h8300/h8300.c: Remove an extern declaration of
11641 rtx_equal_function_value_matters.
11642
a3579575
KH
116432004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11644
11645 * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11646 by hand.
11647 * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11648 (*iorqi3_1): Change to iorqi3_1.
11649 (*xorqi3_1): Change to xorqi3_1.
11650
321440fd
KH
116512004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11652
11653 * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11654 typos.
11655
7b50a809
JH
116562004-02-17 Jan Hubicka <jh@suse.cz>
11657
11658 * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11659
8051c2eb
AM
116602004-02-18 Alan Modra <amodra@bigpond.net.au>
11661
11662 PR optimization/14119
11663 * combine.c (try_combine): When attemting to fix unrecognized insns,
11664 don't delete SETs marked with REG_EH_REGION notes.
11665
db33236e
UW
116662004-02-17 Ulrich Weigand <uweigand@de.ibm.com>
11667
57d4f65c 11668 * combine.c (simplify_if_then_else): Do not replace
db33236e
UW
11669 (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11670 modes differ.
11671
1da326c3
SB
116722004-02017 Steven Bosscher <stevenb@suse.de>
11673
11674 * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11675 function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11676 tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11677 * ada/utils.c: Likewise.
11678 * cp/decl.c: Likewise.
11679 * f/com.c: Likewise.
11680 * java/class.c: Likewise.
11681
65c07641
KH
116822004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11683
11684 * config/h8300/h8300.md: Fix comment typos.
11685
3e35cb0c
RO
116862004-02-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11687
11688 * config/mips/t-iris6gld: Renamed to ...
11689 * config/mips/t-irix-gld: ... this.
11690 * config.gcc (mips-sgi-irix6*): Reflect this
11691 (mips-sgi-irix5*): Use it with GNU ld.
57d4f65c 11692
3e35cb0c
RO
11693 * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11694 to ...
11695 * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11696 * config/mips/t-irix-gld: Reflect this.
11697 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
57d4f65c 11698
3e35cb0c
RO
11699 * config/mips/iris5gld.h: New file.
11700 * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11701 Only use collect2 without gas.
57d4f65c 11702
3e35cb0c
RO
11703 * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11704 Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11705 (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11706 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
57d4f65c 11707
3e35cb0c
RO
11708 * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11709 * config/mips/iris5.h: ... here.
11710
11711 * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
57d4f65c 11712 IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
3e35cb0c 11713 (STARTFILE_SPEC, ENDFILE_SPEC): Define.
57d4f65c 11714
3e35cb0c
RO
11715 * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11716 using irix_startfile_spec, irix_endfile_spec.
11717
1f0282cb
GN
117182004-02-16 Gunther Nikl <gni@gecko.de>
11719
11720 * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11721
6552458a
KH
117222004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11723
11724 * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11725 insns by hand.
11726
017b3258
ZD
117272004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11728
11729 * cfghooks.c (split_edge): Speed up updating of dominators.
11730
57782ad8
MM
117312004-02-17 Mark Mitchell <mark@codesourcery.com>
11732
11733 PR c++/11326
11734 * c-common.c (flag_abi_version): Remove.
11735 * c-common.h (flag_abi_version): Likewise.
11736 * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11737 * c.opt (fabi-version): Remove.
11738 * calls.c (expand_call): Always pass a function type to
11739 struct_value_rtx. Use convert_memory_address.
11740 * common.opt (fabi-version): Add it.
11741 * flags.h (flag_abi_version): Likewise.
11742 (abi_version_at_least): New macro.
11743 * opts.c (common_handle_option): Add OPT_fabi_version.
11744 * toplev.c (flag_abi_version): Define it.
11745 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11746 New function.
11747 (ia64_output_mi_thunk): Use it.
11748 (ia64_struct_value_rtx): Likewise.
57d4f65c 11749
72b1de44
KH
117502004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11751
11752 * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11753 Don't generate insns by hand.
11754
d150ccef
AP
117552004-02-17 Andrew Pinski <pinskia@physics.uc.edu>
11756
11757 PR c++/14178
11758 * doc/invoke.texi (fabi-version): The default is 2 now.
11759
50654f6c
ZD
117602004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11761
11762 * loop-iv.c: New file.
11763 * Makefile.in (loop-iv.o): New.
11764 * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11765 * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11766 num_loop_branches): New functions.
11767 * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11768 iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11769 find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11770 get_simple_loop_desc, free_simple_loop_desc): Declare.
11771 (simple_loop_desc): New inline function.
11772 (struct rtx_iv, struct niter_desc): New.
11773 * cfgloopmanip.c (loopify): Specify semantics more precisely.
11774 * expr.c (force_operand): Handle subregs of expressions created by
11775 loop unroller.
11776 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11777 parts of the initialization to toplev.c
11778 * loop-unroll.c (loop_exit_at_end_p): New.
11779 (unroll_and_peel_loops): Call iv_analysis_done.
11780 (decide_peel_once_rolling, decide_peel_completely,
11781 decide_unroll_stupid, decide_unroll_constant_iterations,
11782 decide_unroll_runtime_iterations, decide_peel_simple,
11783 peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11784 unroll_loop_runtime_iterations): Use new simple loop analysis.
11785 * loop-unswitch.c (compare_and_jump_seq): New.
11786 (may_unswitch_on_p): Renamed to ...
11787 (may_unswitch_on): Use new iv analysis.
11788 (reversed_condition): Export.
11789 (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11790 * predict.c (estimate_probability): Use new simple loop analysis.
11791 * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11792 canon_condition, simplify_using_condition): Declare.
11793 * stor-layout.c (get_mode_bounds): New.
11794 * toplev.c (rest_of_handle_loop2): Some parts of
11795 initialization/finalization moved here from loop-init.c.
11796
ef3f573f
KH
117972004-02-17 Kazu Hirata <kazu@cs.umass.edu>
11798
11799 * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11800 pointer.
11801 (CALL_USED_REGISTERS): Likewise.
11802 (REG_ALLOC_ORDER): Likewise.
11803 (REG_CLASS) <GENERAL_REGS>: Likewise.
11804
e3d6e740
GK
118052004-02-16 Geoffrey Keating <geoffk@apple.com>
11806
11807 * doc/md.texi (Insn Canonicalizations): Document left-chaining
11808 in associative operators.
11809 * rtlanal.c (commutative_operand_precedence): Create some new
11810 variables. Prefer a commutative operand on the left, then
11811 binary expressions, then NEG and NOT.
11812
8c958ed2
MK
118132004-02-16 Matthias Klose <doko@debian.org>
11814
57d4f65c
ZW
11815 * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11816 in terms of SHLIB_SOVERSION.
11817 * config/m68k/t-slibgcc-elf-ver: New file.
11818 * config/pa/t-slibgcc-elf-ver: New file.
11819 * config.gcc (m68k-linux, parisc-linux): Use them when not
8c958ed2
MK
11820 sjlj exceptions are not configured.
11821
42a5f3c0
EB
118222004-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
11823
11824 * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11825
1729e46c
ZW
118262004-02-16 Zack Weinberg <zack@codesourcery.com>
11827
11828 * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11829
0acdc221
JM
118302004-02-16 Joseph S. Myers <jsm@polyomino.org.uk>
11831
11832 * doc/sourcebuild.texi: Mention backends.html.
11833
9ac97460
KH
118342004-02-16 Kazu Hirata <kazu@cs.umass.edu>
11835
11836 * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11837 line-map.c, line-map.h, var-tracking.c: Fix comment
11838 formatting.
11839
9dcb4381
RH
118402004-02-16 Richard Henderson <rth@redhat.com>
11841
11842 * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11843
1729e46c 11844 * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
875427f0 11845
1472042a
KH
118462004-02-15 Kazu Hirata <kazu@cs.umass.edu>
11847
11848 * config/h8300/h8300.md: Remove unnecessary parallels from
11849 all define_insn and define_split patterns.
11850
24f29b06
KH
118512004-02-15 Kazu Hirata <kazu@cs.umass.edu>
11852
11853 * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11854 "clobber").
11855
ac5f9961
BI
118562004-02-15 Bernardo Innocenti <bernie@develer.com>
11857
11858 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11859 '%#'.
11860
68776c43
KH
118612004-02-15 Kazu Hirata <kazu@cs.umass.edu>
11862
11863 * config/ia64/ia64.c, config/mips/mips.c,
11864 config/mmix/mmix-modes.def: Fix comment typos.
11865
7501c4e4
RS
118662004-02-15 Roger Sayle <roger@eyesopen.com>
11867
11868 * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11869 (get_directive_line): Remove unused function prototype.
11870
5852680b
JZ
118712004-02-14 Josef Zlomek <zlomekj@suse.cz>
11872
11873 * tree-inline.c (copy_body_r): Do not replace ret_label.
11874
be04394b
JH
118752004-02-14 Jan Hubicka <jh@suse.cz>
11876
11877 * i386.c (x86_four_jump_limit): New variable.
11878 (k8_avoid_jump_misspredicts): Rename to ...
11879 (ix86_avoid_jump_misspredicts): .. this one.
11880 (ix86_pad_returns): Break out from ...
11881 (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11882 to.
11883 * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11884
d4afac5b
JZ
118852004-02-14 Josef Zlomek <zlomekj@suse.cz>
11886
11887 * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11888 PARALLEL is NULL.
11889
c7762b44
PB
118902004-02-14 Per Bothner <per@bothner.com>
11891
11892 * fix-header.c (line_table): Move local variable in main to global.
11893 * scan.h (line_table): Use it.
11894 * scan-decls.c (scan_decls): Need to call linemap_lookup on token's
11895 line (recently renamed to src_loc) before calling recognized_function.
11896
cb7c0b5a
MK
118972004-02-14 Matt Kraai <kraai@alumni.cmu.edu>
11898
11899 * Makefile.in: Fix comment typos.
11900
45f9877a
EB
119012004-02-14 Olivier Hainque <hainque@act-europe.fr>
11902
11903 * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11904 for start_value when it is directly moved into reg, and factorize
11905 the retrieval of GET_MODE (reg).
11906
544142d8
RS
119072004-02-14 Richard Sandiford <rsandifo@redhat.com>
11908
11909 * config/mips/mips-protos.h (mips_load_got_page): Delete.
11910 (mips_load_got_global): Delete.
11911 (mips_gotoff_page): Declare.
11912 * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11913 (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11914 UNSPEC_LOAD_GOT pattern rather than a MEM.
11915 (*load_got[sd]i): New patterns.
11916 * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11917 (mips_load_got_page, mips_load_got_global): Delete.
11918 (mips_gotoff_page): New function.
11919 (override_options): Don't initialize mips_got_alias_set.
11920
d2888f1d
RS
119212004-02-14 Richard Sandiford <rsandifo@redhat.com>
11922
11923 * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11924 (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11925 (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11926 (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11927 (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11928 * config/mips/mips.c: Fix some overly-long lines.
11929 (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
11930 (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
11931
19baba0b
RO
119322004-02-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11933
11934 * configure.ac: Search for as, ld below libexec/gcc.
11935 * configure: Regenerate.
11936
f07a6b21
BE
119372004-02-14 Ben Elliston <bje@wasabisystems.com>
11938
11939 * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
11940 __builtin_arm_setwcx ().
11941 * config/arm/arm.c (arm_expand_builtin): Generate operands
11942 correctly and reverse their order in call to gen_iwmmxt_tmcr ().
11943
119442004-02-14 Ben Elliston <bje@wasabisystems.com>
11945
11946 * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
11947 and "wmuluh" to "wmulsm" and "wmulum", respectively.
11948 * config/arm/arm.h (enum arm_builtins): Rename enumerators to
11949 ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
11950 * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
11951 (_mm_mulhi_pu16): Likewise.
11952
f433554b
ZW
119532004-02-13 Zack Weinberg <zack@codesourcery.com>
11954
11955 * xcoffout.c (xcoff_assign_fundamental_type_number): Check
11956 DECL_NAME != 0 before dereferencing.
11957
faeb9bb6
UW
119582004-02-13 Ulrich Weigand <uweigand@de.ibm.com>
11959
11960 * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
11961 (s390_output_addr_const_extra): Declare.
11962 (s390_output_pool_entry): Remove FILE * argument.
11963 * config/s390/s390.c (s390_output_symbolic_const): Remove.
11964 (s390_output_addr_const_extra): New function.
11965 (print_operand_address): Call output_addr_const instead of
11966 s390_output_symbolic_const.
11967 (print_operand): Likewise.
11968 (s390_output_pool_entry): Use assemble_integer for symbolic constants.
11969 Remove FILE * argument.
11970 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
11971 * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
11972 call.
11973
cfbe3efe
ZD
119742004-02-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
11975
11976 * cfgloopanal.c (mark_irreducible_loops): Rewriten.
11977 (struct edge, struct vertex, struct graph): New.
11978 (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
11979 free_graph): New functions.
11980
d349192c
CD
119812004-02-12 Chris Demetriou <cgd@broadcom.com>
11982
11983 * config/mips/mips.md (casesi_internal, casesi_internal_di):
11984 Use ".set macro" to avoid warnings about multi-instruction
11985 macros, since they're intentional.
11986
52ccb3d2
GK
119872004-02-12 Geoffrey Keating <geoffk@apple.com>
11988
213c4a8a
GK
11989 * config/darwin.h: Add include guards. Remove old, now incorrect,
11990 comment about STANDARD_EXEC_PREFIX.
11991
52ccb3d2
GK
11992 * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
11993 $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule
11994 for installing .1 manpages. Add rules for installing cpp
11995 and gcov manpages under their installed names.
11996
1a543d25
AO
119972004-02-12 Alexandre Oliva <aoliva@redhat.com>
11998
11999 * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12000 host, but try LD_FOR_TARGET first.
12001 * configure: Rebuilt.
12002
8507c40a
ZW
120032004-02-12 Zack Weinberg <zack@codesourcery.com>
12004
12005 * dbxout.c: Move declaration of dbxout_type_decl outside
12006 #ifdef DBX_DEBUGGING_INFO.
12007 * c-parse.in: Don't give the asmdef production a type.
12008
21d13d83
ZW
120092004-02-12 Zack Weinberg <zack@codesourcery.com>
12010
12011 * debug.h (struct gcc_debug_hooks): Add type_decl field.
12012 (debug_nothing_tree_int): Prototype.
12013 (dwarf_debug_hooks): Delete, unused.
12014 * debug.c (do_nothing_debug_hooks): Update.
12015 (debug_nothing_tree_int): New function.
12016 * langhooks.h (struct lang_hooks_for_decls):
12017 Remove builtin_type_decls field.
12018 * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12019 (LANG_HOOKS_DECLS): Update.
12020 * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12021 Use debug_hooks->type_decl.
12022 * dbxout.c (preinit_symbols): New static.
12023 (dbx_debug_hooks, xcoff_debug_hooks): Update.
12024 (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12025 lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols
12026 for symbols to output.
12027 (dbxout_type_decl): New function.
12028 (dbxout_symbol): If called before dbxout_init has run, queue
12029 the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12030 to TYPE_DECLs before emitting them.
12031 * xcoffout.c (assign_type_number): Delete.
12032 (xcoff_type_numbers): New static table.
12033 (xcoff_assign_fundamental_type_number): New function.
12034 * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12035 DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs.
12036 * sdbout.c: Include varray.h.
12037 (deferred_global_decls): New static.
12038 (sdb_debug_hooks): Update.
12039 (sdbout_global_decl): If we can't emit something right now,
12040 remember it in deferred_global_decls.
12041 (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12042 (sdbout_init): Initialize deferred_global_decls.
12043 * Makefile.in: Update dependencies of sdbout.o.
12044 * dwarf2out.c (dwarf2out_type_decl): New function.
12045 (dwarf2_debug_hooks): Update.
12046 * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12047 * c-decl.c (getdecls): Just return 0.
12048 (check_for_loop_decls): Don't use getdecls.
12049 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12050 * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12051
a90a16f3
UW
120522004-02-12 Ulrich Weigand <uweigand@de.ibm.com>
12053
12054 * config/s390/s390.c (s390_sched_reorder2): Remove.
12055 (TARGET_SCHED_REORDER2): Do not redefine.
12056
9f0e2d86
ZW
120572004-02-12 Zack Weinberg <zack@codesourcery.com>
12058
12059 * c-parse.in (maybe_type_qual): Delete.
12060 (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12061 (asm_argument): New grammar rules.
12062 (extdef_1): Use asmdef.
12063 (maybeasm): Move down with other asm rules; use simple_asm_expr.
12064 (xexpr): Move up with other expression rules.
12065 (stmt): Use asm_stmt.
12066
12067 * c-typeck.c (build_asm_expr): New function - body mostly
12068 pulled from build_asm_stmt.
12069 (build_asm_stmt): Just handle tacking on the volatile qualifier.
12070 * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12071
35f5add9
RS
120722004-02-12 Richard Sandiford <rsandifo@redhat.com>
12073
12074 PR bootstrap/13617
12075 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12076 (mips_declare_object): Make variadic.
12077 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12078 mips_output_aligned_decl_common.
12079 * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12080 (mips_declare_object): Make variadic.
12081
a5e9c810
RK
120822004-02-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12083
8fbc67c0
RK
12084 * function.c (update_epilogue_consts): Teach about binary operations.
12085
a5e9c810
RK
12086 * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12087 previous MEM_VOLATILE in REF.
12088 * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12089 * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12090
7ea98c5a
GN
120912004-02-12 Gunther Nikl <gni@gecko.de>
12092
12093 * config.gcc: Restore support for m68k-openbsd.
12094
8f6a8d03
JH
120952004-02-12 Jan Hubicka <jh@suse.cz>
12096
12097 * tree-optimize.c (tree_rest_of_compilation): Do not release
12098 DECL_ARGUMENTS.
12099
c2910edf
MK
121002004-02-11 Matt Kraai <kraai@alumni.cmu.edu>
12101
12102 * doc/install.texi: Fix the spelling of "explicitly".
12103
423e95e2
EC
121042004-02-11 Eric Christopher <echristo@redhat.com>
12105
12106 * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12107 duplicate argument structure of cpp_interpret_string.
12108 * cpphash.h: Move prototype...
12109 * cpplib.h: Here.
12110 * cpplib.c: Fix calls to match new function signature.
12111
32e8aa9a
JM
121122004-02-11 Joseph S. Myers <jsm@polyomino.org.uk>
12113
12114 PR c/456
12115 * cppexp.c (num_binary_op): Don't allow comma operators in #if
12116 constant expressions at all outside C99 mode if pedantic.
12117
3b8e0c91
UB
121182004-02-11 Uros Bizjak <uros@kss-loka.si>
12119
12120 * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12121 (log10_optab, log2_optab): Define corresponding macros.
12122 * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12123 * genopinit.c (optabs): Implement log10_optab and log2_optab
12124 using log10?f2 and log2?f2 patterns.
12125 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12126 using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12127 (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12128 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12129
12130 * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12131 log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12132 log2, log2f and log2l built-ins as inline x87 intrinsics.
12133
a6abdce3
RH
121342004-02-11 Richard Henderson <rth@redhat.com>
12135
888ff7a1 12136 PR target/1532
a6abdce3
RH
12137 * flow.c (insn_dead_p): A clobber of a dead hard register is a
12138 dead insn after reload.
12139
05ac140e
UW
121402004-02-11 Ulrich Weigand <uweigand@de.ibm.com>
12141
12142 * tree.h (frame_base_decl): Add GTY marker.
12143 * var-tracking.c (frame_base_decl): Likewise.
12144
e193b408
DB
121452004-02-11 Daniel Berlin <dberlin@dberlin.org>
12146
12147 * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12148 incorrect, hunk.
12149 (add_location_or_const_value_attribute): Use text_section_label,
12150 not TEXT_SECTION_NAME.
12f9df4e
PB
12151
121522004-02-11 Per Bothner <per@bothner.com>
12153
12154 Represent column numbers using line-map's source_location.
12155 The "next available source_location" is now managed internally by
12156 line-maps.c rather than by clients.
12157 * line-map.h (struct line_map): New field column_bits.
12158 <from_line>: Rename field to start_location.
12159 (struct line_maps): New fields highest_location and max_column_hint.
12160 (linemap_check_files_exited): New declaration.
12161 (linemap_line_start): New declaration.
12162 (linemap_add): Remove from_line parameter; use highest_location field.
12163 (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits.
12164 (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros.
12165 (CURRENT_LINE_MAP): Remove macro.
12166 (linemap_position_for_column): New inline function.
12167 * line-map.c (linemap_init): Clear new fields.
12168 (linemap_check_files_exited): New function, extracted from ...
12169 (linemap_free): Use linemap_check_files_exited.
12170 (linemap_add): Remove from_line parameter. Various updates.
12171 (linemap_line_start): New function.
12172 (linemap_lookeup): Update for new field names.
12173 * cpphash.h (struct cpp_reader) <map>: Field removed. Because
12174 linemap_position_for_column may unpredictably change the current map,
12175 it is cleaner and simpler for us to not cache it in cpp_reader.
12176 (struct cpp_buffer): New sysp field.
12177 Changed warned_cplusplus_comments and from_stage3 to bitfields.
12178 * cppinit.c (cpp_read_min_file): pfile->map no longer exists.
12179 * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get
12180 current map using linemap_lookup.
12181 (do_linemarker): Also set buffer's sysp field.
12182 (destringize_and_run): No longer need to decrement current line.
12183 * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer.
12184 (search_path_head, open_file_failed): Use buffer's sysp.
12185 (cpp_make_system_header): Get current map using linemap_lookup.
12186 Also set buffer's sysp flag.
12187 * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup.
12188 * cpphash.h (CPP_INCREMENT_LINE): New macro.
12189 (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ...
12190 (struct cpp_reader): ... and adding saved_line_base field.
12191 * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12192 Update accordingly. Don't adjust line.
12193 (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE.
12194 * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ...
12195 (cpp_in_system_header): ... new inline function, using buffer's sysp.
12196 * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header.
12197 * cpplex.c (_cpp_lex_direct): Likewise.
12198 * cppmacro.c (_cpp_builtin_macro_text): Likewise.
12199 * cppmacro.c (_cpp_create_definition): Use buffer's sysp field.
12200 * cpplib.h (struct cpp_token): Rename line field to src_loc.
12201 Remove col field as it is now subsumed by src_loc.
12202 * cpperror.c: Update various field, parameter, and macro names.
12203 (print_location): If col==0, try SOURCE_COLUMN of line.
12204 (cpp_error): Use cur_token's src_loc field, rather than line+col.
12205 * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col.
12206 * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12207 _cpp_skip_block_comment): Use CPP_INCREMENT_LINE.
12208 (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc.
12209 (_cpp_get_fresh_line): Don't need to adjust line for missing newline.
12210 (_cpp_lex_direct): Use linemap_position_for_column.
12211 * c-ppoutput.c (maybe_print_line, print_line): Don't take map
12212 parameter. Instead get it from the line_table global. Adjust callers.
12213 (print): Remove map field. Replace line field to src_line.
12214 (init_pp_output, account_for_newlines, maybe_print_line): Adjust.
12215 (cb_line_change): Use SOURCE_COLUMN. Minor optimizations.
12216 (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map.
12217 Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12218 * cpptrad.c (copy_comment): Rename variable.
12219 * c-lex.c (map): Remove static variable, for same reason we removed
12220 cpp_reader's map field.
12221 (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need
12222 to call linemap_lookup.
12223 (cb_line_change): Token's line field replaced by src_loc.
12224 (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros.
12225 Don't save new_map.
12226
12227 * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to
12228 source_location.
12229
e086f51d 122302004-02-11 Hartmut Penner <hpenner@de.ibm.com>
423e95e2 12231
e086f51d
HP
12232 * config/rs6000/altivec.md (*movv4si_internal): At least one
12233 operand must be register_operand.
12234 (*movv8hi_internal1): Likewise.
12235 (*movv16qi_internal1): Likewise.
12236 (*movv4sf_internal1): Likewise.
12237
e66b2fcf 122382004-02-10 Aldy Hernandez <aldyh@redhat.com>
8914b65e
AH
12239
12240 * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12241 operand.
12242 (movv4hi_internal): Same.
12243 (movv2sf_internal): Same.
12244 (movv1di_internal): Same.
e66b2fcf 12245
7f9be256
TS
122462004-02-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
12247
12248 * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
c0689841 12249 TARGET_OLDABI consistently.
7f9be256
TS
12250 * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12251 mips_va_arg,override_options,compute_frame_size,
12252 mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12253 ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
c0689841 12254 and TARGET_OLDABI consistently.
7f9be256
TS
12255 * config/mips/mips.md (exception_receiver): Likewise.
12256 * config/mips/linux64.h: Likewise.
12257
6d0ef01e
HP
122582004-02-11 Hartmut Penner <hpenner@de.ibm.com>
12259
12260 * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12261 Set AltiVec ABI and vrsave as default for ppc64 linux.
12262 (init_cumulative_args): Post error, if try to return
12263 value in AltiVec register without enable AltiVec.
423e95e2 12264 (function_arg_advance): Ditto for passing arguments.
6d0ef01e 12265
7537fc90
RS
122662004-02-11 Richard Sandiford <rsandifo@redhat.com>
12267
12268 * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12269 a label before updating its usage count.
12270
1e9f1674
MK
122712004-02-10 Matt Kraai <kraai@alumni.cmu.edu>
12272
9f0e2d86 12273 * doc/install.texi: Remove extra cd.
1e9f1674 12274
b34417a4
ZL
122752004-02-10 Ziemowit Laski <zlaski@apple.com>
12276
12277 * c-common.c (vector_size_helper): Remove; call
12278 reconstruct_complex_type() instead.
12279 * tree.c (reconstruct_complex_type): New function
12280 (formerly vector_size_helper() in c-common.c).
12281 (make_vector): Make externally visible.
12282 * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12283
a466bea3
KH
122842004-02-10 Kazu Hirata <kazu@cs.umass.edu>
12285
12286 * config/h8300/h8300-protos.h: Add a prototype for
12287 h8300_regs_ok_for_stm.
12288 * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12289 * config/h8300/h8300.md (stm_h8300s_2_advanced,
12290 stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12291 stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12292 stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12293 ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12294 ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12295 ldm_h8300s_4_normal, ldm_h8300s_4): Use
12296 h8300_regs_ok_for_stm().
12297
52bac949
DS
122982004-02-10 Danny Smith <dannysmith@users.sourceforge.net>
12299
12300 PR c/14088
896c3aa3 12301 * real.c (real_from_string): Look for 'X' as well as 'x' in
52bac949
DS
12302 hexfloat strings.
12303
2493deee
KH
123042004-02-10 Kazu Hirata <kazu@cs.umass.edu>
12305
12306 * config/h8300/h8300.md: Remove an incorrect comment about
12307 peephole2. Add comments.
12308
fbe6ec81
JZ
123092004-02-10 Josef Zlomek <zlomekj@suse.cz>
12310
12311 PR/14058
12312 * emit-rtl.c (set_decl_incoming_rtl): New.
12313 * tree.h (set_decl_incoming_rtl): New.
12314 * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12315 DECL_INCOMING_RTL.
12316 * ada/misc.c (adjust_decl_rtl): Likewise.
12317
8a4baa83
PB
123182004-02-10 Per Bothner <per@bothner.com>
12319
12320 * c-opts.c (c_common_post_options): Don't emit working directory
12321 in cpp output if -P was specified.
12322
31cc6081
PB
123232004-02-10 Paolo Bonzini <bonzini@gnu.org>
12324
12325 PR c/14092
12326 * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12327 negate_expr back to the original type.
12328
d1d5c836
AM
123292004-02-10 Alan Modra <amodra@bigpond.net.au>
12330
12331 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12332 bump retaddr here.
12333
dad822d3
PB
123342004-02-10 Paolo Bonzini <bonzini@gnu.org>
12335
12336 * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12337 gen_lowpart_SUBREG): Move under the file in which they
12338 are actually declared.
12339
cd271054
AC
123402004-02-10 Arnaud Charlet <charlet@act-europe.fr>
12341
12342 * doc/sourcebuild.texi: Add libada documentation.
12343
12344 * doc/install.texi: Update documentation on Ada build, now
12345 that the GNAT lib and tools are built automatically.
12346
117c5858
RS
123472004-02-10 Richard Sandiford <rsandifo@redhat.com>
12348
12349 * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12350 && TARGET_IRIX.
12351
42a1b62e
ZL
123522004-02-09 Ziemowit Laski <zlaski@apple.com>
12353
12354 * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12355 boundaries outside build_component_ref() call (a macro in ObjC++).
12356
997b8b4d
BW
123572004-02-09 Bob Wilson <bob.wilson@acm.org>
12358
12359 * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12360 (init_cumulative_args): Likewise.
12361 (a7_overlap_mentioned_p): Delete prototype.
12362 * config/xtensa/xtensa.c (struct machine_function): Replace
12363 incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12364 Add set_frame_ptr_insn field.
12365 (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12366 (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12367 if the operand is an argument in a7. If so, copy a7 to a new pseudo
12368 at the function entry and replace the operand with the pseudo.
12369 (init_cumulative_args): Remove unused arguments. Add new "incoming"
12370 argument and record this flag in CUMULATIVE_ARGS.
12371 (function_arg): Remove result_mode and special-case code to handle
12372 arguments in a7. Instead, set need_a7_copy flag when there is an
12373 incoming argument in a7.
12374 (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12375 and use the value recorded in cfun->machine->set_frame_ptr_insn.
12376 (xtensa_builtin_saveregs): Check for negative gp_left value. Set
12377 need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
12378 special-case code.
12379 (a7_overlap_mentioned_p): Delete.
12380 * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12381 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12382 arguments to init_cumulative_args and pass "incoming" flag instead.
12383 (BLOCK_REG_PADDING): Delete.
12384 * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12385 checks for reload_in_progress and reload_completed. Update calls to
12386 xtensa_copy_incoming_a7.
12387 (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
12388 to call xtensa_copy_incoming_a7.
12389
10709fbf
DD
123902004-02-09 DJ Delorie <dj@redhat.com>
12391
12392 * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12393 longer modify standard_exec_prefix, standard_bindir_prefix, or
12394 standard_startfile_prefix.
12395
c76362b4
JW
123962004-02-09 James E Wilson <wilson@specifixinc.com>
12397
228ae085
JW
12398 PR c++/11295
12399 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12400 to expand_expr_real call, and pass in alt_rtl as last argument.
12401
c76362b4
JW
12402 PR libstdc++/5625
12403 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12404 * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12405 * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12406 * except.c (expand_builtin_extend_pointer): New.
12407 * except.h (expand_builtin_extend_pointer): Declare.
12408
d886a041
DE
124092004-02-09 David Edelsohn <edelsohn@gnu.org>
12410
12411 * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12412 unaligned loads and stores.
12413
756f76d0
RO
124142004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12415
12416 * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12417 * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12418
12419 * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12420 * config/mips/iris5.h: ... here.
12421 * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12422
12423 * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12424 * config/mips/iris5.h: ... here.
12425
426ca3ca
RO
124262004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12427
12428 * configure.ac: Remove default executable files before AC_PROG_CC.
12429 * configure: Regenerate.
12430
500fc80f
KH
124312004-02-09 Kazu Hirata <kazu@cs.umass.edu>
12432
12433 PR target/13721
12434 * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12435 print a operand other than a register.
12436
b83c4036
RS
124372004-02-09 Roger Sayle <roger@eyesopen.com>
12438
12439 * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12440 tree code rather than call fold_convert, which doesn't specify a
12441 default floating point to integer conversion.
12442
3b4b85c9
BI
124432004-02-08 Bernardo Innocenti <bernie@develer.com>
12444
12445 * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12446 code to support SGS assembler. Reformat adjacent code where possible.
b83c4036
RS
12447 * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12448 definition.
12449 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12450 for '%#'.
3b4b85c9 12451 * config/m68k/linux.h, config/m68k/m68k.c,
b83c4036
RS
12452 * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12453 macros and asm_printf() format strings.
3b4b85c9
BI
12454 * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12455 * config/m68k/linux.h: Update copyright.
12456 * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12457
01bbf777 124582004-02-08 Andreas Schwab <schwab@suse.de>
9f0e2d86 12459 Bernardo Innocenti <bernie@develer.com>
01bbf777
AS
12460
12461 * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12462 REGISTER_PREFIX.
12463 * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12464 frame pointer register, overridable by OS targets.
12465 * (M68K_REGNAME): Macro to obtain register name for asm output,
12466 eventually replacing %a6 with M68K_FP_REG_NAME.
12467 * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12468 * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12469 * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12470 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12471 * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12472
1f6acb82
KH
124732004-02-08 Kazu Hirata <kazu@cs.umass.edu>
12474
12475 * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12476 hook_rtx_tree_int_null.
12477 * targhooks.c (default_struct_value_rtx): Remove.
12478 * targhooks.h: Remove the prototype for
12479 default_struct_value_rtx.
12480 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12481 config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12482 config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12483 config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12484 config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12485 config/rs6000/rs6000.c, config/s390/s390.c,
12486 config/stormy16/stormy16.c, config/v850/v850.c,
12487 config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12488 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12489
b46b8fb4
JM
124902004-02-08 Joseph S. Myers <jsm@polyomino.org.uk>
12491
12492 * README.Portability: Change "ISO C89" to "ISO C90".
12493 * c-parse.in (primary, initelt): Likewise.
12494
7c476bde
RS
124952004-02-08 Richard Sandiford <rsandifo@redhat.com>
12496
12497 * real.c (encode_ibm_extended): Normalize the input value before
12498 converting it to a double. Handle the case where a normal value
12499 rounds to infinity.
12500
56ae04af
KH
125012004-02-08 Kazu Hirata <kazu@cs.umass.edu>
12502
f934561e
KH
12503 * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12504 warning.
56ae04af
KH
12505 * cse.c (preferrable): Change to preferable. Update all of its
12506 callers.
12507 * genautomata.c (ainsn): Change
12508 first_ainsn_with_given_equialence_num to
12509 first_ainsn_with_given_equivalence_num. Update all of its
12510 references.
12511
ec1dbfca
JH
125122004-02-08 Jan Hubicka <jh@suse.cz>
12513
12514 * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12515
f276fb54
DE
125162004-02-07 David Edelsohn <edelsohn@gnu.org>
12517
12518 * function.c (assign_parms): Fix formatting.
12519
fefcb65c
KH
125202004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12521
12522 * default.h (PROMOTE_PROTOTYPES): Remove.
12523 * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12524 STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12525 EXPAND_BUILTIN_SAVEREGS): Poison.
12526 * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12527 hook_bool_tree_false.
12528 (TARGET_PROMOTE_PROTOTYPES): Likewise.
12529 * target.h: Replace SETUP_INCOMING_VARARGS with
12530 targetm.calls.setup_incoming_varargs().
12531 * targhooks.c (default_promote_function_return): Remove.
12532 (default_promote_prototypes): Likewise.
12533 (default_struct_value_rtx): Always abort().
12534 (default_expand_builtin_saveregs): Always print an error
12535 message.
12536 (default_setup_incoming_varargs): Do nothing.
12537 (default_pretend_outgoing_varargs_named): Don't depend on
12538 SETUP_INCOMING_VARARGS.
12539 * targhooks.h: Remove the prototype for
12540 default_promote_function_return and
12541 default_promote_prototypes.
12542
dc79b3b8
KH
125432004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12544
12545 * system.h (SHARED_SECTION_ASM_OP): Poison.
12546 * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12547 * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12548
a6f78652
ZW
125492004-02-07 Zack Weinberg <zack@codesourcery.com>
12550
12551 Bug 13856
12552 * c-decl.c (diagnose_mismatched_decls): Only give special
12553 treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12554 is also true.
12555 (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12556 DECL_FUNCTION_CODE when defining a built-in function.
12557 Don't update DECL_ESTIMATED_INSNS.
12558 * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12559 FUNCTION_DECLs.
12560 * tree.h: Delete DECL_ESTIMATED_INSNS.
12561 * tree-inline.c (struct inline_data): Delete inlined_insns field.
12562 (expand_call_inline, optimize_inline_calls): Don't update
12563 DECL_ESTIMATED_INSNS nor inlined_insns.
12564 * cgraphunit.c (cgraph_analyze_function): Don't update
12565 DECL_ESTIMATED_INSNS.
12566
125672004-02-07 Zack Weinberg <zack@codesourcery.com>
12568
12569 * c-common.c (shadow_warning): Delete.
12570 * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12571 * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12572 * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12573 * c-parse.in (free_parser_stacks): Delete.
12574
947c6b00
NN
125752004-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
12576
12577 * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12578 config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12579 Use the top level mkinstalldirs, not the one in the gcc subdir.
12580 * mkinstalldirs: Remove (from the gcc subdir).
12581
088414c1
RS
125822004-02-07 Roger Sayle <roger@eyesopen.com>
12583
12584 PR middle-end/13696
12585 * fold-const.c (fold_convert): New function to provide type
12586 conversion to the middle-end without using convert.
12587 (negate_expr, associate_trees, size_diffop, omit_one_operand,
12588 operand_equal_for_comparison_p, pedantic_omit_one_operand,
12589 invert_truthvalue, optimize_bit_field_compare, range_binop,
12590 decode_field_reference, make_range, build_range_check, unextend,
12591 fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12592 fold_binary_op_with_conditional_arg, fold_inf_compare,
12593 fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12594 convert with calls to fold_convert.
12595
076963eb
JH
125962004-02-07 Jan Hubicka <jh@suse.cz>
12597
12598 * genrecog.c (find_operand): add extra argument stop.
12599 (validate_pattern): Verify that mach_dup is duplicating operand
12600 defined lexically earlier.
12601
1197924d
KH
126022004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12603
12604 * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12605 * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12606 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12607 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12608 config/ia64/ia64.h, config/ip2k/ip2k.h,
12609 config/iq2000/iq2000.h, config/mips/iris5.h,
12610 config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12611 config/rs6000/aix51.h, config/rs6000/aix52.h,
12612 config/rs6000/darwin.h, config/rs6000/rs6000.h,
12613 config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12614 config/sparc/linux.h, config/sparc/linux64.h,
12615 config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12616 config/xtensa/xtensa.h: Remove the definitions of
12617 MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12618 MAX_WCHAR_TYPE_SIZE.
12619 * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12620 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12621
883899ee
SC
126222004-02-07 Stephane Carrez <stcarrez@nerim.fr>
12623
12624 PR bootstrap/13990
12625 * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12626 gen_rtx_NE.
12627
f6e215cc
JZ
126282004-02-07 Josef Zlomek <zlomekj@suse.cz>
12629
12630 * var-tracking.c (vt_add_function_parameters): Surround checkings by
12631 #ifdef ENABLE_CHECKING and #endif.
12632
dfb36f9b
RS
126332004-02-07 Roger Sayle <roger@eyesopen.com>
12634
12635 * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12636 either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12637 (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12638 integer types and floating point with unsafe_math_optimizations.
12639 Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12640 Optimize A - B as A + (-B), if B is easily negated.
12641
0ea5865c
KH
126422004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12643
12644 * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12645 config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12646 config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12647 config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12648 Update copyright.
12649
fb0840fc
KH
126502004-02-07 Kazu Hirata <kazu@cs.umass.edu>
12651
12652 * c-ppoutput.c, var-tracking.c: Fix comment typos.
12653
468c45a3
JW
126542004-02-06 James E Wilson <wilson@specifixinc.com>
12655
12656 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12657 glibc 2.3 or better.
12658
9c917669
KH
126592004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12660
12661 * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12662 to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12663
fb7e4164
AM
126642004-02-07 Alan Modra <amodra@bigpond.net.au>
12665
12666 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12667 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12668 (SHLIB_MKMAP_OPTS): Delete.
12669 (TARGET_LIBGCC2_CFLAGS): Add -specs.
12670 (bispecs): Add rule.
12671 * config/rs6000/libgcc-ppc64.ver: New file.
12672 * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12673 (__floatdidf, __floatdisf): Optimize multiply.
12674 (__fixunstfdi): New function.
12675 * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12676 real and imag parts larger than one register.
12677 (function_arg): Correct type of reg used when fp arg split partially
12678 to stack.
12679 * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12680 and __MACH__ or __powerpc64__.
12681
254878ea
RS
126822004-02-06 Roger Sayle <roger@eyesopen.com>
12683 Ulrich Weigand <uweigand@de.ibm.com>
12684
12685 * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12686 of gen_highpart or gen_lowpart when the floating point format is
12687 wider than the result mode.
12688
b1053160
AP
126892004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
12690
a6f78652 12691 * dwarf2out.c (loclabel_num): Move into #ifdef
b1053160
AP
12692 DWARF2_DEBUGGING_INFO.
12693
25fe8680
ZL
126942004-02-06 Ziemowit Laski <zlaski@apple.com>
12695
12696 * objc/objc-act.c (build_super_template) the 'class' field of
12697 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12698 (get_super_receiver): Likewise.
12699
761fa0f7
KH
127002004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12701
12702 * reload1.c (check_eliminable_occurrences): Optimize the reset
12703 of can_eliminate.
12704 (eliminate_regs_in_insn): Likewise.
12705
0a2d3d69 127062004-02-06 Daniel Berlin <dberlin@dberlin.org>
a6f78652 12707 Josef Zlomek <zlomekj@suse.cz>
0a2d3d69
DB
12708
12709 * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12710 at the beginning of function, call dwarf2out_var_location for
12711 NOTE_INSN_VAR_LOCATION note.
12712 (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12713 decl_loc_table): New.
12714 (lookup_decl_loc): New function.
12715 (add_var_loc_to_decl): New function.
12716 (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12717 only if can_use_fbreg.
12718 (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12719 functions.
12720 (loc_descriptor): Likewise. Process VAR_LOCATION.
12721 (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12722 (loc_descriptor_from_tree): Call mem_loc_descriptor with
12723 can_use_fbreg == true.
12724 (add_location_or_const_value_attribute): Added parameter enum
12725 dwarf_attribute attr, generate attribute ATTR. Create the location list.
12726 (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12727 (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12728 with attr == DW_AT_location.
12729 (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12730 if frame_base_decl is defined and has a location list.
12731 (gen_variable_die): Call add_location_or_const_value_attribute with
12732 attr == DW_AT_location.
12733 (dwarf2out_var_location): New function.
12734 (dwarf2out_begin_function): New function.
12735 (dwarf2out_init): Create decl_loc_table.
12736
1f0db3df
UW
127372004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
12738
12739 * loop.c (force_movables): Transitively increase the priorities of
12740 all insns forces by an insn, not just the first one.
12741
014a1138 127422004-02-06 Josef Zlomek <zlomekj@suse.cz>
a6f78652 12743 Daniel Berlin <dberlin@dberlin.org>
014a1138
JZ
12744
12745 Josef Zlomek <zlomekj@suse.cz>
12746 * Makefile.in (var-tracking.o): New.
12747 * common.opt (fvar-tracking): New.
12748 * flags.h (flag_var_tracking): New.
12749 * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12750 * opts.c (common_handle_option): Add OPT_fvar_tracking.
12751 * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
a6f78652
ZW
12752 * rtl.c (note_insn_name): Likewise.
12753 * rtl.def (VAR_LOCATION): New.
12754 * rtl.h (NOTE_VAR_LOCATION): New.
12755 (NOTE_VAR_LOCATION_DECL): New.
12756 (NOTE_VAR_LOCATION_LOC): New.
12757 (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12758 (variable_tracking_main): New exported function.
12759 * timevar.def (TV_VAR_TRACKING): New.
12760 * toplev.c (enum dump_file_index): Added DFI_vartrack.
12761 (dump_file): "vartrack" was added (-dV).
12762 (flag_var_tracking): New.
12763 (f_options): "var-tracking" was added.
014a1138 12764 (rest_of_handle_variable_tracking): New function.
a6f78652 12765 (rest_of_compilation): Run variable tracking.
014a1138
JZ
12766 (process_options): If user has not specified flag_var_tracking set it
12767 according to optimize, debug_info_level and debug_hooks.
12768 * tree.h (frame_base_decl): New.
a6f78652 12769 * var-tracking.c: New file.
014a1138
JZ
12770 * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12771 (ia64_override_options): Set flags to run variable tracking in machine
12772 dependent reorg instead of toplev.c.
12773 (ia64_reorg): Run variable tracking if wanted.
a6f78652 12774 * doc/invoke.texi: Mention variable tracking in -dV,
014a1138 12775 add and -fvar-tracking.
a6f78652 12776 * doc/passes.texi: Added variable tracking pass.
014a1138
JZ
12777
12778 Daniel Berlin <dberlin@dberlin.org>
12779 * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12780 * dbxout.c (dbx_debug_hooks): Likewise.
12781 (xcoff_debug): Likewise.
12782 * debug.c (do_nothing_debug_hooks): Likewise.
12783 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12784 * dwarfout.c (dwarf_debug_hooks): Likewise.
12785 * sdbout.c (sdb_debug_hooks): Likewise.
12786 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
a6f78652
ZW
12787 * final.c (final_scan_insn): Call var_location debug hook for each
12788 NOTE_INSN_VAR_LOCATION.
014a1138 12789
298c28a8
JH
127902004-02-06 Jan Hubicka <jh@suse.cz>
12791
12792 * flow.c (update_life_info): Allocate reg_deaths when called from
12793 scheudler.
12794 (attempt_auto_inc): Update life ranges accordingly.
12795
3199cb41
UW
127962004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
12797
12798 PR debug/11816
12799 * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12800
1a6dd8a2
UW
128012004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
12802
12803 * cfganal.c (flow_call_edges_add): Never split a libcall block.
12804
1711adc2
DB
128052004-02-06 Daniel Berlin <dberlin@dberlin.org>
12806
12807 * dwarf2out.c (output_loc_list): Don't use deltas if we have
12808 a separate line info table in use.
12809 Use the correct size for terminators.
12810 (output_die): Use offset, not delta.
12811
b1e5a971
L
128122004-02-06 H.J. Lu <hongjiu.lu@intel.com>
12813
12814 * doc/invoke.texi: Remove the pni option from -mfpmath=.
12815
736b64dd
JH
128162004-02-06 Jan Hubicka <jh@suse.cz>
12817
12818 * recog.c (split_all_insns): Do not update reg info.
12819 * regrename.c (regrename_optimize): Likewise.
12820 * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12821 * flow.c (struct propagate_block_info): Add insn_num field.
12822 (reg_deaths): New array.
12823 (life_analysis): Free reg_deaths info.
12824 (allocate_reg_life_data): Allocate reg_deaths array.
12825 (propagate_one_insn): Use new array.
12826 (init_propagate_block): Initialize it.
12827 (free_propagate_block_info): Finish compuation of
12828 REG_LIVE_LENGTH
12829 (attempt_auto_inc): Sanity check that REG_INFO is not
12830 computed at same time.
12831 (mark_used_regs): Update new array.
12832
12833 * reg-stack.c (subst_stack_regs): Unshare clobbers before
12834 substitution.
12835
eb457a7a
KH
128362004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12837
12838 * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12839 *extendqisi2_short_displ.
12840
0f6937fe
AM
128412004-02-06 Alan Modra <amodra@bigpond.net.au>
12842
12843 * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12844 * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12845 (emit_library_call_value_1): Likewise pass nargs.
12846 * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12847 * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12848 * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12849 parameter instead of scanning TYPE_ARGS_TYPES to count args.
12850 * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12851 prototype.
12852 * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12853 (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12854 (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12855 * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12856 INIT_CUMULATIVE_ARGS.
12857 * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12858 * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12859 config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12860 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12861 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12862 config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12863 config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12864 config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12865 config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
07711f53 12866 config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
0f6937fe
AM
12867 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12868 config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12869
11b635fe
KH
128702004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12871
12872 * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12873 possible.
12874
ace3ffcd
KH
128752004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12876
12877 * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12878 note containing (plus (reg) (const_int)), where reg is an
12879 eliminable reg, then perform the register elimination without
12880 depending on eliminate_regs().
12881
78bc94a2
KH
128822004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12883
12884 * config/arc/arc.c (arc_return_in_memory): Check the return
12885 value of int_size_in_bytes against -1. Don't check
12886 TREE_ADDRESSABLE.
12887 * config/avr/avr.c (avr_return_in_memory): Check the return
12888 value of int_size_in_bytes against -1.
12889 * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12890 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12891 Likewise.
12892 * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12893 * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12894 Likewise.
12895
d8c2bed3
KH
128962004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12897
12898 * config/frv/frv-protos.h: Remove the prototype for
12899 frv_setup_incoming_varargs.
12900 * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12901 (frv_setup_incoming_varargs): Make it static.
12902 * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12903
3e29e2aa
KH
129042004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12905
12906 * config/fr30/fr30-protos.h: Remove the prototype for
12907 fr30_setup_incoming_varargs.
12908 Update the prototypes for fr30_num_arg_regs and
12909 fr30_function_arg_partial_nregs.
12910 * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12911 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12912 (fr30_setup_incoming_varargs): Make it static.
12913 Add argument second_time. Don't do anything when second_time
12914 is nonzero.
12915 (fr30_num_arg_regs): Change the type of the first argument to
12916 enum machine_mode.
12917 (fr30_function_arg_partial_nregs): Change the type of the
12918 second argument to enum machine_mode.
12919 * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12920 (SETUP_INCOMING_VARARGS): Remove.
12921
07ba2efb
KH
129222004-02-06 Kazu Hirata <kazu@cs.umass.edu>
12923
12924 * config/arc/arc-protos.h: Remove the prototype for
12925 arc_setup_incoming_varargs.
12926 * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12927 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12928 (arc_setup_incoming_varargs): Make it static.
12929 (arc_external_libcall): Likewise.
12930 * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
12931 Remove the commented-out definition of
12932 ASM_OUTPUT_EXTERNAL_LIBCALL.
12933
f4954ff1
ST
129342004-02-05 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
12935
12936 * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
12937 to $$(slibdir) in the installation commands.
12938
403c659c
DE
129392004-02-05 David Edelsohn <edelsohn@gnu.org>
12940
12941 * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
12942 with inner_regno, not regno.
12943 * rtlanal.c (refers_to_regno_p): Same.
12944
5b547172
KH
129452004-02-05 Kazu Hirata <kazu@cs.umass.edu>
12946
12947 * config.gcc: Remove i370 support.
12948
ce5c1cf3
KC
129492004-02-05 Kelley Cook <kcook@gcc.gnu.org>
12950
12951 * doc/install.texi: Update automake and autoconf version
12952 requirements. Note where to find gcj automake version.
12953
129542004-02-05 Kelley Cook <kcook@gcc.gnu.org>
12955
12956 * Makefile.in (generate-manpages): Move dependencies to ...
12957 (man): here.
12958 * doc/makefile.texi: Document new targets.
12959 * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
12960
02ba6b22
KC
129612004-02-05 Kelley Cook <kcook@gcc.gnu.org>
12962
12963 PR/13485
12964 Makefile.in (srcextra): Add a level of indirection to ...
12965 (gcc.srcextra): ... here.
12966 (po-generated): Delete.
12967 (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on
12968 options.c.
12969 (start.encap): Remove superfluous lang.srcextra dependency.
12970 objc/Make-lang.in (po-generated): Delete.
12971
66fcab25
KH
129722004-02-05 Kazu Hirata <kazu@cs.umass.edu>
12973
12974 * config/ia64/ia64.c (REG_GP): Remove.
12975
89a95129
RO
129762004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12977
12978 * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
12979
9733d507
DP
129802004-02-05 Devang Patel <dpatel@apple.com>
12981
12982 * dwarf2out.c (force_type_die): Look up input type itself
12983 instead of root_type() of type.
a6f78652 12984
19796784
AK
129852004-02-05 Andreas Krebbel <krebbel1@de.ibm.com>
12986
12987 * config/s390/s390.md ("*tmqidi_ext"): New insn.
12988 ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
12989 pre-reload splitters are transformed to post-reload
12990 define_insn_and_split patterns.
12991 ("*tmqisi_ext"): Renamed old "*tmqi_ext".
12992
136e64db
KH
129932004-02-05 Kazu Hirata <kazu@cs.umass.edu>
12994
12995 * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
12996 TARGET_PROMOTE_PROTOTYPES.
12997
839ee4bc
RO
129982004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12999
13000 PR middle-end/13750
13001 Revert:
13002 2004-01-15 Geoffrey Keating <geoffk@apple.com>
13003 PR pch/13361
13004 * c-typeck.c (constructor_asmspec): Delete.
13005 (struct initializer_stack): Delete field 'asmspec'.
13006 (start_init): Delete saving of asmspec.
13007 (finish_init): Don't update constructor_asmspec.
13008 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13009 * stmt.c (expand_asm): Duplicate strings from tree.
13010 (expand_asm_operands): Likewise.
13011 * tree.c (tree_size): Update computation of size of STRING_CST.
13012 (make_node): Don't make STRING_CST nodes.
13013 (build_string): Allocate string with tree node.
13014 * tree.def (STRING_CST): Update comment.
13015 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13016 (tree_string): Place contents of string in tree node.
13017 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13018 from tree.
13019
687d688e
JM
130202004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
13021
13022 * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13023 msgid.
13024
20a20bf0
DN
130252004-02-05 Dorit Naishlos <dorit@il.ibm.com>
13026
13027 * config/rs6000/altivec.md (*movv4si_internal): At least one
13028 operand must be altivec_register_operand.
13029 (*movv8hi_internal1): Likewise.
13030 (*movv16qi_internal1): Likewise.
13031 (*movv4sf_internal1): Likewise.
13032
6b37db3c
DE
130332004-02-05 David Edelsohn <edelsohn@gnu.org>
13034
13035 * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13036 * configure: Regenerate.
13037
e0b24bce
JW
130382004-02-05 Jonathan Wakely <redi@gcc.gnu.org>
13039
13040 * doc/install.texi: Update description of --gxx-include-dir to
13041 give correct default value.
13042
2dca8ddb
KH
130432004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13044
13045 * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13046 8 with MAC_REG.
13047
92fd5e41
KH
130482004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13049
13050 * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13051 gen_rtx_PARALLEL.
13052
f822fcf7
KH
130532004-02-05 Kazu Hirata <kazu@cs.umass.edu>
13054
13055 * emit-rtl.c: Update the comment about the file.
13056
4ef84575
JM
130572004-02-05 Joseph S. Myers <jsm@polyomino.org.uk>
13058
13059 * sourcebuild.texi (Test Idioms): Update testcase naming
13060 conventions.
13061
8e9ea4d7
PB
130622004-02-04 Per Bothner <per@bothner.com>
13063
13064 Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13065 * c-ppoutput.c (pp_dir_change): New function.
13066 * c-common.h (pp_dir_change): New declaration.
13067 * cpplib.h (struct cpp_options): Remove working_directory field.
13068 * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to
13069 (cpp_read_main_file): as before 10-01. Call _cpp_stack_file.
13070 Don't handle -fworking_directory here, but in c_common_post_options.
13071 (read_original_directory): Don't back up when done.
13072 Don't clear no-longer used working_directory flag.
13073 * cpplib.h: Update declarations to match.
13074 * c-lex.c (cb_dir_change): Move to c-opts.c.
13075 (init_c_lex): Don't set dir_change callback here, since we want
13076 to set it even if flag_preprocess_only.
13077 * c-opts.c (cb_dir_change): Function moved from c-lex.c.
13078 (c_common_post_options): Set dir_change callback.
13079 Call pp_dir_change if approporiate.
13080 (finish_options): Don't call cpp_find_main_file here. Hence remove
13081 unneeded parameter and result. Do LC_RENAME for <built-in>.
13082 (c_common_post_options): Call cpp_read_main_file here instead.
13083 (c_common_init): Update accordingly.
13084 (push_command_line_include): Don't cpp_push_main_file.
13085 Do LC_RENAME rather than LC_LEASE to get back to main file.
13086 Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13087 (c_common_parse_file): Call cpp_read_main_file for subsequent main
13088 files, but call finish_options for all files.
13089 * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory.
13090 * fix-header.c (read_scan_file): Call cpp_read_main_file instead of
13091 cpp_find_main_file + cpp_push_main_file.
13092 * c-lex.c (fe_file_change): Don't set main_input_filename here.
13093 * opts.c (handle_options): Only set main_input_filename first time.
13094
5384443a
ILT
130952004-02-05 Ian Lance Taylor <ian@wasabisystems.com>
13096
13097 * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13098
3c241c19
GK
130992004-02-04 Geoffrey Keating <geoffk@apple.com>
13100
13101 * reload.c (find_equiv_reg): When checking for register overlap,
13102 don't index hard_regno_nregs with a pseudo-reg.
13103
a322288b
UW
131042004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
13105
13106 * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13107
859b9c1d
DE
131082004-02-04 David Edelsohn <edelsohn@gnu.org>
13109
13110 * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13111 against FIRST_PSEUDO_REGISTER.
13112
7e63a64e
RO
131132004-02-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13114
13115 * Makefile.in: Move target, host overrides after per-language
13116 fragments.
13117
13118 * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13119 (GNATLIBCFLAGS): Remove -g.
13120
5efb1046
KH
131212004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13122
13123 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13124 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13125 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13126 config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13127 config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13128 config/sparc/sparc.c, config/vax/vax.c: Revert the
13129 replacements of "FALLTHRU" with "Fall through" done in the
13130 previous patch.
13131
ff482c8d
KH
131322004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13133
13134 * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13135 config/arm/arm.c, config/arm/arm.md,
13136 config/cris/cris-protos.h, config/fr30/fr30.c,
13137 config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13138 config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13139 config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13140 config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13141 config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13142 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13143 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13144 config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13145 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13146 config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13147 config/s390/s390.md, config/sparc/netbsd-elf.h,
13148 config/sparc/openbsd.h, config/sparc/sparc.c,
13149 config/xtensa/lib2funcs.S: Fix comment formatting.
13150
59b9a953
KH
131512004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13152
13153 * config/alpha/alpha.c, config/arc/arc.c,
13154 config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13155 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13156 config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13157 config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13158 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13159 config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13160 config/iq2000/iq2000.c, config/m32r/m32r.c,
13161 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13162 config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13163 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13164 config/rs6000/rs6000.h, config/sparc/sparc.c,
13165 config/vax/vax.c: Fix comment typos. Follow spelling
13166 conventions.
13167
e146f815
KH
131682004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13169
13170 * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13171 caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13172 ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13173 sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13174 config/arm/fpa.md, config/arm/iwmmxt.md,
13175 config/arm/netbsd-elf.h, config/arm/netbsd.h,
13176 config/m68hc11/m68hc11.md, config/mips/iris5.h,
13177 config/mn10300/mn10300.md, config/rs6000/altivec.md,
13178 config/sparc/netbsd-elf.h: Update copyright.
13179
e2a17f6e
EB
131802004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr>
13181
13182 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13183 for all modes whose size is greater than 8 bytes if ARCH32.
13184 (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13185 by reference if ARCH32.
13186
e0cc7f73 131872004-02-04 Aldy Hernandez <aldyh@redhat.com>
a6f78652
ZW
13188
13189 * cgraphunit.c (cgraph_postorder): Fix typo in comment.
e0cc7f73 13190
7bdff56f
UW
131912004-02-04 Ulrich Weigand <uweigand@de.ibm.com>
13192
13193 * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13194 to before adddi3 insn patterns.
13195 ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13196 "reload_insi"): Move to before addsi3 insn patterns.
13197
dd292d0a
MM
131982004-02-04 Mark Mitchell <mark@codesourcery.com>
13199
13200 * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13201 parameter. Use it instead of current_function_is_thunk.
13202 * function.h (struct function): Update documentation for is_thunk.
13203 * tree.h (CALL_FROM_THUNK_P): New macro.
13204 * config/alpha/alpha.c (alpha_sa_mask): Do not check
13205 no_new_pseudos when testing current_function_is_thunk.
13206 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13207
c2379679
KH
132082004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13209
13210 * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13211 TARGET_SETUP_INCOMING_VARARGS.
13212
a2a8cc44
KH
132132004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13214
13215 * emit-rtl.c (gen_rtx): Remove.
13216 * genattrtab.c: Don't mention gen_rtx in a comment.
13217 * rtl.h: Remove the prototype for gen_rtx.
13218 * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13219
f61c92c3
KH
132202004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13221
13222 * config/arc/arc.h, config/fr30/fr30.h
13223 (SETUP_INCOMING_VARARGS): Remove the target-independent
13224 comments.
13225 * doc/tm.texi: Don't mention deprecated target macros.
13226
c35c17c1
KH
132272004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13228
13229 * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13230 target-independent comment.
13231
cea28603
KH
132322004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13233
13234 * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13235 mention deprecated target macros.
13236
a4a4b1d3
KH
132372004-02-04 Kazu Hirata <kazu@cs.umass.edu>
13238
13239 * config.gcc: Remove obsolete ports and configurations.
13240 * config/linux-aout.h, config/netware.h,
13241 config/t-linux-gnulibc1, config/d30v/abi,
13242 config/d30v/d30v-protos.h, config/d30v/d30v.c,
13243 config/d30v/d30v.h, config/d30v/d30v.md,
13244 config/d30v/libgcc1.asm, config/d30v/t-d30v,
13245 config/dsp16xx/dsp16xx-modes.def,
13246 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13247 config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13248 config/i370/README, config/i370/i370-c.c,
13249 config/i370/i370-protos.h, config/i370/i370.c,
13250 config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13251 config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13252 config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13253 config/i386/moss.h, config/i386/netware.h,
13254 config/i386/svr3.ifile, config/i386/svr3dbx.h,
13255 config/i386/svr3gas.h, config/i386/svr3z.ifile,
13256 config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13257 config/i960/i960-c.c, config/i960/i960-coff.h,
13258 config/i960/i960-modes.def, config/i960/i960-protos.h,
13259 config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13260 config/i960/rtems.h, config/i960/t-960bare,
13261 config/m68k/hp310.h, config/m68k/hp320.h,
13262 config/m68k/hp320base.h, config/m68k/m68kv4.h,
13263 config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13264 Remove.
13265 * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13266 doc/md.texi: Remove mentions of obsolete ports.
13267
40e02b4a
JH
132682004-02-04 Jan Hubicka <jh@suse.cz>
13269
13270 * alias.c (find_base_term, get_addr): Do not dereference NULL
13271 pointer when all VALUE's locations has been invalidated.
13272 (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13273
a6f78652 132742004-02-03 Wolfgang Bangerth <bangerth@dealii.org>
1c02f6f2
WB
13275
13276 * doc/invoke.texi (x86 options): Fix spelling/wording.
13277
584e5527
RS
132782004-02-03 Richard Sandiford <rsandifo@redhat.com>
13279
13280 * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13281 put the original string in a comment.
13282 * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13283 * config/mips/mips.c (mips_output_ascii): Likewise.
13284 * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13285
9b2b3375
KH
132862004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13287
13288 * system.h (GIV_SORT_CRITERION): Poison.
13289 * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13290 * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13291
888d65b5
RS
132922004-02-03 Roger Sayle <roger@eyesopen.com>
13293
13294 PR target/9348
13295 * expr.c (expand_expr_real) <MULT_EXPR>: When performing widening
13296 multiplies with a multiplication of the wrong signedness, its the
13297 signedness of the multiplication that we've performed that needs to
13298 be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move
13299 if expand_mult_highpart_adjust places the result in target.
13300
a8c0bbc7
RH
133012004-02-03 Richard Henderson <rth@redhat.com>
13302
13303 * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13304
a8f0f22e
R
133052004-02-03 J"orn Rennecke <joern.rennecke@superh.com>
13306
13307 * config.gcc (sh[234]l): Use little endian fragments.
13308
e621b588
PK
133092004-02-03 Paul Koning <pkoning@equallogic.com>
13310
13311 * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13312 * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13313 * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13314 encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13315 floating point format.
13316 (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13317 the above functions.
13318 (output_move_quad): Output float values in correct target format.
13319 (legitimate_const_double_p): New function.
13320 * config/pdp11/pdp11.h: Fix typos.
13321 (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13322 (TARGET_FLOAT_FORMAT): Ditto.
13323 (pdp11_f_format, pdp11_d_format): Add external declarations.
13324 (MAX_REGS_PER_ADDRESS): Corrected.
13325 (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13326 (PRINT_OPERAND): Output float literals in target format.
13327
5a98fa7b
MM
133282004-02-03 Mark Mitchell <mark@codesourcery.com>
13329
13330 PR c++/13975
13331 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13332 TI_PRIVATE.
13333 (access_public_node): Redefine.
13334 (access_protected_node): Likewise.
13335 (access_private_node): Likewise.
13336 * tree.c (build_common_tree_nodes): Create access_public_node,
13337 access_protected_node, and access_private_node.
13338
0263e6bf
SE
133392004-02-03 Steve Ellcey <sje@cup.hp.com>
13340
13341 * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13342 (MASK_INLINE_INT_DIV_THR): Ditto.
13343 (MASK_INLINE_SQRT_LAT): Ditto.
13344 (MASK_INLINE_SQRT_THR): Ditto.
13345 (MASK_DWARF2_ASM): Ditto.
13346 (MASK_EARLY_STOP_BITS): Ditto.
13347
9b66ebb1
PB
133482004-02-02 Paul Brook <paul@codesourcery.com>
13349
13350 Merge from csl-arm-branch.
13351
13352 2004-01-30 Paul Brook <paul@codesourcery.com>
13353
13354 * aof.h (REGISTER_NAMES): Add vfp reg names
13355 (ADDITIONAL_REGISTER_NAMES): Ditto.
13356 * aout.h (REGISTER_NAMES): Ditto.
13357 (ADDITIONAL_REGISTER_NAMES): Ditto.
13358 * arm-protos.h: Update/Add Prototypes.
13359 * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13360 Only allow 0.0 for VFP.
13361 (fp_consts_inited): Rename from fpa_consts_inited. Update users.
13362 (values_fp): Rename from values_fpa. Update Users.
13363 (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13364 Update users. Only check valid constants for this hardware.
13365 (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users.
13366 Only allow consts for FPA.
13367 (arm_float_add_operand): Rename from fpa_add_operand. Update users.
13368 Only allow consts for FPA.
13369 (use_return_insn): Check for saved VFP regs.
13370 (arm_legitimate_address_p): Handle VFP DFmode addressing.
13371 (arm_legitimize_address): Ditto.
13372 (arm_general_register_operand): New function.
13373 (vfp_mem_operand): New function.
13374 (vfp_compare_operand): New function.
13375 (vfp_secondary_reload_class): New function.
13376 (arm_float_compare_operand): New function.
13377 (vfp_print_multi): New function.
13378 (vfp_output_fstmx): New function.
13379 (vfp_emit_fstm): New function.
13380 (arm_output_epilogue): Output VPF reg restore code.
13381 (arm_expand_prologue): Output VFP reg save code.
13382 (arm_print_operand): Add 'P'.
13383 (arm_hard_regno_mode_ok): Return modes for VFP regs.
13384 (arm_regno_class): Return classes for VFP regs.
13385 (arm_compute_initial_elimination_offset): Include space for VFP regs.
13386 (arm_get_frame_size): Ditto.
13387 * arm.h (FIXED_REGISTERS): Add VFP regs.
13388 (CALL_USED_REGISTERS): Ditto.
13389 (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13390 (FIRST_VFP_REGNUM): Define.
13391 (LAST_VFP_REGNUM): Define.
13392 (IS_VFP_REGNUM): Define.
13393 (FIRST_PSEUDO_REGISTER): Include VFP regs.
13394 (HARD_REGNO_NREGS): Handle VFP regs.
13395 (REG_ALLOC_ORDER): Add VFP regs.
13396 (enum reg_class): Add VFP_REGS.
13397 (REG_CLASS_NAMES): Ditto.
13398 (REG_CLASS_CONTENTS): Ditto.
13399 (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13400 (REG_CLASS_FROM_LETTER): Add 'w'.
13401 (EXTRA_CONSTRAINT_ARM): Add 'U'.
13402 (EXTRA_MEMORY_CONSTRAINT): Define.
13403 (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13404 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13405 (REGISTER_MOVE_COST): Ditto.
13406 (PREDICATE_CODES): Add arm_general_register_operand,
13407 arm_float_compare_operand and vfp_compare_operand.
13408 * arm.md (various): Rename as above.
13409 (divsf3): Enable when TARGET_VFP.
13410 (divdf3): Ditto.
13411 (movdfcc): Ditto.
13412 (sqrtsf2): Ditto.
13413 (sqrtdf2): Ditto.
13414 (arm_movdi): Disable when TARGET_VFP.
13415 (arm_movsi_insn): Ditto.
13416 (movsi): Only split with general regs.
13417 (cmpsf): Use arm_float_compare_operand.
13418 (push_fp_multi): Restrict to TARGET_FPA.
13419 (vfp.md): Include.
13420 * vfp.md: New file.
13421 * fpa.md (various): Rename as above.
13422 * doc/md.texi: Document ARM w and U constraints.
13423
13424 2004-01-15 Paul Brook <paul@codesourcery.com>
13425
13426 * config.gcc: Add with_fpu. Allow with-float=softfp.
13427 * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13428 Break out of loop when we find a float-abi. Fix typo.
13429 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13430 Set -mfloat-abi=.
13431 * doc/install.texi: Document --with-fpu.
13432
13433 2003-01-14 Paul Brook <paul@codesourcery.com>
13434
13435 * config.gcc (with_arch): Add armv6.
13436 * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13437 * config/arm/arm.c (arm_overrride_options): Ditto.
13438
13439 2004-01-08 Richard Earnshaw <rearnsha@arm.com>
13440
13441 * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13442 (FL_ARCH6): Renamed from FL_ARCH6J.
13443 (arm_arch3m): Renamed from arm_fast_multiply.
13444 (arm_arch6): Renamed from arm_arch6j.
13445 * arm.h: Update all uses of above.
13446 * arm-cores.def: Likewise.
13447 * arm.md: Likewise.
13448
13449 * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13450 not arm6j. Add entry for arch armv6.
13451
13452 2004-01-07 Richard Earnshaw <rearnsha@arm.com>
13453
13454 * arm.c (arm_emit_extendsi): Delete.
13455 * arm-protos.h (arm_emit_extendsi): Delete.
13456 * arm.md (zero_extendhisi2): Also handle zero-extension of
13457 non-subregs.
13458 (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13459 (thumb_zero_extendhisi2): Only match if not v6.
13460 (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13461 (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13462 (thumb_extendqisi2): Likewise.
13463 (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13464 (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13465 (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13466 (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13467 (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13468 (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13469 (arm_zero_extendhisi2addsi): Remove subreg. Add attributes.
13470 (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13471 (arm_extendqisi2addsi): Likewise.
13472
13473 2003-12-31 Mark Mitchell <mark@codesourcery.com>
13474
13475 Revert this change:
13476 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13477 + REG addressing modes.
13478
13479 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13480 + REG addressing modes.
13481
13482 2003-12-30 Mark Mitchell <mark@codesourcery.com>
13483
13484 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13485 CONSTANT_P_RTX.
13486
13487 2003-30-12 Paul Brook <paul@codesourcery.com>
13488
13489 * longlong.h: protect arm inlines with !defined (__thumb__)
13490
13491 2003-30-12 Paul Brook <paul@codesourcery.com>
13492
13493 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13494
13495 2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
13496
13497 * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13498 change.
13499
13500 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
13501
13502 * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13503 to the virtual incoming args pointer for downward stacks.
13504
13505 2003-12-29 Paul Brook <paul@codesourcery.com>
13506
13507 * config/arm/arm-cores.def: Add cost function.
13508 * config/arm/arm.c (arm_*_rtx_costs): New functions.
13509 (arm_rtx_costs): Remove
13510 (struct processors): Add rtx_costs field.
13511 (all_cores, all_architectures): Ditto.
13512 (arm_override_options): Set targetm.rtx_costs.
13513 (thumb_rtx_costs): New function.
13514 (arm_rtx_costs_1): Remove cases handled elsewhere.
13515 * config/arm/arm.h (processor_type): Add COSTS parameter.
13516
13517 2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
13518
13519 * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13520 (arm926ejs.md): Include it.
13521 * config/arm/arm926ejs.md: New pipeline description.
13522
13523 2003-12-24 Paul Brook <paul@codesourcery.com>
13524
13525 * config/arm/arm.c (arm_arch6j): New variable.
13526 (arm_override_options): Set it.
13527 (arm_emit_extendsi): New function.
13528 * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13529 * config/arm/arm.h (arm_arch6j): Declare.
13530 * config/arm/arm.md: Add sign/zero extend insns.
13531
13532 2003-12-23 Paul Brook <paul@codesourcery.com>
13533
13534 * config/arm/arm.c (all_architectures): Add armv6.
13535 * doc/invoke.texi: Document it.
13536
13537 2003-12-19 Paul Brook <paul@codesourcery.com>
13538
13539 * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify
13540 insn patterns to match.
13541 * config/arm/arm-generic.md: Ditto.
13542 * config/arm/cirrus.md: Ditto.
13543 * config/arm/fpa.md: Ditto.
13544 * config/amm/iwmmxt.md: Ditto.
13545 * config/arm/arm1026ejs.md: Ditto.
13546 * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses
13547 for 11_loadb.
13548
13549 2003-12-18 Nathan Sidwell <nathan@codesourcery.com>
13550
13551 * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13552 * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13553 TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13554 (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13555 arm_no_early_mul_dep): Correctly deal with conditional execution,
13556 parallels and single shift operations.
13557 (arm_no_early_alu_shift_value_dep): Define.
13558 * arm.md (attr type): Replace 'normal' with 'alu',
13559 'alu_shift' and 'alu_shift_reg'.
13560 (attr core_cycles): Adjust.
13561 (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13562 *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13563 *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13564 *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13565 *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13566 *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13567 *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13568 attribute appropriately.
13569 * config/arm/arm1026ejs.md (alu_op): Adjust.
13570 (alu_shift_op, alu_shift_reg_op): New.
13571 * config/arm/arm1136.md: Add better bypasses for early
13572 registers. Remove load[234] and store[234] bypasses.
13573 (11_alu_op): Adjust.
13574 (11_alu_shift_op, 11_alu_shift_reg_op): New.
13575
13576 2003-12-15 Nathan Sidwell <nathan@codesourcery.com>
13577
13578 * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13579 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13580 * config/arm/arm.c (arm_no_early_store_addr_dep,
13581 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13582 * config/arm/arm1026ejs.md: Add load-store bypass.
13583 * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13584 Add bypasses between instructions.
13585
13586 2003-12-10 Paul Brook <paul@codesourcery.com>
13587
13588 * config/arm/arm.c (arm_fpu_model): New variable.
13589 (arm_fload_abi): New variable.
13590 (target_fpe_name): Rename from target_fp_name.
13591 (target_fpu_name): New variable.
13592 (arm_is_cirrus): Remove.
13593 (fpu_desc): New struct.
13594 (all_fpus): Define.
13595 (pf_model_for_fpu): Define.
13596 (all_loat_abis): Define.
13597 (arm_override_options): Set fp arch flags based on -mfpu=
13598 and -float-abi=.
13599 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13600 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13601 (*): Use new TARGET_* flags.
13602 * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13603 (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13604 (TARGET_SOFT_FLOAT): Ditto.
13605 (TARGET_SOFT_FLOAT_ABI): New.
13606 (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies
13607 TARGET_HARD_FLOAT.
13608 (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13609 (TARGET_OPTIONS): Add -mfpu=.
13610 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13611 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13612 (arm_pf_model): Define.
13613 (arm_float_abi_type): Define.
13614 (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE
13615 * config/arm/arm.md: Use new TARGET_* flags.
13616 * config/arm/cirrus.md: Ditto.
13617 * config/arm/fpa.md: Ditto.
13618 * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13619 * config/arm/semi.h (ASM_SPEC): Ditto.
13620 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13621 (FPUTYPE_DEFAULT): Set to VFP.
13622 * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13623
13624 2003-11-22 Phil Edwards <phil@codesourcery.com>
13625
13626 PR target/12476
13627 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use
13628 'bx' instead of 'b' to avoid branch range restrictions. Output
13629 the thunk immediately before the thunked-to function.
13630 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit
13631 .thumb_func if a thunk is being generated. Emit .code 16 along
13632 with .thumb_func if a thunk is not being generated.
13633
13634 2003-11-15 Nicolas Pitre <nico@cam.org>
13635
13636 * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13637 arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13638 * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13639 (lshrdi3_iwmmxt): Renamed from lshrdi3.
13640 * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13641
13642 2003-11-12 Steve Woodford <scw@wasabisystems.com>
13643 Ian Lance Taylor <ian@wasabisystems.com>
13644
13645 * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13646 code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13647
13648 2003-11-05 Phil Edwards <phil@codesourcery.com>
13649
13650 * config/arm/arm.md (insn): Add new V6 instruction names.
13651 (generic_sched): New attr.
13652 * config/arm/arm-generic.md: Use generic_sched here.
13653 * config/arm/arm1026ejs.md: Do not model fetch/issue/decode
13654 stages of pipeline. Adjust latency counts accordingly.
13655 * config/arm/arm1136jfs.md: New file.
13656
13657 2003-10-28 Mark Mitchell <mark@codesourcery.com>
13658
13659 * config/arm/arm.h (processor_type): New enumeration type.
13660 (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13661 ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13662 (CPP_CPU_ARCH_SPEC): Likewise.
13663 * config/arm/arm.c (arm_tune): New variable.
13664 (all_cores): Use cores.def.
13665 (all_architectures): Add representative processor.
13666 (arm_override_options): Restructure way in which tuning
13667 information is deduced.
13668 * arm.md: Update "insn" and "type" attributes throughout.
13669 (insn): New attribute.
13670 (type): Compute "mult" from "insn" attribute. Add load2,
13671 load3, load4 alternatives.
13672 (arm automaton): Move to arm-generic.md.
13673 * config/arm/arm-cores.def: New file.
13674 * config/arm/arm-generic.md: Likewise.
13675 * config/arm/arm1026ejs.md: Likewise.
13676
60b85c4c
EB
136772004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr>
13678
13679 * doc/invoke.texi (SPARC options): Remove -mflat and
13680 all -mxxx (xxx:chip) options.
13681 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13682 * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13683 * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13684 * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13685 * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13686 * config/sparc/sparc.c: Likewise.
13687 (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13688 (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13689 (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13690 (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13691 (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13692 (sparc_flat_must_save_register_p): Likewise.
13693 (sparc_flat_compute_frame_size): Likewise.
13694 (sparc_flat_save_restore): Likewise.
13695 (sparc_flat_function_prologue): Likewise.
13696 (sparc_flat_function_epilogue): Likewise.
13697 (sparc_flat_epilogue_delay_slots): Likewise.
13698 (sparc_flat_eligible_for_epilogue_delay): Likewise.
13699 (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13700 * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13701 (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13702 (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13703 (CONDITIONAL_REGISTER_USAGE): Likewise.
13704 (FRAME_POINTER_REQUIRED): Likewise.
13705 (INITIAL_ELIMINATION_OFFSET): Likewise.
13706 (BASE_RETURN_VALUE_REG): Likewise.
13707 (BASE_OUTGOING_VALUE_REG): Likewise.
13708 (BASE_PASSING_ARG_REG): Likewise.
13709 (BASE_INCOMING_ARG_REG): Likewise.
13710 (INCOMING_REGNO): Likewise.
13711 (OUTGOING_REGNO): Likewise.
13712 (LOCAL_REGNO): Likewise.
13713 (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13714 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13715 (EPILOGUE_USES): Likewise.
13716 * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13717 ("flat" attribute): Delete.
13718 (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13719 handling.
13720 (call followed by jump define_peephole's): Delete.
13721 (exception_receiver): Likewise.
13722 (builtin_setjmp_receiver): Likewise.
13723 * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13724
e57e265b
PB
137252004-02-03 Paolo Bonzini <bonzini@gnu.org>
13726
13727 PR c/11658
13728 PR c/13994
13729 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13730 on langhooks.h.
13731 * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13732 * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13733 Include langhooks.h. Replace c_common_truthvalue_conversion
13734 with the truthvalue_conversion language hook throughout.
13735 (expr_no_commas): Call default_conversion before save_expr
13736 for the first term of the production 'x ? : y'.
13737 * c-common.c (c_common_truthvalue_conversion): Remove
13738 obsolete block. Invoke recursively the hook instead
13739 of this function.
13740 * c-convert.c (convert): handle ERROR_MARK_NODE.
13741 * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13742 returned by the truthvalue_conversion language hook.
13743 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13744 c_objc_common_truthvalue_conversion.
13745 * c-objc-common.c (c_objc_common_truthvalue_conversion):
13746 New function.
13747 * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13748 * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13749 c_objc_common_truthvalue_conversion.
13750
a7a2225a
KH
137512004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13752
13753 * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13754 of gen_rtx.
13755 (LIBCALL_VALUE): Likewise.
13756 * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13757 gen_rtx_CC0 instead of gen_rtx.
13758 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13759 gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13760 (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13761 gen_rtx.
13762 (m68hc11_emit_logical): Likewise.
13763
a556fd39
KH
137642004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13765
13766 * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13767 config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13768 config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13769 config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13770 config/mips/mips.md, config/mmix/mmix.c,
13771 config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13772 config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13773 config/rs6000/altivec.md, config/s390/s390.c,
13774 config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13775 config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13776 Use const0_rtx instead of GEN_INT (0). Do the same for other
13777 constants that are readily available.
13778
60c81c89
KH
137792004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13780
13781 * doloop.c, optabs.c, regmove.c, sched-deps.c,
13782 config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13783 instead of GEN_INT (0). Do the same for other constants that
13784 are readily available.
13785
2fb00d7f
KH
137862004-02-03 Kazu Hirata <kazu@cs.umass.edu>
13787
13788 * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13789 gen_rtx.
13790 * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13791 instead of gen_rtx.
13792 * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13793 gen_rtx.
13794 * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13795 gen_rtx_ASHIFT instead of gen_rtx.
13796 (udivmodqi4): Likewise.
13797
b0dccb00
RH
137982004-02-02 Richard Henderson <rth@redhat.com>
13799
a6f78652
ZW
13800 PR target/13789
13801 * expr.c (store_expr): Use force_operand before emit_move_insn.
b0dccb00 13802
3168cb99
JL
138032004-02-02 Jeff Law <law@redhat.com>
13804 Roger Sayle <roger@eyesopen.com>
13805
13806 * tree.c (commutative_tree_code, associative_tree_code): New
13807 functions.
13808 (iterative_hash_expr): Use commutative_tree_code.
13809 * tree.h (commutative_tree_code, associative_tree_code): Declare.
13810 * fold-const.c (operand_equal_p): Use commutative_tree_code
13811 rather than inlining the commutativity check.
13812 (fold): Likewise.
13813
040333a7
KH
138142004-02-02 Kazu Hirata <kazu@cs.umass.edu>
13815
13816 * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13817 * config/frv/frv-protos.h: Remove the prototype for
13818 frv_function_arg_keep_as_reference.
13819 * config/frv/frv.c (frv_function_arg_keep_as_reference):
13820 Remove.
13821 * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13822 * config/stormy16/stormy16.h: Remove the commented-out
13823 definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13824
79d69d75
AM
138252004-02-03 Alan Modra <amodra@bigpond.net.au>
13826
13827 PR target/13914
13828 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13829 for retaddr_column.
13830
600555f5
KH
138312004-02-02 Kazu Hirata <kazu@cs.umass.edu>
13832
13833 * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13834 gen_rtx.
13835
16dd5cfe 138362004-02-02 Eric Christopher <echristo@redhat.com>
a6f78652 13837 Zack Weinberg <zack@codesourcery.com>
16dd5cfe
EC
13838
13839 * c-opts.c (c_common_handle_option): Add -finput-charset.
a6f78652
ZW
13840 * c.opt: Ditto.
13841 * cppcharset.c (one_iso88591_to_utf8): Remove.
13842 (convert_iso88591_utf8): Ditto.
13843 (conversion_tab): Remove 8859-1 converter.
13844 (_cpp_input_to_utf8): Remove.
13845 (_cpp_init_iconv_buffer): Ditto.
13846 (_cpp_close_iconv_buffer): Ditto.
13847 (_cpp_convert_input): New function.
13848 (_cpp_default_encoding): Ditto.
13849 * cpphash.h: Add/remove prototypes for above.
13850 * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13851 * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13852 for narrow execution and input character sets.
13853 * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13854 * doc/cppopts.texi: Document -finput-charset.
16dd5cfe 13855
8ad0d964
DE
138562004-02-02 David Edelsohn <edelsohn@gnu.org>
13857
13858 * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13859 against FIRST_PSEUDO_REGISTER.
13860
238b11b5
EB
138612004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
13862
13863 * doc/invoke.texi (SPARC options): Further improve.
13864
0f4c242b
KH
138652004-02-02 Kazu Hirata <kazu@cs.umass.edu>
13866
13867 * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13868 config/h8300/h8300.c, config/ip2k/ip2k.md,
13869 config/iq2000/iq2000.c, config/mips/mips.c,
13870 config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13871 config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13872 config/v850/v850.md: Fix indentation.
13873
d560b0aa
EB
138742004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
13875
13876 * config/sparc/sparc.c (function_arg_slotno): Align TImode
13877 arguments on a 16-byte boundary in the parameter array if ARCH64.
13878 Split handling of TFmode.
13879
6f626d1b
PB
138802004-02-02 Paolo Bonzini <bonzini@gnu.org>
13881
13882 * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13883 Don't test CONSTANT_P (x).
13884 (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13885 ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13886 Fix misindentation.
13887
e789e9c4
EB
138882004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr>
13889
13890 * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13891
1c563bed
KH
138922004-02-02 Kazu Hirata <kazu@cs.umass.edu>
13893
13894 * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13895 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13896 config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13897 config/iq2000/iq2000.c, config/m32r/m32r.c,
13898 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13899 config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13900 config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13901 config/stormy16/stormy16.c, config/v850/v850.md,
13902 config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13903
67245ad3
KH
139042004-02-01 Kazu Hirata <kazu@cs.umass.edu>
13905
13906 * config/mcore/mcore.c (block_move_sequence): Replace
13907 gen_rtx_CONST_INT with GEN_INT.
13908
66fd46b6
JH
139092004-02-02 Jan Hubicka <jh@suse.cz>
13910
13911 * alias.c (record_set): Use hard_regno_nregs.
13912 * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13913 * builtins.c (apply_args_size): Likewise.
13914 * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13915 mark_set_regs, add_stored_regs, mark_referenced_regs,
13916 insert_restore, insert_save, insert_one_insn): Likewise.
13917 * cfgcleanup.c: Include regs.h
13918 (mark_effect, mentions_nonequal_regs): Likewise.
13919 * cfgrtl.c (mark_killed_regs): Likewise
13920 * combine.c (update_table_tick, record_value_for_reg,
13921 record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13922 reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13923 reg_bitfield_target_p, distribute_notes): Likewise.
13924 * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13925 exp_equiv_p, cse_insn): Likewise.
13926 * cselib.c (cselib_lookup): Likewise.
13927 (cselib_invalidate_regno, cselib_record_set): Likewise.
13928 * df.c (df_ref_record): Likewise.
13929 * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
13930 Likewise.
13931 * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
13932 count_or_remove_death_notes_bb): Likewise.
13933 * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
13934 * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
13935 mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
13936 * integrate.c (mark_stores): Likewise.
13937 * jump.c (delete_prior_computation): Likewise.
13938 * lcm.c (reg_dies, reg_becomes_live): Likewise.
13939 * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
13940 * loop.c (LOOP_REGNO_NREGS): Likewise.
13941 * postreload.c (reload_combine, reload_combine_note_store,
13942 reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
13943 * ra-colorize.c (combine, color_usable_p, get_free_reg,
16dd5cfe 13944 calculate_dont_begin, calculate_dont_begin, colorize_one_web,
66fd46b6
JH
13945 try_recolor_web, insert_coalesced_conflicts, check_colors,
13946 break_precolored_alias): Likewise.
13947 * ra-debug.c: Include regs.h
13948 (ra_print_rtx_object): Likewise.
13949 * ra-rewrite (choose_spill_colors): Likewise.
13950 (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
13951 * ra.c (init_ra): Likewise.
13952 * recog.c (reg_fits_class_p, peep2_reg_dead_p,
13953 peep2_find_free_register): Likewise.
13954 * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
13955 * regclass.c (hard_regno_nregs): New array.
13956 (init_reg_modes_once): Initialize it.
13957 (choose_hard_reg_mode): Use it.
13958 (record_reg_classes): Likewise.
13959 * regmove.c (mark_flags_life_zones): Likewise.
13960 * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
13961 scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
13962 copy_value, maybe_mode_change, find_oldest_value_reg,
13963 copyprop_hardreg_forward_1):
13964 * regs.h (hard_regno_nregs): Declare.
13965 * realod.c (reload_inner_reg_of_subreg): Use it.
13966 (push_reload, combine_reloads, find_dummy_reload,
13967 hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
13968 refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
13969 reload_adjust_reg_for_mode): Likewise.
13970 * reload1.c (compute_use_by_pseudos, count_pseudo,
13971 count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
13972 spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
13973 clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
13974 allocate_reload_reg, choose_reload_regs, emit_reload_insns,
13975 delete_output_reload): Likewise.
13976 * resource.c (update_live_status, mark_referenced_resources,
13977 mark_set_resources, mark_target_live_regs): Likewise.
13978 * rtlanal.c: Include regs.h
13979 (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
13980 dead_or_set_regno_p, find_regno_note, find_reg_fusage,
13981 subreg_regno_offset, subreg_offset_representable_p,
13982 hoist_test_store): Likewise.
13983 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
13984 * sched-rgn.c (check_live_1, update_live_1): Likewise.
13985 * stmt.c: Include regs.h
13986 (decl_conflicts_with_clobbers_p): Likewise.
13987 * varasm.c (make_decl_rtl): Likewise.
13988 * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
13989
f1c25d3b
KH
139902004-02-01 Kazu Hirata <kazu@cs.umass.edu>
13991
13992 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
13993 config/arm/linux-gas.h, config/arm/netbsd-elf.h,
13994 config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
13995 config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
13996 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
13997 config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13998 config/iq2000/iq2000.h, config/m32r/m32r.c,
13999 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14000 config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14001 config/mcore/mcore.c, config/mcore/mcore.h,
14002 config/mcore/mcore.md, config/mips/mips.c,
14003 config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14004 config/rs6000/rs6000.c, config/s390/s390.c,
14005 config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14006 config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14007 "gen_rtx (FOO, " with "gen_rtx_FOO (".
14008
e0a24727
KH
140092004-02-01 Kazu Hirata <kazu@cs.umass.edu>
14010
14011 * config/h8300/h8300.md (two peephole2's): New.
14012
5202c5fe
EB
140132004-02-01 Eric Botcazou <ebotcazou@libertysurf.fr>
14014
14015 * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14016 (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14017 (ASM_CPU_SPEC): Likewise
14018 * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14019 (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3.
14020
13b59849
RS
140212004-02-01 Roger Sayle <roger@eyesopen.com>
14022
14023 * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14024 isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14025 (expand_builtin): Always call expand_builtin_pow.
14026
ef79730c
RS
140272004-02-01 Roger Sayle <roger@eyesopen.com>
14028
14029 * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14030 BUILT_IN_SIGNBITL): New GCC builtins.
14031 * builtins.c (expand_builtin_signbit): New function to RTL expand
14032 calls to signbit, signbitf and signbitl as inline intrinsics.
14033 (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14034 (fold_builtin_signbit): New function to perform constant folding
14035 of signbit, signbitf and signbitl.
14036 (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14037
14038 * doc/extend.texi: Document new signbit{,f,l} builtins.
14039
a80cdb0f
RS
140402004-02-01 Richard Sandiford <rsandifo@redhat.com>
14041
14042 * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14043
2efe2033
CD
140442004-02-01 Chris Demetriou <cgd@broadcom.com>
14045
14046 * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14047 "mips_const_double_ok" and "simple_memory_operand", which were
14048 removed from the MIPS port with the mips-3_4-rewrite branch merge.
14049 * config/mips/mips.c (mips16_lay_out_constants): Update comment
14050 for removal of simple_memory_operand.
14051
d37eb705
KH
140522004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14053
14054 * config/c4x/c4x.md: Use GEN_INT instead of
14055 gen_rtx (CONST_INT, ...).
14056
fadeed3b
RH
140572004-01-31 Richard Henderson <rth@redhat.com>
14058
14059 * varasm.c (output_constant_pool): Don't zap the pool.
14060
ccdc1703
KH
140612004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14062
14063 * genrecog.c (decision_type): Add DT_const_int.
14064 (write_cond) [DT_const_int]: Print a comparison against small
14065 constant.
14066 (write_node): Simplify comparisons against small constants
14067 before printing tests.
16dd5cfe 14068
aeba8f80
KH
140692004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14070
14071 * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14072 instead of gen_rtx_CONST_INT.
14073
400ce94c
KH
140742004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14075
14076 * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14077 instead of gen_rtx_CONST_INT.
14078
8dfa8fcd
KH
140792004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14080
14081 * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14082 hook_bool_CUMULATIVE_ARGS_false.
14083 * targhooks.c (default_strict_argument_naming): Rename to
14084 hook_bool_CUMULATIVE_ARGS_false.
14085 * targhooks.h: Update the prototype for
14086 default_strict_argument_naming.
14087
c0d4e710
KH
140882004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14089
14090 * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14091 * config/sh/sh.h: Likewise.
14092 * config/sh/sh.md: Likewise.
14093
fdf064f2
EB
140942004-01-31 Eric Botcazou <ebotcazou@libertysurf.fr>
14095
14096 * doc/invoke.texi (SPARC options): Restructure and update.
14097
b602b7b6
KH
140982004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14099
14100 * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14101 STRICT_ARGUMENT_NAMING): Poison.
14102 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14103 hook_bool_tree_false.
14104 * targhooks.c (default_promote_function_args): Remove.
14105 (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14106 Don't check incoming.
14107 (default_strict_argument_naming): Don't use
14108 STRICT_ARGUMENT_NAMING.
14109 * targhooks.h: Remove the prototype for
14110 default_promote_function_args.
14111
a0524eb3
KH
141122004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14113
14114 * config/i386/i386-protos.h: Remove the prototype for
14115 ix86_setup_incoming_varargs.
14116 * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14117 (ix86_setup_incoming_varargs): Make it static.
14118 * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14119
a457ee07
KH
141202004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14121
14122 * alloc-pool.c: Fix comment typos.
14123 * builtin-types.def: Likewise.
14124 * builtins.def: Likewise.
14125 * c-pretty-print.c: Likewise.
14126 * df.h: Likewise.
14127 * reload1.c: Likewise.
14128
a451b0bd
KH
141292004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14130
14131 * doc/invoke.texi: Follow spelling conventions.
14132 * doc/tm.texi: Likewise.
14133
e53e0c56
KH
141342004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14135
14136 * doc/install.texi: Fix typos.
14137 * doc/invoke.texi: Likewise.
14138
025b17a4
UW
141392004-01-31 Ulrich Weigand <uweigand@de.ibm.com>
14140
14141 * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14142 registers as pointers.
14143 * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14144
4de249d9
PB
141452004-01-31 Paolo Bonzini <bonzini@gnu.org>
14146
c53bdcf5 14147 * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
4de249d9
PB
14148 and restore it to gen_lowpart_general on exit.
14149 (gen_lowpart_for_combine): Adjust all callers to go through
14150 gen_lowpart.
14151 * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14152 and restore it to gen_lowpart_general on exit.
14153 (gen_lowpart_if_possible): Adjust all callers to go through
14154 gen_lowpart.
14155 * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14156 (gen_lowpart): Declare as pointer to function, initialized to
14157 gen_lowpart_general.
14158 * rtl.h (gen_lowpart): Declare as pointer to function.
14159
f84d109f
KH
141602004-01-31 Kazu Hirata <kazu@cs.umass.edu>
14161
14162 * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14163 * calls.c: Likewise.
14164 * emit-rtl.c: Likewise.
14165 * function.c: Likewise.
14166 * reload1.c: Likewise.
14167 * config/i386/cygming.h: Likewise.
14168 * config/i386/i386.c: Likewise.
14169 * config/i386/winnt.c: Likewise.
14170
354b7da5
DH
141712004-01-30 Dara Hazeghi <dhazeghi@yahoo.com>
14172
14173 PR bootstrap/9249
14174 * doc/install.texi: document --enable-__cxa_atexit option.
14175 * configure.ac: Disable __cxa_atexit if not supported.
14176 * configure: Regenerate.
14177
9781b6da
DB
141782003-01-30 Daniel Berlin <dberlin@dberlin.org>
14179
14180 * ggc-zone.c (ggc_free): New function.
14181
283334f0
KH
141822004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14183
14184 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14185 cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14186 flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14187 ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14188 tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14189 config/alpha/alpha.c, config/alpha/alpha.h,
14190 config/alpha/alpha.md, config/alpha/unicosmk.h,
14191 config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14192 config/c4x/c4x-protos.h, config/c4x/c4x.md,
14193 config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14194 config/frv/frvend.c, config/i386/cygming.h,
14195 config/i386/djgpp.h, config/i386/emmintrin.h,
14196 config/i386/gthr-win32.c, config/i386/i386-interix.h,
14197 config/i386/i386-protos.h, config/i386/openbsd.h,
14198 config/i386/winnt.c, config/i386/xm-mingw32.h,
14199 config/i386/xmmintrin.h, config/ia64/ia64.md,
14200 config/iq2000/iq2000.md, config/m32r/m32r.md,
14201 config/m68k/m68k.md, config/mcore/mcore-elf.h,
14202 config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14203 config/mips/iris5gas.h, config/mips/iris6.h,
14204 config/mips/iris6gas.h, config/mips/linux.h,
14205 config/mips/mips.md, config/mips/netbsd.h,
14206 config/mips/openbsd.h, config/mips/windiss.h,
14207 config/pa/fptr.c, config/rs6000/aix.h,
14208 config/rs6000/altivec.h, config/rs6000/darwin.h,
14209 config/rs6000/xcoff.h, config/s390/s390-protos.h,
14210 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14211 config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14212 config/sparc/sol2.h: Update copyright.
14213
71cbe2c1
KC
142142004-01-30 Kelley Cook <kcook@gcc.gnu.org>
14215
14216 * Makefile.in (abs_docdir, abs_srcdir): Define.
14217 (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14218
bfb2d661
KH
142192004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14220
14221 * genconfig.c (main): Have CC0_P check its operand even on a
14222 target without cc0.
14223
bd5bd7ac
KH
142242004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14225
14226 * config/alpha/alpha.c: Remove mentions of deprecates macros
14227 in comments, remove some target-independent comments about target
14228 macros, and/or add minimal function comments for target hook
14229 implementations.
14230 * config/avr/avr.c: Likewise.
14231 * config/ia64/ia64.h: Likewise.
14232 * config/ip2k/ip2k.c: Likewise.
14233 * config/iq2000/iq2000.c: Likewise.
14234 * config/m32r/m32r.h: Likewise.
14235 * config/m68hc11/m68hc11.c: Likewise.
14236 * config/mcore/mcore.c: Likewise.
14237 * config/mmix/mmix.c: Likewise.
14238 * config/mn10300/mn10300.c: Likewise.
14239 * config/pa/pa.c: Likewise.
14240 * config/pdp11/pdp11.c: Likewise.
14241 * config/rs6000/rs6000.h: Likewise.
14242 * config/sh/sh.c: Likewise.
14243 * config/sh/sh.h: Likewise.
14244 * config/sparc/sparc.c: Likewise.
14245 * config/sparc/sparc.h: Likewise.
14246 * config/stormy16/stormy16.c: Likewise.
14247 * config/xtensa/xtensa.c: Likewise.
14248
808ededc
UW
142492004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
14250
14251 PR optimization/12147
14252 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14253 RELOAD_FOR_OPADDR_ADDR.
14254 (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14255 might be reused as RELOAD_FOR_OPADDR_ADDR register.
14256
98e5e087
JH
142572004-01-30 Jan Hubicka <jh@suse.cz>
14258
bd5bd7ac 14259 * reload.c (get_secondary_mem): Fix updating of
98e5e087
JH
14260 secondary_memlocs_elim_used.
14261
3234b52d
RH
142622004-01-30 Richard Henderson <rth@redhat.com>
14263
14264 * varasm.c (struct rtx_const, struct pool_constant): Remove.
14265 (MAX_RTX_HASH_TABLE): Remove.
14266 (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14267 (first_pool, last_pool, pool_offset): Remove.
14268 (struct rtx_constant_pool): Split out from ...
14269 (struct varasm_status): ... here. Reference one via pointer.
14270 (struct constant_descriptor_rtx): Merge struct pool_constant.
14271 (SYMHASH): Remove.
14272 (decode_rtx_const): Remove.
14273 (const_hash_rtx, compare_constant_rtx): Remove.
14274 (record_constant_rtx): Remove.
14275 (const_desc_rtx_hash, const_desc_rtx_eq): New.
14276 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14277 (const_rtx_hash_1, const_rtx_hash): New.
14278 (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14279 (simplify_subtraction): Use simplify_rtx.
14280 (force_const_mem): Rewrite to use new data structures.
14281 (find_pool_constant): Likewise.
14282 (get_pool_constant, get_pool_constant_mark,
14283 get_pool_constant_for_function, get_pool_mode,
14284 get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14285 (output_constant_pool_2): Split out from output_constant_pool.
14286 (output_constant_pool_1): Likewise. Use new pool datastructures.
14287 (output_constant_pool): Zap entire pool datastructure.
14288 (mark_constant): Use new pool datastructures.
14289 (mark_constants): Use for_each_rtx.
14290 (mark_constant_pool): Use new pool datastructures.
14291
be77d9e7 142922004-01-30 Fariborz Jahanian <fjahanian@apple.com>
16dd5cfe 14293
a6f78652 14294 * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
be77d9e7
FJ
14295 Copy operands[1] to pseudo for simplify_gen_subreg.
14296
f0cad2d5
KH
142972004-01-30 Kazu Hirata <kazu@cs.umass.edu>
14298
14299 * gcse.c (bypass_block): Fix a typo in the previous check-in
14300 to the file.
14301
40ca90bf
AP
143022004-01-30 Andrew Pinski <pinskia@physics.uc.edu>
14303
14304 * toplev.c: Include alloc-pool.h.
16dd5cfe 14305 * Makefile.in (toplev.c): Update dependencies.
40ca90bf 14306
39a44a4e
RK
143072004-01-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14308
14309 * combine.c (simplify_shift_const, case XOR): Be careful when
14310 commuting XOR with ASHIFTRT.
14311
3e2cc1d1 143122004-01-30 Kazu Hirata <kazu@cs.umass.edu>
a6f78652 14313 Eric Botcazou <ebotcazou@libertysurf.fr>
3e2cc1d1
KH
14314
14315 * config/sparc/sparc-protos.h: Remove the prototype for
14316 sparc_builtin_saveregs.
14317 * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14318 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14319 (TARGET_PROMOTE_PROTOTYPES): Likewise.
14320 (TARGET_STRUCT_VALUE_RTX): Likewise.
14321 (TARGET_RETURN_IN_MEMORY): Likewise.
14322 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14323 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14324 (sparc_builtin_saveregs): Make it static.
14325 (sparc_promote_prototypes): New.
14326 (sparc_struct_value_rtx): Likewise.
14327 (sparc_return_in_memory): Likewise.
14328 * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14329 (PROMOTE_FUNCTION_RETURN): Likewise.
14330 (RETURN_IN_MEMORY): Likewise.
14331 (STRUCT_VALUE): Likewise.
14332 (STRUCT_VALUE_INCOMING): Likewise.
14333 (EXPAND_BUILTIN_SAVEREGS): Likewise.
14334 (STRICT_ARGUMENT_NAMING): Likewise.
14335 (PROMOTE_PROTOTYPES): Likewise.
14336
14337 * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14338
5e9295fa
EB
143392004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
14340
14341 PR c/12818
14342 * varasm.c (const_hash_1) <STRING_CST>: Use the
14343 address to compute the hash value if flag_writable_strings.
14344 (compare_constant) <STRING_CST>: Compare the addresses
14345 if flag_writable_strings.
14346 (build_constant_desc): Do not copy the expression for a
14347 STRING_CST if flag_writable_strings.
14348
1f2eae8d
JH
143492004-01-30 Jan Hubicka <jh@suse.cz>
14350
1e0f41c9
JH
14351 * alloc-pool.c: Include hashtab.h
14352 (alloc_pool_descriptor): New structure
14353 (alloc_pool_hash): New global variable.
14354 (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14355 (create_alloc_pool): Update statistics.
14356 (free_alloc_pool): Likewise.
14357 (pool_alloc): Likewise.
14358 (output_info): New structure
14359 (print_statistics, dump_alloc_pool_statistics): New function.
14360 * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14361 (dump_alloc_pool_statistics): Declare.
14362 * toplev.c (finalize): Dump statistics.
14363
1f2eae8d
JH
14364 * reload.c (secondary_memlocs_elim_used): New static variable.
14365 (get_secondary_mem): Update it.
14366 (find_reloads): Use it.
14367
80a08664
SB
143682004-01-30 Steven Bosscher <s.bosscher@student.tudelft.nl>
14369
14370 * toplev.c: Fix broken checkin of 2003-12-30, again.
14371
57116d8d
UW
143722004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
14373
14374 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14375 s390*-*-* targets by specifying a 'nop' insn.
14376 * configure: Regenerate.
14377
5fddd9fe
EB
143782004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
14379
14380 PR target/11475
14381 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14382
64fc7c00
JJ
143832004-01-29 Jakub Jelinek <jakub@redhat.com>
14384
14385 * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14386 of addr when creating MEM copy.
14387
ed672aa8
DP
143882004-01-29 Devang Patel <dpatel@apple.com>
14389
14390 * dwarf2out.c (gen_field_die): Do not equate decl number to die.
16dd5cfe 14391
7e3aa041
ILT
143922004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
14393
14394 PR inline-asm/6162
14395 * reload.c (find_reloads): Only support one pair of commutative
14396 operands.
14397
06f12aa0
RS
143982004-01-29 Roger Sayle <roger@eyesopen.com>
14399
14400 PR java/13824
14401 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14402 as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14403 recursion.
14404
b88cf82e
KH
144052004-01-29 Kazu Hirata <kazu@cs.umass.edu>
14406
14407 * config/frv/frv.c: Don't mention deprecated macros in
14408 comments. Remove some target-independent comments about
14409 target macros.
14410 * config/frv/frv.h: Likewise.
14411
3ae4a5b1
ZD
144122004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14413
14414 * cfghooks.c (split_block): Set probability and count of the
14415 new edge.
14416
636c7bc4
JZ
144172005-01-29 Josef Zlomek <zlomekj@suse.cz>
14418
14419 * dwarf2out.c (struct die_struct): Added field decl_id.
14420 (decl_die_table): Changed to hash table.
14421 (decl_die_table_allocated): Deleted.
14422 (decl_die_table_in_use): Deleted.
14423 (DECL_DIE_TABLE_INCREMENT): Deleted.
14424 (decl_die_table_hash): New function.
14425 (decl_die_table_eq): New function.
14426 (lookup_decl_die): Lookup in a hash table.
14427 (equate_decl_number_to_die): Insert into a hash table.
14428 (dwarf2out_init): Init hash table decl_die_table.
14429
4e44c1ef
JJ
144302004-01-29 Jakub Jelinek <jakub@redhat.com>
14431
14432 PR optimization/13424
14433 * expr.c (store_constructor): Revert 2003-12-03 change.
14434
14435 * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14436 expected before returning early. Avoid sharing RTL if they
14437 need to be changed.
14438
14439 * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14440 handling so that memory attributes are preserved. Don't call
14441 ix86_set_move_mem_attrs.
14442 (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14443 (ix86_expand_clrstr): Rename src argument to
14444 dst. Rework rep_stos and strset handling so that memory attributes
14445 are preserved.
14446 (ix86_expand_strlen): Pass src argument to
14447 ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that
14448 memory attributes are preserved.
14449 (ix86_expand_strlensi_unroll_1): Add src argument. Use
14450 change_address instead of gen_rtx_MEM.
14451 * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14452 expanders.
14453 (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14454 strmovqi, strmovqi_rex64): Remove.
14455 (rep_mov*, strmov*): Prefix insn names with *.
14456 (strset, strset_singleop, rep_stos): New expanders.
14457 (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14458 strsetqi, strsetqi_rex64): Remove.
14459 (rep_stos*, strset*): Prefix insn names with *.
14460 (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode
14461 to SImode.
14462 (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14463 are preserved.
14464 (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14465 Prefix insn names with *.
14466 (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14467 (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14468 (strlenqi_1): New expander.
14469 * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14470
f470c378
ZD
144712004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
14472
14473 * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14474 * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14475 verify_flow_info): Declaration removed.
14476 * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14477 (debug_bb, debug_bb_n): Add argument to dump_bb call.
14478 * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14479 try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14480 instead of delete_block.
14481 * cfghooks.c: Include timevar.h and toplev.h.
14482 (cfg_hooks): Define here.
14483 (verify_flow_info, dump_bb): Moved from cfg.c.
14484 (redirect_edge_and_branch, redirect_edge_and_branch_force,
14485 split_block, split_block_after_labels, move_block_after,
14486 delete_basic_block, split_edge, create_basic_block,
14487 create_empty_bb, can_merge_blocks_p, merge_blocks,
14488 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14489 New functions.
14490 * cfghooks.h (struct cfg_hooks): Added fields name,
14491 make_forwarder_block, tidy_fallthru_edge and
14492 move_block_after. Changed type of verify_flow_info, dump_bb,
14493 split_block fields. Renamed cfgh_split_edge and delete_block
14494 fields.
14495 (redirect_edge_and_branch, redirect_edge_and_branch_force,
14496 split_block, delete_block, split_edge, create_basic_block,
14497 can_merge_blocks_p, merge_blocks): Macros removed.
14498 (cfg_hooks): Do not export.
14499 (verify_flow_info, dump_bb, redirect_edge_and_branch,
14500 redirect_edge_and_branch_force, split_block, split_block_after_labels,
14501 move_block_after, delete_basic_block, split_edge, create_basic_block,
14502 create_empty_bb, can_merge_blocks_p, merge_blocks,
14503 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14504 Declare.
14505 (cfg_layout_rtl_cfg_hooks): Declare.
14506 * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14507 New functions.
14508 (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14509 (redirect_edge_with_latch_update): Removed.
14510 (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14511 * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14512 * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14513 rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14514 tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14515 cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14516 cfghooks.c.
14517 (rtl_create_basic_block): Coding style fix.
14518 (rtl_tidy_fallthru_edge, rtl_move_block_after,
14519 rtl_make_forwarder_block): New functions.
14520 (update_cfg_after_block_merging): Removed.
14521 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14522 * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14523 to dump_bb.
14524 * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14525 find_if_case_2): Don't update dominators.
14526 * timevar.def (TV_CFG_VERIFY): New.
14527 * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14528 * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14529 * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14530 (remove_bbs): Don't call remove_bbs.
14531 (create_preheader): Use make_forwarder_block.
14532 (mfb_keep_just, mfb_update_loops): New static functions.
14533
3cea4788
KH
145342004-01-29 Kazu Hirata <kazu@cs.umass.edu>
14535
14536 * config/avr/avr.h: Remove target-independent comments about
14537 target macros.
14538
75e853f2 145392004-01-28 Daniel Berlin <dberlin@dberlin.org>
16dd5cfe 14540
75e853f2
DB
14541 * timevar.c (timevar_print): Mention when checking is enabled.
14542
7625e73d
GB
145432004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
14544
14545 * c-lex.c (c_lex): Rename to...
14546 (c_lex_with_flags): Add new parameter to get CPP flags.
14547 (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14548 * c-pragma.h (c_lex_with_flags): Declare.
14549
dc7efe6e
KH
145502004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14551
14552 * config/mcore/mcore.c (mcore_external_libcall): Add a
14553 comment.
14554 (mcore_return_in_memory): Likewise.
14555
09a2b93a
KH
145562004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14557
14558 * config/mcore/mcore-protos.h: Remove the prototype for
14559 mcore_setup_incoming_varargs.
14560 * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14561 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14562 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14563 (TARGET_PROMOTE_PROTOTYPES): Likewise.
14564 (TARGET_STRUCT_VALUE_RTX): Likewise.
14565 (TARGET_RETURN_IN_MEMORY): Likewise.
14566 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14567 (mcore_setup_incoming_varargs): Make it static. Receive the
14568 first argument by reference. Add argument second_time.
14569 (mcore_external_libcall): New.
14570 (mcore_return_in_memory): Likewise.
14571 * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14572 (PROMOTE_FUNCTION_RETURN): Likewise.
14573 (STRUCT_VALUE): Likewise.
14574 (RETURN_IN_MEMORY): Likewise.
14575 (SETUP_INCOMING_VARARGS): Likewise.
14576 (PROMOTE_PROTOTYPES): Likewise.
14577 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14578
a7ed00da
KH
145792004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14580
14581 * config/m32r/m32r-protos.h: Remove the prototype for
14582 m32r_setup_incoming_varargs.
14583 * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14584 (TARGET_STRUCT_VALUE_RTX): Likewise.
14585 (TARGET_RETURN_IN_MEMORY): Likewise.
14586 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14587 (m32r_return_in_memory): New.
14588 (m32r_setup_incoming_varargs): Make it static.
14589 * config/m32r/m32r.h: Remove #undef of
14590 ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out
14591 definitions of PROMOTE_FUNCTION_ARGS and
14592 PROMOTE_FUNCTION_RETURN.
14593 (PROMOTE_PROTOTYPES): Remove.
14594 (RETURN_IN_MEMORY): Likewise.
14595 (STRUCT_VALUE): Likewise.
14596
8636be86
KH
145972004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14598
14599 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14600 (TARGET_STRUCT_VALUE_RTX): Likewise.
14601 (m68k_struct_value_rtx): Likewise.
14602 * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14603 STRUCT_VALUE_REGNUM.
14604 (PROMOTE_PROTOTYPES): Remove.
14605 * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14606 STRUCT_VALUE_REGNUM.
14607 * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14608 * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14609
f2f61ee7
KH
146102004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14611
14612 * config/stormy16/stormy16.c
14613 (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14614 TARGET_BUILD_BUILTIN_VA_LIST.
14615
fb7bc7fb
KH
146162004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14617
14618 * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14619 (TARGET_STRUCT_VALUE_RTX): Likewise.
14620 (TARGET_RETURN_IN_MEMORY): Likewise.
14621 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14622 (v850_return_in_memory): Likewise.
14623 (v850_setup_incoming_varargs): Likewise.
14624 * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14625 (SETUP_INCOMING_VARARGS): Likewise.
14626 (RETURN_IN_MEMORY): Likewise.
14627 (STRUCT_VALUE): Likewise.
14628
0fd818e7
KH
146292004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14630
14631 * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14632 (fr30_setup_incoming_varargs): Don't use
14633 STRICT_ARGUMENT_NAMING.
14634 * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14635 (STRICT_ARGUMENT_NAMING): Likewise.
14636
8ac411c7
KH
146372004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14638
14639 * config/frv/frv-protos.h: Remove the prototype for
14640 frv_expand_builtin_saveregs.
14641 * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14642 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14643 (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14644 STRUCT_VALUE_REGNUM.
14645 (frv_expand_builtin_saveregs): Make it static.
14646 (frv_struct_value_rtx): New.
14647 * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14648
d173e685
JH
146492004-01-29 Jan Hubicka <jh@suse.cz>
14650
14651 PR c++/12850
14652 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14653 initial pointers.
14654 * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14655 for functions that will be only inlined.
14656 (cgraph_mark_function_to_output): Likewise.
14657 (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14658 do not clear function body.
14659 * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14660 (tree_rest_of_compilation): Reorganize the logic releasing function
14661 body to use callgraph datastructure.
14662
f7a1010e
JDA
146632004-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14664
14665 * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14666 to register_operand.
14667
e7f47f83
ZW
146682004-01-28 Zack Weinberg <zack@codesourcery.com>
14669
14670 * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14671 (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14672 match_operand expressions so that all match_dups appear
14673 lexically after their corresponding match_operands.
14674
1807b726
KH
146752004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14676
14677 * config/h8300/h8300.c (WORD_REG_USED): Use
14678 HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14679 (compute_saved_regs): Likewise.
14680 (h8300_expand_prologue): Likewise. Allocate locals after
14681 saving registers.
14682 (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14683 of FRAME_POINTER_REGNUM. Deallocate locals before saving
14684 registers.
14685 (h8300_initial_elimination_offset): Adjust for the new frame
14686 layout, which swaps flips the order of locals and saved
14687 registers.
14688 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14689 (HARD_FRAME_POINTER_REGNUM): New.
14690 (ELIMINABLE_REGS): Add an elimination rule from
14691 FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14692 (REGISTER_NAMES): Add fp.
14693 * config/h8300/h8300.md (FP_REG): Change to 11.
14694 (HFP_REG): New.
14695
be2c39f8
KH
146962004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14697
14698 * genrecog.c (write_node): Remove a useless local variable.
14699
469ef4a3
ILT
147002004-01-28 Ian Lance Taylor <ian@wasabisystems.com>
14701
14702 * Makefile.in (options.c options.h): Use stamp file s-options to
14703 avoid unnecessary rebuilds.
14704 (options.o): New target listing dependencies.
14705 (gtyp-gen.h): Use stamp file s-gtyp-gen.
14706 (STAGESTUFF): Add s-gtyp-gen.
14707
685fe032
RH
147082004-01-28 Richard Henderson <rth@redhat.com>
14709
14710 * ggc.h (ggc_free): Declare.
14711 * ggc-common.c (ggc_realloc): Use it.
14712 * ggc-page.c: Remove lots of inline markers.
14713 (globals): Add free_object_list.
14714 (ggc_alloc): Tidy.
14715 (ggc_free, validate_free_objects): New.
14716 (poison_pages): Provide default.
14717 (ggc_collect): Call validate_free_objects; emit markers to
14718 the debug file.
14719
2ffe0e02
ZW
147202004-01-28 Zack Weinberg <zack@codesourcery.com>
14721 Jim Wilson <wilson@specifixinc.com>
14722
14723 * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14724 Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14725 scratch pointer.
14726 (ia64_secondary_reload_class): Delete case GR_REGS.
14727 * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14728 Do not allocate a scratch register.
14729 (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14730
a544524a
JH
147312004-01-28 Jan Hubicka <jh@suse.cz>
14732
14733 * gcse.c (bypass_block): Prevent edges to be unified when we are
14734 about to emit compenstation code.
14735
1b8f8174
NC
147362004-01-28 Nick Clifton <nickc@redhat.com>
14737
14738 * config/arm/arm.c (arm_expand_builtin): Force second argument of
14739 the setcwx insn into a register.
14740
faceece3
RS
147412004-01-28 Richard Sandiford <rsandifo@redhat.com>
14742
14743 * config/fp-bit.c (pack_d): When using paired doubles to implement
14744 a long double, round the high part separately.
14745 (unpack_d): Fix the case in which the high part is a power of two
14746 and the low part is a nonzero value of the opposite sign.
14747
28b24176
KH
147482004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14749
14750 * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14751 (TARGET_STRUCT_VALUE_RTX): Likewise.
14752 (c4x_external_libcall): Likewise.
14753 (c4x_struct_value_rtx): Likewise.
14754 * config/c4x/c4x.h: Remove.
14755 (STRUCT_VALUE_REGNUM): Likewise.
14756 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14757
9184f892
KH
147582004-01-28 Kazu Hirata <kazu@cs.umass.edu>
14759
14760 * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14761 (TARGET_STRUCT_VALUE_RTX): Likewise.
14762 * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14763 (STRUCT_VALUE): Likewise.
14764 (PROMOTE_PROTOTYPES): Likewise.
14765
4cce9dd8
RS
147662004-01-27 Roger Sayle <roger@eyesopen.com>
14767
14768 * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14769 CONST_INT before using INTVAL.
14770
590fcf48
UW
147712004-01-27 Ulrich Weigand <uweigand@de.ibm.com>
14772
14773 * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14774 * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14775 frame if !TARGET_BACKCHAIN.
2ffe0e02 14776 * config/s390/s390.md ("allocate_stack"): Use pattern only if
590fcf48
UW
14777 TARGET_BACKCHAIN.
14778 * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14779
826b47cc
ZW
147802004-01-27 Zack Weinberg <zack@codesourcery.com>
14781
14782 * ia64.c (ia64_function_arg): When placing HFAs in integer
14783 registers, do not special case the mode used for complex
14784 types. Do not advance int_regs until the current register
14785 is full.
14786
83810fcb
RS
147872004-01-27 Richard Sandiford <rsandifo@redhat.com>
14788
14789 PR target/7297
14790 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14791
2d9db8eb
DE
147922004-01-27 David Edelsohn <edelsohn@gnu.org>
14793
14794 * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14795 slow, unaligned loads and stores while debugging. Fix formatting.
14796
39e453d7
DE
147972004-01-27 David Edelsohn <edelsohn@gnu.org>
14798
14799 * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14800 of computing wmode.
14801 (restore_stack_nonlocal): Same.
14802
6097b0c3 148032004-01-27 Devang Patel <dpatel@apple.com>
826b47cc 14804
6097b0c3 14805 * Makefile.in (dwarf2out.o): Depend on input.h
826b47cc 14806 * dbxout.c (dbx_debug_hooks): Add new empty hook for
6097b0c3
DP
14807 imported_module_or_decl.
14808 (xcoff_debug_hooks): Same.
14809 * sdbout.c (sdb_debug_hooks): Same.
14810 * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14811 * debug.c (do_nothing_debug_hooks): Same.
14812 (debug_nothing_tree_tree): New function.
14813 * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14814 * dwarf2out.c: Include input.h.
14815 (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14816 (remove_child_TAG): New function.
14817 (dwarf_tag_name): Handle DW_TAG_imported_module.
14818 (gen_subprogram_die): Equate decl number to declaration die. Do not
14819 remove all children dies while reusing declaration die for definition.
14820 Instead, selectively remove only formal parameters.
14821 (gen_variable_die): Equate variable decl to declaration die.
14822 (gen_field_die): Equate field decl to line number.
14823 (force_namespace_die): Replace it with ...
14824 (force_decl_die): ... this.
14825 (force_type_die): New function.
14826 (setup_namespace_context): Replace use of force_namespace_die() with
14827 force_decl_die().
14828 (gen_namespace_die): Same.
14829 (dwarf2out_imported_module_or_decl): New function.
14830
e6aecf8e 148312004-01-27 Bob Wilson <bob.wilson@acm.org>
826b47cc 14832
e6aecf8e
BW
14833 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14834 on CQImode and CHImode incoming arguments in register a7.
14835 (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14836 * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14837 * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14838 xtensa_copy_incoming_a7 before reload.
826b47cc 14839
02307675
R
148402004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
14841
14842 * coverage.c (get_coverage_counts): Give a different message
14843 if flag_guess_branch_prob is set.
14844 * predict.c (counts_to_freqs): Return an int.
14845 (estimate_bb_frequencies): If counts_to_freqs returns zero,
14846 calculate estimates.
14847
69a45040
KH
148482004-01-27 Kazu Hirata <kazu@cs.umass.edu>
14849
14850 * config/iq2000/iq2000-protos.h: Remove the prototype for
14851 iq2000_setup_incoming_varargs.
14852 * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14853 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14854 (TARGET_PROMOTE_PROTOTYPES): Likewise.
14855 (TARGET_STRUCT_VALUE_RTX): Likewise.
14856 (TARGET_RETURN_IN_MEMORY): Likewise.
14857 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14858 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14859 (iq2000_return_in_memory): Likewise.
14860 (iq2000_setup_incoming_varargs): Make it static. Receive the
14861 first argument by reference.
14862 * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14863 (PROMOTE_FUNCTION_RETURN): Likewise.
14864 (PROMOTE_PROTOTYPES): Likewise.
14865 (RETURN_IN_MEMORY): Likewise.
14866 (STRUCT_VALUE): Likewise.
14867 (SETUP_INCOMING_VARARGS): Likewise.
14868 (STRICT_ARGUMENT_NAMING): Likewise.
14869
9cdfc8e7
JM
148702004-01-24 James A. Morrison <ja2morri@uwaterloo.ca>
14871
826b47cc 14872 * fixinc/fixinc.c (test_test): Initialize res.
9cdfc8e7
JM
14873 (start_flexer): Initialize pz_cmd_save.
14874
60ffd2fe
ZW
148752004-01-27 Zack Weinberg <zack@codesourcery.com>
14876
14877 * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14878 SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14879
52ad4d7b
ZW
148802004-01-27 Zack Weinberg <zack@codesourcery.com>
14881
14882 PR 7198
14883 * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14884 (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14885 (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14886 Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14887 Possibly rename pattern for consistency.
14888 Remove ??? comments suggesting that this be done.
14889 (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14890 New patterns.
14891 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14892 (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14893 (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14894 (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14895 Update to match.
14896
b034930f
ILT
148972004-01-27 Ian Lance Taylor <ian@wasabisystems.com>
14898
14899 * config/arm/arm.c (output_return_instruction): Only restore IP
14900 into SP if frame_pointer_needed.
14901
be446dfc
EB
149022004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
14903
14904 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14905 for SCmode and DCmode if ARCH32.
14906 (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14907 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14908 if ARCH32.
14909 (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14910 if ARCH32.
14911 (BASE_OUTGOING_VALUE_REG): Likewise.
14912
1b4bda70
EB
149132004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
14914
14915 PR target/10904
14916 PR target/13058
14917 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14918 Forbid mode changes from SImode for lower FP regs if ARCH64.
14919
1194fc79
R
149202004-01-27 J"orn Rennecke <joern.rennecke@superh.com>
14921
14922 * Makefile.in (bt-load.o): Depend on except.h.
14923 * bt-load.c (except.h): #include.
14924 (compute_defs_uses_and_gen): If insn at end of BB can throw
14925 within this function, consider registers used by it unavailable for
14926 btr migration.
14927 (move_btr_def): If insn at end of BB can throw, insert before rather
14928 than after.
14929
14930 * flags.h (flag_btr_bb_exclusive): Declare.
14931 * toplev.c (flag_btr_bb_exclusive): New variable.
14932 (f_options): Add btr-bb-exclusive.
14933 * bt-load.c (augment_live_range): Restore old behaviour if
14934 flag_btr_bb_exclusive is set.
14935 * common.opt: Add entry for -fbtr-bb-exclusive.
14936 * opts.c (common_handle_options): Same.
14937 * doc/invoke.texi: Document -fbtr-bb-exclusive.
52ad4d7b 14938
1194fc79
R
14939 * bt-load.c (btrs_live_at_end): New variable.
14940 (compute_defs_uses_and_gen): Compute its pointed-to array.
14941 (clear_btr_from_live_range, add_btr_to_live_range): Update it.
14942 (augment_live_range): When augmenting with a new dominator,
14943 use only its btrs_live_at_end set, but also add in the full set
14944 of the old dominator.
14945 (btr_def_live_range): Use btrs_live_at_end.
14946 (move_btr_def): Set other_btr_uses_before_def, and move new set
14947 to the end of the basic block, if appropriate.
14948 (migrate_btr_defs): Allocate and free btrs_live_at_end.
52ad4d7b 14949
1194fc79
R
14950 * bt-load.c (basic_block_freq): Remove outdated comment.
14951
895ea8f0
AM
149522004-01-27 Alan Modra <amodra@bigpond.net.au>
14953
14954 * config/rs6000/rs6000.h: Correct target_flags free bits comment.
14955 (PREDICATE_CODES): Remove duplicate.
14956 * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
14957 (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
14958 (MASK_PROFILE_KERNEL): Adjust define.
14959
4137ba7a
JJ
149602004-01-27 Jakub Jelinek <jakub@redhat.com>
14961
14962 * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
14963 of long string literals from 32 bytes to sizeof (void *) when !-Os
14964 and to 1 with -Os.
14965
a4bb41cc
KH
149662004-01-26 Kazu Hirata <kazu@cs.umass.edu>
14967
14968 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
14969 constant addresses in the normal mode.
14970
1c62e7b2
KG
149712004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14972
14973 * system.h (CHAR_BITFIELD): Delete.
14974 (BOOL_BITFIELD): New.
14975 * c-decl.c (c_scope): Use BOOL_BITFIELD.
14976 * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
14977
96ab60fc
KH
149782004-01-26 Kazu Hirata <kazu@cs.umass.edu>
14979
14980 * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14981 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14982 (TARGET_PROMOTE_PROTOTYPES): Likewise.
14983 (TARGET_STRUCT_VALUE_RTX): Likewise.
14984 (TARGET_RETURN_IN_MEMORY): Likewise.
14985 (arc_return_in_memory): Likewise.
14986 * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
14987 (PROMOTE_FUNCTION_RETURN): Likewise.
14988 (RETURN_IN_MEMORY): Likewise.
14989 (STRUCT_VALUE): Likewise.
14990
6d4b0a5d
RH
149912004-01-26 Richard Henderson <rth@redhat.com>
14992
14993 * c-parse.in (extension): Use itype.
14994 (SAVE_EXT_FLAGS): Don't allocate a tree.
14995 (RESTORE_EXT_FLAGS): Don't read a tree.
14996
18874af6
JH
149972004-01-26 Jan Hubicka <jh@suse.cz>
14998
14999 * cselib.c (discard_useless_values): Clear out value pointer pointing
15000 to datastructure to be recycled.
15001
501f88de
JH
150022004-01-25 Jan Hubicka <jh@suse.cz>
15003
15004 * genextract.c (main): Do not output the memset when not checking.
15005
d6456562
KH
150062004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15007
15008 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15009 switch statement instead of a chain of if statements.
15010
5cea9d5d
JL
150112004-01-26 Jeff Law <law@redhat.com>
15012
15013 * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
15014 acute accents for Petur Runolfsson's entry.
15015
04e9daaf
KH
150162004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15017
15018 * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15019 (TARGET_RETURN_IN_MEMORY): Likewise.
15020 * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15021 (RETURN_IN_MEMORY): Likewise.
15022
40ca90bf 150232004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9 15024
52ad4d7b
ZW
15025 * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15026 unaligned load/store into smaller loads and stores.
6c8066b9 15027
40ca90bf 150282004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9 15029
52ad4d7b
ZW
15030 * function.c (assign_parms): Do not assign
15031 long long argument to memory in prologue if
15032 is it loaded into register.
6c8066b9 15033
40ca90bf 150342004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9
FJ
15035
15036 PR middle-end/13779
52ad4d7b
ZW
15037 * expr.c (emit_group_load): split constant
15038 correctly into register components of PARALLEL insn.
6c8066b9 15039
40ca90bf 150402004-01-26 Fariborz Jahanian <fjahanian@apple.com>
6c8066b9
FJ
15041
15042 * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15043 Use adjust_address_nv directly with appropriate mode.
15044 (restore_stack_nonlocal): Ditto.
15045
4c45af42
KH
150462004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15047
15048 * config/xtensa/xtensa-protos.h: Remove the prototype for
15049 xtensa_builtin_saveregs.
15050 * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15051 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15052 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15053 (TARGET_STRUCT_VALUE_RTX): Likewise.
15054 (TARGET_RETURN_IN_MEMORY): Likewise.
15055 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15056 (xtensa_builtin_saveregs): Make it static.
15057 (xtensa_return_in_memory): New.
15058 * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15059 (PROMOTE_FUNCTION_RETURN): Likewise.
15060 (PROMOTE_PROTOTYPES): Likewise.
15061 (STRUCT_VALUE): Likewise.
15062 (RETURN_IN_MEMORY): Likewise.
15063 (EXPAND_BUILTIN_SAVEREGS): Likewise.
15064
1cc9f5f5
KH
150652004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15066
15067 * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15068 (arm_setup_incoming_varargs): Likewise.
15069 * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15070
558d352a
KH
150712004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15072
15073 * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15074 (cris_setup_incoming_varargs): Likewise.
15075 * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15076
2001a5cf
KH
150772004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15078
15079 * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15080 (ns32k_struct_value_rtx): Likewise.
15081 * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15082 NS32K_STRUCT_VALUE_REGNUM.
15083
f9ba5949
KH
150842004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15085
15086 * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15087 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15088 (TARGET_STRUCT_VALUE_RTX): Likewise.
15089 (arm_struct_value_rtx): Likewise.
15090 * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15091 (STRUCT_VALUE): Likewise.
15092 (STRUCT_VALUE_REGNUM): Likewise.
15093 (PROMOTE_PROTOTYPES): Likewise.
15094
351a758b
KH
150952004-01-26 Kazu Hirata <kazu@cs.umass.edu>
15096
15097 * config/ia64/ia64-protos.h: Remove the prototype for
15098 ia64_setup_incoming_varargs and ia64_return_in_memory.
15099 * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15100 (TARGET_RETURN_IN_MEMORY): Likewise.
15101 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15102 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15103 (ia64_setup_incoming_varargs): Adjust the arguments to meet
15104 the requirement of TARGET_SETUP_INCOMING_VARARGS.
15105 (ia64_return_in_memory): Make it static. Change the return
15106 type to bool from int. Add an argument.
15107 (ia64_struct_value_rtx): New.
15108 * config/ia64/ia64.h: Remove commented-out definitions of
15109 PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15110 PROMOTE_PROTOTYPES.
15111 (RETURN_IN_MEMORY): Remove.
15112 (STRUCT_VALUE_REGNUM): Likewise.
15113 (STRICT_ARGUMENT_NAMING): Likewise.
15114
a7bba6ca
EB
151152004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
15116
15117 PR target/13666
15118 * config/sparc/sparc.c (function_arg_union_value): New function.
15119 (function_arg): Use it to deal with unions.
15120 (function_value): Likewise. Define 'regbase' only for ARCH64.
15121 Replace a conditional statement by a simpler one.
15122
6865f4cd
RS
151232004-01-26 Richard Sandiford <rsandifo@redhat.com>
15124
15125 * config/mips/mips.c (mips16_optimize_gp): Delete.
15126 (mips_reorg): Don't call it.
15127
2d6d0eb5
MH
151282004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15129
15130 * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15131 (floatunsqihf2): Remove operand 6.
15132 (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15133 fix patterns.
15134 (ldi_conditional, ldf_conditional): Validate operands.
15135
8f422192
MH
151362004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15137
15138 * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15139 (HAVE_GAS_HIDDEN): Undefine as interim measure.
52ad4d7b 15140
9c3602e4
MH
151412004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15142
15143 * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
15144 memory references if TARGET_EXPOSE_LDP nonzero.
15145
a026b9d6
MH
151462004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15147
15148 * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
52ad4d7b 15149
b7bbb574
MH
151502004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15151
15152 * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15153 invalid operand combinations.
15154
1e903c61
MH
151552004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15156
15157 * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15158 c4x_legitimate_address_p. Fix post_modify check.
b7bbb574 15159
1e903c61
MH
15160 * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15161 * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
52ad4d7b 15162
3f12cd9b
KH
151632004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15164
15165 * config/pa/pa-protos.h: Remove the prototype for
15166 hppa_builtin_saveregs. Add a prototype for
15167 pa_return_in_memory.
15168 * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15169 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15170 (TARGET_STRUCT_VALUE_RTX): Likewise.
15171 (TARGET_RETURN_IN_MEMORY): Likewise.
15172 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15173 (pa_struct_value_rtx): Likewise.
15174 (pa_return_in_memory): Likewise.
15175 * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15176 PA_STRUCT_VALUE_REGNUM.
15177 (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15178 (EXPAND_BUILTIN_SAVEREGS): Remove.
15179 (PROMOTE_PROTOTYPES): Likewise.
15180 (PROMOTE_FUNCTION_RETURN): Likewise.
15181
f289e226
KH
151822004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15183
15184 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15185 (TARGET_STRUCT_VALUE_RTX): Likewise.
15186 (vax_struct_value_rtx): Likewise.
15187 * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15188 VAX_STRUCT_VALUE_REGNUM.
15189 (PROMOTE_PROTOTYPES): Remove.
15190
12fb52cf 151912004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
52ad4d7b
ZW
15192
15193 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
15194
fdcf1e1e
CD
151952003-04-25 Chris Demetriou <cgd@broadcom.com>
15196
15197 * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15198 and MIPS64 have HI/LO interlocks. Update comment.
15199
7e43c821
KH
152002004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15201
15202 * config/stormy16/stormy16-protos.h: Remove the prototype for
15203 xstormy16_setup_incoming_varargs.
15204 * config/stormy16/stormy16.c
15205 (xstormy16_setup_incoming_varargs): Remove.
15206 (xstormy16_return_in_memory): New.
15207 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15208 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15209 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15210 (TARGET_STRUCT_VALUE_RTX): Likewise.
15211 (TARGET_RETURN_IN_MEMORY): Likewise.
15212 * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15213 (PROMOTE_FUNCTION_RETURN): Likewise
15214 (PROMOTE_PROTOTYPES): Likewise
15215 (RETURN_IN_MEMORY): Likewise
15216 (STRUCT_VALUE): Likewise
15217 (SETUP_INCOMING_VARARGS): Likewise
15218
62973ffe
RS
152192004-01-25 Richard Sandiford <rsandifo@redhat.com>
15220
15221 * config/mips/mips.c (mips_offset_within_object_p): New function.
15222 (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15223 SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
15224 ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15225
8e67da21
KH
152262004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15227
15228 * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15229 (PROMOTE_FUNCTION_RETURN): Likewise.
15230
9024ea92
KH
152312004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15232
15233 * config/mn10300/mn10300-protos.h: Remove the prototype for
15234 mn10300_builtin_saveregs.
15235 * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15236 (TARGET_STRUCT_VALUE_RTX): Likewise.
15237 (TARGET_RETURN_IN_MEMORY): Likewise.
15238 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15239 (mn10300_return_in_memory): Likewise.
15240 (mn10300_builtin_saveregs): Make it static.
15241 * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15242 (RETURN_IN_MEMORY): Likewise.
15243 (STRUCT_VALUE): Likewise.
15244 (EXPAND_BUILTIN_SAVEREGS): Likewise.
15245
20b4e8ae
EB
152462004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
15247
15248 PR bootstrap/13853
15249 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15250
cff555dc
KH
152512004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15252
15253 * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15254 using ccr.
15255
30f58b01
KH
152562004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15257
15258 * config/i860/i860-protos.h: Remove the prototype for
15259 i860_saveregs.
15260 * config/i860/i860.c (i860_saveregs): Make it static.
15261 (i860_struct_value_rtx): New.
15262 (TARGET_STRUCT_VALUE_RTX): Likewise.
15263 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15264 * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15265 I860_STRUCT_VALUE_REGNUM.
15266 (EXPAND_BUILTIN_SAVEREGS): Remove.
15267
341ec191
KH
152682004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15269
15270 * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15271 (TARGET_RETURN_IN_MEMORY): Likewise.
15272 (m68hc11_struct_value_rtx): Likewise.
15273 (m68hc11_return_in_memory): Likewise.
15274 * config/m68hc11/m68hc11.h: Remove a commented-out definition
15275 of PROMOTE_PROTOTYPES.
15276 (RETURN_IN_MEMORY): Remove.
15277 (STRUCT_VALUE_REGNUM): Likewise.
15278
344caf1b
KH
152792004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15280
15281 * config/mmix/mmix-protos.h: Remove the prototype for
15282 mmix_setup_incoming_varargs.
15283 * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15284 (TARGET_STRUCT_VALUE_RTX): Likewise.
15285 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15286 (mmix_setup_incoming_varargs): Make it static.
15287 (mmix_struct_value_rtx): New.
15288 * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15289 Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15290 (STRUCT_VALUE_REGNUM): Remove.
15291 (SETUP_INCOMING_VARARGS): Likewise.
15292
0c8da560
KH
152932004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15294
15295 * config/mips/mips-protos.h: Remove the prototypes for
15296 mips_setup_incoming_varargs and mips_return_in_memory.
15297 * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15298 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15299 (TARGET_PROMOTE_PROTOTYPES): Likewise.
15300 (TARGET_STRUCT_VALUE_RTX): Likewise.
15301 (TARGET_RETURN_IN_MEMORY): Likewise.
15302 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15303 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15304 (mips_setup_incoming_varargs): Match the prototype for
15305 TARGET_SETUP_INCOMING_VARARGS.
15306 (mips_return_in_memory): Make it static. Add argument fntype.
15307 (mips_strict_argument_naming): New.
15308 * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15309 (PROMOTE_FUNCTION_ARGS): Likewise.
15310 (PROMOTE_FUNCTION_RETURN): Likewise.
15311 (STRUCT_VALUE): Likewise.
15312 (RETURN_IN_MEMORY): Likewise.
15313 (SETUP_INCOMING_VARARGS): Likewise.
15314 (STRICT_ARGUMENT_NAMING): Likewise.
15315
49ca372c
KH
153162004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15317
15318 * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15319 (TARGET_RETURN_IN_MEMORY): Likewise.
15320 (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15321 (ip2k_return_in_memory): Likewise.
15322 (ip2k_setup_incoming_varargs): Likewise.
15323 * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15324 (STRUCT_VALUE): Likewise.
15325 (STRUCT_VALUE_INCOMING): Likewise.
15326 (SETUP_INCOMING_VARARGS): Likewise.
15327
b069302c
KH
153282004-01-25 Kazu Hirata <kazu@cs.umass.edu>
15329
15330 * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15331 (TARGET_RETURN_IN_MEMORY): Likewise.
15332 (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15333 (avr_return_in_memory): Remove.
15334 * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15335 (STRUCT_VALUE): Likewise.
15336 (STRUCT_VALUE_INCOMING): Likewise.
15337 (STRICT_ARGUMENT_NAMING): Likewise.
15338
e6d83128
JH
153392004-01-25 Jan Hubicka <jh@suse.cz>
15340
15341 * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15342
bcbc6b7f
RS
153432004-01-25 Richard Sandiford <rsandifo@redhat.com>
15344
15345 * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15346 (mips_regno_mode_ok_for_base_p): Declare.
15347 * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15348 (FRAME_POINTER_REGNUM): Renumber to 78.
15349 (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15350 (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15351 (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15352 (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15353 (REG_MODE_OK_FOR_BASE_P): Likewise.
15354 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15355 entry for 77 to "$arg" and entry for 78 to "$frame".
15356 (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15357 (mips_reg_mode_ok_for_base_p): Remove.
15358 (mips_regno_mode_ok_for_base_p): New function, derived from old
15359 BASE_REG_P macro. Don't enforce the mips16 stack pointer
15360 restrictions unless we're being strict.
15361 (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15362
1f52178b
KH
153632004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15364
15365 * c-common.h: Fix comment typos.
15366 * c-decl.c: Likewise.
15367 * cgraphunit.c: Likewise.
15368 * combine.c: Likewise.
15369 * et-forest.c: Likewise.
15370 * flow.c: Likewise.
15371 * function.c: Likewise.
15372 * ifcvt.c: Likewise.
15373 * integrate.c: Likewise.
15374 * jump.c: Likewise.
15375 * postreload.c: Likewise.
15376 * varray.c: Likewise.
15377
56ae1316
KH
153782004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15379
15380 * doc/frontends.texi: Update copyright.
15381 * doc/gcov.texi: Likewise.
15382 * doc/gty.texi: Likewise.
15383 * doc/sourcebuild.texi: Likewise.
15384 * doc/standards.texi: Likewise.
15385
b1dccb28
HB
153862004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
15387
15388 PR target/12978
15389 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15390 Remove movstrqi_small because it conflicts with movstrqi_large.
15391
a2fef3a4
KH
153922004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15393
15394 * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15395 (TARGET_STRUCT_VALUE_RTX): Likewise.
15396 (cris_struct_value_rtx): Likewise.
15397 * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15398 (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15399 STRUCT_VALUE_REGNUM.
15400 (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15401
1f44254c
ILT
154022004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
15403
15404 PR bootstrap/13848
15405 * cse.c (cse_cc_succs): Change the mode of the source expression
15406 as soon as decide we need a new mode. Don't permit changing modes
15407 if we found a match in a successor block.
15408 (cse_condition_code_reg): Save original mode of source expression
15409 so that we know whether we have to change the mode in other
15410 insns.
15411
fdb1c7b3
JH
154122004-01-24 Jan Hubicka <jh@suse.cz>
15413
15414 * emit-rtl.c (change_address, adjust_address_1, offset_address,
15415 widen_memory_access): Return early when there is nothing to change.
15416
5473cfa7
JJ
154172004-01-24 Jakub Jelinek <jakub@redhat.com>
15418
15419 * simplify-rtx.c (simplify_relational_operation): Don't
15420 simplify address == constant into address + -constant == 0.
15421
a5153056
KH
154222004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15423
15424 * gcc.c (process_command): Don't internationalize the
15425 Copyright message.
15426 * mips-tfile.c (main): Likewise.
15427
174b84e5
AT
154282004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
15429
15430 * cse.c: (cse_cc_succs) Fix comparison warning.
15431
16537909
KH
154322004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15433
15434 * config/h8300/h8300.md: Remove extraneous USE in expanders.
15435
d0022200
KH
154362004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15437
15438 * config/h8300/h8300-protos.h: Provide prototypes for
15439 h8300_legitimate_constant_p and h8300_legitimate_address_p.
15440 * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15441 (h8300_rtx_ok_for_base_p): Likewise.
15442 (h8300_legitimate_address_p): Likewise.
15443 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15444 h8300_legitimate_constant_p.
15445 (RTX_OK_FOR_BASE_P): Remove.
15446 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15447
ca04c5a9
KH
154482004-01-24 Kazu Hirata <kazu@cs.umass.edu>
15449
15450 * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15451 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15452 (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15453 (REG_OK_FOR_BASE_STRICT_P): Likewise.
15454 (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15455 (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15456 (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15457 (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15458
3e2a0bd2
JH
154592004-01-24 Jan Hubicka <jh@suse.cz>
15460
15461 * cselib.c (remove_useless_values): Do not access discarded values.
15462
b1adf557
JM
154632004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
15464
15465 * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15466 arrays.
15467
55cd4633
KH
154682004-01-23 Kazu Hirata <kazu@cs.umass.edu>
15469
15470 * recog.c: Fix a typo in copyright.
15471
bbf294a5
AP
154722004-01-23 Andrew Pinski <apinski@apple.com>
15473
15474 * config/rs6000/rs6000.md (call): Fix misappiled patch.
15475 (call_value): Likewise.
15476
a475bff7
RH
154772004-01-23 Richard Henderson <rth@redhat.com>
15478
52ad4d7b
ZW
15479 PR opt/12941
15480 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15481 (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15482 if SHIFT_COUNT_TRUNCATED is set.
a475bff7 15483
3712281f
BW
154842004-01-23 Bob Wilson <bob.wilson@acm.org>
15485
15486 * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15487 separate real and imaginary parts.
15488 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15489
99e5c00b
HP
154902004-01-23 Hartmut Penner <hpenner@de.ibm.com>
15491
15492 PR target/13674
15493 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15494 loading into GPR.
15495
8b07361e
JH
154962004-01-23 Jan Hubicka <jh@suse.cz>
15497
a74ff877
JH
15498 * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
15499 change.
15500
8b07361e
JH
15501 * alloc-pool.c (align_four): Kill.
15502 (create_alloc_pool): Align size to eight.
15503 (free_alloc_pool, free_pool): Invalidate deallocated data.
15504
e129d93a
ILT
155052004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
15506
15507 PR gcc/1532
15508 * cse.c (cse_change_cc_mode): New static function.
15509 (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15510 (cse_condition_code_reg): New function.
15511 * rtl.h (cse_condition_code_reg): Declare.
15512 * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15513 * target.h (struct gcc_target): Add fixed_condition_code_regs and
15514 cc_modes_compatible.
15515 * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15516 (TARGET_CC_MODES_COMPATIBLE): Define.
15517 (TARGET_INITIALIZER): Add new initializers.
15518 * targhooks.c (default_cc_modes_compatible): New function.
15519 * targhooks.c (default_cc_modes_compatible): Declare.
15520 * hooks.c (hook_bool_intp_intp_false): New function.
15521 * hooks.h (hook_bool_intp_intp_false): Declare.
15522 * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15523 (TARGET_CC_MODES_COMPATIBLE): Define.
15524 (ix86_fixed_condition_code_regs): New static function.
15525 (ix86_cc_modes_compatible): Likewise.
15526 * doc/tm.texi (Condition Code): Document new hooks.
15527
f6c930a3
RO
155282004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15529
15530 * fixinc/inclhack.def (bad_lval): Renamed to ...
15531 (alpha_bad_lval): ... this.
15532 Removed file list.
15533 Restrict to alpha*-dec-osf*.
15534 * fixinc/fixincl.x: Regenerate.
15535 * fixinc/tests/base/dirent.h: Remove, moving test ...
15536 * fixinc/tests/base/testing.h: ... here, reflecting new name.
15537
04b8f97f
ZW
155382004-01-23 Zack Weinberg <zack@codesourcery.com>
15539
30cab869 15540 PR c/13814
04b8f97f
ZW
15541 * c-decl.c (diagnose_mismatched_decls): Also discard a
15542 built-in if we encounter an old-style definition with the
15543 same name.
15544
1ab1739c
JJ
155452004-01-23 Jakub Jelinek <jakub@redhat.com>
15546
15547 * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15548 set to default{32,64}.
15549
02731d29
JJ
155502004-01-21 Jakub Jelinek <jakub@redhat.com>
15551
15552 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15553 [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15554
0a944ef6 155552004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
04b8f97f 15556 Olivier Hainque <hainque@act-europe.fr>
0a944ef6
EB
15557
15558 * fold-const.c (fold_binary_op_with_conditional_arg): Only
15559 build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15560
0bfb39ef
DJ
155612004-01-23 Daniel Jacobowitz <drow@mvista.com>
15562
15563 * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15564 size for minipool references.
15565
25348c94
RS
155662004-01-23 Roger Sayle <roger@eyesopen.com>
15567
15568 * real.c (real_floor, real_ceil): Tweak to allow input and output
15569 arguments to overlap.
15570 (real_round): New function to implement round(3m) semantics.
15571 * real.h (real_round): Prototype here.
15572 * builtins.c (fold_builtin_round): New function to constant fold
15573 round, roundf and roundl.
15574 (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15575
0f2b41b2
AO
155762004-01-23 Alexandre Oliva <aoliva@redhat.com>
15577
15578 PR optimization/13819
04b8f97f 15579 * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
0f2b41b2
AO
15580 introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15581 (sh_handle_sp_switch_attribute): Remove warning.
15582
72613dfa
JH
155832003-11-30 Jan Hubicka <jh@suse.cz>
15584
15585 * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
15586
7be4d808
R
155872004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
15588
15589 * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15590 may or may not return non-NIL.
15591 * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15592 check CANNOT_CHANGE_MODE_CLASS
15593
23bd7a93
JH
155942004-01-23 Jan Hubicka <jh@suse.cz>
15595
15596 * basic-block.h (PROP_POSTRELOAD): New macro.
15597 (CLEANUP_LOG_LINKS): New.
15598 * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15599 * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
15600
15601 * cselib.c (value_pool): New.
15602 (new_cselib_val): Use pool.
15603 (cselib_init): Initialize value_pool
15604 (cselib_finish): Free pool.
15605
5c4f4b18
EB
156062004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
15607
15608 * config/sparc/sparc.c (scan_record_type): New function.
15609 (function_arg_slotno): Use it to determine which kinds of
15610 registers the record can be passed in.
15611
95f576c1
JM
156122004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
15613
15614 * config/pa/fptr.c: Fix old-style definition.
15615
4c442790
PB
156162004-01-22 Paolo Bonzini <bonzini@gnu.org>
15617
15618 PR optimization/13724
15619 * cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
15620 represents the zero bits produced by a ZERO_EXTEND operation.
15621
dc4bbaf7
RS
156222004-01-22 Roger Sayle <roger@eyesopen.com>
15623
15624 PR optimization/13821
15625 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15626 correctly calculate the lowpart offset of the contracted subreg.
15627
b00567b0
ILT
156282004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
15629
15630 * doc/invoke.texi (Optimize Options): Note that --param arguments
15631 are subject to change without notice.
15632
d0d969f8
RO
156332004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15634
15635 * config.gcc (mips-sgi-irix6*o32): Removed.
15636 * config/mips/iris6-o32-as.h: Likewise.
15637 * config/mips/iris6-o32-gas.h: Likewise.
15638 * config/mips/iris6-o32.h: Likewise.
15639
7cf240d5
JH
156402004-01-22 Jan Hubicka <jh@suse.cz>
15641
15642 * cfgcleanup.c (first_pass): New static variable.
15643 (try_forward_edges): Add work limiting check for threading.
15644 (try_crossjump_bb): Add work limiting check for crossjumping.
15645 (try_optimize_cfg): Maintain first pass variable.
15646
b16417d6
BW
156472004-01-22 Bob Wilson <bob.wilson@acm.org>
15648
15649 * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15650 handles complex and vector modes.
15651
c8796654
KH
156522004-01-22 Kazu Hirata <kazu@cs.umass.edu>
15653
15654 * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15655 (REG_OK_FOR_BASE_P_STRICT): Likewise.
15656 (STRICT): Likewise.
15657
10176e28
DJ
156582004-01-22 Daniel Jacobowitz <drow@mvista.com>
15659
15660 * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15661 (genrtl_for_stmt): Remove emit_nop calls.
15662
7bff636b
JDA
156632004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15664
15665 PR target/13713
15666 PR target/13324
15667 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15668 movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15669 clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15670
980e61bb
DJ
156712004-01-22 Daniel Jacobowitz <drow@mvista.com>
15672
15673 * config/arm/arm.c: Include "debug.h".
04b8f97f 15674 (thumb_pushpop): Take two new arguments. Add some commentary.
980e61bb
DJ
15675 Output frame information when pushing.
15676 (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15677 thumb_pushpop.
15678 (thumb_output_function_prologue): Likewise. Accumulate a CFA
15679 offset, and pass it to thumb_pushpop. Output CFI information.
15680 (thumb_expand_prologue): Add some frame-related markers and notes.
15681
0067d121
UW
156822004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
15683
15684 * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15685 for TARGET_64BIT.
15686 (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15687 * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15688
bb51e270
RS
156892004-01-22 Roger Sayle <roger@eyesopen.com>
15690 Paolo Bonzini <bonzini@gnu.org>
15691
15692 * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15693 (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15694 * rtl.h (subreg_lsb_1): Prototype here.
15695 * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15696 sign extensions.
15697
9c49953c
KH
156982004-01-22 Kazu Hirata <kazu@cs.umass.edu>
15699
15700 * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15701 macro need not be defined if jump-tables should contain
15702 relative addresses only when -fPIC or -fPIC is in effect.
15703
c582d54a
JH
157042004-01-22 Jan Hubicka <jh@suse.cz>
15705
15706 * alias.c (reg_base_value): Turn into varray.
15707 (reg_base_value_size): Kill.
15708 (old_reg_base_value): New deletable varray.
15709 (alias_invariant_size): New variable.
15710 (REG_BASE_VALUE): Update to use varray.
15711 (find_base_value): Likewise.
15712 (record_set): Likewise.
15713 (record_base_value): Likewise.
15714 (memrefs_conflict_p): Likewise.
15715 (record_set): Likewise
15716 (record_base_value): Likewise.
15717 (memrefs_conflict_p): Use alias_invariant_size.
15718 (init_alias_analysis): Use varray; set alias_invariant_size;
15719 rescale other arrays to be sized by maxreg.
15720 (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15721
8a98812c
EB
157222004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
15723
15724 * config/sparc/sparc.c (function_arg_slotno): Use
15725 FLOAT_TYPE_P to detect FP fields in structures.
15726 (function_arg_record_value_1): Likewise.
15727 (function_arg_record_value_2): Likewise.
15728
0de456a5
JH
157292004-01-22 Jan Hubicka <jh@suse.cz>
15730
15731 * function.c (allocate_struct_function): Do not initialize expr, emit
15732 and varasm.
15733 (prepare_function_start): Do it here.
15734 * c-parse.in (maybe_type_qual): Do not produce line number notes.
15735
1fd05073
EB
157362004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
15737
15738 PR target/13559
15739 * config/sparc/sparc.c (function_arg_record_value_3): Revert
15740 to 'word_mode' once the first slot has been filled.
15741
b2f24c85
EB
157422004-01-22 Olivier Hainque <hainque@act-europe.fr>
15743
15744 * config/sparc/sparc.c (function_arg_record_value_1): Fix
15745 computation of the number of integer registers required.
15746
b4e0dd8e
KH
157472004-01-21 Kazu Hirata <kazu@cs.umass.edu>
15748
15749 * config/i386/i386.md: Simplify certain comparisons of
15750 const_int.
15751
5cc5eddc
AP
157522004-01-21 Andrew Pinski <apinski@apple.com>
15753
15754 PR target/13785
04b8f97f 15755 * config/rs6000/rs6000.md (call_value): Force operand
5cc5eddc
AP
15756 1 not operand 0 into a register.
15757
711d8c91
KH
157582004-01-21 Kazu Hirata <kazu@cs.umass.edu>
15759
15760 * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15761 unwind-dw2-fde.h: Update copyright.
15762
d1885651
JDA
157632004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15764
15765 * pa-protos.h: Update copyright.
15766 * pa.h: Likewise.
15767 * pa.md: Likewise.
15768
40ca90bf 157692004-01-21 Caroline Tice <ctice@apple.com>
ec13ba83 15770
6ed854f1 15771 PR target/12308
04b8f97f 15772 * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
ec13ba83
CT
15773 flags register.
15774 (fix_truncdfdi2): Likewise.
15775 (fix_truncsfdi2): Likewise.
15776 (*fix_truncdi_1): Likewise.
15777 (fix_truncxfsi2): Likewise.
15778 (fix_truncdfsi2): Likewise.
15779 (fix_truncsfsi2): Likewise.
15780 (*fix_truncsi_1): Likewise.
15781 (fix_truncxfhi2): Likewise.
15782 (fix_truncdfhi2): Likewise.
15783 (fix_truncsfhi2): Likewise.
15784 (*fix_trunchi_1): Likewise.
04b8f97f 15785
d9221e01
KH
157862004-01-21 Kazu Hirata <kazu@cs.umass.edu>
15787
15788 * alias.c, basic-block.h, c-common.c, c-common.h,
15789 c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15790 calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15791 combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15792 cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15793 defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15794 expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15795 genautomata.c, genconditions.c, genemit.c, genflags.c,
15796 gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15797 ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15798 langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15799 line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15800 ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15801 rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15802 target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15803 unwind.h, varray.c, varray.h: Update copyright.
15804
6d6b0a12
KH
158052004-01-21 Kazu Hirata <kazu@cs.umass.edu>
15806
15807 * config/h8300/coff.h: Update copyright.
15808 * config/h8300/elf.h: Likewise.
15809 * config/h8300/h8300-protos.h: Likewise.
15810 * config/h8300/h8300.c: Likewise.
15811 * config/h8300/h8300.h: Likewise.
15812 * config/h8300/h8300.md: Likewise.
15813
4b60eb3b
JDA
158142004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15815
15816 * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15817 ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15818 ultrix_unistd): New hacks.
15819 * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15820 ULTRIX_CONST2_CHECK): Add checks.
15821 * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15822 * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15823 * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15824 * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15825 * fixinc/tests/base/locale.h: New file.
15826 * fixinc/fixincl.x: Rebuilt.
15827
bbf5a54d
AJ
158282004-01-21 Andreas Jaeger <aj@suse.de>
15829 Michael Matz <matz@suse.de>
15830
15831 * doc/extend.texi (Extended Asm): Clarify memory clobber.
15832
bfccaa6f
JJ
158332004-01-21 Jakub Jelinek <jakub@redhat.com>
15834
15835 * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15836 _Jv_RegisterClasses through a function pointer.
15837
c3cda381
FH
158382004-01-21 Falk Hueffner <falk@debian.org>
15839
15840 PR target/12898
15841 * config/alpha/alpha.c (alpha_emit_set_const_1): If
15842 no_new_pseudos, use gen_rtx_SET directly for SImode constants
15843 which need multiple instructions to emit.
15844
2a2001be
IK
158452004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
15846
15847 * config/m32r/m32r.h (CPP_SPEC): Define.
15848
1ef82ef2
ZW
158492004-01-21 Zack Weinberg <zack@codesourcery.com>
15850
15851 * c-decl.c (merge_decls): Kill different_binding_level and
15852 different_tu arguments; simplify throughout.
15853 (duplicate_decls): Likewise.
15854 (pushdecl, merge_translation_unit_decls): Update calls to
15855 duplicate_decls.
15856
13544b81
KG
158572004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15858
15859 * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15860 $(SYSTEM_H).
15861 (print-rtl1.o): Depend on $(SYSTEM_H).
15862
a541f69d
KC
158632004-01-20 Kelley Cook <kcook@gcc.gnu.org>
15864
15865 PR bootstrap/12730
15866 * configure.ac: Delete definition and subsitution of docdir.
15867 Add info, man, srcman and srcinfo to target hooks. Create doc/
15868 directory.
15869 * configure: Regenerate.
15870 * Makefile.in: Don't substitute docdir and delete all references
15871 throughout.
15872 (MAKEINFOFLAGS): Define.
15873 (stmp-docobjdir): Delete.
15874 (INFOFILES, MANFILES): Define.
15875 (info): Call lang.info, srcinfo and lang.srcinfo.
15876 (generated-manpages): Call lang.man, srcman and lang.srcman.
15877 (srcinfo, srcman): New rules to copy back files to source directory.
15878 (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15879 (install-man): Revamp rule.
15880 (clean): Update dvi directory.
15881 (distclean): Delete TAGS from front end directorys.
15882 (maintainer-clean): Delete all document files in source directory.
15883
15884 objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15885 (objc.srcman, objc.srcinfo): Likewise.
15886
793146e3
BK
158872004-01-20 Bruce Korb <bkorb@gnu.org>
15888
15889 * fixinc/inclhack.def(math_exception): bypass only for glibc.
15890 (matherr_decl): rename & relocate as exception_structure.
15891 This fix must precede the math_exception fix.
15892
fdb33708
RS
158932004-01-20 Roger Sayle <roger@eyesopen.com>
15894
15895 * fold-const.c (fold_convert): Rename to fold_convert_const.
15896 (fold_convert_const): Change arguments to take a tree_code,
15897 a type and the operand/expression to be converted. Return
15898 NULL_TREE if no simplification is possible. Add support for
15899 FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15900 (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15901 Adjust call to fold_convert to match new fold_convert_const.
15902 Avoid modifying the tree passed to fold in-place.
15903
34c80057
AM
159042004-01-21 Alan Modra <amodra@bigpond.net.au>
15905
15906 * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15907 * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15908 * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15909
a4295210
JDA
159102004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15911
15912 * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15913 * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15914 Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
15915 (emit_move_sequence): Check scratch_reg first in various if statements.
15916 Extend source simplification to handle all 64-bit CONST_INTs.
15917 (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15918 frame size.
15919 (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15920 frame offset calculations.
15921 * pa.h (NEW_HP_ASSEMBLER): Add comment.
15922 (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15923 LEGITIMATE_64BIT_CONST_INT_P): Define.
15924 (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
15925 any CONST_INT as legitimate during and after reload.
15926 (VAL_32_BITS_P, INT_32_BITS): Define.
15927 (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15928
3e89ed8d
JH
159292004-01-20 Jan Hubicka <jh@suse.cz>
15930
15931 * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
15932 emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
15933 containing hard regs are shared.
15934 (gen_hard_reg_clobber): New function.
15935 (hard_reg_clobbers): New array.
15936 * genemit.c (gen_exp): Use gen_hard_reg_clobber.
15937 (copy_rtx): Do not copy clobbers containing hard regs.
15938 * rtl.h (gen_hard_reg_clobber): Declare.
15939
9b57b627
JH
159402004-01-20 Jan Hubicka <jh@suse.cz>
15941
15942 * varray.c: Include hashtab.h
15943 (varray_descriptor): New structure.
15944 (hash_descriptor, eq_descriptor, varray_descriptor,
15945 print_statistics): New static functions
15946 (varray_init, varray_grow): Update statistics
15947 (dump_varray_statistics): New function.
15948 * varray.h (dump_varray_statistics): Declare.
15949 * toplev.c (finalize): Call it.
15950 * Makefile.in (varray.o): Add dependency.
15951
6a59927d
JH
159522004-01-20 Jan Hubicka <jh@suse.cz>
15953
15954 * cselib.c: Include alloc-pool.h
15955 (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
15956 (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
15957 (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
15958 unchain_one_elt_loc_list_pool, unchain_one_value,
15959 new_cselib_val): Simplify using allocpool.
15960 (cselib_init): Initialize allocpools.
15961 (cselib_finish): Finish allocpools.
15962 * Makefile.in (cselib.o): Depend on alloc-pool.h
15963
3c53850d
RS
159642004-01-20 Richard Sandiford <rsandifo@redhat.com>
15965
15966 * config/mips/mips.c (mips_load_call_address): Make the call insn
15967 use $gp if it could be calling a lazy binding stub.
15968
101ad855
KH
159692004-01-20 Kazu Hirata <kazu@cs.umass.edu>
15970
15971 * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
15972 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15973 (TARGET_STRUCT_VALUE_RTX): Likewise.
15974 * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
15975 (PROMOTE_FUNCTION_RETURN): Remove.
15976 (STRUCT_VALUE): Remove.
15977
c099ba28
DC
159782004-01-20 Denis Chertykov <denisc@overta.ru>
15979
03b82c00 15980 PR bootstrap/13735
c099ba28
DC
15981 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
15982 register as pointer after reload.
15983
c8b6fae3
ZD
159842004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
15985
15986 PR optimization/12440
15987 * loop.c: Include ggc.h.
15988 (loop_optimize): Run garbage collector between optimization of loops.
15989 * Makefile.in (loop.o): Add GGC_H dependency.
15990
c72d6c26
HP
159912004-01-20 Hartmut Penner <hpenner@de.ibm.com>
15992
1ef82ef2 15993 * gcc/config/rs6000/rs6000.c (function_arg) Handle
c72d6c26
HP
15994 vector register special in function without prototype.
15995 (function_arg_advance): Vector parameters get always
15996 GPRs allocated for the linux64 target.
15997
91e736f9
KI
159982004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
15999
16000 * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16001 not TARGET_M32RX_MASK.
16002
4043d6fb
EB
160032004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
16004
16005 PR target/13557
16006 * config/sparc/sparc.c (function_arg): Reorder the cases.
16007
50f59cd7
PB
160082004-01-19 Per Bothner <per@bothner.com>
16009
16010 Move cpp_reader's line_maps field to a shared global.
16011 * cpphash.h (cpp_reader): Rename line_maps field to line_table
16012 and change the type to a pointer rather than a struct.
16013 * cppinit.c (cpp_push_main_field): Adjust accordingly.
16014 * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16015 Likewise.
16016 * cppfiles.c (validate_pch): Likewise.
16017 * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16018 Likewise.
16019 * cpperror.c (print_location): Likewise.
16020 * cpplib.h (cpp_create_reader): New line_maps pointer parameter.
16021 * cppinit.c (cpp_create_reader): Handle new parameter.
16022 (cpp_destroy): Don't free line_maps - that's no longer our job.
16023 * input.h (line_table): New variable.
16024 * toplev.c (line_table): Declare variable.
16025 (general_init): Initialize line_table.
16026 * c-opts.c (c_common_init_options): Pass line_table to
16027 cpp_create_reader.
16028 * fix-header.c (read_scan_file): New local variable line_table.
16029 Initialize, and pass it to cpp_create_reader.
16030 * Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
16031 (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
16032
160332004-01-19 Per Bothner <per@bothner.com>
9132fbb7
PB
16034
16035 Implement a cache for linemap_lookup.
16036 * line-map.h (struct_line_maps): Add cache field.
16037 * line-map.c (linemap_init): Zero cache field.
16038 (linemap_add): Set cache field to offset of newly allocated map.
16039 (linemap_lookup): Use and set cache field.
16040
26d107db
KK
160412004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
16042
16043 PR optimization/13567
16044 * cse.c (cse_basic_block): Call cse_insn with a non-null
16045 libcall_insn for the last SET insn of a no-confilict block.
16046
e165d61b
KC
160472004-01-20 Kelley Cook <kcook@gcc.gnu.org>
16048
1ef82ef2 16049 * Makefile.in (target_noncanonical, program_transform_name): Use
e165d61b 16050 immediate define instead of deferred.
1ef82ef2 16051 (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
e165d61b
KC
16052 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16053 GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16054 deferred backquote.
16055
53cd18ec
JM
160562004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
16057
16058 * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16059 true unconditionally.
16060 * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16061 Remove.
16062 (build_unary_op, build_modify_expr): Don't handle extended
16063 lvalues.
16064 (build_component_ref, build_conditional_expr): Call non_lvalue
16065 instead of pedantic_non_lvalue.
16066 (build_c_cast): Don't condition use of non_lvalue on pedantic.
16067 * fold-const.c (fold): Don't check pedantic directly for
16068 COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
16069 passed to pedantic_non_lvalue.
16070 * doc/extend.texi: Remove documentation of extended lvalues.
16071
9ce79a7a
RS
160722004-01-19 Roger Sayle <roger@eyesopen.com>
16073
16074 PR optimization/5263
16075 * simplify-rtx.c (associative_constant_p): Delete.
16076 (simplify_associative_operation): Rewrite to linearize terms, and
16077 attempt to simplify new term against both left and right subterms.
16078 (simplify_binary_operation): Call swap_commutative_operands_p on
16079 op0 and op1, not trueop0 and trueop1. Move the initialization of
16080 trueop0 and trueop1 down to where first needed.
16081 (simplify_relational_operation): Likewise.
16082 * rtlanal.c (commutative_operand_precedence): Also order constant
16083 operands using avoid_constant_pool_reference.
16084
62e88293
RH
160852004-01-19 Richard Henderson <rth@redhat.com>
16086
1ef82ef2
ZW
16087 * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16088 don't check memory mode.
16089 (unaligned_memory_operand): Likewise.
16090 (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16091 abort for op0 not MEM.
62e88293 16092
1ef82ef2
ZW
16093 * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16094 is not a reg, copy to a scratch first.
16095 (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16096 unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16097 unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16098 (reload_inqi, reload_inhi): Fix mode of op0.
16099 (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16100 reload_outhi_help): Likewise. Use define_insn_and_split.
62e88293 16101
1ef82ef2
ZW
16102 * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16103 as well as $29 dead.
62e88293 16104
2f3321ca
EB
161052004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
16106
16107 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
16108 "tls_object" for thread-local objects.
16109 * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16110 "#tls" for thread-local sections.
16111 * configure.ac (thread-local checks): Specify --fatal-warnings in
16112 every binutils-specific checks. For sparc*-*-*, test whether the
16113 OS is Solaris and the tools are native and act accordingly.
16114 * configure: Rebuild.
16115
6fe37bc4
JL
161162004-01-19 Jeff Law <law@redhat.com>
16117
16118 * contrib.texi: Update Paolo Carlini's entry. New entries for
16119 Jerry Quinn and Petur Runolfsson.
1ef82ef2 16120
68f48f39
RS
161212004-01-19 Roger Sayle <roger@eyesopen.com>
16122
16123 * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16124 size, don't use the larger zero-extending loads.
16125
5c9948f4
RH
161262004-01-19 Richard Henderson <rth@redhat.com>
16127
16128 * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16129 * alpha.md (UNSPEC_NT_LDA): Remove.
16130 (UNSPEC_CVTLQ, cvtlq): New.
16131 (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16132 (extendsidi2_fix): Remove.
16133 (extendsidi2 splitter): Use cvtlq.
16134 (extendsidi2 fp peepholes): Remove.
16135 (cvtql): Use SFmode instead of SImode.
16136 (fix_trunc?fsi): Update to match.
16137 (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16138 (movsi): Rename from movsi_nofix, remove f alternatives.
16139 (movsi_nt_vms): Similarly.
16140 (movsi_fix, movsi_nt_vms_fix): Remove.
16141 (nt_lda): Remove.
16142 * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16143
9b0436b7
JH
161442004-01-19 Jan Hubicka <jh@suse.cz>
16145
16146 * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16147 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16148 list.
16149 (cgraph_remove_unreachable_nodes): New function
16150 (cgraph_decide_inlining_of_small_function): Fix pasto.
16151 (cgraph_decide_inlining_incrementally): Fix pasto.
16152 (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16153
8c80adb7
SB
161542004-01-19 Steven Bosscher <stevenb@suse.de>
16155
16156 * gengtype.c (header_file): Make it static.
16157 (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16158 * gengtype.h (header_file): No longer extern.
16159
0ede749d
KH
161602004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16161
16162 * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16163 * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16164 * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16165
41cbdcd0
KH
161662004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16167
16168 * stmt.c (HAVE_casesi): Define it not already defined.
16169 (HAVE_tablejump): Likewise.
16170 (expand_end_case_type): Resort to the binary tree method if
16171 neither casesi or tablejump is available.
16172
5cfc5f84
DJ
161732004-01-18 Daniel Jacobowitz <drow@mvista.com>
16174
16175 * final.c (final_scan_insn): Make non-static again.
16176 * output.h (final_scan_insn): Re-add prototype.
16177 * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16178 to final_scan_insn call.
16179 * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16180 * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16181 * config/pa/pa.c (output_lbranch, output_call): Likewise.
16182 * config/sh/sh.c (print_slot): Likewise.
16183 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16184 (output_sibcall, sparc_flat_function_epilogue): Likewise.
16185
3348b696
JH
161862004-01-18 Jan Hubicka <jh@suse.cz>
16187
16188 * basic-block.h (try_redirect_by_replacing_jump): Declare.
16189 * cfgcleanup.c (try_optimize_cfg): Use it.
16190 * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16191 (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16192 Kill hack.
16193 (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16194
16195 Revert:
16196 2004-01-16 Geoffrey Keating <geoffk@apple.com>
16197
16198 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16199 even after reload, just don't remove the actual jump tables.
16200
72d89d35
KH
162012004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16202
16203 * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16204
07b50aad
KH
162052004-01-18 Kazu Hirata <kazu@cs.umass.edu>
16206
16207 * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16208 the size of a pointer in bytes.
16209
6e46ab25
RS
162102004-01-18 Roger Sayle <roger@eyesopen.com>
16211
16212 * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16213 live "next" variable, which could lead to an infinite loop.
16214
3ce5437a
AP
162152004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
16216
b4be9e8e
AP
16217 * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16218 block.
16219
3ce5437a
AP
16220 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16221 Check for NULL in the chain and remove repeated code.
16222
20c361f3
JH
162232004-01-18 Jan Hubicka <jh@suse.cz>
16224
16225 * coverage.c (checksum_string): Rename to ...
16226 (coverage_checksum_string): ... this one, Use crc32_string; recognize
16227 names containing random number and zero the number out in order to get
16228 match.
16229
cacb5bba
RS
162302004-01-18 Richard Sandiford <rsandifo@redhat.com>
16231
16232 * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16233
daf2f129
JM
162342004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16235
16236 * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16237 doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16238 doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16239 doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16240 doc/trouble.texi: Remove trailing whitespace.
16241
b85aed9e
RS
162422004-01-18 Richard Sandiford <rsandifo@redhat.com>
16243
1c0f3fac 16244 PR target/7618
b85aed9e
RS
16245 * config/mips/mips.c: Include cfglayout.h.
16246 (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16247 (mips_unspec_offset_high): Add temporary register argument.
16248 (mips_load_call_address): New function, split out from...
16249 (mips_expand_call): ...here.
16250 (mips_output_cplocal): New function.
16251 (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16252 (mips_emit_loadgp): New function, split out from...
16253 (mips_expand_prologue): ...here.
16254 (mips_output_mi_thunk): New function.
16255
e5d95b69
BI
162562004-01-17 Bernardo Innocenti <bernie@develer.com>
16257
16258 * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16259 mcpu32): Remove redundant checks for implied target predefines.
16260
19d66194
AP
162612004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
16262
16263 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16264 Return type is unsigned int not int.
16265 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16266 Likewise.
16267
95fef11f
JM
162682004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16269
16270 * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16271 doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16272 "GNU/Linux" and "Microsoft Windows" terminology.
16273
3ab51846
JM
162742004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
16275
16276 * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16277 doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16278 doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16279 doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16280 @smallexample instead of @example.
16281
cfbed37c
ZL
162822004-01-17 Ziemowit Laski <zlaski@apple.com>
16283
16284 * objc/objc-act.c (build_objc_method_call): Use target
1ef82ef2 16285 hooks instead of macros to determine if ..._stret
cfbed37c
ZL
16286 dispatchers should be used (NeXT runtime only).
16287
bef5105b
RS
162882004-01-17 Roger Sayle <roger@eyesopen.com>
16289
16290 * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16291 last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16292
dd3adcf8
DJ
162932004-01-17 Daniel Jacobowitz <drow@mvista.com>
16294
16295 * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16296 (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16297 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16298 macros.
16299 * reload1.c (emit_reload_insns): Use them.
16300 * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16301 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16302 for NULL PATTERN.
16303
589fe865
DJ
163042004-01-17 Daniel Jacobowitz <drow@mvista.com>
16305
16306 * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16307 (final_scan_insn): Update to take an additional SEEN argument. Emit
16308 a line note after the prologue. Make static.
16309 (line_note_exists): Remove.
16310 (final): Don't initialize line_note_exists. Update call to
16311 final_scan_insn.
16312 * output.h (final_scan_insn): Remove prologue.
16313 * function.c (set_insn_locators): Update comment.
16314 (thread_prologue_and_epilogue_insns): Add a comment.
16315
95727fb8
AP
163162004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
16317
16318 PR target/10781
16319 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16320 Prototype.
16321 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16322 New function.
16323 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16324 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16325 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16326
f2e16e97
JH
163272004-01-17 Jan Hubicka <jh@suse.cz>
16328
26c0473b
JH
16329 * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16330 commit.
16331
f2e16e97
JH
16332 * toplev.c (HAVE_conditional_execution): Provide default.
16333 (rest_of_handle_reorder_blocks): For conditional_execution target
16334 update liveness once after all transformations
16335 (rest_of_compilation): Do crossjumping before ce3.
16336
f103e34d
GK
163372004-01-17 Geoffrey Keating <geoffk@apple.com>
16338
16339 * alias.c (new_alias_set): Mark last_alias_set for PCH.
16340 (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16341 for PCH.
16342 (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16343 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16344 (get_TOC_alias_set): Mark 'set' for PCH.
16345
ab530ea8
GK
163462004-01-16 Geoffrey Keating <geoffk@apple.com>
16347
16348 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16349 even after reload, just don't remove the actual jump tables.
16350
53dd3be3 163512004-01-17 J. Brobecker <brobecker@gnat.com>
e7d23ce3
B
16352
16353 * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16354 Remove checks for is_ada() and TREE_UNSIGNED.
16355 (subrange_type_die): Emit a byte_size attribute if the subrange
16356 type size is different from the base type size.
16357 (modified_type_die): Replace call to is_ada_subrange_type() by
16358 call to is_subrange_type().
16359
8582b18a
AP
163602004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
16361
16362 * config/sh/sh.c: Include ggc.h.
16363
73e61092
GK
163642004-01-16 Geoffrey Keating <geoffk@apple.com>
16365
16366 * Makefile.in (MD5_H): New.
16367 (fold-const.o): Depend on md5.h.
16368 (dwarf2out.o): Likewise.
16369 (cppfiles.o): Likewise.
16370 * cppfiles.c: Include md5.h.
16371 (should_stack_file): Check against list read from PCH file.
16372 (struct pchf_data): New.
16373 (pchf): New variable.
16374 (struct pchf_adder_info): New.
16375 (pchf_adder): New.
16376 (pchf_save_compare): New.
16377 (_cpp_save_file_entries): New.
16378 (_cpp_read_file_entries): New.
16379 (struct pchf_compare_data): New.
16380 (pchf_compare): New.
16381 (check_file_against_entries): New.
16382 * cpphash.h (_cpp_save_file_entries): Prototype.
16383 (_cpp_read_file_entries): Prototype.
16384 * cpppch.c (cpp_write_pch_state): Write the list of headers.
16385 (cpp_read_state): Read the list of headers.
16386
3b75d796
JH
163872004-01-17 Jan Hubicka <jh@suse.cz>
16388
16389 * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16390 builtin_expect specially.
16391 * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16392 (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16393 * invoke.texi (max-inline-insns-single): Set to 100.
16394 (large-function-insns): Set to 3000.
16395
cf551fba
EC
163962004-01-16 Eric Christopher <echristo@redhat.com>
16397 Chandrakala Chavva <cchavva@redhat.com>
16398
16399 * cppcharset.c (one_iso88591_to_utf8): New function.
16400 (convert_iso88591_utf8): Ditto. Use.
16401 (conversion_tab): Use.
16402 (_cpp_input_to_utf8): New function.
16403 (_cpp_init_iconv_buffer): Ditto.
16404 (_cpp_close_iconv_buffer): Ditto.
16405 * cpphash.h: Prototype new functions.
16406 (cpp_buffer): Add input_cset_desc.
16407 * cppinit.c: Add input_charset default.
16408 * cpplib.c (cpp_push_buffer): Support init and
16409 close of iconv.
16410 * cpplib.h (cpp_options): Add input_charset.
16411
510d1e80
KH
164122004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16413
16414 * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16415 * config/alpha/unicosmk.h: Remove a commented-out definition
16416 of ASM_OUTPUT_SECTION_NAME.
16417 * config/stormy16/stormy16.h: Likewise.
16418
fb2c2608
RO
164192004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16420
16421 * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16422 (alpha___extern_prefix_sys_stat): ... this.
16423 Apply to <sys/mount.h>, too.
16424 Tweak to match more variations.
16425 * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16426
16427 * fixinc/inclhack.def (alpha___extern_prefix,
cf551fba 16428 alpha___extern_prefix_standards): New hacks to obey
c53bdcf5 16429 __PRAGMA_EXTERN_PREFIX.
fb2c2608
RO
16430 * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16431 test.
16432 * fixinc/tests/base/standards.h: Likewise.
cf551fba 16433
fb2c2608
RO
16434 * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16435 variations.
16436 New testcase.
16437 * fixinc/tests/base/pthread.h: Handle it.
cf551fba 16438
fb2c2608
RO
16439 * fixincl/inclhack.def (bad_lval): Sort file list.
16440 Add many missing files up to Tru64 UNIX V5.1B.
16441 * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16442 * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16443 order.
cf551fba 16444
fb2c2608
RO
16445 * fixinc/fixincl.x: Regenerate.
16446
79a76d65
MM
164472004-01-16 Mark Mitchell <mark@codesourcery.com>
16448
16449 * version.c (version_string): Change to 3.5.0.
16450 * doc/include/gcc-common.texi (version-GCC): Likewise.
16451
965514bd
JH
164522004-01-16 Jan Hubicka <jh@suse.cz>
16453
16454 * i386.md (load_tp_di): Fix pasto.
16455
16456 PR opt/13608
16457 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16458
16459 * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16460 pp_c_character_constant, pp_c_floating_constant,
16461 pp_c_additive_expression, pp_c_shift_expression,
16462 pp_c_equality_expression, pp_c_and_expression,
16463 pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16464 pp_c_logical_and_expression): Remove inline modifier.
16465 * dwarf2out.c (get_AT): Likewise.
16466 * et-forest.c (et_splay): Likewise.
16467 * ra.h (ra_alloc, ra_calloc): Likewise
16468
87b483a1
KH
164692004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16470
16471 * config/frv/frv-protos.h: Fix comment formatting.
16472 * config/frv/frv.c: Likewise.
16473 * config/frv/frv.h: Likewise.
16474 * config/frv/frv.md: Likewise.
16475 * config/frv/frvbegin.c: Likewise.
16476 * config/frv/frvend.c: Likewise.
16477
16201823
KH
164782004-01-16 Kazu Hirata <kazu@cs.umass.edu>
16479
16480 * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16481 * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16482 LINKER_DOES_NOT_WORK_WITH_DWARF2.
16483 (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16484
115df136
R
164852004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
16486
5ed5fd90 16487 PR 11864
115df136
R
16488 * postreload.c (reload_cse_simplify_operands): Don't remove
16489 implicit extension from LOAD_EXTEND_OP.
16490
e24e7211
JH
164912004-01-16 Jan Hubicka <jh@suse.cz>
16492
8c80adb7
SB
16493 PR opt/11350
16494 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
e24e7211 16495 after reload.
8c80adb7
SB
16496 * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16497 rtl_try_redirect_by_replacing_branch): Likewise.
e24e7211 16498
b0fadda7
GK
164992004-01-15 Geoffrey Keating <geoffk@apple.com>
16500
b604074c
GK
16501 PR pch/13689
16502 * alias.c (struct alias_set_entry): Mark for GC.
16503 (alias_sets): Make static, mark for GC.
16504 (record_alias_subset): Use GC to allocate alias structures.
16505 * varray.c (element): Make generic varrays GCed.
16506
a6dd4094
GK
16507 PR pch/13361
16508 * c-typeck.c (constructor_asmspec): Delete.
16509 (struct initializer_stack): Delete field 'asmspec'.
16510 (start_init): Delete saving of asmspec.
16511 (finish_init): Don't update constructor_asmspec.
16512 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16513 * stmt.c (expand_asm): Duplicate strings from tree.
16514 (expand_asm_operands): Likewise.
16515 * tree.c (tree_size): Update computation of size of STRING_CST.
16516 (make_node): Don't make STRING_CST nodes.
16517 (build_string): Allocate string with tree node.
16518 * tree.def (STRING_CST): Update comment.
16519 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16520 (tree_string): Place contents of string in tree node.
16521 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16522 from tree.
16523
b0fadda7
GK
16524 * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16525 altivec operands.
16526
e0a21ab9
KH
165272004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16528
16529 * c-common.h: Fix comment formatting.
16530 * c-cppbuiltin.c: Likewise.
16531 * c-pragma.c: Likewise.
16532 * calls.c: Likewise.
16533 * collect2.c: Likewise.
16534 * cppcharset.c: Likewise.
16535 * cpptrad.c: Likewise.
16536 * dbxout.c: Likewise.
16537 * defaults.h: Likewise.
16538 * dwarf2out.c: Likewise.
16539 * fold-const.c: Likewise.
16540 * genautomata.c: Likewise.
16541 * genconditions.c: Likewise.
16542 * genflags.c: Likewise.
16543 * gengtype.c: Likewise.
16544 * integrate.c: Likewise.
16545 * loop.c: Likewise.
16546 * predict.c: Likewise.
16547 * sdbout.c: Likewise.
16548
f57fc998
ZW
165492004-01-15 Zack Weinberg <zack@codesourcery.com>
16550
16551 * config/ia64/ia64.md (*movti_internal): C output template
16552 extracted to ia64.c.
16553 (*movti_internal_reg): Delete.
16554 (reload_inti, reload_outti): Use the correct mode on operand 2
16555 in the first place, don't fix it up in the output template.
16556 (movtf, reload_ointf, reload_outtf): New expanders.
16557 (*movtf_internal): New define_insn_and_split.
16558 * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16559 make static; do not hand TFmode CONST_DOUBLEs to split_double.
16560 (ia64_split_tmode_move): New function, body mostly pulled
16561 from ia64.md:*movti_internal.
16562 (ia64_function_arg_words): New function, extracted common
16563 logic from ia64_function_arg et seq.
16564 (ia64_function_arg_offset): Likewise. Handle correctly the
16565 case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16566 (ia64_function_arg, ia64_function_arg_partial_nregs)
16567 (ia64_function_arg_advance): Use ia64_function_arg_words and
16568 ia64_function_arg_offset.
16569 (ia64_function_value): TCmode does not go in float regs.
16570 (ia64_secondary_reload_class): Also handle TFmode.
16571 * config/ia64/ia64-protos.h: Remove prototype for
16572 ia64_split_timode; add prototype for ia64_split_tmode_move.
16573
e9c4897b
KC
165742004-01-15 Kelley Cook <kcook@gcc.gnu.org>
16575
16576 * Makefile.in (MAINT): Make it an immediate assignment.
16577
5a67e41f
KH
165782004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16579
16580 * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16581
340f6494
KH
165822004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16583
16584 * config/h8300/coff.h: Replace Hitachi with Renesas.
16585 * config/h8300/elf.h: Likewise.
16586 * config/h8300/h8300-protos.h: Likewise.
16587 * config/h8300/h8300.c: Likewise.
16588 * config/h8300/h8300.h: Likewise.
16589 * config/h8300/h8300.md: Likewise.
16590 * config/h8300/lib1funcs.asm: Likewise.
16591
c954844a
AP
165922004-01-15 Andrew Pinski <apinski@apple.com>
16593
16594 * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16595 around it.
16596
34bf1fe3
KH
165972004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16598
16599 * config/h8300/h8300.c (h8300_return_in_memory): New.
16600 (TARGET_STRUCT_VALUE_RTX): Likewise.
16601 (TARGET_RETURN_IN_MEMORY): Likewise.
16602 * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16603 (RETURN_IN_MEMORY): Likewise.
16604
e5396f90
RE
166052004-01-15 Richard Earnshaw <rearnsha@arm.com>
16606
16607 PR optimization/13375
16608 * gcse.c (handle_avail_expr): Just return if the source is not a
16609 single set.
16610
46049cff
RE
166112004-01-15 Richard Earnshaw <rearnsha@arm.com>
16612 Daniel Jacobowitz <drow@mvista.com>
16613
16614 * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16615 (EQUIV): Define.
16616 (ARM_FUNC_ALIAS): New macro.
16617 * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16618 * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16619
2fabc3d6
JDA
166202004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16621
16622 PR optimization/12372
16623 * calls.c (expand_call): Add call_fusage data for stack arguments in
16624 constant calls.
16625
3c9eb5f4
AM
166262004-01-15 Alan Modra <amodra@bigpond.net.au>
16627
16628 * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
16629 (rs6000_elf_declare_function_name): Formatting.
16630 * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16631
c7866154
JH
166322004-01-15 Jan Hubicka <jh@suse.cz>
16633
16634 PR bootstrap/13692
16635 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16636 previous patch.
16637
ad5d827d
RH
166382004-01-15 Richard Henderson <rth@redhat.com>
16639
16640 * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16641 integer regs of the same call-savedness.
16642
66e07510
AS
166432004-01-15 Andreas Schwab <schwab@suse.de>
16644
16645 PR bootstrap/13562
16646 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16647 status for NOTB/NOTW/NEGW methods.
16648
7c12f388
KH
166492004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16650
16651 * doc/invoke.texi: Update dump file names. Fix a typo.
16652
4a7bb550
KH
166532004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16654
16655 * builtins.c (expand_builtin_va_end): Don't use
16656 EXPAND_BUILTIN_VA_END.
16657 * system.h (EXPAND_BUILTIN_VA_END): Poison.
16658 * config/d30v/d30v.h: Remove a commented-out definition of
16659 EXPAND_BUILTIN_VA_END.
16660 * config/stormy16/stormy16.h: Likewise.
16661
430fff02
KH
166622004-01-15 Kazu Hirata <kazu@cs.umass.edu>
16663
16664 * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16665 * targhooks.c (default_struct_value_rtx): Don't use
16666 STRUCT_VALUE_INCOMING_REGNUM.
16667
03787dfd
KC
166682004-01-15 Kelley Cook <kcook@gcc.gnu.org>
16669
16670 PR bootstrap/12744
16671 * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16672 GENINSRC and not parsedir. Define srcextra as a langhook.
16673 * configure: Regenerate.
16674 * Makefile.in: Suppress default .l.c rule. Don't substitute
16675 parsedir and delete all references throughout. Conditionally define
16676 rule for srcextra dependent on GENINSRC.
16677 (stmp-docobjdir): Delete.
16678 (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16679 (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16680 and gengtype-yacc.h back to source directory.
16681 (maintainer-clean): Delete all parse files in source directory.
16682 (distclean): Delete generated files.
16683
16684 * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16685 (objc-parse.c, objc-parse.y): Don't use parsedir.
16686 (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16687 directory if requested.
16688 (po-generated): Don't use parsedir.
16689 (objc.maintainer-clean): Delete above files from source directory.
16690
04ab46a4
KH
166912004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16692
16693 * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16694
d624465f
KH
166952004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16696
16697 * doc/tm.texi: Replace RETURN_IN_MEMORY with
16698 TARGET_RETURN_IN_MEMORY.
16699
e1be55d0
JH
167002004-01-15 Jan Hubicka <jh@suse.cz>
16701
16702 * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16703 * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16704 functions accepting SSE arguments
16705 (function_arg): Warn only when asked to warn.
16706 * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16707
f560bf91
JM
167082004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
16709
16710 * c-parse.in (stmts_and_decls): Make label at end of compound
16711 statement a hard error.
16712
95c755e9
JH
167132004-01-14 Jan Hubicka <jh@suse.cz>
16714
16715 * cgraph.c (create_edge): Use local.redefined_extern_inline.
16716 * cgraph.h (cgraph_local_info): Sort fields by size; add
16717 redefined_extern_inline
16718 (cgraph_global_info): Sort fields by size.
16719 (cgraph_node): Likewise.
16720 * cgraphunit.c (cgraph_finalize_function): Se
16721 local.redefined_extern_inline on redefinition.
16722 (cgraph_analyze_function): Use it; fix formating.
16723
84568e14
JH
167242004-01-14 Jan Hubicka <jh@suse.cz>
16725
16726 PR c++/10776
16727 * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16728 outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16729 bitmaps
16730 (cache_size): New variable
16731 (add_dependence): Update use; canonize early memory locations
16732 (sched_analyze_1): Likewise.
16733 (sched_analyze_2): Likewise.
16734 (init_dependency_caches): Initialize bitmaps.
16735 (free_dependency_caches): Free bitmaps
16736
3a179764
KH
167372004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16738
16739 * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16740 targetm.calls.strict_argument_naming().
16741 * target.h: Likewise.
16742
b298f00f
RH
167432004-01-14 Richard Henderson <rth@redhat.com>
16744
16745 PR debug/13231
16746 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16747 instructions.
16748
1bddbeb4
RH
167492004-01-14 Richard Henderson <rth@redhat.com>
16750
16751 PR c++/12491
16752 * except.c (struct eh_region): Add u.fixup.resolved.
16753 (resolve_one_fixup_region): Split out from ...
16754 (resolve_fixup_regions): ... here.
16755
4eb31d4f
KH
167562004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16757
16758 * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16759
16f425fc
KH
167602004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16761
16762 * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16763 * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16764 (STRUCT_VALUE): Remove.
16765
4850c982 167662004-01-14 Steven Bosscher <stevenb@suse.de>
616f6d84
SB
16767
16768 * system.h: Poison PROMOTED_MODE
16769 * integrate.c (expand_inline_function): Don't mention the
16770 PROMOTED_MODE.
16771 * loop.c (update_giv_derive): Same.
16772 * tree.h (DECL_RTL): Same.
16773
f9654065
R
167742004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
16775
16776 PR target/9365
16777 * sh.c (gen_block_redirect): Add special handling of RETURN.
16778 (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16779 far branch target (i.e. it's a return).
16780
abbe8578
KH
167812004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16782
16783 * regrename.c (find_oldest_value_reg): Fix a warning.
16784
192c8d78
RE
167852004-01-14 Richard Earnshaw <rearnsha@arm.com>
16786
16787 PR bootstrap/12527
16788 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16789 Move linux-gas.h and linux-elf.h before aout.h.
16790 * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16791 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16792
e512ab39
KH
167932004-01-14 Kazu Hirata <kazu@cs.umass.edu>
16794
16795 * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16796 (CONST_INT, VOIDmode, ...).
16797
684bcee5
RE
167982004-01-14 Richard Earnshaw <rearnsha@arm.com>
16799
f57fc998 16800 * regrename.c (find_oldest_value_reg): If the replacement uses
684bcee5
RE
16801 multiple hard registers, check that all of them are in CLASS.
16802
e7844ffb
JH
168032004-01-14 Jan Hubicka <jh@suse.cz>
16804
16805 * alias.c (get_alias_set): Initialize alias set to 0 when subset is
16806 impossible.
16807
73e232f0
KC
168082004-01-14 Kelley Cook <kcook@gcc.gnu.org>
16809
16810 * Makefile.in: Define MAINT from --enable-maintainer-mode.
16811
4d774ff8
HP
168122004-01-14 Hartmut Penner <hpenner@de.ibm.com>
16813
16814 * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16815 Calculate always vrsave_mask if TARGET_ALTIVEC.
16816 (rs6000_emit_prologue): Emit code for vrsave
16817 only if TARGET_ALTIVEC_VRSAVE.
16818 (rs6000_emit_epilogue): Likewise.
16819
fa1090f5
EB
168202004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
16821
16822 * config/sparc/sparc.md (tie_add32): Fix pasto.
16823 (tie_add64): Likewise.
16824
79551a56
ZD
168252004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
16826
16827 * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16828
5b8d96f1
KH
168292004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16830
16831 * config/iq2000/iq2000-protos.h: Fix comment formatting.
16832 * config/iq2000/iq2000.c: Likewise.
16833 * config/iq2000/iq2000.md: Likewise.
16834
b98d154e
B
168352004-01-14 J. Brobecker <brobecker@gnat.com>
16836
16837 * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16838 (subrange_type_die): Add handle for nameless subrange types.
16839
1a793acf
KH
168402004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16841
16842 * config/h8300/h8300-protos.h: Replace do_movsi with
16843 h8300_expand_movsi.
16844 * config/h8300/h8300.c (do_movsi): Change to
16845 h8300_expand_movsi.
16846 * config/h8300/h8300.md (movsi): Replace do_movsi with
16847 h8300_expand_movsi.
16848 (movsf): Likewise.
16849
81ad9ded
KH
168502004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16851
16852 * config/h8300/h8300.c (dosize): Change to
16853 h8300_emit_stack_adjustment. Update callers.
16854
3f0063ab
KH
168552004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16856
16857 * config/h8300/h8300.md (movstrictqi): Add an alternative with
16858 the source being post_inc. Tighten the predicate for the
16859 destination to register_operand.
16860 (movstricthi): Likewise.
16861
abf843c4
KH
168622004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16863
16864 * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16865 * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16866 * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16867
4b589eab
JH
168682004-01-14 Jan Hubicka <jh@suse.cz>
16869
d34cb6a1
JH
16870 Partial fix PR c++/12850
16871 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16872 at zero nest level.
4b589eab 16873
9ff2cabc
BI
168742004-01-13 Bernardo Innocenti <bernie@develer.com>
16875
16876 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
f57fc998 16877 pseudo-register.
9ff2cabc 16878
a4d8ec65
DP
168792004-01-13 Devang Patel <dpatel@apple.com
16880
16881 PR debug/7078
f57fc998 16882 * dbxout.c (dbxout_symbol_name): Emit mangled names for
a4d8ec65 16883 NAMESPACE_DECL memebers.
f57fc998 16884
bfaba7a9
AP
168852004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
16886
16887 PR c++/12709
16888 * c-common.c (finish_fname_decls): Use the chain only if the
16889 tree is an expr_stmt.
16890
dfa849f3
VM
168912004-01-13 Vladimir Makarov <vmakarov@redhat.com>
16892
616f6d84 16893 * rtl.def: Add comment about new option in automata_option.
f57fc998 16894
dfa849f3
VM
16895 * genautomata.c (PROGRESS_OPTION): New macro.
16896 (progress_flag): New global variable.
16897 (gen_automata_option): Process `progress'.
16898 (transform_insn_regexps, check_unit_distributions_to_automata,
16899 make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16900 expand_automata, write_automata): Print about the progress only if
16901 progress_flag. Remove fflush.
16902 (initiate_automaton_gen): Process command line flag `-progress'.
16903
16904 * doc/md.texi: Describe the new option.
f57fc998 16905
9405162e
ZD
169062004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
16907
16908 * cfg.c (dump_bb): Dump entry edges.
16909
f954388e
RE
169102004-01-13 Richard Earnshaw <rearnsha@arm.com>
16911
f57fc998 16912 * arm.c (thumb_legitimate_address_p): Only allow constant pool
f954388e
RE
16913 references from SImode.
16914 * arm.md (thumb_movhi_insn): Don't allow minipool references.
16915
0fe7abcc
KH
169162004-01-13 Kazu Hirata <kazu@cs.umass.edu>
16917
16918 * system.h (TEXT_SECTION): Poison.
16919 * varasm.c (text_section): Don't use TEXT_SECTION.
16920 * config/sh/sh.c (sh_file_start): Fix a comment typo.
16921 * doc/tm.texi (TEXT_SECTION): Remove.
16922
fdb07791
BE
169232004-01-13 Ben Elliston <bje@wasabisystems.com>
16924
16925 * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16926
56067bbe
JW
169272004-01-12 James E Wilson <wilson@specifixinc.com>
16928
16929 * unwind-libunwind.c: Delete.
16930
bc298aa7
ZW
169312004-01-12 Zack Weinberg <zack@codesourcery.com>
16932
16933 PR 13656
16934 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
16935 oldtype is set, set *newtypep or *oldtypep too. Do not set
16936 them at the very end.
16937 (validate_proto_after_old_defn): Restructure for comprehensibility;
16938 make error messages clearer.
16939
12a08b40
ZW
169402004-01-12 Zack Weinberg <zack@codesourcery.com>
16941
16942 * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
16943 (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
16944 * varray.c: No need to prototype error.
16945 (varray_check_failed): Wrap long string onto two lines.
16946 (varray_underflow): New function.
16947
faed5cc3
SB
169482004-01-13 Steven Bosscher <stevenb@suse.de>
16949
16950 PR c++/13376
16951 * function.h (struct function): Kill `name' field.
16952 (current_function_name): Make it an extern function.
16953 * function.c (current_function_name): New function.
16954 * graph.c: Update all uses of current_function_name.
16955 * gcse.c: Likewise.
16956 * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
16957 config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
16958 * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
16959 instead of a strcmp with "main".
16960
2d327012
JH
169612004-01-13 Jan Hubicka <jh@suse.cz>
16962
0bb03c11
JH
16963 * c-decl.c (diagnose_mismatched_decls): Fix warning calls.
16964
2d327012
JH
16965 * cgraphunit.c (cgraph_optimize_function): Always do
16966 optimize_inline_calls when there is always_inline callee.
16967 (cgraph_decide_inlining): Fix formating.
16968 * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
16969 functions.
16970 (expand_call_inline): Likewise.
16971 * toplev.h (sorry): Fix prototype.
16972
04cc79bb
RS
169732004-01-12 Roger Sayle <roger@eyesopen.com>
16974
16975 * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
16976 conditional jumps that drop through to unconditional jumps or the
16977 end of the sequence.
16978
3416f5c2
JH
169792004-01-13 Jan Hubicka <jh@suse.cz>
16980
16981 * alias.c (new_alias_set): Construct the alias_set varray.
16982 (init_alias_once): Don't do it here.
16983
f92ed976
ME
169842004-01-12 Marc Espie <espie@openbsd.org>
16985
16986 * system.h: handle YYBYACC like YYBISON.
16987
ff2aaa93
JM
169882004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
16989
16990 PR target/10847
16991 * config.gcc: No longer includes conflicting header sparc/sol2.h when
16992 building on sparc64-*-openbsd*.
16993
c5ff9123
AP
169942004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
16995
16996 PR debug/13539
16997 * dbxout.c (dbxout_type): Protected inheritance is not
16998 private but protected.
16999
3cd2a183
RS
170002004-01-12 Richard Sandiford <rsandifo@redhat.com>
17001
17002 * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17003
5c881655
KH
170042004-01-12 Kazu Hirata <kazu@cs.umass.edu>
17005
17006 PR optimization/12508.
17007 * combine.c (try_combine): Remove a dead set in a parallel
17008 even if its destination is a subreg.
17009
17010 Revert:
17011 2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
17012 * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17013 SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17014
a42f8ae7 170152004-01-12 Geoffrey Keating <geoffk@apple.com>
affad9a4
GK
17016
17017 * real.c: Update copyright date.
17018 * emit-rtl.c: Likewise.
17019 * rtl.h: Likewise.
17020 * dwarf2out.c: Likewise.
17021 * config/rs6000/darwin-ldouble.c: Likewise.
17022 * config/rs6000/rs6000.md: Likewise.
17023
4274207b
DE
170242004-01-12 David Edelsohn <edelsohn@gnu.org>
17025
17026 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17027 TFmode to SImode libfuncs.
17028
06e4eab5
RS
170292004-01-12 Roger Sayle <roger@eyesopen.com>
17030
17031 PR middle-end/11397
17032 * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17033
432f982f
JH
170342004-01-12 Jan Hubicka <jh@suse.cz>
17035
17036 PR opt/12826
17037 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17038 stored.
17039
17040 PR opt/12863
17041 * cfgcleanup.c (label_is_jump_target_p): Move to...
17042 * rtlanal.c (label_is_jump_target_p): ... here.
17043 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
17044 edges unified with branch edges.
17045
8064d930
RE
170462004-01-12 Richard Earnshaw <rearnsha@arm.com>
17047
17048 * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17049 high word of an integral CONST_DOUBLE.
17050
1c48f4be 170512004-01-12 Paul Brook <paul@codesourcery.com>
0786ca87
PB
17052
17053 * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17054
68d2b0bb 170552004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
07d7d2f4
R
17056
17057 PR target/13585
17058 * sh-protos.h (check_use_sfunc_addr): Declare.
17059 * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17060 * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17061
c65ecebc
JH
170622004-01-12 Jan Hubicka <jh@suse.cz>
17063
9ddb66ca
JH
17064 * alias.c: Invlude varray.h
17065 (alias_sets): Turn into varray.
17066 (get_alias_set_entry): Use VARRAY; mark inline.
17067 (mems_in_disjoint_alias_sets_p): Mark inline.
17068 (record_alias_subset): Use varray.
17069 (init_alias_once): Initialize varray.
17070 (new_alias_set): Grow array.
17071 * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17072
170732004-01-12 Jan Hubicka <jh@suse.cz>
17074
17075 Partial fix for PR opt/10776 II
c65ecebc
JH
17076 * cselib.c: Include params.h
17077 (cselib_invalidate_mem): Limit amount of nonconflicting memory
17078 locations.
17079 * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17080 * Makefile.in (cselib.o): Depend on params.h
17081
c0657872
RS
170822004-01-12 Richard Sandiford <rsandifo@redhat.com>
17083
17084 * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17085 simplify_unary_operation if the operand has a known mode.
17086
d2288d5d
HP
170872004-01-12 Hartmut Penner <hpenner@de.ibm.com>
17088
b40ee5d6 17089 PR target/13534
d2288d5d
HP
17090 * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17091 predicate to handle 'ld' conform addresses.
17092 * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17093 contraint.
17094 (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17095 are memory contraints.
12a08b40 17096 * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
d2288d5d 17097 New prototype.
12a08b40 17098 * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
d2288d5d
HP
17099 Change 'o' to 'Y' constraint.
17100 (*movdf_softfloat64): Ditto.
12a08b40 17101
c223cf45
BI
171022004-01-12 Bernardo Innocenti <bernie@develer.com>
17103
17104 * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17105 brace-enclosed syntax in all C output statements.
17106
5fc921c1
DE
171072004-01-12 David Edelsohn <edelsohn@gnu.org>
17108
17109 PR target/13401
17110 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17111 Objective-C language type value is 14.
17112
48568ec7
MO
171132004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
17114
17115 PR c/12148
17116 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17117 `int' in a number of places to make sure we always have a SImode
17118 and not a HImode. Add a 'L' suffix to a number of constants.
17119
124c9423
JDA
171202004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17121
17122 * pa.c: Don't include obstack.h.
17123
17124 * pa.md: Correct constraint in pattern for loading PIC label address.
17125
c924f70c
KK
171262004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
17127
17128 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17129 before defining.
17130
53efeb8d
SB
171312004-01-11 Steven Bosscher <stevenb@suse.de>
17132
1eee14b9 17133 PR fortran/9972
53efeb8d
SB
17134 * toplev.c (rest_of_handle_inline): Also consider functions
17135 for deferral if the language is GNU F77.
17136
d4968a11
ZW
171372004-01-11 Zack Weinberg <zack@codesourcery.com>
17138
17139 * c-decl.c (diagnose_arglist_conflict): Add missing space to
17140 diagnostic messages.
17141
1759c760
JJ
171422004-01-11 Jakub Jelinek <jakub@redhat.com>
17143
17144 PR middle-end/13392
17145 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17146 to drop through label. Don't fall back to SCC even when conditional
17147 jump has not been found.
17148
0bcf8261
JH
171492004-01-11 Jan Hubicka <jh@suse.cz>
17150
fb544601
JH
17151 * invoke.texi: Fix syntax error in previous patch.
17152
0bcf8261
JH
17153 Partial fix for PR opt/10776
17154 * Makefile.in (reload.o): Include param.h
17155 * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17156 * reload.c: Include params.h.
17157 (find_equiv_reg): Work limiting check.
17158 * invoke.texi: Document.
17159
bd9131c0
RS
171602004-01-11 Richard Sandiford <rsandifo@redhat.com>
17161
17162 * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17163 out-of-bounds accesses to string constants. Simplify mips16
17164 case accordingly.
17165
6732ee60
RS
171662004-01-11 Richard Sandiford <rsandifo@redhat.com>
17167
17168 PR optimization/13469
17169 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17170 reload_cse_regs (-fnon-call-exceptions only).
17171
14bc6742
KH
171722004-01-11 Kazu Hirata <kazu@cs.umass.edu>
17173
17174 * config/mcore/lib1.asm: Fix comment formatting.
17175 * config/mcore/mcore-elf.h: Likewise.
17176 * config/mcore/mcore.c: Likewise.
17177 * config/mcore/mcore.h: Likewise.
17178 * config/mcore/mcore.md: Likewise.
17179
3c6e6fbf
ZW
171802004-01-10 Zack Weinberg <zack@codesourcery.com>
17181
17182 * c-decl.c (duplicate_decls): Break apart into...
17183 (diagnose_arglist_conflict, validate_proto_after_old_defn)
17184 (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17185 ... these new functions. Restructure for comprehensibility.
17186 Remove various archaic special cases. Always report the
17187 location of the previous declaration when a diagnostic is issued.
17188 (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17189 (match_builtin_function_types): Delete unnecessary forward declaration.
17190
1e8dcb41
ZW
171912004-01-10 Zack Weinberg <zack@codesourcery.com>
17192
17193 * genautomata.c (make_automaton, NDFA_to_DFA):
17194 Print progress bars with '.' characters instead of '*'.
17195 (build_automaton): Change notes to match.
17196
a2ab189d
KH
171972004-01-10 Kazu Hirata <kazu@cs.umass.edu>
17198
17199 * config/m32r/m32r.md: Use define_constants for unspec and
17200 unspec_volatile.
17201
cf7cb67e
JH
172022004-01-10 Jan Hubicka <jh@suse.cz>
17203
c8fdcfae 17204 PR opt/11635
cf7cb67e
JH
17205 * expr.c (expand_expr_real): More curefully expand union casts.
17206
0574200c
KH
172072004-01-10 Kazu Hirata <kazu@cs.umass.edu>
17208
17209 * config/m32r/m32r.md (flush_icache): Use 1 for
17210 unspec_volatile.
17211
a2a0019f
DE
172122004-01-10 David Edelsohn <edelsohn@gnu.org>
17213 James E Wilson <wilson@specifixinc.com>
17214
17215 PR debug/12860
17216 * dbxout.c (dbxout_symbol): Remove initialization of
17217 current_sym_code, current_sym_value, and current_sym_addr.
17218 (dbxout_symbol_location): Same.
17219 (dbxout_prepare_symbol): Zero current_sym_code,
17220 current_sym_value, and current_sym_addr.
17221
bb3f5384
RS
172222004-01-10 Richard Sandiford <rsandifo@redhat.com>
17223
17224 * tree.c (get_unwidened): Reorder conditions so that the null pointer
17225 check is done first.
17226
fbfb16e2
EC
172272004-01-09 Eric Christopher <echristo@redhat.com>
17228
17229 * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17230 if we're running mark_constant_function.
17231
cc23f3c7
JB
172322004-01-09 Jeff Bailey <jbailey@nisa.net>
17233
17234 PR target/12561
17235 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17236
975421be
AP
172372004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
17238
17239 PR debug/11231
a2a0019f
DE
17240 * dbxout.c (dbxout_type_fields): Return if any item is
17241 error_mark_node or the type is error_mark_node.
975421be 17242
7e4bd541
GK
172432004-01-09 Geoffrey Keating <geoffk@apple.com>
17244
f01519dd
GK
17245 * config/rs6000/darwin-ldouble.c: Add big comment explaining
17246 exactly what is expected as a 'long double'.
17247 (_xlqadd): When a value to be returned is representable as a
17248 'double', just return it directly, do not construct it using a union.
17249 Also, correct final fixup.
17250 (_xlqmul): Likewise.
17251 (_xlqdiv): Likewise.
17252 * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17253
7e4bd541
GK
17254 * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17255
47069ecb
RH
172562004-01-09 Richard Henderson <rth@redhat.com>
17257
17258 * recog.c (constrain_operands): Validate mem operands.
17259
9813058e
JW
172602004-01-09 James E Wilson <wilson@specifixinc.com>
17261
17262 * gcc.c (init_spec): Remove -lunwind from shared case.
17263 * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17264
b0fd7d27
SE
172652004-01-09 Steve Ellcey <sje@cup.hp.com>
17266
17267 * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17268 * configure: Regenerate
17269
3897f229
JM
172702004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
17271
17272 PR c/11234
17273 * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17274 between function and object pointers.
17275 (digest_init): When comparing a pointer to function type to the
17276 target type, only apply TREE_TYPE once to the pointer to function
17277 type.
17278 * except.c (for_each_eh_label_1): Treat data as a pointer to a
17279 function pointer rather than casting it to a function pointer.
17280 (for_each_eh_label): Update caller.
17281 * recog.h (struct insn_data): Use a struct or union for output.
17282 * genoutput.c (output_insn_data): Update.
17283 * final.c (get_insn_template): Update.
17284
0fab64a3
MM
172852004-01-09 Mark Mitchell <mark@codesourcery.com>
17286
17287 * expr.h (expand_expr): Make it a macro, not a function.
17288 (expand_expr_real): New function.
17289 * expr.c (store_expr): Adjust logic for deciding whether or not to
17290 copy the value returned by expand_expr.
17291 (expand_expr): Rename to ...
17292 (expand_expr_real): ... this. Add alt_rtl parameter. Adjust
17293 calls to language hooks.
17294 * c-common.h (c_expand_expr): Adjust prototype.
17295 * c-common.c (c_expand_expr): Add alt_rtl parameter.
17296 * langhooks-def.h (lhd_expand_expr): Change prototype.
17297 * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17298 * langhooks.h (lang_hooks): Change type of expand_expr.
17299 * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17300 (last_expr_alt_rtl): Likewise.
17301 (expand_expr_stmt_value): Set last_expr_alt_rtl.
17302 (clear_last_expr): Clear it.
17303 (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17304 (expand_end_bindings): Save and restor last_expr_alt_rtl.
17305 * tree.def (RTL_EXPR): Give it an additional operand.
17306 * tree.h (RTL_EXPR_ALT_RTL): New macro.
9813058e 17307
df68f43b
KI
173082004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17309
17310 * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
900a35c8 17311 * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
df68f43b 17312
58ebda9c
KH
173132004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17314
17315 PR target/13380.
17316 * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17317 or (ne:SI (reg:CC 17) (const_int 0)).
17318 Be specific about modes wherever possible.
17319
81ad38a6
KH
173202004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17321
17322 * config/m32r/m32r.c (m32r_expand_block_move): Call
17323 gen_movestrsi_internal with two more arguments.
17324 (m32r_output_block_move): Adjust operand numbers.
17325 Properly update the source and destination pointers.
17326 * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17327 'r+'. Change the set detinations to match_operand.
17328
b816f339
KH
173292004-01-09 Kazu Hirata <kazu@cs.umass.edu>
17330
17331 * final.c (FIRST_INSN_ADDRESS): Remove.
17332 (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17333 * system.h (FIRST_INSN_ADDRESS): Poison.
17334 * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17335 * config/m32r/m32r-protos.h: Remove the prototype for
17336 m32r_first_insn_address.
17337 * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17338 * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17339 * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17340
de99511b
B
173412004-01-09 J. Brobecker <brobecker@gnat.com>
17342
17343 * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17344 we just created.
17345 (is_ada_subrange_type): DIEs for enumeration subtypes should be
17346 emitted as subrange types too.
17347 (subrange_type_die): Add handling of enumeration subtypes.
17348
90e4e4c5
RH
173492004-01-08 Richard Henderson <rth@redhat.com>
17350
17351 PR opt/12441
17352 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
9813058e
JW
17353 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17354 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17355 (ix86_address_cost): Be prepared for SUBREGed registers.
17356 (legitimate_address_p): Accept SUBREGed registers.
90e4e4c5 17357
a6a5e4c9
KC
173582004-01-08 Kelley Cook <kcook@gcc.gnu.org>
17359
17360 * Makefile.in: Rename configure.in to configure.ac
17361 * doc/sourcebuild.texi: Likewise.
17362 * configure: Regenerate.
17363 * config.in: Regenerate.
17364
588f75d0
SH
173652004-01-08 Stuart Hastings <stuart@apple.com>
17366
17367 * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17368
6242fcd8
JH
173692004-01-08 Jan Hubicka <jh@suse.cz>
17370
17371 * cgraphunit.c (cgraph_decide_inlining): Fix typo.
17372
a29077da
GK
173732004-01-08 Geoffrey Keating <geoffk@apple.com>
17374
ecb62ae7
GK
17375 * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17376 (UNSPEC_FIX_TRUNC_TF): New constant.
17377 (movtf_internal): Make splitter active only when insn is active.
17378 (extenddftf2): Rewrite to properly load zero into low part.
17379 (extenddftf2_internal): New.
17380 (extendsftf2): Rewrite.
17381 (truncdftf2): Correct length.
17382 (floatditf2): Delete.
17383 (fix_trunc_helper): New.
17384 (fix_trunctfdi2): Use fix_trunc_helper.
17385 (fix_trunctfsi2): Likewise.fix_trunc
17386 (fix_trunctfsi2_internal): New.
17387
a29077da
GK
17388 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17389 addresses are legitimate on Darwin even when flag_pic.
17390 (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17391 non-offsettable addresses for loads of TFmode constants.
17392
cb1f9d03
KI
173932004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17394
17395 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17396 variables in the appropriate bss section.
17397
7ddb6568
AM
173982004-01-09 Alan Modra <amodra@bigpond.net.au>
17399
17400 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17401 target_flags has MASK_POWERPC64 when -m64.
17402 * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17403 to 620, 630, power3, power4 and rs64a entries.
17404 * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17405
effdb493
RS
174062004-01-08 Richard Sandiford <rsandifo@redhat.com>
17407
17408 * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17409 floating-point constants.
17410
fbfd77b8
JB
174112004-01-08 J. Brobecker <brobecker@gnat.com>
17412
17413 * dwarf2out.c (subrange_type_die): Add context_die parameter.
17414 Create the subrange_type DIE using the given context DIE.
17415 (modified_type_die): Update call to subrange_type_die.
17416
174172004-01-08 Zack Weinberg <zack@codesourcery.com>
7ce27103
ZW
17418
17419 * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17420 Add multiple-include guard.
17421
ce1f50b2
HP
174222004-01-08 Hartmut Penner <hpenner@de.ibm.com>
17423
7ce27103
ZW
17424 * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17425 all vector constant loadable by vsplt*.
ce1f50b2
HP
17426 (output_vec_const_move): Likewise.
17427
bca63328
JM
174282004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
17429
17430 PR c/6024
17431 * c-typeck.c (comptypes): Only treat enumerated types in the same
17432 translation unit as compatible with each other when they are the
17433 same type.
17434 * doc/extend.texi: Update.
17435
85b58ca5
JM
174362004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
17437
17438 PR c/12165
17439 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17440 array type from the array element type.
17441
93c9d1ba
AM
174422004-01-07 Alan Modra <amodra@bigpond.net.au>
17443
17444 * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17445 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17446 * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17447 (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17448 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17449
deae8de6
EC
174502004-01-06 Eric Christopher <echristo@redhat.com>
17451
17452 * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17453 (DWARF2_DEBUGGING_INFO): Define.
17454 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17455 * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17456 * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17457 for irix as.
17458 (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17459 * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17460 * config/mips/iris5gas.h: Ditto.
17461 (DBX_DEBUGGING_INFO): Remove.
17462 (DWARF2_DEBUGGING_INFO): Ditto.
17463 (MIPS_DEBUGGING_INFO): Ditto.
17464 (PREFERRED_DEBUGGING_TYPE): Ditto.
17465 * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17466 (PREFERRED_DEBUGGING_TYPE): Ditto.
17467 (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17468 * config/mips/elf64.h: Ditto.
17469
fed2b316
JH
174702004-01-06 Jan Hubicka <jh@suse.cz>
17471
17472 * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17473 (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17474
64d961b8
GK
174752004-01-06 Geoffrey Keating <geoffk@apple.com>
17476
084f5a35
GK
17477 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17478 (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17479 * config/rs6000/darwin-ldouble.c: New.
deae8de6 17480
550d1387
GK
17481 * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17482 for constants.
17483 (constant_subword): Delete.
17484 * rtl.h (constant_subword): Delete prototype.
17485 (immed_double_const): Is not in varasm.c.
17486 * simplify-rtx.c (simplify_immed_subreg): New.
17487 (simplify_subreg): Use simplify_immed_subreg.
17488
0c90aa3c
GK
17489 * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17490 than trying to generate RTL directly.
17491 (fix_trunctfsi2): Use expand_fix rather than trying to generate
17492 RTL directly.
17493
64d961b8
GK
17494 * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17495
72b38561
DE
174962004-01-06 David Edelsohn <edelsohn@gnu.org>
17497
17498 * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17499 function into a separate macro.
17500 (read_only_data_section): Add void argument.
17501 (private_data_section): Same.
17502 (read_only_private_data_section): Same.
17503 (toc_section): Same.
17504
9a609388
JH
175052004-01-06 Jan Hubicka <jh@suse.cz>
17506
0aaae060
JH
17507 * invoke.texi: Remove typo in last change.
17508
9a609388
JH
17509 PR target/10301
17510 * config.gcc: Accept opteron and athlon-64 as variants
17511 of k8.
17512 * i386.c (override_options): Likewise.
17513 * invoke.texi (i386 -mtune): Expand documentation.
17514
5d3cc252
KH
175152004-01-06 Kazu Hirata <kazu@cs.umass.edu>
17516
17517 * alias.c: Fix comment typos.
17518 * builtins.c: Likewise.
17519 * cfg.c: Likewise.
17520 * df.c: Likewise.
17521 * dominance.c: Likewise.
17522 * dwarf2out.c: Likewise.
17523 * emit-rtl.c: Likewise.
17524 * expr.c: Likewise.
17525 * final.c: Likewise.
17526 * fold-const.c: Likewise.
17527 * gcse.c: Likewise.
17528 * genattrtab.c: Likewise.
17529 * genrecog.c: Likewise.
17530 * gensupport.c: Likewise.
17531 * ggc-zone.c: Likewise.
17532 * integrate.c: Likewise.
17533 * local-alloc.c: Likewise.
17534 * loop.c: Likewise.
17535 * recog.c: Likewise.
17536 * regmove.c: Likewise.
17537 * reg-stack.c: Likewise.
17538 * reorg.c: Likewise.
17539 * rtlanal.c: Likewise.
17540 * rtl.h: Likewise.
17541 * sched-ebb.c: Likewise.
17542 * simplify-rtx.c: Likewise.
17543 * toplev.c: Likewise.
17544 * varasm.c: Likewise.
17545
95ea367d
KH
175462004-01-06 Kazu Hirata <kazu@cs.umass.edu>
17547
17548 * doc/install.texi: Fix typos.
17549 * doc/invoke.texi: Likewise.
17550 * doc/md.texi: Likewise.
17551
f26ef713
KI
175522004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
17553
17554 * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17555
bcf17554
JH
175562004-01-06 Jan Hubicka <jh@suse.cz>
17557
17558 * i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
17559 (function_arg_advance): Do not pass aggregates in SSE; deal handling
17560 of MMX_REGPARM.
17561 (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
17562 add MMX_REGPARM.
17563 * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17564 (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17565 (MMX_REGPARM_MAX): Similarly for -mmmx.
17566
24746a42
KH
175672004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17568
17569 * config/sh/linux.h: Fix comment formatting.
17570 * config/sh/netbsd-elf.h: Likewise.
17571 * config/sh/sh.c: Likewise.
17572 * config/sh/sh.h: Likewise.
17573 * config/sh/vxworks.h: Likewise.
17574
f7e7e318
KH
175752004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17576
17577 * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17578 * toplev.c (output_file_directive): Don't use
17579 ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17580
80a08664
SB
175812004-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl>
17582
17583 * toplev.c: Fix broken checkin of 2003-12-30.
17584
02fef853 175852004-01-05 Daniel Berlin <dberlin@dberlin.org>
deae8de6 17586
02fef853
DB
17587 * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17588 (USING_MMAP): We don't support non-mmap.
17589 (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17590 large objects.
17591 (struct page_entry): Remove bytes_free.
17592 (struct page_table_chain): Remove.
17593 (struct globals): Remove page_table member.
17594 (loookup_page_table_entry): Function deleted.
17595 (set_page_table_entry): Ditto.
17596 (ggc_allocated_p): No longer need page table lookups.
17597 (ggc_marked_p): Ditto.
17598 (alloc_small_page): Don't care about bytes_free anymore.
17599 (alloc_large_page): Round up size.
17600 (ggc_alloc_zone_1): Mark large objects as such, and calculate
deae8de6 17601 their size the new way.
02fef853
DB
17602 Remove page table lookups and setting.
17603 (ggc_get_size): Calculate large object size the new way.
17604 (sweep_pages): Redo to account for fact that we no longer have
17605 bytes_free.
17606 (ggc_collect): No longer need to reincrement bytes_free.
17607 (ggc_pch_alloc_object): Handle new large objects properly.
17608 (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17609
60b799fd
KH
176102004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17611
17612 * doc/invoke.texi: Remove a page break.
17613
908c8c7e
KH
176142004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17615
17616 * config/avr/avr.c (avr_output_function_prologue): Remove an
17617 extra pair of curly braces.
17618
8596d0a1
KH
176192004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17620
17621 * config/mn10300/mn10300.c: Fix comment formatting.
17622 * config/mn10300/mn10300.h: Likewise.
17623
1e2d4dc1
RK
176242004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17625
17626 * tree.h: Update documentation on nothrow_flag.
17627 * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17628 types.
17629
b6e69d94
KH
176302004-01-05 Kazu Hirata <kazu@cs.umass.edu>
17631
17632 * doc/invoke.texi: Remove traces of dead ports.
17633
1cf959cb
RS
176342004-01-05 Richard Sandiford <rsandifo@redhat.com>
17635
17636 * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17637 option.
17638
f6149877
RS
176392004-01-05 Richard Sandiford <rsandifo@redhat.com>
17640
17641 PR target/12945
17642 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
b56c0023 17643 counter labels.
f6149877
RS
17644 * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17645 (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17646 string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
17647 the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17648 (mips_symbol_insns): Don't trust the local/global classification.
17649 (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17650 (override_options): Make -mabicalls -fno-unit-at-a-time imply
17651 -mno-explicit-relocs.
17652 (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17653 between local and global symbols.
17654
a6008bd8
RS
176552004-01-05 Richard Sandiford <rsandifo@redhat.com>
17656
17657 * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17658 (mips_preferred_reload_class): Declare.
17659 * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17660 (EXTRA_CONSTRAINT): Update accordingly.
17661 (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17662 * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17663 (mips_preferred_reload_class): New function. Prefer LEA_REGS if
17664 mips_dangerous_for_la25_p.
17665 (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17666 if mips_dangerous_for_la25_p.
17667
d7b3c085
BI
176682004-01-05 Bernardo Innocenti <bernie@develer.com>
17669
17670 * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
deae8de6 17671 warning.
d7b3c085 17672
ca9bc441
NN
176732004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
17674
17675 * configure.ac: Use AC_PROG_CPP_WERROR.
17676 * configure: Regenerate.
17677
016d7f3e
ZW
176782004-01-04 Zack Weinberg <zack@codesourcery.com>
17679
17680 * .cvsignore: Add autom4te.cache.
17681
5a4b3afd
RS
176822004-01-04 Richard Sandiford <rsandifo@redhat.com>
17683
17684 * doc/invoke.texi: Revamp documentation of MIPS options. Remove
17685 -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17686 -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
17687 then architecture options, then ABI options. General rewording.
17688
928a5ba9
JM
176892004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
17690
17691 PR c/3414
17692 * doc/extend.texi: Clarify definition of malloc attribute.
17693
dc0bfe6a
JH
176942004-01-04 Jan Hubicka <jh@suse.cz>
17695
17696 * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17697 * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17698 * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17699 (cgraph_inline_p): Add extra argument reason.
17700 * cgraphunit.c: Minor formating fixes.
17701 cgraph_first_inlined_callee): New functions.
17702 (record_call_1): Record builtins too.
17703 (cgraph_analyze_function): Update inline_failed messages.
17704 (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17705 cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17706 (cgraph_check_inline_limits): Likewise; Add argument reason.
17707 (cgraph_set_inline_failed): New static function.
17708 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17709 reasons.
17710 (cgraph_inline_p): Add new argument reason.
17711 * tree-inline.c (expand_call_inline): Update warning.
17712
ba479fd2
NN
177132004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
17714
914c5af7
NN
17715 * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17716 with modern equivalents.
17717 * configure: Regenerate.
17718
016d7f3e
ZW
17719 * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17720 * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17721 * configure: Regenerate.
78c9cb99 17722
d44f1a00
NN
17723 * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17724
ba479fd2
NN
17725 * configure.in: Rename to configure.ac.
17726 * configure.ac: Renamed from configure.in; make minimum necessary
17727 changes for autoconf 2.5x.
17728 * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17729 * configure: Regenerate with autoconf 2.57.
17730
031a26c5
KH
177312004-01-03 Kazu Hirata <kazu@cs.umass.edu>
17732
17733 * config/mips/linux.h: Fix comment formatting.
17734 * config/mips/mips.c: Likewise.
17735 * config/mips/mips.h: Likewise.
17736 * config/mips/mips.md: Likewise.
17737 * config/mips/netbsd.h: Likewise.
17738 * config/mips/windiss.h: Likewise.
17739
b87cfcfb
RH
177402004-01-02 Richard Henderson <rth@redhat.com>
17741
17742 * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17743 for sse and 387; add suppression for mmx.
17744
36579663
AP
177452004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
17746
9d85830f
AP
17747 * loop.c (loop_optimize): Free all loops_info's mems.
17748
016d7f3e 17749 * c-typeck.c (finish_init): Free spelling_base before
36579663 17750 setting it again.
016d7f3e 17751
36579663
AP
17752 * cfgloop.c (flow_loops_find): Always free the sbitmap
17753 headers.
17754
17755 * predict.c (estimate_probability): Free bbs after being
17756 done with it.
17757
3864b6fe
KH
177582004-01-02 Kazu Hirata <kazu@cs.umass.edu>
17759
17760 * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17761 const_8bit_operand and call_address_operand.
17762
8b6bd5d7
JH
177632004-01-02 Jan Hubicka <jh@suse.cz>
17764
17765 * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
17766 when there is nothing to inline but warnings are requested.
17767 (cgraph_decide_inlining): Fix memory leak.
17768
9b9bd3b2
JH
177692004-01-02 Jan Hubicka <jh@suse.cz>
17770
17771 * expr.c (store_constructor): Fix pasto in previous patch.
17772
43f3a59d
KH
177732004-01-02 Kazu Hirata <kazu@cs.umass.edu>
17774
17775 * config/i386/cygming.h: Fix comment formatting.
17776 * config/i386/djgpp.h: Likewise.
17777 * config/i386/gthr-win32.c: Likewise.
17778 * config/i386/i386-interix.h: Likewise.
17779 * config/i386/i386.c: Likewise.
17780 * config/i386/i386.h: Likewise.
17781 * config/i386/openbsd.h: Likewise.
17782 * config/i386/winnt.c: Likewise.
17783 * config/i386/xm-mingw32.h: Likewise.
17784
daef8bbd
JM
177852004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
17786
17787 * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17788 copyright and last modification dates.
17789
7e081a0c
AJ
177902004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
17791
17792 * doc/install.texi (Specific): Mention x86_64.
17793
ac3f5df7
HPN
177942004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
17795
17796 * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17797 Call force_operand on plus_constant result.
17798
997404de
JH
177992004-01-01 Jan Hubicka <jh@suse.cz>
17800
17801 * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17802 * expr.c (store_constructor): Use vec_init pattern.
17803 * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17804 * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17805 (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17806 * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17807 New patterns.
17808 (sse2_unpc?pd): Fix pattern.
17809 (sse2_movlpd): Kill.
17810 (sse2_movsd): Deal with movlpd too.
17811 * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17812 (ix86_expand_vector_init): New.
17813 * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17814 * md.texi (vec_set, vec_extract): Document
17815
b684a3df
JH
178162003-12-31 Jan Hubicka <jh@suse.cz>
17817
17818 PR opt/13473
17819 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
17820 ASM input operands
17821
17822 PR opt/12617
17823 * toplev.c (dump_file_index): Reorder ce3 and bbro.
17824 (dump_file): Likewise.
17825 (rest_of_compilation): Likewise.
17826
17827 PR debug/13367
17828 * cgraph.c (cgraph_function_possibly_inlined): Even with
17829 flag_really_no_inline we inline always_inline functions.
17830 * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17831 for non-always_inline functions when there is flag_really_no_inline.
17832 (cgraph_decide_inlining): Limit work done when not inlining.
17833 (cgraph_decide_inlining_incrementally): Likewise.
17834 (cgraph_optimize_function): Check whether something got inlined.
17835 * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17836 extern inline functions when not inlining.
17837
17838 * opts.c (decode_options): Disable crossjumping at -O1
17839 * invoke.texi (-O1): Document change.
a55f4481 17840
cd14f58c 17841See ChangeLog.10 for earlier changes.
This page took 2.273517 seconds and 5 git commands to generate.