OSDN Git Service

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