OSDN Git Service

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