pa.md (conditional moves): Avoid holes in operand list.
[gcc.git] / gcc / ChangeLog
1 Thu Nov 30 01:12:52 2000 Jeffrey A Law (law@cygnus.com)
2
3 * pa.md (conditional moves): Avoid holes in operand list.
4 (mod, umod patterns): Similarly.
5 (variable extract/shift patterns): Similarly.
6
7 2000-11-30 Neil Booth <neilb@earthling.net>
8
9 * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
10 maybe_objc_check_decl, build_objc_string_object,
11 objc_declare_alias, objc_declare_class, build_message_expr,
12 build_protocol_expr, build_selector_expr, build_encode_expr,
13 get_class_ivars, start_class, start_protocol): Remove
14 redundant code, assuming doing_objc_thang is true.
15
16 2000-11-29 John David Anglin <dave@hiauly1.hia.nrc.ca>
17
18 * pa.c (restore_unscaled_index_insn_codes): Delete procedure.
19 (record_unscaled_index_insn_codes): Likewise.
20 (unscaled_index_insn_codes): Delete.
21 (max_unscaled_index_insn_codes_uid): Delete.
22 (output_function_prologue, output_function_epilogue, pa_reorg):
23 Don't use the unscaled index insn hack.
24
25 * pa.md: Remove hack from all index insns to reverse the operand
26 order of frame and stack pointer references incorrectly created
27 in the reload pass.
28
29 * function.h (emit_status): Delete member regno_pointer_flag and
30 rename regno_pointer_flag_length to regno_pointer_align_length.
31 Delete define for REGNO_POINTER_FLAG.
32 * integrate.h (inline_remap): Delete member regno_pointer_flag.
33 Add member x_regno_reg_rtx.
34 * rtl.h (rtx_def): Use frame_related bit to indicate register is
35 a pointer in REG expressions. Define REG_POINTER macro.
36 * alias.c (find_base_value, find_base_term): Use REG_POINTER
37 instead of REGNO_POINTER_FLAG.
38 * combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
39 * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
40 of regno_pointer_flag_length. Remove code which refers to
41 regno_pointer_flag.
42 (mark_reg_pointer): Use REG_POINTER.
43 (free_emit_status): Remove code which refers to regno_pointer_flag.
44 (init_emit, mark_emit_status): Likewise.
45 * flow.c (dump_flow_info): Likewise.
46 * function.c (preserve_temp_slots): Likewise.
47 * integrate.c (expand_inline_function, copy_rtx_and_substitute):
48 Use x_regno_reg_rtx instead of regno_pointer_flag for function
49 pointer determination in map.
50 * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
51 * predict.c (estimate_probability): Likewise.
52 * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
53 * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
54 regno_pointer_flag for function pointer determination in map.
55 * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
56 REG_POINTER.
57 * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
58 Use REG_POINTER.
59 (restore_unscaled_index_insn_codes): Revise comment.
60
61 * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
62
63 2000-11-30 Joseph S. Myers <jsm28@cam.ac.uk>
64
65 * extend.texi: Update documentation for attributes.
66
67 2000-11-29 David O'Brien <obrien@FreeBSD.org>
68
69 * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
70 (ASM_DECLARE_OBJECT_NAME): Same.
71 (ASM_FILE_END): Same.
72 (ASM_FINISH_DECLARE_OBJECT): Same.
73 (ASM_IDENTIFY_GCC): Same.
74 (ASM_IDENTIFY_LANGUAGE): Same.
75 (ASM_OUTPUT_CONSTRUCTOR): Same.
76 (ASM_OUTPUT_DEF): Same.
77 (ASM_OUTPUT_DESTRUCTOR): Same.
78 (ASM_OUTPUT_EXTERNAL_LIBCALL): Same.
79 (ASM_OUTPUT_SECTION_NAME): Same.
80 (ASM_WEAKEN_LABEL): Same.
81 (BSS_SECTION_ASM_OP): Same.
82 (COMMON_ASM_OP): Same.
83 (CONST_SECTION_ASM_OP): Same.
84 (CONST_SECTION_FUNCTION): Same.
85 (CTORS_SECTION_ASM_OP): Same.
86 (DTORS_SECTION_ASM_OP): Same.
87 (ESCAPES): Same.
88 (FINI_SECTION_ASM_OP): Same.
89 (IDENT_ASM_OP): Same.
90 (IDENT_ASM_OP): Same.
91 (INIT_SECTION_ASM_OP): Same.
92 (INT_ASM_OP): Same.
93 (MAX_OFILE_ALIGNMENT): Same.
94 (SBSS_SECTION_ASM_OP): Same.
95 (SDATA_SECTION_ASM_OP): Same.
96 (SECTION_FUNCTION_TEMPLATE): Same.
97 (SELECT_SECTION): Same.
98 (SE_CONST_SECTION): Same.
99 (SIZE_ASM_OP): Same.
100 (SKIP_ASM_OP): Same.
101 (STRING_ASM_OP): Same.
102 (STRING_LIMIT): Same.
103 (TYPE_ASM_OP): Same.
104 (TYPE_OPERAND_FMT): Same.
105
106 2000-11-29 Neil Booth <neilb@earthling.net>
107
108 * c-decl.c (c_decode_option): Don't handle -lang-objc.
109 * objc/lang-options.h: Remove -lang-objc.
110 * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
111 * objc/objc-act.c (lang_init_options): Set c_language.
112
113 2000-11-29 Jakub Jelinek <jakub@redhat.com>
114
115 * expr.c (can_store_by_pieces): Reinitialize max_size for reverse
116 tests.
117
118 2000-11-29 Neil Booth <neilb@earthling.net>
119
120 * c-pragma.c (init_pragma): Update for parse_in type change.
121
122 2000-11-29 Laurynas Biveinis <lauras@softhome.net>
123
124 * configure.in: recognize DOS-style absolute paths.
125
126 2000-11-29 Jakub Jelinek <jakub@redhat.com>
127
128 * expr.h (store_by_pieces): Add prototype.
129 (can_store_by_pieces): Likewise.
130 * expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
131 (can_store_by_pieces): New.
132 (store_by_pieces): New.
133 (clear_by_pieces): New.
134 (clear_by_pieces_1): New.
135 (store_by_pieces_1): Renamed from clear_by_pieces, handle storing
136 arbitrary compiler generated constants into memory block.
137 (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
138 * builtins.c (c_readstr): New.
139 (builtin_memcpy_read_str): New.
140 (expand_builtin_memcpy): If src is string constant and
141 emit_block_move would move it by pieces, compute integer constants
142 from the string and store it into memory block instead.
143 (builtin_strncpy_read_str): New.
144 (expand_builtin_strncpy): If N is not constant zero and c_strlen does
145 not return INTEGER_CST, don't optimize.
146 If N is larger than strlen(src) + 1, try to copy the string
147 including padding with store_by_pieces.
148 (expand_builtin_strcmp): If both arguments have side effects, don't
149 optimize.
150 (expand_builtin_fputs): If STR has side effects, don't optimize.
151
152 2000-11-29 Richard Earnshaw <rearnsha@arm.com>
153
154 * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
155 Add use of link register.
156
157 2000-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
158
159 * extend.texi: Update documentation for default format attributes.
160
161 Tue Nov 28 21:56:45 2000 Jeffrey A Law (law@cygnus.com)
162
163 * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
164 a list, to keep track of the sections.
165
166 2000-11-28 Nick Clifton <nickc@redhat.com>
167
168 * config/arm/arm.md (pic_load_addr): Split into
169 pic_load_addr_arm and pic_load_addr_thumb.
170
171 * config/arm/arm.c (legitimize_pic_address): Generate either
172 ARM or Thumb versions of pic_load_addr.
173 (arm_finalize_pic): Generate either ARM or Thumb versions of
174 pic_load_addr.
175
176 2000-11-28 Richard Henderson <rth@redhat.com>
177
178 * calls.c (expand_call): Defer const/pure NO_DEFER_POP until
179 after sibcall do_pending_stack_adjust.
180
181 Wed Nov 29 00:08:23 2000 J"orn Rennecke <amylaar@redhat.com>
182
183 * jump.c (delete_insn): Check that REG_LABEL note actually contains
184 a CODE_LABEL.
185
186 2000-11-28 Neil Booth <neilb@earthling.net>
187
188 * c-common.h: Remove flag_digraphs.
189 * c-decl.c: Remove flag_digraphs.
190 (c_decode_option): Don't set it.
191 * c-lex.c (init_c_lex): Don't do anything for digraphs.
192
193 2000-11-28 Richard Henderson <rth@redhat.com>
194
195 * c-parse.in (finish_parse): Update for parse_in type change.
196 (_yylex): Likewise.
197
198 2000-11-28 Neil Booth <neilb@earthling.net>
199
200 * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
201 indicating whether to scan all buffers on the stack or
202 just one.
203 * cppinit.c (do_includes): Update.
204 * cppmain.c (main): Update.
205 * cpplib.h: Update prototype.
206
207 2000-11-28 Richard Henderson <rth@redhat.com>
208
209 * genoutput.c (validate_insn_operands): New.
210 (gen_insn): Call it.
211
212 * config/alpha/alpha.md (divmodsi_internal): Renumber operands.
213 (divmoddi_internal): Likewise.
214 * config/arm/arm.md (andsi3_compare0_scratch): Likewise.
215 * config/i960/i960.md (branch patterns): Likewise.
216 * config/ia64/ia64.md (tbit_and_0): Likewise.
217 (tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
218 * config/m68k/m68k.md (zero_extract memory patterns): Likewise.
219 * config/mips/mips.md (divmodsi4_internal): Likewise.
220 (divmoddi4_internal): Likewise.
221 * config/rs6000/rs6000.md (call patterns): Likewise.
222 * config/sh/sh.md (movsi_y): Likewise.
223 * config/sparc/sparc.md: Comment out if 0 v8p shift pattern.
224
225 2000-11-28 Richard Henderson <rth@redhat.com>
226
227 * config.gcc: Kill residual pyramid support.
228
229 2000-11-28 Neil Booth <neilb@earthling.net>
230
231 * c-lex.h (parse_in): Change parse_in to a cpp_reader *.
232 * c-decl.c (c_decode_option): Update to match.
233 * c-lex.c (init_c_lex, yyparse): Update to match.
234 * c-lang.c (lang_init_options): Use cpp_create_reader.
235 * cppinit.c (cpp_init): Rename initialize.
236 (cpp_reader_init): Rename cpp_create_reader. Create the
237 reader. Initialize cpplib if appropriate.
238 * cpplib.h (cpp_create_reader) New prototype.
239 (cpp_init, cpp_reader_init): Delete prototypes.
240 * cppmain.c (general_init, setup_callbacks): New functions.
241 (main): Use them.
242 * fix-header.c (scan_in): Change type to cpp_reader *.
243 (read_scan_file): Update for new cpplib interface and scan_in type.
244
245 * cp/decl.c (parse_in): Change to cpp_reader *.
246 (lang_decode_option): Update.
247 * cp/lex.c (lang_init_options): Use new cpplib interface.
248 (init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
249 * cp/spew.c (read_token): Update.
250 * objc/objc-act.c (lang_init_options): Update new cpplib interface.
251
252 2000-11-28 Jakub Jelinek <jakub@redhat.com>
253
254 * loop.c (load_mems): Avoid using next_label to find end_label. If
255 jumping outside of the loop (other than loop end), don't hoist MEMs
256 out of loop.
257
258 2000-11-28 Jan Hubicka <jh@suse.cz>
259
260 * calls.c (expand_call): Don't disable tail recursion based
261 on the loop nest.
262
263 2000-11-28 Neil Booth <neilb@earthling.net>
264
265 * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
266 (struct directive): Drop 4th argument from handlers.
267 (do_define, do_line, do_include, do_undef, do_else, do_elif,
268 do_endif): Similarly.
269 (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
270 (do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
271 (make_definition, make_undef): Take a const char*.
272 (make_assertion): New function.
273 (struct directive_table): Update.
274 (main): Handle -A command line argument.
275 (handle_directive): Drop fourth handler argument.
276
277 2000-11-28 Bernd Schmidt <bernds@redhat.co.uk>
278
279 * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
280 is anything but REG or MEM, but look inside STRICT_LOW_PART.
281
282 Tue Nov 28 09:53:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
283
284 * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
285 (IS_ABSOLUTE_PATHNAME): New macro.
286 * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
287
288 2000-11-28 Jakub Jelinek <jakub@redhat.com>
289
290 * config/i386/i386.md (truncxfsf2_2): Fix predicate.
291
292 2000-11-27 Jim Wilson <wilson@redhat.com>
293
294 * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
295
296 2000-11-27 Matthias Klose <doko@cs.tu-berlin.de>
297
298 * extend.texi (Nested Functions): Update URL of Usenix paper.
299
300 2000-11-27 Mark Mitchell <mark@codesourcery.com>
301
302 * function.c (free_after_compilation): Clear x_clobber_return_insn.
303
304 2000-11-27 Neil Booth <neilb@earthling.net>
305
306 * cppinit.c (cpp_reader_init): Remove handling of warn_paste
307 command line options.
308 (cpp_handle_option): Similarly.
309 * cpplib.h (struct cpp_options): Remove warn_paste.
310 * cppmacro.c (paste_tokens): Apart from assembler, make
311 unpasteable token warning mandatory.
312
313 2000-11-27 Neil Booth <neilb@earthling.net>
314
315 * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
316 (main): Allocate a pending directive set of these. Use it.
317 Merge handling of -D and -U. Update handling of pending
318 directives. Free the memory after use.
319
320 2000-11-27 Bernd Schmidt <bernds@redhat.co.uk>
321
322 * flow.c (entry_exit_blocks): Add entry for cond_local_set.
323 (struct propagate_block_info): Add new member cond_local_set.
324 (propagate_block): Accept new arg cond_local_set. All callers
325 changed.
326 (init_propagate_block_info): Likewise.
327 (calculate_global_regs_live): Allocate & free cond_local_set. Always
328 rescan if there's overlap between cond_local_set and new_live_at_end.
329 (mark_set_1): Set bits either in cond_local_set or local_set, as
330 appropriate.
331 * basic-block.h (struct basic_block_def): New field cond_local_set.
332 (propagate_block, init_propagate_block_info): Update prototypes.
333
334 Mon Nov 27 17:29:44 2000 kaz Kojima <kkojima@rr.iij4u.or.jp>
335
336 * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
337 T register.
338
339 2000-11-27 Richard Earnshaw <rearnsha@arm.com>
340
341 * arm.c (select_dominance_cc_mode): Handle new way that combine
342 canonicalizes conditional compares.
343 (arm_select_cc_mode): Likewise.
344 * arm.md: Garbage collect some dead code.
345 (cmp_and, cmp_ior): New patterns.
346 (splitter for conditional move with inverted false): Use cond_exec
347 and handle unordered comparisons.
348
349 Mon Nov 27 17:22:56 MET 2000 Jan Hubicka <jh@suse.cz>
350
351 * i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
352 * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
353 * i386.md (float?i?f, int/fp operations): Rewrite spliters to use
354 ix86_force_to_memory and ix86_free_from_memory.
355
356 2000-11-27 Richard Earnshaw <rearnsha@arm.com>
357
358 * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
359 arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
360 anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
361 one_cmpldi2): Merge with splitters to create define_insn_and_split
362 patterns. Remove redundant splits.
363 (peephole2 for add:SI of invalid immediate): New.
364 (peephole2 for minus:SI of invalid immediate): New.
365 (peephole2 for ior:SI of invalid immediate): New.
366 (peephole for merge of move and compare): Convert ot peephole2.
367 (addsf3, adddf3): Mark as commutative.
368
369 * arm.md (thumb peephole for merging stack adjustments): Convert to
370 peephole2.
371
372 2000-11-27 Bernd Schmidt <bernds@redhat.co.uk>
373
374 * haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
375
376 * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
377 (reload_cse_simplify_operands): Do nothing about operands where both
378 the operand and the match_operand fail to give us a mode.
379 * simplify-rtx.c (wrap_constant): New function.
380 (entry_and_rtx_equal_p): Except integer constants to come wrapped in a
381 CONST describing the proper mode.
382 (rtx_equal_for_cselib_p): Pass down modes to recursive calls of
383 cselib_lookup.
384 (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
385 htab_find_slot_with_hash.
386 (cselib_lookup): Likewise.
387
388 Based on a patch from Geoff Keating <geoffk@redhat.com>:
389 * loop.c (basic_induction_var): If a REG is set from something
390 that is not a biv, then the REG is not a biv. Even if it is
391 earlier set from something that is a biv.
392
393 2000-11-27 Alexandre Oliva <aoliva@redhat.com>
394
395 * configure.in (extra_objs): Enclose extra_headers in quotes.
396 * configure: Rebuilt.
397
398 2000-11-27 Neil Booth <neilb@earthling.net>
399
400 * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
401 Combine into the new function cb_change_file.
402 (init_c_lex): Update.
403 * cppfiles.c (stack_include_file): Use _cpp_do_file_change.
404 (cpp_syshdr_flags): Delete.
405 * cpphash.h (_cpp_do_file_change): New prototype.
406 Move struct cpp_buffer here from...
407 * cpplib.h (struct cpp_buffer): ... here.
408 (enum cpp_fc_reason, struct cpp_file_loc,
409 struct_cpp_file_change, change_file): New.
410 (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
411 * cpplib.c (do_line): Update for new cb_change_file callback.
412 (_cpp_do_file_change): New function.
413 (_cpp_pop_buffer): Update to use it.
414 * cppmain.c (move_printer): Delete.
415 (main): Set up single callback cb_change_file.
416 (cb_enter_file, cb_leave_file, cb_rename_file): Delete.
417 (cb_change_file): New.
418 * fix-header.c (cur_file, cb_change_file): New.
419 (recognized_function, read_scan_file): Update.
420 * scan-decls.c (scan_decls): Update.
421 * scan.h (recognized_function): Update prototype.
422
423 2000-11-26 Mark Mitchell <mark@codesourcery.com>
424
425 * tree.h (mark_tree_hashtable): New function.
426 * tree.c (mark_tree_hashtable_entry): New function.
427 (mark_tree_hashtable): Likewise.
428
429 2000-11-27 Michael Meissner <meissner@redhat.com>
430
431 * d30v-protos.h (srelational_si_operator): Correctly spell
432 function.
433 (urelational_si_operator): Ditto.
434 (relational_si_operator): Ditto.
435 (d30v_expand_prologue): Add prototype.
436 (d30v_expand_epilogue): Ditto.
437
438 * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
439
440 * d30v.md (movcccc_*): Delete now unused patterns.
441 (64 bit comparison splitters): Rewrite to use COND_EXEC instead of
442 IF_THEN_ELSE.
443 (define_cond_exec): Use 'b' to select branch flags.
444
445 2000-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
446
447 * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
448 functions.
449 (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
450
451 * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
452
453 * c-common.c (c_common_nodes_and_builtins): Declare builtin
454 strncpy and strncmp.
455
456 * extend.texi (strncmp, strncpy): Document new builtins.
457
458 2000-11-26 Mark Mitchell <mark@codesourcery.com>
459
460 * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
461 a list, to keep track of the sections.
462 * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
463 parameter provided will always be a canonical string.
464
465 2000-11-26 Neil Booth <neilb@earthling.net>
466
467 * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
468 current buffer.
469
470 2000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
471
472 * makefile.vms: Remove EGCS references.
473
474 2000-11-26 Ulrich Drepper <drepper@redhat.com>
475
476 * dwarf2out.c (output_file_names): New function. Compute minimal
477 combination of directory and file name table and emit them.
478 (output_line_info): Remove code to emit directory and file name
479 table and call output_file_names instead.
480 (file_info_cmp): Helper function to sort directory names.
481
482 2000-11-26 Neil Booth <neilb@earthling.net>
483
484 * cpplib.h (struct cpp_reader): Remove lang_asm.
485 (struct cpp_options): Remove c89. New members lang,
486 extended_numbers.
487 * cppexp.c (parse_number): Use them.
488 * cpphash.h (VALID_SIGN): Use them.
489 * cppinit.c (set_lang, cpp_start_read): Update.
490 * cpplex.c (parse_string, _cpp_lex_token): Update.
491 * cpplib.c (_cpp_handle_directive): Update.
492 * cppmacro.c (parse_args): Update.
493 * cppmain.c (scan_buffer): Update.
494
495 Sun Nov 26 10:02:37 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
496
497 * fold-const.c (fold, case CONVERT_EXPR): Always return tree of
498 proper type.
499
500 2000-11-26 Neil Booth <neilb@earthling.net>
501
502 * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.
503 * c-decl.c: Remove parse_in declaration.
504 * c-lang.c: Similarly.
505 * c-lex.c: Similarly.
506 * c-parse.in: Similarly.
507 * c-pragma.c: Similarly.
508 * configure.in: Similarly.
509 * cp/Make-lang.in: Similarly.
510 * cp/spew.c: Similarly.
511 * cp/decl2.c: Remove check for lang-c++ option.
512 * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
513 * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
514 * c-lex.h: Add declaration of parse_in.
515 * cppinit.c: Call set_lang after allocating pfile->pending.
516 * configure: Regenerate.
517
518 2000-11-25 Zack Weinberg <zack@wolery.stanford.edu>
519
520 * combine.c (try_combine): Remove redundant test.
521
522 2000-11-25 Richard Henderson <rth@redhat.com>
523
524 * c-common.h (DECL_C_HARD_REGISTER): New.
525 * c-decl.c (finish_decl): Set it for asm register variables.
526 * c-semantics.c (emit_local_var): Test it when instantiating one.
527
528 2000-11-25 Richard Henderson <rth@redhat.com>
529
530 * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
531 lineno for the start of the function.
532
533 2000-11-25 Richard Henderson <rth@redhat.com>
534
535 * dwarf2out.c (file_table, file_table_allocated): Remove.
536 (file_table_allocated): Remove.
537 (struct file_table): New.
538 (decl_file_table, line_file_table): New.
539 (print_dwarf_line_table): Use them.
540 (size_of_line_prolog): Likewise.
541 (output_line_info): Likewise.
542 (add_src_coords_attributes): Likewise.
543 (gen_subprogram_die): Likewise.
544 (gen_variable_die): Likewise.
545 (dwarf2out_add_library_unit_info): Likewise.
546 (dwarf2out_line): Likewise.
547 (lookup_filename): Take a struct file_table argument.
548 (init_file_table): New.
549 (dwarf2out_init): Use it.
550
551 2000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
552
553 * invoke.texi: Update sequence points references.
554
555 2000-11-25 Neil Booth <neilb@earthling.net>
556
557 * c-common.c: Remove USE_CPPLIB conditional inclusions.
558 * c-common.h: Similarly.
559 * c-decl.c: Similarly.
560 * c-lang.c: Similarly.
561 * c-lex.c: Similarly.
562 * c-parse.in: Similarly.
563 * c-pragma.c: Similarly.
564 * c-pragma.h: Similarly.
565 * gcc.c: Similarly.
566 * toplev.c: Similarly.
567 * cp/cp-tree.h: Similarly.
568 * cp/decl2.c: Similarly.
569 * cp/lang-specs.h: Similarly.
570 * cp/lex.c: Similarly.
571 * cp/lex.h: Similarly.
572 * cp/spew.c: Similarly.
573 * java/lang-options.h: Similarly.
574 * objc/lang-specs.h: Similarly.
575 * objc/objc-act.c: Similarly.
576
577 * configure.in: Remove configure option.
578 * config.in: Regenerate.
579 * configure: Regenerate.
580
581 2000-11-25 Richard Henderson <rth@redhat.com>
582
583 * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
584 Revert 2000-11-22 change.
585
586 2000-11-25 Bernd Schmidt <bernds@redhat.co.uk>
587
588 * config/i386/i386.h (FIXED_REGS): Make the three flags registers
589 fixed.
590
591 2000-11-25 Philipp Thomas <pthomas@suse.de>
592 * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
593 * configure: Rebuilt.
594
595 2000-11-25 Jakub Jelinek <jakub@redhat.com>
596
597 * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
598 Handle CONST_INT as second argument.
599 * config/sparc/sparc.c (set_extends): Remove first argument.
600 Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
601 MOV.
602 (sparc_check_64): Abort if first argument is not REG.
603 If it is DImode REG, look at the lower register of the register
604 pair.
605
606 * config/sparc/sparc.c (load_pic_register, restore_regs,
607 output_return, sparc_v8plus_shift, sparc_function_profiler,
608 sparc_function_block_profiler, sparc_block_profiler): Fix output
609 formatting.
610
611 2000-11-25 Alexandre Oliva <aoliva@redhat.com>
612
613 * config/sh/sh.h (TARGET_NONE): New.
614 (TARGET_SWITCHES): For all variant-selecting switch, use
615 TARGET_NONE to reset all other variant-selecting switch. Added
616 empty strings to avoid warnings.
617 (TARGET_DEFAULT): Set to SH1_BIT.
618
619 * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
620 insn-codes.h.
621
622 * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
623 (sibcall_pcrel): New insn_and_split.
624 (sibcall, sibcall_value, sibcall_epilogue): New expands.
625
626 * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
627 symPLT_label2reg, call, call_value): Don't set
628 current_function_uses_pic_offset_table.
629 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
630 PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
631 takes it into account.
632 (FINALIZE_PIC): Delete, useless.
633 (LEGITIMATE_CONSTANT_P): Delete, unused.
634 * config/sh/sh.c (sh_expand_prologue): Don't use
635 current_function_uses_pic_offset_table. Don't special-case
636 PIC_OFFSET_TABLE_REGNUM. Initialize it if it's ever live and
637 PIC is enabled.
638 (sh_expand_epilogue, initial_elimination_offset): Don't
639 special case PIC_OFFSET_TABLE_REGNUM.
640
641 2000-11-25 Alexandre Oliva <aoliva@redhat.com>, NIIBE Yutaka <gniibe@m17n.org>
642
643 * config/sh/sh-protos.h (symbol_ref_operand): Declare.
644 * config/sh/sh.md (UNSPEC_CALLER): New constant.
645 (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
646 (call_pcrel, call_value_pcrel): New insn_and_splits.
647 (call, call_value): Use them.
648 (call_site): New expand.
649 (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
650 * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
651 Output call_site label.
652 (PREDICATE_CODES): Added symbol_ref_operand.
653 * config/sh/sh.c (symbol_ref_operand): Define.
654 * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
655 to CALL_INSNs in the split sequence.
656
657 2000-11-24 Nick Clifton <nickc@redhat.com>
658
659 * config.gcc (v850-*-*): Define c_target_objs and
660 cxx_target_objs.
661
662 * config/v850/t-v850: Define how to build v850-c.o
663
664 * config/v850/v850.h (struct data_area_stack_element): Move
665 definition here from v850.c.
666
667 * config/v850v850.c: Include gcc.h to avoid compile time
668 warning.
669 (push_data_area): Move to v850-c.c.
670 (pop_data_area): Move to v850-c.c.
671 (mark_current_function_as_interrupt): Move to v850-c.c.
672 (GHS_default_section_names): Allow to be exported.
673 (GHS_current_section_names): Allow to be exported.
674 (data_area_stack_elements): Allow to be exported.
675 (ghs_pragma_section): Move to v850-c.c.
676 (ghs_pragma_interrupt): Move to v850-c.c.
677 (ghs_pragma_starttda): Move to v850-c.c.
678 (ghs_pragma_startsda): Move to v850-c.c.
679 (ghs_pragma_startzda): Move to v850-c.c.
680 (ghs_pragma_endtda): Move to v850-c.c.
681 (ghs_pragma_endsda): Move to v850-c.c.
682 (ghs_pragma_endzda): Move to v850-c.c.
683
684 * config/v850/v850-c.c: New file: Contains v850 specific
685 pragma parsing functions.
686
687 2000-11-24 Nick Clifton <nickc@redhat.com>
688
689 * config.gcc (extra_objs): Remove duplicate description.
690 (c_target_objs): New variable. Contains target specific
691 object files for the gcc C compiler only.
692 (cxx_target_objs): New variable. Contains target specific
693 object files for the gxx C++ compiler only.
694
695 * configure.in (c_target_objs): Substitute in the makefile.
696 (cxx_target_objs): Substitute in the makefile.
697 * configure: Regenerate.
698
699 * Makefile.in (C_TARGET_OBJS): Define and initialise from
700 c_target_objs.
701 (CXX_TARGET_OBJS): Define and initialise from
702 cxx_target_objs.
703 (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
704
705 * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
706
707 * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
708 about how the use of the 'c_lex' function requires the use of
709 the target specific, language specific object files feature of
710 the configuration mechanism.
711
712 Fri Nov 24 18:50:58 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
713
714 * gcc.c (process_command): Use F_OK, not R_OK.
715
716 2000-11-24 Arno J. Klaassen <arno@heho.snv.jussieu.fr>
717
718 * flow.c (print_rtl_and_abort): Remove ANSIism.
719
720 Fri Nov 24 19:54:36 2000 Alexandre Oliva <aoliva@redhat.com>
721
722 * config/sh/sh.h (GENERAL_REGISTER_P,
723 GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
724 FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros. Use them
725 all over.
726 (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
727 * config/sh/sh.c: Use new macros.
728 * config/sh/sh.md: Likewise.
729
730 Fri Nov 24 19:46:16 2000 Alexandre Oliva <aoliva@redhat.com>
731
732 * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
733 instead of just MACH_REG in DImode. Always refer to FPSCR_REG
734 in PSImode.
735
736 Fri Nov 24 22:37:41 2000 Denis Chertykov <denisc@overta.ru>
737
738 * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
739 fixed.
740 (machine_dependent_reorg): Wrong optimization based on
741 NOTICE_UPDATE_CC removed.
742
743 Fri Nov 24 19:48:09 2000 J"orn Rennecke <amylaar@redhat.com>
744
745 * jump.c (delete_computation): Re-instate deletion of feeding insn.
746 (delete_insn): Look for REG_LABEL notes.
747 (redirect_tablejump): Delete feeding insns.
748
749 2000-11-24 Bernd Schmidt <bernds@redhat.co.uk>
750
751 * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
752 call_value_pop_1): Make sure operand numbers are contiguous.
753
754 * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
755
756 * reload1.c (conflicts_with_override): New function.
757 (emit_input_reload_insns): Use it to tighten test for validity
758 of substituting into output of previous insn.
759
760 * haifa-sched.c (struct ready_list): New.
761 (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
762 functions.
763 (schedule_insn): Replace args READY and N_READY with a pointer to a
764 ready_list; return void. Use the new functions to access the ready
765 list. All callers changed.
766 (queue_to_ready, debug_ready_list): Likewise.
767 (schedule_block): Initialize a ready_list structure. Use new
768 functions to access it.
769 (max_priority): Remove unused variable.
770 (schedule_insn): Don't set it.
771
772 * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
773
774 * combine.c (cant_combine_insn_p): New function.
775 (try_combine): Use it.
776
777 * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
778 * c-common.c (c-obstack.c): Include "obstack.h".
779 (struct reverse_tree): Delete.
780 (reverse_list, reverse_max_depth): Delete.
781 (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
782 (struct tlist, struct tlist_cache): New.
783 (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
784 (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
785 warn_for_collisions, warn_for_collisions_1, new_tlist): New
786 static functions.
787 (verify_sequence_points): Rewritten.
788 * fold-const.c (fold): Don't lose possibly important sequence
789 points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
790
791 2000-11-24 Richard Sandiford <rsandifo@redhat.com>
792
793 * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
794 when reversing a register-to-register copy. Reversal now disabled
795 when the previous instruction has a REG_EQUIV.
796
797 2000-11-24 Nathan Sidwell <nathan@codesourcery.com>
798
799 * c-parse.in (unary_expr): Move VA_ARG from here ...
800 (primary): ... to here.
801
802 2000-11-23 Graham Stott <grahams@redhat.com>
803
804 * expr.c (store_constructor): If a field is non addressable and
805 the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
806
807 2000-11-23 Bernd Schmidt <bernds@redhat.co.uk>
808
809 * flow.c (print_rtl_and_abort): New function.
810 (verify_wide_reg, verify_local_live_at_start): Try to dump more
811 information before aborting.
812
813 2000-11-23 Alexandre Oliva <aoliva@redhat.com>
814
815 * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
816 is narrower than requested mode.
817 (gen_highpart): Abort if register mode is narrower than
818 requested mode.
819
820 2000-11-23 Graham Stott <grahams@redhat.com>
821
822 * cse.c (cse_insn): Initialise all regcost variables.
823 Fix a typo add missing '='.
824 Only compare costs if there is a replacement insn.
825
826 Thu Nov 23 04:33:33 2000 Alexandre Oliva <aoliva@redhat.com>
827
828 * final.c (output_addr_const) [LABEL_REF]: Simplify.
829 [MINUS]: Enclose non-CONST_INTs in parentheses.
830 [default]: Try OUTPUT_ADDR_CONST_EXTRA.
831 * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
832 * varasm.c (decode_rtx_const) [CONST]: If it's not something
833 PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
834 instead of abort()ing.
835 * sh.c (output_pic_addr_const): Removed. Fixed all callers.
836 * sh.h (OUTPUT_ADDR_CONST_EXTRA): New. Handle the UNSPECs
837 formerly handled in output_pic_addr_const.
838 * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
839 operands of MINUS in CONSTs so that decode_rtx_const() will
840 accept them.
841
842 Thu Nov 23 04:10:30 2000 Alexandre Oliva <aoliva@redhat.com>
843
844 * config/sh/sh.md (mova_const): New pattern.
845 (GOTaddr2picreg): Use it.
846 * config/sh/sh.c (broken_move): Match it.
847 (mova_p): Don't match it.
848 (machine_dependent_reorg): Adjust it.
849
850 Thu Nov 23 02:09:09 2000 Alexandre Oliva <aoliva@redhat.com>
851
852 * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
853 Moved most register-number #defines...
854 * config/sh/sh.md (define_constants): ... here. Use macros to
855 refer to registers and unspecs.
856 * config/sh/sh.c: Likewise.
857
858 Thu Nov 23 01:01:32 2000 J"orn Rennecke <amylaar@redhat.com>
859
860 * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
861 (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
862 (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
863 (splay-tree.o, hash.o): Likewise.
864 GCONFIG_H: New.
865 (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
866 (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
867 (hashtab.o): Likewise.
868 (gcov.o): Depend on $(CONFIG_H).
869 * configure.in: #include insn-codes.h in tm.h.
870
871 2000-11-22 Nick Clifton <nickc@redhat.com>
872
873 * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
874 const char * to avoid a compile time warning.
875
876 * config/arm/arm.md (define_constants): Define symbolic names for
877 the link register, last integer register and the fake CC register.
878 Update patterns to use these symbolic names.
879
880 2000-11-22 Neil Booth <neilb@earthling.net>
881
882 * cpplex.c (trigraph_ok): Ensure we don't warn twice.
883 * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
884
885 2000-11-22 Richard Henderson <rth@redhat.com>
886
887 * haifa-sched.c (sched_analyze_1): Don't special-case calls
888 for clobbering registers.
889 (sched_analyze_2): Likewise.
890 (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
891
892 2000-11-22 Chris Demetriou <cgd@sibyte.com>
893 Neil Booth <neilb@earthling.net>
894
895 * gcc.c (validate_switches): Validate multiple switches named
896 in '|' (or) expressions in specs.
897 (handle_braces): If more than 1 alternative in a '|' spec
898 matches, call do_spec1 just once.
899
900 2000-11-22 Michael Meissner <meissner@redhat.com>
901
902 * d30v.h (TARGET_SWITCHES): Add documentation strings.
903 (TARGET_OPTIONS): Ditto.
904 (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
905 -O3.
906
907 Wed Nov 22 06:40:56 2000 Jeffrey A Law (law@cygnus.com)
908
909 * pa.c (hppa_encode_label): Account for addition of encoding
910 character when allocating persistent space for the new label
911 name.
912
913 2000-11-22 Zack Weinberg <zack@wolery.stanford.edu>
914
915 * Makefile.in, config.gcc, configure.in: Expunge remaining
916 traces of facility for running MD files through C preprocessor.
917
918 2000-11-22 Joseph S. Myers <jsm28@cam.ac.uk>
919
920 * gcov.texi: Add magic comments for texi2pod.pl.
921 * Makefile.in: Add rules to generate and install gcov.1.
922 * gcov.1: New (generated) file.
923
924 2000-11-21 Richard Henderson <rth@redhat.com>
925
926 * regrename.c (scan_rtx_reg): Terminate the chain rather than
927 abort on mark_read with NO_REGS.
928
929 2000-11-21 Mike Stump <mrs@wrs.com>
930
931 * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
932 compilation with older compilers, such as /bin/cc on SunOS.
933 * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
934
935 2000-11-21 Richard Henderson <rth@redhat.com>
936
937 * varasm.c (record_constant): Pad the constructed
938 constant_descriptor appropriately.
939
940 Wed Nov 22 00:52:55 2000 J"orn Rennecke <amylaar@redhat.com>
941
942 * rtl.h (traverse_md_constants): Declare.
943 (struct md_constant): Define.
944 * Makefile.in (HOST_RTL): Add hashtab.o .
945 (OBJS): Add hashtab.o .
946 (hashtab.o): New rule.
947 (rtl.o): Depends on HASHTAB_H.
948 * rtl.c (hashtab.h): #include.
949 (md_constants): New static variable.
950 (def_hash, def_name_eq_p, read_constants): New static functions.
951 (traverse_md_constants): New function.
952 (read_name): Do constant expansion.
953 (read_rtx): Recognize define_constants.
954 * gencodes.c (print_md_constant): New function.
955 (main): Emit #defines for all constant definitions encountered.
956 * md.texi (Constant Definitions): New node.
957 * gensupport.c (xcalloc): New function.
958
959 2000-11-21 Richard Henderson <rth@redhat.com>
960
961 * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
962 * config/alpha/alpha-protos.h: Declare it.
963 * config/alpha/alpha.md (abstf_internal): Use it.
964 (negtf_internal): Likewise.
965 (andnotdi3): Unstar the name.
966 (movtf_internal): Add o/G alternative.
967
968 2000-11-21 Zack Weinberg <zack@wolery.stanford.edu>
969
970 * stringpool.c (stringpool_statistics): Also report number and
971 percentage of entries which are identifiers.
972
973 2000-11-21 Diego Novillo <dnovillo@redhat.com>
974
975 * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
976 visited before visiting it.
977
978 2000-11-21 Nick Clifton <nickc@redhat.com>
979
980 * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
981 TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
982
983 * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
984
985 2000-11-21 Richard Henderson <rth@redhat.com>
986
987 * c-common.c (c_unsafe_for_reeval): New function.
988 (add_c_tree_codes): Register it.
989 * c-common.h: Declare it.
990 * tree.c (lang_unsafe_for_reeval): New hook.
991 (unsafe_for_reeval): Call it.
992 * tree.h: Declare it.
993
994 2000-11-21 Richard Henderson <rth@redhat.com>
995
996 * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
997 references as well.
998
999 2000-11-21 Neil Booth <neilb@earthling.net>
1000
1001 * do_includes: Revert to using cpp_read_file.
1002
1003 2000-11-21 Bernd Schmidt <bernds@redhat.co.uk>
1004
1005 * loop.c (consec_sets_giv): If the reg we're examining is anything
1006 but UNKNOWN_INDUCT, do nothing.
1007 Reset the reg's type to UNKNOWN_INDUCT before returning.
1008
1009 Mostly from Vladimir Makarov (vmakarov@redhat.com)
1010 * ia64.md (attr itanium_class): Define insn types as described in
1011 Itanium docs.
1012 (all insn patterns): Use itanium_class, not type attributes.
1013 Occasionally split alternatives as necessary.
1014 (attr type): Compute from new attr itanium_class.
1015
1016 2000-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1017
1018 * tradcpp.c (output_line_command): Mark system headers as such in
1019 `line' commands.
1020
1021 2000-11-21 Jakub Jelinek <jakub@redhat.com>
1022
1023 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
1024 support in as as well.
1025 * configure: Regenerate.
1026
1027 2000-11-20 Richard Henderson <rth@redhat.com>
1028
1029 * c-lex.c (orig_filename): New variable.
1030 (init_c_lex): Set it. Move call to cpp_start_read ...
1031 (yyparse): ... here. New function.
1032 * c-parse.in (yyparse_1): Rename the parser entry point.
1033 * c-tree.h: Declare it.
1034
1035 2000-11-21 Jakub Jelinek <jakub@redhat.com>
1036
1037 * expr.c (do_compare_and_jump): If op0 was replaced by promoted
1038 integer constant, use type of op1 for comparison.
1039
1040 2000-11-20 Stan Shebs <shebs@apple.com>
1041
1042 * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
1043 * config/rs6000/x-darwin: New file, Darwin host fragment.
1044 * config.gcc (powerpc-*-darwin*): New host.
1045 * system.h (HAVE_DESIGNATED_INITIALIZERS): Allow this to be
1046 overridden by a config file.
1047
1048 2000-11-20 Neil Booth <neilb@earthling.net>
1049
1050 * cppmacro.c (paste_tokens): Rename from paste_payloads.
1051 Change token type after pasting spellings.
1052 (paste_all_tokens): Use it.
1053 * gcc.dg/cpp/paste2.c: Update test.
1054 * objc/execute/paste.m: New test.
1055
1056 2000-11-20 Richard Henderson <rth@redhat.com>
1057
1058 * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
1059 dwarf_subscr_data_formats bits.
1060 * dwarfout.c (simple_type_size_in_bits): Handle a type with
1061 no computed size as size zero.
1062 (field_byte_offset): Likewise.
1063 (subscript_data_attribute): Handle a range with no upper bound.
1064
1065 2000-11-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1066
1067 * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
1068
1069 2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
1070
1071 * c-typeck.c (build_conditional_expr): When merging type
1072 qualifiers for conditional expressions between a pointer and a
1073 pointer to a void type, merge the qualifiers on the target types
1074 rather than the pointer type. Remove obsolete conditioned out
1075 code.
1076
1077 2000-11-20 Neil Booth <neilb@earthling.net>
1078
1079 * c-lang.c (lang_init_options): Update call to
1080 cpp_reader_init.
1081 * cppmain.c (main): Similarly.
1082 * fix-header.c (read_scan_file): Similarly.
1083 * cp/lex.c (lang_init_options): Similarly.
1084 * objc/objc-act.c (lang_init_options): Similarly.
1085 * cppexp.c (parse_number): Only warn for unextended C89.
1086 * cppinit.c (set_lang): New function.
1087 (cpp_reader_init): Take a LANG argument and pass it to set_lang.
1088 (COMMAND_LINE_OPTIONS): New option std=c++98.
1089 (cpp_handle_option): Use set_lang.
1090 * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
1091 * cppib.h (enum_c_lang): New enumeration. Update comments.
1092
1093 2000-11-20 Will Cohen <wcohen@redhat.com>
1094
1095 * calls.c (expand_call): Clear target only when target is in
1096 hard register and current_function_check_memory_usage is set.
1097
1098 2000-11-20 Bernd Schmidt <bernds@redhat.co.uk>
1099
1100 * toplev.c (rest_of_compilation): Run optimize_mode_switching even
1101 if not optimizing.
1102 * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
1103
1104 2000-11-19 Richard Henderson <rth@redhat.com>
1105
1106 * crtstuff.c (force_to_data): Use array size 1 not 0.
1107
1108 * dwarf2out.c (simple_type_size_in_bits): Handle a type with
1109 no computed size as size zero.
1110 (field_byte_offset): Likewise.
1111
1112 2000-11-20 Joseph S. Myers <jsm28@cam.ac.uk>
1113
1114 * config.gcc: Fix another typo.
1115
1116 2000-11-19 Richard Henderson <rth@redhat.com>
1117
1118 * c-decl.c (grokdeclarator): Support flexible array members.
1119 Use open-ended ranges for these and zero-length arrays.
1120 * c-typeck.c (push_init_level): Validate the context of
1121 initialization of a zero-length array.
1122 * tree.c (int_fits_type_p): Be prepared for missing bounds.
1123 * varasm.c (array_size_for_constructor): New.
1124 (output_constructor): Use it for arrays of unspecified length.
1125 * extend.texi (Zero Length): Mention C99 flexible array members.
1126 Document initialization in a top-level struct as valid.
1127
1128 2000-11-19 Joseph S. Myers <jsm28@cam.ac.uk>
1129
1130 * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
1131
1132 * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
1133 stdarg and varargs functions.
1134
1135 2000-11-19 Zack Weinberg <zack@wolery.stanford.edu>
1136
1137 * gcc.c (process_command): Define 'j' variable when
1138 MODIFY_TARGET_NAME is defined.
1139
1140 2000-11-19 Richard Henderson <rth@redhat.com>
1141
1142 * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
1143
1144 2000-11-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1145
1146 * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
1147 calculation and allocation.
1148
1149 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1150
1151 * builtins.c (c_getstr): Constify variable.
1152 * gmon-sol2.c (_mcleanup): Comment out #endif labels.
1153 * conflict.c (const_conflict_graph_arc): New typedef.
1154 (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
1155 * cppmacro.c (builtin_macro): Likewise.
1156 * dwarf2out.c (output_comp_unit): Constify variable.
1157 * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
1158 * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
1159 * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
1160 away const-ness.
1161 * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
1162 ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
1163 * varasm.c (const_str_htab_hash, const_str_htab_eq,
1164 compare_constant_1, record_constant_1): Constify.
1165
1166 2000-11-18 Richard Henderson <rth@redhat.com>
1167
1168 * c-decl.c (grokdeclarator): Special case the creation of an
1169 index for a zero-length array.
1170 * tree.c (build_index_type): Revert Oct 20 change.
1171
1172 2000-11-18 Marek Michalkiewicz <marekm@linux.org.pl>
1173
1174 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
1175 * config/avr/avr.c (jump_tables_size): New variable.
1176 (function_prologue): Initialize it as 0.
1177 (function_epilogue): Add it to function_size.
1178 (avr_output_addr_vec_elt): New function. Count words in jump
1179 tables in jump_tables_size. Move code ...
1180 * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
1181 Call avr_output_addr_vec_elt instead.
1182 * config/avr/avr.md (tablejump): Remove disabled define_expand.
1183
1184 2000-11-18 Mark Mitchell <mark@codesourcery.com>
1185
1186 * configure.in: Make --enable-new-gxx-abi the default.
1187 * configure: Likewise.
1188
1189 2000-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1190
1191 * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
1192
1193 * tradcif.y: Include tradcpp.h. Constify. Make functions static.
1194 Move extern function declarations to tradcpp.h.
1195
1196 * tradcpp.c: Likewise.
1197
1198 * tradcpp.h: New file.
1199
1200 2000-11-18 Joseph S. Myers <jsm28@cam.ac.uk>
1201
1202 * c-decl.c (check_for_loop_decls): New function.
1203 * c-parse.in (for_init_stmt): New.
1204 (select_or_iter_stmt): Use for_init_stmt.
1205 * c-tree.h (check_for_loop_decls): New declaration.
1206
1207 2000-11-18 Neil Booth <neilb@earthling.net>
1208
1209 * cppinit.c: Update comments.
1210 (cpp_reader_init): Make -imacro and -include use the standard
1211 #include "" search path.
1212 (do_includes): New function.
1213
1214 2000-11-18 Ben Elliston <bje@redhat.com>
1215
1216 * config/sh/crt1.asm (start_l): Move PC-relative move instruction
1217 out of a branch delay slot.
1218
1219 2000-11-17 Richard Henderson <rth@redhat.com>
1220
1221 * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1222 (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
1223 (ASM_FILE_START): Only write out ecoff .file directive if
1224 emitting mdebug debugging.
1225
1226 2000-11-17 Richard Henderson <rth@redhat.com>
1227
1228 * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New. Detect
1229 whether as accepts .file/.loc and produces dwarf2 line info.
1230 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
1231 the assembler supports it.
1232 * config.in, configure: Regenerate.
1233
1234 2000-11-17 Richard Henderson <rth@redhat.com>
1235
1236 * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
1237
1238 2000-11-17 Jim Wilson <wilson@redhat.com>
1239
1240 * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
1241 Don't clear need_barrier is next_insn is a CALL_INSN, or has
1242 instruction type B or UNKNOWN.
1243
1244 2000-11-17 Neil Booth <neilb@earthling.net>
1245
1246 * cpperror.c (print_file_and_line): Don't display line number if 0.
1247
1248 2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
1249
1250 * ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add
1251 digit_vector and digit_string.
1252 * stringpool.c (digit_vector): New.
1253 (ggc_alloc_string): Use digit_string.
1254
1255 * stmt.c (digit_strings): Delete.
1256 (init_stmt): Do not initialize digit_strings.
1257 (expand_asm_operands): Use ggc.h's digit_string macro.
1258 * toplev.c (mark_file_stack): Delete.
1259 (compile_file): Don't call init_tree_codes.
1260 (main): No need to make the file stack a GC root.
1261 * tree.c (init_tree_codes): Delete.
1262 * tree.h (init_tree_codes): Delete.
1263
1264 * c-lex.c: Don't include ggc.h.
1265 (mark_splay_tree_node, mark_splay_tree): Delete.
1266 (init_c_lex): No need to ggc_strdup string constant. Don't add
1267 file_info_tree to GGC roots.
1268 (cb_enter_file, cb_rename_file): No need to ggc_strdup
1269 ip->nominal_fname.
1270
1271 * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
1272
1273 * dbxout.c (dbxout_init),
1274 dwarf2out.c (dwarf2out_line),
1275 ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
1276 varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
1277 xcoffout.c (xcoffout_source_file),
1278 i386.c (load_pic_register):
1279 Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
1280
1281 * except.c (create_rethrow_ref),
1282 profile.c (init_edge_profiler),
1283 toplev.c (compile_file),
1284 varasm.c (named_section, assemble_static_space,
1285 assemble_trampoline_template, output_constant_def, force_const_mem),
1286 i386.c (load_pic_register),
1287 ia64.c (ia64_encode_section_info),
1288 rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
1289 rs6000_emit_prologue, rs6000_emit_epilogue),
1290 rs6000.md (load_toc_aix_si, load_toc_aix_di):
1291 Change ggc_alloc_string (var, -1) to ggc_strdup (var).
1292
1293 * profile.c (output_func_start_profiler),
1294 tree.c (make_node),
1295 i386.c (load_pic_register): No need to ggc_strdup string constant.
1296
1297 2000-11-17 Hans-Peter Nilsson <hp@axis.com>
1298
1299 * Makefile.in (config.status): Depend on config.gcc.
1300 * configure.in <for machine in $build $host $target>: Move
1301 contents of loop into config.gcc, removing autoconf quoting.
1302 Fix changequote bug for alpha*-*-vxworks*.
1303 * configure: Regenerate.
1304 * config.gcc: New.
1305
1306 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
1307
1308 * c-parse.in (if_prefix): Find the filename and line number at
1309 $-2 and $-1 respectively.
1310 * diagnostic.c (error_recursion): Add missing newline, use
1311 fputs, translate string.
1312
1313 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
1314
1315 * stringpool.c: New file.
1316 * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
1317 (ggc_alloc_string): Now in stringpool.o.
1318 * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
1319 * ggc.h: Delete prototype of ggc_add_string_root. #define
1320 ggc_add_string_root and ggc_mark_string to nothing. Prototype
1321 init_stringpool and stringpool_statistics.
1322 (ggc_alloc_string): Returns a const char *.
1323 * tree.c (hash_table, do_identifier_warnings): Delete.
1324 (init_obstacks): Don't initialize the identifier hash table.
1325 (get_identifier, maybe_get_identifier, start_identifier_warnings,
1326 set_identifier_size): Now in stringpool.c.
1327 * tree.h (struct tree_string): Constify pointer field.
1328 (approx_sqrt): Prototype.
1329
1330 * Makefile.in (stringpool.o): Add rule, mention in OBJS.
1331
1332 * toplev.c (approx_sqrt): New function.
1333 (compile_file): Call stringpool_statistics if mem_report is on.
1334 (main): Call init_stringpool.
1335
1336 * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
1337 (process_directive), c-typeck.c (constructor_asmspec, struct
1338 initializer_stack, start_init), except.c (create_rethrow_ref),
1339 stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
1340 (built_in_filename), varasm,c (in_named_name,
1341 assemble_static_space, struct constant_descriptor, struct
1342 deferred_string, struct pool_constant, force_const_mem),
1343 i386.c (pic_label_name, global_offset_table_name), rs6000.c
1344 (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
1345
1346 * c-common.c (combine_strings): Combine strings in scratch
1347 buffer, then pass to build_string.
1348 * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
1349 output_func_start_profiler), stmt.c (init_stmt), alpha.c
1350 (alpha_need_linkage), arm.c (arm_encode_call_attribute),
1351 i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
1352 rs6000.c (rs6000_encode_section_info): Create string in
1353 scratch buffer, then pass to ggc_alloc_string.
1354
1355 * stmt.c (expand_asm_operands): If we must adjust the
1356 constraint strings, do so by creating a new one, not by
1357 modifying the old one in place. Constify some char *s.
1358 * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
1359 argument. Create string in scratch buffer, then pass to
1360 ggc_alloc_string.
1361 * config/pa/pa-protos.h: Update prototype.
1362 * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
1363 hppa_encode_label takes only one argument.
1364
1365 2000-11-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1366
1367 * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
1368 malloc/realloc.
1369
1370 * cpplib.c (glue_header_name): Likewise.
1371
1372 * fixincl.c (run_compiles, start_fixer): Likewise.
1373
1374 * fixlib.c (load_file_data): Likewise.
1375
1376 * mkdeps.c (munge): Likewise.
1377
1378 2000-11-17 Hans-Peter Nilsson <hp@axis.com>
1379
1380 * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
1381 trailing ';'. Fix formatting.
1382
1383 2000-11-16 Jim Wilson <wilson@redhat.com>
1384
1385 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
1386 Shift masks left by one to avoid conflict.
1387
1388 * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
1389 DECL_EXTERNAL set.
1390
1391 2000-11-16 Nick Clifton <nickc@redhat.com>
1392
1393 * config/arm/arm.c (output_arm_prologue): Note nested functions.
1394 (arm_expand_prologue): For nested functions preserve the
1395 static chain register during stack frame creation.
1396
1397 * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
1398 (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
1399 with a stack frame there is a 4 byte gap between the arg
1400 pointer and the hard frame pointer (used to preserve the
1401 static chain register during stack frame creation).
1402
1403 2000-11-16 DJ Delorie <dj@redhat.com>
1404
1405 * rtl.c (read_rtx): Provide suitable names for unnamed
1406 define_insn and define_insn_and_split patterns, based on file
1407 and line numbers.
1408
1409 2000-11-15 Neil Booth <neilb@earthling.net>
1410
1411 * cpplib.c (start_directive, end_directive): New functions.
1412 (_cpp_handle_directive, run_directive): Use them.
1413 (_cpp_handle_directive): Don't -Wtraditional on indented
1414 null directives.
1415 (_cpp_push_buffer): Don't re-clear was_skipping.
1416 * cpplib.h (struct cpp_reader): New member la_saved.
1417 * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
1418 directives.
1419
1420 gcc.dg/cpp/_Pragma1.c: Update.
1421 gcc.dg/cpp/_Pragma2.c: New test.
1422
1423 2000-11-15 Mark Mitchell <mark@codesourcery.com>
1424
1425 * toplev.c (wrapup_global_declarations): Don't write out
1426 artificial static variables that aren't needed.
1427
1428 2000-11-15 Bernd Schmidt <bernds@redhat.co.uk>
1429
1430 * ia64.c (struct group): New structure.
1431 (last_group): New static array.
1432 (group_idx): New static variable.
1433 (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
1434 New static functions.
1435 (emit_insn_group_barriers): Initialize and keep track of group_idx
1436 and last_group.
1437 Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
1438 Replace all calls to emit_insn_after that emit a group barrier to use
1439 emit_group_barrier_after.
1440 * ia64.h (MASK_B_STEP): New.
1441 (other MASK_XXX macros): Renumbered.
1442 (TARGET_B_STEP): New.
1443 (TARGET_SWITCHES): Add -mb-step.
1444
1445 2000-11-15 Fred Fish <fnf@be.com>
1446
1447 * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
1448 machines for which fixincludes is not needed.
1449 * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
1450
1451 2000-11-15 Jason Merrill <jason@redhat.com>
1452
1453 * diagnostic.c (finish_abort): New fn.
1454 (fancy_abort, error_recursion): Use it.
1455 * toplev.c (crash_signal): Likewise.
1456 * diagnostic.h: Declare it.
1457
1458 2000-11-13 Andrew Haley <aph@redhat.com>
1459
1460 * tree.c (build_type_no_quals): New function.
1461 * tree.h (build_type_no_quals): Declare.
1462 * c-common.c (c_get_alias_set): When considering type
1463 compatibility for pointer types, ignore cv-qualifiers anywhere in
1464 a pointer chain.
1465
1466 2000-11-15 Graham Stott <grahams@redhat.com>
1467
1468 * regrename.c (scan_rtx_rtx): Skip to the next chain on
1469 encountering a terminated chain.
1470
1471 2000-11-14 Mark Mitchell <mark@codesourcery.com>
1472
1473 * configure.in: Move check for V3 above check for C++ header-file
1474 directory.
1475 * configure: Regenerated.
1476
1477 2000-11-14 DJ Delorie <dj@redhat.com>
1478
1479 * config/v850/v850.c: Remove obstacks.
1480
1481 Tue Nov 14 21:54:31 2000 Marek Michalkiewicz <marekm@linux.org.pl> & Denis Chertykov <denisc@overta.ru>
1482
1483 * config/avr/avr.c (avr_case_values_threshold): New.
1484 (avr_override_options): Set it depending on options, make it large
1485 when not optimizing to work around "unable to generate reloads".
1486
1487 * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
1488 (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
1489 executable if not AVR_MEGA. Make sure jump tables are word-aligned.
1490 (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
1491 (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
1492 (avr_case_values_threshold): Declare as extern int.
1493 (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
1494
1495 * config/avr/avr.md (tablejump): Removed.
1496 (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
1497 (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
1498 index in the table, not multiplied by 2.
1499 (casesi): Change to match the above insns. Always enable.
1500
1501 * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
1502 Change to expect the word address of the table, multiply it by 2
1503 here and not in the caller. Change "adiw" to faster "inc".
1504
1505 2000-11-14 Neil Booth <neilb@earthling.net>
1506
1507 * cppexp.c (parse_defined): Call cpp_get_token not
1508 _cpp_get_token.
1509 (lex): Similarly.
1510 * cpplex.c (cpp_output_line): Similarly.
1511 * cpplib.c (glue_header_name, do_line, do_ident,
1512 parse_answer, parse_assertion): Similarly.
1513 (_cpp_handle_diretive): Don't save to lookaheads
1514 when processing directives.
1515 * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
1516 _cpp_get_token.
1517 (funlike_invocation_p): Don't save to lookaheads
1518 when pre-expanding arguments.
1519 (_cpp_get_token): Delete.
1520 (cpp_get_token): Merge contents of _cpp_get_token.
1521
1522 2000-11-14 Jakub Jelinek <jakub@redhat.com>
1523
1524 * builtins.c (expand_builtin_setjmp): Set
1525 current_function_calls_setjmp.
1526 (expand_builtin_longjmp): Set current_function_calls_longjmp.
1527
1528 * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
1529 (do_builtin_setjmp_setup): New insn.
1530
1531 Tue Nov 14 12:34:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1532
1533 * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
1534 (int_fits_type_p): For variable bounds, call force_fit_type.
1535
1536 2000-11-14 Jakub Jelinek <jakub@redhat.com>
1537
1538 * varasm.c (struct deferred_string): New structure.
1539 (const_str_htab): New variable.
1540 (STRHASH): New macro.
1541 (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
1542 constr_str_htab_eq, const_str_htab_del): New functions.
1543 (output_constant_def): Add DEFER argument, defer string
1544 constants until mark_constant_pool time if requested.
1545 (mark_constant_pool): Walk the insn chain even if const_str_htab is
1546 not empty.
1547 (mark_constants): If a SYMBOL_REF for deferred string is found,
1548 output it and remove from hash table.
1549 (output_addressed_constants): Set DEFER to 0 in call to
1550 output_constant_def.
1551 * rtl.h (STRING_POOL_ADDRESS_P): Define.
1552 (output_constant_def): Adjust prototype.
1553 * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
1554
1555 2000-11-14 Chandrakala Chavva <cchavva@redhat.com>
1556
1557 * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
1558 signed types if flag_trapv.
1559
1560 2000-11-14 Zack Weinberg <zack@wolery.stanford.edu>
1561
1562 * tradcpp.c, tradcif.y: Update FSF mailing address, delete
1563 reference to GPLv1.
1564
1565 2000-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
1566
1567 * c-common.h (CTI_C_SIZE_TYPE): Update comment.
1568
1569 2000-11-14 Jakub Jelinek <jakub@redhat.com>
1570
1571 * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
1572 to array of pool_constnat pointers.
1573 (struct pool_constant): Add next_sym and label members.
1574 (struct pool_sym): Remove.
1575 (init_varasm_status): Change pool_sym into pool_constant.
1576 (mark_pool_constant): Mark pc->label string as well.
1577 (mark_pool_sym_hash_table): Remove.
1578 (mark_varasm_status): Remove it from caller as well.
1579 (free_varasm_status): Don't free pool_sym structures.
1580 (force_const_mem): Don't allocate pool_sym structure, instead
1581 fill pool->label and chain it into rtx_sym hash table.
1582 (find_pool_constant, mark_constant_pool): Use pool_constant instead
1583 of pool_sym.
1584
1585 2000-11-14 Jakub Jelinek <jakub@redhat.com>
1586
1587 * reload1.c (emit_input_reload_insns): Honour forcing of constants
1588 into memory by PREFERRED_RELOAD_CLASS NO_REGS.
1589
1590 2000-11-14 Michael Matz <matzmich@cs.tu-berlin.de>
1591
1592 * dominance.c: New file.
1593 * Makefile.in (OBJS): Add dominance.o.
1594
1595 * flow.c (compute_flow_dominators): Remove.
1596 (compute_immediate_dominators): Remove.
1597 (compute_immediate_postdominators): Remove.
1598 * basic-block.h: Remove their prototypes.
1599 (calculate_dominance_info): Add prototype.
1600
1601 * dce.c (eliminate_dead_code): Change calls to above functions.
1602 Don't compute dominators but only immediate dominators.
1603 * flow.c (flow_loops_find): Change callers.
1604 * gcse.c (compute_code_hoist_data): Likewise.
1605 * haifa-sched.c (schedule_insns): Likewise.
1606 * ifcvt.c (if_convert): Likewise.
1607 * ssa.c (convert_to_ssa): Likewise, and only compute immediate
1608 dominators.
1609
1610 2000-11-14 Richard Henderson <rth@redhat.com>
1611
1612 * stmt.c (warn_if_unused_value): Don't warn if the expression
1613 has side effects.
1614
1615 * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
1616 (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
1617
1618 2000-11-13 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1619
1620 * loop.c (basic_induction_var): Revert accidental checkin.
1621
1622 2000-11-13 Hans-Peter Nilsson <hp@axis.com>
1623
1624 * c-lex.c (cb_leave_file): Harmonize conditions and order of
1625 statements to those of process_directive for (action == act_pop).
1626
1627 * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
1628
1629 * local-alloc.c (equiv_init_movable_p): References to CC0 are not
1630 movable.
1631
1632 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1633
1634 * c-parse.in (stmts_and_decls): Deprecate use of label at end of
1635 compound statement.
1636
1637 2000-11-13 Neil Booth <neilb@earthling.net>
1638
1639 * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
1640 cases return without MI check.
1641 * cpplib.c (do_diagnostic): Take boolean of whether to
1642 print the directive name.
1643 (do_error, do_warning): Update.
1644 (do_pragma_dependency): Use it.
1645 * cpplib.h (VARARGS_FIRST): Delete.
1646 (struct cpp_token): Delete integer.
1647 * cppmacro.c (enter_macro_context): Move disabled check
1648 to _cpp_get_token.
1649 (_cpp_get_token): Simplify into a single loop.
1650
1651 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
1652
1653 * configure.in: Use 'test -f' not '[ -e'.
1654 * configure: Regenerated.
1655
1656 2000-11-13 DJ Delorie <dj@redhat.com>
1657
1658 * config/mn10300/mn10300.md (store_movm): Note which registers are
1659 really used or clobbered.
1660
1661 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1662
1663 * c-parse.in (ends_in_label): Remove from %union and %type.
1664 (decls, stmts, lineno_stmt_or_labels, xstmts,
1665 lineno_stmt_or_label, stmt_or_label): Remove.
1666 (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
1667 lineno_stmt_decl_or_labels_ending_decl,
1668 lineno_stmt_decl_or_labels_ending_label,
1669 lineno_stmt_decl_or_labels_ending_error,
1670 lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
1671 lineno_stmt, lineno_label): New.
1672 (compstmt_nostart): Use compstmt_contents_nonempty.
1673
1674 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1675
1676 * c-common.c (boolean_increment): New function.
1677 * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
1678 CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
1679 (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
1680 (boolean_increment): Declare.
1681 * c-convert.c (convert): Allow for BOOLEAN_TYPE.
1682 * c-decl.c (init_decl_processing): Create boolean nodes.
1683 (finish_struct): Allow for _Bool bitfields.
1684 * c-parse.in (reswords): Add _Bool.
1685 (rid_to_yy): Allow for RID_BOOL.
1686 * c-typeck.c (default_conversion): Make booleans promote to int.
1687 (convert_arguments, build_unary_op, build_modify_expr,
1688 convert_for_assignment): Allow for booleans.
1689 * ginclude/stdbool.h: Make conforming to C99.
1690
1691 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1692
1693 * c-parse.in (c99_block_start, c99_block_end,
1694 c99_block_lineno_labeled_stmt): New.
1695 (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
1696 (stmt): Split off selection and iteration statements into...
1697 (select_or_iter_stmt): New. Use c99_block_lineno_labeled_stmt.
1698
1699 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1700
1701 * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
1702 -time): Update.
1703
1704 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
1705
1706 * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
1707 Rewrite to avoid use of match_dup. Don't try to tie registers that
1708 are not in the same mode.
1709
1710 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1711
1712 * invoke.texi: Update lists of languages and suffixes supported.
1713
1714 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1715
1716 * configure.in: Take toplevel configure arguments from the
1717 environment to create configargs.h and substitute
1718 gcc_config_arguments, taking account of any existing configargs.h
1719 if reconfiguring.
1720 * configure: Regenerate.
1721 * gccbug.in: Include toplevel configure arguments in gccbug.
1722
1723 2000-11-13 Richard Earnshaw <rearnsha@arm.com>
1724
1725 * varasm.c (struct constant_descriptor): Put CONTENTS inside a
1726 union to make it well-aligned. Update all uses.
1727
1728 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1729
1730 * c-parse.in (initelt): Give appropriate pedantic warnings,
1731 depending on flag_isoc99, for non-ISO syntax and for C99 syntax
1732 outside C99 mode.
1733 (designator): If pedantic, pedwarn for a designator specifying a
1734 range of elements.
1735 * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
1736 these cases.
1737 * extend.texi: Document the C99 syntax as the preferred syntax,
1738 and the pre-2.5 syntax as obsolete. Mention use of designator
1739 lists for nested subobjects.
1740
1741 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1742
1743 * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
1744 Add ATTRIBUTE_PRINTF.
1745 * tradcpp.c (v_message, warning, error, fatal, error_with_line):
1746 Add ATTRIBUTE_PRINTF*.
1747
1748 2000-11-12 Mark Mitchell <mark@codesourcery.com>
1749
1750 * function.c (assign_parms): When calling put_var_into_stack, make
1751 sure that there are no hidden pending sequences.
1752
1753 2000-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1754
1755 * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
1756 BUILT_IN_RINDEX. Add missing checks for BUILT_IN_STRCHR and
1757 BUILT_IN_STRRCHR.
1758
1759 * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
1760
1761 * c-common.c (c_common_nodes_and_builtins): Declare index and
1762 rindex when nonansi builtins are allowed.
1763
1764 * extend.texi (index, rindex): Document new builtins.
1765
1766 2000-11-12 Mark Mitchell <mark@codesourcery.com>
1767
1768 * configure.in: Turn on libstdc++ V3 by default.
1769 * configure: Regenerated.
1770
1771 * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
1772
1773 2000-11-12 Jakub Jelinek <jakub@redhat.com>
1774
1775 * reload1.c (set_label_offsets): Go inside of PARALLELs.
1776
1777 2000-11-12 Joseph S. Myers <jsm28@cam.ac.uk>
1778
1779 * invoke.texi: Clean up option summary.
1780
1781 2000-11-12 Nick Clifton <nickc@redhat.com>
1782
1783 * config/mcore/mcore.c: Fix comment formating, and adjust sequence
1784 of #include headers.
1785
1786 2000-11-12 Marc Espie <espie@openbsd.org>
1787
1788 * configure.in: Fix filds test.
1789 * configure: Regen.
1790
1791 2000-11-12 Mark Mitchell <mark@codesourcery.com>
1792
1793 * jump.c (delete_computation): Don't assume that just becuase an
1794 instruction sets a register, that register is dead.
1795
1796 2000-11-12 Neil Booth <neilb@earthling.net>
1797
1798 * cppexp.c: Don't worry about pfile->skipping.
1799 * cpplib.c (struct if_stack): Make was_skipping unsigned char.
1800 (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
1801 for handled directives.
1802 (skip_rest_of_line): Use _cpp_lex_token after popping contexts
1803 and releasing lookaheads.
1804 (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
1805 (do_else, do_elif, push_conditional): Update logic.
1806 (do_endif): Set buffer->was_skipping rather than pfile->skipping.
1807 (unwind_if_stack): Inline into cpp_pop_buffer.
1808 (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
1809 * cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle
1810 multiple-include optimisation.
1811 * cpplib.h (struct cpp_buffer): New member was_skipping.
1812 * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This
1813 works because skipping == 0 in directives.
1814 (_cpp_release_lookahead): Renamed from release_lookahead.
1815 (cpp_get_token): No need to check skipping as _cpp_get_token does
1816 this for us. No need to handle MI optimisation.
1817
1818 Sat Nov 11 21:14:02 2000 Mark P Mitchell <mark@codesourcery.com>
1819
1820 * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
1821 declarations that use `__MATH_EXCEPTION' in their prototypes, too.
1822 * fixinc/fixincl.x: Regenerated.
1823
1824 2000-11-11 Bruce Korb <bkorb@gnu.org>
1825
1826 * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
1827 (avoid_wchar_t_type): ditto
1828 * fixinc/fixinc.irix: obsoleted
1829
1830 2000-11-11 Zack Weinberg <zack@wolery.stanford.edu>
1831
1832 * configure.in: Don't add $outputs to all_lang_makefiles. Add
1833 $srcdir/$s/Makefile.in if it exists.
1834 * configure: Regenerate.
1835
1836 Sat Nov 11 18:41:20 2000 Mark P Mitchell <mark@codesourcery.com>
1837
1838 * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
1839
1840 2000-11-11 Jason Merrill <jason@redhat.com>
1841
1842 * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
1843 give the parm a register and then call put_var_into_stack.
1844 * stmt.c (expand_decl): Likewise.
1845
1846 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
1847
1848 * gcc.texi: Adjust wording.
1849
1850 2000-11-11 Mark Mitchell <mark@codesourcery.com>
1851
1852 * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
1853 * fininc/fixincl.x: Regenerated.
1854
1855 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
1856
1857 * invoke.texi: Correct spelling of -foptimize-register-move.
1858
1859 2000-11-11 Neil Booth <neilb@earthling.net>
1860
1861 Remove CPP_PLACEMARKERs.
1862
1863 * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
1864 * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
1865 * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
1866 Similarly.
1867 * cpplib.h: Remove CPP_PLACEMARKER.
1868 (struct lexer_state): Rename skip_newlines to next_bol.
1869 * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
1870 Simplify prev_white handling as a result.
1871 (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
1872 (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
1873 (parse_args): Similarly. Update argument count tests.
1874 (enter_macro_context): Return 2 to indicate an empty macro.
1875 (replace_args): Don't bother pre-expanding an empty argument.
1876 Handle placemarkers and ## extension during pre-expansion.
1877 (cpp_get_token): Handle empty macro expansions. Don't worry
1878 about CPP_PLACEMARKERs.
1879 (_cpp_create_definition): Empty macros are now empty.
1880 (cpp_macro_defintion): Don't special case empty macros.
1881 * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
1882 * c-lex.c: Similarly.
1883
1884 2000-11-11 Joseph S. Myers <jsm28@cam.ac.uk>
1885
1886 * gcc.texi, invoke.texi: Add new section discussing language
1887 standards; link to it where appropriate; refer to ISO C instead of
1888 ANSI C.
1889
1890 2000-11-11 Alexandre Oliva <aoliva@redhat.com>
1891
1892 * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
1893 into account.
1894
1895 * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
1896 modes.
1897
1898 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
1899
1900 * gcc.texi, gcov.texi: Update dates and version numbers.
1901
1902 2000-11-10 Zack Weinberg <zack@wolery.stanford.edu>
1903
1904 * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for
1905 flex and bison, specifically, first in a unified build and
1906 then installed on the system.
1907 * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename
1908 LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to
1909 match.
1910
1911 (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
1912 cppdefault.o): Remove pointless sed munging of source file
1913 name.
1914
1915 2000-11-10 Bernd Schmidt <bernds@redhat.co.uk>
1916
1917 * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
1918 for address reloads. Push replacements for REG_INC notes.
1919 (regno_clobbered_p): New arg SETS. Examine SETs if it's nonzero. All
1920 callers changed.
1921 * reload1.c (choose_reload_regs): Registers set in the insn can't be
1922 used for RELOAD_OTHER reloads.
1923
1924 2000-11-10 Mark Mitchell <mark@codesourcery.com>
1925
1926 * c-dump.h: New file.
1927
1928 2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1929
1930 * alpha.c (check_float_value): Use memcpy, not bcopy.
1931 * arm.c (output_move_double): Likewise.
1932 * arm.md: Likewise.
1933 * m88k.c (legitimize_operand): Likewise.
1934 * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
1935 * m88k.md: Likewise.
1936 * mips.c (override_options): Likewise.
1937 * mips.md: Likewise.
1938 * romp.c (output_fpops): Likewise.
1939 * rs6000.c (rs6000_override_options): Likewise.
1940 * sh.md: Likewise.
1941 * vax.c (check_float_value): Likewise.
1942
1943 * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
1944 * expmed.c (synth_mult): Likewise.
1945 * final.c (add_bb_string): Likewise.
1946 * genattr.c (main): Likewise.
1947 * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
1948 Likewise.
1949 * jump.c (thread_jumps): Likewise.
1950 * prefix.c (save_string): Likewise.
1951 * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
1952 * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
1953 * reload1.c (reload, eliminate_regs): Likewise.
1954
1955 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
1956
1957 * gcc.texi (Service): Update to reflect current practice and
1958 location of the GNU service directory.
1959
1960 2000-11-09 Bernd Schmidt <bernds@redhat.co.uk>
1961
1962 * regrename.c (build_def_use): Mark contents of REG_INC notes as
1963 needing replacement.
1964
1965 * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
1966 a no-op move if regs are equal.
1967 * toplev.c (rest_of_compilation): Do the noop moves elimination pass
1968 when calling jump after post-reload splitting.
1969
1970 2000-11-09 Jan van Male <jan.vanmale@fenk.wau.nl>
1971
1972 * c-tree.texi: Fix typos.
1973 * extend.texi: Likewise
1974 * gcov.texi: Likewise
1975 * rtl.texi: Likewise
1976 * tm.texi: Likewise
1977
1978 2000-11-09 Hans-Peter Nilsson <hp@axis.com>
1979
1980 * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
1981 in_system_header and flags[1] before dereferencing flags[2].
1982
1983 2000-11-09 Matthew Hiller <hiller@redhat.com>
1984
1985 * reload1.c (reload_combine): Fixed calculation of
1986 first_index_reg, last_index_reg.
1987
1988 2000-11-09 Mark Mitchell <mark@codesourcery.com>
1989
1990 * c-dump.c (dequeue_and_dump): Dump function bodies.
1991
1992 * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
1993 (c-dump.o): New target.
1994 * c-common.h (flag_dump_translation_unit): New variable.
1995 (C_TYPE_QUALS): New macro.
1996 (strip_array_types): New function.
1997 (DECL_C_BIT_FIELD): New macro.
1998 (SET_DECL_C_BIT_FIELD): Likewise.
1999 (CLEAR_DECL_C_BIT_FIELD): Likewise.
2000 (dump_info_p): New typedef.
2001 (dump_tree_fn): Likewise.
2002 (lang_dump_tree): New variable.
2003 (dump_node_to_file): New function.
2004 * c-common.c (flag_dump_translation_unit): Define it.
2005 (strip_array_types): New function.
2006 * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
2007 * c-lang.c (finish_file): Call dump_node_to_file if
2008 flag_dump_translation_unit.
2009 * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
2010 * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
2011 * c-dump.c: New file.
2012
2013 2000-11-09 Christopher Faylor <cgf@cygnus.com>
2014
2015 * config/i386/cygwin.h: Add mingw startfile prefix.
2016
2017 2000-11-09 Richard Henderson <rth@redhat.com>
2018
2019 * flow.c (invalidate_mems_from_set): Split out from ...
2020 (mark_set_1): ... here.
2021 (try_pre_increment_1): Use it. Use propagate_block_delete_insn
2022 instead of turning insn into a NOTE_INSN_DELETED.
2023
2024 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk>
2025
2026 * extend.texi, invoke.texi: Move documentation of builtin versions
2027 of C library functions to one place and update.
2028
2029 2000-11-09 Richard Henderson <rth@redhat.com>
2030
2031 * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
2032 the types themselves to discover type equivalence.
2033
2034 2000-11-09 Mike Stump <mrs@wrs.com>
2035
2036 * Makefile.in (distclean): Remove a few extra leftovers.
2037
2038 2000-11-09 Richard Henderson <rth@redhat.com>
2039
2040 * recog.c (validate_replace_rtx_1): Consider subregs when
2041 replacing a register with a constant inside a sign/zero_extend.
2042
2043 * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2044
2045 2000-11-09 Geoffrey Keating <geoffk@redhat.com>
2046
2047 * c-decl.c (finish_struct): When a structure is completed,
2048 check all its variant types for completeness.
2049
2050 2000-11-09 Neil Booth <neilb@earthling.net>
2051
2052 * cpphash.c: Move cpp_defined here from cpplib.c.
2053 * cpplib.c: Update comments, move cpp_defined to cpphash.c.
2054 * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
2055 * cppmacro.c (cpp_get_token): Update comments, no need now
2056 to catch the CPP_EOF meaning EOL case.
2057
2058 2000-11-08 Geoffrey Keating <geoffk@redhat.com>
2059
2060 * config/sparc/sparc.c (sparc_va_arg): When the required alignment
2061 is more than that provided, copy to a temporary.
2062
2063 2000-11-09 Alexandre Oliva <aoliva@redhat.com>
2064
2065 * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
2066 interpreting $out as a macro assignment.
2067 * Makefile.in (T_TARGET): New auxiliary macro and target.
2068 (all): Add a target right in the beginning, so that we don't build
2069 T_TARGET by default.
2070
2071 2000-11-09 Graham Stott <grahams@redhat.com>
2072
2073 * config/i386/i386.md (mmx_pinsrw): Output operands in correct
2074 order for -mintel-syntax. Remove comment now that the operand
2075 order has been checked.
2076 (mmx_pextrw): Likewise.
2077 (mmx_pshufw): Likewise.
2078
2079 2000-11-09 Jakub Jelinek <jakub@redhat.com>
2080
2081 * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
2082 (c_getstr): New function.
2083 (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
2084 If both arguments are constant string, optimize out.
2085 (expand_builtin_strchr, expand_builtin_strrchr): New functions.
2086 (expand_builtin_strpbrk): Use c_getstr, do nothing if
2087 -fcheck-memory-usage.
2088 (expand_builtin_fputs): Likewise.
2089 (expand_builtin_strcmp): Add MODE argument.
2090 Use even if !HAVE_cmpstrsi.
2091 Optimize the case when both arguments are constant strings.
2092 (expand_builtin): Adjust expand_builtin_strcmp caller.
2093 Call expand_builtin_strchr and expand_builtin_strrchr.
2094 * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
2095 builtins.
2096 * builtins.def (BUILT_IN_STRRCHR): Add.
2097
2098 2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2099
2100 * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
2101
2102 2000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
2103
2104 * calls.c (expand_call, emit_library_call_value_1), collect2.c
2105 (scan_prog_file), config/a29k/a29k.c (print_operand),
2106 config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
2107 instead of bcopy ().
2108 * real.h: Use memcmp () instead of bcmp ().
2109 * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
2110 (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
2111 ultrasparc_sched_init, ultrasparc_sched_reorder),
2112 config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
2113 instead of bzero ().
2114 * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
2115 instead of rindex ().
2116 * configure.in: Don't check for bzero, bcmp, index or rindex.
2117 * configure, config.in: Regenerate.
2118 * system.h: Don't include declarations for bzero, bcmp, index or
2119 rindex.
2120 * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
2121 bzero, bcmp, index or rindex.
2122
2123 Wed Nov 8 21:58:20 2000 Christopher Faylor <cgf@cygnus.com>
2124
2125 * config/i386/cygwin.h: Add -no-win32 switch. Separate -mno-cygwin
2126 include and library paths from -mcygwin case. Parameterize some
2127 declarations to avoid warnings. Use standard locations for include and
2128 lib dirs.
2129
2130 2000-11-08 Nick Clifton <nickc@redhat.com>
2131
2132 * config/arm/arm.md (mulsidi3adddi): Change output operand
2133 constraint from "=&" to "+&".
2134 (umulsidi3adddi): Change output operand constraint from "=&" to
2135 "+&".
2136
2137 2000-11-08 Richard Henderson <rth@redhat.com>
2138
2139 * flow.c (init_propagate_block_info): Protect the rtx stored in
2140 mem_set_list from modification by find_auto_inc.
2141 (mark_set_1): Likewise.
2142
2143 2000-11-08 Neil Booth <neilb@earthling.net>
2144
2145 Move directive handling into the lexer itself.
2146
2147 * cpplex.c (_cpp_lex_token): Handle directives directly.
2148 In the case of a directive interrupting a function-like
2149 macro invocation, use extra_char since read_ahead is
2150 used to store the '#'. Return a CPP_EOF in this case.
2151 * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
2152 (cpp_get_token): Don't handle directives here.
2153 * cpplib.h: Remove CPP_DHASH token type.
2154
2155 Wed Nov 8 21:53:41 MET 2000 Jan Hubicka <jh@suse.cz>
2156
2157 * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
2158 formed using PRE_MODIFY too.
2159
2160 2000-11-08 Mark Mitchell <mark@codesourcery.com>
2161
2162 * c-tree.texi (VAR_DECL): Describe representation of GCC's
2163 extension for placing variables in particular registers.
2164
2165 * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
2166 unprototyped C functions with no parameters.
2167
2168 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2169
2170 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
2171 before passing to fprintf.
2172
2173 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2174
2175 * function.c (expand_function_start): Cast GET_MODE_SIZE to
2176 HOST_WIDE_INT before negating it.
2177
2178 2000-11-08 Jakub Jelinek <jakub@redhat.com>
2179
2180 * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
2181 passed in multiple non-contiguous locations.
2182
2183 2000-11-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2184
2185 * README.gnat: Remove file.
2186
2187 2000-11-08 Alexandre Oliva <aoliva@redhat.com>
2188
2189 * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
2190 in-place.
2191
2192 2000-11-07 Richard Henderson <rth@redhat.com>
2193
2194 * dwarfout.c (INSN_LABEL_FMT): Remove.
2195 (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
2196 (dwarfout_label): Remove.
2197 * dwarfout.h: Remove it's prototype.
2198 * dwarf2out.c (INSN_LABEL_FMT): Remove.
2199 (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
2200 (dwarf2out_label): Remove.
2201 * dwarf2out.h: Remove it's prototype.
2202 * final.c (final_scan_insn): Don't call dwarf[2]out_label.
2203
2204 2000-11-07 Richard Henderson <rth@redhat.com>
2205
2206 * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
2207 search on the unwind region section.
2208
2209 * config/ia64/ia64.md (movbi): Add r/r alternative.
2210 (cmovdi_internal_astep): Describe all combinations of register
2211 classes for sources & destinations; remove matching constraints.
2212 (cmovdi_internal): Likewise.
2213
2214 * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
2215
2216 2000-11-07 Richard Henderson <rth@redhat.com>
2217
2218 * c-lang.c (start_cdtor, finish_cdtor): New functions.
2219 (finish_file): Use them in building constructor/destructor functions.
2220
2221 * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
2222 LD_FINI_SWITCH): Move ...
2223 * config/alpha/osf.h: ... here.
2224 * config/alpha/alpha-interix.h: Don't undef them.
2225
2226 2000-11-07 Jeffrey Oldham <oldham@oz.codesourcery.com>
2227
2228 * config/mips/t-iris6 (FPBIT): New. Added so that __unorddf2 is
2229 included in libgcc.a.
2230 (DPBIT): Likewise.
2231 (dp-bit.c): Likewise.
2232 (fp-bit.c): Likewise.
2233
2234 2000-11-07 Nick Clifton <nickc@redhat.com>
2235
2236 * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
2237 (INTERNAL_ASM_OP): Add missing tab.
2238
2239 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
2240
2241 * alias.c (init_alias_analysis), calls.c (expand_call,
2242 emit_library_call_value_1), combine.c (init_reg_last_arrays),
2243 cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
2244 (init_output_buffer, set_diagnostic_context), dwarf2out.c
2245 (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
2246 (init_emit_once), fold-const.c (mul_double, div_and_round_double),
2247 function.c (assign_parms), gcse.c (compute_can_copy,
2248 alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
2249 compute_hash_table, compute_set_hash_table,
2250 compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
2251 (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
2252 clear_units, schedule_block), integrate.c (initialize_for_inline,
2253 expand_inline_function), jump.c (thread_jumps), local-alloc.c
2254 (local_alloc), loop.c (combine_movables, count_loop_regs_set,
2255 load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
2256 regclass.c (init_reg_sets, init_reg_sets_1, regclass,
2257 record_reg_classes, allocate_reg_info), reload.c
2258 (get_secondary_mem, remove_address_replacements, find_reloads),
2259 reload1.c (reload, set_initial_label_offsets, finish_spills,
2260 reload_as_needed, choose_reload_regs_init,
2261 reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
2262 (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
2263 (rename_registers), stmt.c (expand_end_case), unroll.c
2264 (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
2265 () instead of bzero ().
2266
2267 2000-11-07 Neil Booth <neilb@earthling.net>
2268
2269 * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
2270
2271 2000-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2272
2273 * c-common.c (combine_strings): Only warn about long strings for C.
2274
2275 Tue Nov 7 19:44:30 2000 J"orn Rennecke <amylaar@redhat.com>
2276
2277 * combine.c (distribute_notes): Fix typo in last change.
2278
2279 2000-11-07 Geoff Keating <geoffk@redhat.com>
2280
2281 * config/rs6000/rs6000.md (movdi_internal32+1): Use
2282 operand_subreg_force rather than gen_rtx_SUBREG.
2283 (movdi_internal32+2): Likewise.
2284
2285 2000-11-07 Philip Blundell <philb@gnu.org>
2286
2287 * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
2288 * config/arm/linux-aout.h: Likewise.
2289 * configure: Regenerate.
2290
2291 2000-11-07 Philipp Thomas <pthomas@suse.de>
2292
2293 * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
2294 accepted my the gettext maintainer.
2295
2296 2000-11-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2297
2298 * builtins.c (expand_builtin_strpbrk): New function.
2299 (expand_builtin): Handle BUILT_IN_STRPBRK.
2300
2301 * builtins.def (BUILT_IN_STRPBRK): New entry.
2302
2303 * c-common.c (c_common_nodes_and_builtins): Declare builtin
2304 strpbrk.
2305
2306 2000-11-07 David O'Brien <obrien@dragon.nuxi.com>
2307
2308 * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
2309 * POTFILES.in: Add config/alpha/freebsd.h
2310 * configure.in: Add alpha*-freebsd support.
2311 * configure: Regenerate.
2312
2313 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
2314
2315 * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
2316 copy of ptr_type_node rather than ptr_type_node itself.
2317
2318 Tue Nov 7 06:29:24 2000 J"orn Rennecke <amylaar@redhat.com>
2319
2320 * combine.c (recog_for_combine): Allocate uninitialized vector with
2321 rtvec_alloc.
2322 * recog.c (apply_change_group): Likewise.
2323
2324 Tue Nov 7 06:24:02 2000 J"orn Rennecke <amylaar@redhat.com>
2325
2326 * flow.c (verify_local_live_at_start): Back out last change.
2327 * combine.c (distribute_notes): When parts of a hard reg are
2328 neither set nor referenced in PLACE, search backwards for a
2329 place to put a REG_UNUSED note; if none found, ask for flow
2330 info refresh.
2331
2332 Mon Nov 6 20:08:13 2000 J"orn Rennecke <amylaar@redhat.com>
2333
2334 * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
2335 with (clobber (match_scratch...)).
2336
2337 2000-11-06 Neil Booth <neilb@earthling.net>
2338
2339 * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
2340 error status.
2341
2342 2000-11-06 Neil Booth <neilb@earthling.net>
2343
2344 * tradcpp.c (special_symbol): Assign an null string rather
2345 than writing to an unallocated buffer.
2346
2347 2000-11-06 Neil Booth <neilb@earthling.net>
2348
2349 * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
2350 CPP_MACRO_ARG case.
2351
2352 2000-11-06 Neil Booth <neilb@earthling.net>
2353
2354 * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
2355 tok.val.arg_no as appropriate.
2356 * cppexp.c (lex): Similarly.
2357 * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
2358 cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
2359 * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
2360 cpp_macro_definition): Similarly.
2361 * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
2362
2363 2000-11-06 Jakub Jelinek <jakub@redhat.com>
2364
2365 * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
2366 operands[1] is constant, calculate the sum and generate movdi.
2367 (addsi3): Similarly. Use SImode in call to arith_4096_operand.
2368 (subsi3): Use SImode in call to arith_4096_operand.
2369
2370 2000-11-06 Jakub Jelinek <jakub@redhat.com>
2371
2372 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
2373 adjust %o1, not %o0 if the return type is large structure.
2374
2375 2000-11-06 Jakub Jelinek <jakub@redhat.com>
2376
2377 * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
2378 update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
2379
2380 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
2381
2382 * expmed.c (expand_divmod): For signed divide by 2, prefer
2383 a branch and fewer shifts if branches are very cheap.
2384
2385 2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
2386
2387 * Makefile.in: Remove all targets related to building
2388 distributions and diffs, or INSTALL.
2389 * INSTALL, install1.texi: Remove.
2390 * configure.in: Remove mention of distdir.
2391 * configure: Regenerate.
2392 * objc/Make-lang.in: Remove mention of distdir.
2393
2394 2000-11-04 Neil Booth <neilb@earthling.net>
2395
2396 * cpp.texi: Update for _Pragma.
2397
2398 2000-11-04 Joseph S. Myers <jsm28@cam.ac.uk>
2399
2400 * gcc.texi (Contributing): Update URL for projects web page.
2401
2402 2000-11-04 Neil Booth <neilb@earthling.net>
2403
2404 * cpplex.c (parse_string): Don't allow multiline strings in
2405 #include family directives.
2406
2407 2000-11-04 Neil Booth <neilb@earthling.net>
2408
2409 * cpplib.c (do_line): Only warn pedantically if not reading
2410 preprocessed input.
2411
2412 2000-11-04 Alexandre Oliva <aoliva@redhat.com>
2413
2414 * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
2415 RETURN_POPS_ARGS().
2416
2417 2000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
2418
2419 * builtins.c (expand_builtin_strlen): Remove unused mode
2420 argument.
2421 * gcc.c (process_command): Remove unused variable.
2422 * fold-const.c: Include expr.h.
2423 * recog.c: Include reload.h.
2424 * Makefile.in (recog.o, fold-const.o): Update deps.
2425
2426 2000-11-02 Geoffrey Keating <geoffk@cygnus.com>
2427
2428 * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
2429
2430 Fri Nov 3 13:41:04 2000 Mark P Mitchell <mark@codesourcery.com>
2431
2432 * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
2433 handling.
2434 (STARTFILE_SPEC): Likewise.
2435 (LINK_SPEC): Likewise.
2436
2437 2000-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2438
2439 * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
2440 (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
2441 (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
2442
2443 2000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
2444
2445 * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
2446 (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
2447 perm_calloc, get_identifier, maybe_get_identifier,
2448 real_value_from_int_cst, simple_cst_equal), varasm.c
2449 (assemble_name, assemble_real, immed_real_const_1,
2450 compare_constant_1, decode_rtx_const, output_constant_pool): Use
2451 strrchr () instead of rindex (). Use memcmp () instead of bcmp
2452 (). Use memcpy () instead of bcopy (). Use memset () instead of
2453 bzero ().
2454
2455 2000-11-03 Nathan Sidwell <nathan@codesourcery.com>
2456
2457 * cppfiles.c (open_file): If already read, then don't reopen.
2458 Immediately close an empty file.
2459
2460 2000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
2461
2462 * expr.h (fold_builtin): Move declaration...
2463 * tree.h (fold_builtin): ... here.
2464
2465 Fri Nov 3 05:41:07 2000 J"orn Rennecke <amylaar@redhat.com>
2466
2467 * flow.c (verify_local_live_at_start): Allow hard regs to die.
2468
2469 2000-11-02 Neil Booth <neilb@earthling.net>
2470
2471 config:
2472 * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
2473 alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
2474 alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
2475 alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
2476 arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
2477 arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
2478 c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
2479 elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
2480 i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
2481 i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
2482 i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
2483 i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
2484 i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
2485 i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
2486 i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
2487 i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
2488 i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
2489 i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
2490 i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
2491 i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
2492 i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
2493 ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
2494 m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
2495 m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
2496 m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
2497 m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
2498 m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
2499 m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
2500 m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
2501 m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
2502 m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
2503 m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
2504 mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
2505 mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
2506 mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
2507 mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
2508 mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
2509 mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
2510 ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
2511 ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
2512 pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
2513 pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
2514 romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
2515 rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
2516 rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
2517 rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
2518 sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
2519 sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
2520 sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
2521 sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
2522 sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
2523 sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
2524 sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
2525 v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
2526 vax/vaxv.h, vax/vms.h, we32k/we32k.h
2527
2528 Replace -A() with -A=, the new assertion syntax.
2529
2530 Thu Nov 2 21:52:35 2000 J"orn Rennecke <amylaar@redhat.com>
2531
2532 * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
2533 elim_i1.
2534 In REG_DEAD handling: When handling parts of multi-hard-reg hard
2535 registers, increment the loop counter by the size of the parts;
2536 use recursion to handle individual parts.
2537
2538 2000-11-02 Neil Booth <neilb@earthling.net>
2539
2540 * configure.in: Make integrated CPP the default.
2541 * configure: Regenerate.
2542
2543 Thu Nov 2 19:20:12 2000 J"orn Rennecke <amylaar@redhat.com>
2544
2545 * reload.c (find_equiv_reg): Test all hard registers for membership
2546 in the requested class.
2547
2548 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
2549
2550 * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
2551 process_command, main), gcov.c (open_files, output_data), tlink.c
2552 (frob_extension, scan_linker_output), toplev.c
2553 (file_name_nondirectory): Use strchr () and strrchr () instead of
2554 index () and rindex ().
2555
2556 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
2557
2558 * c-common.c (get_flag_spec, check_format_info_main,
2559 check_format_types): Use strchr () instead of index (). Compare
2560 against error_mark_node instead of comparing the TREE_CODE against
2561 ERROR_MARK.
2562
2563 2000-11-02 Zack Weinberg <zackw@Stanford.EDU>
2564
2565 Integrated CPP.
2566
2567 * c-lex.c (init_c_lex): Update cpp_start_read call.
2568 (cb_ident): Update for new callback prototype.
2569 (cb_def_pragma): Update for new cpp_get_token prototype.
2570 (c_lex): Similarly. Use cpp_get_line.
2571
2572 * c-parse.in (finish_parse): Update for new cpp_finish
2573 prototype.
2574
2575 * cp/lex.c (finish_parse): Similarly.
2576
2577 2000-11-01 Geoff Keating <geoffk@cygnus.com>
2578
2579 * machmode.def: Add V16QImode.
2580
2581 2000-11-01 Richard Henderson <rth@redhat.com>
2582
2583 * dwarf2out.c (loc_descriptor_from_tree): Check for null result
2584 from rtl_for_decl_location.
2585 (add_location_or_const_value_attribute): Likewise.
2586
2587 2000-11-01 Neil Booth <neilb@earthling.net>
2588
2589 * cpplib.c (run_directive): Use correct line number for output
2590 of _Pragma. Remember any in-progress directive.
2591
2592 * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
2593
2594 2000-11-01 Richard Henderson <rth@redhat.com>
2595
2596 * stmt.c (expand_start_null_loop): Set continue_label.
2597
2598 2000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
2599
2600 * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
2601 (expand_builtin_constant_p): Move parts of the code into
2602 fold_builtin_constant_p.
2603 (expand_builtin_strlen): Move parts of the code into fold_builtin.
2604 * expr.h (fold_builtin): Declare.
2605 * fold-const.c (fold): Handle builtin calls.
2606
2607 * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
2608
2609 2000-11-01 Richard Henderson <rth@redhat.com>
2610
2611 * stmt.c (expand_start_null_loop): New.
2612 (expand_end_null_loop): New.
2613 * c-semantics.c (genrtl_do_stmt): Use them.
2614 * tree.h: Declare them.
2615
2616 2000-11-01 Richard Henderson <rth@redhat.com>
2617
2618 * cppmain.c (scan_buffer): Don't avoid paste for assembly.
2619
2620 2000-11-01 Neil Booth <neilb@earthling.net>
2621
2622 * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
2623 * cp/spew.c: Similarly.
2624 * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
2625 * cppmacro.c (stringify_arg): Similarly.
2626 * cpplib.h (CPP_BACKSLASH): Delete.
2627
2628 2000-10-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2629
2630 * builtins.c (expand_builtin_strstr): New function.
2631 (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
2632
2633 * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
2634
2635 * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
2636 and builtin strchr.
2637
2638 2000-10-31 Richard Henderson <rth@redhat.com>
2639
2640 * config/i386/i386.c (fcmov_comparison_operator): Check for
2641 CCFPmode or CCFPUmode instead of CCmode.
2642 (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
2643 unordered operations as well.
2644
2645 2000-10-31 Richard Henderson <rth@redhat.com>
2646
2647 * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
2648 of integer_zero_node.
2649
2650 2000-10-31 Richard Henderson <rth@redhat.com>
2651
2652 * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
2653
2654 2000-10-31 Nick Clifton <nickc@redhat.com>
2655
2656 * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
2657 -fdata-sections to override the section attribute of a DECL.
2658
2659 2000-10-31 Chris Demetriou <cgd@sibyte.com>
2660
2661 * libgcc2.c (__shtab): Remove __shtab variable.
2662 * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
2663 * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
2664 members.
2665
2666 2000-10-31 Jim Wilson <wilson@redhat.com>
2667
2668 * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
2669 * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
2670 * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
2671 instead of ASM_OUTPUT_INTERNAL_LABEL.
2672 (dwarf2out_end_block, dwarf2out_label): Likewise.
2673 * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
2674 * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
2675
2676 2000-10-31 Richard Henderson <rth@redhat.com>
2677
2678 * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
2679 (size_of_locs): Set it.
2680 (output_loc_operands): Use it to compute branch displacement.
2681 (int_loc_descriptor): New.
2682 (mem_loc_descriptor): Dereference memory in the proper size.
2683 Use DW_OP_plus_uconst when possible. Use int_loc_descriptor.
2684 (loc_descriptor_from_tree): New.
2685 (rtl_for_decl_location): Break out from ...
2686 (add_location_or_const_value_attribute): ... here.
2687 (add_bound_info): Use loc_descriptor_from_tree.
2688
2689 2000-10-31 Neil Booth <neilb@earthling.net>
2690
2691 * cpp.texi: Update for new command line assertion syntax.
2692 * cpplib.c (cpp_define): Simplify a bit.
2693 (cpp_assert, cpp_unassert): Use handle_assertion.
2694 (handle_assertion): New function; accept new command line
2695 syntax with '='.
2696 * testsuite/gcc.dg/cpp/assert3.c: New tests.
2697
2698 2000-10-31 Neil Booth <neilb@earthling.net>
2699
2700 * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
2701 undefined. Remove #ifdef check.
2702 * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
2703 Define STDC_0_IN_SYSTEM_HEADERS to 1.
2704
2705 2000-10-31 Jan Hubicka <jh@suse.cz>
2706 Jakub Jelinek <jakub@redhat.com>
2707
2708 * config/i386/i386.h: Clarify CCNOmode description in comment.
2709 (EXTRA_CC_MODES): Remove CCRCmode.
2710 * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
2711 (put_condition_code, ix86_match_ccmode): Likewise.
2712 (ix86_cc_mode): Likewise. Fix comment.
2713 (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
2714 * config/i386/i386.md: Add unspec 12 description.
2715 (adddi3 split): Use unspec 12 instead of CCRCmode.
2716 (addsi3_carry_rc): Remove.
2717 (addsi3_cc, addqi3_cc): New patterns.
2718 (addsi_3): Swap operands, match CCZmode.
2719 (addsi_4): Rewritten.
2720 (addsi_5): Renamed from addsi_6.
2721 (addsi_6): Removed.
2722 (addhi_3): Swap operands, match CCZmode.
2723 (addhi_4): Rewritten.
2724 (addhi_5): Renamed from addhi_6.
2725 (addhi_6): Removed.
2726 (addqi_3): Swap operands, match CCZmode.
2727 (addqi_4): Rewritten.
2728 (addqi_5): Renamed from addqi_6. Use =q constraint for clobber.
2729 (subsi3_carry_rc): Removed.
2730 (iorqi_3): Use =q constraint for clobber.
2731 (xorqi_cc_2): Likewise.
2732 (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
2733 (x86_movsicc_0_m1_rc): Removed.
2734 (cmp?i peepholes): Remove neg. Use CCGCmode instead of CCRCmode.
2735
2736 2000-10-31 Joseph S. Myers <jsm28@cam.ac.uk>
2737
2738 * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
2739 and decrement of complex types.
2740
2741 2000-10-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2742
2743 * builtins.c (expand_builtin_fputs): When deleting NOP calls to
2744 builtin fputs, ensure we still evaluate the stream in case it
2745 has side-effects.
2746
2747 2000-10-31 Jakub Jelinek <jakub@redhat.com>
2748
2749 * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
2750 to expand_shift.
2751
2752 Tue Oct 31 15:33:27 2000 J"orn Rennecke <amylaar@redhat.com>
2753
2754 * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
2755 (fp_extended_operand, emit_fpscr_use): Likewise.
2756 * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
2757 (fpul_operand): New function.
2758 * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
2759 fp_extended_operand. Add fpul_operand.
2760 * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
2761 (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
2762 (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
2763 (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
2764 (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
2765 (divdf3_i): Likewise.
2766 (floatsisf2): Likewise. Use fpul_operand for 'y' operand.
2767 (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
2768 (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
2769 (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
2770 (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
2771
2772 2000-10-31 Bernd Schmidt <bernds@redhat.co.uk>
2773
2774 * config/i386/i386.c (ix86_init_builtins): Correct return type
2775 building v4hi_ftype_v4hi_int_int tree node.
2776 (ix86_expand_builtin): Use correct operand numbers 0 and 1.
2777 Copy operand 0 into a Pmode register, don't generate a MEM rtx.
2778
2779 * config/i386/i386.md (sse_movntdi): Use mmx register constraint
2780 for operand 1.
2781 (mmx__uavgv8qi3): Correct insn mnemonic.
2782 (mmx_psadbw): Correct insn mnemonic. Use V8QI mode for operands 1 and 2.
2783 (mmx_punpckhwd): Correct insn mnemonic.
2784 (mmx_punpckhdq): Likewise.
2785 (mmx_punpcklwd): Likewise.
2786 (mmx_punpckldq): Likewise.
2787 (prefetch): Use immediare_operand and 'n' constraint for operand 1.
2788 Renumber case labels to match the _mm_prefetch constants defined in
2789 xmmintrin.h.
2790
2791 * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
2792 if the splitter didn't emit new insns.
2793 Make sure we call cleanup_subreg_operands even when splitting the last
2794 insn in a basic block.
2795
2796 * invoke.texi (Debugging Options): Describe -do.
2797 * toplev.c (enum_dump_file_index): New entry DFI_postreload.
2798 (dump_file): Likewise.
2799 (rest_of_compilation): Split .greg dump into .greg and .postreload.
2800
2801 2000-10-30 Neil Booth <neilb@earthling.net>
2802
2803 * cppfiles.c (stack_include_file): Check for stacked contexts
2804 here.
2805 * cpphash.h (_cpp_do__Pragma): New prototype.
2806 * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
2807
2808 * cpplex.c (skip_escaped_newlines): Only process trigraphs and
2809 escaped newlines if !(buffer->from_stage3).
2810 (_cpp_lex_token): Warn about missing newlines iff
2811 !buffer->from_stage3.
2812
2813 * cpplib.c (get__Pragma_string, destringize,
2814 _cpp_do__Pragma): New functions.
2815 (run_directive): Set output_line for _Pragma to avoid line
2816 markers in output. Set from_stage3 and prevent macro expansion
2817 for _Pragma and command-line options. Check buffer exhaustion.
2818 (cpp_push_buffer): Don't check for stacked macro contexts, as
2819 this is perfectly legitimate for _Pragma. Move the check to
2820 stack_include_file instead. Set from_stage3 iff buffer is
2821 preprocessed input.
2822
2823 * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
2824 unsigned. New boolean from_stage3.
2825 (struct spec_nodes): Add n__Pragma.
2826
2827 * cppmacro.c (enter_macro_context): Flip sense of return value.
2828 (_cpp_get_token): Handle _Pragma operator.
2829
2830 2000-10-30 Phil Edwards <pme@sources.redhat.com>
2831
2832 * gcc.texi: The C++ standard isn't "draft" anymore.
2833
2834 2000-10-30 Mark Mitchell <mark@codesourcery.com>
2835
2836 * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
2837
2838 2000-10-29 Neil Booth <neilb@earthling.net>
2839
2840 * cpplib.c (skip_rest_of_line): Use _cpp_get_token.
2841
2842 2000-10-29 Joseph S. Myers <jsm28@cam.ac.uk>
2843
2844 * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
2845 fixinc/inclhack.def: Change comments mentioning C9X to refer to
2846 C99 instead.
2847
2848 * invoke.texi: Document that -V will only work for very similar
2849 versions of driver and compiler.
2850
2851 2000-10-29 Neil Booth <neilb@earthling.net>
2852
2853 * cppmacro.c (_cpp_create_definition): Optimize the case of
2854 a macro defined to itself.
2855
2856 2000-10-29 Neil Booth <neilb@earthling.net>
2857
2858 * cpplex.c (save_comment): Don't store new lines in C++ comments.
2859
2860 2000-10-29 Michael Hayes <mhayes@redhat.com>
2861
2862 * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
2863
2864 2000-10-28 Geoffrey Keating <geoffk@cygnus.com>
2865
2866 * cpphash.c (cpp_forall_identifiers): Add context variable
2867 for callback routine.
2868 * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
2869 change.
2870 (main): Call cpp_forall_identifiers with null context.
2871 * cpplib.h (cpp_forall_identifiers): Update prototype.
2872
2873 * cppmain.c: Make `parse_in' and `print' static.
2874
2875 2000-10-28 Alan Modra <alan@linuxcare.com.au>
2876
2877 * c-decl.c (finish_function): Clear c_function_name_declared_p.
2878
2879 2000-10-28 Richard Henderson <rth@redhat.com>
2880
2881 * regrename.c (scan_rtx_address): Frob action, not class,
2882 when trying to disable optimization.
2883
2884 2000-10-28 Mark Mitchell <mark@codesourcery.com>
2885
2886 * c-semantics.c (make_rtl_for_local_static): Don't clobber
2887 DECL_ASSEMBLER_NAME.
2888
2889 2000-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
2890
2891 * configure.in: Determine and substitute gcc_version_full.
2892 * configure: Regenerate.
2893 * gccbug.in: Use it to give full version. Don't allow
2894 confidential PRs.
2895
2896 2000-10-28 Richard Henderson <rth@redhat.com>
2897
2898 * recog.c (split_all_insns): Run cleanup_subreg_operands
2899 after reload.
2900
2901 * regrename.c (regrename_optimize): Verify that all registers of
2902 a multiple register mode are available.
2903 (scan_rtx_address): Accept the mode of the address; all callers
2904 changed.
2905
2906 * cpplib.c (run_directive): Fix prototype.
2907
2908 2000-10-28 Bernd Schmidt <bernds@redhat.co.uk>
2909
2910 * reload.c (find_reloads): Distinguish "wins" so that we know whether
2911 a given operand won because of a matching constraint or not; then use
2912 that information to compute goal_alternative_matched properly.
2913 * reload1.c (choose_reload_regs): Never set reload_override_in for an
2914 optional reload.
2915
2916 * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
2917 accurate value for MULT.
2918 * config/ia64/ia64.c (ia64_print_operand): Require probability to be
2919 2% or > 98% before using static branch prediction bits.
2920
2921 2000-10-28 Neil Booth <neilb@earthling.net>
2922
2923 New macro expander.
2924
2925 * cpplib.c (struct answer): New.
2926 (struct if_stack): Use cpp_lexer_pos rather than line and col.
2927 Rename cmacro mi_cmacro.
2928 (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
2929 IN_I): New directive and flags.
2930 (skip_rest_of_line, check_eol, run_directive, glue_header_name,
2931 parse_answer, parse_assertion, find_answer): New functions.
2932 (parse_ifdef, detect_if_not_defined, validate_else): Remove.
2933 (lex_macro_node): New function to replace parse_ifdef and
2934 get_define_node.
2935
2936 (_cpp_handle_directive): New function, combines _cpp_check_directive
2937 and _cpp_check_linemarker.
2938
2939 (do_define, do_undef, parse_include, do_include, do_import,
2940 do_include_next, read_line_number, do_line, do_ident, do_pragma,
2941 do_pragma_once, do_pragma_poison, do_pragma_dependency):
2942 Update for new token getting interface.
2943
2944 (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
2945 : Update for new multiple-include optimisation technique.
2946 (do_elif): Don't forget to invalidate controlling macros.
2947
2948 (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
2949 (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
2950 Functions to handle assertions with the new token interface.
2951 (do_assert, do_unassert): Use them.
2952
2953 (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
2954 Use run_directive.
2955
2956 (_cpp_init_stacks): Register directive names. Don't register special
2957 nodes.
2958
2959 * cpperror.c (print_containing_files, _cpp_begin_message): Update to
2960 new position recording regime.
2961 (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
2962 cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
2963 cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
2964 (cpp_type2name): Move to cpplex.c.
2965
2966 * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
2967 (parse_defined): Update to handle new multiple include optimisation
2968 method. Remove poisoned identifier warning.
2969 (parse_assertion, TYPE_NAME): Delete.
2970 (lex): Update for multiple include optimisation, removal of
2971 CPP_DEFINED, to use _cpp_test_assertion for assertions and
2972 cpp_token_as_text.
2973 (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
2974 (op_as_text): New function, to wrap cpp_token_as_text.
2975
2976 * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
2977 Update for MI optimisation.
2978 (_cpp_execute_include): Take a token rather than 3 arguments. Fix
2979 segfault on diagnostic.
2980 (_cpp_compare_file_date): Take a token rather than 3 args.
2981 (cpp_read_file): Work correctly for zero-length files.
2982
2983 * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
2984 _cpp_init_hashtable and _cpp_cleanup_hashtable.
2985 (cpp_lookup): Place identifiers at front of identifier pool
2986 for _cpp_lookup_with_hash.
2987 (_cpp_lookup_with_hash): Require identifiers to be at the front of
2988 the identifier pool. Commit the memory if not already in the
2989 hash table.
2990
2991 * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
2992 Initialise various members of cpp_reader, memory pools, and the
2993 special nodes.
2994 (cpp_printer_init): Delete.
2995 (cpp_cleanup): Update.
2996 (struct builtin, builtin_array, initialize_builtins): Update for new
2997 hashnode definition and builtin handling.
2998 (cpp_start_read, cpp_finish): Don't take or initialise a
2999 printer. Update.
3000
3001 * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
3002 PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
3003 T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
3004 T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
3005 (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
3006 struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
3007 NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
3008 struct toklist, struct cpp_context, struct specnodes,
3009 TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
3010 NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
3011 enum builtin_type, cpp_can_paste): New.
3012 (struct cpp_token): Delete line and col members.
3013 (struct cpp_buffer): New member output_lineno.
3014 (struct lexer_state): Delete indented, in_lex_line, seen_dot.
3015 Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
3016 (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
3017 ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
3018 base_context, context, directive, mi_state, mi_if_not_defined,
3019 mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
3020 mlstring_pos, macro_buffer, macro_buffer_len.
3021 Delete members mls_line, mls_column, token_list, potential_control_macro,
3022 temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
3023 context_cap, cur_context, no_expand_level, paste_level, contexts, args,
3024 save_parameter_spellings, need_newline, .
3025 Change type of date, time and spec_nodes members.
3026 Change prototypes for include and ident callbacks.
3027 (struct cpp_hashnode): Change type of name. Remove union members
3028 expansion and code. Add members macro, operator and builtin.
3029
3030 (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
3031 cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
3032 cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
3033 cpp_stop_lookahead): New prototypes.
3034 (cpp_printer_init, cpp_dump_definition): Delete prototypes.
3035
3036 (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
3037 Move from cpphash.h.
3038
3039 * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
3040 ufputs): Move to cpplib.h.
3041 (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
3042 TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
3043 COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
3044 struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
3045 _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
3046 _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
3047 _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
3048 _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
3049 _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
3050 _cpp_parse_assertion, _cpp_find_answer): Delete.
3051 (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
3052 POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
3053 _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
3054 _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
3055 _cpp_handle_directive, DSC): New.
3056 (struct include_file): New member defined.
3057
3058 (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
3059 _cpp_compare_file_date): Update.
3060 (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
3061 (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
3062 _cpp_cleanup_hashtable.
3063
3064 * Makefile.in: Remove cppoutput.c.
3065
3066 * cppoutput.c: Delete
3067
3068 * fixheader.c (read_scan_file): Update for new cpp_get_token
3069 prototype.
3070 (recognized_function): New argument LINE.
3071
3072 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
3073 new cpp_get_token prototype.
3074
3075 * scan.h (recognized_function): Update prototype.
3076
3077 * po/POTFILES.in: Remove cppoutput.c.
3078
3079 2000-10-27 Mark Mitchell <mark@codesourcery.com>
3080
3081 * c-typeck.c (check_init_type_bitfields): Remove.
3082 (constructor_incremental): Likewise.
3083 (struct constructor_stack): Remove incremental bit.
3084 (struct initializer_stack): Likewise.
3085 (start_init): Don't play with constructor_incremental.
3086 (finish_init): Likewise.
3087 (really_start_incremental_init): Likewise.
3088 (push_init_level): Likewise.
3089 (pop_init_level): Likewise.
3090 (output_init_level): Likewise.
3091 (output_pending_init_elements): Likewise.
3092
3093 2000-10-21 Mike Coleman <mcoleman2@kc.rr.com>
3094
3095 * c-pragma.c (handle_pragma_pack): Initialize align to -1.
3096 Improve error messages. Correct parsing of
3097 #pragma pack(pop [,id]). Do not check the user-supplied
3098 alignment if we're popping.
3099
3100 * gcc.dg/pack-test-1.c: New test case.
3101 * gcc.dg/pack-test-2.c: New test case.
3102 * gcc.dg/pack-test-1.h: New file.
3103
3104 2000-10-27 Neil Booth <neilb@earthling.net>
3105
3106 * cpp.texi: Update.
3107
3108 2000-10-27 Kelley Cook <kelley.cook@home.com>
3109
3110 * invoke.texi: Document -mintel-syntax
3111
3112 2000-10-27 Richard Henderson <rth@redhat.com>
3113
3114 * invoke.texi: Document -frename-registers. Add it to -O3.
3115 * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
3116 (enum dump_file_index, dump_file): Update order.
3117 (main): Set flag_rename_registers at -O3.
3118
3119 2000-10-27 Richard Henderson <rth@redhat.com>
3120
3121 * config/alpha/alpha.h (enum reg_class): Add PV_REG.
3122 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
3123 (REG_CLASS_FROM_LETTER): Assign it to 'c'.
3124 * config/alpha/alpha.md (call_osf_1): Use it.
3125 (call_value_osf_1): Likewise.
3126
3127 * config/ia64/ia64.c: Revert 10-23 patch.
3128 (ia64_hard_regno_rename_ok): New.
3129 * config/ia64/ia64-protos.h: Declare it.
3130 * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
3131
3132 2000-10-27 Bernd Schmidt <bernds@redhat.co.uk>
3133 Richard Henderson <rth@redhat.com>
3134
3135 * regrename.c: Rewrite to handle multi-register modes and
3136 cond_exec instructions.
3137 * Makefile.in (regrename.o): Update dependancies.
3138 * recog.h (struct operand_alternative): Add is_address.
3139 * recog.c (preprocess_constraints) [case 'p']: Set it.
3140
3141 2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
3142
3143 * configure.in: If not NO_MINUS_C_MINUS_O, substitute
3144 OUTPUT_OPTION with '-o $@'. Make zlibdir, zlibinc relative to
3145 top level. Kill oldstyle_subdirs. Do not include
3146 $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
3147 $outputs. Do not run configure.lang from config.status.
3148 Rearrange warning-flag logic to correspond to what the
3149 makefile wants. Put special vax stage1 options in
3150 @stage1_flags@ not @stage1_warn_cflags@. Don't do anything
3151 with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
3152 (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
3153 switch is given, nothing otherwise.
3154 * configure.lang: Delete.
3155
3156 * Makefile.in: Expunge all traces of extra_c_objs,
3157 extra_cxx_objs, and extra_cpp_objs. Set MAYBE_CPPLIB from
3158 @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS. Set
3159 warning options via a three level scheme so that -pedantic and
3160 -Wtraditional are not used for non-C front ends: LOOSE_WARN,
3161 STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
3162 WARN_CFLAGS. Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
3163 Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
3164 Set OUTPUT_OPTION, ZLIB, ZLIBINC. Do not set P,
3165 LANG_FLAGS_TO_PASS. Add OUTPUT_OPTION to all object-file
3166 generation rules. Wrap all rules that change the current
3167 directory in parentheses; pmake doesn't spawn a new shell for
3168 each command. Expunge all references to $(P). When one
3169 command depends on another and they're run all at once, use &&
3170 to separate them, not ;. Add libgcc_s$(SHLIB_EXT) to files
3171 deleted on make clean. Force OUTPUT_OPTION='-o $@' in stage2
3172 and beyond.
3173
3174 * objc/Make-lang.in: Wrap all rules that change the current
3175 directory in parentheses. Expunge all references to $(P).
3176 When one command depends on another and they're run all at
3177 once, use && to separate them, not ;. Add OUTPUT_OPTION to
3178 all object-file generation rules. Delete obsolete variables.
3179 * objc/Makefile.in: Delete.
3180
3181 2000-10-27 Jakub Jelinek <jakub@redhat.com>
3182
3183 * calls.c (expand_call): If sibcall_failure is set during pass 1,
3184 clear tail_call_insns as well.
3185
3186 2000-10-27 Nick Clifton <nickc@redhat.com>
3187
3188 * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
3189 prototype.
3190
3191 2000-10-26 Richard Henderson <rth@redhat.com>
3192
3193 * calls.c (expand_call): Supress sibcall if we have a
3194 BLKmode return in registers.
3195
3196 2000-10-26 Bernd Schmidt <bernds@redhat.co.uk>
3197
3198 * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
3199 into memory.
3200
3201 2000-10-26 Nathan Sidwell <nathan@codesourcery.com>
3202
3203 * tree.c (make_node, case 't'): Set alignment to that of
3204 char_type_node.
3205 * expr.c (move_by_pieces_ninsns): Abort if some length remains.
3206
3207 2000-10-25 Mark Mitchell <mark@codesourcery.com>
3208
3209 * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
3210 * configure.in (enable-libstdcxx-v3): Arrange to have
3211 HAVE_LIBSTDCXX_V3 substituted into the output files.
3212
3213 2000-10-25 Richard Henderson <rth@redhat.com>
3214
3215 * recog.c (constrain_operands): Initialize which_alternative
3216 before no alternatives early exit.
3217
3218 * cse.c (find_comparison_args): Check that we can reverse a
3219 comparison if needed before accepting the substitution.
3220
3221 * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
3222
3223 * simplify-rtx.c (simplify_relational_operation): Sign extend
3224 low words before sign extending to high words.
3225
3226 2000-10-25 Nick Clifton <nickc@redhat.com>
3227
3228 * config/mcore/mcore.c: Include config.h before system.h.
3229
3230 2000-10-25 Ray Essick <essick@ddna.labs.mot.com>
3231
3232 * config/mcore/mcore.md (return): Force function epilogue to
3233 always be generated to work around epilogue suppression bug in
3234 M*Core backend.
3235
3236 2000-10-25 Joseph S. Myers <jsm28@cam.ac.uk>
3237
3238 * c-decl.c (grokdeclarator): Move warning for qualified void
3239 return types with -pedantic to when the function type is
3240 constructed. At -W, warn in general for qualified function return
3241 types, except for volatile void.
3242 * invoke.texi: Document this new warning at -W.
3243
3244 2000-10-25 Neil Booth <neilb@earthling.net>
3245
3246 * cpp.texi: Update with implementation-defined behavior and
3247 internal limits.
3248
3249 2000-10-25 Jakub Jelinek <jakub@redhat.com>
3250
3251 * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
3252 incomplete type force it into alias set 0.
3253
3254 Wed Oct 25 01:02:44 EDT 2000 John Wehle (john@feith.com)
3255
3256 * alias.c: Include basic-block.h.
3257 (loop_p): New function.
3258 (mark_constant_function): Use it.
3259 * Makefile.in (alias.o): Update dependencies.
3260
3261 2000-10-24 Aldy Hernandez <aldyh@redhat.com>
3262
3263 * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
3264 like memory.
3265
3266 2000-10-24 Jim Wilson <wilson@cygnus.com>
3267
3268 * expmed.c (store_bit_field): Move integer pun code down after
3269 code that calls emit_move_insn for entire register move.
3270 * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
3271 Oct 20 changes. Only store mode in TYPE_MODE if RECORD_TYPE.
3272
3273 2000-10-24 Richard Henderson <rth@cygnus.com>
3274
3275 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
3276 register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
3277
3278 2000-10-24 Aldy Hernandez <aldyh@redhat.com>
3279
3280 * gcse.c (cprop_insn): do not propagate constants into jump_insn
3281 for machines with CC0 more than once.
3282
3283 2000-10-24 Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
3284
3285 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
3286 pseudos just like memory.
3287
3288 2000-10-24 Alexandre Oliva <aoliva@redhat.com>
3289
3290 * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
3291 when deleting libcall sequence collapsed to a single instruction.
3292
3293 2000-10-24 Andrew Haley <aph@cygnus.co.uk>
3294
3295 * expr.c (do_store_flag): Don't crash if either side of a
3296 comparison is error_mark_node.
3297
3298 2000-10-24 Jakub Jelinek <jakub@redhat.com>
3299
3300 * sibcall.c (purge_mem_unchanging_flag): New function.
3301 (optimize_sibling_and_tail_recursive_calls): Call it.
3302
3303 2000-10-24 Philipp Thomas <pthomas@suse.de>
3304
3305 * Makefile.in (check-po): New target for doing checks in the po
3306 subdir if all languages configured.
3307 (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
3308 configure if NLS is enabled.
3309 * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
3310 otherwise leave empty.
3311 * configure: Regenerate.
3312
3313 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
3314
3315 * i386.c (print_operand): Handle new 'A' formatting code.
3316 387 opcodes need suffixes even with -mintel-syntax.
3317 Check for explicit size override (codes 'b', 'w' and 'k').
3318 (print_operand_address): Check if register prefix is needed when
3319 emitting `ds' segment override.
3320 * i386.h: Add comment about new 'A' formatting code.
3321 * i386.md (jump and call patterns): Emit absolute references using %A.
3322
3323 2000-10-23 Richard Henderson <rth@cygnus.com>
3324
3325 * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
3326 output registers as fixed.
3327 (ia64_function_epilogue): Undo output fixation.
3328
3329 2000-10-23 Richard Henderson <rth@cygnus.com>
3330
3331 * config/alpha/alpha.md: Add names for all unnamed insns; use
3332 define_insn_and_split in some obvious places.
3333 (lda): Remove.
3334 (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
3335 (zero_extendqisi2, zero_extendqidi2): Likewise.
3336 (zero_extendhisi2, zero_extendhidi2): Likewise.
3337 (abs splitters): Fix match_scratch operand number.
3338 (bcc_reverse): Swap pc & label instead of non-canonical compare.
3339
3340 2000-10-23 Jim Wilson <wilson@cygnus.com>
3341
3342 * ia64.c (ia64_print_operand, case 'r'): Correct comment. Handle
3343 CONST_INT.
3344 * ia64.md (cmpsi_adjusted): Use %r3.
3345 (cmpdi_adjusted): Likewise.
3346
3347 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
3348
3349 * config/i386/att.h (ASM_FILE_START): Define.
3350
3351 2000-10-23 Diego Novillo <dnovillo@cygnus.com>
3352
3353 * config/i386/linux.h (ASM_FILE_START): Define.
3354
3355 Wed Oct 18 11:16:40 2000 Donald Lindsay <dlindsay@cygnus.com>
3356
3357 * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
3358 since this (only) drags in a crt0.o reference that the .ld files
3359 also introduce.
3360
3361 2000-10-23 Geoff Keating <geoffk@cygnus.com>
3362
3363 * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
3364 overwrite the value in a RELOAD_FOR_INPUT and other kinds of
3365 reloads just like an RELOAD_FOR_OUTPUT would.
3366
3367 * local-alloc.c (update_equiv_regs): Add an abort(). When
3368 deleting or moving insns, update reg_equiv[regno].init_insns.
3369
3370 2000-10-23 Mark Mitchell <mark@codesourcery.com>
3371
3372 * c-tree.texi: Improve documentation for IF_STMTs and related
3373 conditional statements.
3374
3375 2000-10-22 Mark Mitchell <mark@codesourcery.com>
3376
3377 * expr.c (do_preexpand_calls): Remove.
3378 (same_from_p): Don't use CALL_EXPR_RTL.
3379 (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
3380 (preexpand_calls): Remove.
3381 * tree.c (first_rtl_op): Remove CALL_EXPR case.
3382 (unsave_expr_1): Likewise.
3383 * tree.def (CALL_EXPR): Give it only two slots.
3384 * tree.h (CALL_EXPR_RTL): Remove.
3385
3386 2000-10-21 Chandrakala Chavva <cchavva@redhat.com>
3387
3388 * libgcc-std.ver (__addvsi3, __addvdi3, __subvsi3, __subvdi3,
3389 __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
3390 New functions.
3391
3392 2000-10-22 Alexandre Oliva <aoliva@redhat.com>
3393
3394 * calls.c (combine_pending_stack_adjustment_and_call): Don't
3395 adjust stack when unadjusted_alignment ends up as zero.
3396
3397 2000-10-22 Joseph S. Myers <jsm28@cam.ac.uk>
3398
3399 * fixinc/genfixes: Remove EGCS reference.
3400 * install.texi: Remove EGCS reference.
3401 * INSTALL: Regenerate.
3402
3403 2000-10-22 Mark Mitchell <mark@codesourcery.com>
3404
3405 * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
3406
3407 2000-10-21 Joseph S. Myers <jsm28@cam.ac.uk>
3408
3409 * diagnostic.c: Remove EGCS reference in comment.
3410
3411 Sat Oct 21 08:24:25 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3412
3413 * loop.c (strength_reduce): Fix error in last change.
3414
3415 2000-10-20 David Edelsohn <edelsohn@gnu.org>
3416
3417 * Makefile.in (SHLIB_NM_FLAGS): New.
3418 (libgcc.mk): Pass it.
3419 * mklibgcc.in (libgcc.map): Use it.
3420
3421 * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
3422 SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
3423
3424 2000-10-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3425
3426 * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
3427
3428 * sparc.c (load_pic_register): Delete unused varaible.
3429
3430 * libgcc2.c (__addvsi3): Delete unused variable.
3431
3432 * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
3433 __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
3434 __negvdi2): Prototype.
3435
3436 * ssa.c (apply_delayed_renames): Avoid undefined operation.
3437
3438 * toplev.c (display_target_options): Make static to match
3439 prototype. Delete empty declaration.
3440
3441 2000-10-20 Tom Tromey <tromey@cygnus.com>
3442
3443 * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
3444 * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
3445
3446 Fri Oct 20 17:05:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3447
3448 * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
3449 returned MEM.
3450 (expand_expr_unaligned, case ARRAY_REF): Check that index is
3451 a constant before comparing it; use tree_low_cst.
3452 * tree.c (save_expr): Set TREE_READONLY.
3453 (substitute_expr): Return inside of NON_LVALUE_EXPR.
3454 (build, build1): Set TREE_READONLY if all operands are.
3455 (build_index_type): If upper bound is a negative number, lower
3456 bound is zero and sizetype is unsigned, use upper bound of one and
3457 lower of zero.
3458
3459 2000-10-20 David Edelsohn <edelsohn@gnu.org>
3460
3461 * gcc.c (process_command, main): Use "because" instead of
3462 "since" in error messages.
3463
3464 Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3465
3466 * stor-layout.c (compute_record_mode): Use tree_low_cst.
3467 Don't use mode of field for record unless sizes are the same.
3468 (layout_type, case ARRAY_TYPE): Remove special bounds handling
3469 previously added for Ada; also change to using host_integerp
3470 and tree_low_cst.
3471
3472 * loop.c (strength_reduce): Show when new register made for
3473 giv is known to be a pointer and its aligment if so and known.
3474 (loop_dump_aux): Show VERBOSE parameter unused.
3475
3476 * gcse.c (set_hash_table_size): Now unsigned.
3477 * sdbout.c (template_name_p): Add "const" to avoid warnings.
3478 (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
3479 (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
3480 (sdbout_end_epilogue): Remove variable NAME.
3481 * system.h (getopt): Add default definition.
3482 * config/alpha/alpha.c (print_operand): Don't continue processing
3483 after issuing error.
3484 (summarize_insn): Avoid use of UL in constant.
3485
3486 * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
3487
3488 * fold-const.c (force_fit_type): Unsigned values can overflow
3489 if they are sizetype.
3490 (int_const_binop): Don't use cache if overflows.
3491
3492 2000-10-20 Richard Henderson <rth@cygnus.com>
3493
3494 * function.c (locate_and_pad_parm): Zero alignment_pad.
3495
3496 * regrename.c (rr_replace_reg): Rewrite to use recog_data to
3497 perform substitutions, and apply_change_group to see if it worked.
3498
3499 Fri Oct 20 13:33:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3500
3501 * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
3502
3503 * combine.c (struct undo): Change int to unsigned int.
3504 (do_SUBST_INT): Args are unsigned int.
3505 (make_extraction, force_to_mode): Use proper type when forming mask.
3506 (make_field_assignment): Likewise.
3507
3508 2000-10-20 Joseph S. Myers <jsm28@cam.ac.uk>
3509
3510 * c-common.c (check_format_info_recurse): Extract string constant
3511 initializers from non-volatile constant arrays and check them as
3512 formats.
3513 * c-typeck.c (decl_constant_value): Don't check pedantic or check
3514 for DECL_MODE (decl) != BLKmode.
3515 (decl_constant_value_for_broken_optimization): New function which
3516 includes these checks.
3517 (default_conversion, convert_for_assignment, digest_init): Use
3518 decl_constant_value_for_broken_optimization instead of
3519 decl_constant_value.
3520
3521 2000-10-20 Mark Mitchell <mark@codesourcery.com>
3522
3523 * tree.h (DECL_ALIGN_UNIT): New macro.
3524
3525 2000-10-14 Marek Michalkiewicz <marekm@linux.org.pl>
3526
3527 * config/avr/avr-protos.h (avr_output_bld): New.
3528 (out_shift_with_cnt): Add t_len argument.
3529 * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
3530 (output_movqi, output_movhi, output_movsisf): Optimize loading
3531 any constant with exactly one bit set to NO_LD_REGS.
3532 (out_shift_with_cnt): Optimize output code for size or speed,
3533 depending on optimize_size. Handle small shift counts as well
3534 (if not hand-optimized in ?sh??i3_out). Shifts can be done
3535 with or without a scratch register, with help of __tmp_reg__
3536 or __zero_reg__ if necessary. Add T_LEN argument to pass the
3537 length of TEMPLATE in words, return total insn length in *LEN.
3538 (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
3539 out_shift_with_cnt to work with the above change.
3540 (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
3541 lshrsi3_out): Likewise. Optimize more known shift count cases.
3542 Remove cases already well optimized in out_shift_with_cnt.
3543 (avr_output_bld): New function.
3544 * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
3545 (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
3546 * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
3547 Add reload_completed to insn condition - only for peepholes.
3548 (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
3549 in a register or memory.
3550 (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
3551 Do not require a scratch register.
3552 (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
3553 *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
3554 Optimize shifts by known count using a scratch register, but only
3555 if one is still available after register allocation.
3556
3557 2000-10-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3558
3559 * t-vax: New file. Don't build modules from libgcc1.c.
3560
3561 Fri Oct 20 00:57:00 EDT 2000 John Wehle (john@feith.com)
3562
3563 * alias.c: (mark_constant_function): Don't check pure functions.
3564 Initialize and end alias analysis.
3565 (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
3566 Don't make a special exception for recursion. Handle
3567 UNSPEC_VOLATILE. Don't assume ASM_OPERANDS is non-local
3568 unless it's volatile.
3569
3570 * local-alloc.c (equivalence): New structure.
3571 (reg_equiv): Define.
3572 (contains_replace_regs): Remove array and use
3573 field in reg_equiv.
3574 (memref_referenced_p): Likewise.
3575 (no_equiv): Likewise.
3576 (update_equiv_regs): Likewise.
3577
3578 (equiv_init_varies_p,
3579 equiv_init_movable_p): New functions.
3580 (update_equiv_regs): Use them. Use rtx_varies_p
3581 instead of function_invariant_p. Process insns
3582 from end to beginning. Allow a REG_EQUIV insn
3583 within the same loop as a use to be moved, also
3584 allow it to be moved out of a loop. Update
3585 REG_DEAD notes when substituting into an insn.
3586
3587 2000-10-19 Jim Wilson <wilson@cygnus.com>
3588
3589 * c-decl.c (start_decl): Check for error_mark_node type before using
3590 COMPLETE_TYPE_P.
3591 (finish_decl): Likewise. Don't give an error if decl type is
3592 already error_mark_node.
3593
3594 * haifa-sched.c (compute_trg_info): Add explanatory comments.
3595 New local update_blocks. Use update_blocks to remove duplicates
3596 when computing update blocks. Check for bblst_table overflow.
3597 (schedule_block): Add explanatory comment. Reduce bblst_size by
3598 factor of 2.
3599 * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
3600 notes.
3601
3602 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
3603
3604 * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
3605
3606 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
3607
3608 * expmed.c: Minor corrections in comments.
3609 * invoke.texi: Added desciption for the new option -ftrapv.
3610
3611 2000-10-19 Chandrakala Chavva <cchavva@redhat.com>
3612
3613 * libgcc2.c: Added the missing #endif.
3614
3615 Thu Oct 19 14:25:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
3616
3617 * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
3618
3619 2000-10-18 Chandrakala Chavva <cchavva@redhat.com>
3620
3621 * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
3622 Use smulv_optab for -ftrapv.
3623 (expand_mult_highpart): Use unsigned multiply.
3624 (expand_divmod): Special-case division by -1.
3625 For EXACT_DIV_EXPR, do right shift first, then the multiply.
3626 For complex divide, use abs with unsigned result.
3627 * expr.c (force_operand): Use unsigned multiply.
3628 (expand_expr): Use overflow-trapping optabs for signed types if
3629 flag_trapv.
3630 If flag_trapv, don't generate a recursive call with EXPAND_SUM
3631 if the type is signed and the original call wasn't EXPAND_SUM or
3632 EXPAND_INITIALIZER.
3633 * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
3634 (negv_optab, absv_optab): Declare.
3635 * flags.h (flag_trapv): Declare.
3636 * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
3637 smulv_optab, sdivv_optab, negv_optab and absv_optab.
3638 (gen_insn): Interpret '$P' as requiring an integer mode,
3639 including partial integer modes.
3640 * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
3641 (product_cheap_p): Use unsigned expand_mult.
3642 * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
3643 (negv_optab, absv_optab): Define.
3644 (expand_binop): Use overflow-trapping optabs for signed types if
3645 flag_trapv.
3646 Handle negv_optab libe neg_optab.
3647 (expand_abs): Take result_unsignedp argument instead of unsignedp one.
3648 Use overflow-trapping optabs for signed result if flag_trapv.
3649 (expand_complex_abs): Use overflow-trapping optabs for signed types if
3650 flag_trapv.
3651 Don't open-code complex absolute-value operation for flag_trapv.
3652 (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
3653 sdivv_optab, negv_optab and absv_optab.
3654 * toplev.c (flag_trapv): Define.
3655 (lang_independent_options f_options): Include flag_trapv.
3656 * tree.h (TYPE_TRAP_SIGNED): Define.
3657 * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
3658 __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
3659 New functions.
3660 * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
3661 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
3662
3663 2000-10-18 Geoffrey Keating <geoffk@cygnus.com>
3664 David V. Henkel-Wallace <gumby@cygnus.com>
3665
3666 * config/i386/t-netware: Bring in from the Red Hat tree.
3667 * config/i386/netware.h: Likewise.
3668 * config/netware.h: Likewise.
3669 * config/rs6000/netware.h: Delete.
3670 * configure.in: Add i[34567]86-*-netware.
3671 * configure: Hand-edit to match configure.in change.
3672
3673 2000-10-18 Mark Mitchell <mark@codesourcery.com>
3674
3675 * c-common.h (flag_no_builtin): Declare.
3676 (flag_no_nonansi_builtin): Likewise.
3677 (c_common_nodes_and_builtins): Change prototype.
3678 * c-common.c (flag_no_builtin): New variable.
3679 (flag_no_nonansi_builtin): Likewise.
3680 (c_common_nodes_and_builtins): Remove parameters. Adjust
3681 accordingly.
3682 * c-decl.c (flag_no_builtin): Remove.
3683 (flag_no_nonansi_builtin): Likewise.
3684 (init_decl_processing): Adjust call to
3685 c_common_nodes_and_builtins.
3686
3687 2000-10-18 Marc Espie <espie@openbsd.org>
3688
3689 * tm.texi (LIBGCC_SPEC): Synch with reality.
3690
3691 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
3692
3693 * c-common.c (check_format_types): Check for writing through a
3694 NULL pointer argument.
3695
3696 2000-10-18 Hans-Peter Nilsson <hp@axis.com>
3697
3698 * tm.texi (Exception Region Output): Document
3699 DWARF_CIE_DATA_ALIGNMENT.
3700 * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
3701 #ifndef.
3702 [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
3703 DWARF_CIE_DATA_ALIGNMENT.
3704
3705 2000-10-18 Michael Hayes <mhayes@cygnus.com>
3706
3707 * basic-block.h (struct loop): Delete fields pre_header_root
3708 and pre_header_trace and replace with pre_header_edges
3709 and num_pre_header_edges.
3710 * flow.c (flow_loop_dump): Dump pre_header_edges.
3711 (flow_loops_free): Free pre_header_edges.
3712 (flow_loop_pre_header_scan): Calculate pre_header_edges.
3713
3714 2000-10-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3715
3716 * contrib.texi: Update references to steering committee members
3717 and Jeff Law's entry.
3718
3719 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
3720
3721 * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
3722 (maybe_read_dollar_number, check_format_info_main): Use them for
3723 pedantic warning messages.
3724
3725 2000-10-18 Joseph S. Myers <jsm28@cam.ac.uk>
3726
3727 * c-common.c (check_format_info_main): Minor cleanup: move
3728 variables into inner scopes; initialize declarations where
3729 appropriate; don't hardcode "scanf" name on warning for zero
3730 width.
3731
3732 2000-10-17 Mark Mitchell <mark@codesourcery.com>
3733
3734 * c-common.c (back_end_hook): New variable.
3735 * c-common.h (back_end_hook): Declare it.
3736 * c-lang.c (finish_file): Use it.
3737
3738 * emit-rtl.c (init_emit_once): Initialize the const_int_htab
3739 earlier.
3740
3741 2000-10-18 Jan Hubicka <jh@suse.cz>
3742
3743 * i386.c (ix86_comparison_operator, put_condition_code,
3744 ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
3745 (ix86_expand_strlensi_unroll_1): Use CCRCmode.
3746 * i386.h (EXTRA_CC_MODES): Add CCRCmode.
3747 * i386.md (adddi and negdi splitter): Use CCRCmode.
3748 (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
3749 (subsi3_carry): add '*'
3750 (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
3751 (cmp to add peep2): Use CCRCmode; swap operands.
3752
3753 2000-10-18 Kazu Hirata <kazu@hxi.com>
3754
3755 * h8300.c: Fix a comment typo.
3756 (round_frame_size): New.
3757 (compute_saved_regs): Likewise.
3758 (push): Likewise.
3759 (pop): Likewise.
3760 (push_order): Remove.
3761 (pop_order): Likewise.
3762 (function_prologue): Rearrange code for readability.
3763 (function_epilogue): Likewise.
3764
3765 * config/h8300/h8300.md: Remove an unnecessary sign_extend
3766 expander that is used when not optimizing. Output a tab after
3767 each assembly insns.
3768
3769 * reorg.c: Fix formatting.
3770
3771 2000-10-17 Joern Rennecke <amylaar@redhat.co.uk>
3772
3773 * reload1.c (move2add_note_store): Check for simple
3774 auto-inc in destination.
3775
3776 2000-10-17 Michael Chastain <chastain@redhat.com>
3777
3778 * config/i386/i386-aout.h: define INT_ASM_OP.
3779
3780 Tue Oct 17 20:11:08 2000 Alan Modra <alan@linuxcare.com.au>
3781
3782 * pa.c (print_operand): Handle case 'c' for .vtable_inherit
3783
3784 Tue Oct 17 20:05:51 2000 Martin Buchholz <martin@xemacs.org>
3785
3786 * i370.md: Fix spelling typo.
3787
3788 2000-10-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3789
3790 * function.c (locate_and_pad_parm): Don't align stack unconditionally.
3791 Fixes execute/20001017-1.c on powerpc-linux-gnu.
3792
3793 * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
3794 * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
3795 LABEL_REF.
3796
3797 * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
3798 ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
3799 here...
3800 * rs6000/aix.h: ...to here.
3801 * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
3802
3803 2000-10-17 Jakub Jelinek <jakub@redhat.com>
3804
3805 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
3806
3807 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
3808 sure linker can relax even the delay slot mov %g1,%o7, fix output
3809 formating.
3810
3811 2000-10-17 Kazu Hirata <kazu@hxi.com>
3812
3813 * config/h8300/h8300.md: Remove an unnecessary zero_extend
3814 expander that is used when not optimizing. Output a tab after
3815 each assembly insns.
3816
3817 2000-10-17 Chandrakala Chavva <cchavva@redhat.com>
3818
3819 * gcc.c: New options --target-help.
3820 (process_command): Added code to parse this new option.
3821 * toplev.c (display_target_options): New function to support the
3822 above new option.
3823 * cppinit.c (new_pending_directive) : New option OPT_target__help.
3824 (cpp_handle_option): Support this new option.
3825 * invoke.texi: Added notes about --target-help option.
3826
3827 2000-10-17 Graham Stott <grahams@redhat.com>
3828
3829 * config/i386/i386.md (testqi_1): Add missing operand prefix
3830 for operand 0.
3831 * config/i386/i386-protos.h: Add missing prototype.
3832
3833 2000-10-17 Diego Novillo <dnovillo@cygnus.com>
3834
3835 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
3836 _GLOBAL_OFFSET_TABLE should not have a $ prefix when
3837 using -mintel-syntax.
3838
3839 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
3840
3841 * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
3842 (format_types): Use it for printf.
3843 (maybe_read_dollar_number): Add parameter for the kind of format
3844 involved. Warn for multiple use for arguments if this is
3845 inappropriate for the kind of format involved.
3846 (check_format_info_main): Update calls to maybe_read_dollar_number.
3847
3848 2000-10-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3849
3850 * inclhack.def (hpux_maxint): Also apply fix to values.h.
3851 * fixincl.x: Rebuilt.
3852
3853 2000-10-17 Alexandre Oliva <aoliva@redhat.com>
3854
3855 * genrecog.c (write_switch): Return the first condition that needs a
3856 label.
3857
3858 2000-10-17 Bernd Schmidt <bernds@redhat.co.uk>
3859
3860 * c-tree.h (warn_sequence_point): Move declaration to...
3861 * c-common.h (warn_sequence_point): ... here.
3862 * c-decl.c (warn_sequence_point): Move definition to...
3863 * c-common.c (warn_sequence_point): ... here.
3864 (struct reverse_tree): New.
3865 (reverse_list, reverse_max_depth): New static variables.
3866 (build_reverse_tree, common_ancestor, modify_ok
3867 verify_sequence_points): New functions.
3868 (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
3869 * c-typeck.c (check_modify_expr): Delete.
3870 (build_modify_expr): Don't call it.
3871
3872 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
3873
3874 * c-common.h (warn_missing_format_attribute): New variable.
3875 * c-decl.c (warn_missing_format_attribute): New variable.
3876 (c_decode_option): Decode -Wmissing-format-attribute and
3877 -Wno-missing-format-attribute.
3878 * c-common.c (check_function_format): If
3879 -Wmissing-format-attribute, give a warning where a vprintf or
3880 vscanf function is called by a function without its own printf or
3881 scanf attribute.
3882 * toplev.c (documented_lang_options): Add
3883 -Wmissing-format-attribute.
3884 * invoke.texi: Document -Wmissing-format-attribute.
3885
3886 2000-10-17 Marc Espie <espie@openbsd.org>
3887
3888 * invoke.texi (-shared): Insist on requiring code generation flags
3889 to be used along with -shared, and document the subtle failure that
3890 may occur otherwise.
3891
3892 2000-10-16 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3893
3894 * pa.md (return_internal): Move `use' after `return'.
3895
3896 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3897
3898 * machmode.def: Correct comment.
3899
3900 2000-10-16 Rodney Brown <RodneyBrown@mynd.com>
3901
3902 * print-rtl.c (print_rtx_head): Constify.
3903 * rtl.h (print_rtx_head): Similarly.
3904
3905 * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
3906 Constify char * return value.
3907 * config/pa/pa/pa.c
3908 (output_64bit_and, output_64bit_ior): Constify char * return value.
3909 (pa_can_combine_p): Make static.
3910 (function_arg): Decorate unused `named' argument. Fix comment typo.
3911 (function_arg_partial_nregs): Decorate unused `named' argument.
3912
3913 2000-10-16 Joseph S. Myers <jsm28@cam.ac.uk>
3914
3915 * c-common.c (format_check_results): New structure.
3916 (finish_dollar_format_checking): Adjust to take a
3917 format_check_results * parameter.
3918 (check_format_info, check_format_info_recurse,
3919 check_format_info_main): Split check_format_info into three
3920 functions, the main checking going in check_format_info_main.
3921 Recurse when any reduction of the format string argument towards a
3922 string literal is done; go down both branches of a conditional
3923 expression. Don't warn for extra format arguments or empty format
3924 strings if they only occur in some branches of a conditional
3925 expression.
3926
3927 2000-10-16 Kazu Hirata <kazu@hxi.com>
3928
3929 * config/h8300/h8300.c: Remove obstack. Include ggc.h.
3930
3931 2000-10-16 Jakub Jelinek <jakub@redhat.com>
3932
3933 * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
3934
3935 2000-10-15 Diego Novillo <dnovillo@cygnus.com>
3936
3937 * i386.md (*movsi_or): Switch operand order for intel syntax.
3938
3939 2000-10-14 Joseph S. Myers <jsm28@cam.ac.uk>
3940
3941 * PROBLEMS: Remove.
3942
3943 * gcc.texi (Contributing): Update.
3944
3945 2000-10-13 Diego Novillo <dnovillo@cygnus.com>
3946
3947 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
3948 appropriate assembler dialect.
3949
3950 2000-10-13 Alexandre Oliva <aoliva@redhat.com>
3951
3952 * c-common.c (c_expand_builtin): PARAMS-ize prototype.
3953
3954 2000-10-12 Marek Michalkiewicz <marekm@linux.org.pl>
3955
3956 * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
3957 constants 1 and 2 to NO_LD_REGS.
3958
3959 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3960
3961 * Makefile.in (c-parse.c, tradcif.c): Create atomically.
3962
3963 * objc/Make-lang.in (objc-parse.c): Likewise.
3964
3965 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
3966
3967 * arm.c: Include obstack.h
3968 (minipool_obstack, minipool_startobj): Define.
3969 (arm_add_gc_roots): Initialize them.
3970 (create_fix_barrier): Use our new obstack.
3971 (push_minipool_barrier, push_minipool_fix): Likewise.
3972 (arm_reorg): Release obstack memory.
3973
3974 2000-10-13 Jakub Jelinek <jakub@redhat.com>
3975
3976 * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
3977 (prologue, exception_receiver, builtin_setjmp_receiver): New
3978 patterns.
3979 * config/sparc/sparc.h (FINALIZE_PIC): Remove.
3980 * config/sparc/sparc-protos.h (finalize_pic): Remove.
3981 (load_pic_register): New prototype.
3982 * config/sparc/sparc.c (pic_setup_code): Remove.
3983 (finalize_pic): Rename to...
3984 (load_pic_register): ...this function.
3985 Don't look for nonlocal_goto_receivers and emit pic setup code
3986 directly. Don't check current_function_uses_pic_offset_table.
3987
3988 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
3989
3990 * tree.h (struct obstack): Declare.
3991
3992 2000-10-12 Mark Mitchell <mark@codesourcery.com>
3993
3994 Remove obstacks.
3995 * Makefile.in (ggc-callbacks.o): Remove target.
3996 (flow.o): Depend on GGC_H.
3997 * alias.c (init_alias_analysis):
3998 Remove ggc_p conditionals.
3999 (end_alias_analysis): Likewise.
4000 * basic-block.h (init_flow): New function.
4001 (allocate_reg_life_data): Declare.
4002 * bb-reorder.c (function_obstack): Replace with ...
4003 (flow_obstack): ... new variable.
4004 (fixup_reorder_chain): Use it.
4005 * c-decl.c (ggc_p): Remove.
4006 (caller-save.c): Don't call oballoc/obfree.
4007 * combine.c (struct
4008 undobuf): Remove storage.
4009 (try_combine): Don't call oballoc.
4010 (undo_all): Don't call obfree.
4011 * cse.c (insert): Use xmalloc, not
4012 oballoc.
4013 (cse_main): Adjust accordingly.
4014 * dwarf2out.c (save_rtx): Remove
4015 obstack code.
4016 (dwarf2out_init): Remove ggc_p conditionals.
4017 * emit-rtl.c (rtl_obstack): Remove.
4018 (gen_rtx_CONST_INT): Remove ggc_p conditionals.
4019 (make_insn_raw): Likewise.
4020 (emit_insn_before): Likewise.
4021 (emit_insn_after): Likewise.
4022 (emit_insn): Likewise.
4023 (gen_sequence): Likewise.
4024 (copy_insn_1): Remove handling of `b' RTL components.
4025 (init_emit_once): Remove ggc_p conditionals.
4026 * except.c (create_rethrow_ref): Don't fool with obstacks.
4027 (add_partial_entry): Likewise.
4028 (call_get_eh_context): Likewise.
4029 (begin_protect_partials): Likewise.
4030 (protect_with_terminate): Likewise.
4031 * explow.c
4032 (plus_constant_wide): Likewise.
4033 * expr.c (init_expr_once):
4034 Likewise.
4035 (emit_block_move): Likewise.
4036 (clear_storage): Likewise.
4037 (expand_expr): Likewise.
4038 * flow.c (function_obstack): Remove.
4039 (flow_obstack): New variable.
4040 (flow_firstobj): Likewise.
4041 (create_base_block): Use the flow_obstack.
4042 (split_block): Likewise.
4043 (split_edge): Likewise.
4044 (calculate_global_regs_live): Likewise.
4045 (allocate_bb_life_data): Make it static. Likewiwse.
4046 (init_flow): New function.
4047 (size_int_type_wide): Remove ggc_p conditionals.
4048 * function.c
4049 (push_function_context_to): Don't call save_tree_status.
4050 (pop_function_context_from): Or restore_tree_status.
4051 (assign_stack_local_1): Don't call push_obstacks.
4052 (find_fixup_replacement): Use xmalloc.
4053 (fixup_var_refs_insns): Free the storage.
4054 (insns_for_mem_walk): Don't mess with obstacks.
4055 (instantiate_decls): Likewise.
4056 (trampoline_address): Likewise.
4057 (expand_function_end): Likewise.
4058 * function.h (sturct function):
4059 Remove obstack-related variables.
4060 (save_tree_status): Don't declare.
4061 (restore_tree_status): Likewise.
4062 * gcse.c (compute_can_copy):
4063 Don't call oballoc/obfree.
4064 * genattrtab.c (operate_exp): Remove
4065 ggc_p conditionals.
4066 (simplify_cond): Likewise.
4067 (simplify_test_exp): Don't mess with obstacks.
4068 (optimize_attrs): Likewise.
4069 * gengenrtl.c (gendef): Don't include
4070 ggc_p conditionals.
4071 * ggc-callbacks.c (ggc_p): Remove.
4072 * ggc-none.c (ggc_p): Remove.
4073 * ggc.h (ggc_p): Don't declare.
4074 * integrate.c (save_for_inline): Don't mess with obstacks.
4075 (integrate_decl_tree): Likewise.
4076 (output_inline_function): Likewise.
4077 * lists.c
4078 (init_EXPR_INSN_LIST_cache): Likewise.
4079 * loop.c (temp_obstack):
4080 Remove.
4081 (rtl_obstack): Likewise.
4082 (init_loop): Don't mess with obstacks.
4083 (reg_address_cost): Free BIVs and GIVs.
4084 (check_insns_for_bivs): Use xmalloc, not oballoc.
4085 (find_mem_givs): Likewise.
4086 (record_biv): Likewise.
4087 (general_induction_var): Likewise.
4088 (product_cheap_p): Likewse.
4089 * optabs.c (init_one_libfunc): Remove
4090 ggc_p conditional.
4091 * print-tree.c (debug_tree): Don't use
4092 oballoc/obfree.
4093 (print_node): Likewise.
4094 * profile.c (output_func_start_profiler):
4095 Remove call to temporary_allocation.
4096 * reload1.c
4097 (eliminate_regs_in_insn): Don't mess with obstacks.
4098 * resource.c
4099 (mark_target_live_regs): Use xmalloc.
4100 (free_resource_info): Free the memory.
4101 * rtl.c (rtl_obstack):
4102 Remove.
4103 (rtvec_alloc): Don't mess with obstacks.
4104 (rtx_alloc): Likewise.
4105 (rtx_free): Remove.
4106 (copy_rtx): Don't handle `b' cases.
4107 (read_rtx): Use a local rtl_obstack.
4108 * rtl.h (oballoc): Remove.
4109 (obfree): Likewise.
4110 (pop_obstacks): Likewise.
4111 (push_obstacks): Likewise.
4112 (allocate_bb_life_data): Likewise.
4113 (allocate_reg_life_data): Likewise.
4114 (rtx_free): Likewise.
4115 * sdbout.c (sdbout_queue_anonymous_type):
4116 Use tree_cons, not saveable_tree_cons.
4117 * simplify-rtx.c
4118 (cselib_init): Don't mess with obstacks.
4119 * stmt.c
4120 (mark_block_nesting): Mark the label_chain.
4121 (epxand_label): Use ggc_alloc, not oballoc.
4122 (clear_last_expr): Don't mess with obstacks.
4123 (expand_decl_cleanup): Likewise.
4124 (expand_dcc_cleanup): Likewise.
4125 (expand_dhc_cleanup): Likewise.
4126 (expand_anon_union_decl): Likewise.
4127 (add_case_node): Use xmalloc, not oballoc.
4128 (free_case_nodes): New function.
4129 (expand_end_case): Call it.
4130 * stor-layout.c (layout_type): Don't
4131 mess with obstacks.
4132 (layout_type): Likewise.
4133 * toplev.c (wrapup_global_declarations):
4134 Likewise.
4135 (compile_file): Remove ggc_p conditionals.
4136 (rest_of_compilation): Call init_flow. Remove ggc_p conditionals.
4137 (decode_f_option): Remove ggc_p conditionals.
4138 * tree.c
4139 (function_maybepermanent_obstack): Remove.
4140 (maybepermanent_obstack): Likewise.
4141 (function_obstack): Likewise.
4142 (tmeporary_obstack): Likewise.
4143 (momentary_obstack): Likewise.
4144 (temp_decl_obstack): Likewise.
4145 (saveable_obstack): Likewise.
4146 (rtl_obstack): Likewise.
4147 (current_obstack): Likewise.
4148 (expression_obstack): Likewise.
4149 (struct obstack_stack): Likewise.
4150 (obstack_stack): Likewise.
4151 (obstack_stack_obstack): Likewise.
4152 (maybepermanent_firstobj): Likewise.
4153 (temporary_firstobj): Likewise.
4154 (momentary_firstobj): Likewise.
4155 (temp_decl_firstobj): Likewise.
4156 (momentary_function_firstobj): Likewise.
4157 (all_types_permanent): Likewise.
4158 (struct momentary_level): Likewise.
4159 (momentary_stack): Likewise.
4160 (init_obstacks): Remove initialization of removed obstacks.
4161 (save_tree_status): Remove.
4162 (restore_tree_status): Likewise.
4163 (temporary_allocation): Liekwise.
4164 (end_temporary_allocation): Liekwise.
4165 (resume_temporary_allocation): Likewise.
4166 (saveable_allocation): Likewise.
4167 (push_obstacks): Likewise.
4168 (push_obstacks_nochange): Likewise.
4169 (pop_obstacks): Likewise.
4170 (allocation_temporary_p): Likewise.
4171 (permanent_allocation): Likewise.
4172 (preserve_data): Likewise.
4173 (preserve_initializer): Likewise.
4174 (rtl_in_current_obstack): Likewise.
4175 (rtl_in_saveable_obstack): Likewise.
4176 (oballoc): Likewise.
4177 (obfree): Likewise.
4178 (savealloc): Likewise.
4179 (expralloc): Likewise.
4180 (print_obstack_name): Likewise.
4181 (debug_obstack): Likewise.
4182 (object_permanent_p): Likewise.
4183 (push_momentary): Likewise.
4184 (perserve_momentary): Likewise.
4185 (clear_momentary): Likewise.
4186 (pop_momentary): Likewise.
4187 (pop_momentary_nofree): Likewise.
4188 (suspend_momentary): Likewise.
4189 (resume_momentary): Likewise.
4190 (make_node): Don't set TREE_PERMANENT.
4191 (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK.
4192 Don't set TREE_PERMANENT.
4193 (get_identifier): Remove ggc_p conditionals.
4194 (build_string): Likewise.
4195 (make_tree_vec): Likewise.
4196 (build_decl_list): Remove.
4197 (build_expr_list): Likewise.
4198 (tree_cons): Remove ggc_p conditionals.
4199 (decl_tree_cons): Remove.
4200 (expr_tree_cons): Likewise.
4201 (perm_tree_cons): Likewise.
4202 (temp_tree_cons): Likewise.
4203 (saveable_tree_cons): Likewise.
4204 (build1): Remove ggc_p conditionals.
4205 (build_parse_node): Likewise.
4206 (build_type_attribute_variant): Don't mess with obstacks.
4207 (build_type_copy): Likewise.
4208 (type_hash_canon): Likewise.
4209 (build_pointer_type): Likewise.
4210 (build_reference_type): Likewise.
4211 (build_index_type): Likewise.
4212 (build_range_type): Likewise.
4213 (dump_tree_statistics): Don't print obstack information.
4214 * tree.h
4215 (struct tree_common): Remove permanent_flag.
4216 (TREE_PERMANENT): Remove.
4217 (TREE_SET_PERMANENT): Likewise.
4218 (TYPE_OBSTACK): Likewise.
4219 (struct tree_type): Remove obstack.
4220 (oballoc): Remove.
4221 (savealloc): Likewise.
4222 (build_decl_list): Likewise.
4223 (build_expr_list): Likewise.
4224 (perm_tree_cons): Likewise.
4225 (temp_tree_cons): Likewise.
4226 (saveable_tree_cons): Likewise.
4227 (decl_tree_cons): Likewise.
4228 (expr_tree_cons): Likewise.
4229 (suspend_momentary): Likewise.
4230 (allocation_temporary_p): Likewise.
4231 (resume_momentary): Likewise.
4232 (push_obstacks_nochange): Likewise.
4233 (permanent_allocation): Likewise.
4234 (push_momentary): Likewise.
4235 (clear_momentary): Likewise.
4236 (pop_momentary): Likewise.
4237 (end_temporary_allocation): Likewise.
4238 (pop_obstacks): Likewise.
4239 (push_obstacks): Likewise.
4240 (pop_momentary_nofree): LIkewise.
4241 (preserve_momentary): Likewise.
4242 (saveable_allocation): Likewise.
4243 (temporary_allocation): Likewise.
4244 (resume_temporary_allocation): Likewise.
4245 (perserve_initializer): Likewise.
4246 (debug_obstack): Likewise.
4247 (rtl_in_current_obstack): Likewise.
4248 (rtl_in_saveable_obstack): Likewise.
4249 (obfree): Likewise.
4250 * varasm.c (current_obstack): Remove.
4251 (saveable_obstack): Remove.
4252 (rtl_obstack): Remove.
4253 (immed_double_const): Don't mess with obstacks.
4254 (immed_real_cons): Likewise.
4255 (output_constant_def): Likewise.
4256 (init_varasm_status): Use xcalloc.
4257 (mark_pool_constant): Mark the pool constant itself.
4258 (free_varasm_status): Free memory.
4259 (decode_rtx_const): Call bzero directly, rather than expanding it
4260 inline.
4261 (record_rtx_const): Don't mess with obstacks.
4262 (force_const_mem): Likewise.
4263 * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
4264 conditionals.
4265 (aof_pic_entry): Likewise.
4266 * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
4267 * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
4268 * config/pa/pa.c (saveable_obstack): Remove.
4269 (rtl_obstack): Likewise.
4270 (current_obstack): Likewise.
4271 (output_call): Don't mess with obstacks.
4272 (hppa_encode_label): Remove ggc_p conditionals.
4273 * config/romp/romp.c (get_symref): Don't mess with obstacks.
4274 * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
4275 (rs6000_encode_section_info): Likewise.
4276 * config/sh/sh.c (get_fpscr_rtx): Likewise.
4277
4278 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka <jh@suse.cz>
4279
4280 * i386.md (adddi3, subdi3 splitters): Update for new pattern.
4281 (addsi3_cc, addqi3_cc, subsi3_cc): Remove
4282 (addsi3_carry): Canonicalize.
4283 (addqi_5): Remove '*'.
4284 (sbb pattern): Canonicalize.
4285
4286 * i386.md (cmp to inc/add peep2): New.
4287
4288 2000-10-12 Richard Earnshaw <rearnsha@arm.com>
4289
4290 * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
4291 the exit block.
4292
4293 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4294
4295 * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
4296 * README.TRAD, TESTS.FLUNK: Remove.
4297
4298 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4299
4300 * c-common.c (decl_attributes): Don't allow strftime formats with
4301 first_arg_num nonzero.
4302 (check_format_info): Set wanted_type and wanted_type_name to zero
4303 before they are possibly assigned and used.
4304
4305 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4306
4307 * c-common.c (scanf_flag_specs): Add flags ' and I.
4308 (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
4309 or the ^ and # flags together.
4310 (scan_char_table): Handle the ' and I flags.
4311 (format_types): Add ' and I flags for scanf.
4312
4313 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
4314
4315 * c-common.c (print_char_table): Use the unpromoted type for
4316 lengths "h" and "hh" with conversions dioxXu.
4317 (check_format_types): Apply the default argument promotions where
4318 the wanted type is not a pointer target.
4319
4320 2000-10-11 Michael Meeks <mmeeks@gnu.org>
4321 Joseph S. Myers <jsm28@cam.ac.uk>
4322
4323 * c-typeck.c (check_modify_expr): New function.
4324 (build_modify_expr): Call it if warn_sequence_point.
4325 * c-decl.c (warn_sequence_point): New variable.
4326 (c_decode_option): Handle -Wsequence-point and
4327 -Wno-sequence-point. Enable -Wsequence-point as part of -Wall.
4328 * c-tree.h (warn_sequence_point): Declare.
4329 * invoke.texi (-Wsequence-point): Document.
4330 * toplev.c (documented_lang_options): Add -Wsequence-point and
4331 -Wno-sequence-point.
4332 Original work by Michael Meeks, 16 Jun 1998.
4333
4334 Wed Oct 11 06:15:41 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4335
4336 * tree.c (get_narrower): Don't look at precision of field if
4337 not laid out yet.
4338
4339 Tue Oct 10 23:14:33 2000 Denis Chertykov <denisc@overta.ru>
4340
4341 * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
4342 declaration for data with "progmem" attribute.
4343
4344 2000-10-09 Marek Michalkiewicz <marekm@linux.org.pl>
4345
4346 * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
4347 Correct insn length if shift count is a memory operand.
4348 * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
4349 (*iorhi3_clobber): Change lo8 to hi8.
4350 (zero_extendhisi2): Change %B0 to %A1.
4351 (ashlhi3, ashrhi3): Correct insn length.
4352 (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
4353 from "clobber" to "set_n" in some alternatives.
4354
4355 2000-10-10 Jakub Jelinek <jakub@redhat.com>
4356
4357 * reload1.c (calculate_needs_all_insns): If deleting an instruction,
4358 remove its insn_chain structure as well.
4359
4360 2000-10-09 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4361
4362 * dbxout.c (dbxout_source_line): Remove extra tab.
4363
4364 2000-10-09 Hans-Peter Nilsson <hp@bitrange.com>
4365
4366 * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
4367
4368 2000-10-09 Richard Henderson <rth@cygnus.com>
4369
4370 * Makefile.in (LANG_LIB2FUNCS): Remove.
4371 (LIB2FUNCS): Remove _pure.
4372 (LIB2ADD): Remove LANG_LIB2FUNCS.
4373 (stage_a): Don't set LANG_LIB2FUNCS.
4374 * libgcc2.c (__terminate): Mark noreturn.
4375 (__pure_virtual): Remove.
4376 * mklibgcc.in: Remove LIB2ADD .txt processing.
4377
4378 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
4379
4380 * arm.md (push_multi): Revert unintended change.
4381
4382 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
4383
4384 * arm.c: Miscellaneous white space and comment clean-ups. No
4385 functional change.
4386 * arm.md: Likewise.
4387
4388 2000-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4389
4390 * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
4391 STRING_CST by calling combine_strings.
4392
4393 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
4394
4395 * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
4396 (thumb_output_move_mem_multiple): Support new insn format.
4397 * arm.md (movmem12b): Use SSA compatible format.
4398 (movmem8b): Likewise.
4399
4400 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
4401
4402 * arm.md (predicable): New attribute, default to "no".
4403 (all patterns): Mark as predicable if appropriate.
4404 (conditional execution splits): Split using predication format.
4405 (define_cond_exec): Define.
4406 * arm.c (arm_print_operand): handle insn predicate.
4407
4408 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4409
4410 * README.NS32K: Remove file.
4411
4412 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4413
4414 * README-bugs: Remove file.
4415
4416 2000-10-08 Philipp Thomas <pthomas@suse.de>
4417 * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
4418 for test.
4419 * configure: Rebuilt.
4420
4421 2000-10-08 Philipp Thomas <pthomas@suse.de>
4422 * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
4423 disable catalog building if no suitable program was found.
4424 Move warning message from here
4425 (AM_GNU_GETTEXT): To here.
4426 * configure: Rebuilt.
4427
4428 2000-10-08 Philipp Thomas <pthomas@suse.de>
4429 * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
4430 different cache variables.
4431 (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
4432 uses different cache variables.
4433 (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
4434 * configure: Regenerated.
4435
4436 2000-10-08 Richard Henderson <rth@cygnus.com>
4437
4438 * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
4439 * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
4440 * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
4441 Use SHLIB_EXT.
4442
4443 * config/t-linux (SHLIB_EXT): New.
4444 (SHLIB_LINK): Use the entire build command, with substitutions.
4445 (SHLIB_LIBS): Remove.
4446 * config/alpha/t-osf4: Likewise.
4447 * config/mips/t-iris6: Likewise.
4448 * config/sparc/t-sol2: Likewise, but move shlib stuff...
4449 * config/sparc/t-slibgcc-sld: ...here.
4450 * config/sparc/t-slibgcc: New file.
4451
4452 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
4453
4454 * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
4455 * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
4456 CTI_UINTMAX_TYPE.
4457 (intmax_type_node, uintmax_type_node): Define.
4458 * c-common.c (decl_attributes): If pedantic, warn if `mode'
4459 attributes create a type wider than intmax_t.
4460 (T_IM, T_UIM): Define properly.
4461 * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
4462 defined.
4463 (init_decl_processing): Initialize intmax_type_node and
4464 uintmax_type_node.
4465 * c-lex.c (lex_number): When pedantic and warning for integer
4466 constants that are too large, in C99 mode warn for those that have
4467 a type wider than long long.
4468
4469 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
4470
4471 * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
4472 FMT_FLAG_FANCY_PERCENT_OK): Define.
4473 (format_char_info): Add flag "4" to comment.
4474 (format_flag_spec, format_flag_pair): New structures.
4475 (format_kind_info): Add additional fields to control format
4476 checking.
4477 (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
4478 scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
4479 arrays.
4480 (time_char_table): Use "4" flag to handle %Ey.
4481 (format_types): Add entries for new fields.
4482 (get_flag_spec): New function.
4483 (check_format_info): Increase size of flag_chars[] to 256.
4484 Control format checking using the new fields of a format_kind_info
4485 and the new tables; remove all conditionals on printf_format_type,
4486 scanf_format_type or strftime_format_type. Handle all details of
4487 bad combinations of flags (including width, precision and strftime
4488 modifiers) through data rather than ad hoc code. Handle all
4489 details of standard versions in which flags appeared through
4490 data. Use the "4" flag.
4491
4492 2000-10-07 Will Cohen <wcohen@redhat.com>, Kazu Hirata <kazu@hxi.com>
4493
4494 * config/h8300/h8300.md: Remove the memory alternative and correct
4495 the insn lengths in the templates for sign extention and zero
4496 extention.
4497
4498 2000-10-07 Richard Henderson <rth@cygnus.com>
4499
4500 * calls.c (expand_call): Disallow sibcalls to noreturn functions.
4501 * flow.c (make_edges): Revert last change.
4502
4503 * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
4504 TREE_THIS_VOLATILE.
4505 * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
4506
4507 2000-10-06 David O'Brien <obrien@dragon.nuxi.com>
4508
4509 * config/alpha/elf.h: Standardize the formatting.
4510
4511 2000-10-06 David O'Brien <obrien@FreeBSD.org>
4512
4513 * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
4514 #undef.
4515
4516 2000-10-06 Richard Henderson <rth@cygnus.com>
4517
4518 * function.c (diddle_return_value): Examine
4519 current_function_return_rtx instead of the DECL_RESULT.
4520 (expand_function_end): Handle reloading DECL_RESULT from memory
4521 into a hard register. Query promote_mode for sign of mismatched
4522 modes.
4523
4524 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
4525
4526 * haifa-sched.c (schedule_insns): Fix typo in freeing
4527 forward_dependency_cache.
4528
4529 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
4530
4531 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
4532 `TARGET_SH2' as a condition.
4533
4534 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
4535
4536 * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
4537 forward_dependency_cache): New variables.
4538 (add_dependence, remove_dependence): Use anti_dependency_cache and
4539 output_dependency_cache.
4540 (compute_block_forward_dependences): Use forward_dependency_cache.
4541 (schedule_insns): Allocate and free memory for anti/output/forward
4542 dependencies caches.
4543
4544 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
4545
4546 * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
4547 `! TARGET_SH1'. Reindent.
4548
4549 2000-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4550
4551 * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
4552 Move functions from here ...
4553
4554 * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
4555 ... to here.
4556 (c_expand_builtin): New function.
4557 (init_function_format_info): Don't set `check_function_format_ptr'.
4558 (c_common_nodes_and_builtins): Set built_in_class type for
4559 printf/__builtin_printf to BUILT_IN_FRONTEND.
4560 (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
4561
4562 * c-common.h (build_function_call): Declare.
4563
4564 * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
4565 to `lang_expand_expr' rather than `expand_builtin'.
4566
4567 * tree.c (check_function_format_ptr): Delete.
4568
4569 * tree.h (check_function_format_ptr): Likewise.
4570
4571 2000-10-06 Hans-Peter Nilsson <hp@bitrange.com>
4572
4573 * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
4574 DW_OP_bregx when cfa->reg > 31.
4575
4576 * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
4577 break.
4578
4579 2000-10-05 Richard Henderson <rth@cygnus.com>
4580
4581 * c-decl.c (warn_missing_noreturn): Remove.
4582 (c_expand_body): Don't set or check can_reach_end.
4583 * c-tree.h (warn_missing_noreturn): Move ...
4584 * flags.h: ... here.
4585 (can_reach_end): Remove.
4586 * flow.c (check_function_return_warnings): New.
4587 (make_edges): No edge to exit for noreturn sibcalls.
4588 * function.c (expand_function_end): Save the return value
4589 clobber instruction.
4590 (mark_function_status): Mark it.
4591 * function.h (struct function): Add x_clobber_return_insn.
4592 * jump.c (can_reach_end): Remove.
4593 (calculate_can_reach_end): Remove.
4594 (jump_optimize_1): Don't call it.
4595 * output.h (check_function_return_warnings): Declare.
4596 * toplev.c (warn_missing_noreturn): Move from c-decl.c
4597 (rest_of_compilation): Call check_function_return_warnings.
4598
4599 2000-10-05 Richard Henderson <rth@cygnus.com>
4600
4601 * Makefile.in (NM_FOR_TARGET): New.
4602 (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
4603 (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
4604 * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map. Depend the
4605 shared library build on that and EXTRA_MULTILIB_PARTS.
4606 * mkmap-flat.awk: New file.
4607 * mkmap-symver.awk: New file.
4608 * libgcc-std.ver: New file.
4609 * config/libgcc-glibc.ver: New file.
4610 * config/ia64/libgcc-ia64.ver: New file.
4611 * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4612 (SHLIB_LINK): Add --version-script.
4613 * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
4614 * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4615 * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4616 (SHLIB_LINK): Add -M.
4617
4618 2000-10-05 Richard Henderson <rth@cygnus.com>
4619
4620 * Makefile.in (LIB2FUNCS): Add _clz.
4621 * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
4622 (__clz_tab): Put in its own unit, non-static.
4623 * libgcc2.h: Always include longlong.h.
4624
4625 * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
4626 a zero instead of -1.
4627 (count_trailing_zeros): Likewise.
4628
4629 2000-10-05 Richard Henderson <rth@cygnus.com>
4630
4631 * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
4632 when second op1 is const0_rtx. Validate op0 as a register.
4633 * config/alpha/alpha.md (setcc_internal): Don't allow constants
4634 in the first argument of the compare.
4635 (setcc_swapped_internal): Likewise.
4636 (setne_internal): Likewise.
4637
4638 2000-10-05 Geoff Keating <geoffk@cygnus.com>
4639
4640 * tree.c (tree_size): New function split out of copy_node.
4641 (make_node): Remove obstack handling. Use tree_size.
4642 (copy_node): Use tree_size.
4643 * tree.h: Prototype tree_size.
4644
4645 2000-10-05 Richard Henderson <rth@cygnus.com>
4646
4647 * diagnostic.c (output_format): Add missing break.
4648
4649 2000-10-05 Jim Wilson <wilson@cygnus.com>
4650
4651 * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
4652 SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
4653 sequence insn to INSN, and delete last sequence insn.
4654
4655 2000-10-05 Phil Edwards <pme@gcc.gnu.org>
4656
4657 * gcc.c (main): Include generated configargs.h header
4658 and use arguments in '-v' output.
4659
4660 Thu Oct 5 16:16:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4661
4662 * gcc.c: Move data on prefixes forward in file and reorganize.
4663 (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
4664 Always define, but make null if no value.
4665 (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
4666 and "md_startfile_prefix_1".
4667 (main): Check whether md_exec_prefix and the others are the
4668 null string rather than whether the macro is defined.
4669
4670 Thu Oct 5 19:04:18 2000 J"orn Rennecke <amylaar@redhat.co.uk>
4671
4672 * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
4673 from PSImode to SImode.
4674
4675 2000-10-05 Jakub Jelinek <jakub@redhat.com>
4676
4677 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
4678 from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
4679 * dwarf2out.c (add_const_value_attribute): Divide by 4, not
4680 sizeof(long).
4681
4682 Thu Oct 5 09:31:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4683
4684 * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
4685 negation in proper type.a
4686
4687 2000-10-04 Richard Henderson <rth@cygnus.com>
4688
4689 * configure.in (enable-shared): New.
4690 * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
4691 (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
4692 * mklibgcc.in: Use them to link shared a libgcc.
4693 * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
4694 * config/alpha/t-ieee (SHLIB_MULTILIB): New.
4695 * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
4696 * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
4697
4698 * configure.in (alpha-osf*): Use t-osf and x-osf.
4699 * config/alpha/t-osf: New file.
4700 * config/alpha/t-osf4: New file.
4701 * config/alpha/x-osf: New file.
4702 * config/alpha/x-alpha: Remove file.
4703
4704 2000-10-04 Will Cohen <wcohen@redhat.com>
4705
4706 * c-typeck.c (process_init_element): Added warning for zero-length
4707 array.
4708
4709 * extend.texi (Zero Length): State that static initializers for
4710 zero-length arrays are not allowed.
4711
4712 Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka <jh@suse.cz>
4713
4714 * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
4715 to come last.
4716
4717 2000-10-03 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4718
4719 * config/float-c4x.h: New.
4720 * configure.in (c4x-*): Set float_format to c4x.
4721 * configure: Regenerate.
4722
4723 2000-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4724
4725 * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
4726 compilation for solaris versions 2.7 and greater.
4727
4728 2000-10-02 Marc Espie <espie@openbsd.org>
4729
4730 * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
4731 instead of redefining from scratch.
4732
4733 2000-10-02 David O'Brien <obrien@dragon.nuxi.com>
4734
4735 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
4736
4737 2000-10-01 Mark Mitchell <mark@codesourcery.com>
4738
4739 * config/ns32k/genix.h: Remove.
4740 * config/ns32k/x-genix: Likewise.
4741 * config/ns32k/xm-genix.h: Likewise.
4742 * config/fx80: Remove all filee in directory.
4743 * config/pyr: Likewise.
4744 * config/tahoe: Likewise.
4745 * config/gmicro: Likewise.
4746 * config/spur: Likewise.
4747 * configure.in: Remove configury bits for above targets.
4748 * configure: Regenerated.
4749
4750 * configure.in: Don't configure chill by default.
4751 * configure: Regenerated.
4752
4753 * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
4754 (lang_mark_false_label_stack): Remove.
4755 * c-lex.c (init_c_lex): Add file_info_tree as GC root. Allocate
4756 <top level> string in GC area.
4757 (mark_splay_tree_node): New function.
4758 (mark_splay_tree): Likewise.
4759 * except.c (mark_eh_status): Only call lang_mark_false_label_stack
4760 if it exists.
4761 * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
4762 * ggc-common.c (lang_mark_false_label_stack): Change type.
4763 * ggc.h (ggc_alloc_string): Add comment.
4764 (ggc_strdup): New function.
4765
4766 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru>
4767
4768 * config/avr/avr.h (BRANCH_COST): Define as 0.
4769
4770 * config/pdp11/pdp11.c: #include "tree.h" added.
4771
4772 2000-09-30 Marek Michalkiewicz <marekm@linux.org.pl>
4773
4774 * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
4775 ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
4776 with known shift count.
4777 * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
4778 New alternative for shift count 2 with no scratch register.
4779 (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
4780 "set_n" for shift counts 1 and 2.
4781
4782 2000-09-30 Geoff Keating <geoffk@cygnus.com>
4783
4784 * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE. Calculate
4785 the mask value from the individual SET operations.
4786 (return_internal_si): Move the USE after the RETURN.
4787 (return_internal_di): Likewise.
4788 (return_and_restore_fpregs_si): Likewise.
4789 (return_and_restore_fpregs_di): Likewise.
4790 (return_eh_si): Likewise.
4791 (return_eh_di): Likewise.
4792 * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
4793 or check, the USE.
4794 (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
4795 Don't generate a PARALLEL around a single operation movsi_to_cr.
4796 Generate the RETURN first in any PARALLELs.
4797
4798 * rtlanal.c (single_set_1): Use fatal_insn to display the
4799 invalid insn. Check for more cases when a USE or CLOBBER occurs
4800 before a SET.
4801 * Makefile.in: Update dependencies for rtlanal.o.
4802
4803 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
4804
4805 * i386.c: Move include of "config.h" to before that of <setjmp.h>.
4806
4807 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
4808
4809 * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
4810 Consistently use @email for formatting email addresses.
4811
4812 2000-09-29 Richard Henderson <rth@cygnus.com>
4813
4814 * cse.c (notreg_cost): New argument outer.
4815 (COST): Pass in SET to notreg_cost
4816 (COST_IN): New.
4817 (fold_rtx): Use COST_IN. Prefer constants when costs
4818 are the same.
4819
4820 2000-09-29 David Edelsohn <edelsohn@gnu.org>
4821
4822 * fixinc/inclhack.def (broken_cabs): Generalize regex.
4823 * fixinc/fixincl.x: Regenerate.
4824
4825 2000-09-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4826
4827 * loop.c (check_final_value): A GIV is not replaceable if used
4828 before set.
4829
4830 Fri Sep 29 10:04:12 2000 Jeffrey A Law (law@cygnus.com)
4831
4832 * version.c: Bump to gcc-2.97.
4833
4834 Frs Sep 29 13:37:59 MET DST 2000 Jan Hubicka <jh@suse.cz>
4835
4836 * final.c (final_scan_insn): Remove extra extract_insn call;
4837 Use caching for constrain_operands.
4838 (cleanup_subreg_operands): Use caching for extract_insn.
4839 * recog.c (constrain_operands_cached): New.
4840 * recog.h (constrain_operands_cached): Declare.
4841 * i386.c (ix86_attr_length_immediate_default,
4842 ix86_attr_length_address_default, ix86_agi_dependant): Cache
4843 extract_insn call.
4844
4845 * recog.c (asm_noperands): Tweak.
4846 (extract_insn): Do not call asm_noperads for non-asm instructions.
4847
4848 Fri Sep 29 13:20:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
4849
4850 * recog.c (recog_memoized): Rename to recog_memoized_1.
4851 * recog.h (recog_memoized): Rename to recog_memoized_1.
4852 (recog_memoized): New macro.
4853 * rtl.h (single_set): Rename to single_set_1
4854 (single_set): New macro.
4855 * rtlanal.c (single_set): Rename to single_set_1; expect clobbers
4856 to be last.
4857
4858 * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
4859 Do not use match_dup of input operands at outputs.
4860 Use register_operand for memory expression.
4861 (rep_movsi): Put use last, canonicalize.
4862 Use register_operand for memory expression.
4863 (rep_movqi): Put use last.
4864 Use register_operand for memory expression.
4865 (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
4866 of input operands at outputs. Use register_operand for memory
4867 expression.
4868 (rep_stossi): Put use last; canonicalize; fix match_dup in
4869 the address expression
4870 (rep_stosqi): Likewise.
4871 (memcmp expander): Update calls.
4872 (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
4873 the clobbers.
4874
4875 * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
4876 VOIDmode.
4877 (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
4878
4879 2000-09-28 David O'Brien <obrien@FreeBSD.org>
4880
4881 * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
4882 Contains the old contents of config/i386/freebsd.h
4883 * config/i386/freebsd.h: Now the ELF rather than a.out config file.
4884 Contains the old contents of config/i386/freebsd-elf.h
4885 * config/i386/freebsd-elf.h: Retire this file -- contents moved to
4886 config/i386/freebsd.h.
4887 * configure.in: Adjust for above changes.
4888 * po/POTFILES.in: Likewise.
4889 * po/en_GB.po: Likewise.
4890 * po/gcc.pot: Likewise.
4891 * configure: Rebuilt.
4892
4893 2000-09-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4894
4895 * doloop.c (doloop_modify): Prevent delete_insn() from
4896 deleting too much. Prefer loop->top over loop->start as
4897 target for the new JUMP insn.
4898 (doloop_valid_p): Ignore loop with exit_count != 0.
4899
4900 2000-09-28 Philipp Thomas <pthomas@suse.de>
4901
4902 * invoke.texi (i386 Options): Add athlon to table of possible
4903 choices for -mcpu=.
4904
4905 2000-09-28 Gabriel Dos Reis <gdr@codesourcery.com>
4906
4907 * diagnostic.h (output_clear_message_text): New function.
4908 (output_message_text): New macro.
4909
4910 * diagnostic.c (clear_text_info): Rename to
4911 output_clear_message_text.
4912 (output_clear): Adjust.
4913 (output_finish): Rename to output_finalize_message. Tweek.
4914 (output_to_stream): Adjust.
4915
4916 2000-09-28 Neil Booth <neilb@earthling.net>
4917
4918 * cpperror.c (_cpp_begin_message): Do the test for suppression
4919 of warnings and pedantic warnings before the "is a warning an
4920 error" tests.
4921 * cppinit.c (cpp_handle_option): Remove surplus \n.
4922 * cpplex.c (ON_REST_ARG): Delete.
4923 (skip_block_comment): Initialise prevc.
4924 (parse_args): Improve error messages.
4925 (maybe_paste_with_next): Use CONTEXT_VARARGS rather
4926 than ON_REST_ARG.
4927 * cpplib.c (cpp_push_buffer): Fix grammar in message.
4928 * cppmain.c (main): Set callbacks for #ident and #pragma
4929 only if no_output option is false.
4930 (do_pragma_implementation): Only call the #pragma handler
4931 if it is set in the cpp_reader structure.
4932
4933 Wed Sep 27 14:00:07 2000 Donald Lindsay <dlindsay@cygnus.com>
4934
4935 * integrate.c (copy_insn_list): if an ignored return value
4936 is being clobbered, skip cloning that into the inline copy.
4937
4938 2000-09-27 Joseph S. Myers <jsm28@cam.ac.uk>
4939
4940 * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
4941 use @uref for formatting URLs.
4942
4943 2000-09-27 Mark Elbrecht <snowball3@bigfoot.com>
4944
4945 * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
4946 name and prefix.
4947
4948 Tue 26-Sep-2000 18:25:38 BST Neil Booth <neilb@earthling.net>
4949
4950 * gcc.c (cpp_options): Add spec for -ftabstop=.
4951 (invoke_as): New spec that handles invoking as.
4952 Update specs to handle -save-temps and -traditional.
4953 * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
4954 Use invoke_as.
4955 * cp/lang-specs.h, objc/lang-specs.h: Update to use
4956 invoke_as, and handle -save-temps and -traditional (if
4957 appropriate).
4958
4959 2000-09-26 Jakub Jelinek <jakub@redhat.com>
4960
4961 * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
4962 op0 is a SUBREG.
4963 (function_arg_slotno): Accept TImode/CTImode.
4964 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
4965 to UNITS_PER_WORD.
4966
4967 2000-09-26 Michael Hayes <mhayes@cygnus.com>
4968
4969 * flow.c (flow_loop_pre_header_scan): Punt if loop enters
4970 from entry block.
4971
4972 2000-09-25 Jim Wilson <wilson@cygnus.com>
4973
4974 * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
4975 (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
4976 (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
4977 (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
4978
4979 Tue 26-Sep-2000 00:16:22 BST Neil Booth <neilb@earthling.net>
4980
4981 * cpplex.c (parse_args): Don't set VOID_REST flag.
4982 (CONTEXT_VARARGS): New flag.
4983 (maybe_paste_with_next): Set context earlier in loop. Use
4984 it. Do varargs test with CONTEXT_VARARGS flag.
4985 (push_arg_context): Set CONTEXT_VARARGS flag if we're
4986 pushing an argument context for a varargs argument.
4987 * cpplib.h (VOID_REST): Delete.
4988 * gcc.dg/cpp/vararg1.c: Add test case.
4989
4990 2000-09-25 Branko Cibej <branko.cibej@hermes.si>
4991
4992 * flags.h: Declare warning flag warn_system_headers.
4993 * toplev.c: Define it.
4994 (W_options): Add option -Wsystem-headers.
4995 * diagnostic.c (count_error): Test warn_system_headers.
4996 * invoke.texi: Add description for -Wsystem-headers.
4997 * cpplib.h (cpp_options): New member warn_system_headers.
4998 * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
4999 CPP_IN_SYSTEM_HEADER.
5000 * cpplib.c (do_import, do_pragma_once): Likewise.
5001 * cpperror.c (_cpp_begin_message): Test warn_system_headers
5002 and CPP_IN_SYSTEM_HEADER.
5003 * cppinit.c (handle_option): Recognize -Wsystem_headers.
5004 (print_help): Describe -Wsystem_headers.
5005 * cpplex.c (lex_line): Reorganize condition so that warnings
5006 about C++ comments in system headers can be enabled. Remove
5007 label do_line_comment.
5008
5009 Mon 25-Sep-2000 23:38:27 BST Neil Booth <neilb@earthling.net>
5010
5011 * cpplex.c (save_comment): Only store the initial '/'
5012 now.
5013 (lex_token): Combine handling of the two comment types.
5014 Pass everything but the initial '/' to save_comment.
5015
5016 Mon 25-Sep-2000 23:31:45 BST Neil Booth <neilb@earthling.net>
5017
5018 * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
5019 _cpp_can_paste): New library-internal prototypes.
5020 * cpplex.c (dump_param_spelling, output_line_command,
5021 output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
5022 cpp_printf, cpp_output_list): Move to cppoutput.c.
5023 (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
5024 * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
5025 cppoutput.c.
5026 * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
5027 dump_param_spelling, output_line_command, cpp_scan_buffer,
5028 cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
5029 from elsewhere.
5030 * Makefile.in: Add cppoutput.c.
5031 * po/POTFILES.in: Add cppoutput.c.
5032
5033 2000-09-25 Richard Henderson <rth@cygnus.com>
5034
5035 * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
5036 * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
5037 split until after reload.
5038 (rotlsi3, rotldi3): New.
5039
5040 2000-09-25 Gabriel Dos Reis <gdr@codesourcery.com>
5041
5042 * diagnostic.c (output_last_position): Define.
5043 (set_real_maximum_length): Tweek.
5044 * diagnostic.h (output_last_position): Declare.
5045
5046 2000-09-25 Kazu Hirata <kazu@hxi.com>
5047
5048 * config/i386/i386.c: Fix formatting.
5049
5050 2000-09-24 Alan Lehotsky <alehotsky@cygnus.com>
5051
5052 * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
5053 UNITS_PER_WORD is small.
5054
5055 2000-09-25 Joseph S. Myers <jsm28@cam.ac.uk>
5056
5057 * c-common.c (format_char_info): Add flags2; update comments.
5058 (print_char_table, scan_char_table, time_char_table): Split some
5059 flags out into flags2.
5060 (check_format_info): Use flags2 for those flags, for identifying
5061 the initial character of a scanf scanset, and for identifying
5062 printf formats where the '0' flag is ignored with precision.
5063
5064 2000-09-25 Hans-Peter Nilsson <hp@axis.com>
5065
5066 Changes below marked "here" add TABs on either or both sides,
5067 covering start of line, up to any operand for all noted .*ASM.*_OP
5068 definitions. All callers changed.
5069 * tm.texi: Make documented *_ASM.*_OP:s include spacing
5070 (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
5071 BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5072 ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
5073 ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
5074 Fix typos in description for LONG_LONG_TYPE_SIZE and
5075 FINI_SECTION_ASM_OP.
5076 * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
5077 why these defaults don't have leading spacing.
5078 * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
5079 * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5080 UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
5081 * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
5082 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
5083 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
5084 * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
5085 * varasm.c (ASM_STABS_OP): Here.
5086 * xcoffout.h (ASM_STABS_OP): Here.
5087 * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
5088 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
5089 INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
5090 STRING_ASM_OP): Here.
5091 * config/freebsd.h (IDENT_ASM_OP): Here.
5092 * config/linux-aout.h (SET_ASM_OP): Here.
5093 * config/linux.h (SET_ASM_OP): Here.
5094 * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5095 INT_ASM_OP): Here.
5096 * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
5097 * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
5098 * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
5099 * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5100 INT_ASM_OP): Here.
5101 * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
5102 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
5103 INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
5104 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5105 FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
5106 * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5107 CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
5108 * config/a29k/udi.h (INT_ASM_OP): Here.
5109 * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
5110 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
5111 SET_ASM_OP): Here.
5112 * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
5113 READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5114 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5115 UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
5116 ASM_STABD_OP): Here.
5117 * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
5118 COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
5119 CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5120 BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
5121 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
5122 SIZE_ASM_OP, STRING_ASM_OP): Here.
5123 * config/alpha/vms.h (LINK_SECTION_ASM_OP,
5124 READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
5125 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
5126 * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
5127 (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
5128 * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
5129 Here.
5130 * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5131 BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
5132 * config/arm/coff.h (INT_ASM_OP): Here.
5133 * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
5134 * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
5135 * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
5136 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
5137 * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
5138 * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5139 ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
5140 STRING_ASM_OP): Here. Update documentation copy in comments.
5141 * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
5142 * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
5143 DATA_SECTION_ASM_OP): Here.
5144 * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
5145 Here.
5146 * config/convex/convex.h (TEXT_SECTION_ASM_OP,
5147 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
5148 * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5149 BSS_SECTION_ASM_OP): Here.
5150 * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5151 BSS_SECTION_ASM_OP): Here.
5152 * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5153 Here.
5154 * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
5155 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
5156 * config/h8300/h8300.h (ASM_WORD_OP): Here.
5157 * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5158 BSS_SECTION_ASM_OP): Here.
5159 * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
5160 * config/i386/bsd.h (ASM_BYTE_OP): Here.
5161 * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
5162 * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
5163 * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
5164 Here.
5165 * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
5166 * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
5167 Here.
5168 * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
5169 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5170 * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
5171 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
5172 SET_ASM_OP): Here.
5173 * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
5174 * config/i386/netbsd.h (INT_ASM_OP): Here.
5175 * config/i386/openbsd.h (INT_ASM_OP): Here.
5176 * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
5177 IDENT_ASM_OP): Here.
5178 * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
5179 ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
5180 LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
5181 SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
5182 * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
5183 SHARED_BSS_SECTION_ASM_OP): Here.
5184 * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
5185 * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5186 DATA_SECTION_ASM_OP): Here.
5187 * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5188 CONST_SECTION_ASM_OP): Here.
5189 * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
5190 * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5191 BSS_SECTION_ASM_OP): Here.
5192 * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
5193 * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
5194 * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
5195 BSS_ASM_OP): Here, but use trailing spaces.
5196 * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5197 DATA_SECTION_ASM_OP): Here.
5198 * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
5199 Here.
5200 * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
5201 DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
5202 * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5203 TDESC_SECTION_ASM_OP): Here.
5204 * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
5205 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5206 * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5207 Here.
5208 * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5209 BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
5210 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5211 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
5212 * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
5213 COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
5214 FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5215 SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
5216 * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
5217 * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
5218 * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
5219 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
5220 SET_ASM_OP): Here.
5221 * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
5222 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5223 * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
5224 * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
5225 * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
5226 * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
5227 * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
5228 * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5229 GLOBAL_ASM_OP): Here.
5230 * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
5231 BSS_SECTION_ASM_OP): Here.
5232 * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
5233 * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5234 ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
5235 DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
5236 SKIP_ASM_OP): Here.
5237 * config/m68k/newsgas.h (SET_ASM_OP): Here.
5238 * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
5239 FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
5240 * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
5241 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
5242 SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
5243 but use trailing spaces.
5244 * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
5245 DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
5246 FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
5247 Here.
5248 * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5249 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
5250 * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5251 CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
5252 DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5253 IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
5254 GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
5255 BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
5256 CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
5257 SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
5258 VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5259 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
5260 ASM_BYTE_OP): Here.
5261 * config/m88k/openbsd.h (SET_ASM_OP): Here.
5262 * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5263 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
5264 * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
5265 UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
5266 DTORS_SECTION_ASM_OP): Here.
5267 * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
5268 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5269 * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
5270 BSS_SECTION_ASM_OP): Here.
5271 * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
5272 * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
5273 * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
5274 POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
5275 CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
5276 DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
5277 * config/mips/mips.c (ABICALLS_ASM_OP): Here.
5278 * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
5279 Here.
5280 * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
5281 Here.
5282 * config/mips/osfrose.h (SET_ASM_OP): Here.
5283 * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
5284 * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
5285 * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
5286 * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5287 Here.
5288 * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
5289 * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
5290 * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
5291 * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
5292 * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
5293 * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5294 Here.
5295 * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5296 Here.
5297 * config/rs6000/rs6000.h (SET_ASM_OP): Here.
5298 * config/rs6000/sol2.h (ASM_STABN_OP): Here.
5299 * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
5300 Here.
5301 * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
5302 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
5303 * config/sparc/linux.h (COMMON_ASM_OP): Here.
5304 * config/sparc/linux64.h (COMMON_ASM_OP,
5305 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
5306 * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
5307 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5308 * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
5309 * config/sparc/pbd.h (ASM_INT_OP): Here.
5310 * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
5311 * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5312 DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
5313 * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
5314 UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
5315 * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
5316 UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
5317 UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
5318 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
5319 CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5320 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5321 EH_FRAME_SECTION_ASM_OP): Here.
5322 * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
5323 * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5324 Here.
5325 * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5326 Here.
5327 * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
5328 TCOMMON_ASM_OP): Here.
5329 * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5330 Here.
5331 * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5332 ASM_BYTE_OP): Here.
5333
5334 2000-09-25 Richard Henderson <rth@cygnus.com>
5335
5336 * expmed.c (store_bit_field): Adjust last change to not consider
5337 any word-sized field naturally aligned.
5338
5339 2000-09-24 Richard Henderson <rth@cygnus.com>
5340
5341 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
5342 TFmode unordered compares properly. Revalidate integer compare
5343 operands.
5344 (alpha_emit_setcc): New.
5345 (alpha_emit_conditional_move): Revalidate integer compare operands.
5346 * config/alpha/alpha-protos.h: Update.
5347 * config/alpha/alpha.md (cmpdi): Allow general operands.
5348 (sne): Use alpha_emit_setcc.
5349 (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
5350 (sunordered, sordered): New.
5351
5352 2000-09-24 Richard Henderson <rth@cygnus.com>
5353
5354 * config/ia64/ia64-protos.h: Update.
5355 * config/ia64/ia64.c (call_multiple_values_operation): Remove.
5356 (ia64_expand_call): New.
5357 (ia64_expand_prologue): Emit an alloc if we need extra input
5358 registers.
5359 (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
5360 instruction if true.
5361 (struct reg_flags): Add is_sibcall.
5362 (rtx_needs_barrier): A sibcall does not use CFM et al. Ignore USEs.
5363 (emit_insn_group_barriers): Set flags.is_sibcall. Remove hacks
5364 for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
5365 * config/ia64/ia64.h (PREDICATE_CODES): Update.
5366 * config/ia64/ia64.md (call): Use ia64_expand_call.
5367 (call_value): Likewise.
5368 (sibcall, sibcall_value): New.
5369 (call patterns): Remove extra expanders; tidy.
5370 (sibcall_epilogue): New.
5371 (set_bsp): Remove the extra USE. Put the operand inside the UNSPEC.
5372
5373 2000-09-24 Richard Henderson <rth@cygnus.com>
5374
5375 * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
5376
5377 * sibcall.c (skip_pic_restore): New.
5378 (identify_call_return_value): Use it.
5379
5380 2000-09-24 Mark Mitchell <mark@codesourcery.com>
5381
5382 * c-tree.texi: Moved here from cp/ir.texi. Documented nested
5383 functions. Generalize to handle both C and C++.
5384 * Makefile.in (c-tree.info): New target.
5385 (info): Add c-tree.info.
5386
5387 Sun Sep 24 09:15:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5388
5389 * expr.c (store_field): If BITSIZE is negative, use size of type.
5390 (expand_expr, case COMPONENT_EXPR): Likewise.
5391
5392 Sun 24-Sep-2000 11:40:23 BST Neil Booth <NeilB@earthling.net>
5393
5394 * cpplex.c: Update TODO comment.
5395 * cpplib.c (do_error, do_warning): Merge common code of
5396 do_error and do_warning into do_diagnostic. Use it.
5397 (do_diagnostic): New function.
5398 * cpplib.h: Fix comment typo.
5399
5400 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
5401
5402 * c-common.c (check_format_info): Warn for a wide character string
5403 used as a non-wide format argument.
5404
5405 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
5406
5407 * builtins.def (BUILT_IN_LLABS): Add.
5408 * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
5409 * c-common.c (c_common_nodes_builtins): Create builtin functions
5410 __builtin_llabs, and plain llabs unless no_nonansi_builtins
5411 outside of C99 mode.
5412 (expand_tree_builtin): Handle BUILT_IN_LLABS.
5413
5414 Sat 23-Sep-2000 22:39:18 BST Neil Booth <NeilB@earthling.net>
5415
5416 * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
5417 CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
5418 * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
5419 _cpp_free_toklist): No need to worry about extra dummy token
5420 at the start of token lists any more.
5421 (trigraph_ok): Only warn outside comments.
5422 (skip_block_comment): Set and clear lexing_comment.
5423 (skip_line_comment): Take a cpp_reader not cpp_buffer.
5424 Set and clear lexing_comment.
5425 (parse_number): Handle leading '.' indicated by pfile->seen_dot.
5426 (check_long_token): Delete.
5427 (lex_percent, lex_dot): New subroutines of lex_token to
5428 handle lexing of '.' and '%' without lookback.
5429 (lex_token): Use lex_dot and lex_percent.
5430 (lex_line): Don't check for LIST_OFFSET.
5431 (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
5432 * cpplib.c (_cpp_parse_assertion): Similarly.
5433 (cpp_push_buffer): Initialize extra_char.
5434 * cpplib.h (LIST_OFFSET): Delete.
5435 (struct cpp_buffer): New member extra_char.
5436 (struct lexer_state): New members lexing_comment and seen_dot.
5437
5438 2000-09-23 Jason Merrill <jason@redhat.com>
5439
5440 * config/rs6000/x-aix41 (CLIB): Define here.
5441 * config/rs6000/t-aix43: Not here.
5442 * config/rs6000/t-aix41: Or here. Remove.
5443 * configure.in: Don't use it.
5444
5445 2000-09-22 Jason Merrill <jason@redhat.com>
5446
5447 * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
5448 * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
5449 * config.in: Regenerate.
5450
5451 * configure.in: Fix checks for assembler features when using a
5452 one-tree assembler that has not yet been built.
5453 Fix --disable-threads.
5454
5455 2000-09-19 Geoff Keating <geoffk@cygnus.com>
5456
5457 * stmt.c (expand_asm_operands): Allow # in constraints.
5458
5459 2000-09-22 Jason Merrill <jason@redhat.com>
5460
5461 * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
5462
5463 * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
5464 function-local names.
5465
5466 2000-09-22 Brad Lucier <lucier@math.purdue.edu>
5467 Mark Mitchell <mark@codesourcery.com>
5468
5469 * toplev.c (warn_disabled_optimization): Declare new warning flag.
5470 * flags.h (warn_disabled_optimization): Add it here.
5471 * gcse.c (gcse_main): Add warning when disabled.
5472 * invoke.texi: Document -Wdisabled-optimization.
5473
5474 2000-09-21 Jason Merrill <jason@redhat.com>
5475
5476 * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
5477
5478 * dwarf2out.c (tree_add_const_value_attribute): New fn.
5479 (gen_variable_die): Call it for non-definitions.
5480
5481 * dwarf2out.c (die_struct): Add die_mark field.
5482 (mark_dies, unmark_dies): New fns.
5483 (clear_die_sizes): Remove.
5484 (print_die): Check die_symbol rather than die_offset.
5485 (build_abbrev_table, output_pubnames, output_aranges): Check
5486 die_mark rather than die_offset.
5487 (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
5488 Call mark_dies.
5489
5490 Thu 21-Sep-2000 18:19:05 BST Neil Booth <NeilB@earthling.net>
5491
5492 * cppfiles.c (lookup_include_file): Rename to open_file.
5493 Always create a splay tree value, even on syscall failures.
5494 Negative entries indicated by fd == -2.
5495 Re-open files closed in the meantime.
5496 (_cpp_fake_include): Create a negative splay tree entry.
5497 (find_include_file, cpp_read_file): Update for function name
5498 change.
5499 * gcc.gd/cpp/mi4.c: Testcase.
5500
5501 2000-09-21 Nick Clifton <nickc@redhat.com>
5502
5503 * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
5504 ARM and THUMB modes.
5505
5506 * config/mcore/mcore.c: Fix compile time warnings.
5507 * config/mcore/mcore-protos.h: Fix compile time warnings.
5508
5509 2000-09-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
5510
5511 * configure.in: Correct test of gcc_cv_glibc.
5512 * configure: Rebuilt.
5513 * config.in: Rebuilt.
5514
5515 2000-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5516
5517 * builtins.c (expand_builtin_fputs): Also expand when length!=1.
5518 (expand_builtin): Handle BUILT_IN_FWRITE.
5519
5520 * builtins.def (BUILT_IN_FWRITE): New entry.
5521
5522 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
5523
5524 Wed Sep 20 15:39:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5525
5526 * gcc.c (modify_target): New variable and struct.
5527 (process_command): Handle MODIFY_TARGET_NAME.
5528 * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
5529 * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
5530
5531 * c-decl.c (finish_decl): Add else's to avoid referencing
5532 TYPE_DOMAIN of an ERROR_MARK.
5533
5534 Wed Sep 20 21:44:31 2000 Denis Chertykov <denisc@overta.ru>
5535
5536 * config/avr/avr.c (adjust_insn_length): Adjust lengths of
5537 `reload_in*' insns.
5538
5539 2000-09-19 Marek Michalkiewicz <marekm@linux.org.pl>
5540
5541 * config/avr/avr.md (neghi2): Add alternative for input and output
5542 operands in different registers, as in negsi2.
5543 (*negsi2): Remove '*' from the name. Use "movw" if available.
5544
5545 2000-09-19 Jim Wilson <wilson@cygnus.com>
5546
5547 * config/ia64/crtbegin.asm (__dso_handle): Delete use of
5548 HAVE_GAS_HIDDEN macro.
5549
5550 Tue 19-Sep-2000 22:38:57 BST Neil Booth <NeilB@earthling.net>
5551
5552 * cpplex.c (lex_line): Drop the EOF token for unknown
5553 directives in assembler.
5554
5555 2000-09-19 David Edelsohn <edelsohn@gnu.org>
5556
5557 * configure.in: Allow enable_threads_flag value of "aix". Define
5558 thread_file as "aix" for AIX 4.3 and above.
5559 * configure: Regenerated.
5560
5561 * gthr-aix.h: New file.
5562
5563 * rs6000/t-aix43: Replace soft-float multilib with pthread.
5564 Remove 403 processor multilib match. Fix rios2 processor multilib
5565 match.
5566
5567 * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
5568 to return to appropriate csect.
5569
5570 2000-09-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5571
5572 * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
5573 functions.
5574 (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
5575 (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
5576 BUILT_IN_PRINTF.
5577
5578 * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
5579 New entries.
5580
5581 * c-common.c (init_function_format_info): Handle __builtin_printf.
5582 Set `check_function_format_ptr'.
5583 (c_common_nodes_and_builtins): Set `puts_ftype' and
5584 `printf_ftype'. Declare __builtin_putchar, __builtin_puts,
5585 __builtin_printf and printf.
5586
5587 * tree.c, tree.h (check_function_format_ptr): Declare.
5588
5589 Tue 19-Sep-2000 18:26:57 BST Neil Booth <NeilB@earthling.net>
5590
5591 * cppfiles.c (read_include_file): Take no special action for
5592 zero-length files.
5593
5594 2000-09-19 Bernd Schmidt <bernds@redhat.co.uk>
5595
5596 * final.c (insn_current_reference_address): Use INSN_SHUID of seq
5597 rather than that of branch.
5598 (shorten_branches): Don't increment insn_current_address twice.
5599
5600 Undo most of the Wed Jan 27 23:39:53 1999 patch:
5601 * loop.h (struct induction): Delete members derived, ix and last_use.
5602 (struct loop_ivs): Delete members first_increment_giv and
5603 last_increment_giv.
5604 * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
5605 recombine_givs): Delete functions.
5606 (find_and_verify_loops): Don't initialize cont_dominator.
5607 (strength_reduce): Lose code to try to find bivs that can be
5608 expressed as givs of another biv, and to convert biv increments
5609 into givs.
5610 Lose loop_scan_start variable, always use loop->scan_start.
5611 Don't call recombine_givs. Don't handle derived givs.
5612 (record_giv): Don't initialize derived and last_use fields.
5613 (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
5614 givs.
5615 * unroll.c (derived_regs): Delete static variable.
5616 (unroll_loop): Don't initialize it.
5617 (copy_loop_body): Lose code to handle derived givs.
5618 (find_splittable_givs): Don't check for givs made from biv
5619 increments.
5620 Don't set derived_regs.
5621
5622 Fix misapplied earlier patch:
5623 * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference
5624 to fpul.
5625 (floatsisf2): Generate floatsisf_ie by default.
5626 (floatsisf_i4): Conditional on TARGET_SH4.
5627
5628 (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
5629 predicate for the expanders.
5630
5631 2000-09-19 Richard Henderson <rth@cygnus.com>
5632
5633 * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
5634 in addition to pentium and pentiumpro symbols.
5635 (CPP_CPU_DEFAULT_SPEC): Likewise.
5636
5637 * c-typeck.c (c_expand_asm_operands): Restore the output tree
5638 after expanding.
5639
5640 * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
5641 if the tree has side effects.
5642 (warn_if_unused_value): Do not warn about void constructs.
5643
5644 * c-decl.c (poplevel): Invoke warn_about_unused_variables.
5645
5646 * unroll.c (copy_loop_body): Update LABEL_NUSES before
5647 calling invert_jump.
5648
5649 2000-09-18 Geoff Keating <geoffk@cygnus.com>
5650
5651 * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
5652 into anything.
5653
5654 2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5655
5656 * Makefile.in (c-common.o): Depend on diagnostic.h.
5657
5658 * c-common.c: Include diagnostic.h.
5659 (tfaff): Delete.
5660 (status_warning): New function.
5661 (check_format_info, maybe_read_dollar_number, check_format_types,
5662 finish_dollar_format_checking, check_function_format): Accept a
5663 `status' parameter. All callers changed.
5664
5665 * c-common.h (check_function_format): Accept a `status' parameter.
5666
5667 * c-typeck.c: Update call to `check_function_format'.
5668
5669 2000-09-18 Richard Henderson <rth@cygnus.com>
5670
5671 * c-decl.c (c_expand_body): Call mark_varargs before
5672 expand_function_start.
5673
5674 2000-09-18 Geoff Keating <geoffk@cygnus.com>
5675
5676 * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
5677 * config/rs6000/eabi-ci.asm: Likewise.
5678
5679 2000-09-18 Richard Henderson <rth@cygnus.com>
5680
5681 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
5682 for BImode.
5683
5684 2000-09-18 Jim Wilson <wilson@cygnus.com>
5685
5686 * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
5687 before passing it to fold_rtx_mult_add.
5688
5689 * unroll.c (final_giv_value): Pass increment through
5690 extend_value_for_giv before passing it to emit_iv_add_mult.
5691
5692 * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
5693 paradoxical subreg, then directly substitute the replacement and
5694 return.
5695
5696 Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
5697
5698 * cpp.texi: Update documentation, including some clarifications,
5699 the treatment of various newline combinations, and space between
5700 backslash and newline.
5701
5702 Mon Sep 18 21:00:47 2000 J"orn Rennecke <amylaar@redhat.co.uk>
5703
5704 * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
5705 Replace ASM_OUTPUT_LABELREF with assemble_name.
5706
5707 Mon Sep 18 20:26:50 2000 J"orn Rennecke <amylaar@redhat.co.uk>
5708
5709 * sh.c (addsubcosts): CONST is not cheap.
5710 (find_barrier): For Sh1, take alignment after jumps into account.
5711
5712 2000-09-15 Andrew Haley <aph@redhat.com>
5713
5714 * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
5715 remove all SETs of SUBREGs of hard registers.
5716 * function.c (purge_hard_subreg_sets): New function.
5717 (purge_single_hard_subreg_set): New function.
5718 * rtl.h: (purge_hard_subreg_sets): New function.
5719
5720 2000-09-18 Richard Henderson <rth@cygnus.com>
5721
5722 * config/ia64/ia64-protos.h: Update.
5723 * config/ia64/ia64.c (signed_inequality_operator): New.
5724 (ia64_expand_compare): New.
5725 (ia64_register_move_cost): Handle PR_REGS moves.
5726 (ia64_secondary_reload_class): Require a GR when moving to a PR.
5727 (struct reg_write_state): Add written_by_and/or.
5728 (struct reg_flags): Add is_and/or.
5729 (rws_update): Set them.
5730 (rws_access_regno): Test them to allow parallel comparisons.
5731 (rtx_needs_barrier): Recognize parallel comparisons.
5732 (emit_insn_group_barriers): Set prev_insn after a call stop bit.
5733 Call recog_memoized; ignore pred_rel_mutex.
5734 (emit_predicate_relation_info): Don't call find_basic_blocks here.
5735 (ia64_reorg): Do it here instead.
5736 * config/ia64/ia64.h: s/CCmode/BImode/g
5737 (MODES_TIEABLE_P): Don't tie BImode.
5738 (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
5739 (CONST_COSTS): Pick sensible values for CONST_INT based on context.
5740 (RTX_COSTS): Make multiply 4 insns.
5741 (MEMORY_MOVE_COST): New.
5742 (PREDICATE_CODES): Update.
5743 * config/ia64/ia64.md: s/CCmode/BImode/g
5744 (movcci, movbi): New.
5745 (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
5746 (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
5747 (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
5748 (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
5749 (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
5750 (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
5751 (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
5752 (mulsi, muldi): Use xmpy not xma.
5753 (cmpbi): New.
5754 (movcc, movcc_internal): Remove.
5755 (branch expanders): Use ia64_expand_compare.
5756 (setcc expanders): Likewise.
5757 (cmov insns): Use move_operand and ia64_move_ok.
5758 (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the
5759 scheduler from moving it past a use.
5760 * config/ia64/build.hacks: Remove.
5761
5762 Mon 18-Sep-2000 19:21:35 BST Neil Booth <NeilB@earthling.net>
5763
5764 * cpphash.h (HASHSTEP): Take character rather than pointer
5765 to character.
5766 (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
5767
5768 * cpphash.c (cpp_loookup): Update for new HASHSTEP.
5769
5770 * cpplex.c (auto_expand_name_space, trigraph_replace,
5771 backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
5772 IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
5773 BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
5774 KNOWN_DIRECTIVE): Delete.
5775
5776 (handle_newline, check_long_token, skip_escaped_newlines,
5777 unterminated): New functions.
5778 (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
5779
5780 (parse_identifier): Was parse_name, new implementation.
5781 (skip_line_comment, skip_block_comment, skip_whitespace,
5782 parse_number, parse_string, trigraph_ok, save_comment,
5783 adjust_column, _cpp_get_line): New implementations.
5784
5785 (lex_token): New function. Lexes a token at a time, looking
5786 forwards. Contains most of the guts of the old lex_line.
5787 (lex_line): New implementation, using lex_token to obtain
5788 individual tokens.
5789 (cpp_scan_buffer): Use the token's line, not the list's line.
5790
5791 * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
5792 New implementations.
5793 (do_assert): Don't bother setting the answer's list's line.
5794 (cpp_push_buffer): Initialise new pfile and read_ahead members
5795 of struct cpp_buffer.
5796
5797 * cpplib.h (cppchar_t): New typedef.
5798 (struct cpp_buffer): read_ahead, pfile and col_adjust are
5799 new members.
5800 (struct lexer_state): New structure that determines the state
5801 and behaviour of the lexer.
5802 (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
5803 (struct cpp_reader): New member "state". Rename
5804 multiline_string_line and multiline_string_column. Delete
5805 col_adjust, in_lex_line members.
5806 (CPP_BUF_COLUMN): Update.
5807
5808 2000-09-18 Richard Henderson <rth@cygnus.com>
5809
5810 * combine.c (simplify_comparison): Shift a NOT out of a single
5811 bit test.
5812
5813 * combine.c (if_then_else_cond): Canonicalize BImode true to
5814 STORE_FLAG_VALUE.
5815 * explow.c (trunc_int_for_mode): Likewise.
5816
5817 * combine.c (combine_simplify_rtx): Use gen_unary to distribute
5818 the NOT for De Morgan's rule.
5819 * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
5820 of a comparison to the reverse comparison.
5821
5822 * combine.c (try_combine): Allow split to create a single insn.
5823
5824 * machmode.def: Add BImode. Add a column for bitsize.
5825 * machmode.h (DEF_MACHMODE): Adjust for extra column.
5826 (GET_MODE_BITSIZE): Use it.
5827 * rtl.c (DEF_MACHMODE): Adjust for extra column.
5828 (mode_bitsize): New.
5829 (mode_mask_array): Use bitsize.
5830 * combine.c (combine_simplify_rtx): Require inner and outer
5831 modes to match on nonzero_bits optimizations.
5832
5833 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
5834
5835 * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
5836 its entry in spill_reg_store.
5837 * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
5838 * sh.c (reg_no_subreg_operand): New function.
5839 * sh-protos.h (reg_no_subreg_operand): Declare it.
5840 * sh.h (PREDICATE_CODES): Add it.
5841 * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
5842 input operand that needs to be in fpul.
5843 (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
5844 * sh.c (find_barrier): Take into account that machine_dependent_reorg
5845 might add new insns.
5846
5847 2000-09-18 Alexandre Oliva <aoliva@redhat.com>
5848
5849 * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
5850 MAYBE_DEAD.
5851 (sh_expand_epilogue): Take the PIC register into account when
5852 computing the frame size.
5853
5854 * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
5855 * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
5856 LABEL_REFs with a PIC-safe unspec.
5857
5858 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
5859
5860 * c-common.c (check_format_info): Properly save the argument
5861 number and parameter for $ operand number formats in case width
5862 and precision arguments are also used. Allow printf width and
5863 precision arguments to have operand numbers even if none was
5864 specified for the main format, since this is OK for %*.*m. Only
5865 object to missing $ operand number if the format used requires an
5866 argument.
5867
5868 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
5869
5870 * c-common.c (format_char_info): Add 'W' flag to comment.
5871 (print_char_table, scan_char_table): Use it.
5872 (check_format_info): Use the 'W' flag to determine whether a
5873 format argument is written into.
5874
5875 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
5876
5877 * c-common.c (check_format_types): Reorganise and clean up,
5878 checking earlier for ERROR_MARKs and making cur_type into its
5879 TYPE_MAIN_VARIANT where convenient.
5880
5881 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
5882
5883 * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
5884
5885 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
5886
5887 * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
5888
5889 * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
5890 * i386.c (struct builtin_description): New.
5891 (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
5892 (mmx_reg_operand): Declare MODE arg as unused.
5893 (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
5894 ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
5895 ix86_expand_binop_builtin, ix86_expand_store_builtin,
5896 ix86_init_builtins, ix86_expand_builtin): New functions.
5897 * i386.h (ix86_builtins): New enumeration.
5898 (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
5899 * i386.md (attr length_immediate): 0 for mmx/sse types.
5900 (attr prefix_0f): 1 for mmx/sse types.
5901 (setcc_2): Remove "*" so we get gen_setcc_2.
5902 (emms): Account for changed register numbering. Set "memory" attr
5903 to unknown.
5904 (sfence): Set "memory" attr to unknown.
5905
5906 2000-09-18 Andreas Jaeger <aj@suse.de>
5907
5908 * configure.in: Define _GNU_SOURCE only when using the GNU C
5909 Library.
5910 * configure: Regenerated.
5911 * config.in: Regenerated.
5912
5913 2000-09-17 Mark Mitchell <mark@codesourcery.com>
5914
5915 * cppinit.c (cpp_init): Don't use ANSI prototypes.
5916 * flow.c (flow_dump_loop): Likewise.
5917 (flow_loops_dump): Likewise.
5918
5919 * c-typeck.c (c_start_case): Fix typo.
5920
5921 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
5922
5923 * c-decl.c (grokdeclarator): Don't give a warning about defaulting
5924 to int for plain complex which defaults to complex double. Do
5925 warn about defaulting to complex double if pedantic. Warn about
5926 complex integer types if pedantic. Warn about complex types if
5927 pedantic and not in C99 mode.
5928 * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
5929 for complex conjugation.
5930
5931 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
5932
5933 * contrib.texi: Update my entry.
5934
5935 Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru>
5936
5937 * config/avr/avr.md (mcu_enhanced): New attribute.
5938 (mcu_mega): Likewise.
5939 (extendhisi2): Use mcu_enhanced.
5940 (zero_extendhisi2): Likewise.
5941 (call_insn): Use mcu_enhanced and mcu_mega.
5942 (call_value_insn): Likewise.
5943 (*sbrx_branch): Use mcu_mega.
5944 (*sbrx_and_branchsi): Likewise.
5945 (*sbrx_and_branchhi): Likewise.
5946 (*tablejump_lib): Likewise.
5947
5948 Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5949
5950 * alias.c (true_dependence): Allow non-unchanging read to conflict
5951 with unchanging write.
5952
5953 * expr.c (store_constructor_field): Accept ALIAS_SET arg.
5954 (store_constructor): Pass alias_set to it.
5955
5956 * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
5957 TYPE_MAIN_VARIANT of ERROR_MARK.
5958 * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
5959
5960 * simplify-rtx.c (simplify_unary_operation): Add cases
5961 FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
5962
5963 2000-09-17 Bernd Schmidt <bernds@redhat.co.uk>
5964
5965 * expr.h (emit_library_call, emit_library_call_value): Delete
5966 declarations.
5967 * rtl.h (enum libcall_type): New.
5968 (emit_library_call, emit_library_call_value): Change fn_type arg to
5969 be of type enum libcall_type.
5970 * calls.c: Likewise for the function definitions. Several callers
5971 throughout changed to use the new enumeration appropriately.
5972 (emit_library_call_value_1): Likewise. Put back code to make libcall
5973 blocks of equal form, but only use it for the two new higher
5974 enumeration values.
5975
5976 2000-09-16 Mark Mitchell <mark@codesourcery.com>
5977
5978 Convert the C front-end to use function-at-a-time mode.
5979 * c-common.h: Include splay-tree.h.
5980 (C_DECLARED_LABEL_FLAG): New macro.
5981 (struct language_function): Add x_scope_stmt_stack and
5982 x_function_name_declared_p.
5983 (RECHAIN_STMTS): Move definition.
5984 (lang_statment_code_p): Likewise.
5985 (lang_expand_stmt): Likewise.
5986 (lang_expand_decl_stmt): New variable.
5987 (lang_expand_function_end): Likewise.
5988 (current_scope_stmt_stack): New function.
5989 (add_decl_stmt): Likewise.
5990 (add_scope_stmt): Likewise.
5991 (mark_stmt_tree): Likewise.
5992 (struct c_lang_decl): New structure.
5993 (DECL_SAVED_TREE): Define.
5994 (c_mark_lang_decl): New function.
5995 (c_expand_start_cond): Change prototype.
5996 (c_finish_then): New function.
5997 (c_finish_else): Likewise.
5998 (current_function_name_declared): Remove.
5999 (set_current_function_name_declared): Likewise.
6000 (mark_c_language_function): Declare.
6001 (case_compare): Likewise.
6002 (c_add_case_label): Likewise.
6003 (c_expand_expr): Likewise.
6004 (c_safe_from_p): Likewise.
6005 * c-common.c (lang_expand_function_end): New variable.
6006 (struct if_elt): Add if_stmt.
6007 (c_expand_start_cond): Add the if-statement to the statement-tree,
6008 rather than generating RTL.
6009 (c_finish_then): New function.
6010 (c_expand_start_else): Don't generate RTL.
6011 (c_finish_else): New function.
6012 (c_expand_expr_stmt): Don't generate RTL.
6013 (statement_code_p): Add SCOPE_STMT.
6014 (case_compare): New function.
6015 (c_add_case_label): Likewise.
6016 (mark_stmt_tree): Likewise.
6017 (c_mark_lang_decl): Likewise.
6018 (mark_c_language_function): Likewise.
6019 (c_expand_expr): Likewise.
6020 (c_safe_from_p): Likewise.
6021 * c-decl.c (c_stmt_tree): New variable
6022 (c_scope_stmt_stack): Likewise.
6023 (c_function_name_declared_p): Likewise.
6024 (lang_expand_expr_stmt): Remove.
6025 (poplevel): Don't call output_inline_function for nested
6026 functions.
6027 (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
6028 `extern' function.
6029 (redeclaration_error_message): Change means of computing whether
6030 or not a function is nested.
6031 (lookup_label): Don't call label_rtx.
6032 (init_decl_processing): Add more GC roots.
6033 (start_decl): Add DECL_STMTs to the statement-tree, rather than
6034 calling rest_of_decl_compilation.
6035 (finish_decl): Don't call expand_decl.
6036 (store_parm_decls): Begin the statement-tree, but don't generate
6037 RTL.
6038 (finish_function): Tie off the statement-tree. Call c_expand_body
6039 if appropriate.
6040 (c_expand_body): New function.
6041 (push_c_function_context): Save more information.
6042 (pop_c_function_contxt): Likewise.
6043 (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
6044 (lang_mark_tree): Mark it.
6045 (current_stmt_tree): Adjust.
6046 (current_scope_stmt_stack): New function.
6047 (do_case): Remove.
6048 (set_current_name_declared): Likewise.
6049 (c_begin_compound_stmt): Define.
6050 (c_expand_decl_stmt): Likewise.
6051 * c-lang.c: Include rtl.h and expr.h.
6052 (lang_init): Set more language-specific hooks.
6053 * c-lex.c: Include expr.h.
6054 * c-parse.in: Changes throughout to add statements to the
6055 statement-tree, rather than generating RTL after every statement.
6056 * c-semantics.c (lang_expand_decl_stmt): Define.
6057 (add_decl_stmt): New function.
6058 (add_scope_stmt): Likewise.
6059 (finish_stmt_tree): Tweak.
6060 (genrtl_expr_stmt): Likewise.
6061 (genrtl_decl_stmt): Handle local labels, and call
6062 lang_expand_decl_stmt if required.
6063 (genrtl_for_stmt): Fix line-number handling.
6064 (genrtl_case_label): Handle cleanups.
6065 (genrtl_asm_stmt): Don't call combine_strings.
6066 (genrtl_compound_stmt): Simplify.
6067 (expand_stmt): Handle SCOPE_STMTs.
6068 * c-tree.h (struct lang_decl): New structure.
6069 (C_DECLARED_LABEL_FLAG): Remove.
6070 (c_begin_compound_stmt): Declare.
6071 (c_expand_decl_stmt): Likewise.
6072 (c_expand_start_case): Rename to c_start_case.
6073 (c_finish_case): New function.
6074 * c-typeck.c (start_init): Tweak setting of
6075 constructor_incremental.
6076 (c_expand_asm_operands): Tweak error-handling. Add to the
6077 statement-tree.
6078 (c_expand_return): Add to the statement-tree.
6079 (c_expand_start_case): Rename to ...
6080 (c_start_case): ... this.
6081 (struct c_switch): New type.
6082 (switch_stack): New variable.
6083 (do_case): Simplify.
6084 (c_finish_case): New function.
6085 * dependence.c: Include expr.h.
6086 (enum dependence_type): Change spelling of enumerals.
6087 (check_node_dependence): Adjust.
6088 * expr.h (lang_safe_from_p): Declare.
6089 (safe_from_p): Likewise.
6090 * expr.c (lang_safe_from_p): New variable.
6091 (safe_from_p): Give it external linkage. Use lang_safe_from_p.
6092 * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
6093 * toplev.c (rest_of_decl_compilation): Robustify.
6094 * tree.c (contains_placeholder_p): Likewise.
6095 * Makefile.in: Update dependencies.
6096 * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
6097 * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
6098 (objc_expand_function_end): New function.
6099 (finish_method_def): Use it.
6100 (init_objc): Initialize more language-specific hooks.
6101 * objc/Make-lang.in: Update dependencies.
6102
6103 2000-09-16 Geoffrey Keating <geoffk@cygnus.com>
6104
6105 * configure.in: Define macros that affect features before
6106 testing for features. Don't define _XOPEN_SOURCE.
6107 * configure: Regenerated.
6108 * config.in: Regenerated.
6109
6110 Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com)
6111
6112 * rtlanal.c (rtx_varies_p): Volatile asms vary.
6113 (rtx_unstable_p): Restructure code. Volatile asms
6114 are unstable.
6115
6116 Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6117
6118 * function.h (no_debugging_symbols): New field.
6119 * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
6120 Initialize no_debugging_symbols.
6121 (output_inline_function): Save and restore write_symbols and set from
6122 no_debugging_symbols.
6123 * toplev.c (rest_of_compilation): Call save_for_inline.
6124 * tree.h: Update comment.
6125
6126 * stor-layout.c (place_field): Don't do anything if field or
6127 its type are ERROR_MARK.
6128
6129 Sat Sep 16 19:14:00 2000 Laurynas Biveinis <lauras@softhome.net>
6130
6131 * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
6132 (read_include_file): Ensure inc->mmaped is initialized.
6133
6134 2000-09-16 Richard Henderson <rth@cygnus.com>
6135
6136 * cppiles.c (purge_cache): Use PTR not caddr_t.
6137
6138 2000-09-16 Hans-Peter Nilsson <hp@axis.com>
6139
6140 * gcc.c: In description for %{<S}, say the option removed is -S.
6141 * invoke.texi (Spec Files): Ditto.
6142
6143 2000-09-16 Andreas Jaeger <aj@suse.de>
6144
6145 * configure.in: Always define _GNU_SOURCE to make interfaces
6146 visible that were hidden by only defining _GNU_SOURCE.
6147 * configure: Regenerated.
6148
6149 Sat 16-Sep-2000 08:13:45 BST Neil Booth <NeilB@earthling.net>
6150
6151 * cpplex.c (push_macro_context): Set an argument's level after
6152 calling parse_args. We could loop infinitely otherwise.
6153
6154 2000-09-15 Tom Tromey <tromey@cygnus.com>
6155
6156 * configure, config.in: Rebuilt.
6157 * configure.in: Check for iconv.h. Define _XOPEN_SOURCE.
6158
6159 2000-09-15 Greg McGary <greg@mcgary.org>
6160
6161 * cppmacro.c (check_trad_stringification): Check token
6162 text pointers against limit before dereferencing.
6163
6164 2000-09-15 Joseph S. Myers <jsm28@cam.ac.uk>
6165
6166 * c-common.c (format_wanted_type): New structure.
6167 (check_format_types): New function.
6168 (check_format_info): Pass all checking of types of format
6169 arguments, including width and precision arguments, to this new
6170 function.
6171
6172 2000-09-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
6173
6174 * BUGS: Remove file.
6175
6176 2000-09-15 Jakub Jelinek <jakub@redhat.com>
6177
6178 * config/alpha/alpha.c (override_options): ev6 cache latencies
6179 from Richard Henderson. Don't allow -mmemory-latency=L0.
6180
6181 * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
6182 (TARGET_OPTIONS): Add tune=.
6183 (alpha_tune_string): Declare.
6184 * config/alpha/alpha.c (override_options): Add cpu_table.
6185 Use alpha_cpu_string first to set both alpha_cpu and target_flags
6186 and then alpha_tune_string to set alpha_cpu only.
6187 Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
6188 * config/alpha/elf.h (ASM_FILE_START): Likewise.
6189 * config/alpha/osf.h (ASM_FILE_START): Likewise.
6190 * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
6191
6192 Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
6193
6194 * i386-protos.h (no_comparison_operator, uno_comparison_operator):
6195 Remove.
6196 (ix86_comparison_operator, ix86_cc_mode): Declare
6197 * i386.h (CCGC, CCGCO): New modes.
6198 (SELECT_CC_MODE): Move offline to ....
6199 * i386.c (ix86_cc_mode): .... here; use new modes.
6200 (ix86_comparison_operator): New.
6201 (fcmov_comparison_operator): Ensure proper mode.
6202 (put_condition_mode): More sanity checking.
6203 (ix86_match_ccmode): Handle new modes.
6204 (ix86_expand_fp_compare): GEU requires CCmode.
6205 (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
6206 doing it by hand.
6207 * i386.md (cmp?i_ccz_1): Remove
6208 (cmp?i_ccno_1): Use ix86_match_ccmode.
6209 (cmp?i_minus_1): New.
6210 (cmpsi_1): New expander.
6211 (cmpqi_ext_1): Use match_ccmode
6212 (cmpqi_ext_3): New expander.
6213 (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
6214 (cmpqi_ext_4): Use match_ccmode.
6215 (add?i_?): Use match_ccmode.
6216 (add?i_6): New.
6217 (test?i_ccz_1): Remove
6218 (test?i_1): New.
6219 (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
6220 (testqi_ext_0): Use ix86_match_ccmode.
6221 (*xorqi_cc_ext_1): Use ix86_match_ccmode.
6222 (xorqi_cc_ext_1): New expander.
6223 (shift patterns): Use CCGOCmode for all shifts except for sar.
6224 (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
6225 (setcc_3, jcc_3, miv?icc_c): Remove.
6226
6227 2000-09-15 Will Cohen <wcohen@redhat.com>
6228
6229 * dwarf2out.c (add_const_value_attribute): Changed array into a
6230 xmalloced object, so it exists after function exit.
6231 (free_AT): Added case for dw_val_class_float to free allocated
6232 memory.
6233
6234 2000-09-15 Kazu Hirata <kazu@hxi.com>
6235
6236 * config/i386/i386.md: Fix a comment typo.
6237 * gcc.c: Fix formatting.
6238
6239 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
6240
6241 * optabs.c (emit_libcall_block): If target is a user variable,
6242 copy to a temporary first.
6243 * expr.c (convert_move): When generating a libcall, make a libcall
6244 block.
6245 * calls.c (emit_library_call_value_1): Don't create a libcall
6246 sequence here; our caller will in most cases do it.
6247
6248 * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
6249 MACH into FPUL.
6250 (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
6251 * sh.md (reload_outsf): Generate recognizable patterns for
6252 TARGET_SH3E.
6253 (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
6254 fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
6255 fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
6256 truncdfsf2_i4): Change not to use explicit references to fpul.
6257 (floatsisf2_ie): Remove USE of fpscr.
6258 (floatsisf2): Change default expansion to match this.
6259 (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
6260 unused patterns.
6261
6262 2000-09-15 Richard Henderson <rth@cygnus.com>
6263
6264 * expmed.c (store_bit_field): Consider naturally aligned
6265 memory for direct reference.
6266
6267 2000-09-15 Richard Henderson <rth@cygnus.com>
6268
6269 * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
6270 AND addresses into alias set 0.
6271 (alpha_expand_unaligned_store): Likewise.
6272 (alpha_expand_unaligned_load_words): Likewise.
6273 (alpha_expand_unaligned_store_words): Likewise.
6274
6275 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
6276
6277 * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
6278 * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
6279 is defined.
6280 * config/mips/mips.c (mips_va_arg): Args passed by reference have a
6281 rsize of UNITS_PER_WORD.
6282
6283 Fri 15-Sep-2000 06:49:07 BST Neil Booth <NeilB@earthling.net>
6284
6285 * cpplex.c (ON_REST_ARG): Correct the test.
6286 (maybe_paste_with_next): Duplicate a token that fail pasting,
6287 and clear its PASTE_LEFT flag, so that nested pasting attempts
6288 do not occur.
6289
6290 2000-09-14 Richard Henderson <rth@cygnus.com>
6291
6292 * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
6293 * cse.c (rtx_cost): Likewise.
6294 * optabls.c (expand_binop): Likewise.
6295 (expand_twoval_binop, prepare_cmp_insn): Likewise.
6296 * regclass.c (copy_cost): Likewise.
6297 * reload1.c (reload_cse_move2add): Likewise.
6298
6299 2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
6300
6301 * c-parse.in (reswords): Add _Complex.
6302
6303 2000-09-14 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6304
6305 * gcc.1: Delete documentation for -undef preprocessor option.
6306
6307 2000-09-14 Alexandre Oliva <aoliva@redhat.com>
6308
6309 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
6310 STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
6311 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
6312 Remove undefine before config/elfos.h.
6313 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
6314
6315 2000-09-14 Kazu Hirata <kazu@hxi.com>
6316
6317 * invoke.texi (H8/300 Options): Add -ms2600.
6318 * config/h8300.c (h8300_init_once): Output an error when -ms2600
6319 is used without -ms.
6320 * config/h8300.h (TARGET_MAC): New.
6321 (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
6322 (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
6323 machine other than H8/S2600.
6324 * config/h8300.md: Accept mac instructions on the H8/S2600 instead
6325 of the H8/S2000.
6326
6327 2000-09-14 Alexandre Oliva <aoliva@redhat.com>, Bernd Schmidt <bernds@redhat.co.uk>
6328
6329 * reload.c (find_reloads_address_1): Generate reloads for auto_inc
6330 pseudos that refer to the original pseudos, not only to their
6331 equivalent memory locations.
6332
6333 Thu Sep 14 12:10:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6334
6335 * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
6336 when making new MEM.
6337
6338 * Makefile.in (LN): Remove duplicate definition.
6339
6340 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
6341
6342 From Joern Rennecke:
6343 * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
6344 on an insn and function_invariant_p returns nonzero for the source,
6345 add a REG_EQUAL note.
6346
6347 Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com)
6348
6349 * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
6350 conflict with frame_pointer_rtx.
6351
6352 2000-09-13 Kazu Hirata <kazu@hxi.com>
6353
6354 * loop.c: Fix formatting.
6355 * loop.h: Likewise.
6356
6357 2000-09-13 Richard Henderson <rth@cygnus.com>
6358
6359 * config/ia64/ia64.md (divsf3): New.
6360 (divsf3_internal_lat, divsf3_internal_thr): New.
6361 (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
6362 (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
6363 (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
6364 (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
6365 (nmadddf4_alts, nmadddf4_trunc): New.
6366 (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
6367 (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
6368 (multf3_truncsf_alts, multf3_truncdf_alts): New.
6369 (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
6370 (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
6371 (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
6372 (nmaddtf4_truncdf_alts): New.
6373 (recip_approx): Don't predicate.
6374
6375 2000-09-13 Richard Henderson <rth@cygnus.com>
6376
6377 * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
6378
6379 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
6380
6381 * flags.h (flag_dump_rtl_in_asm): Declare.
6382 * toplev.c (flag_dump_rtl_in_asm): Define.
6383 (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
6384 if -dP is specified.
6385 * rtl.h (print_rtx_head): Declare.
6386 * print-rtl.c (print_rtx_head): Define.
6387 (print_rtx): Print the string pointed to by print_rtx_head
6388 at beginning of each dump line.
6389 (print_rtl): Likewise.
6390 (print_rtl_single): Likewise.
6391 * final.c (final_scan_insn): Dump the insn in the assembly
6392 file for debugging.
6393 * gcc.1: Document -dP option.
6394 * invoke.texi (Debugging Options): Likewise.
6395
6396 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
6397
6398 * md.texi (Machine Constraints): Document the 68HC11 constraints.
6399 * install.texi (Configurations): Document the 68HC11&68HC12 port.
6400 * invoke.texi (Option Summary, M68hc1x Options): Document the options.
6401
6402 Tue Sep 12 13:51:13 2000 Denis Chertykov <denisc@overta.ru>
6403
6404 * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
6405 * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
6406 (*clrstrqi): Likewise.
6407 (xorhi3,xorsi3,absqi2): Likewise.
6408 (one_cmplhi2,one_cmplsi2): Likewise.
6409 (addsi3): Two stupid constraint alternatives removed.
6410 (extendhisi2): Use `movw' for enhanced avr cores.
6411 (zero_extendhisi2): Likewise.
6412
6413 Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com)
6414
6415 * alias.c (find_base_term): Use frame_pointer_rtx
6416 when handling an ADDRESSOF.
6417
6418 * cse.c (canon_hash): Handle USE of BLKmode memory.
6419 (cse_insn): Outgoing arguments for a libcall don't
6420 affect any recorded expressions.
6421
6422 2000-09-12 Tom Tromey <tromey@cygnus.com>
6423
6424 * configure, config.in: Rebuilt.
6425 * configure.in: Check for iconv, nl_langinfo, langinfo.h.
6426
6427 2000-09-12 Jakub Jelinek <jakub@redhat.com>
6428
6429 * c-lex.c (lex_string): Use charwidth to compute bytemask.
6430 * expr.c (expand_expr): Don't optimize constant array references
6431 initialized with wide string constants.
6432
6433 2000-09-13 Michael Hayes <mhayes@cygnus.com>
6434
6435 * loop.c (note_set_pseudo_multiple_uses): Correct.
6436
6437 2000-09-12 Jim Wilson <wilson@cygnus.com>
6438
6439 * ifcvt.c (noce_process_if_block): If A and B are the same, and no
6440 else block, and X has side-effects, then fail.
6441
6442 2000-09-12 Greg McGary <greg@mcgary.org>
6443
6444 * config/mips/mips-protos.h
6445 (trap_cmp_op, mips_gen_conditional_trap): New func decls.
6446 * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
6447 (PREDICATE_CODES): Add "trap_cmp_op".
6448 * config/mips/mips.c
6449 (trap_cmp_op, mips_gen_conditional_trap): New functions.
6450 * config/mips/mips.md (trap, conditional_trap): New patterns.
6451
6452 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
6453
6454 * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
6455 pointer.
6456
6457 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6458
6459 * builtins.c (built_in_decls): New array.
6460 (expand_builtin_fputs): New function.
6461 (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
6462
6463 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
6464
6465 * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
6466
6467 * tree.h (built_in_decls): New array.
6468
6469 Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com)
6470
6471 * convex.md: Use "+" instead of "=" for outputs wrapped in a
6472 STRICT_LOW_PART.
6473 * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
6474
6475 2000-09-12 Kazu Hirata <kazu@hxi.com>
6476
6477 * haifa-sched.c: Fix formatting.
6478
6479 * genattrtab.c: Fix formatting.
6480
6481 * unroll.c: Fix formatting.
6482
6483 2000-09-12 Bruce Korb <bkorb@gnu.org>
6484
6485 * fixinc/fixfixes.c: make a type for the fix procedure & use it,
6486 remove obsolete code
6487 * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch.
6488 * fixinc/fixincl.tpl: make non-exported arrays static scope
6489 * fixinc/fixincl.x: regenerate
6490 * fixinc/fixlib.h: Use PARAMS, not _P_
6491 * fixinc/fixtests.c: make a type for the test proc & use it
6492 * fixinc/server.h: Use PARAMS, not _P_
6493
6494 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6495
6496 * c-typeck.c (process_init_element): Avoid union init warnings on
6497 floating point zero. Don't crash on unions containing structs.
6498
6499 2000-09-12 Alexandre Oliva <aoliva@redhat.com>
6500
6501 * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
6502 general_movsrc_operand, and remove CONST_INT from
6503 general_movdst_operand.
6504
6505 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
6506
6507 * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
6508 if a reference to non-fixed hardreg is seen. Otherwise, count hard
6509 regs with a higher cost.
6510 (preferrable): Deal with cases where either cost or regcost is
6511 MAX_COST.
6512 (cse_insn): Use MAX_COST rather than 10000. Always initialize
6513 regcost values.
6514 (COSTS_N_INSNS): Move definition...
6515 * rtl.h: ...here.
6516 (MAX_COST): New macro.
6517 * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
6518 constant.
6519
6520 2000-09-11 Mark Mitchell <mark@codesourcery.com>
6521
6522 * c-common.h (genrtl_clear_out_block): Remove.
6523 * c-semantics.c (genrtl_clear_out_block): Remove.
6524 (genrtl_while_stmt): Don't call it.
6525 (genrtl_for_stmt): Likewise.
6526
6527 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
6528
6529 * cppfiles.c: Move all default-#defines to top of file.
6530 (open_include_file): Replace by lookup_include_file.
6531 (read_with_read, read_file): Merged into read_include_file.
6532 (stack_include_file, purge_cache): New functions.
6533 (close_cached_fd): Delete.
6534 (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
6535 Cache the in-memory buffer, not the file descriptor.
6536
6537 * cpphash.h (struct include_file): Add buffer, st, refcnt,
6538 mapped fields.
6539 (xcnew): New utility macro.
6540 (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
6541 * cpplib.h (struct cpp_buffer): Remove mapped field.
6542
6543 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
6544
6545 * cpplex.c (parse_string): Accept backslash space newline as a
6546 line continuation.
6547 (lex_line): Likewise.
6548 (_cpp_get_token): Remove hard limit on macro nesting.
6549
6550 2000-09-12 Philipp Thomas <pthomas@suse.de>
6551
6552 * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
6553 * configure: Rebuilt.
6554
6555 2000-09-13 Michael Hayes <mhayes@cygnus.com>
6556
6557 * flow.c (split_block): Fix update of registers live at
6558 end of split block.
6559
6560 Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
6561
6562 * i386.md (add?i_3, add?i_5): New.
6563 (add?i_4): Rename from add?i_3; Fix compare pattern.
6564 (sub?i_3, xor?i_3, ior?i_3): New.
6565
6566 * genrecog.c (write_tree): Output code to clear insn_extract cache.
6567 * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
6568 instead of extract_insn and extract_constrain_insn_cache instead of
6569 extract_insn and constrain_operands.
6570 * recog.c (extract_insn_cached, extract_constrain_insn_cached):
6571 New functions.
6572 (extract_insn): Clear which_alternative.
6573 (constrain_operands): Set which_alternative to -1 when failed.
6574 * recog.h (extract_constrain_insn_cached, extract_insn_cached):
6575 Declare.
6576
6577 2000-09-11 Matthew Hiller <hiller@redhat.com>
6578
6579 * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
6580 on operand 0 to '+'.
6581 (movstricthi): Likewise.
6582
6583 2000-09-12 Michael Hayes <mhayes@cygnus.com>
6584
6585 * loop.h (LOOP_IVS): New macro.
6586 (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
6587 (struct loop_ivs): New.
6588 (struct loop_info): Add ivs field.
6589 (reg_iv_type, reg_iv_info): Delete prototype.
6590 (reg_biv_class, loop_iv_list): Likewise.
6591 * loop.c (record_biv, find_life_end): Pass loop argument.
6592 (reg_iv_type): Remove global array and use
6593 field in loop_regs structure within loop_ivs structure.
6594 (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
6595 (first_increment_giv, last_increment_giv): Use entry in
6596 loop_ivs structure.
6597 (record_initial): Pass ivs pointer.
6598 * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
6599
6600 2000-09-12 Michael Hayes <mhayes@cygnus.com>
6601
6602 * loop.h (LOOP_REGS): New macro.
6603 (struct loop_regs): New.
6604 (struct loop_info): Add regs field.
6605 * loop.c (set_in_loop): Remove global array and store
6606 in loop_regs structure as part of loop_info structure.
6607 (n_times_set, may_not_optimize): Likewise.
6608 (reg_single_usage, moved_once): Likewise.
6609 (count_one_set): Add regs argument.
6610 (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
6611 (set_pseudo_multiple_uses): Pass regs pointer.
6612
6613 2000-09-12 Michael Hayes <mhayes@cygnus.com>
6614
6615 * unroll.c (iteration_info): Subsume into loop_iterations.
6616 * loop.h (loop_info): New field iv.
6617
6618 2000-09-12 Michael Hayes <mhayes@cygnus.com>
6619
6620 * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
6621 (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
6622 (flow_loops_update): New prototype.
6623 (flow_loops_find): Add flags to prototype.
6624 (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
6625 * flow.c (flow_loop_pre_header_scan): New.
6626 (flow_loop_dump): Dump pre-header root and trace and exit dominators.
6627 (flow_loop_free): Free pre-header root and trace and exit dominators.
6628 (flow_loops_find): New argument flags.
6629 (flow_loops_update): New function.
6630 * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
6631
6632 2000-09-12 Michael Hayes <mhayes@cygnus.com>
6633
6634 * basic-block.h (split_block, update_bb_for_insn): New prototypes.
6635 * flow.c (split_block, update_bb_for_insn): New functions.
6636
6637 2000-09-11 Richard Henderson <rth@cygnus.com>
6638
6639 * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
6640
6641 2000-09-11 Richard Henderson <rth@cygnus.com>
6642
6643 * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
6644 * config/ia64/ia64.c (fr_nonimmediate_operand): New.
6645 (ia64_override_options): Prevent optimizing division for both
6646 latency and throughput.
6647 (rtx_needs_barrier): Handle frcpa.
6648 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
6649 (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
6650 (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
6651 (TARGET_SWITCHES): Add -minline-divide-min-latency and
6652 -minline-divide-max-throughput.
6653 (PREDICATE_CODES): Update.
6654 * config/ia64/ia64.md (extendsidi2): Remove * from f case.
6655 (zero_extendsidi2): Likewise. Fix typo in f case insn.
6656 (extendsfdf2): Add cases for gr<->fr and fr<->mem.
6657 (extendsftf2): Likewise.
6658 (extenddftf2): Likewise.
6659 (fix_trunctfdi2_alts): New.
6660 (fixuns_trunctfdi2_alts): New.
6661 (madd*4): Rename from madd*3.
6662 (divsi3, modsi3, udivsi3, umodsi3): New.
6663 (divsi3_internal): New.
6664 (divdi3, moddi3, udivdi3, umoddi3): New.
6665 (divdi3_internal_lat, divdi3_internal_thr): New.
6666 (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
6667 (recip_approx): New.
6668
6669 2000-09-11 Alexandre Oliva <aoliva@redhat.com>
6670
6671 * print-rtl.c (debug_call_placeholder_verbose): New variable.
6672 (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
6673 set.
6674 * integrate.c (copy_rtx_and_substitute): Don't share
6675 LEAF_REG_REMAPpable registers with the inlined function. Don't
6676 share the function value with calling sequences.
6677
6678 2000-09-11 Jakub Jelinek <jakub@redhat.com>
6679
6680 * c-decl.c (do_case): Fix a typo.
6681
6682 * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
6683 to a if the comparison is floating mode and not -ffast-math.
6684 * simplify-rtx.c (simplify_ternary_operation): Likewise.
6685
6686 Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
6687
6688 * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
6689 gen_ic_invalidate_line.
6690
6691 2000-09-11 Philip Blundell <pb@futuretv.com>
6692
6693 * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
6694
6695 Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
6696
6697 * install.texi (LANGUAGES): Update to include new languages.
6698 * INSTALL: Rebuilt.
6699
6700 2000-09-11 DJ Delorie <dj@redhat.com>
6701
6702 * gcc.c (main): Don't warn about unused -B prefixes
6703 (unused_prefix_warnings): remove
6704
6705 2000-09-11 Kazu Hirata <kazu@hxi.com>
6706
6707 * final.c: Fix formatting.
6708
6709 * integrate.c: Fix formatting.
6710
6711 2000-09-11 Geoff Keating <geoffk@cygnus.com>
6712
6713 * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
6714
6715 2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
6716
6717 * reload.c (regno_clobbered_p): Fix thinko in previous change.
6718
6719 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
6720
6721 * gcc.1: Document 68hc11 specific options.
6722
6723 2000-09-10 Geoff Keating <geoffk@cygnus.com>
6724
6725 * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
6726 (TARGET_LONG_DOUBLE_128): Define.
6727 (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
6728 (LONG_DOUBLE_TYPE_SIZE): Redefine.
6729 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
6730 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
6731 of __LONG_DOUBLE_128__.
6732 (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
6733 passed.
6734 (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
6735 (CPP_SYSV_DEFAULT_SPEC): Define.
6736 (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
6737 (INIT_TARGET_OPTABS): Define.
6738
6739 * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
6740 (RS6000_UITRUNC): Likewise.
6741 (INIT_TARGET_OPTABS): New macro.
6742 * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
6743 (trunc_defined): Delete.
6744 (output_prolog): Don't output .extern definitions for fp->int
6745 conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
6746 * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
6747 (trunc_defined): Delete.
6748 (RS6000_ITRUNC): Moved to aix.h.
6749 (RS6000_UITRUNC): Likewise.
6750 * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
6751 only emit a libcall.
6752 (fixuns_truncdfsi2): Delete.
6753 (trunc_call): Delete.
6754 (trunc_call_rtl): Delete.
6755
6756 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
6757
6758 * varasm.c (make_decl_rtl): Restore leading star on
6759 DECL_ASSEMBLER_NAME set for decls with an asmspec.
6760
6761 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
6762
6763 * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
6764 won't give a spurious error for '#pragma pack()'. Simplify
6765 control flow for readability. 'reset' action is not necessary.
6766
6767 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
6768
6769 * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
6770 SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
6771 LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
6772 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
6773
6774 * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
6775 profile.c, sdbout.c, tradcif.y, tree.c:
6776 Include defaults.h if not already included.
6777 Don't define the above macros.
6778
6779 * Makefile.in: Update dependencies.
6780
6781 2000-09-10 Mark Mitchell <mark@codesourcery.com>
6782
6783 * c-common.h (add_stmt): Change prototype.
6784 (RECHAIN_STMTS): New macro.
6785 (CASE_LABEL_DECL): Likewise.
6786 (genrtl_case_label): Change prototype.
6787 (c_expand_start_case): Remove prototype.
6788 (build_case_label): Change prototype.
6789 (decl_constant_value): Declare.
6790 * c-common.c (check_case_value): Handle C++'s extensions to C
6791 semantics.
6792 * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
6793 field.
6794 * c-parse.in (stmt): Adjust handling of return statements and case
6795 laels.
6796 * c-semantics.c (add_stmt): Return the new statement.
6797 (genrtl_return_stmt): Take the RETURN_STMT as input, not the
6798 returned expression. Directly generate RTL, rather than calling
6799 c_expand_return.
6800 (genrtl_switch_stmt): Don't call c_expand_start_case.
6801 (build_case_label): Take the LABEL_DECL as input, too.
6802 (genrtl_case_label): Just call add_case_node.
6803 (expand_stmt): Adjust calls to genrtl_return_stmt and
6804 genrtl_case_label.
6805 * c-tree.h (c_expand_start_case): Declare.
6806 * c-typeck.c (decl_constant_value): Give it external linkage.
6807 (c_expand_return): Don't call expand_return or expand_null_return;
6808 use genrtl_return_stmt instead.
6809 * stmt.c (struct nesting): Remove num_ranges field.
6810 (add_case_node): Give it external linkage.
6811 (expand_start_case): Don't set num_ranges.
6812 (expand_start_case_dummy): Don't clear it.
6813 (pushcase): Rely on add_case_node to handle `default' labels.
6814 (add_case_node): Handle `default' labels.
6815 * tree.c (tree_int_cst_compare): New function.
6816 * tree.h (tree_int_cst_compare): Declare.
6817 (add_case_node): Likewise.
6818
6819 2000-09-10 Richard Henderson <rth@cygnus.com>
6820
6821 * c-parse.in: Revert last change.
6822 (init_reswords): Do not enter disabled keywords into the ridpointers
6823 table, modulo objc weirdness.
6824 (_yylex): Return the canonical spelling for a keyword.
6825
6826 2000-09-10 Philip Blundell <philb@gnu.org>
6827
6828 * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
6829 * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
6830
6831 Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
6832
6833 * alias.c (find_base_term): Handle ADDRESSOF.
6834 (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
6835
6836 2000-09-10 Denis Chertykov <denisc@overta.ru>
6837
6838 * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
6839 outputting templates with many lines.
6840
6841 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
6842
6843 * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
6844 to decide whether 64-bit support must be generated.
6845
6846 2000-09-10 Richard Henderson <rth@cygnus.com>
6847
6848 * c-parse.in (asm patterns): Fix volatile check.
6849
6850 2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6851
6852 * cppmacro.c (check_trad_stringification): New function.
6853 (save_expansion): If -Wtraditional, warn about stringification of
6854 macro arguments.
6855
6856 2000-09-11 Michael Hayes <mhayes@cygnus.com>
6857
6858 * loop.h (struct loop_mem_info): Move from loop.c
6859 (struct loop_info): Add fields store_mems, mems, mems_idx,
6860 mems_allocated, unknown_address_altered,
6861 unknown_constant_address_altered, num_mem_sets, and
6862 first_loop_store_insn.
6863
6864 * loop.c (loop_store_mems): Replace with field in loop_info struct.
6865 (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
6866 (unknown_address_altered, unknown_constant_address_altered): Likewise.
6867 (num_mem_sets): Likewise.
6868 (replace_loop_mems, replace_loop_regs): New.
6869 (struct loop_replace_args): New.
6870 (load_mems): Use replace_loop_mems.
6871 (try_copy_prop): Use replace_loop_regs.
6872 (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
6873
6874 2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
6875
6876 * configure.in: Recognize m6811-elf and m6812-elf.
6877 * configure: Regenerate.
6878
6879 2000-09-09 Geoff Keating <geoffk@cygnus.com>
6880
6881 * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
6882 to operand_subword.
6883
6884 2000-09-10 Michael Hayes <mhayes@cygnus.com>
6885
6886 * loop.c (struct movables): New.
6887 (num_movables): Move into struct movables.
6888 (the_movables): Change type to struct movables.
6889 (ignore_some_movables): Change struct movable arg to struct movables.
6890 (force_movables, combine_movables, regs_match_p): Likewise.
6891 (rtx_equal_for_loop_p, move_movables): Likewise.
6892 (scan_loop): Change movables to be of type struct movables.
6893 Replace last_movable with field in movables structure.
6894
6895 2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
6896
6897 * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
6898 (init_pragma): Avoid warning if pfile happens to be unused.
6899 * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
6900 define init_pragma to nothing. Always prototype
6901 init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
6902
6903 * c-lex.c (process_directive): Always call dispatch_pragma.
6904 Initialize entering_c_header to 0.
6905
6906 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
6907
6908 * config/m68hc11/m68hc11.md: New file, machine description for
6909 68HC11 & 68HC12.
6910 * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
6911 * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
6912 * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
6913 * config/m68hc11/m68hc11-protos.h: New file.
6914 * config/m68hc11/m68hc11-crt0.S: New file, startup code.
6915 * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
6916 * config/m68hc11/xm-m68hc11.h: New file, target defs.
6917 * config/m68hc11/larith.asm: New file, libgcc routines.
6918
6919 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
6920
6921 * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
6922 (FPBIT_FUNCS): Add _usi_to_sf.
6923 * config/fp-bit.c (usi_to_float): New function.
6924 * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
6925 (usi_to_float): Add appropriate #define.
6926
6927 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
6928
6929 * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
6930 new functions.
6931 * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
6932 * i386.md (attr "type"): Add sse and mmx types.
6933 (attr "memory"): Handle them without a crash.
6934 (movsi_1, movdi_2): Allow MMX regs.
6935 (movdi splits): Don't split moves involving MMX regs.
6936 (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
6937 (movv4sf_internal, movv4si_internal, movv8qi_internal,
6938 movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
6939 movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
6940 sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
6941 sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
6942 sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
6943 addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
6944 divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
6945 sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
6946 sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
6947 vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
6948 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
6949 cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
6950 addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
6951 subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
6952 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
6953 mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
6954 mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
6955 eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
6956 smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
6957 lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
6958 mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
6959 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
6960 mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
6961 mmx_clrdi): New patterns.
6962
6963 2000-09-08 Richard Earnshaw <rearnsha@arm.com>
6964
6965 * arm.c: Don't include tm.h directly.
6966
6967 Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
6968
6969 * recog.c (validate_replace_rtx_1): Fix confusion about equality
6970 testing; simplify subregs of constants and nested subregs.
6971
6972 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
6973
6974 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
6975
6976 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
6977
6978 * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
6979 VEC_CONCAT.
6980 * rtl.texi (description of USE): Add note about possible pitfalls
6981 with this rtx.
6982 From Richard Henderson:
6983 * reload1.c (choose_reload_regs): Compute need_mode properly.
6984
6985 2000-09-07 Richard Henderson <rth@cygnus.com>
6986
6987 * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
6988 (__modsi3, __umodsi3): Likewise.
6989 (__udivsi3): Likewise. Normalize the TFmode values.
6990
6991 2000-09-07 Geoff Keating <geoffk@cygnus.com>
6992
6993 * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
6994 with a prototype.
6995 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
6996 warning.
6997
6998 Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
6999
7000 * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
7001 (cmpeqdi_t): Add output pattern.
7002 (cmpeqdi_t+1): Don't split when not optimizing.
7003 Restore proper splitting operation.
7004
7005 2000-09-07 Richard Henderson <rth@cygnus.com>
7006
7007 * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
7008 do not call dispatch_pragma.
7009
7010 2000-09-07 Jim Wilson <wilson@cygnus.com>
7011
7012 * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
7013 to CLASS_CANNOT_CHANGE_MODE.
7014 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
7015 mode classes are different.
7016
7017 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
7018
7019 * cpplib.h (struct cpp_options): Add user_label_prefix member,
7020 left out of commit which removed cppulp.c.
7021
7022 2000-09-07 Richard Henderson <rth@cygnus.com>
7023
7024 * bb-reorder.c (fixup_reorder_chain): Add jump in new block
7025 after switch for CASE_DROPS_THROUGH.
7026
7027 2000-09-07 Richard Henderson <rth@cygnus.com>
7028
7029 * loop.c (strength_reduce): Call check_ext_dependant_givs.
7030 Properly extend the biv initial value for the giv.
7031 (record_biv): Zero ext_dependant.
7032 (record_giv): New argument ext_val. Update all callers.
7033 (general_induction_var): Likewise.
7034 (consec_sets_giv): Likewise.
7035 (simplify_giv_expr): Likewise. Fill in ext_val if we find
7036 a sign-extend, zero-extend, or truncate.
7037 (combine_givs_p): Make sure modes are compatible.
7038 (check_ext_dependant_givs): New.
7039 (extend_value_for_giv): New.
7040 * loop.h (struct induction): Add ext_dependant.
7041 * unroll.c (iteration_info): Extend the biv initial value for the giv.
7042 (find_splittable_givs): Likewise.
7043 (final_giv_value): Likewise.
7044
7045 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
7046
7047 * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
7048 REGISTER_TARGET_PRAGMAS is defined. Duplicate some
7049 definitions from cpplib.h.
7050 * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
7051 already done it.
7052 * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
7053 documentation for REGISTER_TARGET_PRAGMAS.
7054
7055 * c-lex.c: Include cpplib.h before c-pragma.h. Define a
7056 default-pragma callback to implement -Wunknown-pragmas if
7057 USE_CPPLIB.
7058 * c-parse.in: Move all includes to top of file.
7059 * c-pragma.c: Include cpplib.h before c-pragma.h. Include
7060 tm_p.h.
7061 (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
7062 warning.
7063 (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
7064
7065 * arm.h, arm-protos.h, arm.c,
7066 c4x.h, c4x-protos.h, c4x.c,
7067 h8300.h, h8300-protos.h, h8300.c,
7068 i370.h, i370-protos.h, i370.c,
7069 i960.h, i960-protos.h, i960.c,
7070 sh.h, sh-protos.h, sh.c,
7071 v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
7072 pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
7073
7074 * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
7075 multiple include guard.
7076 * i370.md (untyped_call): Use GEN_CALL.
7077 (umodsi3): Remove unused variable.
7078 * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
7079 * v850.c (output_move_single, output_move_double): Constify
7080 return value.
7081 (print_operand): Constify a char *.
7082 * v850.h (struct small_memory_info): Constify name member.
7083
7084 2000-09-07 Kazu Hirata <kazu@hxi.com>
7085
7086 * config/h8300.h: Fix comment typos.
7087 * config/h8300/h8300.md: Likewise.
7088 * config/h8300/lib1funcs.asm: Likewise.
7089
7090 Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
7091
7092 * Makefile.in: Remove references to cppulp.{c,o}.
7093 * cppinit.c (initialize_builtins, cpp_start_read,
7094 cpp_handle_option): Update to use cpp_options structure.
7095 * cppulp.c: Remove.
7096
7097 2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
7098
7099 * c-common.c (time_char_table): Allow %#b and %#h.
7100
7101 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7102
7103 * reorg.c (find_end_label): If the basic block reorder pass moves the
7104 return insn to some other place try to locate it again and put our
7105 end_of_function_label there.
7106 * reorg.c (relax_delay_slots): Check if find_end_label created a
7107 new label that invalidates the current optimazation.
7108
7109 2000-09-07 Catherine Moore <clm@redhat.com>
7110
7111 * unroll.c (unroll_loop): Check for unconditional jumps
7112 to loop continuation. Delete if n_iterations is 1.
7113 (ujump_to_loop_cont): New routine.
7114
7115 2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
7116
7117 * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
7118 MODE_VECTOR_FLOAT.
7119 * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
7120 to handle multiword modes correctly. All callers and the declaration
7121 changed.
7122
7123 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7124
7125 * c-common.h (prep_stmt): Declare.
7126 (lang_expand_stmt): Likewise.
7127 * c-decl.c (lang_expand_stmt): Remove.
7128 * c-semantics.c (lang_expand_stmt): Define.
7129 (prep_stmt): New function.
7130 (expand_stmt): Handle common statement types here.
7131
7132 2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
7133
7134 * configure.in (sh-*-linux*): Added.
7135 * configure: Rebuilt.
7136 * config/sh/t-linux: New file.
7137 * config/sh/sh.h (USERMODE_BIT): Define.
7138 (TARGET_USERMODE): Likewise.
7139 (TARGET_SWITCHES): New switches for the bits above.
7140 (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
7141 * config/sh/linux.h: New file.
7142 * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
7143 underscore on linux.
7144 (L_sdivsi3, L_udivsi3): Define for linux.
7145 (L_ic_invalidate): Define.
7146 * invoke.texi (SH Options): Document -musermode.
7147
7148 2000-09-07 Alexandre Oliva <aoliva@redhat.com>
7149
7150 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
7151 CSE unless generating PIC.
7152
7153 * config/sh/sh.md (symPLT_label2reg): Force the initialization of
7154 the PIC register.
7155
7156 2000-09-06 H.J. Lu (hjl@gnu.org)
7157
7158 * Makefile.in (clean_s1): Depend on stage_b.
7159 (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
7160 stage2. They are used for "make compare".
7161
7162 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7163
7164 Move statement-tree facilities from C++ to C front-end.
7165 * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
7166 (void_zero_node): New macro.
7167 (struct stmt_tree_s): New type.
7168 (stmt_tree): New typedef.
7169 (struct language_function): New type.
7170 (last_tree): New macro.
7171 (last_expr_type): Likewise.
7172 (walk_tree_fn): New typedef.
7173 (current_stmt_tree): New function.
7174 (begin_stmt_tree): Likewise.
7175 (add_stmt): Likewise.
7176 (finish_stmt_tree): Likewise.
7177 (statement_code_p): Likewise.
7178 (lang_statement_code_p): New variable.
7179 (walk_stmt_tree): New function.
7180 (STMT_IS_FULL_EXPR_P): New macro.
7181 * c-common.c (lang_statement_code_p): New variable.
7182 (c_common_nodes_and_builtins): Initialize void_zero_node.
7183 (statement_code_p): New function.
7184 (walk_stmt_tree): Likewise.
7185 * c-decl.c (language_function): Rename to ...
7186 (c_language_function): ... this. Include language_function.
7187 (push_c_function_context): Adjust accordingly.
7188 (pop_c_function_context): Likewise.
7189 (mark_c_function_context): Likewise.
7190 (current_stmt_tree): Define.
7191 * c-semantics.c (begin_stmt_tree): New function.
7192 (add_stmt): Likewise.
7193 (prune_unused_decls): Likewise.
7194 (finish_stmt_tree): Likewise.
7195
7196 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7197
7198 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
7199
7200 2000-09-06 Kazu Hirata <kazu@hxi.com>
7201
7202 * calls.c: Fix formatting.
7203
7204 2000-09-06 Graham Stott <grahams@cygnus.co.uk>
7205
7206 * config/i386/i386.h (ADDRESS_COST): Fix typo.
7207
7208 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
7209
7210 Integrated preprocessor.
7211
7212 * Makefile.in: Remove all references to c-parse.gperf,
7213 c-gperf.h, and c-parse.h. Remove -d from yacc command line
7214 generating c-parse.c. Update dependencies.
7215 * c-parse.gperf, c-gperf.h: Delete.
7216
7217 * c-common.c: Don't define parse_options, cpp_token, yy_cur,
7218 yy_lim, or yy_get_token. Don't define get_directive_line if
7219 USE_CPPLIB.
7220 * c-common.h: Add multiple include guard. Define RID values
7221 for every keyword in C, C++, and Objective C. Put all the
7222 modifiers first.
7223 (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
7224 * c-decl.c (c_decode_option): Handle -lang-objc here.
7225 (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
7226 (grokdeclarator): Adjust for new RID scheme.
7227 (extract_interface_info): New stub.
7228 * c-lang.c: Don't declare yy_cur or parse_options.
7229 (lang_init_options): Call cpp_init. Don't call
7230 cpp_options_init.
7231 (lang_init): Don't call check_newline if USE_CPPLIB.
7232
7233 * c-lex.c: Don't include c-parse.h. Do include timevar.h.
7234 Elide lots of unnecessary code if USE_CPPLIB. Delete code
7235 rendered unnecessary by new architecture. Move routines not
7236 shared with C++ to c-parse.in. Maintain a local idea of the
7237 line number. Handle C++ as well as C.
7238 [USE_CPPLIB]: Declare and register callbacks for #ident and
7239 for entering/leaving files.
7240 (init_c_lex, c_lex): Are now the entry points to this file.
7241 (check_newline): Break out directive handling to
7242 process_directive.
7243 (read_ucs, is_extended_char, utf8_extend_token): Moved here
7244 from C++ front end.
7245 (readescape, parse_float): Overhaul.
7246 (lex_number, lex_string, lex_charconst): Break out of c_lex
7247 (n'ee yylex).
7248 (get_fileinfo, update_header_times, dump_one_header,
7249 dump_time_statistics): New and/or moved here from C++.
7250 Support per-file data needed by C++ and per-header timing
7251 statistics (C++ only, at the moment).
7252 * c-lex.h: Update prototypes. Add multiple include guard.
7253 * c-tree.h (struct lang_identifier): Add rid_code field.
7254 (C_IS_RESERVED_WORD, C_RID_CODE): New.
7255
7256 * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
7257 reinit_parse_for_function and/or position_after_white_space.
7258 (save_filename, save_lineno): Look ahead before saving.
7259 (label -> identifier ':'): Save file and line before shifting ':'.
7260 (reservedwords): No need to call get_identifier.
7261 (init_parse, finish_parse, yyerror, yylex, yyprint,
7262 make_pointer_declarator): Are now here for C/ObjC.
7263 (rid_to_yy): Conversion table from RID constants to Yacc codes.
7264
7265 * c-pragma.c: Rewrite parsing logic to fit with cpplib's
7266 #pragma registry. Provide dummy implementation of that
7267 interface if !USE_CPPLIB.
7268 * c-pragma.h: Update to match.
7269
7270 * flags.h: Add multiple include guard.
7271 (flag_detailed_statistics): Moved here from C++.
7272 * toplev.c: Define flag_detailed_statistics.
7273
7274 * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
7275 #if USE_CPPLIB.
7276 * timevar.def (TV_CPP, TV_LEX): New.
7277 * timevar.h: Add multiple include guard.
7278
7279 * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
7280 #if USE_CPPLIB.
7281 * objc/objc-act.c: Don't mention yy_cur or parse_options.
7282 Initialize cpplib properly. Force lineno to 0 after first
7283 call to check_newline. Don't handle -lang-objc here.
7284 Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
7285
7286 2000-09-06 David Edelsohn <edelsohn@gnu.org>
7287
7288 * rs6000.md: Correct function unit definitions for cr_logical and
7289 mtjmpr.
7290 (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
7291 and use portable method for >=0 and floating point >=. Remove
7292 associated matchers.
7293
7294 2000-09-06 Mark Mitchell <mark@codesourcery.com>
7295
7296 * extend.texi: Mark named return value extension as deprecated.
7297
7298 2000-09-06 Geoff Keating <geoffk@cygnus.com>
7299
7300 * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
7301 the result.
7302
7303 2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
7304
7305 * toplev.c (display_help): Fix thinko in documentation.
7306
7307 * diagnostic.h (output_buffer::indent_skip): New fields.
7308 (output_indentation): New macro.
7309
7310 * diagnostic.c (output_indent): New function.
7311 (output_set_prefix, clear_diagnostic_info): Use.
7312 (output_emit_prefix): Predict future indentation.
7313
7314 2000-09-06 DJ Delorie <dj@redhat.com>
7315
7316 * Makefile.in (stage_*): add more dependencies to ensure parallel
7317 builds build correctly
7318
7319 2000-09-06 Manfred Hollstein <manfredh@redhat.com>
7320
7321 * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
7322 not bootstrap-lean_f.
7323
7324 2000-09-06 Andreas Schwab <schwab@suse.de>
7325
7326 * mklibgcc.in: Emit rule for libgcc-stage-start.
7327 * Makefile.in (stage1-start, stage2-start, stage3-start,
7328 stage4-start): Don't handle libgcc here, use libgcc.mk instead.
7329
7330 2000-09-06 Bernd Schmidt <bernds@redhat.co.uk>
7331
7332 * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
7333 (update_equiv_regs): Likewise, except for the mn10200 kludge.
7334 (combine_regs): Likewise.
7335
7336 * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
7337 * cse.c: Include "basic-block.h".
7338 (struct table_elt): New field REGCOST.
7339 (CHEAP_REG): Delete macro.
7340 (COST): Return 0 for REGs.
7341 (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
7342 (notreg_cost): Return 0 for appropriate SUBREGs.
7343 (COSTS_N_INSNS): Return N * 2.
7344 (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
7345 SUBREGs.
7346 (CHEAPER): Use new function preferrable.
7347 (insert): Initialize REGCOST member.
7348 (find_best_addr): Use approx_reg_cost for estimation of register
7349 usage.
7350 (cse_insn): Likewise.
7351 * loop.c (iv_add_mult_cost): New function.
7352 (add_cost, shift_cost, mult_cost): Delete variables.
7353 (init_loop): Don't initialize add_cost; reduce copy_cost by half.
7354 (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
7355 Make code that detects autoinc opportunities slightly less optimistic.
7356 (simplify_giv_expr): If expression contains other reg that is also a
7357 giv, only increment benefit if this is the only use of that reg.
7358 (consec_sets_giv): Take that change into account.
7359 (combine_givs): Slightly more verbose output.
7360
7361 * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
7362 not the cost of an equivalent shift.
7363 * sh-protos.h (addsubcosts): Declare.
7364 * sh.c (addsubcosts): New function.
7365 * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
7366 (RTX_COSTS): Tweak. Use addsubcosts.
7367 (ADDRESS_COST): Return higher cost for reg+reg addressing.
7368
7369 2000-09-06 Geoff Keating <geoffk@cygnus.com>
7370
7371 * config/rs6000/rs6000.c (validate_condition_mode): New function.
7372 (branch_comparison_operator): Call validate_condition_mode to
7373 abort rather than returning 0.
7374 (branch_positive_comparison_operator): New function.
7375 (scc_comparison_operator): Call validate_condition_mode to abort
7376 rather than returning 0.
7377 (ccr_bit): Call validate_condition_mode. Update for
7378 new branch scheme.
7379 (print_operand): Delete %C modifier. Update %E case
7380 to use EQ bit not SO bit.
7381 (rs6000_reverse_condition): New function.
7382 (rs6000_generate_compare): New function.
7383 (rs6000_emit_sCOND): New function.
7384 (rs6000_emit_cbranch): New function.
7385 (output_cbranch): The length of a long branch insn is
7386 now only 8 bytes. Add validate_condition_mode. Use
7387 rs6000_reverse_condition. Remove cror generation.
7388
7389 * config/rs6000/rs6000.h: Update comments.
7390 (PREDICATE_CODES): Add new predicate. Update codes used
7391 by branch_comparison_operator and scc_comparison_operator.
7392 * config/rs6000/rs6000-protos.h: Add prototypes for
7393 new external functions.
7394 * config/rs6000/rs6000.md: Add new scheduling parameters
7395 for cr_logical instructions. Change length of branch
7396 instructions.
7397 (bCOND patterns): Call rs6000_emit_cbranch.
7398 (sCOND patterns): Call rs6000_emit_sCOND.
7399 (branch patterns): Change lengths to 4.
7400 (cr logical patterns): New.
7401
7402 2000-09-06 Richard Henderson <rth@cygnus.com>
7403
7404 * config/i386/i386.md (call_pop): Fix test for setting
7405 current_function_uses_pic_offset_table.
7406 (call, call_value_pop, call_value): Likewise.
7407
7408 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
7409
7410 * timevar.c (timevar_add): Delete.
7411 (timevar_get): Also count time since the selected timer was
7412 last updated. Do not examine the timevar stack if the
7413 selected timer is standalone.
7414
7415 2000-09-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7416
7417 * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
7418
7419 2000-09-05 Jason Merrill <jason@redhat.com>
7420
7421 * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
7422 for 'extern' arrays.
7423
7424 2000-09-05 Richard Henderson <rth@cygnus.com>
7425
7426 * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
7427 Eliminate final copy from non-trapping case.
7428 (__divdf3, __divsf3): Likewise.
7429
7430 2000-09-05 Richard Henderson <rth@cygnus.com>
7431
7432 * config/ia64/ia64.md (mulhi3): Fix typo last change.
7433 * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
7434
7435 2000-09-03 Donn Terry <donn@interix.com>, Laurynas Biveinis <lauras@softhome.net>
7436
7437 * Makefile.in: Restructure bootstrap stages to allow clean
7438 restart after failure.
7439
7440 2000-09-05 Richard Henderson <rth@cygnus.com>
7441
7442 * config/ia64.md (movsi and movdi patterns): Allow moves from
7443 8-bit constants to AR registers.
7444
7445 2000-09-05 Richard Henderson <rth@cygnus.com>
7446
7447 * config/ia64/ia64.md (mulhi3): New.
7448
7449 2000-09-05 Richard Henderson <rth@cygnus.com>
7450
7451 * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
7452 * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
7453 Optimization Guide, minimum latency alternative.
7454 (__moddi3, __udivdi3, __umoddi3): Likewise.
7455 (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
7456
7457 2000-09-05 Bruce Korb <bkorb@gnu.org>
7458
7459 * fixinc/fixincl.c (load_file): always read header files
7460 with sizes that are a multiple of the page size.
7461 & use libiberty's getpagesize for determining that.
7462
7463 2000-09-05 Alexandre Oliva <aoliva@redhat.com>
7464
7465 * gcse.c (hash_string_1): Add prototype.
7466 * cse.c (canon_hash_string): Likewise.
7467
7468 2000-09-04 Craig Newell <CraigN@ieee.org>
7469
7470 * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
7471
7472 2000-09-04 Andreas Schwab <schwab@suse.de>
7473
7474 * Makefile.in (STAGESTUFF): Remove libgcc.
7475 (stage1-start, stage2-start, stage3-start): Copy the contents of
7476 the libgcc directory explicitly.
7477 (mostlyclean): Clean libgcc.
7478
7479 2000-09-04 Andrew Haley <aph@redhat.com>
7480
7481 * dwarf2out.c: (stack_adjust_offset): New prototype.
7482
7483 Wed Jan 1 00:23:59 MET 1997 Jan Hubicka <jh@suse.cz>
7484
7485 * combine.c (make_extraction): Fix rtx_cost comparison to
7486 match the comment.
7487
7488 Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
7489
7490 * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
7491 umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
7492 Add '*' to insn pattern name.
7493
7494 2000-09-04 Jakub Jelinek <jakub@redhat.com>
7495
7496 * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
7497 use posn - 1 to index into tokens array.
7498 (maybe_paste_with_next): Adjust caller.
7499
7500 2000-09-03 Geoff Keating <geoffk@cygnus.com>
7501
7502 * invoke.texi: Document the -mvxworks option for rs6000 ELF.
7503
7504 * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
7505 (REGNO_REG_CLASS): Use symbolic register
7506 names.
7507
7508 2000-09-03 Richard Earnshaw <rearnsha@arm.com>
7509
7510 * arm.c (final_prescan_insn): If the form of a jump insn isn't
7511 recognized, don't try to conditionally execute it.
7512
7513 Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
7514
7515 * config/avr/avr.md ("*tablejump_lib"): New pattern.
7516 (call_value_insn): Right length claculation.
7517 (call_insn): Likewise.
7518
7519 2000-09-02 Marek Michalkiewicz <marekm@linux.org.pl>
7520
7521 * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
7522 gas_output_limited_string, gas_output_ascii, output_movqi,
7523 output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
7524 out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
7525 out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
7526 ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
7527 lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
7528 out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
7529 Add "const" as needed to remove warnings.
7530
7531 * config/avr/avr.c (avr_override_options, avr_init_once,
7532 function_prologue, function_epilogue, frame_pointer_required_p,
7533 class_likely_spilled_p, order_regs_for_local_alloc,
7534 avr_address_cost, avr_ret_register): Use K&R style arguments.
7535 (initial_elimination_offset, gas_output_limited_string):
7536 Remove ATTRIBUTE_UNUSED from the used arguments.
7537 (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
7538 Use local variables src, dest, base to access operands[].
7539 Rename reg_dest to reg_src if that's what it is.
7540 (output_movhi, output_movsisf): Optimize loading 8-bit immediate
7541 constants to LD_REGS if reg_was_0.
7542 (output_reload_insisf): Change arg 3 to insn length and set it.
7543 (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
7544 access to 16-bit I/O register pairs.
7545 (avr_address_cost): Lower cost for the above case.
7546 (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
7547 may be clobbered, also for LD_REGS.
7548 (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
7549 with a CONST_INT.
7550
7551 * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
7552
7553 * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
7554 macro to test_hard_reg_class function.
7555 (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
7556 for loading immediate constants to LD_REGS.
7557 (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
7558
7559
7560 Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
7561
7562 * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
7563 * config/avr/libgcc.S: Lost part of the previous patch.
7564
7565 2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7566
7567 * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
7568 object before calling pthread_mutex_init.
7569
7570 2000-09-02 Alexandre Oliva <aoliva@redhat.com>
7571
7572 * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
7573 config/sh/crtn.asm: New files.
7574 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
7575 (crt1.o, crti.o, crtn.o): New targets.
7576 * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
7577 sh/t-elf.
7578 * configure: Rebuilt.
7579 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7580 STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
7581 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
7582 Undefine for config/elfos.h to redefine.
7583 (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
7584
7585 2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
7586
7587 * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
7588 legitimize_pic_address, output_pic_addr_const): Declare.
7589 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
7590 (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
7591 (TARGET_SWITCHES): New switch -mprefergot.
7592 (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
7593 (PIC_OFFSET_TABLE_REGNUM): Define.
7594 (GOT_SYMBOL_TABLE): Likewise.
7595 (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
7596 (ENCODE_SECTION_INFO): Define.
7597 (FINALIZE_PIC): New macros.
7598 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
7599 (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
7600 * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
7601 (prepare_move_operands): Call emit_pic_move or
7602 emit_pic_const_move if appropriate.
7603 (output_far_jump): For PIC, use braf and output long offset.
7604 (machine_dependent_reorg):
7605 (sh_expand_prologue): Save and initialize the PIC register.
7606 (sh_expand_epilogue): Restore it.
7607 (initial_elimination_offset): Account for it.
7608 (nonpic_symbol_mentioned_p): New function.
7609 (legitimize_pic_address): Likewise.
7610 (output_pic_addr_const): Likewise.
7611 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
7612 (call, call_value): Use them.
7613 (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
7614 symPLT_label2reg): New expands.
7615 * invoke.texi (SH Options): Document -mprefergot.
7616
7617 2000-09-01 Alexandre Oliva <aoliva@redhat.com>
7618
7619 * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
7620 * gcse.c (hash_string_1): New function.
7621 (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
7622 (expr_equiv_p) <ASM_OPERANDS>: Likewise.
7623 * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
7624 (canon_hash_string): New function.
7625 (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
7626 (exp_equiv_p) <ASM_OPERANDS>: Likewise.
7627 (fold_rtx): Use ASM_OPERANDS accessor macros.
7628 * emit-rtl.c (copy_insn_1): Likewise.
7629 * integrate.c (copy_rtx_and_substitute): Likewise.
7630 * stmt.c (expand_asm_operands): Likewise. Give an
7631 ASM_OPERANDS rtx the mode of the output reg being set from it.
7632
7633 2000-09-01 Fred Fish <fnf@be.com>
7634
7635 * fix-header.c (write_rbrac): Add putc and getc to list of
7636 functions to protect against prior definition as a macro.
7637
7638 2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
7639
7640 * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
7641 (c_size_type_node): Define.
7642 * c-decl.c (init_decl_processing): Initialize c_size_type_node.
7643 * c-common.c (enum format_lengths, enum format_std_version,
7644 format_length_info, format_type_detail, BADLEN, NOLENGTHS,
7645 format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
7646 T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
7647 T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
7648 T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
7649 TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
7650 format_types): Define.
7651 (format_char_info, print_char_table, scan_char_table,
7652 time_char_table): Rearrange for new organization of information
7653 about format length modifiers and standard versions.
7654 (T_ST): Redefine to use c_size_type_node.
7655 (check_format_info): Obtain information about length modifiers and
7656 standard versions from tables. Adjust warning message wordings.
7657 Use the name from the user's program for `ll' and `hh' length
7658 modifiers in warning messages. Use more informative names for
7659 wanted types where available (for wchar_t, wint_t, size_t, signed
7660 size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
7661
7662 2000-09-01 Jim Wilson <wilson@cygnus.com>
7663
7664 * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
7665 * combine.c (distribute_notes): Handle REG_NORETURN.
7666 * rtl.c (reg_note_name): Add REG_NORETURN.
7667 * rtl.h (enum reg_note): Likewise.
7668
7669 * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
7670 ia64_file_start.
7671 * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
7672 (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
7673 (emit_predicate_relation_info): Handle conditional calls with
7674 REG_NORETURN.
7675 * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
7676 instead of ia64_file_start.
7677 * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
7678 * config/ia64/ia64.md (safe_across_calls_all,
7679 save_across_calls_normal): New patterns.
7680
7681 * loop.c (check_final_value): Check for biv use before checking for
7682 giv use. Check for both biv and giv uses. Always set last_giv_use
7683 if there is a giv use.
7684
7685 2000-09-01 Richard Henderson <rth@cygnus.com>
7686
7687 * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
7688 (madddi3): Likewise.
7689 (maddsi3): New.
7690
7691 Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7692
7693 * expr.c (clear_storage): Don't use emit_move_insn unless
7694 either BLKmode or proper size.
7695 (store_constructor): Don't call clear_storage if REG of wrong size.
7696
7697 * flow.c (init_propagate_block_info): Don't mark frame dead at end
7698 of function if returns wiht stack pointer depressed.
7699
7700 2000-09-01 Andrew Haley <aph@redhat.com>
7701
7702 * dwarf2out.c (stack_adjust_offset): New function.
7703 (dwarf2out_stack_adjust): Break out stack adjust logic into
7704 new stack_adjust_offset function. Look inside parallels and
7705 sequences for stack adjustments.
7706
7707 2000-08-31 Jeff Law <law@cygnus.com>
7708
7709 * arm.md: Use no_new_pseudos to determine when it is safe
7710 to create new pseudo registers.
7711
7712 * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
7713 when we can safely allocate new registers.
7714
7715 2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
7716
7717 * stmt.c (expand_asm_operands): Twiddle generating_concat_p
7718 so that CONCATs are not generated for ASMs.
7719 * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
7720 not generating_concat_p.
7721 * function.c (pop_function_context_from): Reset
7722 generating_concat_p.
7723 (prepare_function_start): Likewise.
7724 * rtl.c (generating_concat_p): Define.
7725 * rtl.h (generating_concat_p): Declare.
7726 * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
7727
7728 2000-08-22 Philipp Thomas <pthomas@suse.de>
7729 Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
7730
7731 * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
7732 for translation.
7733
7734 2000-08-30 Greg McGary <greg@mcgary.org>
7735
7736 * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
7737 * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
7738 * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
7739
7740 2000-08-30 Greg McGary <greg@mcgary.org>
7741
7742 * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
7743 (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
7744 (TREE_INT_CST): New macro.
7745 * varasm.c (const_hash, compare_constant_1, record_constant_1):
7746 Use new macro TREE_INT_CST.
7747
7748 Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
7749
7750 * contrib.texi: Add self.
7751
7752 2000-08-30 Alexandre Oliva <aoliva@redhat.com>
7753
7754 * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
7755 (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
7756 and labels.
7757
7758 2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7759
7760 * fixinc/gnu-regex.c: Don't define `const'.
7761
7762 Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7763
7764 * expr.c (store_constructor): Allow variable bounds of array type.
7765 (expand_expr): Don't blow up if type is ERROR_MARK.
7766 * varasm.c (output_constructor): Don't access lower bound of array
7767 type unless need it if index is supplied (so it can be a variable
7768 if no index is supplied).
7769 Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
7770 Other minor cleanups.
7771
7772 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7773
7774 * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
7775 for compilations in stage 1 and subsequent stages, respectively.
7776 * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
7777 * configure: Rebuilt.
7778 * x-vax, x-vax-gcc: Deleted.
7779
7780 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
7781
7782 * c-common.c (declare_function_name): Use func_id_node,
7783 function_id_node, and pretty_function_id_node. Do not make
7784 __func__ visible at file scope.
7785 * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
7786 CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
7787 (function_id_node, pretty_function_id_node, func_id_node): New
7788 macros.
7789 * c-decl.c (init_decl_processing): Initialize function_id_node,
7790 pretty_function_id_node, and func_id_node.
7791 (c_make_fname_decl): Correct comment.
7792
7793 * tree.h (struct tree_identifier): Constify pointer member.
7794
7795 * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
7796 * c-pragma.h (struct weak_syms): Constify name and value members.
7797 (add_weak): Constify arguments.
7798
7799 * calls.c (special_function_p): Constify a char *.
7800 (expand_call): Remove variable which is initialized and then
7801 never used.
7802 * dependence.c (struct def_use, struct induction, struct subscript):
7803 Constify 'variable' member.
7804 (get_low_bound, have_induction_variable): Constify char * argument.
7805 (find_induction_variable): Add braces to avoid dangling else.
7806 (classify_dependence): Constify char * arrays.
7807 * profile.c (output_func_start_profiler): Constify a char *.
7808 * stor-layout.c (finalize_record_size): Constify a char *.
7809 * tree.c (is_attribute_p): Constify a char *.
7810 * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
7811
7812 * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
7813 for comprehensibility. Do not call get_identifier if we did
7814 not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
7815 create temporary string constants, not ggc_alloc_string. No
7816 need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
7817 char * to hold IDENTIFIER_POINTERs.
7818
7819 2000-08-29 Richard Henderson <rth@cygnus.com>
7820
7821 * config/ia64/ia64.md (muldi3): Use grfr_register_operand
7822 for the inputs.
7823
7824 2000-08-29 Richard Henderson <rth@cygnus.com>
7825
7826 * reload.c (push_secondary_reload): Allow class == reload_class
7827 if we're using a reload_in/out pattern.
7828
7829 * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
7830 the half that does not conflict with the reload register.
7831 (reload_outti): Likewise.
7832
7833 2000-08-29 Kazu Hirata <kazu@hxi.com>
7834
7835 * reload.c: Fix formatting.
7836
7837 * stmt.c: Fix formatting.
7838
7839 * gcc.c: Fix formatting.
7840
7841 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
7842
7843 * flags.h (time_report, mem_report): New global flags.
7844 * toplev.c: Define time_report and mem_report.
7845 (f_options): Add -ftime-report and -fmem-report.
7846 (compile_file): Turn on time_report if quiet_flag is off.
7847 Call ggc_print_statistics at very end if mem_report is on.
7848 * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
7849
7850 * ggc-common.c (ggc_print_statistics): Rename to
7851 ggc_print_common_statistics; all callers changed. Scale
7852 quantities above 10K to kilobytes and above 10M to megabytes.
7853 * ggc-page.c (ggc_page_print_statistics): Rename to
7854 ggc_print_statistics. Report memory consumed by internal data
7855 structures for each allocation bucket. Scale quantities above
7856 10K to kilobytes and above 10M to megabytes.
7857 * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
7858 Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
7859 Define tally_leaves always.
7860 (ggc_print_statistics): New function.
7861 * ggc.h: Adjust for renamed functions.
7862
7863 Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
7864
7865 * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
7866 output_movsisf instead of which_alternative.
7867
7868 * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
7869
7870 Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
7871
7872 * config/avr/avr-protos.h: (avr_output_ascii) Removed.
7873 (avr_progmem_p): New prototype.
7874 (output_movsisf): Prototype declaration changed.
7875 (output_movqi): New prototype.
7876 (output_movhi): New prototype.
7877 (call_insn_operand): Likewise.
7878 (final_prescan_insn): Likewise.
7879 (avr_simplify_comparision_p): Likewise.
7880 (avr_normalize_condition): Likewise.
7881 (compare_eq_p): Likewise.
7882 (out_shift_with_cnt): Likewise.
7883 (const_int_pow2_p): Likewise.
7884 (output_reload_inhi): Prototype declaration changed.
7885
7886 * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
7887 (ldi_reg_rtx): New. rtx for r31.
7888 (avr_init_stack): Initialize as "__stack".
7889 (function_prologue): Use it.
7890 Replace all TARGET_ENHANCED with AVR_ENHANCED.
7891 (avr_mcu_name): Initialize as "avr2".
7892 (avr_enhanced_p, avr_mega_p): New variables.
7893 (mcu_types, avr_override_options): Handle all known MCU types.
7894 Also handle avr1 (only preprocess, assemble and link).
7895 (print_operand): Using of `%K' in output template removed.
7896 (out_movqi_r_mr): Optimized.
7897 (out_movhi_r_mr): Likewise.
7898 (output_movqi): New function.
7899 (output_movhi): Likewise.
7900 (out_movsi_r_mr): Optimized.
7901 (output_movsisf): Compute insn length for `adjust_insn_length'
7902 (out_movqi_mr_r): Optimized.
7903 (out_movhi_mr_r): Optimized.
7904 (adjust_insn_length): Use output_movsisf, output_movqi,
7905 output_movhi for insn length adjusting.
7906 (reg_unused_after): Use dead_or_set_p.
7907 (preferred_reload_class): Now havn't any restriction.
7908 (reg_was_0): New function.
7909 (io_address_p): Likewise.
7910 (const_int_pow2_p): Likewise.
7911 (output_reload_inhi): Likewise.
7912 (output_reload_insisf): Likewise.
7913
7914 * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
7915 (LIB_SPEC): Use -lc for all supported devices.
7916 (LIBGCC_SPEC): Use -lgcc for all supported devices.
7917 (AVR_MEGA): Define as avr_mega_p.
7918 (AVR_ENHANCED): New, define as avr_enhanced_p.
7919 (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
7920 (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
7921 (CRT_BINUTILS_SPECS): Handle all known MCU types.
7922 Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
7923 (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
7924 (ASM_SPEC): Pass -mmcu=... to the assembler.
7925 Change all -DAVR_* to -D__AVR_*__.
7926 (INIT_TARGET_OPTABS), config/avr/libgcc.S:
7927 Rename library functions to start with two underscores.
7928 (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
7929 alignment.
7930 (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
7931 (SUPPORTS_WEAK): Likewise.
7932 (LDI_REG_REGNO): New. Register r31 will be used as temporary
7933 register for loading constants to r0-r14.
7934
7935 * config/avr/avr.md: Replace all TARGET_ENHANCED with
7936 AVR_ENHANCED.
7937 (*mov_r_sp): Removed. Handled by output_movhi.
7938 (*mov_sp_r): Likewise.
7939 (*mov_sp_r_no_interrupts): Likewise
7940 (*mov_sp_r_tiny): Likewise.
7941 (*movqi): Use output_movqi.
7942 (*reload_inqi): New.
7943 (*movhi): Use output_movhi.
7944 (*reload_inhi): New.
7945 (*negsi2): Optimized.
7946 (*negsf2): Likewise.
7947 Added peepholes (define_peephole2) for loading constants to r0-r14
7948 and for using `cpse' command.
7949
7950 * config/avr/libgcc.S: Rename library functions to start with two
7951 underscores.
7952 Add support for enhanced core.
7953 (_moqhi3): Fix typo, now _modqi3.
7954 (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
7955 (__prologue_saves__): Remove test for stack adjust by 0.
7956 (__tablejump__): New.
7957
7958 * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
7959 Add multilib support.
7960
7961 Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com)
7962
7963 * loop.c (prescan_loop): Don't check unknown_address_altered
7964 when deciding if insert_loop_mem is safe. Add BLKmode MEMs
7965 to loop_store_mems as necessary.
7966 (loop_invariant_p): Don't check unknown_address_altered
7967 or unknown_constant_address_altered.
7968
7969 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7970
7971 * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
7972
7973 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
7974
7975 * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
7976 print just the filename.
7977 * cpplex.c (_cpp_run_directive): Add additional argument, the
7978 name to give the synthetic buffer. This defaults to
7979 translated "<command line>".
7980 * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
7981 Adjust to match.
7982 (_cpp_define_builtin): New function.
7983 * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
7984 * cpphash.h: Update prototypes.
7985
7986 * tradcpp.c (main): Process -D and -U simultaneously, in the
7987 order they appeared on the command line.
7988
7989 2000-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7990
7991 * c-decl.c (define_label): Call warning_with_file_and_line and
7992 error_with_file_and_line instead of plain warning or error.
7993
7994 * c-parse.in (label): Use save_filename/save_lineno to ensure
7995 correct values for calls to define_label.
7996
7997 2000-08-29 Mark Mitchell <mark@codesourcery.com>
7998
7999 * calls.c (expand_call): Don't create a VAR_DECL just to throw it
8000 away.
8001 * expr.c (expand_expr, case TARGET_EXPR): Don't call
8002 mark_addressable.
8003 * tree.h (get_file_function_name): Remove two duplicate
8004 declarations.
8005
8006 2000-08-28 Kazu Hirata <kazu@hxi.com>
8007
8008 * tree.c: Fix formatting.
8009
8010 * xcoffout.c: Fix formatting.
8011
8012 2000-08-28 Jason Merrill <jason@redhat.com>
8013
8014 * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
8015
8016 2000-08-28 Daniel Berlin <dberlin@redhat.com>
8017
8018 * dwarf2out.c (dwarf2out_finish): Don't bother calling
8019 break_out_includes if it won't do anything.
8020
8021 2000-08-28 Richard Henderson <rth@cygnus.com>
8022
8023 * reload.c (push_secondary_reload): Revert 2000-08-16 change.
8024 (find_reloads): Likewise.
8025 * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
8026 (reload_inhi): Likewise.
8027
8028 2000-08-28 Richard Henderson <rth@cygnus.com>
8029
8030 * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
8031 (call_insn_operand): Don't expect a surrounding mem.
8032 (constant_call_address_operand): Likewise.
8033 * config/i386/i386.h (PREDICATE_CODES): Update.
8034 * config/i386/i386.md (call patterns): Move the match_operand
8035 for the call destination inside the mem.
8036
8037 2000-08-28 Richard Henderson <rth@cygnus.com>
8038
8039 * local-alloc.c (requires_inout): Don't use reserved range for
8040 EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
8041 * recog.c (asm_operand_ok): Likewise.
8042 (preprocess_constraints, constrain_operands): Likewise.
8043 * regclass.c (record_reg_classes): Likewise.
8044 * reload.c (find_reloads): Likewise.
8045 * reload1.c (maybe_fix_stack_asms): Likewise.
8046 (reload_cse_simplify_operands): Likewise.
8047 * stmt.c (expand_asm_operands): Likewise.
8048
8049 * md.texi: Update constraints documentation.
8050 * tm.texi (EXTRA_CONSTRAINT): Update.
8051
8052 2000-08-28 Daniel Berlin <dberlin@redhat.com>
8053
8054 * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
8055 (print_die): If we don't know the offset of the
8056 target die, try the symbol. Add a trailing newline.
8057 (reverse_all_dies): New fn.
8058 (dwarf2out_finish): Call it.
8059 (break_out_includes): Reorganize for clarity.
8060 (add_sibling_attributes): Don't call reverse_die_lists.
8061 (output_comp_unit): Rename from output_comdat_comp_unit. Use for
8062 primary CU, too.
8063 * flags.h: Add flag_eliminate_dwarf2_dups.
8064 * toplev.c (f_options): Support -feliminate-dwarf2-dups.
8065
8066 2000-08-28 Jason Merrill <jason@redhat.com>
8067
8068 * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
8069 * dwarf2out.c: #include "md5.h".
8070 (DIE_LABEL_PREFIX): New macro.
8071 (dw_val_struct): Add 'external' flag to val_die_ref.
8072 (add_AT_die_ref, AT_ref): Adjust.
8073 (AT_ref_external, set_AT_ref_external): New fns.
8074 (build_abbrev_table): Call set_AT_ref_external.
8075 (value_format): Call AT_ref_external.
8076 (die_struct): Add die_symbol field.
8077 (new_die): Clear it.
8078 (dwarf_tag_name): Handle BINCL/EINCL.
8079 (dwarf2out_start_source_file): Add BINCL DIE.
8080 (dwarf2out_end_source_file): Add EINCL DIE.
8081 (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
8082 (loc_checksum, attr_checksum, die_checksum): New fns.
8083 (is_type_die, is_comdat_die, is_symbol_die): New fns.
8084 (compute_section_prefix, assign_symbol_names): New fns.
8085 (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
8086 (output_die): Call output_die_symbol and AT_ref_external.
8087 (output_comdat_comp_unit): New fn, split out from...
8088 (dwarf2out_finish): ...here. Also call add_sibling_attributes for
8089 secondary CUs.
8090 (output_pubnames, output_aranges): Abort if we see entries from
8091 secondary CUs.
8092 * toplev.h: Declare file_name_nondirectory.
8093 * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
8094 (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
8095 (debug_start_source_file): Call dwarf2out_start_source_file
8096 regardless of debug verbosity.
8097 (debug_end_source_file): Similarly.
8098 * tree.h: Declare clean_symbol_name.
8099 * tree.c (clean_symbol_name): Split out from...
8100 (get_file_function_name_long): ...here.
8101
8102 * dwarf2out.c (new_loc_descr): Use calloc.
8103 (splice_child_die): Remove the die from the right parent.
8104 (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
8105
8106 Mon Aug 28 19:02:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8107
8108 * toplev.c (decode_g_option): Don't give warning for unknown -g
8109 option; return 0 instead.
8110 (main): If -g option is not recognized by front end or
8111 language-independent code, give warning.
8112
8113 2000-08-28 Greg McGary <greg@mcgary.org>
8114
8115 * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
8116 * config/i386/i386.c (ix86_expand_compare): Remove `static'.
8117 * config/i386/i386.md (trap, conditional_trap): New insn & expand.
8118
8119 2000-08-27 Greg McGary <greg@mcgary.org>
8120
8121 * cpplex.c (parse_string): Don't look for backslash
8122 before first char in `namebuf'.
8123 * loop.c (strength_reduce): Skip NOTEs.
8124
8125 2000-08-27 Jason Merrill <jason@redhat.com>
8126
8127 * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
8128 DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or
8129 TREE_ASM_WRITTEN, either.
8130 (finish_decl): Adjust.
8131
8132 2000-08-28 Philipp Thomas <pthomas@suse.de>
8133
8134 * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
8135 they have been incorporated into the gettext CVS. Change the text to
8136 reflect the current status of NLS. Add instructions for accessing
8137 the gettext CVS and add the patch from Martin v. Loewis.
8138
8139 2000-08-27 Geoff Keating <geoffk@cygnus.com>
8140
8141 * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
8142 by using gen_lowpart_common.
8143 (movdi_internal64+6): Likewise.
8144
8145 2000-08-26 Alexandre Oliva <aoliva@redhat.com>
8146
8147 * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
8148 Document.
8149
8150 * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
8151 numbers to the ranges used by GDB.
8152
8153 2000-08-25 Richard Henderson <rth@cygnus.com>
8154
8155 * config/ia64/ia64.h (struct machine_function): Add n_varargs.
8156 * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
8157 (ia64_expand_prologue): Likewise.
8158 (ia64_setup_incoming_varargs): Set it. Properly skip the current
8159 argument for stdargs.
8160
8161 2000-08-25 Jason Merrill <jason@redhat.com>
8162
8163 * integrate.c (expand_inline_function): Pull out the original decl.
8164
8165 2000-08-25 Jim Wilson <wilson@cygnus.com>
8166
8167 * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
8168
8169 * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
8170
8171 2000-08-25 Greg McGary <greg@mcgary.org>
8172
8173 * flow.c (dump_edge_info): Use ARRAY_SIZE.
8174 * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
8175
8176 2000-08-25 Richard Earnshaw <rearnsha@arm.com>
8177
8178 * arm.h (STRUCT_VALUE): Define to 0, not NULL.
8179
8180 Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com)
8181
8182 * i386.c (ix86_find_base_term): New.
8183 * i386-protos.h (ix86_find_base_term): Prototype.
8184 * i386.h (FIND_BASE_TERM): Define.
8185 * alias.c (find_base_term): Use it.
8186 * tm.texi (FIND_BASE_TERM): Document it.
8187
8188 * alias.c (true_dependence, write_dependence_p): Unchanging
8189 memory can't conflict with non-unchanging memory.
8190
8191 * alias.c (memrefs_conflict_p): A BLKmode reference
8192 to a symbol (or CONST_INT address) always conflicts
8193 with a reference to another symbol.
8194
8195 2000-08-25 Joseph S. Myers <jsm28@cam.ac.uk>
8196
8197 * c-common.c (time_char_table): Don't allow width and flags with
8198 "z" format.
8199
8200 2000-08-25 Jakub Jelinek <jakub@redhat.com>
8201
8202 * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
8203 way as LT and LTU when the second operand has 0 in low word.
8204
8205 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8206
8207 * basic-block.h (struct loop): Rename `exits' field to
8208 `exit_edges'. Add `entry_edges' and `num_entries' fields.
8209
8210 * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
8211 (flow_loop_entry_edges_find): Add.
8212 (flow_edge_list_print): Rename from flow_exits_print.
8213 (flow_loops_find): Call flow_loop_entry_edges_find.
8214 (flow_loop_dump): Dump entry_edges list.
8215 (flow_loops_free): Free entry_edges.
8216
8217 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8218
8219 * loop.c (loop_dump_aux, debug_loop): New functions.
8220 (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
8221
8222 * flow.c (flow_loops_dump): Add callback parameter.
8223 (flow_loop_dump): Add callback parameter and call it. Move
8224 loop note debugging code to loop_dump_aux.
8225
8226 * basic-block.h (flow_loop_dump): Add callback parameter
8227 (flow_loops_dump): Likewise.
8228
8229 * toplev.c (rest_of_compilation): Add NULL callback function pointer
8230 to call to flow_loops_dump.
8231
8232 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8233
8234 * loop.c (count_loop_regs_set): Replace start and end arguments
8235 with loop argument. All callers udated.
8236
8237 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8238
8239 * loop.c (constant_high_bytes): Delete.
8240
8241 2000-08-26 Michael Hayes <mhayes@cygnus.com>
8242
8243 * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
8244 and NOTE_INSN_LOOP_VTOP to...
8245 (find_and_verify_loops) ...here.
8246
8247 Fri Aug 25 04:21:13 2000 Alexandre Oliva <aoliva@redhat.com>
8248
8249 * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
8250 (fini_dummy, init_dummy): Use it.
8251
8252 Fri 25-Aug-2000 08:03:27 BST Neil Booth <NeilB@earthling.net>
8253
8254 * cpplex.c (is_macro_disabled): Caller has already checked
8255 that we're not a preprocessed file.
8256
8257 2000-08-24 Mark Mitchell <mark@codesourcery.com>
8258
8259 * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
8260 (c-iterate.o): Remove target.
8261 * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
8262 * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
8263 (finish_decl): Don't handle iterators.
8264 (grokdeclarator): Likewise.
8265 * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
8266 * gcc/c-gperf.h: Regenerated.
8267 * gcc/c-iterate.c: Removed.
8268 * gcc/c-lex.c (init_lex): Don't handle iterators.
8269 * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
8270 (compstmt_primary_start): Remove push_iterator_stack call.
8271 (stmt): Don't allow iterator statements. Replace iterator_expand
8272 with expand_expr_stmt.
8273 (all_iter_stmt): Remove.
8274 (all_iter_stmt_simple): Likewise.
8275 (all_iter_stmt_with_decl): Likewise.
8276 * gcc/c-tree.h (ITERATOR_P): Remove.
8277 (ITERATOR_BOUND_P): Likewise.
8278 (init_iterators): Remove declaration.
8279 (iterator_expand): Likewise.
8280 (iterator_for_loop_start): Likewise.
8281 (iterator_for_loop_end): Likewise.
8282 (iterator_for_loop_record): Likewise.
8283 (push_iterator_stack): Likewise.
8284 (pop_iterator_stack): Likewise.
8285 * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
8286 (readonly_warning): Likewise.
8287 * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
8288
8289 2000-08-24 Jim Wilson <wilson@cygnus.com>
8290
8291 * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
8292 Copy type in a TYPE_DECL, just like pushdecl does.
8293
8294 2000-08-24 Richard Henderson <rth@cygnus.com>
8295
8296 * toplev.c (main): Enable flag_reorder_blocks at -O2.
8297
8298 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
8299
8300 * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
8301 asked for one page, allocate GGC_QUIRE_SIZE of them and put
8302 the extras on the free list.
8303 (release_pages): Clean up.
8304 (ggc_set_mark): Don't adjust G.allocated here...
8305 (sweep_pages): ... do it here.
8306
8307 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
8308
8309 * cppfiles.c (read_include_file): Rearrange initializations.
8310
8311 2000-08-24 Richard Henderson <rth@cygnus.com>
8312
8313 * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
8314
8315 * config/ia64/ia64-protos.h: Update.
8316 * config/ia64/ia64.c (gr_register_operand): New.
8317 (fr_register_operand, grfr_register_operand): New.
8318 (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
8319 (grfr_reg_or_8bit_operand): New.
8320 (gr_reg_or_0_operand): Rename from reg_or_0_operand and
8321 use gr_register_operand.
8322 (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
8323 (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
8324 (gr_reg_or_8bit_and_adjusted_operand): Likewise.
8325 (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
8326 (fr_reg_or_fp01_operand): Likewise.
8327 (not_postinc_memory_operand): New.
8328 (ia64_split_timode): Remove unused variables.
8329 (rtx_needs_barrier): Check arguments to cmpxchg.
8330 (builtin_description): Remove.
8331 (bdesc_2argsi, bdesc_2argdi): Remove.
8332 (ia64_init_builtins): Declare all builtins directly.
8333 (ia64_expand_fetch_and_op): Rewrite to be called from
8334 ia64_expand_builtin directly. Use expand_binop and co.
8335 (ia64_expand_op_and_fetch): Likewise.
8336 (ia64_expand_compare_and_swap): Likewise.
8337 (ia64_expand_binop_builtin): Remove.
8338 (ia64_expand_lock_test_and_set): New.
8339 (ia64_expand_lock_release): New.
8340 (ia64_expand_builtin): Use them.
8341 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
8342 (EXTRA_CONSTRAINT): Use it.
8343 (PREDICATE_CODES): Update.
8344 * config/ia64/ia64.md (*): Use gr_register_operand and co.
8345 (mf): Indicate that we set memory as well as use it.
8346 (fetchadd_acq_si): Show memory being modified as well.
8347 (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
8348 (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
8349 (lock_test_and_set_si, lock_test_and_set_di): Remove.
8350 (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
8351 (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
8352 (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
8353 (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
8354 (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
8355 (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
8356 (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
8357 (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
8358 * config/ia64/ia64intrin.h (*): Cast result to the appropriate
8359 return type. Pretty print definitions.
8360
8361 2000-08-24 Jim Wilson <wilson@cygnus.com>
8362
8363 * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
8364 we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
8365
8366 2000-08-24 Jason Merrill <jason@redhat.com>
8367
8368 * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
8369 AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
8370 (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
8371 get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
8372
8373 2000-08-24 Greg McGary <greg@mcgary.org>
8374
8375 * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
8376 and extendtab within their proper array boundaries.
8377 * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
8378 for the entire array.
8379
8380 * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
8381 * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
8382 * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
8383 * config/fr30/fr30.c (fr30_print_operand): Likewise.
8384 * config/i386/dgux.c (output_options): Likewise.
8385 * config/i386/dgux.h (ASM_FILE_START): Likewise.
8386 * config/m88k/m88k.c (output_options): Likewise.
8387 * config/m88k/m88k.h (ASM_FILE_START): Likewise.
8388 * config/mcore/mcore.c (mcore_output_inline_const_forced,
8389 layout_mcore_frame, handle_structs_in_regs): Likewise.
8390 * config/mips/mips.c (output_block_move): Likewise.
8391 * config/rs6000/rs6000.c (rs6000_override_options,
8392 rs6000_file_start): Likewise.
8393 * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
8394 * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
8395 * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
8396 * builtins.c (expand_builtin_setjmp): Likewise.
8397 * expr.c (safe_from_p): Likewise.
8398 * flow.c (life_analysis): Likewise.
8399 * fold-const.c (size_int_type_wide): Likewise.
8400 * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
8401 * genattrtab.c (make_length_attrs): Likewise.
8402 * genopinit.c (gen_insn): Likewise.
8403 * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
8404 * global.c (global_alloc): Likewise.
8405 * local-alloc.c (find_free_reg): Likewise.
8406 * mips-tdump.c (print_symbol): Likewise.
8407 * mips-tfile.c (parse_def, parse_input): Likewise.
8408 * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
8409 * stmt.c (expand_nl_goto_receiver): Likewise.
8410 * stor-layout.c (set_sizetype): Likewise.
8411 * varasm.c (decode_reg_name): Likewise.
8412 * toplev.c (decode_f_option, decode_W_option,
8413 set_target_switch, print_switch_values): Likewise.
8414 (NUM_ELEM): Remove macro.
8415 (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
8416
8417 2000-08-24 Greg McGary <greg@mcgary.org>
8418
8419 * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
8420 (MAIN_NAME_P, main_identifier_node): New macros.
8421 * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
8422 * c-decl.c (start_decl, grokdeclarator, start_function,
8423 store_parm_decls, finish_function): Use MAIN_NAME_P.
8424 * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
8425 * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
8426 * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
8427 * config/pdp11/pdp11.c (output_function_prologue): Likewise.
8428
8429 2000-08-24 Greg McGary <greg@mcgary.org>
8430
8431 * cppfiles.c (actual_directory): Don't write beyond `dir'
8432 when it contains "".
8433 * real.c (asctoeg): Stay within bounds of etens[][].
8434
8435 2000-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8436
8437 * dependence.c (dependence_string, direction_string,
8438 dump_one_node, dump_node_dependence): Hide unused identifiers.
8439 (get_low_bound, normalize_coefficients): Match definition to
8440 static prototype.
8441 (get_one_coefficient): Initialize variables `value0_is_idx' and
8442 `value1_is_idx'.
8443 (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
8444 (ziv_test): Delete variable `idx', use parameter `sub' instead.
8445 (direction_merge): Avoid automatic aggregate initialization.
8446 (have_dependence_p): Use `src' not `dest' to set `src_idx'.
8447 Initialize variables `dest_idx' and `src_idx'.
8448 (end_dependence_analysis): Avoid C89 style function definition.
8449
8450 2000-08-24 Joseph S. Myers <jsm28@cam.ac.uk>
8451
8452 * c-common.c (time_char_table): Don't allow width with %F.
8453 (check_format_info): Don't allow "Z" length with scanf.
8454
8455 2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
8456
8457 * diagnostic.c (finish_diagnostic): Define.
8458 (output_do_printf): Use wrap_text instead of output_add_string.
8459 (default_print_error_function): Avoid embedded '\n'.
8460
8461 * diagnostic.h (flush_diagnostic_buffer): Declare.
8462
8463 2000-08-23 Alexandre Oliva <aoliva@redhat.com>
8464
8465 * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
8466
8467 2000-08-23 Hans-Peter Nilsson <hp@axis.com>
8468
8469 * Makefile.in (GCC_PASSES): Add specs.
8470
8471 2000-08-23 Jim Wilson <wilson@cygnus.com>
8472
8473 * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
8474 * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
8475 EHANDLER nor UHANDLER bit is set.
8476 (__get_except_table): Likewise.
8477
8478 2000-08-23 Nick Clifton <nickc@redhat.com>
8479
8480 * config/arm/lib1funcs.asm: Replace upper case condition codes
8481 with lower case versions.
8482
8483 * config/arm/arm.h (STRUCT_VALUE): Define.
8484 (STRUCT_VALUE_REGNUM): Delete.
8485
8486 2000-08-23 Zack Weinberg <zack@wolery.cumb.org>
8487
8488 * cpphash.h (IN_I): New flag for directive table.
8489 * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
8490 #pragma with IN_I.
8491 (_cpp_check_directive): If -fpreprocessed, execute directives
8492 marked with IN_I. Issue no warnings in this case.
8493 * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
8494
8495 2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk>
8496
8497 * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
8498 %u.
8499 (check_format_info): Support printf 'I' flag; warn about it with
8500 -pedantic.
8501
8502 2000-08-23 Richard Earnshaw (rearnsha@arm.com)
8503
8504 * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
8505 barrier can't be ignored by the alias analysis code.
8506
8507 2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
8508
8509 * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
8510 works inside fixincl.
8511
8512 Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
8513
8514 * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
8515 simplify_relational_operation() unless both operands are of
8516 VOIDmode.
8517 * cse.c (fold_rtx): Likewise.
8518
8519 Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
8520
8521 * rtlanal.c (rtx_unstable_p): The pic register is stable
8522 (within one function) and the actual rtx should be used
8523 when checking the registers.
8524 (rtx_addr_can_trap_p): Pic memory addresses can't trap.
8525
8526 * alias.c (true_dependence, write_dependence_p): Fix
8527 bug in previous patch.
8528
8529 * i386.c (ix86_GOT_alias_set): New.
8530 (legitimize_pic_address): Use it.
8531
8532 * rtlanal.c (rtx_unstable_p): An unchanging MEM is
8533 only stable if its address is stable.
8534 (rtx_varies_p): An unchanging MEM can't vary if
8535 its address doesn't vary.
8536
8537 2000-08-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8538
8539 * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
8540
8541 2000-08-22 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8542
8543 * vax.h (ASM_SPEC): Pass `-J' to assembler.
8544 * x-vax-gcc: New file for bootstrapping with gcc.
8545 * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
8546 * configure.in: Use x-vax-gcc with gcc.
8547 * configure: Rebuilt.
8548
8549 Tue Aug 22 21:21:05 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
8550
8551 * toplev.c (rest_of_compilation): Rebuild label notes after
8552 post-reload splitting pass if new labels have been created.
8553
8554 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
8555
8556 * diagnostic.h (output_buffer_state): New macro.
8557 * diagnostic.c (diagnostic_for_decl, sorry,
8558 default_print_error_function, output_do_verbatim,
8559 report_diagnostic, report_problematic_module): Use it.
8560 (wrap_text): Tweak.
8561 (output_format): Use wrap_text instead of maybe_wrap_text.
8562
8563 2000-08-22 Nick Clifton <nickc@redhat.com>
8564
8565 * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
8566 Common code for ARM divide and modulus functions.
8567 (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
8568 ARM_DIV_MOD_BODY.
8569 (FUNC_END): New macro: Common code at the end of the division and
8570 modulo functions.
8571 (THUMB_FUNCTION_START): New macro: Common code at the start of
8572 Thumb functions.
8573 (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
8574
8575 Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp>
8576
8577 * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
8578
8579 * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
8580 sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
8581 const0_rtx.
8582
8583 2000-08-22 Nick Clifton <nickc@redhat.com>
8584
8585 * config/arm/lib1funcs.asm (__umodsi3): Before performing any
8586 restorative additions, test for bottom bits of IP being set,
8587 rather than relying upon the RORs not matching.
8588 (__modsi3): Ditto.
8589
8590 2000-08-22 David Edelsohn <edelsohn@gnu.org>
8591
8592 * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
8593 text_section() as appropriate instead of emitting text csect
8594 pseudo-op directly.
8595 (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
8596 (UNIQUE_SECTION): Define macro.
8597 (ASM_OUTPUT_SECTION_NAME): Define macro.
8598 * rs6000.c (rs6000_override_options): Disable -ffunction-sections
8599 on AIX if debugging and -fdata-sections always.
8600
8601 2000-08-22 Steven King <sxking@uswest.net>
8602
8603 * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
8604 machinery.
8605 (LDBL_MAX): Same here.
8606
8607 2000-08-22 Richard Henderson <rth@cygnus.com>
8608
8609 * flow.c (tidy_fallthru_edge): Update b->end properly.
8610
8611 2000-08-22 Stan Cox <scox@redhat.com>
8612
8613 * Makefile.in (OBJS): Add dependence.o.
8614 * dependence.c: New file.
8615
8616 2000-08-22 Alexandre Oliva <aoliva@redhat.com>, John David Anglin <dave.anglin@nrc.ca>
8617
8618 * calls.c (check_sibcall_argument_overlap_1): Adjust for
8619 ARGS_GROW_DOWNWARD.
8620 (check_sibcall_argument_overlap): Likewise.
8621
8622 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
8623
8624 * invoke.texi (SH Options): Document -m4-nofpu,
8625 -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
8626 -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
8627
8628 2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk>
8629
8630 * c-common.c (check_format_info): Give the 'some locales' warning
8631 for strftime %Ey rather than the unconditional 'only last 2 digits
8632 of year' one.
8633
8634 2000-08-22 Richard Henderson <rth@cygnus.com>
8635
8636 * alias.c (init_alias_analysis): Do not register
8637 struct_value_incoming_rtx or static_chain_rtx as pointing
8638 to stack memory.
8639
8640 Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com)
8641
8642 * protoize.c (munge_compile_params): Fix typo and formatting buglets.
8643
8644 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
8645
8646 * diagnostic.h (report_problematic_module): Declare.
8647 * diagnostic.c (report_problematic_module): New function.
8648 (report_error_function): Tweak.
8649
8650 Tue Aug 22 02:31:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8651
8652 * stmt.c (expand_goto_internal, fixup_gotos): Only check
8653 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
8654
8655 2000-08-21 Richard Henderson <rth@cygnus.com>
8656
8657 * flow.c (calculate_global_regs_live): Mark frame pointer live
8658 everywhere before reload.
8659
8660 2000-08-21 Jim Wilson <wilson@cygnus.com>
8661
8662 * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
8663 INTEL_EXTENDED_IEEE_FORMAT.
8664 (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally
8665 clear last two bytes of output FP value.
8666
8667 2000-08-21 Graham Stott <grahams@cygnus.co.uk>
8668
8669 * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
8670
8671 2000-08-21 Jakub Jelinek <jakub@redhat.com>
8672
8673 * unroll.c (loop_find_equiv_value): If ret is modified between
8674 insn and loop_start, ret might not be equivalent to reg.
8675
8676 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
8677
8678 * c-common.c (init_dollar_format_checking,
8679 maybe_read_dollar_number, finish_dollar_format_checking): New
8680 functions.
8681 (dollar_arguments_used, dollar_arguments_count,
8682 dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
8683 New variables.
8684 (check_format_info): Support $ formats for scanf and printf width
8685 and precision. Always increment format_chars to advance past the
8686 '*' of precision, not just when the format parameters are
8687 available to check.
8688
8689 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8690
8691 * mips.c (block_move_loop, expand_block_move,
8692 function_arg_partial_nregs, save_restore_insns, function_prologue,
8693 mips_expand_prologue, RA_MASK): Avoid using the `U' integer
8694 constant suffix.
8695 (function_arg_advance, function_arg): Match argument to format
8696 specifier `%p'.
8697
8698 2000-08-21 Nix <nix@esperi.demon.co.uk>
8699
8700 * gcc.c (do_spec_1): Implement %j spec flag.
8701 Remove dead comment.
8702
8703 * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
8704 * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
8705 * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
8706 * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
8707
8708 * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
8709 writable) instead of hardcoded value.
8710
8711 * toplev.c (compile_file): Output to a file even if -fsyntax-only.
8712
8713 * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
8714 MKTEMP_EACH_FILE.
8715
8716 * gcc.c (cc1_options): Do not process -o or run the assembler if
8717 -fsyntax-only.
8718 * objc/lang-spec.h: Likewise.
8719
8720 2000-08-21 Eli Zaretskii <eliz@is.elta.co.il>
8721
8722 * fixinc/fixincl.c (fix_with_system): Pipe the output of
8723 "external" fixes through `cat', to avoid truncating the input
8724 file by redirection.
8725
8726 2000-08-21 Jakub Jelinek <jakub@redhat.com>
8727
8728 * config/i386/i386.md (lea_general_1): Copy insn condition to split
8729 condition.
8730 (lea_general_2, lea_general_3): Likewise.
8731
8732 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8733
8734 * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
8735 warnings to user code.
8736
8737 * c-lex.c (readescape, yylex): Likewise.
8738
8739 * c-typeck.c (store_init_value, process_init_element): Likewise
8740 (c_expand_start_case): Format.
8741
8742 2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
8743
8744 * mips/linux.h (LINK_SPEC): Use %(endian_spec).
8745
8746 * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
8747 and linker_endian_spec to endian_spec.
8748 (ENDIAN_SPEC): Add %{EB} and %{EL}.
8749 (LINK_SPEC): Remove %{EB} and %{EL}.
8750 (ASM_SPEC): Likewise. Use %(endian_spec).
8751
8752 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
8753
8754 * c-tree.h (flag_hosted): Move declaration from here...
8755 * c-common.h (flag_hosted): ... to here.
8756 (flag_noniso_default_format_attributes): New declaration.
8757 * c-decl.c (flag_noniso_default_format_attributes): New variable.
8758 (c_decode_option): Set it appropriately for options choosing
8759 language standard variant.
8760 * c-common.c (init_function_format_info): Only provide default
8761 format attributes if flag_hosted. Only provide the gettext
8762 formats if flag_noniso_default_format_attributes. Update
8763 comments.
8764 (check_format_info): Disable treatment of %a as a scanf flag in
8765 C99 mode.
8766
8767 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
8768
8769 * c-common.c (scan_char_table): Add 'w' to flags for all formats
8770 except 'n'.
8771 (check_format_info): Set 'wide' for scanf format widths. Warn for
8772 a zero scanf width. Make the check for writing into a constant
8773 object at the first level of indirection; at later levels, warn if
8774 any type qualifiers are encountered.
8775
8776 Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com)
8777
8778 * reload.c (reload_inner_reg_of_subreg): New function broken out of
8779 push_reload.
8780 (push_reload): Use reload_inner_reg_of_subreg.
8781 (combine_reloads): Do not combine reloads if the input reload
8782 is a SUBREG in which the inner part will need reloading.
8783
8784 * global.c (global_alloc): Avoid passing dumpfile argument to
8785 reload routines.
8786 * toplev.c (rest_of_compilation): Likewise.
8787 * reload.h (reload): Remove dumpfile argument. Callers changed.
8788 (debug_reload, debug_reload_to_stream): Move prototypes here.
8789 * rtl.h (reload): Remove dumpfile argument.
8790 * reload.c (debug_reload): Remove prototype.
8791 (debug_reload_to_stream): Likewise.
8792 * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
8793 instead.
8794
8795 2000-08-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
8796
8797 * diagnostic.c (context_as_prefix): Export.
8798 (need_error_newline): Remove.
8799 (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
8800 (error_module_changed, record_last_error_module,
8801 error_function_changed, record_last_error_function): New functions.
8802 (initialize_diagnostics): Default intialize
8803 lang_diagnostic_starter, lang_diagnostic_finalizer.
8804 (init_output_buffer): Tweak.
8805 (file_name_as_prefix): New function.
8806 (announce_function, default_print_error_function,
8807 report_error_function, set_diagnostic_context): Tweak.
8808
8809 2000-08-21 Richard Earnshaw <rearnsha@arm.com>
8810
8811 * flow.c (init_propagate_block_info): Handle SUBREG in a jump
8812 condition expression.
8813
8814 2000-08-20 Richard Henderson <rth@cygnus.com>
8815
8816 * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
8817
8818 2000-08-20 Zack Weinberg <zack@wolery.cumb.org>
8819
8820 * cppinit.c (cpp_init): Set global flag when called.
8821 (cpp_reader_init): Bomb out if cpp_init hasn't been called.
8822
8823 Sun Aug 20 01:41:35 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
8824
8825 * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
8826 before `process_directive' so that newlines won't be missed
8827 for directives.
8828 (cpp_printf): Increment `print->lineno' when newline is emitted.
8829
8830 * cppmain.c (cb_ident): Likewise.
8831 (cb_define): Likewise.
8832 (cb_undef): Likewise.
8833 (cb_include): Likewise.
8834 (cb_def_pragma): Likewise.
8835 (dump_macros_helper): Likewise.
8836
8837 2000-08-20 Richard Henderson <rth@cygnus.com>
8838
8839 * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
8840 assigned before a loop.
8841
8842 * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
8843 (ashrsi3, lshrsi3): Likewise.
8844
8845 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
8846
8847 * c-lang.c: #include diagnostic.h
8848 (c_tree_printer): New function.
8849 (lang_init): Initialize lang_printer.
8850
8851 * Makefile.in (c-lang.o): Depends on diagnostic.h
8852
8853 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
8854
8855 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
8856
8857 * diagnostic.c (default_diagnostic_starter,
8858 default_diagnostic_finalizer): New functions.
8859 (diagnostic_for_asm, diagnostic_for_decl): Tweak.
8860 (pedwarn, pedwarn_with_file_and_line, error,
8861 error_with_file_and_line, fatal, warning,
8862 warning_with_file_and_line): Adjust call to report_diagnostic.
8863 (report_diagnostic): Rework.
8864 (set_diagnostic_context): New function.
8865
8866 * diagnostic.h (struct diagnostic_context): New data structure.
8867 (diagnostic_message, diagnostic_argument_list,
8868 diagnostic_file_location, diagnostic_line_location,
8869 diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
8870 diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
8871 (set_diagnostic_context): Declare.
8872 (report_diagnostic): Change prototype.
8873
8874 Sun 20-Aug-2000 09:25:45 BST Neil Booth <NeilB@earthling.net>
8875
8876 * fix-header.c (main): Initialize cpplib.
8877
8878 2000-08-19 Michael Meissner <meissner@redhat.com>
8879
8880 * ifcvt.c (find_if_block): Do not assume that a THEN block has any
8881 instructions in it before checking for indirect jumps.
8882
8883 * ifcvt.c (find_if_block): Do not consider a THEN block that ends
8884 in a indirect jump as a potential for conditional execution.
8885
8886 * d30v.h (d30v_init_expanders): Don't declare here.
8887 * d30v-protos.h (d30v_init_expanders): Declare here with a valid
8888 prototype.
8889
8890 Sat 19-Aug-2000 21:11:45 BST Neil Booth <NeilB@earthling.net>
8891
8892 * cpp.texi: Add @section for assertions.
8893
8894 Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com)
8895
8896 * loop.c (scan_loop): Use CONST_CALL_P instead of
8897 checking for REG_LIBCALL / REG_RETVAL.
8898
8899 Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com)
8900
8901 * reload1.c (reload_as_needed): Accept dumpfile argument,
8902 pass it to emit_reload_insns.
8903 (emit_reload_insns): Add new dumpfile argument. If non-null
8904 then dump the reloads for each insn into the dumpfile.
8905 (reload): Pass dumpfile to reload_as_needed.
8906
8907 * invoke.texi: Clean up linux-gnu vs linux comments.
8908
8909 2000-08-19 Richard Henderson <rth@cygnus.com>
8910
8911 * config/ia64/ia64.c (reg_or_5bit_operand): New.
8912 (ia64_depz_field_mask): New.
8913 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
8914 (PREDICATE_CODES): Update.
8915 * config/ia64/ia64.md: Update commentary.
8916 (depz_internal): New.
8917 (ashlsi3): Implement directly.
8918 (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
8919 (ashldi3): Use shladd.
8920 * config/ia64/ia64-protos.h: Update.
8921
8922 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
8923
8924 * toplev.c (independent_decode_option): Always process -g.
8925 Remove third argument, now unused. Adjust caller to match.
8926
8927 2000-08-18 Richard Henderson <rth@cygnus.com>
8928
8929 * combine.c (make_compound_operation): Break after creating
8930 the extraction.
8931
8932 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
8933
8934 * cpplib.c (cpp_register_pragma_space): Just return if the
8935 namespace is already registered.
8936
8937 2000-08-18 Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton <nickc@redhat.com>
8938
8939 * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
8940 constant amount. Do not generate ROTL instruction.
8941
8942 Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com>
8943
8944 * config/sh/elf.h: Do not include sh/sh.h.
8945 * config/sh/rtems.h: Likewise.
8946 * config/sh/rtemself.h: Do not include sh/elf.h.
8947 * configure.in: Get them included with `tm_file's.
8948 * configure: Rebuilt.
8949
8950 * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
8951 * config/sh/sh.c (fpscr_set_from_mem): Use them.
8952
8953 Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8954
8955 * stor-layout.c (compute_record_type): Don't use mode of single
8956 field as mode of record if not integer mode of same type.
8957
8958 * regmove.c (perhaps_ends_bb_p): New function.
8959 (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
8960 (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
8961 (fixup_match_1): Likewise.
8962 (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
8963 avoid signed/unsigned warnings.
8964
8965 * function.c (fixup_var_refs_1, case MEM): Update CODE after
8966 updating X.
8967
8968 Fri 18-Aug-2000 18:33:45 BST Neil Booth <NeilB@earthling.net>
8969
8970 * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
8971 (_cpp_trigraph_map): Declaration moved from cpplex.c
8972
8973 * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1
8974 instead of 256. Use consistent test for designated initializers.
8975 (cpp_init): Initialize trigraph_map.
8976 (initialize_standard_includes, parse_option): Use memcmp
8977 instead of strncmp.
8978
8979 * cpplex.c (init_trigraph_map): Remove.
8980 (trigraph_ok, trigraph_replace, lex_line): Refer to
8981 _cpp_trigraph_map.
8982
8983 * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
8984 (do_unassert): Remove unused "next" local.
8985
8986 * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
8987
8988 2000-08-18 Emmanuel Marty <emarty@suntech.fr>
8989
8990 * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
8991 insn.
8992
8993 2000-08-17 Richard Henderson <rth@cygnus.com>
8994
8995 * config/ia64/ia64.c (spill_restore_mem): Handle emitting
8996 the first insn in a sequence.
8997
8998 Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com)
8999
9000 * alias.c (true_dependence, write_dependence_p): A read
9001 involving a label_ref or the constant pool doesn't create
9002 a dependency.
9003
9004 * rtl.h (unchanging): Improve documentation.
9005
9006 2000-08-17 Rodney Brown <RodneyBrown@mynd.com>
9007
9008 * cse.c (insert_regs): Remove unused `regno'.
9009
9010 2000-08-17 Neil Booth <NeilB@earthling.net>
9011
9012 * (cppinit.c) merge_include_chains: Use remove_dup_dir,
9013 remove_dup_dirs. If qtail == brack, remove brack not
9014 qtail.
9015 (remove_dup_dir, remove_dup_dirs): New functions.
9016
9017 2000-08-17 Neil Booth <NeilB@earthling.net>
9018
9019 * cppinit.c (cpp_cleanup): Free include dir chains.
9020 * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
9021 (do_unassert): Free the assert with _cpp_free_definition.
9022 * cppmacro.c (_cpp_free_definition): Free memory allocated for
9023 assertions. Make the node a T_VOID node.
9024
9025 2000-08-17 Neil Booth <NeilB@earthling.net>
9026
9027 * cppinit.c (path_include, append_include_chain):
9028 Remove 2nd parameter (struct cpp_pending *).
9029 (path_include, initialize_standard_includes, cpp_handle_option):
9030 Update callers appropriately.
9031 (cpp_handle_option): Use pend.
9032
9033 2000-08-17 Neil Booth <NeilB@earthling.net>
9034
9035 * cppinit.c (sort_options): Remove, put functionality in
9036 cpp_init.
9037 (cpp_init): New.
9038 (initialize_builtins): Free memory.
9039 (cpp_start_read): Move init_IStable to cpp_init.
9040
9041 * cpplib.h (cpp_init): New prototype.
9042 * cppmain.c (main): Call cpp_init.
9043
9044 Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com)
9045
9046 * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
9047 (rtx_unstable_p, rtx_varies_p): Process vectors.
9048
9049 2000-08-16 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
9050
9051 * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all
9052 references to GLOBAL symbols. Use LOCAL where appropriate.
9053
9054 2000-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9055
9056 * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always
9057 use t-aix41 when host == target.
9058
9059 2000-08-16 Richard Henderson <rth@cygnus.com>
9060
9061 * reload.c (push_secondary_reload): Revert last change.
9062 If we use a reload_in/out pattern, make the when the same
9063 as the primary reload.
9064 (find_reloads): Likewise.
9065
9066 2000-08-16 Manfred Hollstein <manfredh@redhat.com>
9067
9068 * configure.in (libstdcxx-v3): Fix test.
9069 * configure: Regenerate.
9070
9071 Wed Aug 16 08:10:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9072
9073 * calls.c (calls_function_1, expand_call): Only test
9074 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
9075 * function.c (thread_prologue_and_epilogue_insns): Likewise.
9076
9077 2000-08-16 Richard Henderson <rth@cygnus.com>
9078
9079 * combine.c (simplify_shift_const): Revert previous two
9080 changes. If SHIFT_COUNT_TRUNCATED, crop the shift count
9081 before the main loop.
9082
9083 2000-08-15 Richard Henderson <rth@cygnus.com>
9084
9085 * combine.c (simplify_shift_const): Bound shift count when
9086 combining shifts.
9087
9088 Tue Aug 15 17:33:05 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9089
9090 * calls.c (ECF_SP_DEPRESSED): New macro.
9091 (calls_function_1): Treat calling sp-depressed function as alloca.
9092 (emit_call_1): Don't adjust SP if calling sp-depressed function.
9093 (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
9094 If sp-depressed, ensure block saves and restores SP.
9095 * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
9096 for INTEGER_TYPE.
9097 * function.c (keep_stack_depressed): New function.
9098 (thread_prologue_and_epilogue_insns): Call it.
9099 * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
9100 to print DECL_OFFSET_ALIGN.
9101 Print no-force-blk and transparent-union flags properly.
9102 * stmt.c (expand_goto_internal): Don't restore stack if last block
9103 and function returns with sp depressed.
9104 (fixup_gotos): Likewise.
9105 (save_stack_pointer): New function, from code in expand_decl.
9106 (expand_decl): Call new function.
9107 * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
9108 (TYPE_RETURNS_STACK_DEPRESSED): New macro.
9109 (save_stack_pointer): New declaration.
9110
9111 * diagnostic.c (fatal_function): New variable.
9112 (set_fatal_function): New function.
9113 (fatal): Call it.
9114 * diagnostic.h (set_fatal_function): New declaration.
9115
9116 2000-08-15 William Cohen <wcohen@redhat.com>
9117
9118 * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
9119 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
9120 (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
9121
9122 2000-08-15 Richard Henderson <rth@cygnus.com>
9123
9124 * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
9125
9126 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9127
9128 * arm.c (arm_function_ok_for_sibcall): New function.
9129 * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
9130 * arm.md (call expanders): Don't check here for calls that can't
9131 be sibling calls.
9132
9133 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9134
9135 * arm.md (splits generating cond_exec): Disable.
9136
9137 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9138
9139 * arm/linux-elf.h (text_section): Delete declaration.
9140
9141 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
9142
9143 ARM support for unordered FP operations.
9144 * arm-protos.h (arm_comparison_operator): Declare.
9145 * arm.c (arm_comparison_operator): New function.
9146 (arm_select_cc_mode): Add unordered comparison codes.
9147 (get_arm_condition_code): Likewise.
9148 (arm_final_prescan_insn): Can't handle unordered jumps that can't
9149 be done in one insn.
9150 * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
9151 * arm.md (all uses of comparison_operator): Replace with
9152 arm_comparison_operator.
9153 (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
9154 expands.
9155 (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
9156 patterns.
9157
9158 Tue Aug 15 00:36:36 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
9159
9160 * gthr-posix.h: Conditionally include <sched.h>; include
9161 <config.h> from libobjc/.
9162
9163 2000-08-14 Richard Henderson <rth@cygnus.com>
9164
9165 * config/i386/i386.c (legitimize_pic_address): Use Pmode
9166 for all CONSTs.
9167
9168 2000-08-14 Richard Henderson <rth@cygnus.com>
9169
9170 * configure.in (ia64-*): Set float_format for i386 long double.
9171
9172 * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
9173 as we would for i386 XFmode.
9174 (PUT_REAL): Likewise.
9175 (endian, ereal_atof, real_value_truncate): Likewise.
9176 (ereal_isneg, toe64, etens, make_nan): Likewise.
9177 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
9178
9179 * config/ia64/ia64-protos.h: Update.
9180 * config/ia64/ia64.c (general_tfmode_operand): New.
9181 (destination_tfmode_operand): New.
9182 (tfreg_or_fp01_operand): New.
9183 (ia64_split_timode): New.
9184 (spill_tfmode_operand): New.
9185 (ia64_expand_prologue): Use TFmode not XFmode.
9186 (ia64_expand_epilogue): Likewise.
9187 (ia64_function_arg): Likewise.
9188 (ia64_function_arg_advance): Likewise.
9189 (ia64_return_in_memory): Likewise.
9190 (ia64_function_value): Likewise.
9191 (ia64_print_operand): Likewise.
9192 (ia64_register_move_cost): Set GR<->FR to 5.
9193 (ia64_secondary_reload_class): Get GR for TImode memory op.
9194 * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
9195 (ROUND_TYPE_ALIGN): Remove.
9196 (LONG_DOUBLE_TYPE_SIZE): Set to 128.
9197 (INTEL_EXTENDED_IEEE_FORMAT): Define.
9198 (HARD_REGNO_NREGS): Use TFmode, not XFmode.
9199 (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs.
9200 (MODES_TIEABLE_P): Use TFmode, not XFmode.
9201 (CLASS_MAX_NREGS): Likewise.
9202 (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
9203 (PREDICATE_CODES): Update.
9204 * config/ia64/ia64.md (movti): New.
9205 (movti_internal): Use a clobber for memory alternatives.
9206 (reload_inti, reload_outti): New.
9207 (movsfcc_astep): Predicate properly.
9208 (movdfcc_astep): Likewise.
9209 (movxf): Remove.
9210 (movtf): New.
9211 (extendsftf2, extenddftf2): New.
9212 (trunctfsf2, trunctfdf2): New.
9213 (floatditf2, fix_trunctfdi2): New.
9214 (floatunsditf2, fixuns_trunctfdi2): New.
9215 (addtf3, subtf3, multf3, abstf2): New.
9216 (negtf2, nabstf2, mintf3, maxtf3): New.
9217 (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
9218 (cmptf): New.
9219 (fr_spill): Use TFmode, not XFmode.
9220 (fr_restore): Likewise.
9221 * config/ia64/lib1funcs.asm (__divtf3): New.
9222 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
9223
9224 2000-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9225
9226 * cse.c (fold_rtx): Avoid empty body in an if-statement.
9227
9228 * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
9229 `U' integer constant suffix.
9230
9231 * dwarf2out.c (add_subscript_info): Avoid empty body in an
9232 else-statement.
9233
9234 * sparc/sol2.h (__enable_execute_stack): Prototype.
9235
9236 2000-08-14 David Edelsohn <edelsohn@gnu.org>
9237
9238 * collect2.c: Remove use of AIX import file.
9239
9240 * longlong.h: Test ARCH_PWR not ARCH_POWER.
9241
9242 * rs6000.c (print_operand, case 'E'): Add else.
9243
9244 2000-08-14 Richard Henderson <rth@cygnus.com>
9245
9246 * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
9247 (movdi_symbolic): New.
9248
9249 2000-08-14 Jim Wilson <wilson@cygnus.com>
9250
9251 * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
9252 to GNU as. For Intel as, pass -M const_gp and -M no_plabel.
9253 * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
9254 to GNU as.
9255
9256 2000-08-14 Richard Henderson <rth@cygnus.com>
9257
9258 * expr.c (emit_group_load): Don't force constants into registers.
9259 Special case source already in the correct mode.
9260
9261 2000-08-14 Zack Weinberg <zack@wolery.cumb.org>
9262
9263 * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
9264 * fixinc/inclhack.def: Likewise.
9265 * fixinc/mkfixinc.sh: Likewise.
9266 * configure: Regenerate.
9267 * fixinc/fixincl.x: Regenerate.
9268 * install.texi: Document equivalence of linux and linux-gnu.
9269
9270 Mon Aug 14 18:51:44 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
9271
9272 * cse.c (insert_regs): Also in REG case: When finding an invalid
9273 value, and we make a new quantity, make sure that it won't be
9274 mistaken by for a valid one by mention_regs.
9275
9276 2000-08-13 Ralf Gütlein <ralf.guetlein@aranea.de>
9277
9278 * h8300.md: Remove obsolete peepholes.
9279
9280 2000-08-13 Kazu Hirata <kazu@hxi.com>
9281
9282 * invoke.texi (H8/300 Options): Fix typos.
9283 * config/h8300.c: Fix formatting.
9284 * config/h8300.h: Fix comment typos.
9285 (OVERRIDE_OPTIONS): Fix formatting.
9286
9287 * function.c: Fix formatting.
9288
9289 * cse.c: Fix formatting.
9290
9291 2000-08-13 Geoff Keating <geoffk@cygnus.com>
9292
9293 * flow.c (attempt_auto_inc): Remove unused variable `bb'.
9294 (attempt_auto_inc): Suppress parentheses warning.
9295 * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
9296 * loop.c (load_mems): Remove `u' suffix in two places.
9297 * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
9298 hex constants.
9299 * config/rs6000/rs6000.h: Likewise.
9300 * config/rs6000/sol-c0.c: Prototype some functions. Remove the
9301 __eabi dummy routine.
9302 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
9303 variable `buf_ptr'.
9304
9305 * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
9306 not put stuff in .sdata unnecessarily.
9307 (rs6000_unique_section): New function.
9308 * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
9309 * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
9310
9311 * c-typeck.c (build_array_ref): Don't complain about non-lvalue
9312 arrays in C99. Don't try to look at DECL_REGISTER of a
9313 COMPONENT_REF. Don't complain twice about the same error.
9314
9315 * fixinc/inclhack.def (aix_pthread): New fix.
9316 (aix_sysmachine): New fix.
9317 * fixinc/fixincl.x: Regenerate.
9318
9319 * expr.c (expand_expr): Call convert_modes when turning a large
9320 multiply into a small one.
9321
9322 2000-08-12 Geoff Keating <geoffk@cygnus.com>
9323
9324 * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
9325 the tree structure an exponent rather than an explicit alignment
9326 so it doesn't overflow.
9327 (SET_DECL_OFFSET_ALIGN): New macro.
9328 * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
9329 rather than DECL_OFFSET_ALIGN.
9330 (place_field): Likewise.
9331 * expmed.c (store_bit_field): Abort on align==0 to avoid
9332 antisocial machine behaviour.
9333
9334 2000-08-12 Richard Henderson <rth@cygnus.com>
9335
9336 * sibcall.c (uses_addressof): Accept both addressof and
9337 current_function_internal_arg_pointer inside a mem.
9338 (optimize_sibling_and_tail_recursive_call): Fail tail recursion
9339 if current_function_uses_addressof.
9340 * stmt.c (expand_return): Kill tail recursion and HAVE_return
9341 optimizations.
9342
9343 2000-08-11 Richard Henderson <rth@cygnus.com>
9344
9345 * config/ia64/ia64.md (addsi3): Remove expander.
9346 (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
9347 (*addsi3_shladd): New.
9348
9349 2000-08-11 Richard Henderson <rth@cygnus.com>
9350
9351 * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
9352 (do_restore): Likewise.
9353 (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
9354 (ia64_expand_prologue, ia64_expand_epilogue): Use them.
9355 (rtx_needs_barrier): Track actual bit manipulation for
9356 ar.unat moves, gr_spill, and gr_restore.
9357 (emit_insn_group_barriers): Special case gr_spill/gr_restore.
9358 (process_set): Don't handle varargs spills.
9359 * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit
9360 .mem.offset here instead of in process_set.
9361 (gr_restore): Likewise.
9362
9363 2000-08-11 Richard Henderson <rth@cygnus.com>
9364
9365 * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
9366
9367 2000-08-11 Mark Elbrecht <snowball3@bigfoot.com>
9368
9369 * gcc.texi (The Configuration File): Document
9370 COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
9371 UPDATE_PATH_HOST_CANONICALIZATION.
9372
9373 2000-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9374
9375 * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
9376 unprototyped function pointer casts on integer constants.
9377
9378 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
9379
9380 * fixproto: Recognize DOS paths with drive letters as absolute paths.
9381
9382 2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
9383
9384 * extend.texi (Volatiles): Fix typos.
9385
9386 2000-08-11 Kazu Hirata <kazu@hxi.com>
9387
9388 * flow.c: Fix formatting.
9389
9390 2000-08-11 Richard Henderson <rth@cygnus.com>
9391
9392 * reload.c (push_secondary_reload): When invoking a reload_{in,out}
9393 pattern, always allocate a tertiary scratch register.
9394
9395 * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
9396 (reload_inhi): Likewise.
9397
9398 2000-08-11 Richard Henderson <rth@cygnus.com>
9399
9400 * function.c (put_reg_into_stack): Allow type to be NULL.
9401 (schedule_fixup_var_refs): Likewise.
9402 (gen_mem_addressof): Allow decl to be NULL.
9403 (put_addressof_into_stack): Likewise.
9404
9405 * flow.c (merge_blocks_nomove): Be more careful about
9406 locating the beginning of block A.
9407
9408 * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
9409
9410 Thu Aug 10 22:47:09 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
9411
9412 * configure.in:
9413 * configure:
9414 * gthr-posix.h:
9415 * config.in: Reverted the check for <sched.h>.
9416
9417 2000-08-10 Chris Demetriou <cgd@sibyte.com>
9418
9419 * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
9420 macros define the name of CTOR and DTOR sections.
9421 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
9422 DTOR_LIST_END): Change to use attributes to specify
9423 sections.
9424 * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
9425 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
9426 DTOR_LIST_END): Same as in mips/elf.h.
9427
9428 2000-08-10 Drew Moseley <dmoseley@redhat.com>
9429
9430 * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
9431 disabling just crt0.o.
9432
9433 2000-08-10 Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton <nickc@cygnus.com>
9434
9435 * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
9436 (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
9437 (EXTRA_SPECS): Add them.
9438 * arm/lib1funcs.asm: Support builds for interworking.
9439 Use macros to eliminate duplicated pieces of code.
9440
9441 2000-08-10 Kazu Hirata <kazu@hxi.com>
9442
9443 * h8300.c (expand_a_rotate): New.
9444 (emit_a_rotate): Likewise.
9445 (h8300_adjust_insn_length): Add support for the rotate insns.
9446 * h8300.md (rotlqi3): New.
9447 (*rotlqi3_1): Likewise.
9448 (rotlhi3): Likewise.
9449 (*rotlhi3_1): Likewise.
9450 (rotlhi3): Likewise.
9451 (*rotlhi3_1): Likewise.
9452 * h8300-proto.h: Add prototypes for expand_a_rotate and
9453 emit_a_rotate.
9454
9455 * h8300.c: Fix comment typos.
9456 (dosize): Declare the variable amount as unsigned.
9457 (get_shift_alg): Fix a comparison between signed and unsigned.
9458 (emit_a_shift): Likewise.
9459 (h8300_adjust_insn_length): Simplify the code.
9460
9461 * c-decl.c: Fix formatting.
9462
9463 2000-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9464
9465 * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
9466 warning about non-traditional numeric constant suffixes.
9467
9468 * cppexp.c (parse_number): Likewise.
9469
9470 * invoke.texi: (-Wtraditional): Document new behavior.
9471
9472 Thu Aug 10 00:11:04 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
9473
9474 * gthr-posix.h: Include auto-host.h. Conditionally include
9475 <sched.h>.
9476 * configure.in: Check for the <sched.h> header file.
9477 * config.in: Added define for HAVE_SCHED_H.
9478
9479 2000-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9480
9481 * c-typeck.c (process_init_element): For -Wtraditional, warn about
9482 initialization of unions.
9483
9484 * invoke.texi (-Wtraditional): Document new behavior.
9485
9486 2000-08-09 Zack Weinberg <zack@wolery.cumb.org>
9487
9488 * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE
9489 instead of extra_c_flags.
9490 (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
9491 * configure: Regenerate.
9492 * config.in: Regenerate.
9493
9494 * cpperror.c (cpp_type2name): New function.
9495 * cpplex.c (lex_line): If we issued an error for an invalid
9496 preprocessing directive, discard that logical line.
9497 * cpplib.c (do_line): Call a hook function if the current file
9498 is renamed by #line.
9499 (do_ident): Pass the contents of the string, not the entire
9500 token, to the callback function.
9501 * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
9502 (cb.rename_file): New hook function.
9503 (cb.ident): Adjust prototype.
9504 (cpp_type2name): Prototype.
9505 * cppmacro.c (dump_macro_args): Correct precedence lossage.
9506
9507 * cppmain.c (cb_ident): Update for changed interface.
9508 (cb_rename_file): New function.
9509 (main): Set rename callback.
9510
9511 2000-08-09 Alexandre Oliva <aoliva@redhat.com>
9512
9513 * caller-save.c (mark_referenced_regs): Mark partially-overwritten
9514 multi-word registers.
9515
9516 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
9517
9518 * c-common.c (combine_strings, check_format_info): Refer to ISO C
9519 or ISO C89 instead of ANSI C.
9520 * c-decl.c (grokdeclarator, xref_tag, finish_struct,
9521 build_enumerator, do_case): Likewise.
9522 * c-lex.c (parse_float, yylex): Likewise.
9523 * c-parse.in: Likewise.
9524 * c-typeck.c (common_type, build_array_ref, build_binary_op,
9525 build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
9526 build_c_cast, convert_for_assignment, set_init_index,
9527 set_init_label, c_expand_start_case): Likewise.
9528 * toplev.c (documented_lang_options, display_help): Likewise.
9529
9530 2000-08-08 Kazu Hirata <kazu@hxi.com>
9531
9532 * h8300.c: Fix formatting.
9533 * h8300.h: Likewise.
9534 * h8300.md: Likewise.
9535 (movsi_h8300hs): Fix formatting of the resulting assembly code.
9536
9537 * reload1.c: Fix formatting.
9538
9539 2000-08-08 Rodney Brown <RodneyBrown@mynd.com>
9540
9541 * alpha/alpha.c (alpha_emit_xfloating_libcall):
9542 Use GEN_CALL_VALUE define.
9543 * alpha/alpha.md (untyped_call): Use GEN_CALL define.
9544 * clipper/clipper.md (untyped_call): Likewise.
9545 * dsp16xx/dsp16xx.md (untyped_call): Likewise.
9546 * fx80/fx80.md (untyped_call): Likewise.
9547 * mips/mips.md (untyped_call): Likewise.
9548 * ns32k/ns32k.md (untyped_call): Likewise.
9549 * pa/pa.md (untyped_call): Likewise.
9550 * romp/romp.md (untyped_call): Likewise.
9551 * sparc/sparc.md (untyped_call): Likewise.
9552
9553 2000-08-08 Jason Eckhardt <jle@cygnus.com>
9554
9555 * config/i860/i860.c (singlemove_string): Do not generate assembler
9556 pseudo instructions that must be expanded (that is, with signed
9557 constants larger than 16 bits).
9558
9559 2000-08-08 Richard Henderson <rth@cygnus.com>
9560
9561 * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
9562 PROP_AUTOINC at -O0. Don't collect alias info at -O0.
9563 (init_propagate_block_info): Don't kill memory stores at -O0.
9564 (mark_set_1, mark_used_regs): Likewise.
9565
9566 2000-08-08 David Edelsohn <edelsohn@gnu.org>
9567
9568 * rs6000.c (optimization_options): Decorate 'level' as
9569 ATTRIBUTE_UNUSED.
9570 (mask64_operand): Remove sign-extend thinko.
9571 (rldic_operand): New function.
9572 (load_multiple_operation): regno's are unsigned ints.
9573 (store_multiple_operation): Likewise.
9574 (lmw_operation): Likewise.
9575 (stmw_operation): Likewise.
9576 (includes_lshift_p): shift_mask is unsigned int.
9577 (includes_lshift64_p): New function.
9578 (addrs_ok_for_quad_peep): unsigned int reg1.
9579 (print_operand): Consistently add "else" after
9580 output_operand_lossage().
9581 (print_operand, case 'b'): Fold in case 'W'.
9582 (print_operand, case 'W'): Print rldic MB value.
9583 (output_epilogue): Update Objective-C language string.
9584 (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
9585 * rs6000.h (PREDICATE_CODES): Add rldic_operand.
9586 * rs6000.md (ashldi3): Add rldic instruction.
9587 (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
9588 (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
9589 modifier.
9590
9591 2000-08-08 Richard Henderson <rth@cygnus.com>
9592
9593 * config/ia64/ia64-protos.h: Remove duplicates. Update
9594 for massive code rearrangements.
9595 * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
9596 (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
9597 (ia64_local_regs, ia64_need_regstk): Remove.
9598 (ar_ccv_reg_operand): New.
9599 (ia64_gp_save_reg): New.
9600 (struct ia64_frame_info): Combine most of the size elements;
9601 add new gr save elements.
9602 (find_gr_spill): New.
9603 (next_scratch_gr_reg): New.
9604 (mark_reg_gr_used_mask): New.
9605 (ia64_compute_frame_size): Rewrite. Allocate special AR regs
9606 to GR backing store regs when possible.
9607 (ia64_initial_elimination_offset): New.
9608 (ia64_rap_fp_offset): Remove.
9609 (save_restore_insns): Remove.
9610 (setup_spill_pointers): New.
9611 (finish_spill_pointers): New.
9612 (spill_restore_mem): New.
9613 (do_spill, do_restore): New.
9614 (ia64_expand_prologue): Rewrite to use them.
9615 (ia64_expand_epilogue): Likewise.
9616 (ia64_direct_return): Update for current_frame_info changes.
9617 (ia64_function_prologue): Simplify .prologue emission. Emit
9618 .spill when needed.
9619 (ia64_setup_incoming_varargs): Don't ever emit rtl.
9620 (ia64_dbx_register_number): New.
9621 (ia64_initialize_trampoline): New.
9622 (ia64_secondary_reload_class): Request GR_REGS for integer
9623 arithmetic destined for FR_REGS.
9624 (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
9625 (ia64_mark_machine_status): Mark ia64_gp_save.
9626 (rws_access_regno): Rename from rws_access_reg; don't treat
9627 predicates specially.
9628 (rws_access_reg): New. Update all callers.
9629 (rtx_needs_barrier): Remove dead unspecs.
9630 (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
9631 (ia64_encode_section_info): Silence signed/unsigned warnings.
9632 (spill_offset, sp_offset, spill_offset_emitted): Remove.
9633 (tmp_reg, tmp_saved): Remove.
9634 (process_set): Rewrite to expect complicated bits via
9635 REG_FRAME_RELATED_EXPR.
9636 (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
9637 in the use of ar.ccv; never set RTX_UNCHANGING_P.
9638 (ia64_expand_op_and_fetch): Likewise.
9639 (ia64_expand_compare_and_swap): Likewise.
9640 (ia64_expand_builtin): Likewise.
9641 * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
9642 (FIRST_PSEUDO_REGISTER): Update.
9643 (AR_M_REGNO_P): Update.
9644 (FIXED_REGS): Don't mark three local registers as used.
9645 (EXTRA_CC_MODES): New.
9646 (SELECT_CC_MODE): New.
9647 (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
9648 (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
9649 (FRAME_GROWS_DOWNWARD): Unset.
9650 (STARTING_FRAME_OFFSET): Zero.
9651 (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
9652 (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
9653 (HARD_FRAME_POINTER_REGNUM): New.
9654 (CAN_DEBUG_WITHOUT_FP): Define.
9655 (TRAMPOLINE_TEMPLATE): Remove.
9656 (TRAMPOLINE_SIZE): Lower to 32.
9657 (TRAMPOLINE_ALIGNMENT): Lower to 64.
9658 (INITIALIZE_TRAMPOLINE): Defer to out of line function.
9659 (PREDICATE_CODES): Update.
9660 (struct machine_function): Add ia64_gp_save.
9661 * config/ia64/ia64.md: Purge unused unspecs.
9662 (movsi patterns): Allow moves to/from AR_M_REGS.
9663 (movdi patterns): Allow moves to/from p0.
9664 (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
9665 (gr_spill, gr_restore): Indicate ar.unat read/written.
9666 (nonlocal_goto): Don't pass old frame_pointer.
9667 (nonlocal_goto_receiver): Remove.
9668 (exception_receiver): New.
9669 (builtin_setjmp_setup): New.
9670 (builtin_setjmp_receiver): New.
9671 * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
9672 (__ia64_nonlocal_goto): Bundle. Don't kill r7.
9673 (__ia64_restore_stack_nonlocal): Likewise.
9674 (__ia64_trampoline): New.
9675 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
9676 function.
9677 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
9678
9679 2000-08-08 Richard Henderson <rth@cygnus.com>
9680
9681 * frame.h (ia64_frame_state): Add my_psp.
9682 * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
9683 (__throw): Pass it in. Don't clobber r7.
9684 * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
9685 (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
9686 and nothing to do with sp.
9687 (normalize_reg_loc): Use frame->my_psp.
9688 (frame_translate): Handle frame-pointer-less functions. Set
9689 spill_base correctly, in absence of being told.
9690 (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp.
9691 (__ia64_backtrace_helper): New sp argument. Use
9692 builtin_return_address instead of label addresses.
9693 (print_record) [mem_stack_v]: No size member.
9694
9695 2000-08-08 Richard Henderson <rth@cygnus.com>
9696
9697 * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
9698
9699 2000-08-08 Richard Henderson <rth@cygnus.com>
9700
9701 * tm.texi (LOCAL_REGNO): Document.
9702 * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
9703 (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
9704 * reload1.c (reload): Likewise when considering nonlocal labels.
9705
9706 * config/ia64/ia64.h (LOCAL_REGNO): New.
9707 * config/sparc/sparc.h (LOCAL_REGNO): New.
9708
9709 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
9710
9711 * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
9712
9713 2000-08-07 Nick Clifton <nickc@redhat.com>
9714
9715 * config/mips/mips.c: Fix compile time warning messages.
9716 * config/mips/mips-protos.h: Add prototype for equality_op.
9717
9718 * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
9719
9720 2000-08-07 Graham Stott <grahams@cygnus.co.uk>
9721
9722 * mn10300.md: Use nonimmediate_operand instead of general_operand
9723 on output operands.
9724
9725 * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
9726
9727 2000-08-07 Alexandre Oliva <aoliva@redhat.com>
9728
9729 * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
9730 * sh.c (expand_block_move): Break long lines.
9731 (expand_ashiftrt, fpscr_set_from_mem): Likewise.
9732 * sh.md (mulsi3): Likewise.
9733 (movdi): Adjust spacing.
9734
9735 2000-08-07 Richard Henderson <rth@cygnus.com>
9736
9737 * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
9738 * expr.c (emit_group_store): Don't set it.
9739
9740 2000-08-07 Kazu Hirata <kazu@hxi.com>
9741
9742 * invoke.texi (Options for Debugging Your Program or GCC): Remove
9743 duplicate entries for 'w' and 'z'.
9744
9745 * flow.c: Fix a comment typo.
9746
9747 Sun Aug 6 23:47:35 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
9748
9749 * c-parse.in: Changed the language string for Objective-C to "GNU
9750 Objective-C".
9751
9752 Sun Aug 6 11:54:03 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
9753
9754 * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
9755 to improve the Posix thread support for Objective-C.
9756
9757 2000-08-06 Joseph S. Myers <jsm28@cam.ac.uk>
9758
9759 * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
9760 CTI_UNSIGNED_PTRDIFF_TYPE.
9761 (signed_size_type_node): Define.
9762 (unsigned_ptrdiff_type_node): Define.
9763 * c-decl.c (init_decl_processing): Create the
9764 signed_size_type_node and unsigned_ptrdiff_type_node types.
9765 * c-common.c (T_SC): Define.
9766 (T_SST): Define.
9767 (T_UPD): Define.
9768 (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for
9769 %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for
9770 %s and %p.
9771 (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for
9772 %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the
9773 flags for %c, %s and %[.
9774 (check_format_info): Only allow leniency for signedness of targets
9775 of character pointers (when pedantic) for formats flagged with
9776 "c", so for strings but not for %hh formats. When pedantic, don't
9777 allow character pointers to substitute for void pointers if a
9778 second level of indirection is present.
9779
9780 2000-08-06 Kazu Hirata <kazu@hxi.com>
9781
9782 * invoke.texi (Options for Debugging Your Program or GCC): Update
9783 the names of dump files.
9784
9785 * h8300.c (dosize): Rearrange code for conciseness.
9786 (split_adds_subs): Likewise.
9787
9788 * loop.c: Fix formatting.
9789
9790 * dwarf2out.c: Fix formatting.
9791
9792 * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
9793
9794 * expr.c: Fix formatting.
9795
9796 2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9797
9798 * rs6000.c (rs6000_maybe_dead): Prototype.
9799
9800 2000-08-06 Richard Henderson <rth@cygnus.com>
9801
9802 * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
9803 HAVE_nonlocal_goto as well.
9804 * config/i960/i960.md (nonlocal_goto): Don't do it here.
9805 * config/pj/pj.md (nonlocal_goto): Likewise.
9806
9807 2000-08-07 Michael Hayes <mhayes@cygnus.com>
9808
9809 * loop.c (try_swap_copy_prop): New function.
9810 (load_mems): Rename copies to load_copies and add new regset
9811 store_copies. Check for sets of shadow registers and mark
9812 in store_copies. Call try_swap_copy_prop for registers
9813 marked in store_copies.
9814
9815 Sun Aug 6 00:54:42 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
9816
9817 * objc/objc-act.c: New command line option -fconstant-string-class
9818 to allow specifying a user defined constant string class,
9819 different from NXConstantString.
9820
9821 * toplev.c: Moved the Objective-C specific options to
9822 objc/lang-options.h.
9823
9824 * objc/lang-options.h: Moved the Objective-C specific options from
9825 toplev.c. Added -fconstant-string-class.
9826
9827 2000-08-05 Chris Demetriou <cgd@sibyte.com>
9828
9829 * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
9830 DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
9831 __CTOR_LIST__ from func_ptr array to just func_ptr, to
9832 avoid extra alignment imposed on arrays.
9833 * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
9834 DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
9835
9836 * mips.h: Clean up comments and spacing near MASKs.
9837 (TARGET_UNIX_ASM): Delete.
9838 (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
9839 MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
9840 values contiguous.
9841
9842 2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk>
9843
9844 * c-common.c (print_char_table): Add entries for the X/Open '
9845 format flag (print decimals with locale's thousands grouping
9846 character). Make %C expect wint_t.
9847 (check_format_info): If pedantic, warn when the %n$ operand
9848 number form is used. Allow for the ' flag; warn about it if
9849 pedantic.
9850
9851 2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
9852
9853 * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return
9854 type is a float mode, cfun->decl's return type is not, and
9855 TARGET_FLOAT_RETURNS_IN_80387.
9856
9857 2000-08-04 Andreas Schwab <schwab@suse.de>
9858
9859 * cppmain.c (cb_def_pragma): Skip the first two tokens from the
9860 token list, which are always `#' and `pragma'.
9861
9862 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
9863
9864 * tree.c (tree_expr_nonnegative_p): Move to...
9865 * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR.
9866 (rtl_expr_nonnegative_p): New.
9867 * tree.h: Add prototype for rtl_expr_nonnegative_p.
9868
9869 * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
9870 CONST_DOUBLE_CHAIN: Move to...
9871 * rtl.h: ...here. Use XCINT/XCEXP.
9872
9873 * Makefile.in: Remove toplev.o from OBJS. Add rule to make
9874 libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND
9875 variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND
9876 to VOL_FILES.
9877
9878 * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
9879
9880 2000-08-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9881
9882 * config/c4x/c4x.md (return_indirect_internal): New.
9883 * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
9884
9885 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
9886
9887 * c-common.c (time_char_table): Mark up formats added in C99 and
9888 make other corrections. %D and %g were added in C99. %Og is an
9889 extension. %EX is permitted. %R, %T, %n, %r, %t were added in
9890 C99. %e was added in C99. %Oj is an extension. %G and %z are in
9891 C99 rather than GNU extensions, but %OG and %Oz are extensions.
9892 %h was added in C99. %C was added in C99. %OY and %OC are
9893 extensions. Add the C99 format %F.
9894 (check_format_info): If pedantic and not in C99 mode, warn for C99
9895 formats, %E and %O.
9896
9897 Fri Aug 4 23:01:58 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
9898
9899 * function.c (schedule_fixup_var_refs): New function, broken out
9900 of put_reg_into_stack.
9901 (put_reg_into_stack): Use it.
9902 (put_var_into_stack): In CONCAT case, fixup up references for
9903 components only after fixing up references to the whole concat.
9904
9905 2000-08-04 Rodney Brown <RodneyBrown@pmsc.com>
9906
9907 * alias.c (mark_constant_function): Use INSN_P.
9908 (init_alias_analysis): Likewise.
9909 * combine.c (combine_instructions): Use INSN_P.
9910 (can_combine_p): Likewise.
9911 (try_combine): Likewise.
9912 (distribute_notes): Likewise.
9913 (distribute_links): Likewise.
9914 * cse.c (cse_around_loop): Use INSN_P.
9915 (invalidate_skipped_block): Likewise.
9916 (cse_set_around_loop): Likewise.
9917 (cse_end_of_basic_block): Likewise.
9918 (delete_trivially_dead_insns): Likewise.
9919 * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
9920 (unshare_all_rtl_1): Likewise.
9921 (next_cc0_user): Likewise.
9922 (try_split make_insn_raw): Likewise.
9923 (remove_unnecessary_notes): Likewise.
9924 * final.c (shorten_branches): Use INSN_P.
9925 (leaf_renumber_regs): Likewise.
9926 (leaf_renumber_regs_insn): Likewise.
9927 * flow.c (find_label_refs): Use INSN_P.
9928 (verify_wide_reg): Likewise.
9929 (notice_stack_pointer_modification): Likewise.
9930 (count_or_remove_death_notes): Likewise.
9931 (verify_flow_info): Likewise.
9932 (clear_log_links): Likewise.
9933 * function.c (fixup_var_refs_insns): Use INSN_P.
9934 (compute_insns_for_mem): Likewise.
9935 * gcse.c (alloc_gcse_mem): Use INSN_P.
9936 (compute_sets): Likewise.
9937 (compute_hash_table): Likewise.
9938 (classic_gcse): Likewise.
9939 (cprop): Likewise.
9940 (insert_insn_end_bb): Likewise.
9941 (delete_null_pointer_checks_1): Likewise.
9942 * global.c (expand_preferences): Use INSN_P.
9943 (build_insn_chain): Likewise.
9944 * graph.c (node_data): Use INSN_P.
9945 * haifa-sched.c (priority): Use INSN_P.
9946 (rm_line_notes): Likewise.
9947 (rm_other_notes): Likewise.
9948 (find_insn_reg_weight): Likewise.
9949 (init_target_units): Likewise.
9950 (schedule_block): Likewise.
9951 (compute_block_forward_dependences): Likewise.
9952 (debug_dependencies): Likewise.
9953 (set_priorities): Likewise.
9954 * integrate.c (function_cannot_inline_p): Use INSN_P.
9955 (save_parm_insns): Likewise.
9956 (copy_insn_list): Likewise.
9957 * jump.c (mark_all_labels): Use INSN_P.
9958 (never_reached_warning): Likewise.
9959 * lcm.c (optimize_mode_switching): Use INSN_P.
9960 * local-alloc.c (validate_equiv_mem): Use INSN_P.
9961 (memref_used_between_p): Likewise.
9962 (update_equiv_regs): Likewise.
9963 (block_alloc): Likewise.
9964 (no_conflict_p): Likewise.
9965 * loop.c (scan_loop): Use INSN_P.
9966 (find_and_verify_loops): Likewise.
9967 (count_loop_regs_set): Likewise.
9968 (loop_reg_used_before_p): Likewise.
9969 (strength_reduce): Likewise.
9970 (recombine_givs): Likewise.
9971 (check_dbra_loop): Likewise.
9972 (load_mems): Likewise.
9973 (try_copy_prop): Likewise.
9974 * print-rtl.c (print_rtx): Use INSN_P.
9975 * recog.c (find_single_use): Use INSN_P.
9976 * reg-stack.c (stack_regs_mentioned): Use INSN_P.
9977 (next_flags_user): Likewise.
9978 (swap_rtx_condition): Likewise.
9979 * regmove.c (mark_flags_life_zones): Use INSN_P.
9980 (optimize_reg_copy_1): Likewise.
9981 (optimize_reg_copy_2): Likewise.
9982 (optimize_reg_copy_3): Likewise.
9983 (reg_is_remote_constant_p): Likewise.
9984 (fixup_match_2): Likewise.
9985 (regmove_optimize): Likewise.
9986 (fixup_match_1): Likewise.
9987 * regrename.c (build_def_use): Use INSN_P.
9988 (replace_reg_in_block): Likewise.
9989 (consider_use): Likewise.
9990 * reload.c (find_equiv_reg): Use INSN_P.
9991 * reload1.c (reload): Use INSN_P.
9992 (maybe_fix_stack_asms): Likewise.
9993 (calculate_needs_all_insns): Likewise.
9994 (reload_as_needed): Likewise.
9995 (emit_output_reload_insns): Likewise.
9996 (delete_address_reloads_1): Likewise.
9997 (reload_cse_regs_1): Likewise.
9998 (reload_combine): Likewise.
9999 (reload_cse_move2add): Likewise.
10000 * reorg.c (redundant_insn): Use INSN_P.
10001 (dbr_schedule): Likewise.
10002 * resource.c (find_dead_or_set_registers): Use INSN_P.
10003 (mark_target_live_regs): Likewise.
10004 * rtlanal.c (reg_used_between_p): Use INSN_P.
10005 (reg_referenced_between_p): Likewise.
10006 (reg_set_between_p): Likewise.
10007 (reg_set_p): Likewise.
10008 (single_set): Likewise.
10009 (multiple_sets): Likewise.
10010 (find_last_value): Likewise.
10011 (reg_set_last): Likewise.
10012 (find_reg_note): Likewise.
10013 (find_regno_note): Likewise.
10014 * sibcall.c (sequence_uses_addressof): Use INSN_P.
10015 * simplify-rtx.c (cselib_process_insn): Use INSN_P.
10016 * ssa.c (find_evaluations): Use INSN_P.
10017 (rename_block): Likewise.
10018 (rename_equivalent_regs): Likewise.
10019 * unroll.c (loop_find_equiv_value): Use INSN_P.
10020 (set_dominates_use): Likewise.
10021 * varasm.c (mark_constant_pool): Use INSN_P.
10022 (mark_constants): Likewise.
10023 * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
10024 (alphaev4_next_group): Likewise.
10025 (alphaev5_next_group): Likewise.
10026 * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
10027 (c4x_rptb_rpts_p): Likewise.
10028 * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
10029 * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
10030 (rs6000_adjust_priority): Likewise.
10031 * config/sh/sh.c (sh_loop_align): Use INSN_P.
10032 (machine_dependent_reorg): Likewise.
10033 (split_branches): Likewise.
10034 * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
10035
10036 Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com)
10037
10038 * combine.c (recog_for_combine): Remove the old notes
10039 prior to attempting to recognize the new pattern.
10040 (distribute_notes): Ignore REG_NONNEG notes.
10041
10042 2000-08-04 Chandrakala Chavva <cchavva@redhat.com>
10043
10044 * varasm.c (output_constructor): Add .align 0 for packed vars.
10045
10046 2000-08-04 J. David Anglin <dave@hiauly1.hia.nrc.ca>
10047
10048 * configure.in: Use default thread_file even when enable_threads is
10049 yes or dce because hpux10.20 pa port uses MULTILIB implementation.
10050 * configure: Rebuilt.
10051
10052 * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
10053
10054 2000-08-04 Donn Terry (donnte@microsoft.com)
10055
10056 * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
10057
10058 2000-08-04 Mark Elbrecht <snowball3@bigfoot.com>
10059
10060 * i386/x-djgpp: Delete code that conditionally modifies target_alias.
10061 Delete code that conditionally modifies 'version'.
10062 Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
10063 * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
10064 * gcc.c (main): Use it.
10065 * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
10066 * prefix.c (update_path): Use it.
10067 * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
10068 (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
10069 (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
10070 code.
10071 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
10072 (SUBTARGET_SWITCHES): Adjust.
10073 (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
10074 defining.
10075 (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
10076
10077 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10078
10079 * c-common.h (flag_isoc94): Declare.
10080 * c-decl.c (flag_isoc94): Define.
10081 (c_decode_option): Set flag_isoc94 as appropriate.
10082 * c-common.c (T_PD, T_IM, T_UIM): Define.
10083 (format_char_info): Add tlen and jlen.
10084 (print_char_table): Add entries for %t and %j. Allow %zn. Allow
10085 %F. Allow %lf.
10086 (scan_char_table): Add entries for %t and %j. Allow %F. Allow
10087 %l[.
10088 (time_char_table): Add NULL entries for %t and %j.
10089 (check_format_info): Allow for %t and %j. Warn for %F if pedantic
10090 and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94.
10091 Warn for printf %lf if pedantic and not C99. Don't warn for empty
10092 precision. Allow precision argument to be unsigned int. If
10093 pedantic, warn for %p passed an argument not a pointer to possibly
10094 qualified void or a possibly qualified character type, and for
10095 pointer targets of the wrong sign, except for character pointers.
10096
10097 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10098
10099 * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
10100 * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
10101 (wint_type_node): Define.
10102 * c-decl.c (WINT_TYPE): Define.
10103 (init_decl_processing): Create the wint_type_node type.
10104 * c-common.c (T_WI): Define.
10105 (print_char_table): Use T_WI for %lc format.
10106
10107 2000-08-04 Bruce Korb <bkorb@gnu.org>
10108
10109 * fixinc/: Verified that the MSDOS patch does not break
10110 the UNIX functionality and applied the next three patches
10111 from July:
10112
10113 2000-07-28 Eli Zaretskii <eliz@is.elta.co.il>
10114
10115 * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
10116 output file with the temporary one by appending ".X" to generate
10117 the temporary fuile's name. If the output file already has an
10118 extension, replace it with ".X".
10119
10120 * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
10121 not $DESTDIR, to find applyfix. Use sprintf instead of snprintf;
10122 reallocate the command buffer while copying the command-line
10123 argument. Redirect the output directly to the temporary file,
10124 instead of going through another temporary file.
10125 (process): Close the temporary file before unlinking it.
10126 (machine_matches) [__MSDOS__]: If the machine doesn't match, set
10127 the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag.
10128 (run_compiles): Pass p_fixd argument to machine_matches, as it
10129 expects.
10130
10131 * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the
10132 environment, assume there are no symlinks in the include
10133 directory. When cleaning up the DONE files, look for them
10134 case-insensitively. Don't try to remove symlinks if they aren't
10135 there.
10136
10137 * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
10138 all callers changed. Declare pz "const char *", to avoid compiler
10139 warnings.
10140
10141 * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
10142 Change prototype of make_raw_shell_str.
10143
10144 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
10145
10146 * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
10147 (initialize) [__MSDOS__]: Use tempnam.
10148 (initialize): Don't use SIGPIPE if it is not defined.
10149
10150 * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
10151 return stdout.
10152
10153 2000-07-25 Bruce Korb <bkorb@gnu.org>
10154
10155 * fixinc/fix*.[ch]: substantially reworked to make it possible
10156 to run this program without using fork(2) or pipe(2) (i.e. in
10157 a DOS environment).
10158
10159 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10160
10161 * cppdefault.h (WINT_TYPE): Define.
10162 * cppinit.c (builtin_array): Define __WINT_TYPE__.
10163 * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
10164 * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
10165
10166 Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com>
10167
10168 * (mips_legitimate_address_p): Don't allow register+offset
10169 if the offset is large and negative, and we are compiling
10170 for 64 bit registers.
10171
10172 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10173
10174 * gencodes.c (main): Define CODE_FOR_nothing as the last possible
10175 insn_code_number + 1.
10176
10177 2000-08-04 Kazu Hirata <kazu@hxi.com>
10178
10179 * h8300.c (function_prologue): Rearrange code for conciseness.
10180 (function_epilogue): Likewise.
10181 * h8300.h (OK_FOR_U): Fix formatting.
10182
10183 * cse.c: Fix a comment typo. Fix formatting.
10184
10185 2000-08-03 Richard Henderson <rth@cygnus.com>
10186
10187 * config/i386/i386.md (return_indirect_internal): New.
10188 * config/i386/i386.c (ix86_expand_epilogue): Use it.
10189
10190 2000-08-03 Zack Weinberg <zack@wolery.cumb.org>
10191
10192 * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
10193 before the name.
10194 (lex_line): Glue @ onto the beginning of identifiers and
10195 string constants, in Objective-C mode.
10196 (output_token, spell_token): Handle CPP_OSTRING.
10197 (can_paste, maybe_paste_with_next): Handle pasting @ onto the
10198 beginning of a NAME or a STRING, in objc mode.
10199
10200 * cpplib.c (get_define_node): Do not permit identifiers that
10201 begin with @ to be #defined.
10202 * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
10203 * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
10204
10205 * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
10206 * c-tree.h (build_objc_string): Delete prototype.
10207 * objc/objc-tree.def: Delete OBJC_STRING_CST.
10208 * c-lex.c (yylex): Use build_string for all three kinds of strings.
10209
10210 * c-parse.in, objc/objc-act.c: Update commentary.
10211
10212 2000-08-03 Mark Mitchell <mark@codesourcery.com>
10213
10214 * extend.texi: Fix typo in last change.
10215
10216 * extend.texi: Add commentary on statement-expressions and their
10217 interactions with C++.
10218
10219 2000-08-03 Nick Clifton <nickc@cygnus.com>
10220
10221 * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
10222 * dwarf.h (LANG_JAVA): Change value to 0x000b.
10223
10224 2000-08-03 Anthony Green <green@cygnus.com>
10225
10226 * dwarf2out.c (gen_compile_unit_die): Add java language support.
10227 (add_bound_info): Check for java language.
10228 (is_java): New function.
10229 * dwarfout.c (output_compile_unit_die): Ditto.
10230 * dwarf.h (dwarf_source_language): Add java source language type.
10231 * dwarf2.h (dwarf_source_language): Ditto.
10232
10233 Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
10234
10235 * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap
10236 operands.
10237
10238 * i386.c (ix86_expand_branch): Mode of comparison in
10239 IF_THEN_ELSE is VOIDmode.
10240
10241 Thu Aug 3 10:05:53 2000 Akiko Matsushita <matusita@sra.co.jp>
10242
10243 * gengenrtl.c, rtl.c: Avoid #elif.
10244
10245 2000-08-03 Michael Poole <poole@troilus.org>
10246
10247 * tm.texi (Register Classes): Clarify order of sub-initializers
10248 in REG_CLASS_CONTENTS.
10249
10250 Thu Aug 3 15:53:03 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
10251
10252 From SAITOH Masanobu:
10253 * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
10254
10255 2000-08-03 David Billinghurst <David.Billinghurst@riotinto.com.au>
10256
10257 * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
10258 is not supported by tradcpp and isn't actually needed for cygwin.
10259
10260 2000-08-03 Kazu Hirata <kazu@hxi.com>
10261
10262 * h8300.c: Fix a comment typo.
10263 * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
10264
10265 * jump.c: Fix formatting.
10266
10267 * toplev.c: Fix formatting.
10268
10269 Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com)
10270
10271 * flow.c (find_auto_inc): Verify that we've got a REG before
10272 peeking at its regno. Fail, don't abort if we can't find
10273 the increment of the desired register.
10274
10275 * pa.md (shadd height reduction patterns/splitters): Remove.
10276
10277 2000-08-02 Jim Wilson <wilson@cygnus.com>
10278
10279 * config/ia64/ia64-protos.h (flag_ssa): Declare.
10280 * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
10281
10282 2000-08-02 Mark Mitchell <mark@codesourcery.com>
10283
10284 * dce.c: Remove all uses of assert.
10285 * dwarf2out.c: Likewise.
10286 * dwarfout.c: Likewise.
10287 * ssa.c: Likewise.
10288
10289 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
10290
10291 * gcc.h (lang_specific_driver): Constify second argument.
10292 * gcc.c (translate_options, process_command, main): Likewise.
10293 Constify variables to match. Cast second argument to
10294 pexecute.
10295
10296 * cppspec.c, gccspec.c: Adjust type of second argument to
10297 lang_specific_driver, and update code as necessary.
10298
10299 2000-08-02 Jakub Jelinek <jakub@redhat.com>
10300
10301 * loop.c (scan_loop): Ensure update_end label does not
10302 go away until reg_scan_update is run.
10303
10304 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
10305
10306 * c-common.h: Prototype min_precision and c_build_qualified_type here...
10307 * c-tree.h: ... not here.
10308 * errors.h: Prototype fancy_abort.
10309
10310 * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
10311 HOST_BITS_PER_WIDE_INT == 64 ifdef block.
10312 * regrename.c (regrename_optimize): Make control flow explicit.
10313 (replace_reg_in_block): Initialize reg_use to 0.
10314
10315 * i386.c (legitimate_address_p): Rename error label to
10316 report_error to avoid namespace clash.
10317
10318 2000-08-02 Kazu Hirata <kazu@hxi.com>
10319
10320 * fold-const.c: Fix formatting.
10321
10322 Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz>
10323
10324 * i386.c (legitimate_address_p): Accept other bases than
10325 pic_offset_table_rtx for GOTOFF constructs.
10326
10327 Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
10328
10329 * i386.md (shift to lea splitter): Use const_int_operand.
10330
10331 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
10332
10333 * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
10334 cppspec.c: Do not use 'legal' or 'illegal' in error messages
10335 and comments.
10336
10337 * cppmain.c (cb_define, cb_undef): Don't generate any output
10338 if not done_initializing.
10339 * cpplex.c (maybe_paste_with_next): When the token after a ##
10340 is an omitted rest argument, only delete the token before it
10341 if that token is a comma. Do not warn about bogus token
10342 pastes for , ## rest_arg.
10343
10344 * cpp.texi: Update.
10345 * cpp.1: Regenerate.
10346
10347 2000-08-02 Fred Fish <fnf@be.com>
10348
10349 * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
10350 when user gives -p option. Add init_term_dyn.o for BeOS 5.0
10351 and later.
10352
10353 * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
10354 Be directories to search path.
10355
10356 Remove support for __declspec(dllimport) and __declspec(dllexport).
10357 This is leftover cruft from the earlier BeOS gcc port when BeOS
10358 used Microsoft's PE object file format.
10359 * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
10360 * config/i386/t-beos (winnt.o): Remove Makefile frag.
10361 * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
10362 (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
10363 (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
10364 (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
10365 (REDO_SECTION_INFO_P): Remove.
10366 (ASM_EXPORT_DECL): Remove.
10367 (ASM_DECLARE_FUNCTION_NAME): Remove.
10368 (ASM_DECLARE_OBJECT_NAME): Remove.
10369 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
10370 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
10371 (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
10372 (STRIP_NAME_ENCODING): Remove.
10373
10374 Remove support for obsolete version of BeOS that is no longer
10375 supported by Be.
10376 * configure.in (i*86-*-beospe*): Remove.
10377 * config/i386/beos-pe.h: Remove.
10378
10379 2000-08-01 Jeffrey Oldham <oldham@codesourcery.com>
10380 Mark Mitchell <mark@codesourcery.com>
10381
10382 * Makefile.in (OBJS): Added dce.o.
10383 (ssa.o): Updated target to include ssa.h.
10384 (flow.o): Likewise.
10385 (toplev.o): Likewise.
10386 (dce.o): Created target.
10387 * basic-block.h: Added comments.
10388 (INVALID_BLOCK): Added definition.
10389 (connect_infinite_loops_to_exit): Added declaration.
10390 Moved SSA declarations to ssa.h.
10391 * flow.c: Added inclusion of ssa.h.
10392 (struct depth_first_search_dsS, depth_first_search_ds):
10393 Added definitions.
10394 (compute_immediate_postdominators): Added definition.
10395 (connect_infinite_loops_to_exit): Likewise.
10396 (flow_dfs_compute_reverse_init): Likewise.
10397 (flow_dfs_compute_reverse_add_bb): Likewise.
10398 (flow_dfs_compute_reverse_execute): Likewise.
10399 (flow_dfs_compute_reverse_finish): Likewise.
10400 * rtl.h (rtx/in_struct): Added use to determine insn necessity.
10401 (LABEL_P): Added definition.
10402 (JUMP_P): Likewise.
10403 (NOTE_P): Likewise.
10404 (BARRIER_P): Likewise.
10405 (JUMP_TABLE_DATA_P): Likewise.
10406 (INSN_DEAD_CODE_P): Likewise.
10407 * ssa.c: Replaced inclusions with ssa.h inclusion.
10408 (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
10409 (rename_registers): Removed unnecessary variables.
10410 * ssa.h: Created by moving declarations from ssa.c and
10411 basic-block.h.
10412 * timevar.def: Defined TV_DEAD_CODE_ELIM.
10413 * toplev.c: Added ssa.h inclusion.
10414 (dump_file_index): Added DFI_dce.
10415 (dump_file): Added "dce" entry.
10416 Defined flag_ssa.
10417 (f_options): Added dce entry.
10418 * invoke.texi: Document -fdce. Emphasize experimental status of
10419 -fssa.
10420 * dce.c: New file.
10421
10422 2000-08-01 Zack Weinberg <zack@wolery.cumb.org>
10423
10424 * cpperror.c (v_message): Split into _cpp_begin_message and
10425 v_message macro. All callers updated.
10426 (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
10427 checks here.
10428
10429 * cppfiles.c (cpp_syshdr_flags): New function.
10430 (read_include_file): Don't call cpp_output_tokens. Call
10431 enter_file hook.
10432 * cppinit.c (dump_macros_helper): Moved to cppmain.c.
10433 (cpp_reader_init): Don't initialize token_buffer. Call
10434 _cpp_init_internal_pragmas.
10435 (cpp_cleanup): Don't clear token_buffer.
10436 (cpp_start_read): Don't worry about output from -D processing.
10437 Don't call cpp_output_tokens.
10438 (cpp_finish): Don't dump macros here. Don't call
10439 cpp_output_tokens.
10440 * cppmacro.c (_cpp_dump_definition): Rename
10441 cpp_dump_definition. Write directly to a FILE *.
10442 (dump_funlike_macro): Delete.
10443 (dump_macro_args): New.
10444
10445 * cpplex.c (TOKEN_LEN): Convert to inline function.
10446 (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
10447 cpp_scan_line, _cpp_dump_list): Delete.
10448 (cpp_printf, cpp_output_list): New.
10449 (output_line_command): Don't worry about entering or leaving files.
10450 (cpp_scan_buffer): Just output each token as we hit it.
10451 (process_directive): Don't call cpp_output_tokens.
10452 (_cpp_glue_header_name): Don't use token_buffer.
10453 (output_token, dump_param_spelling): Write directly to a FILE *.
10454
10455 * cpplib.c (pass_thru_directive, dump_macro_name,
10456 pragma_dispatch, do_pragma_gcc): Delete.
10457 (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
10458 do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
10459 functions.
10460 (do_error, do_warning, pragma_dependency): Call
10461 _cpp_begin_message, then cpp_output_list.
10462 (cpp_register_pragma, cpp_register_pragma_space,
10463 _cpp_init_internal_pragmas): New.
10464 (do_pragma): Walk the pragmas table here.
10465 (do_pragma_once, do_pragma_poison, do_pragma_system_header,
10466 do_pragma_dependency): Return void.
10467 (do_pragma_implementation): Moved to cppmain.c.
10468
10469 * cpplib.h: Update prototypes.
10470 (struct cpp_reader): Remove printer, token_buffer,
10471 token_buffer_size, and limit. Add struct cb, and pragmas.
10472 (struct cpp_printer): Remove last_id and written.
10473 (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
10474 CPP_ADJUST_WRITTEN): Delete.
10475 * cpphash.h: Update prototypes.
10476 (ufputs): New wrapper.
10477
10478 * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
10479 cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
10480 (main): Set up callbacks. Register #pragma implementation.
10481 Dump macros from here.
10482
10483 2000-08-01 Geoff Keating <geoffk@cygnus.com>
10484
10485 * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
10486 * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
10487 * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
10488 insns if they have a REG_MAYBE_DEAD note attached.
10489 * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
10490 (rs6000_emit_load_toc_table): TOC loads may go dead.
10491
10492 2000-08-01 Jim Wilson <wilson@cygnus.com>
10493
10494 * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify
10495 type exists before using it. Use number of words as alignment
10496 otherwise.
10497 (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
10498 ia64_va_arg): Propagate ia64_function_args changes here.
10499
10500 2000-08-01 Richard Henderson <rth@cygnus.com>
10501
10502 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
10503 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
10504
10505 2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk>
10506
10507 From Joern Rennecke:
10508 * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
10509 * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
10510 unless TARGET_SH3E is set.
10511 * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
10512
10513 * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
10514 (ashlsi3_std): New pattern.
10515 (ashlsi3 expander): Use it for TARGET_SH3.
10516 * sh.c (gen_ashift): Use it instead of ashlsi3_k.
10517
10518 Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
10519
10520 * loop.c (canonicalize_condition): Use destination, not source to
10521 determine SET's mode.
10522
10523 2000-07-31 Mark Mitchell <mark@codesourcery.com>
10524
10525 * flow.c (clear_log_links): Fix typo.
10526
10527 Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com)
10528
10529 * loop.c (check_dbra_loop): Make change from July 17, 2000 work
10530 on targets which need more than one insn for a compare/cbranch
10531 operation.
10532
10533 2000-07-31 Jim Wilson <wilson@cygnus.com>
10534
10535 * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
10536 when computing offset.
10537
10538 Mon Jul 31 20:35:50 2000 Denis Chertykov <denisc@overta.ru>
10539
10540 * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
10541
10542 2000-07-31 Geoff Keating <geoffk@cygnus.com>
10543
10544 * flow.c (clear_log_links): Nuke global_live_at_start and
10545 global_live_at_end data, since if the log_links stuff is invalid
10546 so is global_live_at_*.
10547
10548 2000-07-31 Richard Henderson <rth@cygnus.com>
10549
10550 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
10551
10552 2000-07-31 Jakub Jelinek <jakub@redhat.com>
10553
10554 * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
10555 (_cpp_get_token): Don't macro expand a just pasted token if it
10556 was pasted at no_expand_level.
10557
10558 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
10559
10560 * cppmacro.c (find_param, count_params, save_expansion):
10561 Permit 'defined' as a macro parameter name.
10562
10563 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
10564
10565 * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
10566 xcpp to cpp throughout.
10567 (native): Remove unnecessary dependency on cpp.
10568
10569 * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
10570 tradcpp to tradcpp0.
10571 (.i spec): Add missing output-file spec to cc1 command line.
10572 * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
10573
10574 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
10575
10576 * c-decl.c (mesg_implicit_function_declaration): Init to -1.
10577 (implicit_decl_warning): New function.
10578 (implicitly_declare): Use it.
10579 * c-typeck.c (build_external_ref): Use implicit_decl_warning
10580 to complain about implicit decls of builtins.
10581
10582 * c-lang.c (lang_init): Set mesg_implicit_function_declaration
10583 based on pedantic && flag_isoc99, if not already set.
10584 * c-tree.h: Declare mesg_implicit_function_declaration.
10585 Prototype implicit_decl_warning.
10586
10587 2000-07-30 Jeffrey D. Oldham <oldham@codesourcery.com>
10588
10589 * Makefile.in (ssa.o): Updated header files in dependences.
10590 * basic-block.h: Added compute_immediate_postdominators declaration.
10591 * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
10592 definition.
10593 * flow.c (compute_immediate_dominators): Updated comment.
10594 (compute_immediate_postdominators): Added definition.
10595 * rtl.h (HARD_REGISTER_P): Added definition.
10596 * ssa.c: Include additional header files.
10597 (assert): Added definition.
10598 (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
10599 include select hard registers.
10600 (ssa_rename_to_insert): Likewise.
10601 (ssa_rename_from_initialize): Likewise.
10602 (ssa_rename_from_lookup): Likewise.
10603 (original_register): Likewise.
10604 (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
10605 include select hard reigsters.
10606 (ssa_rename_from_traverse): Likewise.
10607 (ssa_rename_from_free): Likewise.
10608 (ssa_rename_from_print): Likewise.
10609 (ssa_rename_from_print_1): Likewise.
10610 (ssa_rename_from_hash_function): Likewise.
10611 (ssa_rename_from_equal): Likewise.
10612 (ssa_rename_from_delete): Likewise.
10613 (simplify_to_immediate_dominators): Removed in favor of
10614 flow.c:compute_immediate_dominators.
10615 (find_evaluations_1): Modified to work with hard registers.
10616 (insert_phi_node): Likewise.
10617 (insert_phi_nodes): Likewise.
10618 (struct rename_set_data): Updated prev_reg comment.
10619 (create_delayed_rename): Modified to work with hard registers.
10620 (RENAME_NO_RTX): Updated comment.
10621 (apply_delayed_renames): Modified to work with hard registers.
10622 (rename_insn_1): Likewise and added handling of CLOBBER rtls.
10623 (rename_block): Updated to use revised ssa_rename_to interface.
10624 (rename_registers): Updated to use revised ssa_rename_to and
10625 ssa_rename_from interface.
10626 (convert_to_ssa): Revised to use compute_immediate_dominators and
10627 deal with hard registers.
10628 (make_regs_equivalent_over_bad_edges): Modified to work with hard
10629 registers. Added check for illegal unification of hard register.
10630 (make_equivalent_phi_alternatives_equivalent): Modified to work
10631 with hard registers.
10632 (compute_conservative_reg_partition): Likewise.
10633 (coalesce_if_unconflicting): Modified to work with hard registers
10634 and check for conflicting hard registers.
10635 (mark_phi_and_copy_regs): Revised loop to work only on pseudo
10636 registers.
10637 (rename_equivalent_regs_in_insn): Modified to work with hard
10638 registers.
10639 (record_canonical_element_1): Added definition.
10640 (check_hard_regs_in_partition): Added definition.
10641 (convert_from_ssa): Added data structure deallocation and check
10642 for illegal hard register unification.
10643 (conflict_hard_regs_p): Added definition.
10644 * toplev.c (rest_of_compilation): Added comment.
10645
10646 2000-07-31 Anthony Green <green@redhat.com>
10647
10648 * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
10649
10650 2000-07-31 Jason McMullan <jmcmullan@linuxcare.com>
10651
10652 * builtins.c (expand_builtin_apply): Don't defer pop during
10653 argument setup.
10654
10655 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10656
10657 * calls.c (combine_pending_stack_adjustment_and_call): Only use
10658 preferred_unit_stack_boundary when it is > 1.
10659
10660 2000-07-31 Joseph S. Myers <jsm28@cam.ac.uk>
10661
10662 * c-common.c (init_function_format_info): Add C99 format functions
10663 in C99 mode.
10664
10665 * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
10666 void' or 'register void' as being the special case of 'void' alone
10667 in a parameter list.
10668
10669 * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
10670 discarding qualifiers into a plain warning.
10671
10672 2000-07-31 Kazu Hirata <kazu@hxi.com>
10673
10674 * combine.c: Fix formatting.
10675
10676 * h8300.md: Fix formatting.
10677
10678 * local-alloc.c: Fix formatting.
10679
10680 * h8300.c (get_shift_alg): Remove the variable alg.
10681 (emit_a_shift): Rearrange code to improve readability.
10682
10683 * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
10684
10685 * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
10686 HImode on all architectures and a combination of HImode and SImode
10687 on H8/300H and H8/S.
10688
10689 * h8300.c (split_adds_subs): Rearrange code for conciseness.
10690
10691 Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
10692
10693 * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
10694 in my last checkin.
10695
10696 Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
10697
10698 * recog.c (extract_insn): Set operand_mode according to
10699 operand if match_operand is VOIDmode.
10700
10701 Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
10702
10703 * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
10704
10705 2000-07-31 Geoff Keating <geoffk@cygnus.com>
10706
10707 * c-parse.in (extdefs): Call ggc_collect between external
10708 definitions.
10709
10710 2000-07-30 Michael Hayes <mhayes@cygnus.com>
10711 Richard Henderson <rth@cygnus.com>
10712
10713 * Makefile.in (OBJS): Add doloop.o.
10714 * doloop.c: New file.
10715
10716 * final.c (insn_current_reference_address): Return 0 before final.
10717 * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
10718 * jump.c (any_uncondjump_p): Likewise.
10719 * loop.c (indirect_jump_in_function): Make static.
10720 (strength_reduce): Call doloop_optimize.
10721 (insert_bct, instrument_loop_bct): Remove.
10722 * loop.h (doloop_optimize): Prototype.
10723 * recog.c (split_all_insns): Split all INSN_P.
10724 * toplev.c (flag_branch_on_count_reg): Default on.
10725
10726 * config/c4x/c4x.c (c4x_optimization_options): Don't set
10727 flag_branch_on_count_reg.
10728 * config/i386/i386.c (override_options): Likewise.
10729 * config/rs6000/rs6000.c (optimization_options): Likewise.
10730
10731 * config/i386/i386.md (decrement_and_branch_on_count): Remove.
10732 (doloop_end): New.
10733 (dbra_ge): Remove, as well as all it's splitters.
10734
10735 * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
10736 (doloop_end): New.
10737
10738 * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
10739 (ia64_register_move_cost): Declare.
10740 * config/ia64/ia64.c (ar_lc_reg_operand): New.
10741 (struct ia64_frame_info): Add ar_size.
10742 (ia64_compute_frame_size): Set it.
10743 (save_restore_insns): Save and restore ar.lc.
10744 (ia64_register_move_cost): New, moved from header file. Handle
10745 application registers.
10746 (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers.
10747 (emit_insn_group_barriers): Special case doloop_end_internal.
10748 (ia64_epilogue_uses): Mark ar.lc live at end.
10749 * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
10750 (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
10751 (FIRST_PSEUDO_REGISTER): Make room.
10752 (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
10753 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
10754 (REG_ALLOC_ORDER): Update.
10755 (HARD_REGNO_MODE_OK): Update.
10756 (REGISTER_NAMES): Update.
10757 (enum reg_class): Add AR_M_REGS and AR_I_REGS.
10758 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
10759 (REGNO_REG_CLASS): Update.
10760 (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
10761 (REGISTER_MOVE_COST): Move out of line.
10762 (PREDICATE_CODES): Update.
10763 * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
10764 (addsi3_plus1_alt, adddi3_plus1_alt): New.
10765 (shladd_elim splitter): Allow constants in the predicate.
10766 (doloop_end, doloop_end_internal): New.
10767
10768 2000-07-30 Richard Henderson <rth@cygnus.com>
10769
10770 * genattrtab.c (struct insn_def): Add lineno member.
10771 (struct insn_ent): Likewise.
10772 (struct attr_desc): Likewise.
10773 (struct delay_desc): Likewise.
10774 (struct function_unit_op): Likewise.
10775 (struct function_unit): Likewise.
10776 (check_attr_value): Use message_with_line.
10777 (check_defs): Likewise.
10778 (expand_units): Likewise.
10779 (check_attr_test): Take a lineno argument.
10780 (gen_attr): Likewise.
10781 (gen_insn): Likewise.
10782 (gen_delay): Likewise.
10783 (gen_unit): Likewise.
10784 (main): Give it to them.
10785 (convert_set_attr_alternative): Take an insn_def argument
10786 instead of num_alt and insn_index.
10787 (convert_set_attr): Likewise.
10788 (write_test_expr): Protect INSN_ADDRESSES load
10789 with INSN_ADDRESSES_SET_P.
10790
10791 2000-07-30 Richard Henderson <rth@cygnus.com>
10792
10793 * flow.c (init_propagate_block_info): Use pc_set.
10794
10795 Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
10796
10797 * i386.md (*lea_general_[123]) New insns and splits.
10798 (addsi3 to lea splitter): Handle other modes too.
10799 (shlsi3 to lea splitter): Likewise.
10800 (addhi_1_lea, shlhi_1_lea): New patterns.
10801 (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
10802
10803 Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
10804
10805 * recog.c (general_operand, nonimmediate_operand): Accept
10806 any mode for VOIDmode CONSTANT_P operands.
10807
10808 Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
10809
10810 * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
10811 instead of replace_rtx.
10812 * recog.c (validate_replace_rtx_subexp): New function.
10813 * recog.h (validate_replace_rtx_subexp): Declare.
10814
10815 Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
10816
10817 * combine.c (simplify_set, make_extraction, make_compound_operation
10818 make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
10819 as force_to_mode argument.
10820
10821 Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
10822
10823 * combine.c (if_then_else_cond): Be sure that mode fits in
10824 HOST_WIDE_INT.
10825
10826 Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
10827
10828 * combine.c (record_promoted_value): Allow bitsize of mode
10829 to be equivalent to HOST_BITS_PER_WISE_INT.
10830
10831 Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
10832
10833 * function.c (assign_stack_local_1, assign_stack_temp_for_type):
10834 Do not call gen_mode_alignment when mode is BLKmode.
10835
10836 Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka <jh@suse.cz>
10837
10838 * loop.c (express_from_1): Fix call of simplify_gen_binary.
10839
10840 Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
10841
10842 * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
10843 VOIDmode implies both operands to be VOIDmode.
10844 (simplify_ternary_operation): Compute properly the mode of comparison.
10845 * combine.c (combine_simplify_rtx): Likewise.
10846
10847 2000-07-25 Michael Hayes <mph@paradise.net.nz>
10848
10849 * basic-block.h (struct loops): New field rc_order.
10850 * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
10851 (flow_loops_free): Free rc_order.
10852 (flow_depth_first_order_compute): New parameter rc_order.
10853 (flow_loops_find): Allocate rc_order and swap usage with
10854 dfs_order.
10855
10856 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10857 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10858
10859 * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
10860 (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
10861 (nodb_call, return_from_epilogue): Likewise.
10862 (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
10863 * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
10864 * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
10865 (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
10866 (c4x_valid_type_attribute_p): Likewise.
10867 * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
10868 (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
10869
10870 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10871
10872 * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
10873 and loadhi_big_constant if applicable.
10874 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
10875 and add new splitter.s
10876
10877 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10878
10879 * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
10880
10881 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10882
10883 * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
10884
10885 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10886
10887 * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
10888
10889 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10890
10891 * config/c4x/libgcc.S (divqf3): Improve accuracy.
10892
10893 2000-07-27 Mark Mitchell <mark@codesourcery.com>
10894
10895 Put phi nodes after NOTE_INSN_BASIC_BLOCK.
10896 * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
10897 * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
10898 (get_prev_bb_note): Likewise.
10899 (remove_scope_notes): Likewise.
10900 * flow.c (commit_one_edge_insertion): Likewise.
10901 (merge_blocks_nomove): Likewise.
10902 (verify_flow_info): Likewise.
10903 * gcse.c (insert_insn_end_bb): Likewise.
10904 * reg-stack.c (emit_swap_insn): Likewise.
10905 * ssa.c (first_insn_after_basic_block_note): New function.
10906 (insert_phi_node): Use it.
10907 (rename_block): Likewise.
10908 (eliminate_phi): Likewise.
10909 (make_regs_equivalent_over_bad_edges): Likewise.
10910 (make_equivalent_phi_alternatives_equivalent): Likewise.
10911 (for_each_successor_phi): Likewise.
10912 (convert_from_ssa): Modify phi-node deletion algorithm.
10913
10914 2000-07-29 Andreas Jaeger <aj@suse.de>
10915
10916 * configure.in (mips*-*-linux*): Use mips*el to check for little
10917 endian MIPS, add tmake_file.
10918
10919 * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
10920 (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
10921 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
10922
10923 2000-07-28 Richard Henderson <rth@cygnus.com>
10924
10925 * config/ia64/ia64.c (ia64_print_operand): Fix typos.
10926 Sign extend mode size before negating.
10927
10928 2000-07-28 Richard Henderson <rth@cygnus.com>
10929
10930 * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
10931
10932 2000-07-28 Bernd Schmidt <bernds@cygnus.co.uk>
10933
10934 * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
10935 (cse_insn): Likewise.
10936 (addr_affects_sp_p): Likewise.
10937 * expr.c (move_by_pieces): Likewise.
10938 (clear_by_pieces): Likewise.
10939 * gcse.c (oprs_unchanged_p): Likewise.
10940 * haifa-sched.c (sched_analyze_2): Likewise.
10941 * recog.c (offsettable_address_p): Likewise.
10942 * regclass.c (record_address_regs): Likewise.
10943 * reload.c (find_reusable_reload): Likewise.
10944 (push_reload): Likewise.
10945 (operands_match_p): Likewise.
10946 (decompose): Likewise.
10947 (find_reloads_address_1): Likewise.
10948 (find_inc_amount): Likewise.
10949 * reload1.c (elimination_effects): Likewise.
10950 * resource.c (mark_set_resources): Likewise.
10951 * flow.c (attempt_auto_inc): New function; mostly broken out
10952 of find_auto_inc.
10953 (find_auto_inc): Split into two functions and enhanced to
10954 generate POST_MODIFY.
10955 * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
10956 * rtl.h (count_all_occurrences): Declare.
10957 (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
10958 defined.
10959 * rtlanal.c (count_all_occurrences): New function.
10960 * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
10961 HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
10962
10963 * config/ia64/ia64-protos.h (destination_operand): Declare.
10964 * config/ia64/ia64.c (destination_operand): New function.
10965 (ia64_print_operand): Handle POST_MODIFY.
10966 (rtx_needs_barrier): Likewise.
10967 * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
10968 (HAVE_POST_MODIFY_REG): Define to 1.
10969 (MAX_REGS_PER_ADDRESS): Change to 2.
10970 (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
10971 (LEGITIMATE_ADDRESS_REG): New helper macro.
10972 (LEGITIMATE_ADDRESS_DISP): Likewise.
10973 (PREDICATE_CODES): Add entry for destination_operand.
10974 * config/ia64/ia64.md (all mov patterns): Use destination_operand
10975 predicate for operand 0.
10976
10977 2000-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10978
10979 * dwarf2out.c: Indent #error directive.
10980
10981 * gbl-ctors.h: Fix typo in comment.
10982 (__do_global_ctors): Prototype.
10983
10984 * gcse.c (record_one_set, pre_delete): Remove unused variables.
10985
10986 * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
10987 (print_operand): Initialize variable `t'.
10988
10989 2000-07-27 Aldy Hernandez <aldyh@redhat.com>
10990
10991 * config/arm/arm.md ("call_value"): removed constraints.
10992 Constraints are ignored in expanders.
10993 (*call_value_reg): split =rf into various constraints.
10994 (*call_value_mem): same
10995 (*call_value_symbol): same
10996 (*sibcall_value_insn): same
10997
10998 2000-07-28 Philipp Thomas <pthomas@suse.de>
10999
11000 * install.texi (--enable-nls): Change the description of the NLS
11001 related configure options to match the current state.
11002 (--with-included-gettext): Likewise.
11003 (--enable-maintainer-mode): New description added.
11004 * extend.texi (-fstrict-prototype): Add missing '.'.
11005
11006 2000-07-27 Jim Wilson <wilson@cygnus.com>
11007
11008 * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
11009 DECL_INITIAL (decl) == NULL_TREE.
11010
11011 2000-07-27 Alexandre Oliva <aoliva@redhat.com>
11012
11013 * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies
11014 on insn-attr.h with it.
11015 * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
11016 * insn-addr.h: New header.
11017 (insn_addresses_): Renamed from insn_addresses.
11018 (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
11019 INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
11020 INSN_ADDRESSES_NEW): New macros.
11021 * genattrtab.c (write_test_expr): Use new macros.
11022 * final.c (insn_addresses, init_insn_lengths): Likewise.
11023 (align_fuzz, shorten_branches): Likewise.
11024 (final): Likewise. Do not reject new insns if their addresses
11025 have been added to INSN_ADDRESSES.
11026 * config/arm/arm.c, config/avr/avr.c: Use new macros.
11027 * config/h8300/h8300.c, config/i370/i370.c: Likewise.
11028 * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
11029 * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
11030 * config/sh/sh.c: Likewise.
11031 (output_branchy_insn): Use INSN_ADDRESSES_NEW.
11032
11033 * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
11034
11035 2000-07-27 Andrew Cagney <cagney@b1.cygnus.com>
11036
11037 * gcc.c (struct prefix_list): Add member priority.
11038 (enum path_prefix_priority): Declare.
11039 (add_prefix): Replace ``first'' with ``priority''. Append new
11040 entry but keep list in priority order.
11041 (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
11042 PREFIX_PRIORITY_LAST to add_prefix.
11043 (process_command): Move include kludge - foo/stageN - to before
11044 foo/include.
11045
11046 2000-07-27 Jason Merrill <jason@redhat.com>
11047
11048 * dwarf2out.c (gen_typedef_die): Abort if we get identical
11049 TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
11050
11051 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
11052
11053 * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
11054 * tree.h (get_alias_set, lang_get_alias_set): Prototype.
11055
11056 2000-07-27 Joseph S. Myers <jsm28@cam.ac.uk>
11057
11058 * c-decl.c (finish_function): Don't treat 'main' specially unless
11059 flag_hosted. In C99 mode, return 0 from 'main' unless
11060 DEFAULT_MAIN_RETURN is otherwise defined.
11061
11062 * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
11063 parameters defaulting to int in an old-style function definition.
11064
11065 2000-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11066
11067 * c-parse.in (string): For -Wtraditional, warn about string
11068 concatenation only once per line.
11069
11070 Thu Jul 27 09:25:17 2000 Akiko Matsushita <matusita@sra.co.jp>
11071
11072 * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
11073 for HI-UX/WE2 systems.
11074
11075 2000-07-24 Bruce Korb <bkorb@gnu.org>
11076
11077 * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
11078 defining the __xxx_TYPE__ macros.
11079 * fixincl/fixincl.tpl(gnu_type_map): now obsolete
11080 * fixincl/fixlib.h: don't need to include "tm.h" anymore
11081 * fixincl/inclhack.def(type_map): now obsolete
11082
11083 Thu Jul 27 11:54:17 2000 Andrew Cagney <cagney@b1.cygnus.com>
11084
11085 * cpp.texi: Append a trailing full-stop to xrefs where needed.
11086
11087 2000-07-26 Dave Pitts <dpitts@cozx.com>
11088
11089 * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
11090 routine constants.
11091 (mvs_hash_alias): New function.
11092 (mvs_add_alias): Change argument spacing.
11093 (mvs_need_alias): Change aliasing criteria. Added documentation.
11094 (mvs_get_alias): Change to use hashed name. The hashed name prevents
11095 CSECT name collisions.
11096 (mvs_check_alias): Likewise.
11097 (handle_pragma): Change documentation.
11098 * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
11099 mode from SImode to DImode.
11100 (iorhi3): Changed LTORG size for insn.
11101
11102 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
11103
11104 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
11105 mem if the address is a mode_dependent_address_p.
11106
11107 2000-07-26 Kazu Hirata <kazu@hxi.com>
11108
11109 * h8300.c (print_operand): Print ":8" when the 'R' operand is
11110 suitable for 8-bit absolute.
11111 * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
11112 (OK_FOR_U): Add a case for the 8-bit constant address on the
11113 H8/300H.
11114
11115 Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson <hp@axis.com>
11116
11117 * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
11118 && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
11119 ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
11120 lack of implemented alignment.
11121
11122 2000-07-26 Geoffrey Keating <geoffk@cygnus.com>
11123
11124 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
11125 cross-compiling between 64-bit and 32-bit machines.
11126
11127 2000-07-27 Richard Henderson <rth@cygnus.com>
11128
11129 * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
11130 (movhicc_astep, movhi_internal_astep): New.
11131 (movsicc_astep, movsi_internal_astep): New.
11132 (movdicc_astep, movdi_internal_astep): New.
11133 (movsfcc_astep, movsf_internal_astep): New.
11134 (movdfcc_astep, movdf_internal_astep): New.
11135 (movxfcc_astep, movxf_internal_astep): New.
11136 (cmovdi_internal_astep, cmovsi_internal_astep): New.
11137 Unify the cmov[ds]i splitters.
11138
11139 2000-07-27 Rodney Brown <RodneyBrown@pmsc.com>
11140
11141 * real.c (asctoeg): Rename `error' label to unexpected_char_error
11142
11143 2000-07-26 Nick Clifton <nickc@cygnus.com>
11144
11145 * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
11146 __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h
11147
11148 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
11149 well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
11150
11151 2000-07-26 Alexandre Oliva <aoliva@redhat.com>
11152
11153 * c-decl.c (finish_enum): Convert enumerations that fit in an
11154 `int' to `int'.
11155 (build_enumerator): In pedantic mode, cast to `int' those that
11156 don't.
11157
11158 2000-07-25 Rodney Brown <RodneyBrown@pmsc.com>
11159
11160 * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
11161
11162 Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11163
11164 * sh.md (cmpgtdi_t): Must be split.
11165 (cmpgtdi_t+1): New splitter.
11166
11167 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
11168
11169 * cpplib.c (_cpp_check_directive): Issue -Wtraditional
11170 warnings for indented directives even if we are skipping.
11171
11172 2000-07-25 Nathan Sidwell <nathan@codesourcery.com>
11173
11174 * invoke.texi (strict-prototypes): Remove.
11175 * extend.texi (Deprecated Features): Add strict-prototypes.
11176 (Backwards Compatibility): New node.
11177
11178 2000-07-25 Jakub Jelinek <jakub@redhat.com>
11179
11180 * config/i386/i386.md (andsi_1+1): Allow HImode.
11181 (andsi_1+2): Require q_regs_operand.
11182
11183 2000-07-25 Jakub Jelinek <jakub@redhat.com>
11184
11185 * config/i386/i386.md (call_pop): Check operands[0],
11186 not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
11187 (call): Likewise.
11188 (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
11189 (call_value): Likewise.
11190
11191 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
11192
11193 * toplev.c (pipe_closed): Delete.
11194 (crash_signal): New. Generate ICE for a fatal signal.
11195 (float_signal): Call crash_signal outside a float-handler
11196 block, not abort.
11197 (main): Install crash_signal as handler for core-dumping signals.
11198
11199 2000-07-25 David Edelsohn <edelsohn@gnu.org>
11200
11201 * rs6000.c (print_operand, case 'T'): New case.
11202
11203 * rs6000.md (call_indirect_aix32): Convert to expander of
11204 scheduled instructions.
11205 (call_indirect_aix64): Likewise.
11206 (call_value_indirect_aix{32,64}): Likewise.
11207 (call, call_value): Invoke expanders for AIX. Fall through to
11208 matchers for SysV.
11209 (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
11210 (call_value_indirect_nonlocal_aix{32,64}): New patterns.
11211 (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1
11212 only "g" constraint.
11213 (call_nonlocal_aix64): Likewise.
11214 (call_value_nonlocal_aix{32,64}): Likewise.
11215 (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
11216 operands.
11217 (call_value_nonlocal_sysv): New pattern.
11218 (indirect_jump{si,di}): Use new 'T' modifier.
11219 (tablejump{si,di} matchers): Likewise.
11220 (return_internal_{si,di}): Likewise.
11221 (return_eh_{si,di}): Likewise.
11222
11223 2000-07-24 Richard Henderson <rth@cygnus.com>
11224
11225 * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
11226 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
11227 * config/ia64/ia64.md (movdi_internal): Use it.
11228
11229 2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
11230
11231 * cppexp.c: Warn about unary + if -Wtraditional.
11232 * cpplex.c (lex_line): Always set BOL on the first token of a line.
11233
11234 2000-07-24 Michael Meissner <meissner@redhat.com>
11235
11236 * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
11237 unsupported macro.
11238
11239 2000-07-24 Nick Clifton <nickc@cygnus.com>
11240
11241 * config/arm/arm.c (emit_multi_reg_push): Generate a
11242 REG_FRAME_RELEATED_NOTE that is compatable with the code in
11243 dwarf2out_debug_frame_expr.
11244
11245 2000-07-24 Jason Merrill <jason@redhat.com>
11246
11247 * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
11248 UNALIGNED_INT_ASM_OP.
11249 (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
11250 a location expression.
11251 (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't
11252 assume indirect access if we're saving the CFA address exactly.
11253
11254 * Makefile.in (bootstrap): Move -BstageN/ to the end.
11255
11256 2000-07-24 Jakub Jelinek <jakub@redhat.com>
11257
11258 * tradcpp.c (main): Update max_include_len for cpp_include_defaults
11259 as well.
11260
11261 2000-07-24 Michael Meissner <meissner@redhat.com>
11262
11263 * invoke.texi (D30V Options): Add d30v options.
11264
11265 Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com)
11266
11267 * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
11268 needed by our gcse pass anymore.
11269 (free_pre_mem): Corresponding changes.
11270 (compute_pre_data): Do not call compute_transpout anymore.
11271
11272 * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
11273 (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
11274 changes.
11275
11276 * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
11277 (compute_pre_data): Do it here instead.
11278
11279 * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
11280 'temp_bitmap'.
11281 (pre_delete): Corresponding changes.
11282
11283 2000-07-23 Mark Mitchell <mark@codesourcery.com>
11284
11285 * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
11286 to figure out whether or not a variable has already been emitted.
11287
11288 Sun Jul 23 14:49:12 2000 Jason Eckhardt <jle@cygnus.com>
11289
11290 * config/i860/i860.md (untyped_call expander): Use GEN_CALL
11291 instead of gen_call.
11292
11293 Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk)
11294
11295 * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
11296
11297 2000-07-23 Kazu Hirata <kazu@hxi.com>
11298
11299 * h8300.c: Fix formatting.
11300
11301 2000-07-23 Joseph S. Myers <jsm28@cam.ac.uk>
11302
11303 * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
11304 for `long' switch expression into a plain warning.
11305
11306 * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
11307 (yylex): Don't pedwarn for "inline" in C99 mode.
11308
11309 * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
11310 with %p.
11311 * ggc-page.c (debug_print_page_list, alloc_page, free_page,
11312 ggc_alloc): Likewise.
11313 * bb-reorder.c (dump_scope_forest_1): Likewise.
11314
11315 2000-07-22 Aldy Hernandez <aldyh@redhat.com>
11316
11317 * reload.c (find_reloads_toplev): Add new parameter
11318 "address_reloaded".
11319 (find_reloads): Add new parameter to find_reloads_toplev calls.
11320
11321 2000-07-22 Jeffrey Oldham <oldham@codesourcery.com>
11322
11323 * collect2.c (main): Typo fixed.
11324 * diagnostic.c: Typo fixed.
11325 * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
11326 * eh-common.h: Typo fixed.
11327 * emit-rtl.c (start_sequence): Typo fixed.
11328 * flow.c (find_label_refs): Typo fixed.
11329 (calculate_global_regs_live): Typo fixed.
11330 (mark_regno_cond_dead): Typo fixed.
11331 (create_edge_list): Typos fixed.
11332 (verify_edge_list): Typo fixed.
11333 * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
11334 * loop.c (strength_reduce): Typo in function name fixed.
11335 * rtl.h: Added comments. Typo in function name fixed.
11336 * rtlanal.c: Typo in function name fixed.
11337 (insn_dependant_p): Rename to ...
11338 (insn_dependent_p): ... this.
11339 (computed_jumo_p): Typo fixed.
11340
11341 2000-07-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11342
11343 * system.h (__FUNCTION__): Wrap definition in #ifndef.
11344
11345 2000-07-21 David Edelsohn <edelsohn@gnu.org>
11346
11347 * rs6000.h (SIZE_TYPE): Define.
11348
11349 2000-07-21 Mark Mitchell <mark@codesourcery.com>
11350
11351 * ssa.c (rename_insn_1): Don't rename registers that are
11352 CLOBBERed.
11353
11354 2000-07-21 Zack Weinberg <zack@wolery.cumb.org>
11355
11356 * diagnostic.c (trim_filename, fancy_abort): Moved here from
11357 rtl.c.
11358 (fatal_function, set_fatal_function): Removed.
11359 (fatal): Don't prepare for or call the fatal_function.
11360 (diagnostic_lock, error_recursion): New.
11361 (diagnostic_for_decl, report_diagnostic): Guard against
11362 re-entering the error reporting routines.
11363 (fancy_abort): Assume function is not NULL.
11364
11365 * errors.c (fancy_abort): New. Assume function is not NULL.
11366 * tradcpp.c (fancy_abort): Assume function is not NULL.
11367
11368 * system.h: Provide default definition of __FUNCTION__.
11369 * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
11370 Always use __FUNCTION__ in definition of abort.
11371 * tree.h: Likewise.
11372 * varray.h: Likewise.
11373 * toplev.h: Likewise. Don't prototype set_fatal_function.
11374
11375 2000-07-20 Geoff Keating <geoffk@cygnus.com>
11376
11377 * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
11378 in 64-bit mode.
11379 * glimits.h: Don't do #if defined for ARCH_PPC.
11380
11381 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
11382 constants of size no larger than a pointer should go in the TOC.
11383 Add 'MODE' parameter.
11384 (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
11385 ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
11386 (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
11387 * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
11388 * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
11389 * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
11390 (rs6000_legitimize_address): Likewise.
11391 (rs6000_emit_move): Likewise.
11392 (rs6000_select_rtx_section): Likewise.
11393 (output_toc): Deal properly with outputting small constants like
11394 HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
11395 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
11396 MODE parameter. Put small constants in the TOC.
11397
11398 * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
11399 easy in SImode.
11400 (rs6000_emit_move): When reload calls us with an illegitimate
11401 address, exit early. Move the change_address calls to one place
11402 at the end of the routine. Merge the SImode and DImode expanders.
11403 When called by reload to put an integer into a FP register, force
11404 it to memory.
11405
11406 * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
11407 field.
11408 (rs6000_hash_constant): Hash mode too.
11409 (toc_hash_function): Allow for key_mode.
11410 (toc_hash_eq): Structures are different if key_mode differs.
11411 (output_toc): Add 'mode' parameter. Save key_mode.
11412 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
11413 Pass 'mode' parameter.
11414 * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
11415
11416 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
11417 for vtable references.
11418
11419 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
11420 choice, don't put integer values in FP regs.
11421
11422 Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com)
11423
11424 * flow.c (verify_flow_info): Revamp code to verify that the
11425 head and end of each basic block are in the insn chain.
11426
11427 Thu Jul 20 18:02:35 2000 Michael Matz <matzmich@cs.tu-berlin.de>
11428
11429 * gcse.c (record_one_set): Prepend instead of append onto
11430 reg_set_table, making it O(n) instead O(n^2).
11431 * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
11432 Use a queue instead of a stack as worklist.
11433
11434 2000-07-20 Kazu Hirata <kazu@hxi.com>
11435
11436 * h8300.c (two_insn_adds_subs_operand): Fix a typo.
11437 * h8300.h (OK_FOR_T): New.
11438 (EXTRA_CONSTRAINT): Support OK_FOR_T.
11439 * h8300.md: Use inc/dec.[wl] for increment/decrement
11440 by 1 and 2 in HI and SI modes.
11441
11442 2000-07-20 Jim Wilson <wilson@cygnus.com>
11443
11444 * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
11445 larger than 14 bits.
11446
11447 2000-07-20 Zack Weinberg <zack@wolery.cumb.org>
11448
11449 * cppmacro.c (CAN_PASTE_AFTER): New macro.
11450 (count_params): Don't set GNU_REST_ARGS on anything.
11451 (save_expansion): Set PASTE_LEFT only on tokens for which
11452 CAN_PASTE_AFTER is true, or which are named operators.
11453
11454 * cpplex.c (parse_args): Distinguish between a rest argument
11455 given one empty argument, and a rest argument given zero arguments.
11456 (maybe_paste_with_next): Look for VOID_REST tag, and trigger
11457 deletion of previous token based on that.
11458 (get_raw_token): Flatten some control structure.
11459
11460 * cpplib.h (CPP_LAST_EQ): Correct.
11461 (VOID_REST): New token flag.
11462 (GNU_REST_ARGS): Delete.
11463
11464 * tradcpp.c (main): Don't munge -D options.
11465 (make_definition): Bring -D handling in line with cpplib.
11466 (do_define): Strip all leading whitespace from macro definitions.
11467
11468 2000-07-20 David Billinghurst <David.Billinghurst@riotinto.com.au>
11469
11470 * Makefile.in (tradcpp): Depend on intl.o and version.o.
11471
11472 2000-07-20 Bruce Korb <bkorb@gnu.org>
11473
11474 * fixincl/check.tpl: strip the platform specific types before testing
11475 * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
11476 * fixincl/fixincl.tpl: use platform specific types
11477 * fixincl/fixlib.h: include the platform specific types
11478 * fixincl/inclhack.def(gnu_types): don't supply the types
11479 * fixincl/fixincl.x: regen
11480
11481 2000-07-19 Jim Wilson <wilson@cygnus.com>
11482
11483 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
11484 GR_REGS.
11485
11486 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
11487
11488 * tradcpp.c (rescan): Do not recognize directives when the #
11489 is indented.
11490
11491 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
11492
11493 Implement C++ named operators.
11494
11495 * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
11496 of operators allowed in #if and having an _EQ variant. Add
11497 CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
11498 (cpp_token flags): Add NAMED_OP.
11499 (enum node_type): Add T_OPERATOR.
11500 (struct cpp_hashnode): Add code slot to value union.
11501 * cpphash.h (spec_nodes): Remove n_defined.
11502
11503 * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
11504 (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
11505 (is_macro_disabled): Tweak error messages.
11506
11507 * cpplib.c (get_define_node): Disallow all named operators as
11508 macro names. Tweak error messages.
11509 (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
11510
11511 * cppinit.c (builtin_array): Add entries for the named operators.
11512 * cppexp.c (lex): Check for CPP_DEFINED token.
11513 (priority table): Add entries for CPP_MIN and CPP_MAX.
11514 (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
11515
11516 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk>
11517
11518 * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
11519 larger than the array of cuids.
11520 (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
11521 cuids.
11522
11523 2000-07-19 Bruce Korb <bkorb@gnu.org>
11524
11525 * fixinc/fixincl.c: Convert to using a table of environment variables
11526 and activate the auto-edit marker on the fixed output files.
11527 * fixinc/fixlib.h: Define the environment table
11528 * fixinc/fixincl.sh: export the ${INPUT} dir
11529 * fixinc/check.tpl: likewise
11530
11531 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
11532
11533 * gcc.c (.h spec): Fix typo.
11534
11535 Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
11536
11537 * Makefile.in: Fix tradcif.c path.
11538
11539 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
11540
11541 * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
11542 macros, not five.
11543
11544 * cpphash.h (TOKEN_NAME): New macro.
11545 (_cpp_spell_operator): Deleted.
11546 (token_spellings): Now _cpp_token_spellings.
11547
11548 * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
11549 * cpplex.c: Use OP and TK macros when expanding the
11550 TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens,
11551 store the stringification of the enumeration name (CPP_CHAR,
11552 etc.) in the name slot of token_spellings.
11553 Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
11554 token_spellings directly.
11555 * cpplib.c: Use TOKEN_SPELL.
11556
11557 * cpplex.c (_cpp_push_token): If the token being pushed back
11558 is the previous token in this context, just subtract one from
11559 context->posn.
11560 * cppmacro.c (save_expansion): Clear aux field when storing a
11561 placemarker.
11562
11563 2000-07-18 Jakub Jelinek <jakub@redhat.com>
11564
11565 * cpplex.c (cpp_scan_buffer): Output line command even at the stop
11566 buffer, provided it is not NULL.
11567
11568 2000-07-18 Alexandre Oliva <aoliva@redhat.com>
11569
11570 * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
11571 case of invalid volatile re-declaration.
11572
11573 2000-07-18 Jakub Jelinek <jakub@redhat.com>
11574
11575 * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
11576 (expand_call): Adjust caller.
11577
11578 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com>
11579
11580 * diagnostic.h (report_diagnostic): Change prototype.
11581
11582 * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
11583 diagnostic_for_decl): Change prototype.
11584 (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
11585 error, warning, error_with_file_and_line,
11586 warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
11587 Adjust call to report_diagnostic, diagnostic_for_decl.
11588 (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
11589 (output_verbatim, verbatim): Adjust call to output_do_verbatim.
11590
11591 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
11592 varaible argument list.
11593
11594 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
11595
11596 * cpphash.c: Don't include hashtab.h. Most macro-handling code
11597 moved to cppmacro.c.
11598 (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
11599 dump_hash_helper): Delete.
11600 (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
11601 cpp_forall_identifiers): New. Implement specialized version of
11602 Vlad's expandable hash table.
11603 (cpp_lookup): Use new functions.
11604 (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
11605 implementation.
11606 * cppmacro.c: New file.
11607 * cppinit.c (dump_macros_helper): New.
11608 (cpp_finish): Iterate over the identifier table directly.
11609 * cpplex.c (parse_name): Calculate the hash of the identifier
11610 while we scan it. Use _cpp_lookup_with_hash when we can.
11611
11612 * cpphash.h: Update prototypes.
11613 (xcnewvec, HASHSTEP): New helper macros.
11614 * cpplib.h: Update prototypes.
11615 * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
11616 (cppmacro.o): New rule.
11617 (cpphash.o): Update deps.
11618
11619 * cppmain.c: Do not set pfile->printer if no_output is on.
11620
11621 2000-07-15 Neil Booth <neilb@earthling.net>
11622
11623 * cpplib.c: Change all directive-handler functions to return
11624 void, not int.
11625 * cpphash.h: Update typedefs.
11626
11627 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
11628
11629 * configure: Regenerate.
11630
11631 * extend.texi (Extended Asm): Mention that a memory clobber
11632 does not count as a side-effect.
11633
11634 * unroll.c (copy_loop_body): Fix one instance of using host
11635 arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
11636 cross-compile.
11637
11638 * tlink.c (scan_linker_output): Tweak for output of AIX ld.
11639
11640 2000-07-17 Richard Henderson <rth@cygnus.com>
11641
11642 * config/ia64/ia64.md (movdi): Split out load address code.
11643 New post-reload splitter for symbolic operands.
11644 (movdi_internal): Abort if we didn't split symbolic operands
11645 when we should have.
11646 * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
11647 (ia64_reorg): Split insns when not optimizing.
11648 * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
11649
11650 Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
11651
11652 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
11653 instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
11654
11655 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
11656
11657 * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
11658
11659 2000-07-17 Jason Merrill <jason@redhat.com>
11660
11661 * Makefile.in (clean): Remove libgcc directory.
11662
11663 * configure.in (-Wno-long-long check): Use higher-level macros.
11664
11665 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
11666
11667 * simplify-rtx.c (simplify_binary_operation): Recognize
11668 (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
11669 (simplify_ternary_operation): Do not examine MODE_BITSIZE of
11670 a CONST_INT, it will always be zero.
11671
11672 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
11673
11674 * loop.c (check_dbra_loop) : Return if more than one condition is
11675 present to control the loop.
11676
11677 Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
11678
11679 * mips.c (mips_expand_prologue): Don't calculate the last argument
11680 register unless we need it. When we are calculating this, make
11681 sure FUNCTION_ARG is giving us a REG.
11682
11683 2000-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11684
11685 * flow.c (libcall_dead_p): Use single_set to verify the insn
11686 has only one set and get for analysis.
11687 (propagate_one_insn): Don't pass the PATTERN of the insn.
11688
11689 2000-07-17 Mark Klein <mklein@dis.com>
11690
11691 * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
11692
11693 2000-07-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
11694
11695 * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
11696 * configure.in (TARGET_GETGROUPS_T): Evaluate.
11697 * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
11698 of second argument of getgroups.
11699 * configure, config.in: Rebuilt.
11700
11701 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
11702
11703 * simplify-rtx.c (simplify_relational_operation): Two signed
11704 values with equal high words are less/greater than each other if
11705 their low words are less/greater when considered as unsigned.
11706
11707 Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org>
11708
11709 * configure.in (vax-*-openbsd): Change to new style configuration,
11710 add collect2/float_format information.
11711 * configure: Rebuilt.
11712 * config/vax/openbsd1.h: New.
11713 * config/vax/openbsd.h: New.
11714 * config/vax/t-openbsd: New.
11715
11716 2000-07-17 Chip Salzenberg <chip@valinux.com>
11717
11718 * c-common.c (shorten_compare): Quiet warnings about unsigned
11719 comparisons with zero when they occur in a system header.
11720
11721 2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
11722
11723 * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
11724 update to describe current practice.
11725
11726 * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
11727
11728 * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
11729 references to C9X. Change references to -fstd and -flang-isoc9x
11730 to refer to -std.
11731
11732 * c-common.c (scan_char_table): Allow "z" length modifiers on
11733 diouxXn formats.
11734 (check_format_info): Use TYPE_DOMAIN on the type matched against
11735 for "z" formats, to retrieve the language size_t rather than the
11736 internal one.
11737
11738 * c-common.c (check_format_info): Do not make a pedantic objection
11739 to the 'L' length modifier if used with a floating point type
11740 character.
11741
11742 * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
11743 constants in C99 mode.
11744
11745 2000-07-17 Kazu Hirata <kazu@hxi.com>
11746
11747 * h8300.md: Fix the format of mac.
11748 (movsi_h8300hs): Output a tab after stmac instead of a space.
11749
11750 * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
11751 profitable adds/subs sequences.
11752
11753 * fold-const.c: Fix comment typos.
11754
11755 2000-07-16 Laurynas Biveinis <lauras@softhome.net>
11756
11757 * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
11758
11759 2000-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11760
11761 * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
11762
11763 2000-07-16 Neil Booth <NeilB@earthling.net>
11764
11765 * cpplex.c: Update comments.
11766 * README.Portability: Small update.
11767
11768 2000-07-16 Neil Booth <NeilB@earthling.net>
11769
11770 * README.Portability: Small update.
11771
11772 2000-07-15 Richard Henderson <rth@cygnus.com>
11773
11774 * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
11775 * config/ia64/ia64.c (ia64_move_ok): New function.
11776 * config/ia64/ia64.md (movqi, movqi_internal): Use it.
11777 (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
11778
11779 2000-07-15 Zack Weinberg <zack@wolery.cumb.org>
11780
11781 * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
11782 immediately following a paste operator.
11783 * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
11784 (cpp_reader_init): Call it, if HOST_EBCDIC.
11785 (cpp_handle_options): Do not sort option list here.
11786 (handle_option): Rename to cpp_handle_option and export.
11787 * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
11788 _cpp_get_token directly.
11789 (cpp_scan_line): Return 0 at EOF, 1 otherwise.
11790 * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
11791 * cpplib.h: Prototype cpp_handle_option. Update prototype of
11792 cpp_scan_line.
11793
11794 2000-07-15 Richard Henderson <rth@cygnus.com>
11795
11796 * fold-const.c (extract_muldiv): Don't optimize past an unsigned
11797 cast around an expression. Tidy other unsigned tests.
11798
11799 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com>
11800
11801 * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
11802 v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
11803 (v_message_with_decl): Rename to ...
11804 (format_with_decl): ... this. Tweak
11805 (diagnostic_for_decl): New function.
11806 (fatal_io_error): Use verbatim in lieu of notice.
11807 (announce_function): Use verbatim.
11808 (default_print_error_function): Likewise.
11809 (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
11810 infratructure.
11811
11812 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11813
11814 * mips.c (function_arg_pass_by_reference): Don't do automatic
11815 aggregate initialization.
11816 (machine_dependent_reorg): Initialize variable `mode'.
11817
11818 * mips.md (absdi2): Change variable `regno1' to unsigned int.
11819 (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
11820 conflicts with sys/param.h macro of the same name.
11821 (reload_outdi): Likewise.
11822
11823 2000-07-15 Michael Meissner <meissner@redhat.com>
11824
11825 * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
11826 == CONST + INCREMENT, don't overwrite the tree node for FOO++,
11827 create a new node instead.
11828
11829 2000-07-15 Neil Booth <NeilB@earthling.net>
11830
11831 * README.Portability: Correct example about calling a function
11832 through a pointer to function. Format wide paragraphs.
11833
11834 2000-07-15 Michael Meissner <meissner@redhat.com>
11835
11836 * README.Portability: Update integer suffixes and function
11837 prototype sections.
11838
11839 2000-07-15 Neil Booth <NeilB@earthling.net>
11840
11841 * README.Portability: Small update.
11842
11843 2000-07-15 Neil Booth <NeilB@earthling.net>
11844
11845 * README.Portability: New file.
11846
11847 Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com>
11848
11849 * INSTALL: Give special instructions for building GCC on Irix 6.
11850 * config/mips/x-iris6 (CC): Don't set it.
11851 (OLDCC): Likewise.
11852
11853 2000-07-14 Jason Merrill <jason@redhat.com>
11854
11855 * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
11856 register in the stack and later in another register, use the new
11857 register.
11858
11859 Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
11860
11861 * config/mips/mips.md: (absdi2): Handle sign_extend for
11862 second operand.
11863
11864 2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
11865
11866 * cpplib.c (do_pragma_dependency): Tidy warning messages.
11867
11868 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
11869
11870 * .cvsignore: Correct typo.
11871
11872 2000-07-13 Mark Mitchell <mark@codesourcery.com>
11873
11874 * .cvsignore: Add generated YACC files.
11875 * objc/.cvsignore: New file.
11876
11877 2000-07-14 Neil Booth <NeilB@earthling.net>
11878
11879 * cpplex.c (adjust_column): New funcion.
11880 (skip_whitespace): Use it.
11881 (skip_block_comment): Use it, and warn about /*/* with
11882 -Wcomments.
11883
11884 2000-07-14 Neil Booth <NeilB@earthling.net>
11885
11886 * cpphash.c (struct macro_info): Add new members.
11887 (_cpp_free_definition): Delete the macro directly.
11888 (count_params): Return void, with first token of
11889 expansion in struct macro_info on success.
11890 (parse_define): Return int. Hoist syntax checking from
11891 save_macro_expansion. Leave call to save_expansion to
11892 _cpp_create_definition.
11893 (alloc_macro): Needs just 2 arguments.
11894 (free_macro): Delete.
11895 (save_expansion): Don't perform syntax check.
11896 (_cpp_create_definition): Call save_expansion.
11897
11898 2000-07-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11899
11900 * genrecog.c (write_header): Split long string.
11901
11902 * cpphash.c (macro_info): Don't use the `signed' keyword.
11903
11904 * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
11905
11906 2000-07-13 Jakub Jelinek <jakub@redhat.com>
11907
11908 * calls.c (stored_args_map): New variable.
11909 (check_sibcall_argument_overlap_1): New.
11910 (check_sibcall_argument_overlap): New.
11911 (expand_call): Initialize stored_args_map.
11912 Call check_sibcall_argument_overlap.
11913
11914 2000-07-13 Bruce Korb <bkorb@gnu.org>
11915
11916 * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
11917 (emit_gnu_type): utility procedure for gnu_type_fix
11918 (gnu_type_fix): implement various pre-processor guards around
11919 standard types so these types can be defined over and over
11920 * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
11921 types alluded to above will have GNU-compliant base types
11922 * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
11923 * fixinc/inclhack.def: add test_text entries and utilize the new
11924 "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
11925 * fixinc/fixincl.x: regenerate
11926
11927 2000-07-12 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
11928
11929 * diagnostic.c (vline_wrapper_message_with_location,
11930 v_message_with_file_and_line, v_error_with_file_and_file,
11931 v_error_for_asm, v_warning_for_asm, vfatal,
11932 v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
11933 vsorry, verror, vwarning, vpedwarn): Remove.
11934 (diagnostic_for_asm): New function.
11935 (pedwarn, error, warning, pedwarn_with_file_and_line,
11936 error_with_file_and_line, warning_with_file_and_line, sorry,
11937 error_for_asm, warning_for_asm, fatal): Reimplement.
11938 (finish_diagnostic): Clear diagnostic info as well.
11939
11940 2000-07-13 Neil Booth <NeilB@earthling.net>
11941
11942 * c-common.h (flag_digraphs): New.
11943 * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
11944 * c-lex.c (yylex): Use flag_digraphs to decide whether to
11945 honour digraphs.
11946
11947 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
11948
11949 * gcc.c (do_spec_1): Add new %B operator.
11950 (set_input): Prepare for %B.
11951
11952 (link_command_spec): Move up with the other tm.h-
11953 overrideable specs. Factor out the portion conditional on
11954 LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
11955 (struct compiler): Just have a single spec string. All users
11956 updated.
11957 (default_compilers): Remove unnecessary braces.
11958 (static_specs): Update.
11959
11960 (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
11961 named specs.
11962 (C and assembly specs): Use the new named specs, as appropriate.
11963
11964 * objc/lang-specs.h: Use the new named specs.
11965 Remove unnecessary braces.
11966
11967 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
11968
11969 * gcc.c (execute): If a subprocess gets a fatal signal, report
11970 strsignal() of the signal number, and ask for a bug report.
11971 Do not do this for SIGPIPE if there's already been an error.
11972
11973 * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
11974 Delete pipe_closed.
11975
11976 * tradcif.c: Remove.
11977
11978 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
11979
11980 * final.c (profile_function): Do not emit profile counters in
11981 the data section, if NO_PROFILE_COUNTERS is defined.
11982 * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
11983 FUNCTION_PROFILER.
11984
11985 * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
11986 (FUNCTION_PROFILER): Just emit a call to mcount.
11987
11988 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
11989
11990 * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
11991
11992 * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
11993 cpplib.c, cpplib.h: Eradicate all traces of code dependent on
11994 traditional, lang_chill, or lang_fortran.
11995
11996 * cppfiles.c: #undef strcmp to suppress warning about macros
11997 used without arguments.
11998 (_cpp_execute_include): Use f, not fname, in "No include path"
11999 error.
12000 (_cpp_pop_file_buffer): New function.
12001 * cpplib.c: Don't include <sys/mman.h>.
12002 (cpp_push_buffer): Set line_base and lineno in new buffer.
12003 (cpp_pop_buffer): Use _cpp_pop_file_buffer.
12004
12005 * cpplex.c: Move all prototypes and structure declarations to the
12006 top of the file. Properly parenthesise some macro arguments.
12007 (cpp_scan_line): New function.
12008 (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
12009 don't need to walk up the stack counting.
12010
12011 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12012
12013 * c-common.c (combine_strings): Emit a pedantic warning when a
12014 string length is greater than the minimum ANSI C is required
12015 to support.
12016
12017 Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
12018
12019 * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
12020 * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
12021
12022 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12023
12024 * c-decl.c (define_label): Warn about identifier conflicts with
12025 labels in traditional C.
12026
12027 * c-parse.in (unop +): Warn about the unary plus operator for
12028 traditional C.
12029
12030 * c-typeck.c (store_init_value): Warn about automatic aggregate
12031 initialization for traditional C.
12032
12033 * invoke.texi (-Wtraditional): Document new warnings.
12034
12035 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12036
12037 * Makefile.in (c-errors.o): Fix thinko in dependency.
12038
12039 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12040
12041 * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
12042 -traditional, -ftraditional, or -traditional-cpp was given.
12043 Do not pass -traditional to the preprocessor.
12044 (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
12045 preprocessor does it automatically.
12046 * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
12047
12048 * ch/lang-specs.h: Always use tradcpp. Do not pass
12049 -traditional, -trigraphs, or -pedantic to the preprocessor.
12050 * f/lang-specs.h (.F spec): Likewise. Don't bother defining
12051 _LANGUAGE_FORTRAN.
12052
12053 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
12054
12055 * cppexp.c (LOGICAL): Delete macro.
12056 (_cpp_parse_expr): Do not use UNARY for unary +. Implement ||
12057 and && directly.
12058
12059 * cpphash.c (HASHSIZE): Increase to 4096.
12060 (struct hashdummy): Add hash field.
12061 (eq_HASHNODE): Compare unreduced hashes, then lengths, then
12062 the string values using memcmp.
12063 (cpp_lookup): Set dummy.hash.
12064
12065 Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
12066
12067 * configure.in (m88k-openbsd): Express configuration using new fragment
12068 style.
12069 * configure: Rebuilt.
12070 * m88k/aout-dbx.h: New.
12071 * m88k/openbsd.h: New.
12072 * m88k/xm-openbsd.h: New.
12073
12074 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12075
12076 * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
12077
12078 2000-07-12 Richard Henderson <rth@cygnus.com>
12079
12080 * reload.c (push_secondary_reload): Make sure to add the new
12081 reload at the end, after acquiring secondary memory.
12082
12083 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12084
12085 * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
12086
12087 * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
12088 lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
12089
12090 * c-parse.in (stmt): Delete unused variables.
12091
12092 * convert.c (convert_to_vector): Likewise.
12093
12094 * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
12095
12096 * tree.c (finish_vector_type): Prototype.
12097
12098 2000-07-12 Bruce Korb <bkorb@gnu.org>
12099
12100 * fixinc/fixfixes.c: use xmalloc
12101 * fixinc/fixincl.c(initialize): set program name for xmalloc
12102 * fixinc/fixlib.c(must_malloc): obsolete
12103 (is_cxx_header): no longer used - disabled
12104 (skip_quote): inserted and disabled for future use
12105 * fixinc/fixlib.h: reflects above
12106 * fixinc/fixtests.c: removed dinkleberries
12107
12108 2000-07-12 Neil Booth <NeilB@earthling.net>
12109
12110 * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
12111 * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
12112
12113 * cpphash.c: (struct macro_info, alloc_macro, free_macro,
12114 struct toklist_dummy): New.
12115 (cpp_free_definition): Free macros with free_macro.
12116 (count_params): Don't save paramter spellings. Save macro
12117 information in a struct macro_info.
12118 (parse_define): Don't allocate a token list.
12119 (save_expansion): Allocate the macro's token list, and
12120 save parameter spellings if necessary. Use TOKEN_SPELL.
12121 (cpp_create_definition): Make list const.
12122
12123 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12124
12125 * c-typeck.c (pedwarn_c99): Move to
12126 * c-errors.c: ... Here.
12127 * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
12128 * diagnostic.c (verror, vwarning, vpedwarn): Make static.
12129 * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
12130 (c-errors.o): List dependency.
12131
12132 2000-07-12 Mark Mitchell <mark@codesourcery.com>
12133
12134 * c-parse.c: Remove.
12135 * c-parse.h: Likewise.
12136 * c-parse.y: Likewise.
12137 * objc/objc-parse.c: Likewise.
12138 * objc/objc-pasre.y: Likewise.
12139
12140 2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
12141
12142 * gcc.texi: Fix minor typos
12143 * extend.texi: Fix minor typos
12144
12145 2000-07-11 Marc Espie <espie@openbsd.org>
12146
12147 * collect2.c (main): Recognize .lo as object files.
12148
12149 2000-07-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
12150
12151 * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
12152 true.
12153
12154 * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
12155 with MAP_ANONYMOUS and MAP_ANON.
12156 * configure, config.in: Rebuilt.
12157
12158 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
12159
12160 * diagnostic.c (save_output_state): Remove.
12161 (restore_output_state): Likewise.
12162 (clear_text_info): New function.
12163 (clear_diagnostic_info): Likewise.
12164 (output_text_length, is_starting_newline, output_prefix,
12165 line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
12166 prefixing_policy, output_buffer_ptr_to_format_args): New macros
12167 (set_real_maximum_length, output_set_maximum_length,
12168 output_set_prefix, output_get_prefix, output_set_maximum_length,
12169 output_destroy_prefix, init_output_buffer,
12170 reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
12171 output_add_newline, output_add_character, output_add_space,
12172 output_append_r, output_append, wrap_text, output_format,
12173 output_do_printf, output_printf, output_do_verbatim,
12174 output_verbatim, verbatim): Use them.
12175 (output_clear): Split into cleat_text_info and
12176 clear_diagnostic_info.
12177 (struct output_state): Move to...
12178
12179 * diagnostic.h: ...Here
12180 (struct output_buffer): Adjust.
12181
12182 2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
12183
12184 * cpplex.c (parse_name): No longer inline (premature optimization).
12185 (do_pop_context): Fold into pop_context.
12186 (pop_context): Returns int.
12187 (lex_next): Hoist test for end of directive into pop_context.
12188 (push_macro_context): Returns int; takes just reader and token.
12189 Hoist test for excessive nesting to caller.
12190 (push_arg_context): Returns void; takes just reader and token.
12191 Do not call stringify_arg or get_raw_token.
12192 (get_raw_token): Convert tail recursion through push_arg_context
12193 to a loop at this level. Call stringify_arg here if appropriate.
12194 (maybe_paste_with_next): Convert tail recursion to a while loop.
12195 Hoist test of paste_level to caller.
12196
12197 (stringify_arg): Push arg context at beginning.
12198 (cpp_get_token): Split out core into _cpp_get_token. Call
12199 process_directive here. Throw away CPP_PLACEMARKER tokens.
12200 (_cpp_get_token): Convert tail recursion through
12201 push_macro_context to a loop at this level.
12202 (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
12203 _cpp_get_raw_token): Use _cpp_get_token.
12204 (_cpp_skip_rest_of_line): Drop the context stack directly; do
12205 not call pop_context.
12206 (_cpp_run_directive): Call lex_next directly.
12207
12208 * cpphash.h: Prototype _cpp_get_token.
12209 * cppexp.c (lex): Use it.
12210 * cpphash.c (parse_define): Use it.
12211 * cpplib.c (get_define_node, do_undef, parse_include,
12212 read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
12213 do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
12214 parse_ifdef, validate_else): Use it.
12215 (cpp_push_buffer): Tweak error message; abort if anyone tries
12216 to push a buffer while macro expansions are stacked.
12217
12218 2000-07-11 Donn Terry <donnte@microsoft.com>
12219
12220 * cpplex.c (free_macro_args, save_token): Cast arg of free
12221 and/or xrealloc to PTR.
12222 (_cpp_init_input_buffer): Clear all fields of the base context.
12223
12224 Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
12225
12226 * gensupport.c (process_rtx): Make rtl checking stop
12227 complaining about the define_insn while it is being
12228 converted from a define_insn_and_split.
12229
12230 Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
12231
12232 * config/mips/mips.c (simple_memory_operand): Access the
12233 INTVAL of the address, not it's containing MEM.
12234
12235 2000-07-11 Bruce Korb <bkorb@gnu.org>
12236
12237 * fixinc/fixtests.c(double_slash): obsolete
12238 (else_endif_label): likewise
12239 * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
12240 (libc1_ifdefd_memx): correct initial comment
12241 and omit the #if/#endif pair from the memxxx declarations
12242 * fixinc/fixincl.x: regen
12243
12244 2000-07-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12245
12246 * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
12247
12248 2000-07-11 Neil Booth <NeilB@earthling.net>
12249
12250 * cpp.texi: Update.
12251
12252 2000-07-11 Neil Booth <NeilB@earthling.net>
12253
12254 * cppinit.c: (cpp_reader_init): Allow digraphs by default.
12255 (handle_option): Set digraphs according to standard.
12256 Merge OPT_lang_c89 handler with OPT_std_c89.
12257
12258 * cpplex.c: (lex_line, can_paste): Honour digraphs in
12259 accordance with the digraphs flag.
12260
12261 * cpplib.h: (struct cpp_options): New option digraphs.
12262
12263 2000-07-10 Hans-Peter Nilsson <hp@axis.com>
12264 Bruce Korb <bkorb@gnu.org>
12265
12266 * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
12267 * fixinc/fixincl.x: Regenerate.
12268 * fixinc/tests/base/testing.h: Add testcase.
12269
12270 2000-07-10 Richard Henderson <rth@cygnus.com>
12271
12272 * config/ia64/ia64.c (got_symbolic_operand): New.
12273 (symbolic_operand, move_operand): Revert 0701 change.
12274 * config/ia64/ia64.h (PREDICATE_CODES): Update.
12275 * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
12276 * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
12277 split the offset into a 14-bit low part instead of a 13-bit low part.
12278 (load_fptr): Mark the mem as unchanging.
12279 (load_symptr): Use got_symbolic_operand.
12280
12281 2000-07-10 Nick Clifton <nickc@cygnus.com>
12282
12283 * libgcc2.c (next_stack_level): Cast result of computation to
12284 (void **) so that the assignment does not generate a warning.
12285
12286 2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
12287
12288 * flags.h : Add new variable flag_single_precision_constant.
12289 * toplev.c (display_help) : Add -fsingle-precision-constant option.
12290 (flag_single_precision_constant): New.
12291 * c-lex.c (yylex): Convert floating point constant to single
12292 precision constant.
12293 * invoke.texi : Add documentation for this new option.
12294
12295 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
12296
12297 * diagnostic.c (output_octal): Second parameter is unsigned.
12298 (output_long_octal): Likewise.
12299 (output_hexadecimal): Likewise.
12300 (output_long_hexadecimal): Likewise.
12301 (output_format): Adjust arguments extraction. Tweak.
12302 (output_verbatim, verbatim): End variable argument list.
12303 (report_diagnostic): Improve documentation.
12304
12305 2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
12306
12307 * c-common.h (build_stmt): Declare.
12308 (build_continue_stmt): Likewise.
12309 (build_break_stmt): Likewise.
12310 (build_return_stmt): Likewise.
12311
12312 * c-decl.c (do_case): Rewrite to do what previously done in
12313 c-parse.in.
12314
12315 * c-semantics.c (build_stmt): Define.
12316 (build_return_stmt): Likewise.
12317 (build_break_stmt): Likewise.
12318 (build_continue_stmt): Likewise.
12319 (build_case_label): Likewise.
12320
12321 * c-parse.in (BREAK): Change to build tree, then generate RTL.
12322 (CONTINUE): Likewise.
12323 (RETURN): Likewise.
12324 (CASE): Likewise.
12325 (DEFAULT): Likewise.
12326
12327 * c-parse.y: Regenerate.
12328 * c-pasre.c: Likewise.
12329
12330 2000-07-09 Jason Merrill <jason@redhat.com>
12331
12332 * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
12333
12334 * tree.h (STRIP_NOPS): Check for error_mark_node.
12335 (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
12336 (dwarf2out_*): Remove duplicate declarations.
12337
12338 * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
12339 DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
12340
12341 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
12342
12343 * diagnostic.c (wrap_text): New function.
12344 (maybe_wrap_text): Likewise.
12345 (output_add_string): Use it.
12346 (output_format): Likewise.
12347 (count_error): Use verbatim instead of notice.
12348 (report_error_function): Likewise. Don't use plain fprintf.
12349 (finish_diagnostic): New function.
12350 (output_do_verbatim): Tweak. Commonalize functionalities in
12351 output_verbatim and verbatim.
12352 (output_verbatim): Adjust.
12353 (verbatim): Likewise.
12354 (report_diagnostic): Define.
12355
12356 * diagnostic.h (report_diagnostic): Prototype.
12357
12358 2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
12359
12360 * cppexp.c (_cpp_parse_expr): Don't use unary plus.
12361
12362 2000-07-09 Neil Booth <NeilB@earthling.net>
12363
12364 * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
12365 IShspace, ISspace: Update.
12366
12367 * cppinit.c: ISTABLE: Update.
12368 V: New.
12369
12370 * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
12371 (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
12372 (skip_block_comment, skip_line_comment, parse_string,
12373 lex_line): Use is_vspace rather than IS_NEWLINE.
12374 (skip_whitespace, lex_line): Clean up to use is_nvspace.
12375 (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
12376 gets a BOL flag.
12377 (lex_next): Unconditionally stop if within a directive.
12378 Treat directives within macro invocations as directives
12379 (after parse_args emits error), not as the argument.
12380
12381 2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
12382
12383 * diagnostic.c (diagnostic_args): New macro.
12384 (diagnostic_msg): Likewise.
12385 (output_formatted_integer): Likewise.
12386 (output_state): New data type.
12387 (digit_buffer): Make global.
12388 (output_add_integer): Rename to output_decimal. Squeeze
12389 digit_buffer.
12390 (output_long_decimal, output_unsigned_decimal,
12391 output_long_unsigned_decimal, output_octal, output_long_octal,
12392 output_hexadecimal, output_long_hexadecimal): New functions.
12393 (output_append_r): New function.
12394 (output_append): Tweak.
12395 (output_flush_on): Rename to output_to_stream.
12396 (output_format): Change prototype. Improve documentation. Handle
12397 more format specifiers.
12398 (build_location_prefix): Rename to context_as_prefix.
12399 (output_notice): Rename to output_do_printf.
12400 (output_printf): Tweak.
12401 (line_wrapper_printf): Likewise.
12402 (vline_wrapper_message_with_location): Adjust call to renamed
12403 functions.
12404 (v_message_with_decl): Likewise.
12405 (default_print_error_function): Likewise.
12406 (save_output_state): New function.
12407 (restore_output_state): Likewise.
12408 (output_do_verbatim): Likewise.
12409 (output_verbatim): Define.
12410 (verbatim): Likewise.
12411
12412 * diagnostic.h (printer_fn): Change return type from void to int.
12413 Improve documentation.
12414 (output_add_integer): Rename to output_decimal.
12415 (output_flush_on, output_format): Don't export.
12416 (output_verbatim, verbatim): Declare.
12417
12418 2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
12419
12420 * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
12421 Check whether c divides op1 exactly if operation is not
12422 multiplication.
12423
12424 2000-07-08 Richard Henderson <rth@cygnus.com>
12425
12426 * final.c (final): Do not abort when reg-stack introduces
12427 a new insn.
12428
12429 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
12430
12431 * cpplib.h (struct cpp_name): Now struct cpp_string.
12432 (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
12433 CPP_HEADER_NAME): Change to type S.
12434 (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
12435 field, a cpp_hashnode *. All references to val.name updated
12436 to use val.str or val.node as appropriate.
12437 (struct cpp_reader): Add spec_nodes field.
12438 (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
12439
12440 * cpphash.h (struct spec_nodes): New.
12441 (enum spell_type): Reorder. Only SPELL_STRING tokens use
12442 val.str. All references to 'spelling > SPELL_NONE' updated to
12443 match.
12444
12445 (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
12446 pfile->buffer->inc are not NULL before dereferencing them.
12447
12448 * cpplex.c (parse_name): Take a pointer to the current token,
12449 plus current position and limit as args; return the new
12450 position; don't copy the text of a name into the string
12451 buffer, instead call cpp_lookup and store the node pointer.
12452 If extending a token, copy out the text of the old into a
12453 scratch buffer, append the new, look that up and store the new
12454 node pointer. Inline.
12455 (maybe_paste_with_next): If the result of paste is a NAME,
12456 then look up the pasted text and store its node pointer.
12457 (lex_line): Adjust for new parse_name interface.
12458 Check for L"str", L'str' using spec_nodes->n_L.
12459 (spell_token): SPELL_IDENT tokens have their spelling in
12460 val.node->name. Handle SPELL_STRING tokens that don't have
12461 string delimiters.
12462 (_cpp_expand_name_space,
12463 (can_paste): Check for L ## "str" using spec_nodes->n_L.
12464 (cpp_get_token, special_symbol): No need to call cpp_lookup.
12465 (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
12466 return 1=equal 0=not, not a tristate.
12467
12468 * cpphash.c (var_args_str): Delete.
12469 (find_param): Compare node fields directly.
12470 (is__va_args__): Use CPP_PEDANTIC. Just compare
12471 token->val.node with spec_nodes->n__VA_ARGS__.
12472 (dump_funlike_macro): Don't use var_args_str.
12473
12474 * cpplib.c (_cpp_check_directive): Just walk through
12475 spec_nodes->dirs comparing pointers.
12476 (get_define_node, do_pragma_poison, detect_if_not_defined,
12477 parse_ifdef): The identifier has already been looked up.
12478 (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
12479 node.
12480 (do_if): Only call detect_if_not_defined at beginning of file.
12481 (_cpp_parse_assertion): Only copy string pointers for
12482 SPELL_STRING tokens.
12483 (pragma_dispatch): Take a node pointer and examine its name
12484 field.
12485 (_cpp_init_stacks): Also initialize the spec_nodes structure.
12486
12487 * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
12488 _cpp_init_macros.
12489 (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
12490 reverse order from the corresponding _cpp_init_* routines.
12491
12492 * cppexp.c (parse_number, parse_charconst, parse_defined,
12493 lex): Check val.node->type instead of calling cpp_defined.
12494 Use spec_nodes entries where appropriate.
12495
12496 * fix-header.c, scan-decls.c: Update for interface changes.
12497
12498 2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
12499
12500 * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
12501 emitting aux_truncdfsf2.
12502
12503 2000-07-03 Donn Terry (donnte@microsoft.com)
12504
12505 * cppinit.c (print_help): split overlong line into ISO C89
12506 maximum chunks.
12507
12508 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
12509
12510 * cppexp.c: Update all code for new lexer interface.
12511 (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
12512 (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
12513 * cpplex.c (token_names): Trim leading CPP_ from names; make
12514 the strings unsigned.
12515 (_cpp_spell_operator): New.
12516 (is_macro_disabled): Disable all macros if rescanning
12517 preprocessed text.
12518 (_cpp_get_directive_token): Remove.
12519
12520 * cppinit.c: Don't set no_macro_expand.
12521 * cpplib.c (read_line_number, do_line): Check only for EOF,
12522 not VSPACE.
12523 * cpphash.h: Update prototypes.
12524 * cpplib.h (CPP_VSPACE): Remove.
12525 (struct cpp_reader): Remove no_macro_expand.
12526
12527 2000-07-08 Neil Booth <NeilB@earthling.net>
12528
12529 * cpphash.c (is__va_args__): New function.
12530 (count_params): Fix line reported in error messages. Use
12531 is__va_args__. Don't return ')' on error. Flag GNU style
12532 rest args macro definitions.
12533 (parse_define): Check macro name is not __VA_ARGS__.
12534 (save_expansion): Check identifier in non-varargs-macro is
12535 not __VA_ARGS__. Don't flag GNU_VARARGS.
12536 * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
12537 (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
12538 than per-token GNU_VARARGS.
12539 * cpplib.h (GNU_VARARGS): Remove.
12540 (GNU_REST_ARGS): New.
12541
12542 Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
12543
12544 * i386.md (call_pop, call, call_value_pop): Do not set
12545 current_function_uses_pic_offset_table for calls to static
12546 functions or indirect calls.
12547
12548 2000-07-07 Jim Wilson <wilson@cygnus.com>
12549
12550 * config/ia64/ia64.c (rws_access_reg): New local write_count. If
12551 is_predicate_reg, then take max write_count of register pair.
12552
12553 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12554
12555 * tradcpp.c (main): Rename label `include' to `add_include' to
12556 avoid conflicts with variable `include' in traditional C.
12557
12558 2000-07-07 Jakub Jelinek <jakub@redhat.com>
12559
12560 * integrate.c (copy_insn_list): Remove REG_LABEL notes.
12561
12562 2000-07-07 Jakub Jelinek <jakub@redhat.com>
12563
12564 * sibcall.c (uses_addressof): Add INMEM argument, check for
12565 current_function_internal_arg_pointer outside of MEM rtxs in addition
12566 to ADDRESSOFs.
12567 (sequence_uses_addressof): Update caller.
12568
12569 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
12570
12571 * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
12572 and friends.
12573
12574 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12575
12576 * system.h (UNION_INIT_ZERO): New macro for initializing union
12577 members in structs.
12578
12579 * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
12580
12581 2000-07-07 Neil Booth <NeilB@earthling.net>
12582
12583 * cpp.texi: Update.
12584
12585 Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
12586
12587 * final.c (final): Detect out of bounds array access to
12588 the insn_lengths array.
12589
12590 2000-07-07 Kazu Hirata <kazu@hxi.com>
12591
12592 * fold-const.c (fold): Fix a comment typo.
12593
12594 2000-07-07 Neil Booth <NeilB@earthling.net>
12595
12596 * cpp.texi: Update to new lexer.
12597
12598 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
12599
12600 * tradcpp.c: New file.
12601 * tradcif.y: New file.
12602 * tradcif.c: New generated file.
12603
12604 * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
12605 $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and
12606 dependencies of C. Install tradcpp from install-common, in
12607 $(libsubdir).
12608
12609 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
12610
12611 * cppinit.c: Include cppdefault.h. Refer to
12612 cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
12613 to GCC_INCLUDE_DIR and its length.
12614 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
12615 USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
12616 STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to
12617 cppdefault.h.
12618 (include_defaults_array): Move to cppdefault.c.
12619
12620 * cppdefault.h: New file.
12621 * cppdefault.c: New file.
12622
12623 * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
12624 (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
12625 (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
12626 this file.
12627
12628 Thu Jul 6 18:30:36 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12629
12630 * reload.c (push_reload): When seeing if can reuse a register,
12631 check extra registers against widest of INMODE and OUTMODE.
12632
12633 2000-07-06 Neil Booth <NeilB@earthling.net>
12634
12635 * cpplib.c: (_cpp_parse_assertion): Perform hash lookups
12636 based on full length of predicate.
12637
12638 2000-07-06 Hans-Peter Nilsson <hp@axis.com>
12639
12640 * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
12641 [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
12642
12643 2000-07-05 Kazu Hirata <kazu@hxi.com>
12644
12645 * h8300-proto.h: Fix formatting.
12646 * h8300.c: Likewise.
12647 * h8300.h: Likewise.
12648
12649 2000-07-05 Jim Wilson <wilson@cygnus.com>
12650
12651 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
12652 CCmode.
12653
12654 2000-07-05 Rodney Brown <RodneyBrown@pmsc.com>
12655
12656 * invoke.texi: Fix minor typos
12657 * md.texi: Fix minor typos
12658
12659 2000-07-05 Zack Weinberg <zack@wolery.cumb.org>
12660
12661 * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
12662
12663 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
12664
12665 * cpplex.c: Don't include sys/mman.h.
12666 (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
12667
12668 * cpplib.c: Include sys/mman.h and obstack.h.
12669 (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
12670 obstack.
12671 (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
12672 (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't
12673 bother freeing if stack entries (they will be freed with their buffer).
12674 (do_endif): Free if stack entries from the buffer obstack.
12675 (push_conditional): Allocate if stack entries from the buffer obstack.
12676
12677 (find_answer): Rename to _cpp_find_answer.
12678 (do_assert, do_unassert): Update.
12679
12680 * cpphash.h: Update prototypes.
12681 (xobnew): New convenience macro.
12682 * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
12683 Update comments.
12684 (struct cpp_hashnode): Remove disabled field.
12685
12686 * cppinit.c: Don't include hashtab.h or splay-tree.h.
12687 (report_missing_guard): Moved to cppfiles.c.
12688 (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
12689 cpp_init_includes.
12690 (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
12691 cpp_cleanup_includes. Don't destroy hashtab or
12692 all_include_files here.
12693 (cpp_finish): Use _cpp_report_missing_guards.
12694
12695 * cppfiles.c (report_missing_guard): Moved from cppinit.c.
12696 (_cpp_init_include_table): Rename _cpp_init_includes.
12697 (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
12698
12699 * cppexp.c (parse_assertion): Update for new name of
12700 find_answer.
12701
12702 * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
12703
12704 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
12705
12706 * cpplib.c (do_ident): s/VSPACE/EOF/
12707
12708 2000-07-05 Neil Booth <NeilB@earthling.net>
12709
12710 * cpplex.c: Fix trigraph replacement within strings.
12711
12712 2000-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12713
12714 * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
12715
12716 * xcoffout.c (assign_type_number): Constify.
12717 (xcoffout_source_file): Add static prototype. Don't needlessly
12718 cast away const-ness.
12719
12720 2000-07-04 Jason Merrill <jason@redhat.com>
12721
12722 * frame.h (frame_state): Move base_offset to end.
12723
12724 Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
12725
12726 * calls.c (emit_library_call_value_1): Revert previous change.
12727
12728 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
12729
12730 * fix-header.c (struct partial_proto): Remove unnecessary fields.
12731 (recognized_extern, recognized_function, read_scan_file):
12732 Update for new scheme.
12733 (check_protection): It's still a multiple include guard even
12734 if it doesn't always trigger.
12735 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
12736 new scheme.
12737 * scan.h: Declare struct cpp_token. Update prototypes.
12738
12739 2000-07-03 Neil Booth <neilb@earthling.net>
12740 Zack Weinberg <zack@wolery.cumb.org>
12741
12742 Complete overhaul of the lexer and macro expander.
12743
12744 * cpphash.c (object_defn, funct_defn, push_macro_expansion,
12745 arg, arglist, argdata, reflist, collect_objlike_expansion,
12746 collect_funlike_expansion, collect_params,
12747 warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
12748 unsafe_chars, macarg, compare_defs, special_symbol,
12749 scan_arguments, stringify, funlike_macroexpand,
12750 _cpp_quote_string, monthnames): Delete.
12751 (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
12752 _cpp_create_definition, _cpp_dump_definition,
12753 dump_hash_helper): Adjust.
12754 (find_param, count_params, parse_define, var_args_str,
12755 check_macro_redefinition, save_expansion): New.
12756
12757 * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
12758 parse_string, output_line_command, trigraph_replace,
12759 lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
12760 cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
12761 cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
12762 _cpp_skip_rest_of_line): Modify.
12763
12764 (maybe_macroexpand, skip_comment, copy_comment, skip_string,
12765 find_position, null_warning, bump_column, expand_name_space,
12766 pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
12767 _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
12768 _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
12769 _cpp_prescan): Delete.
12770
12771 (dump_param_spelling, process_directive, lex_next,
12772 is_macro_disabled, stringify_arg, expand_context_stack,
12773 output_token, make_string_token, alloc_number_token,
12774 special_symbol, duplicate_token, maybe_paste_with_next,
12775 can_paste, prevent_macro_expansion, restore_macro_expansion,
12776 get_temp_token, release_temp_tokens, quote_string,
12777 token_names, token_spellings, _cpp_expand_name_space,
12778 _cpp_glue_header_name, _cpp_reserve_name_space,
12779 digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
12780 placemarker_token, eof_token, cpp_context, macro_args,
12781 get_raw_token, parse_arg, parse_args, save_token,
12782 push_arg_context, push_macro_context, pop_context,
12783 do_pop_context, free_macro_args, _cpp_get_line,
12784 _cpp_run_directive): New.
12785
12786 * cpplib.c (validate_else, parse_include, push_conditional,
12787 pass_thru_directive, read_line_number, parse_ifdef,
12788 detect_if_not_defined, _cpp_check_directive, do_define,
12789 do_undef, do_include, do_import, do_include_next, do_error,
12790 do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
12791 top_pragmas, do_pragma_gcc, do_pragma_implementation,
12792 do_pragma_poison, do_pragma_system_header,
12793 do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
12794 dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
12795 do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
12796 cpp_defined): Update for new scheme.
12797 (strtoul_for_line, get_define_node, dump_macro_name,
12798 _cpp_check_linemarker, _cpp_parse_assertion): New.
12799 (_cpp_handle_directive, do_pragma_default): Delete.
12800
12801 * cpphash.h (struct predicate): Now struct answer.
12802 (enum spell_type, struct token_spelling, struct directive,
12803 directive_handler): New.
12804 Update prototypes. Remove unused macros.
12805 * cpplib.h: Update prototypes. Remove unused macros,
12806 structure definitions, and fields.
12807
12808 * cpperror.c (print_containing_files, v_message): Adjust.
12809 * cppexp.c (parse_assertion, lex, parse_escape,
12810 _cpp_parse_expr): Adjust.
12811 * cppfiles.c (open_include_file, _cpp_execute_include,
12812 _cpp_compare_file_date, cpp_read_file, read_include_file):
12813 Adjust.
12814 * cppinit.c (dump_special_to_buffer): Delete.
12815 (append_include_chain, merge_include_chains, cpp_reader_init,
12816 cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
12817 cpp_finish, handle_option, print_help): Adjust.
12818 * cppmain.c (main): Adjust.
12819
12820 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
12821
12822 * cppspec.c (lang_specific_driver): Use double quotes in error
12823 message.
12824
12825 Mon Jul 3 16:53:43 2000 Clinton Popetz <cpopetz@cygnus.com>
12826
12827 * calls.c (emit_library_call_value_1): Use valreg instead
12828 of hard_libcall_value.
12829
12830 2000-07-03 Geoff Keating <geoffk@cygnus.com>
12831
12832 * config/rs6000/rs6000.c (rs6000_emit_move): New function.
12833 * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
12834 * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
12835 (movhi): Likewise.
12836 (movqi): Likewise.
12837 (movdf): Likewise.
12838 (movsf): Likewise.
12839 (movdi): Likewise.
12840 (movti): Likewise.
12841
12842 * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
12843 mode instead of wider_mode is being used.
12844
12845 2000-07-03 Jakub Jelinek <jakub@redhat.com>
12846
12847 * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
12848 of 'r'. Use q_regs_operand.
12849 (andsi_1+2): Use q_regs_operand.
12850
12851 2000-07-03 Jakub Jelinek <jakub@redhat.com>
12852
12853 * builtins.c (get_memory_rtx): Always put into alias set 0.
12854
12855 2000-07-03 Nick Clifton <nickc@cygnus.com>
12856
12857 * config/arm/arm.md: Fix post increment and pre increment
12858 peepholes so that they do not generate UNPREDICATBLE opcodes.
12859 (ie ones where the increment clobbers the source/destination).
12860
12861 2000-07-01 Marek Michalkiewicz <marekm@linux.org.pl>
12862
12863 * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
12864 change too big for -mtiny-stack" a warning, if larger than 63.
12865 (out_set_stack_ptr): Change the logic so -mno-interrupts is
12866 always safe to use on possible future devices.
12867 (function_prologue): Write SPH before SPL, for consistency.
12868 If interrupt_func_p true, we know we have enabled interrupts.
12869 (avr_num_arg_regs): New function. Round up to even number of
12870 bytes if no -mpack-args or if calling a libgcc function.
12871 (function_arg, function_arg_advance): Use it.
12872 (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
12873 Output "movw" if available.
12874 (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
12875 of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
12876 (asm_output_section_name): Add blanks for consistent output.
12877 (encode_section_info): Set TREE_READONLY for progmem data to
12878 avoid gas warnings about changed section attributes.
12879 (avr_hard_regno_mode_ok): Force non-QImode data to start in
12880 even numbered registers on devices with "movw".
12881 * config/avr/avr.h (MASK_*): Define bits for target_flags.
12882 (TARGET_SWITCHES): Mark help strings for translation.
12883 Add new -mpack-args and -menhanced switches.
12884 (TARGET_OPTIONS): Mark help strings for translation.
12885 (progmem_section): Add section attributes.
12886 * config/avr/avr.md (*movhi, call_insn, call_value_insn):
12887 Output "movw" if available.
12888 (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
12889 New patterns.
12890 * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
12891 call convention (arguments aligned on even registers).
12892 (_cleanup, _exit): Make weak symbols libc can override.
12893
12894 2000-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12895
12896 * fp-bit.h: New file.
12897
12898 * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
12899 Comment #endif statements.
12900 (__thenan_sf, __thenan_df): Add missing braces around initializer.
12901
12902 Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
12903
12904 * gcse.c (compute_pre_data): Compute ae_kill using other local
12905 properties instead of calling compute_ae_kill.
12906
12907 * alias.c (init_alias_analysis): Do not call
12908 prologue_epilogue_contains until after reload has completed.
12909
12910 2000-07-02 Benjamin Chelf <chelf@codesourcery.com>
12911
12912 * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
12913 (genrtl_finish_compound_stmt): Likewise.
12914 (genrtl_compound_stmt): Change to return void.
12915
12916 * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
12917 move code from here to ...
12918 (genrtl_compound_stmt): ... here.
12919 (genrtl_finish_compound_stmt): Remove.
12920 (expand_stmt): Add comment.
12921
12922 2000-07-02 Zack Weinberg <zack@wolery.cumb.org>
12923
12924 * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
12925 and VOID_TYPE_P.
12926
12927 2000-07-02 Jakub Jelinek <jakub@redhat.com>
12928
12929 * cpplib.h (struct cpp_reader): New field include_depth.
12930 (struct cpp_printer): Rename last_bsd to last_id.
12931 * cppfiles.c (read_include_file): Bump include_depth.
12932 * cpplex.c (cpp_pop_buffer): Decrement include_depth.
12933 (output_line_command): Output correct #line if a header
12934 is including itself and is not protected against multiple inclusion.
12935 Use include_depth instead of buffer_stack_depth, last_id instead of
12936 last_bsd.
12937 * cppinit.c (cpp_start_read): Initialize last_id instead of
12938 last_bsd.
12939
12940 2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
12941
12942 * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
12943 (c-semantics.o): New target.
12944
12945 * c-common.h (TREE_LANG_FLAG_?): Added documentation.
12946 (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
12947 (genrtl_clear_out_block): Likewise.
12948 (genrtl_goto_stmt): Likewise.
12949 (genrtl_expr_stmt): Likewise.
12950 (genrtl_decl_stmt): Likewise.
12951 (genrtl_if_stmt): Likewise.
12952 (genrtl_while_stmt): Likewise.
12953 (genrtl_do_stmt): Likewise.
12954 (genrtl_return_stmt): Likewise.
12955 (genrtl_for_stmt): Likewise.
12956 (genrtl_break_stmt): Likewise.
12957 (genrtl_continue_stmt): Likewise.
12958 (genrtl_scope_stmt): Likewise.
12959 (genrtl_switch_stmt): Likewise.
12960 (genrtl_case_label): Likewise.
12961 (genrtl_begin_compound_stmt): Likewise.
12962 (gerntl_finish_compound_stmt): Likewise.
12963 (genrtl_compound_stmt): Likewise.
12964 (genrtl_asm_stmt): Likewise.
12965 (genrtl_decl_cleanup): Likewise.
12966 (DECL_ANON_UNION_ELEMS): Likewise.
12967 (emit_local_var): Likewise.
12968 (make_rtl_for_local_static): Likewise.
12969 (expand_cond): Likewise.
12970 (expand_stmt): Likewise.
12971 (c_expand_return): Likewise.
12972 (c_expand_start_case): Likewise.
12973 (do_case): Likewise.
12974 (COMPOUND_STMT_NO_SCOPE): Likewise.
12975 (c_expand_asm_operands): Likewise.
12976 (NEW_FOR_SCOPE_P): New macro.
12977 (expand_expr_stmt_fn): New type.
12978
12979 (set_current_function_name_declared): Likewise.
12980 (current_function_name_declared): Likewise.
12981 (lang_expand_stmt): Likewise.
12982 (stmts_are_full_exprs_p): Likewise.
12983 (anon_aggr_type_p): Likewise.
12984 (lang_expand_expr_stmt): Likewise.
12985 (build_case_label): Likewise.
12986
12987 * c-decl.c (lang_expand_expr_stmt): Initialize.
12988 (stmts_are_full_exprs_p): Define.
12989 (current_function_name_declared): Likewise.
12990 (do_case): Likewise.
12991 (lang_expand_stmt): Likewise.
12992 (set_current_function_name_declared): Likewise.
12993 (anon_aggr_type_p): Likewise.
12994
12995 * c-semantics.c: New file.
12996 (expand_cond): Moved from cp/semantics.c.
12997 (genrtl_do_pushlevel): Likewise.
12998 (genrtl_clear_out_block): Likewise.
12999 (genrtl_goto_stmt): Likewise.
13000 (genrtl_expr_stmt): Likewise.
13001 (genrtl_decl_stmt): Likewise.
13002 (genrtl_if_stmt): Likewise.
13003 (genrtl_while_stmt): Likewise.
13004 (genrtl_do_stmt): Likewise.
13005 (genrtl_return_stmt): Likewise.
13006 (genrtl_for_stmt): Likewise.
13007 (genrtl_break_stmt): Likewise.
13008 (genrtl_continue_stmt): Likewise.
13009 (genrtl_scope_stmt): Likewise.
13010 (genrtl_switch_stmt): Likewise.
13011 (genrtl_case_label): Likewise.
13012 (genrtl_begin_compound_stmt): Likewise.
13013 (genrtl_finish_compound_stmt): Likewise.
13014 (genrtl_compound_stmt): Likewise.
13015 (genrtl_asm_stmt): Likewise.
13016 (genrtl_decl_cleanup): Likewise.
13017 (make_rtl_for_local_static): Moved from cp/decl.c.
13018 (emit_local_var): Likewise.
13019 (expand_stmt): Define.
13020
13021 * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
13022 (c_expand_return): Likewise.
13023 (c_expand_start_case): Likewise.
13024
13025 2000-07-01 Richard Henderson <rth@cygnus.com>
13026
13027 * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
13028 with the low 13 bits set.
13029 (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
13030 * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one
13031 of the low 13 bits into a CONST plus an adddi3.
13032 (load_symptr): Set RTX_UNCHANGING_P.
13033
13034 See ChangeLog.3 for earlier changes.