OSDN Git Service

2001-09-30 H.J. Lu <hjl@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-09-30  H.J. Lu <hjl@gnu.org>
2
3         * acconfig.h (PREFIX_INCLUDE_DIR): New variable.
4         * config.in: Rebuild.
5
6 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7
8         * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
9         ("tsthi_1"): Avoid allocation in register y.
10         ("*movqi_68hc12"): Reorganize and fix constraints.
11         ("zero_extendqisi2"): Prefer d over x and y for operand 1.
12         ("addqi3"): Likewise.
13         ("addhi3"): Fix constraints.
14         ("*logicalhi3_zexthi"): Disparage soft registers.
15
16 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
17
18         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
19         to tmp reg.
20
21 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
22
23         * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so
24         that we use setjmp/longjmp exceptions.
25
26 2001-09-30  Neil Booth  <neil@daikokuya.demon.co.uk>
27
28         * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
29         POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
30         struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
31         _cpp_pool_alloc, _cpp_next_chunk): Remove.
32         (_cpp_extend_buff, BUFF_ROOM): Update.
33         (_cpp_append_extend_buff): New.
34         (struct cpp_reader): Remove macro_pool, add a_buff.
35         * cppinit.c (cpp_create_reader): Initialize a_buff, instead of
36         macro_pool.
37         (cpp_destroy): Free a_buff instead of macro_pool.
38         * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
39         new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
40         _cpp_pool_alloc, ): Remove.
41         (parse_number, parse_string): Update use of _cpp_extend_buff.
42         (_cpp_extend_buff): Update.
43         (_cpp_append_extend_buff, cpp_aligned_alloc): New.
44         * cpplib.c (glue_header_name, parse_answer):
45         Update use of _cpp_extend_buff.
46         (cpp_register_pragma, cpp_register_pragma_space): Use
47         _cpp_aligned_alloc.
48         (do_assert, do_unassert): Check for EOL, update.
49         * cppmacro.c (stringify_arg, collect_args): Update to use
50         _cpp_extend_buff and _cpp_append_extend_buff.
51         (save_parameter, parse_params, alloc_expansion_token,
52         _cpp_create_definition): Rework memory management.
53
54 2001-09-29  Andris Pavenis  <pavenis@lanet.lv>
55
56         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't
57         update md_exec_prefix.
58         (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point
59         to string constant.
60
61 2001-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
62
63         * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode.
64         (SELECT_CC_MODE): Use s390_select_ccmode.
65         * config/s390/s390-protos.h (s390_select_ccmode): Add.
66         * config/s390/s390.c (s390_select_ccmode): New.
67         (s390_match_ccmode): Add CCLmode.
68         (s390_branch_condition_mask, s390_branch_condition_mnemonic): New.
69         (output_branch_condition, output_inverse_branch_condition): Removed.
70         (print_operand): Use s390_branch_condition_mnemonic.
71         * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2,
72         subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode.
73         (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New.
74
75         * config/s390/s390.c (check_and_change_labels): Preserve CC mode
76         when converting conditional branches to far branches.
77         * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si,
78         cmpint_di): Use CCSmode instead of CCUmode.
79
80         * config/s390/s390.c (legitimate_la_operand_p): New.
81         * config/s390/s390-protos.h (legitimate_la_operand_p): Add.
82         * config/s390/s390.md (movsi): Convert load address patterns to
83         arithmetic operations when necessary.
84         (addaddr_picR, addaddr_picL, addaddr_picN): Removed.
85         (do_la): Renamed to *do_la and use legitimate_la_operand_p.
86         (*do_la_reg_0): Don't use before reload.
87
88         * config/s390/s390.c (legitimize_address): Make more efficient
89         use of two-register addressing mode.
90
91         * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog
92         with -mno-backchain in some corner cases.
93
94         * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute.
95
96 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
97
98         * reload.c (find_reloads): Mark new USE insns with QImode.
99         (find_reloads_toplev, find_reloads_address, subst_reg_equivs,
100         find_reloads_subreg_address): Likewise.
101         * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are
102         encountered.
103         * reload1.c (reload_combine_note_use): Likewise, inside USEs and
104         CLOBBERs.
105         (reload): Make sure there are no USEs with mode other than
106         VOIDmode.  At the end, remove those marked with QImode.
107
108 2001-09-29  Per Bothner  <per@bothner.com>
109
110         * cppdefault.c (cpp_include_defaults):  Also search PREFIX_INCLUDE_DIR.
111         * Makefile.in (includedir):  Rename to local_includedir.
112         (includedir):  Define as $(prefix)/include.
113         * config.in (PREFIX_INCLUDE_DIR):  New variable.
114         * configure.in (PREFIX_INCLUDE_DIR):  Test for new variable.
115
116 2001-09-29  Bernd Schmidt  <bernds@redhat.com>
117
118         * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and
119         storehps builtins.
120         * doc/extend.texi (Vector Extensions): New node.
121         * doc/invoke.texi (Machine Dependent Options): Add documentation for
122         i386 -mmmx, -msse, -m3dnow.
123
124 Sat Sep 29 15:08:16 CEST 2001  Jan Hubicka  <jh@suse.cz>
125
126         * doc/invoke.texi (Optimize Options): Revert an accidental checkin.
127
128 2001-09-29  Hans-Peter Nilsson  <hp@axis.com>
129
130         * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn.
131
132         * doc/invoke.texi (Optimize Options): Delete spurious @table.
133
134 2001-09-28  Richard Henderson  <rth@redhat.com>
135
136         * varasm.c (assemble_integer): Bound alignment check by
137         BIGGEST_ALIGNMENT.
138
139         * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
140
141 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
142
143         * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
144
145 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
146
147         Mostly from Graham Stott  <grahams@redhat.com>
148         * c-common.c (type_for_mode): Add support for V2SFmode.
149         * tree.c (build_common_tree_nodes_2): Likewise.
150         * tree.h (enum tree_index, global_trees): Likewise.
151         * config/i386/i386.c (x86_3dnow_a): New variable.
152         (override_options): Support 3Dnow extensions.
153         (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of
154         Athlon's version of 3Dnow.
155         (ix86_init_mmx_sse_builtins): Create 3Dnow builtins.
156         (ix86_expand_builtin): Handle them.
157         (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow.
158         * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW,
159         TARGET_3DNOW_A): New macros.
160         (TARGET_SWITCHES): Add 3Dnow switches.
161         (VALID_MMX_REG_MODE_3DNOW): New macro.
162         (VECTOR_MODE_SUPPORTED_P): Use it.
163         (enum ix86_builtins): Add entries for 3Dnow builtins.
164         * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id,
165         pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3,
166         pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw,
167         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2,
168         pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3,
169         pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns.
170         (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart,
171         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw,
172         mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence,
173         sfence_insn, prefetch): Make these available if TARGET_SSE or
174         TARGET_3DNOW_A.
175         
176 Fri Sep 28 19:18:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
177
178         * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg,
179         ix86_va_start, ix86_build_va_list): Declare.
180         * i386.c (ix86_setup_incoming_varargs, ix86_va_arg,
181         ix86_va_start, ix86_build_va_list): New global functions.
182         * i386.md (sse_prologue_save_insn): New insn.
183         (sse_prologue_save): New expander.
184         * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START,
185         BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros.
186
187 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
188
189         * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff):
190         Use size_t everywhere, make definitions consistent with
191         prototypes.     
192
193 Fri Sep 28 14:59:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
194
195         * gcse.c (replace_store_insn): Use delete_insn.
196         * loop.c (move_movables): Likewise; avoid delete_insn
197         from clobbering notes moved elsewhere.
198         (check_dbra_loop): Use delete_insn.
199         * ssa.c (convert_from_ssa): Likewise.
200         * cse.c (cse_insn): Use delete_insn.
201
202 2001-09-28  Neil Booth  <neil@daikokuya.demon.co.uk>
203
204         * cpphash.h (struct cpp_buff): Make unsigned.
205         (_cpp_get_buff): Take length of size_t.
206         (_cpp_unaligned_alloc): New.
207         (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
208         (struct cpp_reader): Remove ident_pool.  Add u_buff.
209         * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
210         (cpp_destroy): Destroy u_buff, not ident_pool.
211         * cpplex.c (parse_number, parse_string, save_comment,
212         cpp_token_as_text): Update to use the unaligned buffer.
213         (new_buff): Make unsigned.
214         (_cpp_unaligned_alloc): New.
215         * cpplib.c (glue_header_name): Update to use the unaligned buffer.
216         * cppmacro.c (new_number_token, builtin_macro, stringify_arg):
217         Similarly.
218         (collect_args): Make unsigned.
219
220 2001-09-27  Zack Weinberg  <zack@codesourcery.com>
221
222         * cpplex.c (cpp_output_token): Use a putc loop for
223         SPELL_OPERATOR, and fwrite for SPELL_IDENT.
224
225         * configure.in: Detect fwrite_unlocked and fprintf_unlocked.
226         * configure, config.in: Regenerate.
227         * system.h: Replace fwrite and fprintf with their unlocked
228         variants if available.
229
230 2001-09-27  Richard Henderson  <rth@redhat.com>
231
232         * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame
233         in favour of .eh_frame.
234
235 2001-09-27  Aldy Hernandez  <aldyh@redhat.com>
236
237         * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3
238         to macros.
239         (LIBCALL_VALUE): Likewise.
240
241 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
242
243         * cpphash.h: Update comment.
244         * cpplex.c: Update comments.
245         (_cpp_can_paste): Remove.
246         * cpplib.h (_cpp_can_paste): Remove.
247         * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the
248         lexer rather than _cpp_can_paste.
249
250 2001-09-27  Neil Booth  <neil@daikokuya.demon.co.uk>
251
252         * doc/cppinternals.texi: Update.
253
254 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
255
256         * cpphash.h (struct cpp_pool): Remove locks and locked.
257         (struct cpp_context): Add member buff.
258         (struct cpp_reader): Remove member argument_pool.
259         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
260         * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead.
261         * cpplex.c (chunk_suitable): Remove pool argument.
262         (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New.
263         (new_buff, _cpp_extend_buff): Update.
264         (_cpp_get_buff): Fix silly pointer bug.  Be more selective about
265         which buffer is returned.
266         (_cpp_next_chunk, _cpp_init_pool): Pool locking removed.
267         (_cpp_lock_pool, _cpp_unlock_pool): Remove.
268         * cppmacro.c (lock_pools, unlock_pools): Remove.
269         (push_ptoken_context): Take a _cpp_buff.
270         (enter_macro_context): Pool locking removed.
271         (replace_args): Use a _cpp_buff for the replacement list with
272         arguments replaced.
273         (push_token_context): Clear buff.
274         (expand_arg): Use _cpp_pop_context.
275         (_cpp_pop_context): Free a context's buffer, if any.
276
277 2001-09-26  DJ Delorie  <dj@redhat.com>
278
279         * c-typeck.c (digest_init): Check for sizeless arrays.
280
281 2001-09-26  Richard Henderson  <rth@redhat.com>
282
283         * optabs.c (init_one_libfunc): Create a dummy function type
284         instead of using error_mark_node.
285
286 2001-09-26  Neil Booth  <neil@daikokuya.demon.co.uk>
287
288         * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff,
289         _cpp_extend_buff, _cpp_free_buff): New.
290         (struct cpp_reader): New member free_buffs.
291         * cppinit.c (cpp_destroy): Free buffers.
292         * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff,
293         _cpp_extend_buff, _cpp_free_buff): New.
294         * cpplib.h (struct cpp_options): Remove unused member.
295         * cppmacro.c (collect_args): New.  Combines the old parse_arg
296         and parse_args.  Use _cpp_buff for memory allocation.
297         (funlike_invocation_p, replace_args): Update.
298
299 Wed Sep 26 13:20:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
300
301         * final.c (final_scan_insn): Use delete_insn instead of delete_note.
302
303 2001-09-25  Andrew Haley  <aph@cambridge.redhat.com>
304
305         * except.c (sjlj_mark_call_sites): Change address inside sequence.
306
307 2001-09-24  Andrew Haley  <aph@cambridge.redhat.com>
308
309         * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with
310         glibc.
311
312 2001-09-25  Janis Johnson  <janis187@us.ibm.com>
313             Jim Wilson  <wilson@redhat.com>
314
315         * doc/install.texi (Specific, ia64-*-linux): Document.
316
317 Tue Sep 25 17:13:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
318
319         * Makefile.in (cfgrtl.o): Add.
320         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
321         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
322         free_aux_for_edge): Declare.
323         * cfg.c
324         (HAVE_return): Undefine.
325         * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks,
326         free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges,
327         free_aux_for_edge): New global functions.
328         (first_delete_block): New static variable.
329         (init_flow): Clear first_delete_block.
330         (basic_block_for_insn, label_value_list, tail_recursion_label_list,
331          can_delete_note_p, can_delete_label_p, commit_one_edge_insertion,
332          try_redirect_by_replacing_jump, last_loop_beg_note,
333          back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect,
334          delete_insn, delete_insn_chain, create_basic_block_structure,
335          create_basic_block, flow_delete_block, compute_bb_for_insn,
336          free_bb_for_insn, update_bb_for_insn, set_block_for_insn,
337          set_block_for_new_insns, split_block, merge_blocks_nomove,
338          block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
339          redirect_edge_and_branch, force_nonfallthru_and_redirect,
340          force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge,
341          tidy_fallthru_edges, split_edge, insert_insn_on_edge,
342          commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb,
343          debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
344          purge_all_dead_edges): Move to ....
345         * cfgrtl.c: New file; .... Here.
346
347         * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block.
348         (reroder_basic_block): Use alloc_aux_for_blocks.
349         * predict.c (estimate_bb_frequencies): Likewise; use
350         alloc_aux_for_edges.
351         * profile.c (compute_branch_probabilities): Likewise.
352         (branch_prob): Likewise.
353         * reg-stack.c (reg_to_stack): Likewise.
354
355         * emit-rtl.c (emit_insns_after): Never return NULL.
356
357         * basic-block.h (set_block_for_new_insns): Delete.
358         * cfgrtl.c (set_block_for_new_insns): Delete.
359
360         * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn
361         calls when crossjumping.
362
363         * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call.
364         * unroll.c (copy_loop_body): Use delete_insn.
365
366         * final.c (final, final_scan_insn): Use delete_insn/delete_note.
367         * function.c (fixup_var_refs_insn, fixup_var_refs_1,
368         keep_stack_depressed): Likewise.
369         * gcse.c (cprop_cc0_jump): Likewise.
370         * local-alloc.c (update_equiv_regs): Likewise.
371         * loop.c (scan_loop, loop_delete_insns): Likewise.
372         * regmove.c (try_auto_increment, fixup_match_1): Likewise.
373         * reload1.c (reload, calculate_needs_all_insns, reload_as_needed,
374         delete_output_reload, delete_address_reloads_1,
375         reload_cse_delete_noop_set, reload_combine, reload_cse_move2add):
376         Likewise.
377         * sibcall.c (replace_call_placeholder): Likewise.
378         * cse.c (cse_insn): Likewise.
379
380 2001-09-25  Bernd Schmidt  <bernds@redhat.com>
381
382         From Graham Stott  <grahams@redhat.com>
383         (def_builtin): Only define builtins appropriate for target_flags.  All
384         callers changed.
385         (builtin_decsription): Add new field mask which is used to determine
386         when to define the builtin via the macro def_builtin.
387
388         (bdesc_comi): Initialise new mask fields.
389         (bdesc_2srg): Likewise.
390         (bdesc_1arg): Likewise.
391
392         * config/i386/i386.c (ix86_init_builtins): Correct return type
393         building v4hi_ftype_v4hi_int_int tree node.
394         (ix86_expand_sse_comi): Fix typo swapping operands.
395         Don't swap comparision condition, it is already swapped.
396         (ix86_expand_sse_compare): Before swapping operands
397         move operand 1 into new rtx and not the target rtx.
398         Don't swap comparison condition, it is already swapped.
399         Always check whether we need to create a new TARGET.
400
401         * config/i386/i386.md: (sse_comi) Fix typos.
402         (sse_ucomi): Likewise.
403         (cvtss2si): Fix operand 0 contraint.
404         (cvttss2si): Likewise.
405         (sse_unpckhps): Fix mode for operand 2.
406         (sse_unpcklps): Likewise.
407
408 2001-09-25  Graham Stott  <grahams@redhat.com>
409
410         * sibcall.c (skip_copy_to_return_value): Tighten return value
411         copy check.
412
413 2001-09-24  David Edelsohn  <edelsohn@gnu.org>
414
415         * rs6000.c (lwa_operand): Address must be word aligned.
416
417 Mon Sep 24 18:57:59 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
418
419         * tree.c (type_hash_marked_p): Consider as marked if debug symbol
420         number has been set.
421         (type_hash_mark): Mark type itself.
422
423 2001-09-24  Neil Booth  <neil@daikokuya.demon.co.uk>
424
425         * c-lex.c (cb_def_pragma): Update.
426         (c_lex): Update, and skip padding.
427         * cppexp.c (lex, parse_defined): Update, remove unused variable.
428         * cpphash.h (struct toklist): Delete.
429         (union utoken): New.
430         (struct cpp_context): Update.
431         (struct cpp_reader): New members eof, avoid_paste.
432         (_cpp_temp_token): New.
433         * cppinit.c (cpp_create_reader): Update.
434         * cpplex.c (_cpp_temp_token): New.
435         (_cpp_lex_direct): Add PREV_WHITE when parsing args.
436         (cpp_output_token): Don't print leading whitespace.
437         (cpp_output_line): Update.
438         * cpplib.c (glue_header_name, parse_include, get__Pragma_string,
439         do_include_common, do_line, do_ident, do_pragma,
440         do_pragma_dependency, _cpp_do__Pragma, parse_answer,
441         parse_assertion): Update.
442         (get_token_no_padding): New.
443         * cpplib.h (CPP_PADDING): New.
444         (AVOID_LPASTE): Delete.
445         (struct cpp_token): New union member source.
446         (cpp_get_token): Update.
447         * cppmacro.c (macro_arg): Convert to use pointers to const tokens.
448         (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
449         replace_args, quote_string, stringify_arg, parse_arg, next_context,
450         enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
451         _cpp_backup_tokens, _cpp_create_definition): Update.
452         (push_arg_context): Delete.
453         (padding_token, push_token_context, push_ptoken_context): New.
454         (make_string_token, make_number_token): Update, rename.
455         (cpp_get_token): Update to handle tokens as pointers to const,
456         and insert padding appropriately.
457         * cppmain.c (struct printer): New member prev.
458         (check_multiline_token): Constify.
459         (do_preprocessing, cb_line_change): Update.
460         (scan_translation_unit): Update to handle spacing.
461         * scan-decls.c (get_a_token): New.
462         (skip_to_closing_brace, scan_decls): Update.
463         * fix-header.c (read_scan_file): Update.
464
465         * doc/cpp.texi: Update.
466
467 2001-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
468
469         * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC.  Avoid
470         leak by passing malloc'ed pointer to reconcat, not concat.
471
472 2001-09-24  DJ Delorie  <dj@redhat.com>
473
474         * varasm.c (array_size_for_constructor): Handle STRING_CSTs also.
475
476 2001-09-24  Ulrich Weigand  <uweigand@de.ibm.com>:
477
478         * flow.c (delete_dead_jumptables): Delete jumptable if the only
479         reference is from the literal pool.
480
481 2001-09-24  Janis Johnson  <janis187@us.ibm.com>
482
483         * doc/install.texi (Final install): Request additional information
484         in mail about successful builds.
485
486 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
487
488         * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero.  Use
489         initial value of return pointer register instead of value in frame-20.
490         Revise comments.
491
492 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
493
494         * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting.
495         (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for
496         the libcall if there isn't a referenced identifier for the symbol.
497
498 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
499
500         * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for
501         non 64-bit machines.  Use these as a plabel for the trampoline.
502         (TRAMPOLINE_SIZE): Adjust size for new words.
503         (INITIALIZE_TRAMPOLINE): Initialize new words.
504         (TRAMPOLINE_ADJUST_ADDRESS): New.  Adjust address to make it a
505         pointer to the plabel in the trampoline.
506
507 2001-09-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>
508
509         * pa.c (function_arg): Pass floating arguments in both general and
510         floating registers in indirect (dynamic) calls when generating code
511         for the 32 bit ABI and the HP assembler.
512
513 2001-09-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
514
515         * doc/install.texi: Markup fixes.
516         Use Solaris 2, SunOS 4 as appropriate.
517         (Specific, *-*-solaris2*): Explain this.
518         Unconditionally warn against /usr/ucb tools.
519         Remove Sun as warning, obsolete.
520         Move X11 header bug workaround here, update patches.
521         (Specific, sparc-sun-solaris2*): Detail Sun as fix status.
522         (Specific, sparc-sun-solaris2.7): Update patch 106950 status.
523
524 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
525
526         * errors.h (warning, error, fatal, internal_error): Don't mark
527         with ATTRIBUTE_PRINTF_n.
528         * toplev.h (internal_error, fatal_io_error, warning, error,
529         pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
530         error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
531         Likewise.
532
533 Sun Sep 23 18:19:48 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
534
535         * function.c (pop_function_context_from): var_refs_queue
536         and temp slots now in GC memory.
537         (mark_function_status, free_after_compilation): Likewise;
538         also struct function now in GC memory.
539         (assign_stack_temp_for_type): struct temp_slot now in GC memory.
540         (combine_temp_slots): Likewise.
541         (schedule_fixup_var_refs): var_refs_queue now in GC memory.
542         (prepare_function_start): Use GC memory for struct function.
543         (mark_temp_slot): Deleted.
544         (gcc_mark_struct_function): struct function now in GC memory.
545
546         * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
547         code for division, not modulus.
548
549         * rtl.def (MEM): Remove obsolete part of comment.
550
551 2001-09-22  Joseph S. Myers  <jsm28@cam.ac.uk>
552
553         * c-format.c (init_function_format_info): Check __builtin_printf
554         and __builtin_fprintf even if -ffreestanding.  Check C99 functions
555         in gnu89 mode.
556
557 Sat Sep 22 09:09:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
558
559         * c-common.c (format_attribute_table): Remove decl.
560         * tree.h (format_attribute_table, lang_attribute_table): New decls.
561         (lang_attribute_common): Likewise.
562
563         * function.c (fix_lexical_address): Use set_mem_alias_set.
564         (expand_function_start): Likewise.
565         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
566
567         * varasm.c (output_constant): Fix unused variable warning.
568
569         * attribs.c: New file, from c-common.c.
570         (attribute_tables): Now four elements.
571         (format_attribute_table, lang_attribute_common): New variables.
572         (init_attributes): Reflect above changes.
573         (handle_mode_attribute): Delete check for wider than uintmax.
574         * c-common.c: Delete parts moved to attribs.c.
575         (enum attrs): Deleted; unused.
576         (c_format_attribute_table): New variable.
577         (c_common_lang_init): Initialize format_attribute_table with it.
578         * c-common.h (decl_attributes): Remove decl.
579         * tree.h (decl_attribute): Move it to here.
580         * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
581         (attribs.o): New rule.
582
583 2001-09-22  Andreas Jaeger  <aj@suse.de>
584
585         * builtins.c (c_getstr): Remove unused variable.
586
587 2001-09-21  Richard Henderson  <rth@redhat.com>
588
589         * reload1.c (reload): Use delete_insn instead of splatting
590         NOTE_INSN_DELETED.
591
592 2001-09-21  Richard Henderson  <rth@redhat.com>
593
594         * reload.c (push_secondary_reload): Don't check for "=" in output
595         constraint after ""->ALL_REGS check.
596
597 2001-09-21  Richard Henderson  <rth@redhat.com>
598
599         * predict.c (expected_value_to_br_prob): Use pc_set.
600
601         * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
602         ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
603
604 2001-09-21  Richard Henderson  <rth@redhat.com>
605
606         * rtl.h (LCT_RETURNS_TWICE): New.
607         * calls.c (emit_call_1): Set current_function_calls_setjmp for
608         ECF_RETURNS_TWICE.
609         (emit_library_call_value_1): Map LCT_RETURNS_TWICE
610         to ECF_RETURNS_TWICE.
611         * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
612         call to setjmp.
613
614         * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
615
616         * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
617         (JMP_BUF_SIZE): New.
618
619 2001-09-21  Richard Henderson  <rth@redhat.com>
620
621         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
622         to R8_REGS.
623
624 2001-09-21  Richard Henderson  <rth@redhat.com>
625
626         * tree.def (FDESC_EXPR): New.
627         * expr.c (expand_expr): Handle it.
628         * varasm.c (initializer_constant_valid_p): Likewise.
629         (output_constant): Likewise.
630         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
631         * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
632         (ASM_OUTPUT_FDESC): New.
633         * doc/tm.texi: Document the new macros.
634
635 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
636
637         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
638         ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
639         once merging is complete.
640
641 Fri Sep 21 11:20:12 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
642
643         * integrate.c (allocate_initial_values): Eliminate unused arg warning.
644
645 21-09-2001  Richard Earnshaw  (reanrsha@arm.com)
646
647         * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
648         that would be invalid after a merge.
649
650 Fri Sep 21 14:24:29 CEST 2001  Jan Hubicka  <jh@suse.cz>
651
652         * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
653         * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
654         remove some labels.
655         (flow_delete_insn): This one.
656         (delete_insn_chain): Rename from ...; do not care labels.
657         (flow_delete_insn_chain): ... this one.
658         (flow_delete_block): Remove the insns one BB has been expunged.
659         (merge_blocks_nomove): Likewise.
660         (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
661         updating BB boundaries.
662         (tidy_fallthru_edge): Likewise.
663         (commit_one_edge_insertion): Likewise.
664         * cfgbuild.c (find_basic_block): Likewise.
665         (find_basic_blocks_1): Likewise.
666         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
667         (try_crossjump_to_edge): Likewise.
668         (try_optimize_cfg): Likewise.
669         * cse.c (delete_trivially_dead_insns): Likewise.
670         * df.c (df_insn_delete): Likewise.
671         * doloop.c (doloop_modify): Use delete_related_insns.
672         * emit-rtl.c (try_split): Likewise.
673         (remove_insn): Update BB boundaries.
674         * expect.c (connect_post_landing_pads): Use delete_related_insns.
675         * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
676         updating BB boundaries.
677         (propagate_block_delete_insn): Likewise.
678         (propagate_block_delete_libcall): Likewise.
679         * function.c (delete_handlers): Use delete_related_insns.
680         (thread_prologue_and_epilogue_insns): Likewise.
681         * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
682         * genpeep.c (gen_peephole): Use delete_related_insns.
683         * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
684         BB boundaries.
685         (find_cond_trap): Likewise.
686         * integrate.c (save_for_inline): Use delete_related_insns.
687         (copy_insn_list): Likewise.
688         * jump.c (pruge_linie_number_notes): Likewise.
689         (duplicate_loop_exit_test): Likewise.
690         (delete_computation): Likewise.
691         (delete_related_insn): Rename from ...; use delete_insn
692         (delete_insn): ... this one.
693         (redirect_jump): Use delete_related_insns.
694         * loop.c (scan_loop): Likewise.
695         (move_movables): Likewise.
696         (find_and_verify_loops): Likewise.
697         (check_dbra_loop): Likewise.
698         * recog.c (peephole2_optimize): Likewise.
699         * reg-stack.c (delete_insn_for_stacker): Remove.
700         (move_for_stack_reg): Use delete_insn.
701         * regmove.c (combine_stack_adjustments_for_block): Likewise.
702         * reload1.c (delete_address_reloads): Use delete_related_insns.
703         (fixup_abnormal_edges): Use delete_insn.
704         * recog.c (emit_delay_sequence): Use delete_related_insns.
705         (delete_from-delay_slot): Likewise.
706         (delete_scheduled_jump): likewise.
707         (optimize_skip): Likewise.
708         (try_merge_delay_insns): Likewise.
709         (full_simple_delay_slots): Likewise.
710         (fill_slots_from_thread): Likewise.
711         (relax_delay_slots): Likewise.
712         (make_return_insns): Likewise.
713         (dbr_schedule): Likewise.
714         * rtl.h (delete_insn): Rename to delete_related_insns.
715         (delete_insn, delete_insn_chain): New prototypes.
716         * ssa-ccp (sse_fast_dce):  Remove deleting of DEF, as it is done
717         by df_insn_delete already.
718         * ssa-dce.c (delete_insn_bb): Use delete_insn.
719         * ssa.c (convert_from_ssa): Use delete_related_insns.
720         * unroll.c (unroll_loop): Likewise.
721         (calculate_giv_inc): Likewise.
722         (copy_loop_body): Likewise.
723
724         * i386-protos.h (ix86_libcall_value, ix86_function_value,
725         ix86_function_arg_regno_p, ix86_function_arg_boundary,
726         ix86_return_in_memory, ix86_function_value): Declare.
727         * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
728         new static valurables.
729         (x86_64_reg_class): New enum
730         (x86_64_reg_class_name): New array.
731         (classify_argument, examine_argument, construct_container,
732          merge_classes): New static functions.
733         (optimization_options): Enable flag_omit_frame_pointer and disable
734         flag_pcc_struct_return on 64bit.
735         (ix86_libcall_value, ix86_function_value,
736         ix86_function_arg_regno_p, ix86_function_arg_boundary,
737         ix86_return_in_memory, ix86_function_value): New global functions.
738         (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
739         (function_arg_advance): Handle x86_64 passing conventions.
740         (function_arg): Likewise.
741         * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
742         (RETURN_IN_MEMORY): Move offline.
743         (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
744         (FUNCTION_VALUE_REGNO_P): New macro.
745         (FUNCTION_ARG_REGNO_P): Move offline.
746         (struct ix86_args): Add maybe_vaarg.
747         * next.h (FUNCTION_VALUE_REGNO_P): Delete.
748         * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
749
750 2001-09-21  Hartmut Penner  <hpenner@de.ibm.com>
751
752         * s390.md: Changed attributes for scheduling.
753         * s390.c: (s390_adjust_cost, s390_adjust_priority)
754         Changed scheduling
755
756 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
757
758         Table-driven attributes.
759         * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
760         config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
761         config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
762         config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
763         config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
764         config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
765         doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
766         tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
767         * tree.h (struct tree_decl): Change machine_attributes to
768         attributes.
769         * doc/c-tree.texi: Document that all attributes are now attached
770         to decls and types.
771         * c-common.c (add_attribute, attrtab, attrtab_idx,
772         default_valid_lang_attribute, valid_lang_attribute): Remove.
773         (attribute_tables, attributes_initialized,
774         c_common_attribute_table, default_lang_attribute_table): New
775         variables.
776         (handle_packed_attribute, handle_nocommon_attribute,
777         handle_common_attribute, handle_noreturn_attribute,
778         handle_unused_attribute, handle_const_attribute,
779         handle_transparent_union_attribute, handle_constructor_attribute,
780         handle_destructor_attribute, handle_mode_attribute,
781         handle_section_attribute, handle_aligned_attribute,
782         handle_weak_attribute, handle_alias_attribute,
783         handle_no_instrument_function_attribute,
784         handle_no_check_memory_usage_attribute, handle_malloc_attribute,
785         handle_no_limit_stack_attribute, handle_pure_attribute): New
786         functions.
787         (init_attributes, decl_attributes): Rewrite to implement
788         table-driven attributes.
789         * c-common.h (enum attribute_flags): Move to tree.h.
790         * c-format.c (decl_handle_format_attribute,
791         decl_handle_format_arg_attribute): Rename to
792         handle_format_attribute and handle_format_arg_attribute.  Update
793         for table-driven attributes.
794         * c-common.h (decl_handle_format_attribute,
795         decl_handle_format_arg_attribute): Remove prototypes.
796         (handle_format_attribute, handle_format_arg_attribute): Add
797         prototypes.
798         * c-decl.c (grokdeclarator): Handle attributes nested inside
799         declarators.
800         * c-parse.in (setattrs, maybe_setattrs): Remove.
801         (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
802         Update to handle nested attributes properly.
803         (maybe_resetattrs, after_type_declarator,
804         parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
805         absdcl1_ea, direct_absdcl1): Update to handle nested attributes
806         properly.
807         (make_pointer_declarator): Update to handle nested attributes
808         properly.
809         * doc/extend.texi: Update documentation of limits of attributes
810         syntax.  Warn about problems with attribute semantics in C++.
811         * target.h (struct target): Remove valid_decl_attribute and
812         valid_type_attribute.  Add attribute_table and
813         function_attribute_inlinable_p.
814         * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
815         TARGET_VALID_TYPE_ATTRIBUTE): Remove.
816         (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
817         Add.
818         (TARGET_INITIALIZER): Update.
819         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
820         definition.
821         (function_attribute_inlinable_p): New function.  Check for the
822         presence of any machine attributes before using
823         targetm.function_attribute_inlinable_p.
824         (function_cannot_inline_p): Update.
825         * Makefile.in (integrate.o): Update dependencies.
826         * doc/tm.texi: Update documentation of target attributes and
827         example definition of TARGET_VALID_TYPE_ATTRIBUTE.
828         * tree.c (default_valid_attribute_p, valid_machine_attribute):
829         Remove.
830         (default_target_attribute_table,
831         default_function_attribute_inlinable_p): New.
832         (lookup_attribute): Update comment to clarify handling of multiple
833         attributes with the same name.
834         (merge_attributes, attribute_list_contained): Allow multiple
835         attributes with the same name but different arguments to appear in
836         the same attribute list.
837         * tree.h (default_valid_attribute_p): Remove prototype.
838         (struct attribute_spec): New.
839         (default_target_attribute_table): Declare.
840         (enum attribute_flags): Move from c-common.h.  Add
841         ATTR_FLAG_TYPE_IN_PLACE.
842         (default_function_attribute_inlinable_p): Declare.
843         * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
844         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
845         (TARGET_ATTRIBUTE_TABLE): Define.
846         (vms_attribute_table): New.
847         * config/arc/arc.c (arc_valid_decl_attribute): Remove.
848         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
849         (TARGET_ATTRIBUTE_TABLE): Define.
850         (arc_attribute_table, arc_handle_interrupt_attribute): New.
851         * config/arm/arm.c (arm_valid_type_attribute_p,
852         arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
853         Remove.
854         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
855         define.
856         (TARGET_ATTRIBUTE_TABLE): Define.
857         (arm_attribute_table, arm_handle_fndecl_attribute,
858         arm_handle_isr_attribute): New.
859         * config/avr/avr.c (avr_valid_type_attribute,
860         avr_valid_decl_attribute): Remove.
861         (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
862         define.
863         (TARGET_ATTRIBUTE_TABLE): Define.
864         (avr_attribute_table, avr_handle_progmem_attribute,
865         avr_handle_fndecl_attribute): New.
866         * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
867         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
868         (TARGET_ATTRIBUTE_TABLE): Define.
869         (c4x_attribute_table, c4x_handle_fntype_attribute): New.
870         * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
871         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
872         (TARGET_ATTRIBUTE_TABLE): Define.
873         (h8300_attribute_table, h8300_handle_fndecl_attribute,
874         h8300_handle_eightbit_data_attribute,
875         h8300_handle_tiny_data_attribute): New.
876         * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
877         i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
878         Remove prototypes.
879         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
880         declarations.
881         * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
882         (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
883         define.
884         (TARGET_ATTRIBUTE_TABLE): Define.
885         (ix86_attribute_table, ix86_handle_cdecl_attribute,
886         ix86_handle_regparm_attribute): New.
887         * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
888         i386_pe_valid_type_attribute_p): Remove.
889         (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
890         * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
891         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
892         (TARGET_ATTRIBUTE_TABLE): Define.
893         (ia64_attribute_table): New.
894         * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
895         interrupt_ident2, model_ident1, model_ident2): Remove.
896         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
897         (TARGET_ATTRIBUTE_TABLE): Define.
898         (init_idents): Update.
899         (m32r_attribute_table, m32r_handle_model_attribute): New.
900         * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
901         Remove.
902         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
903         (TARGET_ATTRIBUTE_TABLE): Define.
904         (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
905         * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
906         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
907         (TARGET_ATTRIBUTE_TABLE): Define.
908         (mcore_attribute_table, mcore_handle_naked_attribute): New.
909         * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
910         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
911         (TARGET_ATTRIBUTE_TABLE): Define.
912         (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
913         * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
914         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
915         (TARGET_ATTRIBUTE_TABLE): Define.
916         (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
917         * config/sh/sh.c (sh_valid_decl_attribute): Remove.
918         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
919         (TARGET_ATTRIBUTE_TABLE): Define.
920         (sh_attribute_table, sh_handle_interrupt_handler_attribute,
921         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
922         New.
923         * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
924         Remove.
925         (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
926         (TARGET_ATTRIBUTE_TABLE): Define.
927         (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
928         New.
929         * config/v850/v850.c (v850_valid_decl_attribute): Remove.
930         (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
931         (TARGET_ATTRIBUTE_TABLE): Define.
932         (v850_attribute_table, v850_handle_interrupt_attribute,
933         v850_handle_data_area_attribute): New.
934         * config/v850/v850-c.c (mark_current_function_as_interrupt):
935         Return void.  Call decl_attributes instead of
936         valid_machine_attribute.
937
938 Fri Sep 21 01:49:41 2001  J"orn Rennecke <amylaar@redhat.com>
939
940         * sh-protos.h (sh_pr_n_sets): Declare.
941         * sh.c (calc_live_regs): If the initial value for PR has been copied,
942         look at the copy to determine if PR needs to be saved.
943         sh_pr_n_sets: New function.
944         * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
945         (ALLOCATE_INITIAL_VALUE): Define.
946
947         * sh.c (initial_elimination_offset):
948         Fix RETURN_ADDRESS_POINTER_REGNUM case.
949
950 Fri Sep 21 01:13:56 2001  J"orn Rennecke <amylaar@redhat.com>
951
952         * integrate.c (allocate_initial_values): New function.
953         * integrate.h (allocate_initial_values): Declare.
954         * local-alloc.c (local_alloc): Move call to allocate_reg_info from
955         here...
956         * reload1.c (reload): And initialization of reg_equiv_memory_loc
957         from here...
958         * toplev.c (rest_of_compilation): To here.
959         Call allocate_initial_values.
960         * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
961
962 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
963
964         * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
965
966 2001-09-20  DJ Delorie  <dj@redhat.com>
967
968         * c-typeck.c (really_start_incremental_init): Discriminate
969         between zero-length arrays and flexible arrays.
970         (push_init_level): Detect zero-length arrays and handle them
971         like fixed-sized arrays.
972         * expr.c (store_constructor): Handle zero-length arrays and
973         flexible arrays correctly.
974         * doc/extend.texi: Update zero-length array notes.
975
976 2001-09-20  Jim Wilson  <wilson@redhat.com>
977
978         * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
979         (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
980         for issue port conflicts.
981         (cycle_end_fill_slots): TYPE_L instructions take two slots.
982
983 2001-09-20  Andrew MacLeod  <amacleod@redhat.com>
984
985         * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
986         on ia64.
987
988 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
989
990         * fold-const.c (hashtab.h): Include.
991         (int_const_binop): Remove FORSIZE arg and compute from type; all
992         callers changed.
993         Call size_int_type_wide for all single-word constants.
994         (size_htab_hash, size_htab_eq): New functions.
995         (size_int_type_wide): Rework to use hash table.
996         * ggc-common.c (hashtab.h): Include.
997         (struct d_htab_root): New struct.
998         (d_htab_roots): New variable.
999         (ggc_add_deletable_htab, ggc_htab_delete): New functions
1000         (ggc_mark_roots): Handle deletable htabs.
1001         * ggc-page.c (ggc_marked_p): New function.
1002         * ggc-simple.c (ggc_marked_p): Likewise.
1003         * ggc.h: Reformatting throughout.
1004         (ggc_marked_p, ggc_add_deletable_htab): New declarations.
1005         * tree.c (init_obstacks): Make type_hash_table a deletable root.
1006         (type_hash_add): Allocate struct type_hash from GC memory.
1007         (mark_hash_entry, mark_type_hash): Deleted.
1008         (type_hash_marked_p, type_hash_mark): New functions.
1009         * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
1010
1011 Thu Sep 20 12:49:34 2001  J"orn Rennecke <amylaar@redhat.com>
1012
1013         * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
1014         than SImode.
1015
1016 Thu Sep 20 09:00:27 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1017
1018         * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
1019         array-too-large test for signed sizetype.
1020
1021 Thu Sep 20 12:19:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
1022
1023         * i386.md (indirect_jump): Allow Pmode operand.
1024         (tablejump): LIkewise; perform expansion to 64bit mode.
1025         * i386.c (symbolic_operand): Allow 64bit PIC references.
1026         (pic_symbolic_operand): Likewise.
1027         (ix86_find_base_term): Strip the 64bit PIC references.
1028         (legitimate_pic_address_disp_p): Handle 64bit PIC.
1029         (legitimize_pic_address): Likewise.
1030         (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
1031         * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
1032
1033 2001-09-19  Alexandre Petit-Bianco  <apbianco@redhat.com>
1034
1035         * stringpool.c (get_identifier_with_length): New function.
1036         * tree.h (get_identifier_with_length): New prototype.
1037
1038 2001-09-19  Alan Modra  <amodra@bigpond.net.au>
1039             David Edelsohn  <edelsohn@gnu.org>
1040
1041         Revert:
1042         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
1043         already sign-extended.
1044
1045         * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
1046         * config/rs6000/rs6000.c (logical_operand): Always compare op as
1047         HOST_WIDE_INT.
1048         (rs6000_emit_set_long_const): Avoid unnecessary shift.
1049         (output_profile_hook): Declare label_name const.
1050         * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
1051         to match constraints.
1052
1053 2001-09-19  Stan Shebs  <shebs@apple.com>
1054
1055         * alias.c: Fix typos in comments.
1056         * sched-rgn.c (init_ready_list): Ditto.
1057         * unwind-dw2.c (uw_frame_state_for): Ditto.
1058         * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
1059         * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
1060         * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
1061
1062 2001-09-19  Richard Henderson  <rth@redhat.com>
1063
1064         * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
1065         to the exit block.
1066         * Makefile.in (cfg.o): Depend on TM_P_H.
1067
1068 2001-09-19  Richard Henderson  <rth@redhat.com>
1069
1070         * config/alpha/alpha.c (local_symbol_p): Split out from ...
1071         (local_symbolic_operand): ... here.
1072         (small_symbolic_operand): Check mode.
1073         (global_symbolic_operand): New.
1074         (input_operand): Reject symbolics if explicit relocs.
1075         (call_operand): Tidy.
1076         (alpha_legitimize_address): Use movdi_er_high_g.
1077         (alpha_expand_mov): Likewise.
1078         * config/alpha/alpha-protos.h: Update.
1079         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1080         * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
1081         (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
1082         (UNSPECV_LDGP2): Remove.
1083         (all call patterns): Use 's' not 'i' for symbolic constraint.
1084         (call_osf call_value_osf): Use call_operand.
1085         (all osf call patterns): Use $gp.  New peepholes for explicit relocs.
1086         (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
1087         (prologue_ldgp_1_er): Remove.
1088         (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
1089         (builtin_setjmp_receiver_er patterns): Use them.
1090         (exception_receiver_er): Likewise.
1091
1092 2001-09-19  Richard Henderson  <rth@redhat.com>
1093
1094         * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
1095
1096         * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
1097         and NON_LOCAL_GOTO notes.
1098         * recog.c (peephole2_optimize): Likewise.  Handle EH_REGION;
1099         copy over CALL_INSN_FUNCTION_USAGE.
1100
1101 2001-09-18  Catherine Moore  <clm@redhat.com>
1102
1103         * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
1104         Define as 0.
1105
1106 2001-09-18  Ulrich Weigand  <uweigand@de.ibm.com>:
1107
1108         * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
1109         new-style tm_file specification.  Specify correct tm_p_file,
1110         md_file, and out_file for s390x.
1111
1112         * config/s390/linux.h, linux64.h:  Don't include other target
1113         macro header files.  Now handled via tm_file.
1114
1115         * config/s390/linux.h, s390.h:  (IEEE_FLOAT, TARGET_IEEE_FLOAT,
1116         TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
1117         are defined before use.
1118
1119 Tue Sep 18 09:51:11 2001  Eric Christopher  <ecechristo@redhat.com>
1120
1121         * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
1122         code generation only for Gnu assembler.
1123
1124 2001-09-18  Catherine Moore  <clm@redhat.com>
1125
1126         * config/stormy16 (LIB_SPEC): Remove -lnosys.
1127
1128 2001-09-18  Richard Sandiford  <rsandifo@redhat.com>
1129
1130         * config/mips/mips.c (mips_frame_set): New.
1131         (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
1132         a parallel frame-related expression with a set for each register.
1133
1134 2001-09-18  Philip Blundell  <philb@gnu.org>
1135
1136         * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
1137         header files.
1138
1139 2001-09-17  Dale Johannesen  <dalej@apple.com>
1140
1141         * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
1142         * config/rs6000/aix.h (FIXED_R2): Define.
1143         * config/rs6000/darwin.h (FIXED_R2): Define.
1144         * config/rs6000/sysv4.h (FIXED_R2): Define.
1145
1146 2001-09-17  Jeff Sturm  <jsturm@one-point.com>
1147
1148         * except.c (dw2_build_landing_pads): New local
1149         clobbers_hard_regs.  Emit an ASM_INPUT as a scheduling
1150         barrier after clobbers.  Fixes c++/4012.
1151
1152 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1153
1154         * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
1155
1156 2001-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1157
1158         * dostage2, dostage3, listing, make-l2.com, makefile.vms,
1159         patch-apollo-includes, vmsconfig.com: Remove obsolete files.
1160
1161 2001-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1162
1163         * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
1164         alloca/strcpy.
1165
1166 2001-09-17  Neil Booth  <neil@daikokuya.demon.co.uk>
1167
1168         * cpphash.h (_cpp_lex_direct): New.
1169         * cpplex.c (_cpp_lex_token): Update.
1170         (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
1171         and increment that pointer.
1172         * cppmacro.c (alloc_expansion_token): New.
1173         (lex_expansion_token): Lex macro expansion directly into
1174         macro storage.
1175
1176 2001-09-16  Brad Lucier  <lucier@math.purdue.edu>
1177
1178         * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
1179
1180 Sun Sep 16 21:59:46 CEST 2001  Jan hubicka  <jh@suse.cz>
1181
1182         * basic-block.h (free_bb_for_insn): Declare.
1183         * bb-reorder.c (label_for_bb): Use block_label.
1184         (emit_jump_to_block_after): Remove.
1185         (insert_intra_1): Do not update block_for_insn.
1186         (insert_inter_bb_scope_notes): Likewise; update bb->end
1187         * cfg.c (free_bb_for_insn): New.
1188         (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
1189         (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
1190         (commit_one_edge_insertion): Likewise.
1191         (commit_one_edge_insertion): Do not update BB boundary.
1192         (commit_edge_insertions): Do not call compute_bb_for_insn.
1193         * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
1194         * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
1195         (merge_blocks_move_successor_nojumps): Likewise.
1196         (try_crossjump_to_edge): Do not update block_for_insn.
1197         * combine.c (combine_instructions): Remove compute_bb_for_insn call.
1198         * df.c (df_pattern_emit_later): Do not update BB boundary.
1199         (df_jump_pattern_emit_after): Likewise.
1200         (df_insn_move_before): Use emit_insn_before.
1201         * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
1202          properly.
1203         (add_insn_after, add_insn_before, emit_insns_after): Update BB
1204         boundaries and basic_block_for_insn.
1205         (reorder_insns_nobb): Rename from reorder_insns.
1206         (reorder_insns): New.
1207         (emit_block_insn_before, emit_block_insn_after): Kill.
1208         * flow.c (check_function_return_warnings): Do not call
1209         compute_bb_for_insn; Do not free basic_block_for_insn.
1210         (attempt_auto_inc): Do not update basic_block_for_insn.
1211         * function.c (emit_return_into_block): Likewise;
1212         do not update BB boundaries.
1213         * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
1214         (insert_insn_end_bb): Use emit_insn_before; Likewise.
1215         (pre_insert_copy_insn): Likewise.
1216         (update_ld_motion_notes): Likewise.
1217         (insert_insn_start_bb): Likewise.
1218         (replace_store_insn): Likewise.
1219         * ifcvt.c (noce_process_if_block): Likewise.
1220         (if_convert): Do not call compute_bb_for_insn.
1221         * lcm.c (optimize_mode_switching): Do not update BB boundaries.
1222         Use emit_insn_before and emit_insn_after.
1223         * recog.c (split_all_insns): Do not update BB boundaries;
1224         Do not call compute_bb_for_insn.
1225         (peephole2_optimize): Do not update BB boundaries.
1226         * reg-stack.c (emit_pop_insn): Use emit_insn_after and
1227         emit_insn_before.
1228         (emit_swap_insn): Likewise.
1229         (convert_regs_1): Likewise.
1230         * reload1.c (reload): Call compute_bb_for_insn.
1231         * rtl.h (reorder_insns_nobb): Declare.
1232         * ssa.c (rename_equivalent_regs): Use emit_insn_before.
1233         * toplev.c (rest_of_compilation): Call free_bb_for_insn
1234         at places CFG is invalidated; do not call compute_bb_for_insn.
1235
1236         * cfg.c (expunge_block): Invalidate BB structure.
1237
1238         * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
1239         array.
1240
1241         * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
1242
1243 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1244
1245         * cpphash.h (_cpp_lex_token): Update prototype.
1246         * cpplex.c (_cpp_lex_token): New prototype.
1247         * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
1248         lex_macro_node, read_flag, do_pragma_poison): Update.
1249         * cppmacro.c (cpp_get_token, parse_params,
1250         lex_expansion_token): Update.
1251
1252 2001-09-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1253
1254         * cppmain.c (scan_translation_unit): Don't worry about
1255         putting a space after hashes.
1256         * cpplib.c (directive_diagnostics): New.
1257         (_cpp_handle_directive): Update to use directive_diagnostics.
1258         (run_directive): Don't toggle prevent_expansion.
1259         (do_line): Backup in case of the line extension.
1260         * cpplib.h (cpp_lexer_pos): Remove.
1261         * cppmacro.c (_cpp_create_definition): Precede a leading #
1262         with whitespace.
1263
1264 2001-09-15  Richard Henderson  <rth@redhat.com>
1265
1266         * c-typeck.c (comptypes): Handle zero-length arrays properly.
1267
1268 2001-09-15  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1269
1270         * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
1271
1272 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1273
1274         PR preprocessor/3571
1275         * tradcpp.c (handle_directive): Skip non-vertical space.
1276
1277 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1278
1279         * cppmain.c (setup_callbacks): Set line callback only
1280         if outputting preprocessed source.
1281
1282 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1283
1284         * collect2.c (main): Const-ification.
1285         * gcc.c (translate_options, process_command): Use xstrdup in
1286         lieu of xmalloc/strcpy.
1287         (main): Use concat in lieu of xmalloc/strcpy/strcat.
1288
1289 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1290
1291         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
1292         example.
1293
1294 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1295
1296         * scan-decls.c (scan_decls): Fix typo.
1297
1298 2001-09-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1299
1300         * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
1301         Split mlstring_pos into mls_line and mls_col.
1302         * cppinit.c (cpp_create_reader): Initialize line to 1.
1303         (cpp_destroy): Free tokenruns.
1304         (push_include): Don't update lexer_pos.
1305         * cpplex.c (unterminated, parse_string): Update.
1306         (lex_token): Don't update lexer_pos, update.
1307         * cpplib.c (if_stack): Save line instead of line + col.
1308         (start_directive, _cpp_do__Pragma, do_else, do_elif,
1309         push_conditional, _cpp_pop_buffer): Update.
1310         * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
1311         (_cpp_create_definition): Update.
1312
1313 2001-09-15  Eric Christopher  <echristo@redhat.com>
1314
1315         * config/mips/abi64.h: Add support for MEABI.
1316
1317 2001-09-15  Eric Christopher  <echristo@redhat.com>
1318
1319         * config/mips/mips.md: Add unspec #2.
1320         (reload_indi): Use.
1321         (reload_outdi): Ditto.
1322         (reload_outsi): Ditto.
1323         (HILO_delay): New.
1324
1325 2001-09-15  Eric Christopher  <echristo@redhat.com>
1326             Jason Eckhardt  <jle@redhat.com>
1327
1328         * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
1329         * config/mips/isa32-linux.h: New file.
1330         * config/mips/isa3264.h: Ditto.
1331         * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
1332         * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
1333         (output_block_mode): Support MEABI.
1334         (function_arg): Ditto. Fix floating point arg passing.
1335         (mips_va_start): Ditto.
1336         (override_options): Add isas 32 and 64, meabi, mips32 and mips64
1337         processors.
1338         (mips_asm_file_start): Add new section to pass abi to gdb.
1339         (function_arg_pass_by_reference): Support MEABI.
1340         (mips_parse_cpu): Support mips32 and mips64 processors.
1341         * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
1342         TARGET_MIPS5KC.  Support isa32 and isa64.
1343         (processor_type): Add r4kc, r5kc, r20kc.
1344         (GENERATE_MULT3_SI): New.
1345         (GENERATE_MULT3_DI): Ditto.
1346         (GENERATE_MULT3): Remove.
1347         (ISA_HAS_64BIT_REGS): Add isa == 64.
1348         (ISA_HAS_8CC): Add mips_isa = 32 and 64.
1349         (ISA_HAS_MADD_MSUB): New.
1350         (ISA_HAS_CLZ_CLO): Ditto.
1351         (ISA_HAS_DCLZ_DCLO): Ditto.
1352         (ABI_GAS_ASM_SPEC): New.
1353         (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
1354         (ASM_SPEC): Ditto.
1355         (LINK_SPEC): Ditto.
1356         (SUBTARGET_CC1_SPEC): Ditto.
1357         (SUBTARGET_CPP_SIZE_SPEC): Ditto.
1358         (PAD_VARARGS_DOWN): Support MEABI.
1359         (HARD_REGNO_NREGS): Move to mips.c.
1360         (ASM_OUTPUT_IDENT): Add #undef.
1361         * config/mips/mips.md: Add r4kc, r5kc, r20kc.
1362         (mulsi3): Use GENERATE_MULT3_SI.
1363         (mulsi3_mult3): Ditto.  Support mips32, mips64.
1364         (mul_acc_si): Use ISA_HAS_MADD_MSUB.
1365         (mul_sub_si): New pattern.
1366         (unnamed splitters): New.
1367         (muldi3): Use GENERATE_MULT3_DI.
1368         (muldi3_internal2): Ditto.
1369         (movdicc): Support mips32.
1370         * config/mips/t-isa3264: New file.
1371
1372 2001-09-15  Hans-Peter Nilsson  <hp@axis.com>
1373
1374         * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
1375         || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
1376         || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
1377
1378         * reorg.c (fill_slots_from_thread): After call to
1379         steal_delay_list_from_target, update own_thread as new_thread may
1380         have branched.
1381
1382 2001-09-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1383
1384         * cpperror.c (print_location): Take line and column, for
1385         default positioning use the previously lexed token.
1386         (_cpp_begin_message): Take line and column.
1387         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
1388         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
1389         * cpphash.h (_cpp_begin_message): Update prototype.
1390         * cppinit.c (push_include): Don't set output line.
1391         * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
1392         * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
1393         (do_pragma): Kludge for front ends.  Don't expand macros at all.
1394         * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
1395         (struct cpp_token): Remove output_line.
1396         (struct cpp_callbacks): New member line_change.
1397         * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
1398         cpp_get_token): Preserve BOL flag.
1399         (cpp_get_line): Remove.
1400         (_cpp_backup_tokens): Remove useless abort().
1401         * cppmain.c (cb_line_change): New.
1402         (scan_translation_unit): Don't worry about starting new lines here.
1403         * scan-decls.c (scan_decls): Update.
1404         * c-lex.c (c_lex, init_c_lex): Update.
1405         (cb_line_change, src_lineno): New.
1406
1407 Fri Sep 14 13:54:50 EDT 2001  John Wehle  (john@feith.com)
1408
1409         * tree.c (append_random_chars): Generate the random
1410         characters in a reproducable fashion.
1411
1412 2001-09-14  Richard Henderson  <rth@redhat.com>
1413
1414         * config/i386/i386.c (internal_label_prefix): New.
1415         (internal_label_prefix_len): New.
1416         (override_options): Set them.
1417         (local_symbolic_operand): New.
1418         (legitimate_pic_address_disp_p): Use it.
1419         (legitimize_pic_address): Likewise.
1420
1421 2001-09-14  Marc Espie <espie@openbsd.org>
1422
1423         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK):  Generate reference to GOT
1424         correctly.
1425
1426 2001-09-14  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1427
1428         * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
1429         * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
1430
1431 2001-09-14  Nick Clifton  <nickc@cambridge.redhat.com>
1432
1433         * rtlanal.c (subreg_regno_offset): Add semicolon to end of
1434         invocation of SUBREG_REGNO_OFFSET.
1435
1436         * haifa-sched.c: Fix typo in FSF copyright statement.
1437         * sched-deps.c: Fix typo in FSF copyright statement.
1438         * sched-ebb.c: Fix typo in FSF copyright statement.
1439         * sched-rgn.c: Fix typo in FSF copyright statement.
1440         * sched-vis.c: Fix typo in FSF copyright statement.
1441
1442         * config.gcc: Move inclusion of arm elf specific header files
1443         from the files themselves into the tm_file variable.  Make
1444         sure that elfos.h is included before target specific elf
1445         headers.
1446         * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
1447         already defined.
1448         (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
1449         * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
1450         ASM_OUTPUT_CASE_LABEL): Protect definition.
1451         (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
1452         not already defined.
1453         * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
1454         LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
1455         Remove duplicate definition.
1456         (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
1457         (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
1458         (RDATA_SECTION_FUNCTION): Remove redundant definition.
1459         (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
1460         Remove inclusion of arm/elf.h.
1461         * config/arm/unknown-elf.h: as for conix-elf.h.
1462         (STARTFILE_SPEC): Include crti.o and crtn.o.
1463         * config/arm/linux-elf.h: as for conix-elf.h.
1464         * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
1465         * config/arm/strongarm-elf.h: Remove inclusion of
1466         unknown-elf.h.
1467         * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
1468         * config/arm/unknown-elf-oabi.h: Remove inclusion of
1469         unknown-elf.h and elf.h.
1470         * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
1471         * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
1472         ASM_WEAKEN_LABEL): Remove redundant definition.
1473         * config/arm/elf.h: Test for inclusion of elfos.h
1474         (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
1475         ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
1476         SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
1477         EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
1478         redundant definition.
1479         (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
1480         ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
1481         ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
1482         * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
1483         Add rules to build crti.o and crtn.o
1484         * crti.asm: New file.
1485         * crtn.asm: New file.
1486
1487 2001-09-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1488
1489         * c-parse.in (_yylex): Use _cpp_backup_tokens.
1490         * cpphash.h (struct tokenrun): Add prev.
1491         (struct lexer_state): Remove bol.
1492         (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
1493         (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
1494         : Remove.
1495         * cppinit.c (cpp_create_reader): Don't set bol.
1496         (cpp_destroy): Don't free lookaheads.
1497         * cpplex.c (lex_directive): Remove.
1498         (next_tokenrun): Update.
1499         (_cpp_lex_token): Clean up logic.
1500         (lex_token): Update to return a pointer to lexed token, since it
1501         can move to the start of the buffer.  Simpify newline handling.
1502         * cpplib.c (SEEN_EOL): Update.
1503         (skip_rest_of_line): Remove lookahead stuff.
1504         (end_directive): Line numbers are already incremented.  Revert
1505         to start of lexed token buffer if we can.
1506         (_cpp_handle_directive, do_pragma, do_pragma_dependency,
1507         parse_answer): Use _cpp_backup_tokens.
1508         (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
1509         instead.  Don't check for EOL.
1510         (do_include_common, do_line, do_pragma_system_header): Use
1511         skip_rest_of_line.
1512         * cpplib.h (BOL, _cpp_backup_tokens): New.
1513         * cppmacro.c (save_lookahead_token, take_lookahead_token,
1514         alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
1515         cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
1516         (builtin_macro): Don't use cpp_get_line.
1517         (cpp_get_line): Short term kludge.
1518         (parse_arg): Handle directives in arguments here.  Back up when
1519         appropriate.  Store EOF at end of argument list.
1520         (funlike_invocation_p): Use _cpp_backup_tokens.
1521         (push_arg_context): Account for EOF at end of list.
1522         (cpp_get_token): Remove lookahead stuff.  Update.
1523
1524 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1525
1526         * c-parse.in (yyerror): Const-ification and/or static-ization.
1527         * c-typeck.c (push_member_name): Likewise.
1528         * collect2.c (main): Likewise.
1529         * dbxout.c (dbxout_parms): Likewise.
1530         * diagnostic.c (format_with_decl): Likewise.
1531         * dwarf2out.c (output_ranges): Likewise.
1532         * dwarfout.c (fundamental_type_code): Likewise.
1533         * except.c (dw2_output_call_site_table): Likewise.
1534         * gcc.c (do_spec_1): Likewise.
1535         * genopinit.c (optabs): Likewise.
1536         * objc/objc-act.c (synth_id_with_class_suffix, start_class,
1537         gen_declaration_1, handle_impent): Likewise.
1538         * protoize.c (default_include, in_system_include_dir, abspath):
1539         Likewise.
1540         * sched-vis.c (visualize_stall_cycles): Likewise.
1541         * sdbout.c (plain_type_1, sdbout_end_function,
1542         sdbout_end_epilogue): Likewise.
1543         * varasm.c (decode_reg_name): Likewise.
1544
1545         * 1750a.c (mod_regno_adjust): Likewise.
1546         * alpha.c (alpha_write_one_linkage,
1547         unicosmk_output_default_externs): Likewise.
1548         * arm.c (arm_condition_codes): Likewise.
1549         * arm.h (arm_condition_codes): Likewise.
1550         * avr.c (output_movsisf, encode_section_info): Likewise.
1551         * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
1552         Likewise.
1553         * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1554         * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1555         * m88k.c (output_function_profiler): Likewise.
1556         * mips.c (mips_output_conditional_branch): Likewise.
1557         * ns32k.c (ns32k_out_reg_names): Likewise.
1558         * ns32k.h (ns32k_out_reg_names): Likewise.
1559         * pj.c (pj_output_rval): Likewise.
1560         * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
1561         * sparc.c (sparc_flat_function_prologue,
1562         sparc_flat_function_epilogue): Likewise.
1563
1564 2001-09-13  Markus Werle <numerical.simulation@web.de>
1565             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1566
1567         * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
1568         Aachen University of Technology".
1569
1570 2001-09-13  Andreas Schwab  <schwab@suse.de>
1571
1572         * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
1573         C99.
1574
1575 2001-09-13  Richard Henderson  <rth@redhat.com>
1576
1577         * config/alpha/alpha.c (small_symbolic_operand): New.
1578         (override_options): Set MASK_SMALL_DATA based on pic/PIC.
1579         (some_operand, input_operand): Don't handle HIGH.
1580         (alpha_legitimize_address): Use it.  Emit HIGH with PLUS gp.
1581         (alpha_expand_mov): Likewise.
1582         (print_operand) [H]: Just print HIGH symbol.
1583         (print_operand_address): Handle small data.
1584         * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
1585         (TARGET_SWITCHES): Add -msmall-data/large-data.
1586         (PIC_OFFSET_TABLE_REGNUM): New.
1587         (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
1588         (PREDICATE_COES): Update.
1589         * config/alpha/alpha.md (adddi_er_high): New.
1590         (adddi_er_low): Handle small data.
1591         * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
1592         prefer .sdata to .rodata.
1593         (SELECT_RTX_SECTION): Likewise.
1594
1595 2001-09-12  Josh Martin  <josh.martin@abq.sc.philips.com>
1596
1597         * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
1598         defining __size_t and leaving size_t undefined.
1599
1600 2001-09-12  Diego Novillo  <dnovillo@redhat.com>
1601
1602         * basic-block.h (expunge_block): Declare.
1603         * cfg.c (expunge_block): Remove static declaration.
1604
1605 2001-09-12  Richard Henderson  <rth@redhat.com>
1606
1607         * integrate.c (copy_insn_list): Copy label name from
1608         NOTE_INSN_DELETED_LABEL.
1609
1610 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1611
1612         * c-common.c (c_tree_code_name): Const-ification.
1613         * c-decl.c (c_decode_option): Likewise.
1614         * c-typeck.c (warn_for_assignment): Likewise.
1615         * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
1616         Likewise.
1617         * cppinit.c (output_deps): Likewise.
1618         * dependence.c (dependence_string, direction_string): Likewise.
1619         * dwarf2out.c (output_ranges): Likewise.
1620         * fixinc/fixfixes.c (emit_gnu_type): Likewise.
1621         * fixinc/gnu-regex.c (re_error_msgid): Likewise.
1622         * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
1623         standard_startfile_prefix, standard_startfile_prefix_1,
1624         standard_startfile_prefix_2, tooldir_base_prefix,
1625         standard_bindir_prefix, find_a_file): Likewise.
1626         * genattrtab.c (make_length_attrs): Likewise.
1627         * gencheck.c (tree_codes): Likewise.
1628         * genemit.c (gen_split): Likewise.
1629         * genrecog.c (special_mode_pred_table): Likewise.
1630         * graph.c (graph_ext): Likewise.
1631         * protoize (default_include): Likewise.
1632         * reload.c (reload_when_needed_name): Likewise.
1633         * sched-vis.c (visualize_stall_cycles): Likewise.
1634         * tlink.c (recompile_files): Likewise.
1635         * toplev.c (decode_g_option): Likewise.
1636         * tradcpp.c (output_deps): Likewise.
1637         * varasm.c (decode_reg_name): Likewise.
1638
1639         * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
1640         Const-ification.
1641         * arm.md: Likewise.
1642         * avr.c (avr_regnames, encode_section_info): Likewise.
1643         * c4x.c (float_reg_names): Likewise.
1644         * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
1645         * elfos.h (const_section): Likewise.
1646         * i386.c (ix86_comp_type_attributes): Likewise.
1647         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
1648         * ia64/aix.h (UNIQUE_SECTION): Likewise.
1649         * ia64.c (type_names): Likewise.
1650         * m68hc11.c (reg_class_names): Likewise.
1651         * m88k.c (m_options): Likewise.
1652         * mips.c (mips_output_conditional_branch, mips_unique_section):
1653         Likewise.
1654         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1655         * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
1656         ultra_code_names): Likewise.
1657         * sparc.h (OVERRIDE_OPTIONS): Likewise.
1658
1659 2001-09-12  Jakub Jelinek  <jakub@redhat.com>
1660
1661         * configure.in (gcc_cv_as_shf_merge): Fix a typo.
1662         Use --fatal-warnings option for gas.
1663         * configure: Rebuilt.
1664
1665 2001-09-12  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1666
1667         * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
1668
1669 2001-09-11  Jim Wilson  <wilson@redhat.com>
1670
1671         * alias.c (clear_reg_alias_info): Only handle pseudo registers.
1672
1673 2001-10-11  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
1674
1675         * builtins.c (c_strlen): Treat an offset too large for a
1676         HOST_WIDE_INT as out of range.
1677
1678 Tue Sep 11 18:57:47 CEST 2001  Jan Hubicka  <jh@suse.cz>
1679
1680         * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
1681         (EDGE_CRITICAL_P): New predicate.
1682         * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
1683         handling.
1684         (insert_insn_on_edge): Use EDGE_CRITICAL_P.
1685         (dump_edge_info): Remove "crit".
1686         * cfganal.c (mark_critical_edges): Kill.
1687         * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
1688         * cfgcleanup.c (cleanup_cfg): Likewise.
1689         * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
1690         (find_spanning_tree): Likewise.
1691         * reg-stack.c (convert_regs_1): Likewise.
1692         * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
1693
1694         * basic-block.h (create_basic_block_structure): New.
1695         (create_basic_block): Update prototype.
1696         (force_nonfallthru): New.
1697         * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
1698         * cfg.c (create_basic_block_structure): Rename from create_basic_block;
1699         handle updating of block_for_insn, creating of empty BBs and BBs at
1700         the end of INSN chain.
1701         (create_basic_block): New function.
1702         (split_block): Use create_basic_block.
1703         (force_nonfallthru_and_redirect): Break out from ...; cleanup
1704         (redirect_edge_and_branch_force): ... here.
1705         (force_nonfallthru): New.
1706         (split_edge): Rewrite to use force_nonfallthru and create_block.
1707         * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
1708         (find_basic_blocks): Free basic_block_for_insn.
1709         * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
1710
1711         * cfg.c: Fix formating.
1712         * cfgcleanup.c: Fix formating.
1713         (merge_blocks, tail_recursion_label_p): Return bool.
1714         (merge_blocks_move_predecessor_nojumps,
1715          merge_blocks_move_successor_nojumps): Return void.
1716
1717 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
1718
1719         * configure.in: Check whether assembler supports section merging.
1720         * config.in: Rebuilt.
1721         * configure: Rebuilt.
1722         * varasm.c (variable_section, output_constant_pool): Pass alignment
1723         to SELECT_SECTION and SELECT_RTX_SECTION.
1724         (mergeable_string_section): New.
1725         (mergeable_constant_section): New.
1726         (default_elf_asm_named_section): Output SECTION_MERGE and
1727         SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1728         * output.h (mergeable_string_section): New.
1729         (mergeable_constant_section): New.
1730         (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
1731         * toplev.c (flag_merge_constants): New.
1732         (f_options): Add -fmerge-constants and -fmerge-all-constants
1733         options.
1734         (toplev_main): Default to -fno-merge-constants if not optimizing.
1735         * flags.h (flag_merge_constants): Add extern.
1736         * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
1737         * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
1738         argument.
1739         * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
1740         Define if assembler has working .subsection -1 support.
1741         (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
1742         Put constant into special SHF_MERGE sections if the linker should
1743         attempt to merge duplicates.
1744         * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
1745         macro argument.
1746         Put constant into special SHF_MERGE sections if the linker should
1747         attempt to merge duplicates.
1748         * config/alpha/elf.h: Likewise.
1749         (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
1750         has working .subsection -1 support.
1751         * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
1752         SELECT_SECTION.
1753         * config/svr3.h: Likewise.
1754         * config/darwin.h: Likewise.
1755         * config/arm/aof.h: Likewise.
1756         * config/arm/linux-elf.h: Likewise.
1757         * config/avr/avr.h: Likewise.
1758         * config/c4x/c4x.h: Likewise.
1759         * config/d30v/d30v.h: Likewise.
1760         * config/i386/dgux.h: Likewise.
1761         * config/i386/osfrose.h: Likewise.
1762         * config/i386/sco5.h: Likewise.
1763         * config/i386/svr3gas.h: Likewise.
1764         * config/ia64/aix.h: Likewise.
1765         * config/m32r/m32r.h: Likewise.
1766         * config/m68k/m68k.h: Likewise.
1767         * config/m88k/dgux.h: Likewise.
1768         * config/m88k/m88k.h: Likewise.
1769         * config/mcore/mcore-pe.h: Likewise.
1770         * config/mips/mips.h: Likewise.
1771         * config/pa/pa.h: Likewise.
1772         * config/pa/pa-linux.h: Likewise.
1773         * config/romp/romp.h: Likewise.
1774         * config/rs6000/sysv4.h: Likewise.
1775         * config/rs6000/xcoff.h: Likewise.
1776         * config/s390/linux.h: Likewise.
1777         * config/sparc/sparc.h: Likewise.
1778         * config/sparc/sysv4.h: Likewise.
1779         * config/stormy16/stormy16.h: Likewise.
1780         * config/v850/v850.h: Likewise.
1781         * config/vax/vms.h: Likewise.
1782         * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
1783         and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1784         * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
1785         default_elf_asm_named_section for SHF_MERGE sections.
1786
1787 Tue Sep 11 17:55:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
1788
1789         * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
1790         is OK.
1791
1792 2001-09-11  Joseph S. Myers  <jsm28@cam.ac.uk>
1793
1794         * c-common.c (split_specs_attrs): Allow for empty attributes with
1795         empty TREE_PURPOSE.  Fixes PR c/4294.
1796
1797 Tue Sep 11 11:37:52 CEST 2001  Jan Hubicka  <jh@suse.cz>
1798
1799         * basic-block.h (cached_make_edge, make_single_succ): New.
1800         (make_edge): Remove first parameter.
1801         * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
1802         * cfg.c (cached_make_edge): Rename from make_edge; return newly
1803         created edge; use obstack allocation.
1804         (make_edge, make_single_succ_edge): New.
1805         (first_removed_edge): New static variable.
1806         (init_flow): Initialize first_removed_edge and n_edges.
1807         (clear_edges): Use remove_edge.
1808         (flow_delete_block): Likewise.
1809         (remove_edge): Add removed edges to the removed edges list.
1810         (split_block, redirect_edge_and_branch_force, split_edge):
1811         Use make_edge.
1812         * cfganal.c (flow_call_edges_add): Updaet make_edge call.
1813         (add_noreturn_fake_exit_edges): Likewise.
1814         (connect_infinite_loops_to_exit): Liekwise.
1815         * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
1816         Use cached_make_edge.
1817         * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
1818         * profile.c (branch_prob): Update make_edge call.
1819         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
1820
1821 2001-09-11  Richard Henderson  <rth@redhat.com>
1822
1823         * config/alpha/alpha.c: Tidy formatting.
1824         (local_symbolic_operand): Verify mode.
1825         (alpha_sa_mask): Ignore unicos for eh_return.
1826         (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
1827         * config/alpha/alpha.md (umk divsi patterns): Remove.
1828         (extendsfdf2): Remove unicos check.
1829         (tablejump): Merge vms and unicos code; always use direct set
1830         plus label_ref use.
1831
1832 2001-09-11  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
1833
1834         * config.gcc (alpha*-*-unicosmk*): New target.
1835
1836         * config/alpha/alpha-protos.h (symbolic_operand,
1837         unicosmk_add_call_info_word, unicosmk_add_extern,
1838         unicosmk_defer_case_vector, unicosmk_unique_section,
1839         unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
1840         unicosmk_asm_file_start, unicosmk_asm_file_end,
1841         unicosmk_output_common): Declare.
1842
1843         * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
1844         direct_return, function_arg, alpha_va_start, alpha_va_arg,
1845         alpha_does_function_need_gp, alpha_end_function): Support Cray
1846         Unicos/Mk.
1847         (alpha_init_machine_status, alpha_mark_machine_status,
1848         alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
1849         unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
1850         unicosmk_asm_named_section, unicosmk_insert_attributes,
1851         unicosmk_section_type_flags, symbolic_operand,
1852         unicosmk_output_module_name, unicosmk_output_default_externs,
1853         unicosmk_output_dex, unicosmk_output_externs,
1854         unicosmk_output_addr_vec, unicosmk_ssib_name,
1855         unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
1856         unicosmk_asm_file_end, unicosmk_output_common,
1857         unicosmk_section_type_flags, unicosmk_unique_section,
1858         unicosmk_add_call_info_word, unicosmk_text_section,
1859         unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
1860         unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
1861         unicosmk_dex_count, unicosmk_special_name): New.
1862         (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
1863         TARGET_ABI_UNICOSMK.
1864         (get_aligned_mem, alpha_expand_unaligned_load,
1865         alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
1866         alpha_expand_unaligned_store_words): Support big-endian mode.
1867         (print_operand): Likewise. New format specifier 't'. Use
1868         TARGET_AS_SLASH_BEFORE_SUFFIX.
1869         (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
1870         (alpha_pv_save_size): Update with above change.
1871         (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
1872         alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
1873         Unicos/Mk.
1874
1875         * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
1876         (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
1877         (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
1878         (EXTRA_CONSTRAINT): New constraint 'U'.
1879         (PREDICATE_CODES): Add symbolic_operand.
1880
1881         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
1882         UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
1883         (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
1884         (integer division and modulus patterns): Split in default and
1885         Unicos/Mk versions.
1886         (*divmodsi_internal, *divmoddi_internal): Disable for
1887         TARGET_ABI_UNICOSMK.
1888         (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
1889         little-endian and big-endian versions.
1890         (ext, ins, msk): Likewise.
1891         (extv, extzv, insv): Support big-endian mode.
1892         (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
1893         (call_umk, call_value_umk, *call_umk, tablejump_umk,
1894         *tablejump_umk_internal, *call_value_umk): New.
1895         (*movdi_nofix): Add pattern for loading an address into a register on
1896         TARGET_ABI_UNICOSMK.
1897         (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
1898         (umk_mismatch_args, arg_home_umk): New.
1899         (various insns): Don't use mov, fmov, nop, fnop and unop.
1900         (realign): Support TARGET_ABI_UNICOSMK.
1901
1902         * config/alpha/unicosmk.h: New file.
1903         * config/alpha/t-unicosmk: New file.
1904
1905         * fixinc/inclhack.def (unicosmk_restrict): New.
1906         * fixinc/fixincl.x: Regenerate.
1907
1908         * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
1909         (wchar_t): Check for and define __WCHAR_T__.
1910
1911 2001-09-11  Richard Sandiford  <rsandifo@redhat.com>
1912
1913         * combine.c (simplify_shift_const): Treat shifts by the mode
1914         size as undefined.
1915
1916 2001-09-11  Neil Booth  <neil@daikokuya.demon.co.uk>
1917
1918         * cpphash.h (struct tokenrun): New.
1919         (struct cpp_context): New member bol.
1920         (struct cpp_reader): New members.
1921         (_cpp_init_tokenrun): New.
1922         * cppinit.c (cpp_create_reader): Set up the token runs.
1923         * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
1924         (lex_token): New internalised version of _cpp_lex_token.  Don't
1925         handle directives or the multiple include opimisation here any
1926         more.  Simply lex a token.
1927         * cpplib.c (run_directive): Clear bol.
1928         (_cpp_pop_buffer): Set bol.
1929         * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
1930         arguments.
1931
1932 2001-09-11  Michael Meissner  <meissner@redhat.com>
1933
1934         * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
1935         give an error if the user uses -mfp32.
1936         (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
1937         default options.
1938         (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
1939         floating point register size.
1940         (EXTRA_SPECS): Add CPP_FPR_SPEC.
1941
1942         * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
1943         HOST_WIDE_INT_PRINT_DEC to properly print the result of
1944         int_size_in_bytes.
1945         * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
1946         * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
1947
1948 2001-09-11  Hans-Peter Nilsson  <hp@axis.com>
1949
1950         * dbxout.c (dbxout_parms): Fix typo in comment.
1951         * unroll.c (loop_find_equiv_value): Ditto.
1952         * toplev.c (rest_of_compilation): Ditto.
1953         * loop.c (scan_loop): Ditto.
1954         * dwarf2out.c (struct dw_fde_struct): Ditto.
1955
1956 2001-09-10  Zack Weinberg  <zackw@panix.com>
1957
1958         * cpplex.c (parse_identifier): Fast-path optimize.  Avoid
1959         copying identifier when we're just going to throw it away.
1960         (parse_identifier_slow): New routine to handle abnormal cases.
1961         (_cpp_lex_token): Update call site.
1962
1963         * hashtable.c (ht_lookup): Don't assume that the string we've
1964         been given is NUL-terminated.
1965         * system.h: #define __builtin_expect(a, b) to (a) if not
1966         GCC >=3.0.
1967
1968 2001-09-10  Michael Meissner  <meissner@redhat.com>
1969
1970         * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
1971         binutils, gdb.
1972
1973 2001-09-10  David Edelsohn  <edelsohn@gnu.org>
1974
1975         * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
1976
1977 Mon Sep 10 16:26:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1978
1979         * builtins.c (c_getstr): Correct thinko in last change and further
1980         cleanup.
1981
1982 2001-09-10  Tim Freeman <tim@fungibole.com>
1983
1984         * dwarf2out.c (incomplete_types, decl_scope_table): Make them
1985         into varray's and register them as roots with the garbage
1986         collector so they are not collected too soon.
1987
1988 Mon Sep 10 14:21:26 CEST 2001  Jan Hubicka  <jh@suse.cz>
1989
1990         * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
1991         New.
1992         * basic-block.h (flow_obstack, label_value_list,
1993         tail_recursion_label_list): Declare
1994         (tidy_fallthru_edges): Declare.
1995         (expunge_block, last_loop_beg_note): Delete.
1996         (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
1997         * cfg.c: New file
1998         (basic_block_for_insn, label_value_list): Move from flow.c; make global.
1999         (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
2000         init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
2001         flow_delete_insn, flow_delete_insn_chain, create_basic_block,
2002         expunge_block, flow_delete_block, compute_bb_for_insn,
2003         update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
2004         make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
2005         redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
2006         try_redirect_by_replacing_jump, last_loop_beg_note,
2007         redirect_edge_and_branch, redirect_edge_and_branch_force,
2008         tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
2009         split_edge, insert_insn_on_edge, commit_one_edge_insertion,
2010         commit_edge_insertions, dump_flow_info, debug_flow_info,
2011         dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
2012         verify_flow_info, purge_dead_edges, purge_all_dead_edges):
2013         Move here from flow.c
2014         * cfganal.c: New file.
2015         (forwarder_block_p, can_fallthru, mark_critical_edges,
2016          mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
2017          find_unreachable_blocks, create_edge_list, free_edge_list,
2018          print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
2019          flow_edge_list_print, remove_fake_successors, remove_fake_edges,
2020          add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
2021          flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
2022          flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
2023          flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
2024         Move here from flow.c
2025         * cfgbuild.c: New file
2026         (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
2027          make_edges, find_basic_blocks_1, find_basic_blocks,
2028          find_sub_basic_blocks): Move here from flow.c
2029         * cfgcleanup.c: New file.
2030         (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
2031          merge_blocks_move_predecessor_nojumps,
2032          merge_blocks_move_successor_nojumps, merge_blocks,
2033          flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
2034          try_crossjump_bb, try_optimize_cfg): Move here from flow.c
2035         (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
2036         if succeeded.
2037         * cfgloop.c: New file
2038         (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
2039          flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
2040          flow_loop_exit_edges_find, flow_loop_nodes_find,
2041          flow_loop_pre_header_scan, flow_loop_pre_header_find,
2042          flow_loop_tree_node_add, flow_loops_tree_build,
2043          flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
2044          flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
2045         Move here from flow.c
2046         * flow.c: Remove everything moved elsewhere
2047         * output.h (cleanup_cfg): Return bool.
2048
2049         * bb-reorder.c (reorder_block_def): Remove 'index'.
2050         (insert_intra_1): Add argument BB, set block for new note.
2051         (make_reorder_chain): Do not depdent on BB indexes.
2052         (make_reorder_chain_1): Do not use BB indexes.
2053         (label_for_bb): Likewise; set BB for new insn.
2054         (emit_jump_to_block_after): Likewise.
2055         (fixup_reoder_chain): Sanity check that all basic blocks
2056         are chained; verify newly created insn chain; remove
2057         undocnitional jump simplifying; Do not use BB indexes;
2058         properly initialize count and frequency information;
2059         dump reordered sequence.
2060         (insert_intra_bb_scope_notes): update call of insert_intra_1.
2061         (insert_inter_bb_scope_notes): Set block for new insn.
2062         (reorder_basic_blocks): Dump flow info before reoredering.
2063
2064 Mon Sep 10 06:47:35 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2065
2066         * alias.c (clear_reg_alias_info): Use K&R format definition.
2067         Avoid unsigned warning.
2068         * builtins.c: Use "unsigned int", not "unsigned".
2069         (target_char_cast): Use host_integerp and tree_low_cst.
2070         (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
2071         (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
2072         (c_getstr): Likewise.
2073         (std_expand_builtin_va_arg): Use int_size_in_bytes.
2074         (builtin_memcpy_read_str): Avoid unsigned warning.
2075         (expand_builtin_memcpy): Alignments are unsigned.
2076         (expand_builtin_strncpy, expand_builtin_memset): Likewise.
2077         (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
2078         * predict.c (expensive_function_p): LIMIT now unsigned.
2079         * resource.c (mark_target_live_regs): Make some vars unsigned.
2080         * sdbout.c: Use "unsigned int", not "unsigned".
2081         (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
2082         (sdbout_source_line): Likewise.
2083         (sdbout_record_type_name): Remove "const" for NAME declaration.
2084         * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
2085
2086 2001-09-10  Richard Sandiford  <rsandifo@redhat.com>
2087
2088         * calls.c (store_one_arg): Expand comment.
2089
2090 2001-09-10  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2091
2092         * calls.c (store_one_arg): Make sure that the entire argument is
2093         pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
2094
2095 2001-09-09  Richard Henderson  <rth@redhat.com>
2096
2097         * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
2098
2099 Sun Sep  9 10:43:17 CEST 2001  Jan Hubicka  <jh@suse.cz>
2100
2101         * loop.c (combine_givs): Fix computing of benefit once giv is combined.
2102
2103 2001-09-09  Richard Henderson  <rth@redhat.com>
2104
2105         * config/alpha/alpha.c (alpha_next_sequence_number): New.
2106         (alpha_this_literal_sequence_number): New.
2107         (alpha_this_gpdisp_sequence_number): New.
2108         (some_operand, input_operand): Add HIGH.
2109         (local_symbolic_operand): New.
2110         (alpha_encode_section_info): New.
2111         (alpha_legitimate_address_p): Allow LO_SUM.
2112         (alpha_legitimize_address): Generate HIGH+LO_SUM.
2113         (alpha_expand_mov): Likewise.
2114         (secondary_reload_class): Check memory_operand not general_operand
2115         for FP_REGS test.
2116         (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
2117         (alpha_expand_unaligned_store): Likewise.
2118         (alpha_expand_unaligned_load_words): Likewise.
2119         (alpha_expand_unaligned_store_words): Likewise.
2120         (alpha_expand_block_clear): Likewise.
2121         (print_operand): Handle %#, %*, %H.
2122         (print_operand_address): Handle LO_SUM.
2123         (find_lo_sum): New.
2124         (alpha_does_function_need_gp): Use it.
2125         (alpha_expand_block_move): Fix signed compare warnings.
2126         (alpha_sa_mask, alpha_align_insns): Likewise.
2127         * config/alpha/alpha-protos.h: Update.
2128         * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
2129         (MASK_EXPLICIT_RELOCS): New.
2130         (TARGET_SWITCHES): Add -mexplicit-relocs.
2131         (EXTRA_CONSTRAINT): Add 'T'.
2132         (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
2133         (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
2134         (ENCODE_SECTION_INFO): Out line.
2135         (REDO_SECTION_INFO_P): New.
2136         (STRIP_NAME_ENCODING): New.
2137         (ASM_OUTPUT_LABELREF): New.
2138         (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
2139         (PREDICATE_CODES): Update.
2140         * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
2141         call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
2142         movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
2143         builtin_setjmp_receiver_er, exception_receiver_1_er,
2144         call_value_osf_1_er): New patterns.
2145         (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
2146         (movqi, movhi, movsi): Add explicit $31 base register to lda.
2147         * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
2148         (FINAL_PRESCAN_INSN): New.
2149
2150 Sat Sep  8 22:00:55 CEST 2001  Jan Hubicka  <jh@suse.cz>
2151
2152         * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
2153
2154 2001-09-08  Andreas Jaeger  <aj@suse.de>
2155
2156         * i386.h (TARGET_SWITCHES): Fix description.
2157
2158 2001-09-07  David Edelsohn  <edelsohn@gnu.org>
2159
2160         * rs6000.c (num_insns_constant): Compute number of instructions
2161         more accurately.
2162
2163         * doc/install.texi: Explain AIX exception handling work-around.
2164         Update URL for AIX fixes.
2165
2166 2001-09-07  Jim Wilson  <wilson@redhat.com>
2167
2168         * alias.c (clear_reg_alias_info): New.
2169         * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
2170         * rtl.h (clear_reg_alias_info): Declare.
2171
2172 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2173
2174         * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
2175         available.
2176         (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
2177         (m16m,edivm,emulm): Change declaration to match definition.
2178
2179 2001-09-07  Roman Lechtchinsky <rl@cs.tu-berlin.de>
2180
2181         * reload.c (push_reload): Check for subreg_lowpart_p instead of
2182         SUBREG_BYTE being 0 when determining if the inner part of a subreg
2183         can be reloaded.
2184
2185 2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
2186
2187         * c-common.c (signed_or_unsigned_type): Handle machine mode types
2188         which have no corresponding C type.
2189         * fold_const.c (target_isinf,target_isnan,target_negative): Update
2190         the representation of 64-bit doubles to work with 64-bit ints.
2191
2192 2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
2193
2194         * config/mips/mips.c (override_options): Do not override ISA when ABI
2195         specified if MIPS_CPU_STRING_DEFAULT was specified.
2196
2197 2001-09-07  Richard Henderson  <rth@redhat.com>
2198
2199         * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
2200         (express_from_1): Wrap lines.
2201         * rtlanal.c (commutative_operand_precedence): Rename from
2202         operand_preference; export.
2203         * rtl.h: Declare it.
2204         * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
2205         (simplify_binary_operation): Invoke simplify_plus_minus on
2206         (CONST (PLUS ...)) as well.
2207         (struct simplify_plus_minus_op_data): New.
2208         (simplify_plus_minus_op_data_cmp): New.
2209         (simplify_plus_minus): Use them.  Avoid infinite recursion with
2210         simplify_binary_operation wrt CONST.
2211
2212 Fri Sep  7 11:52:30 2001   Kazu Hirata  <kazu@hxi.com>
2213
2214         * h8300-protos.h (general_operand_dst_push): Remove.
2215         * h8300.c (general_operand_dst_push): Likewise.
2216         * h8300.h (OK_FOR_T): Likewise.
2217         (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
2218         * h8300.md (pushqi_h8300): New.
2219         (pushqi_h8300hs): Likewise.
2220         (pushqi): Likewise.
2221         (pushhi_h8300): Likewise.
2222         (pushhi_h8300hs): Likewise.
2223         (pushhi): Likewise.
2224
2225 Fri Sep  7 12:56:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2226
2227         * genattrtab.c (attr_printf): First arg is unsigned.
2228         Clean up formatting of callers.
2229
2230 2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
2231
2232         * config/mips/mips.c (override_options): Allow abi32 with 64 bit
2233         registers.
2234
2235 2001-09-07  Andreas Jaeger  <aj@suse.de>
2236
2237         * i386.h (TARGET_SWITCHES): Fix descriptions.
2238
2239 2001-09-07  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
2240
2241         * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
2242
2243 2001-09-06  Ira Ruben  <ira@apple.com>
2244
2245         Remove OP_IDENTIFIER.
2246         * tree.def (OP_IDENTIFIER): Remove.
2247         * tree.c (tree_node_kind enum): Remove op_id_kind.
2248         (tree_node_kind_names): Remove "op_identifiers".
2249         (make_node): Remove OP_IDENTIFIER test.
2250         (build_op_identifier): Removed because it isn't being used.
2251         * print-tree.c (print_node): Remove OP_IDENTIFIER case.
2252         * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
2253
2254 2001-09-06  Richard Henderson  <rth@redhat.com>
2255
2256         * simplify-rtx.c (simplify_binary_operation): Revert last change.
2257
2258 2001-09-06  Richard Henderson  <rth@redhat.com>
2259
2260         * simplify-rtx.c (simplify_binary_operation): Simplify contents
2261         of CONST.
2262
2263 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2264
2265         * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
2266         number used for CR register.
2267
2268 Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
2269                           Joern Rennecke (amylaar@cygnus.com)
2270
2271         * h8300-protos.h (h8300_return_addr_rtx): New prototype.
2272         * h8300.c (initial_offset): Handle offset between RP and FP.
2273         (h8300_return_addr_rtx): New function.
2274         * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
2275         return register.
2276         (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
2277         (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
2278         (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
2279         (CAN_ELIMINATE, REGISTER_NAMES):
2280         (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
2281
2282 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
2283
2284         Remove TYPE_NONCOPIED_PARTS.
2285         * tree.h (TYPE_NONCOPIED_PARTS): Remove.
2286         (struct tree_type): Remove noncopied_parts.
2287         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
2288         * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
2289         (fixed_type_p): Remove.
2290         (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
2291         (expand_expr, MODIFY_EXPR): Likewise.
2292         * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
2293         * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
2294
2295 2001-09-06  Alan Modra  <amodra@bigpond.net.au>
2296
2297         * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
2298         compiler warnings.
2299         (mask64_operand): Likewise.
2300         (includes_rldic_lshift_p): Likewise.
2301         (includes_rldicr_lshift_p): Likewise.
2302
2303 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
2304
2305         * objc/objc-act.c (build_message_expr): If a class method cannot
2306         be found, do not issue a warning if a corresponding instance
2307         method exists in the root class.
2308
2309 2001-09-05  Richard Henderson  <rth@redhat.com>
2310
2311         * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
2312
2313 2001-09-05  Zack Weinberg  <zack@codesourcery.com>
2314
2315         * function.c (ggc_mark_struct_function): Mark f->outer.
2316         * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
2317         * integrate.c (output_inline_function): ... not here.
2318
2319 Wed Sep  5 17:28:49 CEST 2001  Jan Hubicka  <jh@suse.cz>
2320
2321         * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
2322
2323         * i386.c (size_cost): New static variable.
2324         (override_function): Use size_cost when -Os is specified.
2325
2326         * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
2327         properly;  Use current_function_calls_eh_return.
2328         (ix86_expand_epilogue): Avoid dummy optimize_size tests;
2329         use leave to avoid depdendancy chain.
2330
2331         * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
2332         get BB loop_depth instead of computing it from LOOP notes.
2333
2334         * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
2335
2336 2001-09-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2337
2338         * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
2339         * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2340         UNALIGNED_DOUBLE_INT_ASM_OP): Define
2341
2342 2001-09-05  Jeffrey A Law  (law@cygnus.com)
2343             Jason Merrill (jason@redhat.com)
2344
2345         * stor-layout.c (layout_type): Complain if an array's size can
2346         not be represented in a size_t.
2347
2348         * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
2349
2350 2001-09-05  David Billinghurst <David.Billinghurst@riotinto.com>
2351
2352         * gcc.c: (process_command) Add parentheses around assignment
2353         used as truth value.
2354
2355 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
2356
2357         * config/mips/mips.c (save_restore_insns): Don't mark any register
2358         save slots as unchanging if current_function_calls_eh_return.
2359
2360 2001-09-05  Richard Henderson  <rth@redhat.com>
2361
2362         * config/alpha/alpha.c (alpha_legitimate_address_p): New.
2363         * config/alpha/alpha-protos.h: Declare it.
2364         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
2365         (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
2366         (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
2367         (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
2368         (REG_OK_FOR_BASE_P): Select one of the above.
2369
2370 2001-09-05  Richard Sandiford  <rsandifo@redhat.com>
2371
2372         * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
2373         (crti.o): Prefix name of object file with $(T).
2374         (crtn.o): Likewise.
2375
2376 2001-09-05  David S. Miller  <davem@redhat.com>
2377
2378         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
2379         * config/sparc/linux64.h: Likewise.
2380
2381 2001-09-05  Andreas Jaeger  <aj@suse.de>
2382
2383         * doc/invoke.texi (i386 Options): -mwide-multiply is not
2384         available anymore, remove the documentation.
2385         (i386 Options): Fix typo, cleanup index entries.
2386
2387         * prefix.c (concat): Remove, we can use the version from liberty.
2388
2389 2001-09-05  Richard Henderson  <rth@redhat.com>
2390
2391         * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
2392         New functions split out of md file expanders.
2393         * config/alpha/alpha-protos.h: Declare them.
2394         * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
2395
2396 2001-09-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2397
2398         * cppmacro.c (funlike_invocation_p): No need to restore context.
2399
2400 2001-09-04  Richard Henderson  <rth@redhat.com>
2401
2402         * reload.c (push_reload): Export.
2403         * reload.h (push_reload): Declare it.
2404
2405         * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
2406         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2407         * config/alpha/alpha.c (alpha_legitimize_address): New.
2408         (alpha_legitimize_reload_address): Likewise.
2409         * config/alpha/alpha-protos.h: Declare them.
2410
2411 2001-09-04  Stan Shebs  <shebs@apple.com>
2412
2413         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
2414         * config/darwin.c (machopic_stub_name): Account for internally
2415         generated lib calls such as memcpy.
2416
2417 2001-09-04  Richard Henderson  <rth@redhat.com>
2418
2419         * unwind.h (_UA_END_OF_STACK): New flag.
2420         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
2421
2422 Tue Sep  4 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
2423
2424         * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
2425
2426 2001-09-04  Richard Sandiford  <rsandifo@redhat.com>
2427
2428         * config/mips/mips.c (save_restore_insns): Change base_offset to
2429         fp_offset in second call to mips_emit_frame_related_store.
2430
2431 2001-09-04  Hans-Peter Nilsson  <hp@axis.com>
2432
2433         * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
2434         sometimes be represented as a NOTE of type
2435         NOTE_INSN_DELETED_LABEL.
2436         (Insns): Document NOTE_INSN_DELETED_LABEL.
2437
2438 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
2439
2440         * c-common.h (tree_dump_index): Add more comments.
2441         * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
2442         (dump_option_value_info): New struct.
2443         (dump_options): New array.
2444         (dump_switch_p): Parse switch options symbolically.
2445         * doc/invoke.texi (-fdump-ast): Rename to ...
2446         (-fdump-tree): ... here. Document that options are symbolic, and
2447         not all are applicable.
2448
2449 2001-09-04  David S. Miller  <davem@redhat.com>
2450
2451         * config/sparc/sparc.md (define_splits): Kill constraints.
2452
2453         Cleanup redundant and unused insn attributes.
2454         * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
2455         binary, and move.  Mark ialu as default.
2456         (commented out define_function_unit "alu"): Kill.
2457         (define_attr "use_clobbered"): Kill.
2458         (whole file): Kill address insn type references.  Replace
2459         all unary/binary/move references with ialu.
2460         * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
2461         references.  Replace TYPE_{UNARY,BINARY,MOVE} references with
2462         TYPE_IALU.
2463
2464         Simplify length insn attribute and make more judicious use
2465         of insn attribute defaulting.
2466         * config/sparc/sparc.md (all insns with length > one): Mark as
2467         insn type multi if real instructions, else use default if
2468         it is a forced splitter.
2469         (all insns with length == one): Use default insn length.
2470         (all insns of type ialu): Use default insn type.
2471
2472         Fix erroneous insn attribute settings.
2473         (addx): Set insn type to misc.
2474         (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
2475         const_umulsidi3_sp64): Set insn type to imul.
2476
2477         Track SFmode vs DFmode insns according to UltraSPARC
2478         scheduling rules.
2479         * config/sparc/sparc.md ("fptype"): New attribute, default
2480         to "single".
2481         (all DFmode single insns): Mark as fptype "double".
2482
2483 2001-09-03  Jakub Jelinek  <jakub@redhat.com>
2484
2485         * loop.c (express_from_1): Fix CONSTANT_P(a) case.
2486
2487 2001-09-03  Richard Henderson  <rth@redhat.com>
2488
2489         * function.h (struct function): Add arg_pointer_save_area_init.
2490         * function.c (expand_function_end): Init arg_pointer_save_area.
2491         (get_arg_pointer_save_area): Do not init arg_pointer_save_area
2492         when called from a nested function.
2493
2494 2001-09-02  Angela Marie Thomas <angela@cygnus.com>
2495
2496         * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
2497         is enabled.
2498
2499 Sun Sep  2 18:37:54 CEST 2001  Jan Hubicka  <jh@suse.cz>
2500
2501         * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
2502
2503 2001-09-01  Geoffrey Keating  <geoffk@redhat.com>
2504
2505         * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
2506         (emit_push_insn): Use specified padding direction when
2507         STACK_PUSH_CODE is POST_INC.
2508
2509         * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
2510
2511 2001-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2512
2513         * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
2514
2515 2001-09-01  Neil Booth  <neil@daikokuya.demon.co.uk>
2516
2517         * cppinit.c (cpp_start_read): Free the imacros list as we
2518         traverse it.  Don't free the chains before returning.
2519         (_cpp_push_next_buffer): Only try pushing buffers if we've
2520         completed -imacros handling.
2521
2522 2001-08-31  Eric Christopher  <echristo@redhat.com>
2523
2524         * gcc.c (handle_braces): Add explaination for abort.
2525
2526 2001-08-30  Roman Zippel  <zippel@linux-m68k.org>
2527
2528         * expmed.c (store_bit_field): Update to patch from 2001-08-27:
2529         move adjustment of bitpos instead.
2530
2531 2001-08-31  Zack Weinberg  <zack@codesourcery.com>
2532
2533         * function.c: Remove all_functions.  Make outer_function_chain
2534         static.
2535         (init_function_start): Don't add new function structure to
2536         all_functions.
2537         (find_function_data, push_function_context_to,
2538         pop_function_context_from, put_var_into_stack,
2539         trampoline_address): Update for changed structure element names.
2540         (push_function_context_to): Disentangle.
2541         (free_after_compilation): Also free F.
2542         (expand_dummy_function_end): Don't free cfun here.
2543         (put_var_into_stack): Comment why we can't use find_function_data here.
2544         (fix_lexical_addr, trampoline_address, ): Use find_function_data.
2545         (mark_function_chain): Split into maybe_mark_struct_function and
2546         ggc_mark_struct_function.  Export the latter.
2547         (init_function_once): Mark from cfun and outer_function_chain;
2548         not all_functions.
2549
2550         * function.h (struct function): Kill next_global.  Rename next
2551         to outer.  All users updated to match.
2552         (all_functions, outer_function_chain): Don't declare.
2553
2554         * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
2555         * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
2556         don't touch f->inlinable, after calling rest_of_compilation.
2557
2558         * tree.h: Forward-declare struct function.  Prototype
2559         ggc_mark_struct_function.
2560
2561 2001-08-31  Kazu Hirata  <kazu@hxi.com>
2562
2563         * config/h8300/h8300.md (*andorhi3): Fix typos.
2564
2565 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2566
2567         * calls.c (emit_library_call_value): Don't use a fixed
2568         argument after VA_CLOSE, i.e. out of scope in traditional C.
2569
2570         * emit-rtl.c (gen_rtvec): Likewise.
2571
2572 2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2573
2574         * Makefile.in (c-pragma.o): Depend on output.h.
2575         (reorg.o): Depend on except.h.
2576
2577         * c-pragma.c: Include output.h.
2578
2579         * reorg.c: Include except.h.
2580
2581         * unwind-dw2.c: Call __builtin_alloca, not alloca.
2582
2583 2001-08-31  Richard Henderson  <rth@redhat.com>
2584
2585         * sched-deps.c (add_dependence): Don't elide dependancy if the
2586         conditional used by insn is modified in elem.
2587
2588 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
2589
2590         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
2591
2592 2001-08-31  Diego Novillo  <dnovillo@redhat.com>
2593
2594         * c-decl.c (c_decode_option): Skip '-f' prefix before calling
2595         dump_switch_p.
2596
2597 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
2598
2599         * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
2600         function.
2601         (stormy16_asm_out_constructor): New function.
2602         (TARGET_ASM_CONSTRUCTOR): Define.
2603         (TARGET_ASM_DESTRUCTOR): Define.
2604
2605 2001-08-31  Andreas Jaeger  <aj@suse.de>
2606
2607         * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
2608         * loop.c (add_label_notes): Likewise.
2609         * reload.c (find_reloads): Likewise.
2610         * config/sh/sh.c (machine_dependent_reorg): Likewise.
2611
2612 2001-08-31  Jason Merrill  <jason_merrill@redhat.com>
2613
2614         * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
2615         code here.  Take _Unwind_{W,Sw}ord*.
2616         (read_encoded_value_with_base): Use them.
2617         * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
2618         words.
2619         (extract_cie_info): Simplify read_?leb128 handling.
2620         (execute_stack_op, execute_cfa_program): Likewise.
2621         * unwind-dw2-fde.c (get_cie_encoding): Likewise.
2622
2623 2001-08-31  Geoffrey Keating  <geoffk@redhat.com>
2624
2625         * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
2626         the frame pointer to pop the stack if convenient.
2627
2628         * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
2629         Don't use post-increment before combine.
2630         * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
2631         a call-saved register.
2632
2633 2001-08-31  Andreas Jaeger  <aj@suse.de>
2634
2635         * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
2636         code was correct.
2637
2638 2001-08-30  Geoffrey Keating  <geoffk@redhat.com>
2639
2640         * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
2641         not DIV/MOD, of course.
2642
2643 2001-08-30  Vladimir Makarov  <vmakarov@redhat.com>
2644
2645         * rtl.def: Undo my patch commited 2001-08-27.
2646
2647         * genattrtab.c: Ditto.
2648
2649         * rtl.h: Ditto.
2650
2651         * sched-int.h: Ditto.
2652
2653         * target-def.h: Ditto.
2654
2655         * target.h: Ditto.
2656
2657         * haifa-sched.c: Ditto.
2658
2659         * sched-rgn.c: Ditto.
2660
2661         * sched-vis.c: Ditto.
2662
2663         * Makefile.in: Ditto.
2664
2665         * doc/md.texi: Ditto.
2666
2667         * doc/tm.texi: Ditto.
2668
2669         * doc/contrib.texi: Ditto.
2670
2671         * doc/gcc.texi: Ditto.
2672
2673         * genattrtab.h: Remove it.
2674
2675         * genautomata.c: Remove it.
2676
2677         * genattr.c: Undo my patch and Richard Henderson's patch commited
2678         2001-08-27.
2679
2680 Thu Aug 30 19:22:15 2001  J"orn Rennecke <amylaar@redhat.com>
2681
2682         * config.gcc (h8300-*-elf*): New case.
2683         * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
2684         (SUBTARGET_CPP_SPEC): Define.
2685         (EXTRA_SPECS): Define.
2686         (SUBTARGET_EXTRA_SPECS): Define.
2687         * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
2688         * config/h8300/elf.h, config/h8300/t-elf: Likewise.
2689
2690 Thu Aug 30 18:50:37 2001  J"orn Rennecke <amylaar@redhat.com>
2691
2692         * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
2693         (LIB2FUNCS_EXTRA): Define.
2694         config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
2695         config/h8300/fixunssfsi.c: New file.
2696
2697 2001-08-30  Kazu Hirata  <kazu@hxi.com>
2698
2699         * config/h8300/h8300.md (zero_extendqihi2): Changes to
2700         define_expand to accomodate target-specific attributes.
2701         (anonymous zero_extendqihi2 patterns): New.
2702
2703 Thu Aug 30 18:10:56 2001  J"orn Rennecke <amylaar@redhat.com>
2704
2705         * h8300.md (*andorhi3): New pattern.
2706
2707 Thu Aug 30 16:00:31 2001  J"orn Rennecke <amylaar@redhat.com>
2708
2709         * h8300.c (dosize): Fix test for "sub".
2710
2711 Thu Aug 30 10:21:43 2001  J"orn Rennecke <amylaar@redhat.com>
2712
2713         * c-typeck.c (pointer_diff): Try to eliminate common term before
2714         doing conversions.
2715
2716 2001-08-30  Nick Clifton  <nickc@cambridge.redhat.com>
2717
2718         * config/arm/arm.c (arm_compute_initial_elimination_offset):
2719         Account for the saves of the FP registers.
2720
2721         * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
2722         (TEXT_SECTION_ASM_OP): Define.
2723         (INIT_SECTION_ASM_OP): Define.
2724         (FINI_SECTION_ASM_OP): Define.
2725         (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
2726         (RDATA_SECTION_FUNCITON): Provide prototype.
2727
2728 2001-08-29  Geoffrey Keating  <geoffk@redhat.com>
2729
2730         * reload1.c (move2add_note_store): Correct typo checking for
2731         argument pushes.
2732
2733 2001-08-29  Andrew MacLeod  <amacleod@redhat.com>
2734
2735         * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
2736         note should not be considered outside the libcall block.
2737
2738 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2739
2740         * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
2741
2742 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2743
2744         * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
2745
2746 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2747
2748         * config/h8300/h8300-protos.h: Add a prototype for
2749         emit_logical_op.
2750         * config/h8300/h8300.c (emit_logical_op): New.
2751         * config/h8300/h8300.md (andhi3): Use emit_logical_op.
2752         (andsi3): Likewise.
2753         (iorhi3): Likewise.
2754         (iorsi3): Likewise.
2755         (xorhi3): Likewise.
2756         (xorsi3): Likewise.
2757
2758 2001-08-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2759
2760         * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
2761         comparison with rtx INTVAL.
2762         (pa_output_function_prologue): Don't mix signed and unsigned in `?'
2763         expression.
2764         * pa.h (FUNCTION_ARG_SIZE): Likewise.
2765
2766 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2767
2768         * config/h8300/lib1funcs.asm: Update the copyright.  Fix
2769         comment typos.
2770
2771 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2772
2773         * config/h8300/h8300.md (anonymous movhi pattern): Don't move
2774         (reg n) to (mem (pre_dec (reg n))
2775         (anonymous movsi pattern): Likewise.
2776
2777 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2778
2779         * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
2780
2781 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2782
2783         * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
2784         several special constants.
2785
2786 2001-08-29  Kazu Hirata  <kazu@hxi.com>
2787
2788         * config/h8300/lib1funcs.asm: Fix comment typos.
2789
2790 2001-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2791
2792         * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
2793         Fix format specifier warnings.
2794
2795         * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
2796         inet_makeaddr, semctl): Prototype.
2797
2798         * mips.c (compute_frame_size): Fix signed/unsigned warnings.
2799         (save_restore_insns): Use base_offset, not gp_offset.
2800
2801         * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
2802         (ASM_OUTPUT_BYTE): Fix format specifier warning.
2803
2804 2001-08-29  Richard Henderson  <rth@redhat.com>
2805
2806         * bb-reorder.c (function_tail_eff_head): New.
2807         (record_effective_endpoints): Set it.
2808         (fixup_reorder_chain): Use it.
2809
2810 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2811
2812         * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
2813
2814 2001-08-28  Dale Johannesen  <dalej@apple.com>
2815
2816         * config/darwin.c (machopic_function_base_name): Add const
2817         qualifier to a string.
2818         (darwin_encode_section_info): Ditto.
2819
2820 2001-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2821
2822         * tree.c (default_valid_attribute_p): Don't use PARAMS on a
2823         function definition.
2824
2825 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
2826
2827         * df.h (struct df): Add rts_order variable.
2828
2829         * df.c (df_visit_next_rts): New function.
2830         (df_visit_next): Renamed to df_visit_next_rc
2831         (df_analyse_1): Allocate/compute/free rts_order as well.
2832         (df_rd_global_compute): Use df_visit_next_rc instead of
2833         df_visit_next.
2834         (df_ru_global_compute): Use df_visit_next_rts instead of
2835         df_visit_next.
2836
2837         * flow.c (flow_reverse_top_sort_order_compute): New function.
2838
2839         * basic-block.h: Add prototype.
2840
2841 2001-08-28  Daniel Berlin  <dan@cgsoftware.com>
2842
2843         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
2844         blocks, the BB_REACHABLE is now set, rather than aux being
2845         non-NULL. Update the test to reflect this.
2846
2847 2001-08-28  Eric Christopher  <echristo@redhat.com>
2848
2849         * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
2850         config/mips/crti.asm: Ditto.
2851
2852 2001-08-28  Eric Christopher <echristo@redhat.com>
2853             Richard Henderson <rth@redhat.com>
2854
2855         * c-pragma.h (add_weak): Move prototype from here...
2856         * output.h (add_weak): ... to here.
2857         * varasm.c (add_weak): Fix typo.
2858         * config/mips/crti.asm: New file.
2859         * config/mips/crtn.asm: Ditto.
2860         * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
2861         (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
2862         (INVOKE__main): Ditto.
2863         (INIT_SECTION_ASM_OP): New.
2864         (FINI_SECTION_ASM_OP): Ditto.
2865         (STARTFILE_SPEC): Add crti.
2866         (ENDFILE_SPEC): Add crtn.
2867         * config/mips/elf64.h: Same.
2868         * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
2869         Remove.
2870         * config/mips/vxworks.h: Ditto.
2871         * config/mips/t-elf: Support crti and crtn.
2872
2873 2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
2874
2875         * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
2876         INSN_LIST.
2877
2878 2001-08-28  Richard Henderson  <rth@redhat.com>
2879
2880         * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
2881         (one_cmplbi2 splitter): Remove redundant test.
2882
2883 2001-08-28  Dale Johannesen  <dalej@apple.com>
2884
2885         * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
2886
2887 2001-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
2888
2889         * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
2890
2891 2001-08-28  Stan Shebs  <shebs@apple.com>
2892
2893         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
2894         (UNALIGNED_SHORT_ASM_OP): Define.
2895         (UNALIGNED_INT_ASM_OP): Define.
2896
2897 2001-08-28  Will Cohen  <wcohen@redhat.com>
2898
2899         * config/rs6000/rs6000.md (store_multiple): Correct RTL
2900         generation for first set.
2901
2902 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
2903
2904         * flow.c (redirect_edge_succ_nodup): Return new edge.
2905         (try_simplify_condjump): Use new edge.
2906         * basic-block.h (redirect_edge_succ_nodup): Update prototype.
2907
2908         * cse.c (cse_basic_block): Skip note instructions.
2909
2910 2001-08-27  Richard Henderson  <rth@redhat.com>
2911
2912         * combine.c (combine_simplify_rtx): Don't reverse condition
2913         if there is no reverse for the condition.
2914         (simplify_comparison): Don't simplify subregs from INT to FP.
2915
2916         * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
2917         suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
2918         sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
2919         bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
2920         bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
2921         bunle_rev, bunlt_rev, bltgt_rev): New patterns.
2922
2923 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
2924
2925         * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
2926         bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
2927         (pushqi1): New.
2928         (adddi_dilshr32, adddi_dishl32): Only data register can be
2929         source for mem destination.
2930
2931         * expmed.c (store_bit_field): Ignore adjustment to bitpos
2932         and use bitnum to decide about register move.
2933
2934 2001-08-27  Richard Henderson  <rth@redhat.com>
2935
2936         * genattr.c (main): Emit state_t even when not doing scheduling.
2937
2938 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
2939             Richard Henderson  <rth@redhat.com>
2940
2941         * gcse.c (reg_first_set, reg_last_set): Replace with ...
2942         (reg_avail_info, current_bb): ... these.
2943         (oprs_unchanged_p, record_last_reg_set_info): Use them.
2944         (compute_hash_table): Likewise.
2945
2946 2001-08-27  Roman Zippel <zippel@linux-m68k.org>
2947
2948         * flow.c (verify_flow_info): Use checksums to verify edges.
2949
2950 2001-08-27  Richard Henderson  <rth@redhat.com>
2951
2952         * genautomata.c (expand_automata): Always create a description.
2953
2954 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
2955
2956         * optabs.c (expand_binop): Correctly handle the carry in multiword
2957         add/subtract operations.
2958
2959 2001-08-27  Fred Fish  <fnf@be.com>
2960
2961         * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
2962         __SIZE_TYPE__.
2963
2964 2001-08-27  Geoffrey Keating  <geoffk@redhat.com>
2965
2966         * reload.c (find_reloads_toplev): Back out this change:
2967
2968         Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
2969
2970         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
2971         mem if the address is a mode_dependent_address_p.
2972
2973 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
2974
2975         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
2976         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
2977         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
2978         RTL constructions.
2979
2980         * genattr.c (main): New variable num_insn_reservations.  Increase
2981         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
2982         pipeline hazard recognizer interface.
2983
2984         * genattrtab.h: New file.
2985
2986         * genattrtab.c: Include genattrtab.h.
2987         (attr_printf, check_attr_test, make_internal_attr,
2988         make_numeric_value): Move protypes into genattrtab.h.  Define them
2989         as external.
2990         (num_dfa_decls): New global variable.
2991         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
2992         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
2993         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
2994         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
2995
2996         * genautomata.c: New file.
2997
2998         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
2999
3000         * sched-int.h: (curr_state): Add the external definition for
3001         automaton pipeline interface.
3002         (haifa_insn_data): Add comments for members blockage and units.
3003
3004         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3005         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3006         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3007         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3008         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3009         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3010         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
3011         macros.
3012         (TARGET_SCHED): Use the new macros.
3013
3014         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
3015         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
3016         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
3017         dfa_bubble): New members in gcc_target.sched.
3018
3019         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
3020         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
3021         (insn_queue): Redefine it as pointer to array.
3022         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
3023         INSN_QUEUE_SIZE.
3024         (max_insn_queue_index_macro_value): New variable.
3025         (curr_state, dfa_state_size, ready_try): New varaibles for
3026         automaton interface.
3027         (ready_element, ready_remove, max_issue): New function prototypes
3028         for automaton interface.
3029         (choose_ready): New function prototype.
3030         (insn_unit, blockage_range): Add comments.
3031         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
3032         FUNCTION_UNITS_SIZE == 0.
3033         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
3034         actual_hazard, potential_hazard): Add comments.
3035         (insn_cost): Use cost -1 as undefined value.  Remove
3036         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
3037         pipeline interface.
3038         (ready_element, ready_remove): New functions for automaton
3039         interface.
3040         (schedule_insn): Add new code for automaton pipeline interface.
3041         (queue_to_ready): Add new code for automaton pipeline interface.
3042         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
3043         (debug_ready_list): Print newline when the queue is empty.
3044         (max_issue): New function for automaton pipeline interface.
3045         (choose_ready): New function.
3046         (schedule_block): Add new code for automaton pipeline interface.
3047         Print ready list before scheduling each insn.
3048         (sched_init): Add new code for automaton pipeline interface.
3049         Initiate insn cost by -1.
3050         (sched_finish): Free the current automaton state and finalize
3051         automaton pipeline interface.
3052
3053         * sched-rgn.c: Include target.h.
3054         (init_ready_list, new_ready, debug_dependencies): Add new code for
3055         automaton pipeline interface.
3056
3057         * sched-vis.c: Include target.h.
3058         (get_visual_tbl_length): Add code for automaton interface.
3059         (target_units, print_block_visualization):  Add comments.
3060
3061         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
3062         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
3063         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
3064         (getruntime.o, genautomata.o): New entries.
3065         (genattrtab.o): Add new dependency file genattrtab.h.
3066         (genattrtab): Add new dependencies.  Link it with `libm.a'.
3067         (getruntime.o, hashtab.o): New entries for canadian cross.
3068
3069         * doc/md.texi: Description of automaton based model.
3070
3071         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
3072         Add comments.
3073         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
3074         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
3075         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
3076         TARGET_SCHED_DFA_POST_CYCLE_INSN,
3077         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
3078         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
3079         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
3080         hook descriptions.
3081         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
3082         MAX_DFA_ISSUE_RATE): New macro descriptions.
3083
3084         * doc/contrib.texi: Add dfa based scheduler contribution.
3085
3086         * doc/gcc.texi: Add more information about genattrtab.
3087
3088 2001-08-27  Diego Novillo  <dnovillo@redhat.com>
3089
3090         * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
3091         an RTL basic block.
3092
3093 2001-08-27  Richard Henderson  <rth@redhat.com>
3094
3095         * function.c (expand_function_end): Don't init arg_pointer_save_area.
3096         (get_arg_pointer_save_area): New.  Create an init it here.
3097         (fix_lexical_addr): Use it.
3098         * function.h: Declare it.
3099         * builtins.c (expand_builtin_setjmp_receiver): Use it.
3100         * stmt.c (expand_nl_goto_receiver): Use it.
3101
3102 2001-08-27  Richard Henderson  <rth@redhat.com>
3103
3104         * final.c (final_scan_insn): Don't enter APP_ON mode for
3105         empty asm strings.
3106
3107         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
3108         alignment for assemble_integer for DW_EH_PE_aligned.
3109         * except.c (output_function_exception_table): Likewise.
3110
3111 2001-08-26  Andreas Jaeger  <aj@suse.de>
3112
3113         * c-tree.h: Add prototyp for c_sizeof_nowarn.
3114
3115 2001-08-25 Dan Nicolaescu  <dann@ics.uci.edu>
3116
3117         * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
3118
3119 2001-08-27  Alan Modra  <amodra@bigpond.net.au>
3120
3121         * config/rs6000/rs6000.c (mask_operand): Rewrite without
3122         bit-shifting loop.
3123         (mask64_operand): Likewise.
3124         (rldic_operand): Delete.
3125         (includes_lshift64_p): Delete.
3126         (includes_rldic_lshift_p): New function.
3127         (includes_rldicr_lshift_p): New function.
3128         (print_operand): Don't call rldic_operand in case 'W'.
3129         * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
3130         (includes_lshift64_p): Remove.
3131         (includes_rldic_lshift_p): Declare.
3132         (includes_rldicr_lshift_p): Declare.
3133         * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
3134         * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
3135         Replace match_operand rldic_operand predicate with
3136         const_int_operand.  Replace includes_lshift64_p condition with
3137         includes_rldic_lshift_p.
3138         <ashldi3_internal 64 bit rldicr patterns>: New.
3139
3140 2001-08-27  Andreas Jaeger  <aj@suse.de>
3141
3142         * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3143         * errors.c: Likewise.
3144         * final.c: Likewise.
3145         * dwarf2asm.c: Likewise.
3146         * doprint.c (checkit): Likewise.
3147         * diagnostic.c: Likewise.
3148         * collect2.c: Likewise.
3149         * calls.c: Likewise.
3150         * c-semantics.c (build_stmt): Likewise.
3151         * c-format.c (status_warning): Likewise.
3152         * c-errors.c (pedwarn_c99): Likewise.
3153         * builtins.c (validate_arglist): Likewise.
3154         * config/pj/pj.c (pj_printf): Likewise.
3155         * fix-header.c: Likewise.
3156         * gcc.c: Likewise.
3157         * gcov.c (fnotice): Likewise.
3158         * gensupport.c (message_with_line): Likewise.
3159         * mips-tfile.c: Likewise.
3160         * protoize.c (notice): Likewise.
3161         * read-rtl.c (fatal_with_file_and_line): Likewise.
3162         * rtl-error.c: Likewise.
3163         * tradcpp.c: Likewise.
3164         * tree.c: Likewise.
3165         * cp/tree.c (build_min_nt): Likewise.
3166         (build_min): Likewise.
3167         * cp/lex.c: Likewise.
3168         * cp/errfn.c: Likewise.
3169         * cp/rtti.c (create_pseudo_type_info): Likewise.
3170
3171 Sun Aug 26 20:25:44 2001  Denis Chertykov  <denisc@overta.ru>
3172
3173         * df.c (df_uses_record): Return after recording all uses
3174         in ASM_OPERANDS.
3175
3176 2001-08-26  Daniel Berlin  <dan@cgsoftware.com>
3177
3178         * df.c (df_insn_modify): Realloc the INSN table here, if
3179         necessary, here, too.
3180
3181 2001-08-26  Aldy Hernandez  <aldyh@redhat.com>
3182
3183         * config/mips/mips.c (mips_function_value): Handle complex return
3184         values.
3185
3186 2001-08-25  Hans-Peter Nilsson  <hp@bitrange.com>
3187
3188         * reload1.c (reload): Make all entries in reg_equiv_memory_loc
3189         unshared.
3190         * reload.c (make_memloc): Copy result if it is still
3191         reg_equiv_memory_loc[regno] on return.
3192         (subst_reloads) [ENABLE_CHECKING]: Check that none of
3193         reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
3194         reg_equiv_mem are modified by the substitutions.
3195
3196 Sat Aug 25 23:07:35 CEST 2001  Jan Hubicka  <jh@suse.cz>
3197
3198         * predict.c (expensive_function_p): New.
3199         * rtl.h (expensive_function_p): Declare.
3200         * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
3201         (use_fast_prologue_epilogue): New static variable.
3202         (expand_prologue): Set it; emit short prologues if unset.
3203         (expand_epilogue): Likewise.
3204
3205 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
3206
3207         * config.gcc: Add stormy16-*-elf case.
3208         * config/stormy16/stormy-abi: New file.
3209         * config/stormy16/stormy16-lib2.c: New file.
3210         * config/stormy16/stormy16-protos.h: New file.
3211         * config/stormy16/stormy16.c: New file.
3212         * config/stormy16/stormy16.h: New file.
3213         * config/stormy16/stormy16.md: New file.
3214         * config/stormy16/t-stormy16: New file.
3215
3216 Sat Aug 25 15:46:51 CEST 2001  Jan Hubicka  <jh@suse.cz>
3217
3218         * i386.h (no-accumulate-outgoing-args): Use proper mask.
3219
3220 2001-08-24  David Edelsohn  <edelsohn@gnu.org>
3221
3222         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
3223         descriptor members are pointer size, not constant 4.
3224         * config/rs6000/rs6000.md (define_splits): Remove more unused
3225         constraints.
3226
3227 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3228
3229         * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
3230
3231 2001-08-24  Andreas Jaeger  <aj@suse.de>, rkl@connect.org.uk
3232
3233         * cp/rtti.c (VPARAMS): Fix parameter.
3234
3235 2001-08-24  Zack Weinberg  <zackw@panix.com>
3236
3237         * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
3238         to zero.
3239         (mode_for_extraction): No need for #ifdefs.  Add default-case abort
3240         to switch.
3241         (store_bit_field): Eliminate insv_bitsize variable.  Put HAVE_insv
3242         in if controlling use of insv.
3243         (extract_bit_field): Likewise, for extv and extzv.
3244
3245 Fri Aug 24 17:27:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
3246
3247         * i386.md (movcc peep2): Fix load of 0.
3248
3249 2001-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3250
3251         * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
3252         *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
3253
3254 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
3255
3256         * c-pragma.h: Move weak_syms and weak_decls...
3257         * varasm.c: ...here.  Now static.
3258         (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
3259         depend on HANDLE_PRAGMA_WEAK.
3260
3261         * c-common.c (c_alignof, c_alignof_expr): Move here...
3262         * c-typeck.c: ...from here.
3263         * c-tree.h, c-common.h: Adjust.
3264
3265 2001-08-23  Bernd Schmidt  <bernds@redhat.com>
3266
3267         * config/ia64/ia64.c (rws_update): If !pred, set write_count
3268         instead of incrementing it.
3269
3270         * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
3271         asm ready, don't try to move them all into the same array element.
3272
3273 Thu Aug 23 17:21:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
3274
3275         * function.c (thread_prologue_and_epilogue_insns): Avoid
3276         fallthru flag on edge to exit.
3277
3278         * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
3279
3280         * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
3281         dead edges.
3282
3283 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
3284
3285         * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
3286         * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
3287         * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
3288         Remove prototype.
3289
3290 2001-08-23  Lars Brinkhoff  <lars@nocrew.org>
3291
3292         * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
3293         replace "GNU CC" with "GCC".
3294
3295 2001-08-23  Richard Henderson  <rth@redhat.com>
3296
3297         * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
3298         Reorganize.  Handle ADDL like GR, add GR_AND_BR.  Handle TFmode.
3299         (ia64_secondary_reload_class): Need GR between AR/BR and anything.
3300         Need GR between FR and not GR_AND_FR.
3301         * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
3302         * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
3303         AR regs before GR regs.
3304         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
3305         (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
3306         (REGISTER_MOVE_COST): Update.
3307         (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
3308
3309 2001-08-23  Richard Henderson  <rth@redhat.com>
3310
3311         * regclass.c (init_reg_sets_1): Don't assume cost 2 within
3312         a register class.
3313
3314 2001-08-22  Geoffrey Keating  <geoffk@redhat.com>
3315
3316         * reload1.c (emit_reload_insns): Don't look for notes
3317         on a NULL store_insn.
3318
3319 2001-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3320
3321         * sparc.c (uns_small_int): Don't reference a constant >32-bit.
3322         (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
3323         (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
3324         format specifier warnings.
3325         (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
3326
3327 2001-08-22  David Billinghurst <David.Billinghurst@riotinto.com>
3328
3329         * config/i386/i386-protos.h: Correct declaration of
3330         i386_pe_asm_named_section.
3331
3332 2001-08-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3333
3334         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
3335         variable i.
3336         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
3337
3338 2001-08-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3339
3340         * cpperror.c (print_location): Don't show _Pragma.
3341         * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
3342         and file change callback generation here.
3343         (stack_include_file): Update use of cpp_push_buffer.
3344         * cpphash.h (_cpp_pop_file_buffer): Update prototype.
3345         (struct cpp_buffer): Remove type, pfile members.
3346         * cppinit.c (cpp_handle_option): Use free_chain.
3347         * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
3348         (skip_escaped_newlines, get_effective_char, lex_percent): Take
3349         a cpp_reader rather than a cpp_buffer.
3350         (skip_escaped_newlines, get_effective_char, skip_block_comment,
3351         skip_line_comment, parse_string, lex_percent, lex_dot,
3352         _cpp_lex_token): Update accordingly.
3353         * cpplib.c (_cpp_pop_buffer): Don't do file change callback
3354         generation here.
3355         (cpp_push_buffer): Update prototype.
3356         (run_directive): Update use of cpp_push_buffer.
3357         (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
3358         handle_assertion): Update use of run_directive.
3359         * cpplib.h (enum cpp_buffer_type): Remove.
3360         (cpp_push_buffer): Update prototype.
3361         * fix-header.c (read_scan_file): Update.
3362
3363 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3364
3365         * gcc.c (struct prefix_list): Change prefix to const char *.
3366
3367 2001-08-22  Matt Kraai  <kraai@alumni.carnegiemellon.edu>
3368
3369         * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
3370
3371 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
3372
3373         * explow.c (set_mem_attributes): Avoid returning a bogus alias set
3374         from a new MEM.
3375
3376         * jump.c (squeeze_notes): Take parms by reference.  Handle END being
3377         a squeezable note.
3378         * rtl.h: Adjust.
3379         * ifcvt.c (dead_or_predicable): Adjust.
3380         * loop.c (find_and_verify_loops): Adjust.
3381         * stmt.c (expand_end_case): Adjust.
3382         * flow.c (merge_blocks_move_successor_nojumps): Adjust.  Modify the
3383         head and end insn pointers in the basic block, not just local copies.
3384         (merge_blocks_move_predecessor_nojumps): Likewise.
3385
3386 2001-08-22  Lars Brinkhoff  <lars@nocrew.org>
3387
3388         * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
3389         bitmap.h, builtin-types.def, builtins.c, builtins.def,
3390         c-aux-info.c, c-common.c, c-common.def, c-common.h,
3391         c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
3392         c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
3393         c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
3394         caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
3395         conditions.h, config.gcc, configure.frag, configure.in,
3396         conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
3397         cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
3398         dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
3399         doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
3400         dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
3401         emit-rtl.c, errors.c, errors.h, except.c, except.h,
3402         exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
3403         fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
3404         function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
3405         gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
3406         gencheck.c, gencodes.c, genconfig.c, genemit.c,
3407         genextract.c, genflags.c, gengenrtl.c, genmultilib,
3408         genopinit.c, genoutput.c, genpeep.c, genrecog.c,
3409         gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
3410         ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
3411         graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
3412         gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
3413         gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
3414         hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
3415         integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
3416         libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
3417         machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
3418         mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
3419         mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
3420         params.h, predict.c, predict.def, predict.h, prefix.c,
3421         prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
3422         read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
3423         regclass.c, regmove.c, regrename.c, regs.h, reload.c,
3424         reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
3425         rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
3426         sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
3427         sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
3428         ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
3429      &n